All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/library-fuzzers/fuzzer.cpp:19,1
    - Dst: memcpy
      Src: /src/library-fuzzers/fuzzer.cpp:20,1
    - Dst: std::string::c_str
      Src: /src/library-fuzzers/fuzzer.cpp:20,1
    - Dst: std::string::size
      Src: /src/library-fuzzers/fuzzer.cpp:20,1
    - Dst: realpath
      Src: /src/library-fuzzers/fuzzer.cpp:21,1
    - Dst: dirname
      Src: /src/library-fuzzers/fuzzer.cpp:21,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:22,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:23,1
    - Dst: std::string
      Src: /src/library-fuzzers/fuzzer.cpp:26,1
    - Dst: std::string
      Src: /src/library-fuzzers/fuzzer.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argv0
    - relativePath
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: ToAbsolutePath
    functionSourceFile: /src/library-fuzzers/fuzzer.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - std::string::c_str
    - abort
    - dirname
    - memcpy
    - realpath
    - std::string::size
    - printf
    linkageType: ''
    returnType: std::string
    signature: std::string ToAbsolutePath(const std::string argv0, const std::string
      relativePath)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ToAbsolutePath
      Src: /src/library-fuzzers/fuzzer.cpp:33,1
    - Dst: ToAbsolutePath
      Src: /src/library-fuzzers/fuzzer.cpp:34,1
    - Dst: setenv
      Src: /src/library-fuzzers/fuzzer.cpp:39,1
    - Dst: std::string::c_str
      Src: /src/library-fuzzers/fuzzer.cpp:39,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:40,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:41,1
    - Dst: fopen
      Src: /src/library-fuzzers/fuzzer.cpp:45,1
    - Dst: std::string::c_str
      Src: /src/library-fuzzers/fuzzer.cpp:45,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:47,1
    - Dst: std::string::c_str
      Src: /src/library-fuzzers/fuzzer.cpp:47,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:48,1
    - Dst: fseek
      Src: /src/library-fuzzers/fuzzer.cpp:51,1
    - Dst: ftell
      Src: /src/library-fuzzers/fuzzer.cpp:52,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:54,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:55,1
    - Dst: fseek
      Src: /src/library-fuzzers/fuzzer.cpp:57,1
    - Dst: std::vector::resize
      Src: /src/library-fuzzers/fuzzer.cpp:58,1
    - Dst: fread
      Src: /src/library-fuzzers/fuzzer.cpp:59,1
    - Dst: std::vector::data
      Src: /src/library-fuzzers/fuzzer.cpp:59,1
    - Dst: static_cast<size_t>
      Src: /src/library-fuzzers/fuzzer.cpp:59,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:60,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:61,1
    - Dst: fclose
      Src: /src/library-fuzzers/fuzzer.cpp:63,1
    - Dst: std::string
      Src: /src/library-fuzzers/fuzzer.cpp:65,1
    - Dst: std::vector::data
      Src: /src/library-fuzzers/fuzzer.cpp:65,1
    - Dst: std::vector::data
      Src: /src/library-fuzzers/fuzzer.cpp:65,1
    - Dst: std::vector::size
      Src: /src/library-fuzzers/fuzzer.cpp:65,1
    - Dst: Py_Initialize
      Src: /src/library-fuzzers/fuzzer.cpp:67,1
    - Dst: PyRun_SimpleString
      Src: /src/library-fuzzers/fuzzer.cpp:74,1
    - Dst: std::string::c_str
      Src: /src/library-fuzzers/fuzzer.cpp:74,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:75,1
    - Dst: PyErr_PrintEx
      Src: /src/library-fuzzers/fuzzer.cpp:76,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:77,1
    - Dst: std::string::substr
      Src: /src/library-fuzzers/fuzzer.cpp:82,1
    - Dst: std::string::find_last_of
      Src: /src/library-fuzzers/fuzzer.cpp:82,1
    - Dst: PyRun_SimpleString
      Src: /src/library-fuzzers/fuzzer.cpp:88,1
    - Dst: std::string::c_str
      Src: /src/library-fuzzers/fuzzer.cpp:88,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:89,1
    - Dst: PyErr_PrintEx
      Src: /src/library-fuzzers/fuzzer.cpp:90,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:91,1
    - Dst: PyModule_New
      Src: /src/library-fuzzers/fuzzer.cpp:97,1
    - Dst: PyModule_AddStringConstant
      Src: /src/library-fuzzers/fuzzer.cpp:98,1
    - Dst: PyModule_GetDict
      Src: /src/library-fuzzers/fuzzer.cpp:99,1
    - Dst: PyRun_String
      Src: /src/library-fuzzers/fuzzer.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/library-fuzzers/fuzzer.cpp:100,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:103,1
    - Dst: PyErr_PrintEx
      Src: /src/library-fuzzers/fuzzer.cpp:104,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:105,1
    - Dst: Py_DECREF
      Src: /src/library-fuzzers/fuzzer.cpp:107,1
    - Dst: PyObject_GetAttrString
      Src: /src/library-fuzzers/fuzzer.cpp:109,1
    - Dst: PyCallable_Check
      Src: /src/library-fuzzers/fuzzer.cpp:111,1
    - Dst: static_cast<PyObject*>
      Src: /src/library-fuzzers/fuzzer.cpp:111,1
    - Dst: printf
      Src: /src/library-fuzzers/fuzzer.cpp:112,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 117
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/library-fuzzers/fuzzer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::vector::resize
    - std::string
    - fopen
    - std::vector::size
    - std::string::c_str
    - setenv
    - PyRun_SimpleString
    - fread
    - ftell
    - PyCallable_Check
    - PyModule_GetDict
    - Py_Initialize
    - static_cast<PyObject*>
    - std::vector::data
    - fseek
    - std::string::find_last_of
    - PyModule_New
    - PyRun_String
    - PyErr_PrintEx
    - Py_DECREF
    - std::string::substr
    - printf
    - fclose
    - abort
    - ToAbsolutePath
    - PyModule_AddStringConstant
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int* argc, char*** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/library-fuzzers/fuzzer.cpp:124,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/library-fuzzers/fuzzer.cpp:125,1
    - Dst: PyTuple_SetItem
      Src: /src/library-fuzzers/fuzzer.cpp:126,1
    - Dst: PyObject_CallObject
      Src: /src/library-fuzzers/fuzzer.cpp:128,1
    - Dst: static_cast<PyObject*>
      Src: /src/library-fuzzers/fuzzer.cpp:128,1
    - Dst: PyErr_PrintEx
      Src: /src/library-fuzzers/fuzzer.cpp:132,1
    - Dst: abort
      Src: /src/library-fuzzers/fuzzer.cpp:133,1
    - Dst: PyBytes_Check
      Src: /src/library-fuzzers/fuzzer.cpp:136,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/library-fuzzers/fuzzer.cpp:141,1
    - Dst: std::vector<uint8_t>
      Src: /src/library-fuzzers/fuzzer.cpp:143,1
    - Dst: Py_DECREF
      Src: /src/library-fuzzers/fuzzer.cpp:152,1
    - Dst: Py_DECREF
      Src: /src/library-fuzzers/fuzzer.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 156
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/library-fuzzers/fuzzer.cpp
    functionUses: 0
    functionsReached:
    - PyTuple_SetItem
    - std::vector<uint8_t>
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - abort
    - PyObject_CallObject
    - PyErr_PrintEx
    - Py_DECREF
    - PyBytes_AsStringAndSize
    - static_cast<PyObject*>
    - PyTuple_New
    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/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:
    - PyLong_FromLong
    - PyErr_Print
    - PyTuple_SetItem
    - PyCallable_Check
    - Py_FinalizeEx
    - PyImport_Import
    - atoi
    - Py_Initialize
    - PyObject_CallObject
    - PyLong_AsLong
    - PyObject_GetAttrString
    - PyErr_Occurred
    - fprintf
    - Py_XDECREF
    - printf
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    - PyTuple_New
    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:
    - PyModule_AddObjectRef
    - PyType_Ready
    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:
    - PyModule_AddObjectRef
    - PyType_Ready
    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:
    - Py_GetConstant
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/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_XSETREF
    - Py_NewRef
    - 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:
    - PyErr_SetString
    - 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/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:
    - PyModule_AddObjectRef
    - PyType_Ready
    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:
    - PyObject_GC_UnTrack
    - Custom_clear
    - 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/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:
    - Py_GetConstant
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/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_NewRef
    - Py_SETREF
    - 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:
    - Py_XSETREF
    - PyErr_SetString
    - Py_NewRef
    - PyUnicode_Check
    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:
    - Py_XSETREF
    - PyErr_SetString
    - Py_NewRef
    - PyUnicode_Check
    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:
    - PyModule_AddObjectRef
    - PyType_Ready
    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:
    - Py_GetConstant
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/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_NewRef
    - Py_SETREF
    - 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:
    - PyErr_SetString
    - Py_NewRef
    - Py_SETREF
    - PyUnicode_Check
    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:
    - PyErr_SetString
    - Py_NewRef
    - Py_SETREF
    - PyUnicode_Check
    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:
    - PyModule_AddObjectRef
    - PyType_Ready
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Doc/includes/capi-extension/spammodule-01.c:15,1
    - Dst: system
      Src: /src/cpython/Doc/includes/capi-extension/spammodule-01.c:19,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Doc/includes/capi-extension/spammodule-01.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: spam_system
    functionSourceFile: /src/cpython/Doc/includes/capi-extension/spammodule-01.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - system
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spam_system(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: PyModExport_spam
    functionSourceFile: /src/cpython/Doc/includes/capi-extension/spammodule-01.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport_spam(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowNew
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:13,1
    - Dst: FindClass
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - message
    argTypes:
    - JNIEnv*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: throw_runtime_exception
    functionSourceFile: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - FindClass
    - ThrowNew
    linkageType: ''
    returnType: void
    signature: void throw_runtime_exception(JNIEnv *env, const char *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:21,1
    - Dst: strerror
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:22,1
    - Dst: throw_runtime_exception
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - error_prefix
    argTypes:
    - JNIEnv*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: throw_errno
    functionSourceFile: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - strerror
    - throw_runtime_exception
    - snprintf
    linkageType: ''
    returnType: void
    signature: void throw_errno(JNIEnv *env, const char *error_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:66,1
    - Dst: __android_log_write
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: redirection_thread
    functionSourceFile: /src/cpython/Platforms/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/Platforms/Android/testbed/app/src/main/c/main_activity.c:75,1
    - Dst: pipe
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:80,1
    - Dst: dup2
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:83,1
    - Dst: pthread_create
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:89,1
    - Dst: pthread_detach
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - si
    argTypes:
    - StreamInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: redirect_stream
    functionSourceFile: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - setvbuf
    - pipe
    - dup2
    - pthread_create
    - pthread_detach
    linkageType: ''
    returnType: char
    signature: char *redirect_stream(StreamInfo *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redirect_stream
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:105,1
    - Dst: throw_errno
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: Java_org_python_testbed_PythonTestRunner_redirectStdioToLogcat
    functionSourceFile: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - redirect_stream
    - throw_errno
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_python_testbed_PythonTestRunner_redirectStdioToLogcat(\n
      \   JNIEnv *env, jobject obj\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:137,1
    - Dst: sigaddset
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:140,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 147
    functionName: init_signals
    functionSourceFile: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - pthread_sigmask
    - sigaddset
    linkageType: ''
    returnType: char
    signature: char *init_signals()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: throw_runtime_exception
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - status
    argTypes:
    - JNIEnv*
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: throw_status
    functionSourceFile: /src/cpython/Platforms/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: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetStringUTFChars
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:156,1
    - Dst: snprintf
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:158,1
    - Dst: chdir
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:159,1
    - Dst: throw_errno
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:160,1
    - Dst: init_signals
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:165,1
    - Dst: throw_errno
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:166,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:172,1
    - Dst: GetArrayLength
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:174,1
    - Dst: GetObjectArrayElement
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:177,1
    - Dst: GetStringUTFChars
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:178,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:184,1
    - Dst: PyConfig_SetBytesArgv
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:184,1
    - Dst: throw_status
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:185,1
    - Dst: PyConfig_SetBytesString
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:189,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:190,1
    - Dst: throw_status
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:191,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:195,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:196,1
    - Dst: throw_status
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:197,1
    - Dst: Py_RunMain
      Src: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - env
    - obj
    - home
    - args
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jarray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 202
    functionName: Java_org_python_testbed_PythonTestRunner_runPython
    functionSourceFile: /src/cpython/Platforms/Android/testbed/app/src/main/c/main_activity.c
    functionUses: 0
    functionsReached:
    - Py_InitializeFromConfig
    - PyStatus_Exception
    - GetStringUTFChars
    - Py_RunMain
    - GetArrayLength
    - PyConfig_InitPythonConfig
    - GetObjectArrayElement
    - PyConfig_SetBytesArgv
    - PyConfig_SetBytesString
    - throw_errno
    - chdir
    - throw_status
    - snprintf
    - init_signals
    linkageType: ''
    returnType: JNIEXPORT
    signature: "JNIEXPORT Java_org_python_testbed_PythonTestRunner_runPython(\n    JNIEnv
      *env, jobject obj, jstring home, jarray args\n)"
  - 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:
    - Py_CLEAR
    - PyModule_GetState
    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:
    - _DialectObj_CAST
    - get_char_or_None
    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:
    - _DialectObj_CAST
    - get_char_or_None
    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:
    - _DialectObj_CAST
    - get_char_or_None
    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:
    - PyLong_AsInt
    - PyLong_CheckExact
    - PyErr_Occurred
    - 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:
    - PyErr_Format
    - PyUnicode_GetLength
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    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:
    - PyErr_Format
    - PyUnicode_GetLength
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int _set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4
      dflt)
  - BBCount: 4
    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:325,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:326,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_csv.c:330,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_csv.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - PyObject**
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 333
    functionName: _set_str
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyUnicode_Check
    - strlen
    - PyErr_Format
    - PyUnicode_DecodeASCII
    - Py_NewRef
    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:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - quoting
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 346
    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:352,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_csv.c:355,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:357,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:359,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: 363
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 363
    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:369,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: 373
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 373
    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: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    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:398,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_csv.c:399,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_csv.c:400,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_csv.c:401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: Dialect_dealloc
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Dialect_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_csv.c:421,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_csv.c:425,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: _csv_state_from_type
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyModule_GetState
    - PyType_GetModuleByDef
    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:449,1
    - Dst: _csv_state_from_type
      Src: /src/cpython/Modules/_csv.c:462,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:468,1
    - Dst: get_dialect_from_registry
      Src: /src/cpython/Modules/_csv.c:469,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_csv.c:474,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_csv.c:476,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_csv.c:488,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:490,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: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:499,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:500,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:501,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_csv.c:502,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: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:516,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:517,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:518,1
    - Dst: DIALECT_GETATTR
      Src: /src/cpython/Modules/_csv.c:519,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: DIASET
      Src: /src/cpython/Modules/_csv.c:531,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:532,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:533,1
    - Dst: DIASET
      Src: /src/cpython/Modules/_csv.c:534,1
    - Dst: dialect_check_quoting
      Src: /src/cpython/Modules/_csv.c:538,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:543,1
    - Dst: dialect_check_char
      Src: /src/cpython/Modules/_csv.c:547,1
    - Dst: dialect_check_char
      Src: /src/cpython/Modules/_csv.c:548,1
    - Dst: dialect_check_char
      Src: /src/cpython/Modules/_csv.c:550,1
    - Dst: dialect_check_chars
      Src: /src/cpython/Modules/_csv.c:552,1
    - Dst: dialect_check_chars
      Src: /src/cpython/Modules/_csv.c:554,1
    - Dst: dialect_check_chars
      Src: /src/cpython/Modules/_csv.c:556,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_csv.c:562,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
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:570,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:571,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:572,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:573,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 575
    functionName: dialect_new
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - Py_INCREF
    - _csv_state_from_type
    - DIALECT_GETATTR
    - get_dialect_from_registry
    - dialect_check_char
    - PyErr_SetString
    - PyUnicode_Check
    - Py_CLEAR
    - DIASET
    - PyArg_ParseTupleAndKeywords
    - dialect_check_chars
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - dialect_check_quoting
    - Py_XINCREF
    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: 512
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 512
    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: 527
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 527
    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:584,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_csv.c:585,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: Dialect_reduce
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_reduce(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:603,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 606
    functionName: Dialect_clear
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _DialectObj_CAST
    linkageType: ''
    returnType: int
    signature: int Dialect_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _DialectObj_CAST
      Src: /src/cpython/Modules/_csv.c:611,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:612,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:613,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 615
    functionName: Dialect_traverse
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _DialectObj_CAST
    - Py_VISIT
    - Py_TYPE
    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:647,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Modules/_csv.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module_state
    - dialect_inst
    - kwargs
    argTypes:
    - _csvstate*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 652
    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:667,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_csv.c:670,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Modules/_csv.c:679,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:680,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_csv.c:688,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:692,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 694
    functionName: parse_save_field
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyNumber_Float
    - PyList_Append
    - PyUnicode_FromKindAndData
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int parse_save_field(ReaderObj *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_csv.c:699,1
    - Dst: PyMem_Resize
      Src: /src/cpython/Modules/_csv.c:703,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_csv.c:705,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: 698
        line_start: 698
        source_file: /src/cpython/Modules/_csv.c
    constantsTouched: []
    func_position:
      end: 711
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 711
    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:716,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:718,1
    - Dst: parse_grow_buff
      Src: /src/cpython/Modules/_csv.c:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - module_state
    - c
    argTypes:
    - ReaderObj*
    - _csvstate*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 727
    functionName: parse_add_char
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - parse_grow_buff
    - 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:752,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:771,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:776,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:784,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:791,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:805,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:815,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:821,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:847,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:855,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:865,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:871,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:877,1
    - Dst: parse_add_char
      Src: /src/cpython/Modules/_csv.c:882,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:888,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:901,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 131
    argCount: 3
    argNames:
    - self
    - module_state
    - c
    argTypes:
    - ReaderObj*
    - _csvstate*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 910
    functionName: parse_process_char
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - parse_add_char
    - parse_save_field
    - 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:915,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_csv.c:915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 922
    functionName: parse_reset
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyList_New
    linkageType: ''
    returnType: int
    signature: int parse_reset(ReaderObj *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _ReaderObj_CAST
      Src: /src/cpython/Modules/_csv.c:927,1
    - Dst: _csv_state_from_type
      Src: /src/cpython/Modules/_csv.c:936,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:936,1
    - Dst: parse_reset
      Src: /src/cpython/Modules/_csv.c:942,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_csv.c:945,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:948,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:951,1
    - Dst: parse_save_field
      Src: /src/cpython/Modules/_csv.c:953,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:958,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:959,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:965,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:969,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:971,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_csv.c:975,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_csv.c:976,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:978,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_csv.c:980,1
    - Dst: parse_process_char
      Src: /src/cpython/Modules/_csv.c:981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:987,1
    - Dst: parse_process_char
      Src: /src/cpython/Modules/_csv.c:988,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 924
    functionDepth: 4
    functionLinenumber: 924
    functionLinenumberEnd: 996
    functionName: Reader_iternext_lock_held
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _csv_state_from_type
    - PyUnicode_KIND
    - parse_reset
    - PyUnicode_DATA
    - _ReaderObj_CAST
    - PyUnicode_READ
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - parse_process_char
    - PyIter_Next
    - parse_save_field
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Reader_iternext_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_csv.c:1002,1
    - Dst: Reader_iternext_lock_held
      Src: /src/cpython/Modules/_csv.c:1003,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_csv.c:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 998
    functionDepth: 5
    functionLinenumber: 998
    functionLinenumberEnd: 1006
    functionName: Reader_iternext
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Reader_iternext_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Reader_iternext(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ReaderObj_CAST
      Src: /src/cpython/Modules/_csv.c:1011,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1012,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_csv.c:1013,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_csv.c:1014,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_csv.c:1016,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_csv.c:1019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1021
    functionName: Reader_dealloc
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _ReaderObj_CAST
    - PyTypeObject*::tp_clear
    - PyObject_GC_Del
    - PyMem_Free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Reader_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ReaderObj_CAST
      Src: /src/cpython/Modules/_csv.c:1026,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1027,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1028,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1029,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1030,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1032
    functionName: Reader_traverse
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _ReaderObj_CAST
    - Py_VISIT
    - Py_TYPE
    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:1037,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1038,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1039,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1042
    functionName: Reader_clear
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _ReaderObj_CAST
    - Py_CLEAR
    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: 1055
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1055
    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:1090,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_csv.c:1091,1
    - Dst: parse_reset
      Src: /src/cpython/Modules/_csv.c:1105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1106,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_csv.c:1110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1111,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_csv.c:1114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1116,1
    - Dst: _call_dialect
      Src: /src/cpython/Modules/_csv.c:1119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1122,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_csv.c:1126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - keyword_args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1128
    functionName: csv_reader
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - get_csv_state
    - parse_reset
    - _call_dialect
    - PyObject_GetIter
    - Py_DECREF
    - PyObject_GC_Track
    - PyArg_UnpackTuple
    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: 1139
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1139
    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:1174,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1178,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_csv.c:1183,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_csv.c:1191,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:1193,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1199,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1211,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1215,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1220,1
    - Dst: ADDCH
      Src: /src/cpython/Modules/_csv.c:1225,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_csv.c:1234,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: 1238
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1238
    functionName: join_append_data
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyUnicode_READ
    - PyUnicode_FindChar
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - ADDCH
    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: 1169
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    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:1243,1
    - Dst: PyMem_Resize
      Src: /src/cpython/Modules/_csv.c:1248,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_csv.c:1250,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: 1242
        line_start: 1242
        source_file: /src/cpython/Modules/_csv.c
    constantsTouched: []
    func_position:
      end: 1257
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1257
    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:1269,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_csv.c:1270,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_csv.c:1271,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1279,1
    - Dst: join_append_data
      Src: /src/cpython/Modules/_csv.c:1286,1
    - Dst: join_check_rec_size
      Src: /src/cpython/Modules/_csv.c:1292,1
    - Dst: join_append_data
      Src: /src/cpython/Modules/_csv.c:1295,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - self
    - field
    - quoted
    argTypes:
    - WriterObj*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1300
    functionName: join_append
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - join_append_data
    - join_check_rec_size
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:1309,1
    - Dst: join_check_rec_size
      Src: /src/cpython/Modules/_csv.c:1314,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_csv.c:1317,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_csv.c:1318,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_csv.c:1320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - WriterObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1302
    functionDepth: 2
    functionLinenumber: 1302
    functionLinenumberEnd: 1324
    functionName: join_append_lineterminator
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - join_check_rec_size
    - 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:1329,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_csv.c:1334,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_csv.c:1336,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1337,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1339,1
    - Dst: join_reset
      Src: /src/cpython/Modules/_csv.c:1346,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_csv.c:1347,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_csv.c:1353,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:1359,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:1370,1
    - Dst: join_append
      Src: /src/cpython/Modules/_csv.c:1371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1372,1
    - Dst: join_append
      Src: /src/cpython/Modules/_csv.c:1375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1376,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_csv.c:1381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1384,1
    - Dst: join_append
      Src: /src/cpython/Modules/_csv.c:1387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1395,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:1396,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1405,1
    - Dst: join_append
      Src: /src/cpython/Modules/_csv.c:1410,1
    - Dst: join_append_lineterminator
      Src: /src/cpython/Modules/_csv.c:1416,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_csv.c:1420,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_csv.c:1425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1426,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 2
    argNames:
    - op
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1428
    functionName: csv_writerow_lock_held
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - join_reset
    - PyNumber_Check
    - join_append
    - PyUnicode_Check
    - _WriterObj_CAST
    - PyObject_GetIter
    - join_append_lineterminator
    - PyUnicode_FromKindAndData
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - Py_TYPE
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_writerow_lock_held(PyObject *op, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_csv.c:1441,1
    - Dst: csv_writerow_lock_held
      Src: /src/cpython/Modules/_csv.c:1442,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_csv.c:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1437
    functionDepth: 4
    functionLinenumber: 1437
    functionLinenumberEnd: 1445
    functionName: csv_writerow
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - csv_writerow_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_writerow(PyObject *op, PyObject *seq)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_csv.c:1459,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_csv.c:1463,1
    - Dst: csv_writerow
      Src: /src/cpython/Modules/_csv.c:1464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1473,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:1474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - seqseq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1454
    functionDepth: 5
    functionLinenumber: 1454
    functionLinenumberEnd: 1477
    functionName: csv_writerows
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - csv_writerow
    - PyErr_Occurred
    - Py_DECREF
    - 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: 1486
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1486
    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:1497,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1498,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1499,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1500,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_csv.c:1501,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1503
    functionName: Writer_traverse
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - _WriterObj_CAST
    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:1508,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1509,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1510,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_csv.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1513
    functionName: Writer_clear
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _WriterObj_CAST
    linkageType: ''
    returnType: int
    signature: int Writer_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _WriterObj_CAST
      Src: /src/cpython/Modules/_csv.c:1518,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_csv.c:1519,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_csv.c:1520,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_csv.c:1521,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_csv.c:1523,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_csv.c:1525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1527
    functionName: Writer_dealloc
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - _WriterObj_CAST
    - PyObject_GC_Del
    - PyMem_Free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Writer_dealloc(PyObject *op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1559,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_csv.c:1560,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_csv.c:1573,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_csv.c:1575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1576,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_csv.c:1579,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1582,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_csv.c:1585,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:1586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1588,1
    - Dst: _call_dialect
      Src: /src/cpython/Modules/_csv.c:1591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1594,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_csv.c:1597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - keyword_args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1599
    functionName: csv_writer
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - get_csv_state
    - PyObject_GC_Track
    - PyCallable_Check
    - PyErr_SetString
    - _call_dialect
    - PyObject_GetOptionalAttr
    - Py_DECREF
    - Py_NewRef
    - PyArg_UnpackTuple
    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:1615,1
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1611
    functionDepth: 2
    functionLinenumber: 1611
    functionLinenumberEnd: 1616
    functionName: _csv_list_dialects_impl
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_csv_state
    - PyDict_Keys
    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:1622,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_csv.c:1625,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_csv.c:1627,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_csv.c:1628,1
    - Dst: _call_dialect
      Src: /src/cpython/Modules/_csv.c:1632,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_csv.c:1635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1618
    functionDepth: 2
    functionLinenumber: 1618
    functionLinenumberEnd: 1641
    functionName: csv_register_dialect
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_csv_state
    - PyArg_UnpackTuple
    - PyErr_SetString
    - PyUnicode_Check
    - PyDict_SetItem
    - Py_DECREF
    - _call_dialect
    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:1656,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_csv.c:1657,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1652
    functionDepth: 2
    functionLinenumber: 1652
    functionLinenumberEnd: 1666
    functionName: _csv_unregister_dialect_impl
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyDict_Pop
    - get_csv_state
    - PyErr_Format
    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:1680,1
    - Dst: get_csv_state
      Src: /src/cpython/Modules/_csv.c:1680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1681
    functionName: _csv_get_dialect_impl
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_csv_state
    - get_dialect_from_registry
    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:1698,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_csv.c:1699,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_csv.c:1701,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_csv.c:1702,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_csv.c:1706,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_csv.c:1707,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_csv.c:1710,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_csv.c:1712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - module
    - new_limit
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1694
    functionDepth: 2
    functionLinenumber: 1694
    functionLinenumberEnd: 1713
    functionName: _csv_field_size_limit_impl
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_csv_state
    - PyLong_CheckExact
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyLong_FromSsize_t
    - PyErr_Format
    - PyErr_Occurred
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - 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:1783,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_csv.c:1785,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_csv.c:1787,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_csv.c:1791,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_csv.c:1793,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_csv.c:1797,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_csv.c:1799,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_csv.c:1807,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_csv.c:1808,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_csv.c:1814,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_csv.c:1820,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_csv.c:1824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_csv.c:1826,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_csv.c:1830,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_csv.c:1834,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1779
    functionDepth: 2
    functionLinenumber: 1779
    functionLinenumberEnd: 1839
    functionName: csv_exec
    functionSourceFile: /src/cpython/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - get_csv_state
    - PyUnicode_InternFromString
    - PyType_FromModuleAndSpec
    - PyTuple_Pack
    - Py_DECREF
    - PyModule_AddObjectRef
    - PyModule_AddType
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int csv_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_csv.c:1864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1865
    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:
    - _PyObject_IsFreed
    - va_start
    - va_end
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - assert
    - PyErr_Format
    - va_arg
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    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:
    - PyTuple_FromArray
    - Py_DECREF
    - pack_arguments_newref
    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:
    - pack_arguments_newref
    - PyBytes_Check
    - PyErr_SetString
    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:
    - pack_arguments_newref
    - PyErr_SetString
    - PyByteArray_Check
    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:
    - pack_arguments_newref
    - PyErr_SetString
    - PyUnicode_Check
    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:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - module
    - a
    - b
    - c
    - d
    - e
    - f
    - g
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 461
    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, Py_ssize_t d, Py_ssize_t
      e,\n                          Py_ssize_t f, Py_ssize_t g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PACKED_ARGS
      Src: /src/cpython/Modules/_testclinic.c:479,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: 480
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 480
    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:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 496
    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:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 512
    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:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 528
    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:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 544
    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:562,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:562,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:567,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:568,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:568,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:574,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:575,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:575,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_testclinic.c:581,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:582,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:582,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testclinic.c:588,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testclinic.c:593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:599,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: 561
        line_start: 561
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 574
        line_start: 574
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 581
        line_start: 581
        source_file: /src/cpython/Modules/_testclinic.c
    constantsTouched: []
    func_position:
      end: 602
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 602
    functionName: str_converter_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyTuple_New
    - PyUnicode_FromStringAndSize
    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:620,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:620,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:625,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:626,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:626,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testclinic.c:632,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:633,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:633,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_testclinic.c:639,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:640,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testclinic.c:640,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testclinic.c:646,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testclinic.c:651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:657,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: 619
        line_start: 619
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (arg || PyErr_Occurred())
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/cpython/Modules/_testclinic.c
    constantsTouched: []
    func_position:
      end: 660
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 660
    functionName: str_converter_encoding_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyTuple_New
    - PyUnicode_FromStringAndSize
    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: PyBytesWriter_Create
      Src: /src/cpython/Modules/_testclinic.c:666,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_testclinic.c:670,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Modules/_testclinic.c:671,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_testclinic.c:672,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_testclinic.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 676
    functionName: bytes_from_buffer
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - PyBuffer_ToContiguous
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    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:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 692
    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:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 708
    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:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 725
    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:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 742
    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:761,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: 762
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 762
    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:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 781
    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:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 798
    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:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 811
    functionDepth: 2
    functionLinenumber: 811
    functionLinenumberEnd: 816
    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:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 836
    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:855,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: 856
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 856
    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:875,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: 876
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 876
    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:896,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: 897
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 897
    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:917,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: 918
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 918
    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:939,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: 940
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 940
    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:962,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: 963
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 963
    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:984,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: 985
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 985
    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:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1001
    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:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1016
    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:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1035
    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:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1054
    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:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1073
    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:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    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:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - args
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1101
    functionDepth: 2
    functionLinenumber: 1101
    functionLinenumberEnd: 1108
    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:1126,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: 1127
      start: 1121
    functionDepth: 2
    functionLinenumber: 1121
    functionLinenumberEnd: 1127
    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:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - args
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1143
    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:1161,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: 1162
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1162
    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:1177,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: 1178
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1178
    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:1196,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: 1197
      start: 1191
    functionDepth: 3
    functionLinenumber: 1191
    functionLinenumberEnd: 1197
    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:1216,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: 1217
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1217
    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:1236,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: 1237
      start: 1230
    functionDepth: 3
    functionLinenumber: 1230
    functionLinenumberEnd: 1237
    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: 1260
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1260
    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: 1280
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1280
    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: 1297
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1297
    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: 1316
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1316
    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:1333,1
    - Dst: assert
      Src: /src/cpython/Modules/_testclinic.c:1334,1
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:1336,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: 1332
        line_start: 1332
        source_file: /src/cpython/Modules/_testclinic.c
    - condition: (constraints != NULL)
      pos:
        line_end: 1333
        line_start: 1333
        source_file: /src/cpython/Modules/_testclinic.c
    constantsTouched: []
    func_position:
      end: 1337
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1337
    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: 1349
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1349
    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: 1361
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1361
    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:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - custom_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1384
    functionDepth: 1
    functionLinenumber: 1384
    functionLinenumberEnd: 1389
    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:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - custom_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1401
    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:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1420
    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:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - arg
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1435
    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:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - args
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1449
    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:1467,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: 1468
      start: 1460
    functionDepth: 2
    functionLinenumber: 1460
    functionLinenumberEnd: 1468
    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:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1527
    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:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - a
    - b
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1542
    functionDepth: 2
    functionLinenumber: 1542
    functionLinenumberEnd: 1550
    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:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - a
    - b
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1565
    functionDepth: 2
    functionLinenumber: 1565
    functionLinenumberEnd: 1573
    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:1595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - a
    - b
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1588
    functionDepth: 2
    functionLinenumber: 1588
    functionLinenumberEnd: 1596
    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:1614,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: 1615
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1615
    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:1638,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: 1639
      start: 1630
    functionDepth: 3
    functionLinenumber: 1630
    functionLinenumberEnd: 1639
    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:1662,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: 1663
      start: 1654
    functionDepth: 3
    functionLinenumber: 1654
    functionLinenumberEnd: 1663
    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:1686,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: 1687
      start: 1678
    functionDepth: 3
    functionLinenumber: 1678
    functionLinenumberEnd: 1687
    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:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - a
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1753
    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: 1764
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1764
    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: 1794
      start: 1789
    functionDepth: 0
    functionLinenumber: 1789
    functionLinenumberEnd: 1794
    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: 1805
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1805
    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: 1841
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1841
    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:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - a
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1862
    functionDepth: 0
    functionLinenumber: 1862
    functionLinenumberEnd: 1867
    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: 1891
      start: 1886
    functionDepth: 0
    functionLinenumber: 1886
    functionLinenumberEnd: 1891
    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: 1921
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1921
    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: 1944
      start: 1939
    functionDepth: 0
    functionLinenumber: 1939
    functionLinenumberEnd: 1944
    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: 1959
      start: 1954
    functionDepth: 0
    functionLinenumber: 1954
    functionLinenumberEnd: 1959
    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: 1978
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 1978
    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: 1993
      start: 1988
    functionDepth: 0
    functionLinenumber: 1988
    functionLinenumberEnd: 1993
    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: 2008
      start: 2003
    functionDepth: 0
    functionLinenumber: 2003
    functionLinenumberEnd: 2008
    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: 2027
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2027
    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: 2044
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2044
    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: 2062
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2062
    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: 2082
      start: 2076
    functionDepth: 0
    functionLinenumber: 2076
    functionLinenumberEnd: 2082
    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: 2102
      start: 2096
    functionDepth: 0
    functionLinenumber: 2096
    functionLinenumberEnd: 2102
    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: 2128
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2128
    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: 2144
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2144
    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: 2162
      start: 2156
    functionDepth: 0
    functionLinenumber: 2156
    functionLinenumberEnd: 2162
    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: 2178
      start: 2173
    functionDepth: 0
    functionLinenumber: 2173
    functionLinenumberEnd: 2178
    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: 2196
      start: 2190
    functionDepth: 0
    functionLinenumber: 2190
    functionLinenumberEnd: 2196
    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: 2213
      start: 2207
    functionDepth: 0
    functionLinenumber: 2207
    functionLinenumberEnd: 2213
    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: 2231
      start: 2225
    functionDepth: 0
    functionLinenumber: 2225
    functionLinenumberEnd: 2231
    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: 2251
      start: 2245
    functionDepth: 0
    functionLinenumber: 2245
    functionLinenumberEnd: 2251
    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: 2277
      start: 2270
    functionDepth: 0
    functionLinenumber: 2270
    functionLinenumberEnd: 2277
    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: 2303
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2303
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:2340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2336
    functionDepth: 2
    functionLinenumber: 2336
    functionLinenumberEnd: 2341
    functionName: lone_kwds_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lone_kwds_impl(PyObject *module, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:2357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - a
    - b
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2352
    functionDepth: 2
    functionLinenumber: 2352
    functionLinenumberEnd: 2358
    functionName: kwds_with_pos_only_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nkwds_with_pos_only_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                        PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2367
    functionDepth: 2
    functionLinenumber: 2367
    functionLinenumberEnd: 2372
    functionName: kwds_with_stararg_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kwds_with_stararg_impl(PyObject *module, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_arguments_newref
      Src: /src/cpython/Modules/_testclinic.c:2390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - a
    - b
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2384
    functionDepth: 2
    functionLinenumber: 2384
    functionLinenumberEnd: 2391
    functionName: kwds_with_pos_only_and_stararg_impl
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - pack_arguments_newref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nkwds_with_pos_only_and_stararg_impl(PyObject *module,
      PyObject *a,\n                                    PyObject *b, PyObject *args,\n
      \                                   PyObject *kwds)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testclinic.c:2509,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testclinic.c:2514,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2516,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2519,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2522,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2525,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2528,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2531,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testclinic.c:2534,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testclinic.c:2540,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2506
    functionDepth: 1
    functionLinenumber: 2506
    functionLinenumberEnd: 2542
    functionName: PyInit__testclinic
    functionSourceFile: /src/cpython/Modules/_testclinic.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyModule_AddType
    - 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:
    - CFStringGetLength
    - PyErr_NoMemory
    - PyUnicode_DecodeUTF8
    - CFStringGetCStringPtr
    - CFStringGetCString
    - strlen
    - PyMem_Malloc
    - PyMem_Free
    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:
    - CFDictionaryGetValue
    - PyTuple_SetItem
    - PyTuple_New
    - CFArrayGetValueAtIndex
    - SCDynamicStoreCopyProxies
    - CFRelease
    - PyDict_SetItemString
    - Py_CLEAR
    - PyBool_FromLong
    - cfnum_to_int32
    - Py_XDECREF
    - Py_DECREF
    - cfstring_to_pystring
    - Py_NewRef
    - CFArrayGetCount
    - PyDict_New
    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:
    - CFDictionaryGetValue
    - PyUnicode_FromFormat
    - PyDict_SetItemString
    - cfnum_to_int32
    - Py_DECREF
    - cfstring_to_pystring
    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:
    - SCDynamicStoreCopyProxies
    - CFRelease
    - set_proxy
    - Py_XDECREF
    - PyDict_New
    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: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    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:134,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: steal_buffer
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    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:148,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - err
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 160
    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: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:196,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:198,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:198,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: GET_WSA_POINTER
      Src: /src/cpython/Modules/overlapped.c:205,1
    - Dst: closesocket
      Src: /src/cpython/Modules/overlapped.c:207,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:208,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:208,1
    - Dst: closesocket
      Src: /src/cpython/Modules/overlapped.c:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 214
    functionName: initialize_function_pointers
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - socket
    - SetFromWindowsErr
    - closesocket
    - GET_WSA_POINTER
    linkageType: ''
    returnType: int
    signature: int initialize_function_pointers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateIoCompletionPort
      Src: /src/cpython/Modules/overlapped.c:242,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:247,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:248,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: 249
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: _overlapped_CreateIoCompletionPort_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - CreateIoCompletionPort
    - Py_BuildValue
    - SetFromWindowsErr
    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:276,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:280,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:285,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - CompletionPort
    - Milliseconds
    argTypes:
    - PyObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 289
    functionName: _overlapped_GetQueuedCompletionStatus_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - GetQueuedCompletionStatus
    - Py_BuildValue
    - SetFromWindowsErr
    - GetLastError
    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:314,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:319,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: 321
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 321
    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:337,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/overlapped.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lpParameter
    - TimerOrWaitFired
    argTypes:
    - PVOID
    - BOOLEAN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: PostToQueueCallback
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PostQueuedCompletionStatus
    linkageType: ''
    returnType: VOID
    signature: VOID PostToQueueCallback(PVOID lpParameter, BOOLEAN TimerOrWaitFired)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/overlapped.c:368,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:370,1
    - Dst: RegisterWaitForSingleObject
      Src: /src/cpython/Modules/overlapped.c:374,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:378,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/overlapped.c:379,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:383,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: 384
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 384
    functionName: _overlapped_RegisterWaitWithQueue_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - RegisterWaitForSingleObject
    - Py_BuildValue
    - SetFromWindowsErr
    - PyMem_RawFree
    - 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:402,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - WaitHandle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: _overlapped_UnregisterWait_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - UnregisterWait
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_UnregisterWait_impl(PyObject *module, HANDLE WaitHandle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterWaitEx
      Src: /src/cpython/Modules/overlapped.c:428,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - WaitHandle
    - Event
    argTypes:
    - PyObject*
    - HANDLE
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 434
    functionName: _overlapped_UnregisterWaitEx_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - UnregisterWaitEx
    - SetFromWindowsErr
    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:463,1
    - Dst: CreateEventW
      Src: /src/cpython/Modules/overlapped.c:468,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:472,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:473,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: 474
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 474
    functionName: _overlapped_CreateEvent_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - CreateEventW
    - PyErr_SetString
    - Py_BuildValue
    - SetFromWindowsErr
    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:492,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 498
    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:516,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 522
    functionName: _overlapped_ResetEvent_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - ResetEvent
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_ResetEvent_impl(PyObject *module, HANDLE Handle)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:548,1
    - Dst: bind
      Src: /src/cpython/Modules/overlapped.c:552,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:556,1
    - Dst: bind
      Src: /src/cpython/Modules/overlapped.c:560,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:563,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:568,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - module
    - Socket
    - Family
    argTypes:
    - PyObject*
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 570
    functionName: _overlapped_BindLocal_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - PyErr_SetString
    - SetFromWindowsErr
    - bind
    - memset
    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:593,1
    - Dst: MAKELANGID
      Src: /src/cpython/Modules/overlapped.c:598,1
    - Dst: iswspace
      Src: /src/cpython/Modules/overlapped.c:603,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/overlapped.c:605,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/overlapped.c:607,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/overlapped.c:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - code
    argTypes:
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 611
    functionName: _overlapped_FormatMessage_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - iswspace
    - PyUnicode_FromWideChar
    - MAKELANGID
    - PyUnicode_FromFormat
    - FormatMessageW
    - LocalFree
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _overlapped_FormatMessage_impl(PyObject *module, DWORD code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/cpython/Modules/overlapped.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ov
    argTypes:
    - OVERLAPPED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 624
    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:647,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:649,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/overlapped.c:652,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/overlapped.c:655,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:663,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - type
    - event
    argTypes:
    - PyTypeObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 668
    functionName: _overlapped_Overlapped_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetFromWindowsErr
    - CloseHandle
    - memset
    - CreateEvent
    - PyObject_New
    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:685,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:694,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:697,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/overlapped.c:704,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/overlapped.c:707,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/overlapped.c:715,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 721
    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:727,1
    - Dst: OverlappedObject_CAST
      Src: /src/cpython/Modules/overlapped.c:730,1
    - Dst: HasOverlappedIoCompleted
      Src: /src/cpython/Modules/overlapped.c:732,1
    - Dst: CancelIoEx
      Src: /src/cpython/Modules/overlapped.c:754,1
    - Dst: GetOverlappedResult
      Src: /src/cpython/Modules/overlapped.c:757,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:761,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/overlapped.c:767,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/overlapped.c:771,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/overlapped.c:777,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:780,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/overlapped.c:781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/overlapped.c:783,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/overlapped.c:784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 786
    functionName: Overlapped_dealloc
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - CancelIoEx
    - OverlappedObject_CAST
    - GetOverlappedResult
    - CloseHandle
    - HasOverlappedIoCompleted
    - PyErr_Format
    - GetLastError
    - SetLastError
    - Py_DECREF
    - PyObject_Free
    - PyErr_FormatUnraisable
    - Py_TYPE
    - Overlapped_clear
    linkageType: ''
    returnType: void
    signature: void Overlapped_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/cpython/Modules/overlapped.c:795,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/overlapped.c:796,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/overlapped.c:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 800
    functionName: make_ipv4_addr
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetFromErrno
    - inet_ntop
    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:808,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/overlapped.c:809,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/overlapped.c:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 813
    functionName: make_ipv6_addr
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetFromErrno
    - inet_ntop
    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:823,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:826,1
    - Dst: ntohs
      Src: /src/cpython/Modules/overlapped.c:826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:827,1
    - Dst: make_ipv6_addr
      Src: /src/cpython/Modules/overlapped.c:833,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:836,1
    - Dst: ntohs
      Src: /src/cpython/Modules/overlapped.c:838,1
    - Dst: ntohl
      Src: /src/cpython/Modules/overlapped.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:841,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - Address
    - Length
    argTypes:
    - LPSOCKADDR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 850
    functionName: unparse_address
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - ntohl
    - make_ipv6_addr
    - PyErr_SetString
    - Py_BuildValue
    - Py_DECREF
    - ntohs
    - make_ipv4_addr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _overlapped_Overlapped_cancel_impl(OverlappedObject *self)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:904,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:909,1
    - Dst: GetOverlappedResult
      Src: /src/cpython/Modules/overlapped.c:914,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:918,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:940,1
    - Dst: assert
      Src: /src/cpython/Modules/overlapped.c:945,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/overlapped.c:945,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/overlapped.c:946,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/overlapped.c:947,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/overlapped.c:950,1
    - Dst: assert
      Src: /src/cpython/Modules/overlapped.c:952,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/overlapped.c:952,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/overlapped.c:954,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/overlapped.c:956,1
    - Dst: unparse_address
      Src: /src/cpython/Modules/overlapped.c:962,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/overlapped.c:970,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/overlapped.c:971,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/overlapped.c:976,1
    - Dst: unparse_address
      Src: /src/cpython/Modules/overlapped.c:979,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/overlapped.c:986,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:988,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/overlapped.c:993,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/overlapped.c:999,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/overlapped.c:1001,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 2
    argNames:
    - self
    - wait
    argTypes:
    - OverlappedObject*
    - BOOL
    assertStmts:
    - condition: (PyBytes_CheckExact(self->read_from.allocated_buffer))
      pos:
        line_end: 951
        line_start: 951
        source_file: /src/cpython/Modules/overlapped.c
    - condition: (PyBytes_CheckExact(self->allocated_buffer))
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/cpython/Modules/overlapped.c
    constantsTouched: []
    func_position:
      end: 1003
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 1003
    functionName: _overlapped_Overlapped_getresult_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_SetString
    - GetOverlappedResult
    - SetFromWindowsErr
    - PyLong_FromUnsignedLong
    - PyBytes_CheckExact
    - assert
    - _PyBytes_Resize
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_NewRef
    - _PyTuple_FromPairSteal
    - unparse_address
    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:1014,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:1018,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1021,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1022,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1028,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - handle
    - bufstart
    - buflen
    argTypes:
    - OverlappedObject*
    - HANDLE
    - char*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1031
    functionName: do_ReadFile
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - ReadFile
    - mark_as_completed
    - SetFromWindowsErr
    - GetLastError
    - Overlapped_clear
    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:1051,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/overlapped.c:1056,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/overlapped.c:1058,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/overlapped.c:1058,1
    - Dst: do_ReadFile
      Src: /src/cpython/Modules/overlapped.c:1066,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/overlapped.c:1066,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - handle
    - size
    argTypes:
    - OverlappedObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1067
    functionName: _overlapped_Overlapped_ReadFile_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - do_ReadFile
    - Py_MAX
    - Py_MIN
    - 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:1085,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1091,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1095,1
    - Dst: do_ReadFile
      Src: /src/cpython/Modules/overlapped.c:1100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - handle
    - bufobj
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1079
    functionDepth: 3
    functionLinenumber: 1079
    functionLinenumberEnd: 1102
    functionName: _overlapped_Overlapped_ReadFileInto_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - do_ReadFile
    - PyErr_SetString
    - steal_buffer
    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:1117,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1121,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1124,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1125,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1131,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1132,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: 1134
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1134
    functionName: do_WSARecv
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - mark_as_completed
    - SetFromWindowsErr
    - WSARecv
    - Overlapped_clear
    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:1156,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/overlapped.c:1161,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/overlapped.c:1163,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/overlapped.c:1163,1
    - Dst: do_WSARecv
      Src: /src/cpython/Modules/overlapped.c:1171,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/overlapped.c:1171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - handle
    - size
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1148
    functionDepth: 3
    functionLinenumber: 1148
    functionLinenumberEnd: 1172
    functionName: _overlapped_Overlapped_WSARecv_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - Py_MAX
    - do_WSARecv
    - Py_MIN
    - PyBytes_AS_STRING
    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:1192,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1198,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1202,1
    - Dst: do_WSARecv
      Src: /src/cpython/Modules/overlapped.c:1207,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: 1209
      start: 1185
    functionDepth: 3
    functionLinenumber: 1185
    functionLinenumberEnd: 1209
    functionName: _overlapped_Overlapped_WSARecvInto_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - do_WSARecv
    - PyErr_SetString
    - steal_buffer
    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:1231,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1237,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1241,1
    - Dst: WriteFile
      Src: /src/cpython/Modules/overlapped.c:1247,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:1252,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1258,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - handle
    - bufobj
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1261
    functionName: _overlapped_Overlapped_WriteFile_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - steal_buffer
    - SetFromWindowsErr
    - GetLastError
    - WriteFile
    - Overlapped_clear
    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:1285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1291,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1295,1
    - Dst: WSASend
      Src: /src/cpython/Modules/overlapped.c:1303,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1307,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1313,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1314,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: 1316
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1316
    functionName: _overlapped_Overlapped_WSASend_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - PyErr_SetString
    - steal_buffer
    - SetFromWindowsErr
    - WSASend
    - Overlapped_clear
    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:1341,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/overlapped.c:1346,1
    - Dst: Py_AcceptEx
      Src: /src/cpython/Modules/overlapped.c:1355,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/overlapped.c:1356,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1360,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1366,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - ListenSocket
    - AcceptSocket
    argTypes:
    - OverlappedObject*
    - HANDLE
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1369
    functionName: _overlapped_Overlapped_AcceptEx_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - Overlapped_clear
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - 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:1381,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/overlapped.c:1383,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/overlapped.c:1385,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/overlapped.c:1388,1
    - Dst: WSAStringToAddressW
      Src: /src/cpython/Modules/overlapped.c:1393,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1394,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1394,1
    - Dst: htons
      Src: /src/cpython/Modules/overlapped.c:1398,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/overlapped.c:1400,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/overlapped.c:1404,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/overlapped.c:1410,1
    - Dst: WSAStringToAddressW
      Src: /src/cpython/Modules/overlapped.c:1415,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1416,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1416,1
    - Dst: htons
      Src: /src/cpython/Modules/overlapped.c:1420,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/overlapped.c:1424,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1428,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - obj
    - Address
    - Length
    argTypes:
    - PyObject*
    - SOCKADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1431
    functionName: parse_address
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 1
    functionsReached:
    - WSAGetLastError
    - htons
    - PyErr_SetString
    - SetFromWindowsErr
    - memset
    - WSAStringToAddressW
    - PyMem_Free
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - 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:1458,1
    - Dst: parse_address
      Src: /src/cpython/Modules/overlapped.c:1463,1
    - Dst: Py_ConnectEx
      Src: /src/cpython/Modules/overlapped.c:1471,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1475,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1481,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - ConnectSocket
    - AddressObj
    argTypes:
    - OverlappedObject*
    - HANDLE
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1445
    functionDepth: 3
    functionLinenumber: 1445
    functionLinenumberEnd: 1484
    functionName: _overlapped_Overlapped_ConnectEx_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - PyErr_SetString
    - SetFromWindowsErr
    - parse_address
    - Py_ConnectEx
    - Overlapped_clear
    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:1504,1
    - Dst: Py_DisconnectEx
      Src: /src/cpython/Modules/overlapped.c:1512,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1515,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1521,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - Socket
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1524
    functionName: _overlapped_Overlapped_DisconnectEx_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - Py_DisconnectEx
    - PyErr_SetString
    - SetFromWindowsErr
    - Overlapped_clear
    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:1553,1
    - Dst: Py_TransmitFile
      Src: /src/cpython/Modules/overlapped.c:1563,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1567,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1573,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1574,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: 1576
      start: 1541
    functionDepth: 2
    functionLinenumber: 1541
    functionLinenumberEnd: 1576
    functionName: _overlapped_Overlapped_TransmitFile_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - PyErr_SetString
    - SetFromWindowsErr
    - Py_TransmitFile
    - Overlapped_clear
    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:1596,1
    - Dst: ConnectNamedPipe
      Src: /src/cpython/Modules/overlapped.c:1604,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/overlapped.c:1607,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1610,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1616,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Pipe
    argTypes:
    - OverlappedObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1587
    functionDepth: 2
    functionLinenumber: 1587
    functionLinenumberEnd: 1619
    functionName: _overlapped_Overlapped_ConnectNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - mark_as_completed
    - PyErr_SetString
    - SetFromWindowsErr
    - ConnectNamedPipe
    - GetLastError
    - Overlapped_clear
    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:1638,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1645,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/overlapped.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Address
    argTypes:
    - OverlappedObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1647
    functionName: _overlapped_Overlapped_ConnectPipe_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - Py_BuildValue
    - SetFromWindowsErr
    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:1652,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/overlapped.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1654
    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:1659,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/overlapped.c:1660,1
    - Dst: HasOverlappedIoCompleted
      Src: /src/cpython/Modules/overlapped.c:1660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1662
    functionName: Overlapped_getpending
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - HasOverlappedIoCompleted
    - OverlappedObject_CAST
    - PyBool_FromLong
    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:1667,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1671,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1677,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1681,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1682,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1685,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/overlapped.c:1687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1692
    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:1722,1
    - Dst: WSAConnect
      Src: /src/cpython/Modules/overlapped.c:1730,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1738,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - module
    - ConnectSocket
    - AddressObj
    argTypes:
    - PyObject*
    - HANDLE
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1711
    functionDepth: 3
    functionLinenumber: 1711
    functionLinenumberEnd: 1740
    functionName: _overlapped_WSAConnect_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - parse_address
    - WSAGetLastError
    - SetFromWindowsErr
    - WSAConnect
    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:1770,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1776,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1782,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1786,1
    - Dst: WSASendTo
      Src: /src/cpython/Modules/overlapped.c:1794,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1798,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1806,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1807,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: 1809
      start: 1754
    functionDepth: 3
    functionLinenumber: 1754
    functionLinenumberEnd: 1809
    functionName: _overlapped_Overlapped_WSASendTo_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - PyErr_SetString
    - steal_buffer
    - SetFromWindowsErr
    - parse_address
    - WSASendTo
    - Overlapped_clear
    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:1835,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/overlapped.c:1840,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/overlapped.c:1842,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/overlapped.c:1842,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/overlapped.c:1847,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:1853,1
    - Dst: WSARecvFrom
      Src: /src/cpython/Modules/overlapped.c:1857,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1863,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1866,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1867,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1873,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 4
    argNames:
    - self
    - handle
    - size
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1822
    functionDepth: 2
    functionLinenumber: 1822
    functionLinenumberEnd: 1876
    functionName: _overlapped_Overlapped_WSARecvFrom_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - mark_as_completed
    - PyBytes_FromStringAndSize
    - WSARecvFrom
    - PyErr_SetString
    - Py_MAX
    - SetFromWindowsErr
    - Py_MIN
    - memset
    - PyBytes_AS_STRING
    - Overlapped_clear
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_overlapped_Overlapped_WSARecvFrom_impl(OverlappedObject
      *self,\n                                        HANDLE handle, DWORD size,\n
      \                                       DWORD flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1903,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1909,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/overlapped.c:1915,1
    - Dst: steal_buffer
      Src: /src/cpython/Modules/overlapped.c:1924,1
    - Dst: memset
      Src: /src/cpython/Modules/overlapped.c:1925,1
    - Dst: WSARecvFrom
      Src: /src/cpython/Modules/overlapped.c:1929,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/overlapped.c:1935,1
    - Dst: mark_as_completed
      Src: /src/cpython/Modules/overlapped.c:1938,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1939,1
    - Dst: Overlapped_clear
      Src: /src/cpython/Modules/overlapped.c:1945,1
    - Dst: SetFromWindowsErr
      Src: /src/cpython/Modules/overlapped.c:1946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 5
    argNames:
    - self
    - handle
    - bufobj
    - size
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - Py_buffer*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1891
    functionDepth: 2
    functionLinenumber: 1891
    functionLinenumberEnd: 1948
    functionName: _overlapped_Overlapped_WSARecvFromInto_impl
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - mark_as_completed
    - WSARecvFrom
    - PyErr_SetString
    - steal_buffer
    - SetFromWindowsErr
    - memset
    - Overlapped_clear
    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: 2033
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2033
    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:2038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:2043,1
    - Dst: initialize_function_pointers
      Src: /src/cpython/Modules/overlapped.c:2045,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/overlapped.c:2049,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/overlapped.c:2055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/overlapped.c:2056,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
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2071,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/overlapped.c:2072,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2034
    functionDepth: 3
    functionLinenumber: 2034
    functionLinenumberEnd: 2075
    functionName: overlapped_exec
    functionSourceFile: /src/cpython/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyType_FromModuleAndSpec
    - initialize_function_pointers
    - Py_DECREF
    - WINAPI_CONSTANT
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int overlapped_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/overlapped.c:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2092
    functionDepth: 1
    functionLinenumber: 2092
    functionLinenumberEnd: 2096
    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: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    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:
    - (
    - dirent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    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: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    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: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    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: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    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: 384
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 384
    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: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    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:660,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/posixmodule.c:660,1
    - Dst: PyList_GetSlice
      Src: /src/cpython/Modules/posixmodule.c:665,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:665,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/posixmodule.c:667,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Modules/posixmodule.c:672,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:673,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:675,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/posixmodule.c:676,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/posixmodule.c:678,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:685,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - lst
    - reverse
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyList_CheckExact(lst))
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 688
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 688
    functionName: run_at_forkers
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GetSlice
    - _PyObject_CallNoArgs
    - PyList_GET_ITEM
    - PyList_Reverse
    - assert
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    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:693,1
    - Dst: run_at_forkers
      Src: /src/cpython/Modules/posixmodule.c:694,1
    - Dst: _PyImport_AcquireLock
      Src: /src/cpython/Modules/posixmodule.c:696,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Modules/posixmodule.c:697,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/posixmodule.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 699
    functionName: PyOS_BeforeFork
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - run_at_forkers
    - _PyImport_AcquireLock
    - HEAD_LOCK
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorldAll
    linkageType: ''
    returnType: void
    signature: void PyOS_BeforeFork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/posixmodule.c:704,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Modules/posixmodule.c:705,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:707,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Modules/posixmodule.c:708,1
    - Dst: run_at_forkers
      Src: /src/cpython/Modules/posixmodule.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 710
    functionName: PyOS_AfterFork_Parent
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - run_at_forkers
    - _PyInterpreterState_GET
    - _PyImport_ReleaseLock
    - _PyEval_StartTheWorldAll
    - HEAD_UNLOCK
    linkageType: ''
    returnType: void
    signature: void PyOS_AfterFork_Parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 718
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_init
      Src: /src/cpython/Modules/posixmodule.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 726
    functionName: reset_asyncio_state
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - llist_init
    linkageType: ''
    returnType: void
    signature: void reset_asyncio_state(_PyThreadStateImpl *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_ReInitThreads
      Src: /src/cpython/Modules/posixmodule.c:736,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:737,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/posixmodule.c:741,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Modules/posixmodule.c:742,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:744,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/posixmodule.c:744,1
    - Dst: PyThread_get_thread_native_id
      Src: /src/cpython/Modules/posixmodule.c:746,1
    - Dst: _Py_brc_after_fork
      Src: /src/cpython/Modules/posixmodule.c:750,1
    - Dst: _Py_qsbr_after_fork
      Src: /src/cpython/Modules/posixmodule.c:751,1
    - Dst: _PyInterpreterState_ReinitRunningMain
      Src: /src/cpython/Modules/posixmodule.c:755,1
    - Dst: _PyEval_ReInitThreads
      Src: /src/cpython/Modules/posixmodule.c:757,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:758,1
    - Dst: reset_remotedebug_data
      Src: /src/cpython/Modules/posixmodule.c:769,1
    - Dst: reset_asyncio_state
      Src: /src/cpython/Modules/posixmodule.c:771,1
    - Dst: _PyThreadState_RemoveExcept
      Src: /src/cpython/Modules/posixmodule.c:777,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Modules/posixmodule.c:778,1
    - Dst: _PyThreadState_DeleteList
      Src: /src/cpython/Modules/posixmodule.c:779,1
    - Dst: _PyImport_ReInitLock
      Src: /src/cpython/Modules/posixmodule.c:781,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Modules/posixmodule.c:782,1
    - Dst: _PySignal_AfterFork
      Src: /src/cpython/Modules/posixmodule.c:784,1
    - Dst: _PyInterpreterState_DeleteExceptMain
      Src: /src/cpython/Modules/posixmodule.c:786,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:787,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:790,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/posixmodule.c:790,1
    - Dst: _PyPerfTrampoline_AfterFork_Child
      Src: /src/cpython/Modules/posixmodule.c:792,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:793,1
    - Dst: run_at_forkers
      Src: /src/cpython/Modules/posixmodule.c:797,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Modules/posixmodule.c:801,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (tstate->thread_id == PyThread_get_thread_ident())
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (_PyThreadState_GET() == tstate)
      pos:
        line_end: 789
        line_start: 789
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 802
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 802
    functionName: PyOS_AfterFork_Child
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_RemoveExcept
    - reset_remotedebug_data
    - _PyRuntimeState_ReInitThreads
    - _PyThreadState_DeleteList
    - PyThread_get_thread_native_id
    - _Py_brc_after_fork
    - _PyThreadState_GET
    - _PyEval_ReInitThreads
    - assert
    - _PyStatus_EXCEPTION
    - _Py_qsbr_after_fork
    - Py_ExitStatusException
    - _PySignal_AfterFork
    - _PyImport_ReleaseLock
    - _PyEval_StartTheWorldAll
    - reset_asyncio_state
    - _PyInterpreterState_DeleteExceptMain
    - run_at_forkers
    - _Py_EnsureTstateNotNULL
    - _PyInterpreterState_ReinitRunningMain
    - _PyPerfTrampoline_AfterFork_Child
    - _PyImport_ReInitLock
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: void
    signature: void PyOS_AfterFork_Child(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:810,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - lst
    - func
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 815
    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:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 826
    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:845,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 847
    functionName: _PyLong_FromUid
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _PyLong_FromGid(gid_t gid)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/posixmodule.c:866,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:868,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:870,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:870,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:887,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:893,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:918,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:919,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:944,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:949,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:959,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - uid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 961
    functionName: _Py_Uid_Converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyLong_AsUnsignedLong
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - _PyNumber_Index
    - _PyType_Name
    - Py_DECREF
    - 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:972,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:974,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:976,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:976,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:993,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:999,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:1025,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1026,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:1027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1051,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1056,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1066,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - gid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 1068
    functionName: _Py_Gid_Converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyLong_AsUnsignedLong
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - _PyNumber_Index
    - _PyType_Name
    - Py_DECREF
    - 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:1077,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dev
    argTypes:
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1081
    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:1088,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/posixmodule.c:1089,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/posixmodule.c:1095,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:1097,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/posixmodule.c:1097,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/posixmodule.c:1099,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:1101,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1108,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:1114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1115,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyLong_Check(obj))
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 1126
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1126
    functionName: _Py_Dev_Converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - PyLong_AsLongLongAndOverflow
    - _PyLong_IsNegative
    - PyLong_Check
    - PyLong_AsUnsignedLongLong
    - PyErr_Occurred
    - assert
    - _PyNumber_Index
    - Py_DECREF
    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:1149,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/posixmodule.c:1150,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/posixmodule.c:1156,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:1161,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/posixmodule.c:1161,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:1162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1163,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:1164,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:1171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - int*
    assertStmts:
    - condition: (PyLong_Check(index))
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 1178
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1178
    functionName: _fd_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_Check
    - PyLong_AsLongAndOverflow
    - PyErr_WarnEx
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Occurred
    - assert
    - _PyNumber_Index
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _fd_converter(PyObject *o, int *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:1187,1
    - Dst: _fd_converter
      Src: /src/cpython/Modules/posixmodule.c:1188,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1191,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:1193,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:1193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1196
    functionName: dir_fd_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _fd_converter
    - _PyType_Name
    - 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:1231,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1231
        line_start: 1231
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 1234
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1234
    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: 1357
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1357
    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: 1362
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1362
    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: 1367
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1367
    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:1374,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:1375,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1377
    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:1398,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/posixmodule.c:1405,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:1416,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:1417,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:1418,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Modules/posixmodule.c:1424,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:1424,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/posixmodule.c:1428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1429,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:1433,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:1436,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1440,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:1442,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:1442,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:1443,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:1443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1444,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:1449,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:1454,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1460,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:1464,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1465,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:1476,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:1482,1
    - Dst: _fd_converter
      Src: /src/cpython/Modules/posixmodule.c:1485,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1495,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:1504,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:1504,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:1508,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:1509,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:1510,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1511,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:1516,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:1521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1522,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1528,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:1532,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/cpython/Modules/posixmodule.c:1533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1548,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:1563,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:1564,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:1565,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:1567,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:1571,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 157
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1379
    functionDepth: 2
    functionLinenumber: 1379
    functionLinenumberEnd: 1579
    functionName: path_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_LookupSpecial
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - FORMAT_EXCEPTION
    - Py_TYPE
    - PyUnicode_DecodeFSDefaultAndSize
    - PyUnicode_Check
    - strlen
    - _fd_converter
    - _PyType_Name
    - PyBytes_AS_STRING
    - Py_XDECREF
    - _PyObject_CallNoArgs
    - PyIndex_Check
    - PyMem_Free
    - Py_INCREF
    - PyErr_Clear
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - Py_NewRef
    - PyBytes_GET_SIZE
    - path_cleanup
    - Py_SETREF
    - PyErr_ExceptionMatches
    - PyErr_Format
    - wcslen
    - _Py_ID
    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: 1395
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1395
    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:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - function_name
    - argument_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1589
    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:1595,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:1598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1591
    functionDepth: 3
    functionLinenumber: 1591
    functionLinenumberEnd: 1603
    functionName: dir_fd_unavailable
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - dir_fd_converter
    - argument_unavailable_error
    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:1611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - function_name
    - fd
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1605
    functionDepth: 2
    functionLinenumber: 1605
    functionLinenumberEnd: 1613
    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:1621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - function_name
    - follow_symlinks
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1615
    functionDepth: 2
    functionLinenumber: 1615
    functionLinenumberEnd: 1623
    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:1629,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: 1635
      start: 1625
    functionDepth: 1
    functionLinenumber: 1625
    functionLinenumberEnd: 1635
    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:1641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - function_name
    - dir_fd
    - fd
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1647
    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:1654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - function_name
    - is_fd
    - follow_symlinks
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1660
    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
      is_fd,\n                               int follow_symlinks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1667,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: 1673
      start: 1662
    functionDepth: 1
    functionLinenumber: 1662
    functionLinenumberEnd: 1673
    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:1679,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1685
    functionName: idtype_t_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    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:1698,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:1700,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1705
    functionName: Py_off_t_converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLong
    - PyLong_AsLongLong
    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:1711,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1715
    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:1729,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:1731,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/posixmodule.c:1735,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/posixmodule.c:1740,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/posixmodule.c:1741,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1742,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1744,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:1745,1
    - Dst: sigaddset
      Src: /src/cpython/Modules/posixmodule.c:1751,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:1754,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/posixmodule.c:1762,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:1767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1773,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - obj
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1775
    functionName: _Py_Sigset_Converter
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - PyLong_AsLongAndOverflow
    - sigaddset
    - PyObject_GetIter
    - PyErr_WarnFormat
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - PyErr_SetFromErrno
    - PyIter_Next
    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:1800,1
    - Dst: _wgetenv
      Src: /src/cpython/Modules/posixmodule.c:1806,1
    - Dst: _NSGetEnviron
      Src: /src/cpython/Modules/posixmodule.c:1812,1
    - Dst: wcschr
      Src: /src/cpython/Modules/posixmodule.c:1822,1
    - Dst: strchr
      Src: /src/cpython/Modules/posixmodule.c:1824,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:1829,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:1831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1834,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:1838,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:1840,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:1840,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1844,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/posixmodule.c:1847,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:1854,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1790
    functionDepth: 1
    functionLinenumber: 1790
    functionLinenumberEnd: 1857
    functionName: convertenviron
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyDict_SetDefaultRef
    - wcschr
    - _wgetenv
    - _NSGetEnviron
    - PyBytes_FromStringAndSize
    - strchr
    - strlen
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      convertenviron(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:1864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1865
    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:1876,1
    - Dst: PyErr_SetFromWindowsErrWithFilename
      Src: /src/cpython/Modules/posixmodule.c:1878,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:1880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - function
    - filename
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 1881
    functionName: win32_error
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyErr_SetFromWindowsErrWithFilename
    - GetLastError
    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:1888,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:1893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - function
    - filename
    - err
    argTypes:
    - char*
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1883
    functionDepth: 1
    functionLinenumber: 1883
    functionLinenumberEnd: 1894
    functionName: win32_error_object_err
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      win32_error_object_err(const char* function, PyObject* filename, DWORD err)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:1899,1
    - Dst: win32_error_object_err
      Src: /src/cpython/Modules/posixmodule.c:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - function
    - filename
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1896
    functionDepth: 2
    functionLinenumber: 1896
    functionLinenumberEnd: 1901
    functionName: win32_error_object
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_error_object_err
    - GetLastError
    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:1908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1905
    functionDepth: 1
    functionLinenumber: 1905
    functionLinenumberEnd: 1909
    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:1915,1
    - Dst: posix_path_object_error
      Src: /src/cpython/Modules/posixmodule.c:1918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1911
    functionDepth: 2
    functionLinenumber: 1911
    functionLinenumberEnd: 1920
    functionName: path_object_error
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - posix_path_object_error
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      path_object_error(PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/cpython/Modules/posixmodule.c:1926,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Modules/posixmodule.c:1929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - path2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1922
    functionDepth: 1
    functionLinenumber: 1922
    functionLinenumberEnd: 1931
    functionName: path_object_error2
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    - PyErr_SetFromErrnoWithFilenameObjects
    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:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1933
    functionDepth: 3
    functionLinenumber: 1933
    functionLinenumberEnd: 1937
    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:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1939
    functionDepth: 2
    functionLinenumber: 1939
    functionLinenumberEnd: 1943
    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:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - path2
    argTypes:
    - path_t*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1945
    functionDepth: 2
    functionLinenumber: 1945
    functionLinenumberEnd: 1949
    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:1966,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:1968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1954
    functionDepth: 2
    functionLinenumber: 1954
    functionLinenumberEnd: 1970
    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:1986,1
    - Dst: GetCurrentDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:1988,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:1988,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:1991,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/posixmodule.c:1992,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:1994,1
    - Dst: GetCurrentDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:1997,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:1999,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/posixmodule.c:2003,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/posixmodule.c:2004,1
    - Dst: SetEnvironmentVariableW
      Src: /src/cpython/Modules/posixmodule.c:2007,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:2010,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - path
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1979
    functionDepth: 1
    functionLinenumber: 1979
    functionLinenumberEnd: 2012
    functionName: win32_wchdir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SetCurrentDirectoryW
    - Py_ARRAY_LENGTH
    - GetCurrentDirectoryW
    - PyMem_RawFree
    - PyMem_RawMalloc
    - wcsncmp
    - SetLastError
    - SetEnvironmentVariableW
    linkageType: ''
    returnType: BOOL
    signature: BOOL win32_wchdir(LPCWSTR path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:2031,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: 2043
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2043
    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:2051,1
    - Dst: malloc
      Src: /src/cpython/Modules/posixmodule.c:2054,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2056,1
    - Dst: wcsncpy_s
      Src: /src/cpython/Modules/posixmodule.c:2059,1
    - Dst: free
      Src: /src/cpython/Modules/posixmodule.c:2065,1
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:2069,1
    - Dst: free
      Src: /src/cpython/Modules/posixmodule.c:2071,1
    - Dst: FindClose
      Src: /src/cpython/Modules/posixmodule.c:2076,1
    - Dst: find_data_to_file_info
      Src: /src/cpython/Modules/posixmodule.c:2077,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: 2079
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2079
    functionName: attributes_from_dir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - FindClose
    - wcsncpy_s
    - FindFirstFileW
    - SetLastError
    - find_data_to_file_info
    - wcslen
    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:2093,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/posixmodule.c:2095,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/posixmodule.c:2096,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/posixmodule.c:2097,1
    - Dst: _wcsicmp
      Src: /src/cpython/Modules/posixmodule.c:2098,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: 2103
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2103
    functionName: update_st_mode_from_path
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcsrchr
    - _wcsicmp
    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:2127,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2130,1
    - Dst: attributes_from_dir
      Src: /src/cpython/Modules/posixmodule.c:2135,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2137,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2145,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:2152,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2154,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:2162,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2166,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:2176,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2180,1
    - Dst: GetFileType
      Src: /src/cpython/Modules/posixmodule.c:2192,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2194,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:2198,1
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:2199,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:2217,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2220,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:2233,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2237,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:2244,1
    - Dst: win32_xstat_slow_impl
      Src: /src/cpython/Modules/posixmodule.c:2245,1
    - Dst: GetFileInformationByHandle
      Src: /src/cpython/Modules/posixmodule.c:2250,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:2251,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2253,1
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:2259,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:2270,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/cpython/Modules/posixmodule.c:2276,1
    - Dst: update_st_mode_from_path
      Src: /src/cpython/Modules/posixmodule.c:2277,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2282,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:2283,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:2287,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: 2292
      start: 2106
    functionDepth: 2
    functionLinenumber: 2106
    functionLinenumberEnd: 2292
    functionName: win32_xstat_slow_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - GetFileInformationByHandleEx
    - attributes_from_dir
    - GetFileType
    - update_st_mode_from_path
    - win32_xstat_slow_impl
    - GetFileAttributesW
    - CloseHandle
    - CreateFileW
    - IsReparseTagNameSurrogate
    - memset
    - GetLastError
    - SetLastError
    - _Py_attribute_data_to_stat
    - GetFileInformationByHandle
    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:2299,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:2304,1
    - Dst: _Py_stat_basic_info_to_stat
      Src: /src/cpython/Modules/posixmodule.c:2306,1
    - Dst: update_st_mode_from_path
      Src: /src/cpython/Modules/posixmodule.c:2307,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:2311,1
    - Dst: win32_xstat_slow_impl
      Src: /src/cpython/Modules/posixmodule.c:2324,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: 2325
      start: 2294
    functionDepth: 3
    functionLinenumber: 2294
    functionLinenumberEnd: 2325
    functionName: win32_xstat_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_stat_basic_info_to_stat
    - update_st_mode_from_path
    - win32_xstat_slow_impl
    - IsReparseTagNameSurrogate
    - _Py_GetFileInformationByName
    - GetLastError
    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:2332,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: 2339
      start: 2327
    functionDepth: 4
    functionLinenumber: 2327
    functionLinenumberEnd: 2339
    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:2353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - result
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2350
    functionDepth: 5
    functionLinenumber: 2350
    functionLinenumberEnd: 2354
    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:2359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - result
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2356
    functionDepth: 5
    functionLinenumber: 2356
    functionLinenumberEnd: 2360
    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:2557,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:2561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2562,1
    - Dst: structseq_new
      Src: /src/cpython/Modules/posixmodule.c:2568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2576,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:2577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2549
    functionDepth: 2
    functionLinenumber: 2549
    functionLinenumberEnd: 2581
    functionName: statresult_new
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - get_posix_state
    - PyImport_GetModule
    - Py_DECREF
    - structseq_new
    - Py_NewRef
    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:2586,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2587,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2588,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2589,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2591,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2593,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2595,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2597,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2598,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2599,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2600,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2602,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2605,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:2607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2583
    functionDepth: 2
    functionLinenumber: 2583
    functionLinenumberEnd: 2609
    functionName: _posix_clear
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_posix_state
    linkageType: ''
    returnType: int
    signature: int _posix_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:2614,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2615,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2616,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2617,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2619,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2621,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2623,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2625,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2626,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2627,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2628,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2630,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2633,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:2635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2611
    functionDepth: 2
    functionLinenumber: 2611
    functionLinenumberEnd: 2637
    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:2642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2639
    functionDepth: 3
    functionLinenumber: 2639
    functionLinenumberEnd: 2643
    functionName: _posix_free
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _posix_clear
    linkageType: ''
    returnType: void
    signature: void _posix_free(void *module)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:2651,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:2655,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/posixmodule.c:2661,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:2662,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/posixmodule.c:2667,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/posixmodule.c:2672,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2675,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2676,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2677,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - state
    - sec
    - nsec
    argTypes:
    - _posixstate*
    - time_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2647
    functionDepth: 1
    functionLinenumber: 2647
    functionLinenumberEnd: 2681
    functionName: stat_nanosecond_timestamp
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - PyNumber_Add
    - _PyLong_FromTime_t
    - PyNumber_Multiply
    - Py_XDECREF
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stat_nanosecond_timestamp(_posixstate *state, time_t sec, unsigned long nsec)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:2687,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:2687,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:2688,1
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/posixmodule.c:2691,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2695,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:2699,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2703,1
    - Dst: stat_nanosecond_timestamp
      Src: /src/cpython/Modules/posixmodule.c:2707,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2711,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:2714,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:2714,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - state
    - v
    - s_index
    - f_index
    - ns_index
    - sec
    - nsec
    argTypes:
    - _posixstate*
    - PyObject*
    - int
    - int
    - int
    - time_t
    - unsigned long
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2686
        line_start: 2686
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (nsec < SEC_TO_NS)
      pos:
        line_end: 2687
        line_start: 2687
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2713
        line_start: 2713
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 2716
      start: 2683
    functionDepth: 2
    functionLinenumber: 2683
    functionLinenumberEnd: 2716
    functionName: fill_time
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyStructSequence_SET_ITEM
    - _PyLong_FromTime_t
    - stat_nanosecond_timestamp
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: "int fill_time(_posixstate *state, PyObject *v, int s_index, int f_index,\n
      \         int ns_index, time_t sec, unsigned long nsec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:2723,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:2727,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2728,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:2730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2731,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:2734,1
    - Dst: PyNumber_Lshift
      Src: /src/cpython/Modules/posixmodule.c:2734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2735,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2737,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:2740,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/posixmodule.c:2740,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2720
    functionDepth: 1
    functionLinenumber: 2720
    functionLinenumberEnd: 2743
    functionName: _pystat_l128_from_l64_l64
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyNumber_Add
    - Py_SETREF
    - PyNumber_Lshift
    - Py_XDECREF
    - PyLong_FromUnsignedLongLong
    - Py_DECREF
    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:2751,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:2751,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:2753,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:2755,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2769,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2769,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2771,1
    - Dst: _pystat_l128_from_l64_l64
      Src: /src/cpython/Modules/posixmodule.c:2771,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2772,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:2772,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2776,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:2776,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2777,1
    - Dst: _PyLong_FromDev
      Src: /src/cpython/Modules/posixmodule.c:2777,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2779,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2779,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2781,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2781,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2782,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2782,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2784,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:2784,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2785,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:2785,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2789,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:2789,1
    - Dst: fill_time
      Src: /src/cpython/Modules/posixmodule.c:2808,1
    - Dst: fill_time
      Src: /src/cpython/Modules/posixmodule.c:2811,1
    - Dst: fill_time
      Src: /src/cpython/Modules/posixmodule.c:2814,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2819,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2819,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2822,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2822,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2825,1
    - Dst: _PyLong_FromDev
      Src: /src/cpython/Modules/posixmodule.c:2825,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2828,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2828,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2839,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:2839,1
    - Dst: fill_time
      Src: /src/cpython/Modules/posixmodule.c:2842,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2848,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:2848,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2851,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:2852,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2855,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/posixmodule.c:2855,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:2858,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:2858,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:2861,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:2861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:2865,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 2
    argNames:
    - module
    - st
    argTypes:
    - PyObject*
    - STRUCT_STAT*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2750
        line_start: 2750
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2860
        line_start: 2860
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 2869
      start: 2748
    functionDepth: 3
    functionLinenumber: 2748
    functionLinenumberEnd: 2869
    functionName: _pystat_fromstructstat
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromGid
    - PyLong_FromLong
    - PyStructSequence_New
    - PyUnicode_FromString
    - _pystat_l128_from_l64_l64
    - _PyLong_FromDev
    - PyLong_FromLongLong
    - get_posix_state
    - PyFloat_FromDouble
    - fill_time
    - PyErr_Occurred
    - assert
    - PyLong_FromUnsignedLongLong
    - SET_ITEM
    - Py_DECREF
    - _PyLong_FromUid
    - PyLong_FromUnsignedLong
    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: 2768
      start: 2760
    functionDepth: 0
    functionLinenumber: 2760
    functionLinenumberEnd: 2768
    functionName: SET_ITEM
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM(pos, expr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:2886,1
    - Dst: path_and_dir_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:2890,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:2891,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:2892,1
    - Dst: FSTAT
      Src: /src/cpython/Modules/posixmodule.c:2897,1
    - Dst: win32_stat
      Src: /src/cpython/Modules/posixmodule.c:2901,1
    - Dst: win32_lstat
      Src: /src/cpython/Modules/posixmodule.c:2903,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:2908,1
    - Dst: fstatat
      Src: /src/cpython/Modules/posixmodule.c:2914,1
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:2922,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:2928,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:2934,1
    - Dst: _pystat_fromstructstat
      Src: /src/cpython/Modules/posixmodule.c:2937,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 5
    argNames:
    - module
    - function_name
    - path
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - char*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2938
      start: 2874
    functionDepth: 6
    functionLinenumber: 2874
    functionLinenumberEnd: 2938
    functionName: posix_do_stat
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fstatat
    - dir_fd_and_fd_invalid
    - follow_symlinks_specified
    - path_error
    - win32_stat
    - LSTAT
    - win32_lstat
    - _pystat_fromstructstat
    - fd_and_follow_symlinks_invalid
    - FSTAT
    - STAT
    - argument_unavailable_error
    - path_and_dir_fd_invalid
    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:3306,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: 3307
      start: 3302
    functionDepth: 7
    functionLinenumber: 3302
    functionLinenumberEnd: 3307
    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:3331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3332
      start: 3326
    functionDepth: 7
    functionLinenumber: 3326
    functionLinenumberEnd: 3332
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3343
      start: 3342
    functionDepth: 0
    functionLinenumber: 3342
    functionLinenumberEnd: 3343
    functionName: Py_statx_result_CAST
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_statx_result_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attr
    - ','
    - type
    - ','
    - offset
    - ','
    - doc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3346
      start: 3344
    functionDepth: 0
    functionLinenumber: 3344
    functionLinenumberEnd: 3346
    functionName: M
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M(attr, type, offset, doc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attr
    - ','
    - type
    - ','
    - member
    - ','
    - doc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3346
    functionDepth: 0
    functionLinenumber: 3346
    functionLinenumberEnd: 3348
    functionName: MM
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MM(attr, type, member, doc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attr
    - ','
    - type
    - ','
    - member
    - ','
    - doc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3350
      start: 3348
    functionDepth: 0
    functionLinenumber: 3348
    functionLinenumberEnd: 3350
    functionName: MX
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MX(attr, type, member, doc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - MASK
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3371
    functionDepth: 0
    functionLinenumber: 3371
    functionLinenumberEnd: 3382
    functionName: STATX_GET_UINT
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATX_GET_UINT(ATTR, MASK)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_statx_result_CAST
      Src: /src/cpython/Modules/posixmodule.c:3406,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:3410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3403
    functionDepth: 1
    functionLinenumber: 3403
    functionLinenumberEnd: 3411
    functionName: pystatx_result_get_stx_mode
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_statx_result_CAST
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pystatx_result_get_stx_mode(PyObject *op, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - MASK
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3414
    functionDepth: 0
    functionLinenumber: 3414
    functionLinenumberEnd: 3425
    functionName: STATX_GET_ULONGLONG
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATX_GET_ULONGLONG(ATTR, MASK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - MASK
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3437
    functionDepth: 0
    functionLinenumber: 3437
    functionLinenumberEnd: 3449
    functionName: STATX_GET_DOUBLE
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATX_GET_DOUBLE(ATTR, MASK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATTR
    - ','
    - MEMBER
    - ','
    - MASK
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3455
    functionDepth: 0
    functionLinenumber: 3455
    functionLinenumberEnd: 3468
    functionName: STATX_GET_NSEC
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATX_GET_NSEC(ATTR, MEMBER, MASK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - attr
    - ','
    - doc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3476
      start: 3474
    functionDepth: 0
    functionLinenumber: 3474
    functionLinenumberEnd: 3476
    functionName: G
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(attr, doc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/posixmodule.c:3526,1
    - Dst: WRITE_ASCII
      Src: /src/cpython/Modules/posixmodule.c:3537,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:3539,1
    - Dst: WRITE_ASCII
      Src: /src/cpython/Modules/posixmodule.c:3541,1
    - Dst: WRITE_ASCII
      Src: /src/cpython/Modules/posixmodule.c:3545,1
    - Dst: WRITE_ASCII
      Src: /src/cpython/Modules/posixmodule.c:3546,1
    - Dst: PyMember_GetOne
      Src: /src/cpython/Modules/posixmodule.c:3548,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Modules/posixmodule.c:3552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:3553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:3556,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:3559,1
    - Dst: PyGetSetDef*::get
      Src: /src/cpython/Modules/posixmodule.c:3561,1
    - Dst: WRITE_ASCII
      Src: /src/cpython/Modules/posixmodule.c:3569,1
    - Dst: WRITE_ASCII
      Src: /src/cpython/Modules/posixmodule.c:3570,1
    - Dst: WRITE_ASCII
      Src: /src/cpython/Modules/posixmodule.c:3571,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Modules/posixmodule.c:3572,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:3573,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:3576,1
    - Dst: WRITE_ASCII
      Src: /src/cpython/Modules/posixmodule.c:3579,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/posixmodule.c:3580,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/posixmodule.c:3584,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3523
    functionDepth: 1
    functionLinenumber: 3523
    functionLinenumberEnd: 3586
    functionName: pystatx_result_repr
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyMember_GetOne
    - PyUnicodeWriter_Discard
    - Py_ARRAY_LENGTH
    - PyUnicodeWriter_Finish
    - PyGetSetDef*::get
    - PyUnicodeWriter_WriteRepr
    - Py_DECREF
    - WRITE_ASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pystatx_result_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3536
      start: 3530
    functionDepth: 0
    functionLinenumber: 3530
    functionLinenumberEnd: 3536
    functionName: WRITE_ASCII
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_ASCII(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/posixmodule.c:3591,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:3591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3588
    functionDepth: 1
    functionLinenumber: 3588
    functionLinenumberEnd: 3593
    functionName: pystatx_result_traverse
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int pystatx_result_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:3599,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/posixmodule.c:3600,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/posixmodule.c:3601,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:3602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3595
    functionDepth: 0
    functionLinenumber: 3595
    functionLinenumberEnd: 3603
    functionName: pystatx_result_dealloc
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pystatx_result_dealloc(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: path_and_dir_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:3660,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:3661,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:3662,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:3669,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:3674,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:3683,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/posixmodule.c:3685,1
    - Dst: statx
      Src: /src/cpython/Modules/posixmodule.c:3693,1
    - Dst: statx
      Src: /src/cpython/Modules/posixmodule.c:3696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - module
    - path
    - mask
    - flags
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - unsigned int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3697
      start: 3655
    functionDepth: 2
    functionLinenumber: 3655
    functionLinenumberEnd: 3697
    functionName: os_statx_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - dir_fd_and_fd_invalid
    - get_posix_state
    - statx
    - PyErr_Format
    - fd_and_follow_symlinks_invalid
    - PyTypeObject*::tp_alloc
    - path_and_dir_fd_invalid
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_statx_impl(PyObject *module, path_t *path, unsigned
      int mask, int flags,\n              int dir_fd, int follow_symlinks)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:3771,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:3775,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:3782,1
    - Dst: faccessat
      Src: /src/cpython/Modules/posixmodule.c:3811,1
    - Dst: access
      Src: /src/cpython/Modules/posixmodule.c:3818,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:3824,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:3827,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:3831,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: 3842
      start: 3753
    functionDepth: 3
    functionLinenumber: 3753
    functionLinenumberEnd: 3842
    functionName: os_access_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - access
    - follow_symlinks_specified
    - faccessat
    - GetFileAttributesW
    - argument_unavailable_error
    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:3875,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:3877,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/posixmodule.c:3879,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:3881,1
    - Dst: ttyname_r
      Src: /src/cpython/Modules/posixmodule.c:3883,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:3885,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:3887,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:3889,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:3890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3870
    functionDepth: 2
    functionLinenumber: 3870
    functionLinenumberEnd: 3892
    functionName: os_ttyname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ttyname_r
    - PyErr_NoMemory
    - posix_error
    - PyMem_RawFree
    - PyMem_RawMalloc
    - sysconf
    - PyUnicode_DecodeFSDefault
    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:3910,1
    - Dst: ctermid
      Src: /src/cpython/Modules/posixmodule.c:3912,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:3915,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:3916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3902
    functionDepth: 2
    functionLinenumber: 3902
    functionLinenumberEnd: 3917
    functionName: os_ctermid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ctermid_r
    - PyUnicode_DecodeFSDefault
    - ctermid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ctermid_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:3939,1
    - Dst: win32_wchdir
      Src: /src/cpython/Modules/posixmodule.c:3946,1
    - Dst: fchdir
      Src: /src/cpython/Modules/posixmodule.c:3950,1
    - Dst: chdir
      Src: /src/cpython/Modules/posixmodule.c:3953,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:3958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3962
      start: 3933
    functionDepth: 4
    functionLinenumber: 3933
    functionLinenumberEnd: 3962
    functionName: os_chdir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_wchdir
    - PySys_Audit
    - path_error
    - fchdir
    - 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:3958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3959
      start: 3955
    functionDepth: 4
    functionLinenumber: 3955
    functionLinenumberEnd: 3959
    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:3982,1
    - Dst: posix_fildes_fd
      Src: /src/cpython/Modules/posixmodule.c:3985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3986
      start: 3978
    functionDepth: 3
    functionLinenumber: 3978
    functionLinenumberEnd: 3986
    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:3999,1
    - Dst: SetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:4009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - LPCWSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4010
      start: 3996
    functionDepth: 0
    functionLinenumber: 3996
    functionLinenumberEnd: 4010
    functionName: win32_lchmod
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetFileAttributesW
    - SetFileAttributesW
    linkageType: ''
    returnType: int
    signature: int win32_lchmod(LPCWSTR path, int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:4016,1
    - Dst: SetFileInformationByHandle
      Src: /src/cpython/Modules/posixmodule.c:4027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - hfile
    - mode
    argTypes:
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4029
      start: 4012
    functionDepth: 0
    functionLinenumber: 4012
    functionLinenumberEnd: 4029
    functionName: win32_hchmod
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetFileInformationByHandleEx
    - SetFileInformationByHandle
    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:4034,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/posixmodule.c:4036,1
    - Dst: win32_hchmod
      Src: /src/cpython/Modules/posixmodule.c:4039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4040
      start: 4031
    functionDepth: 1
    functionLinenumber: 4031
    functionLinenumberEnd: 4040
    functionName: win32_fchmod
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SetLastError
    - _Py_get_osfhandle_noraise
    - win32_hchmod
    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:4094,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4098,1
    - Dst: win32_fchmod
      Src: /src/cpython/Modules/posixmodule.c:4107,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:4110,1
    - Dst: win32_hchmod
      Src: /src/cpython/Modules/posixmodule.c:4115,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:4116,1
    - Dst: win32_lchmod
      Src: /src/cpython/Modules/posixmodule.c:4120,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4124,1
    - Dst: fchmod
      Src: /src/cpython/Modules/posixmodule.c:4130,1
    - Dst: lchmod
      Src: /src/cpython/Modules/posixmodule.c:4136,1
    - Dst: fchmodat
      Src: /src/cpython/Modules/posixmodule.c:4152,1
    - Dst: chmod
      Src: /src/cpython/Modules/posixmodule.c:4173,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4189,1
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:4196,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:4199,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4204,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 5
    argNames:
    - module
    - path
    - mode
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4209
      start: 4081
    functionDepth: 4
    functionLinenumber: 4081
    functionLinenumberEnd: 4209
    functionName: os_chmod_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fchmod
    - dir_fd_and_follow_symlinks_invalid
    - follow_symlinks_specified
    - PySys_Audit
    - win32_hchmod
    - path_error
    - lchmod
    - fchmodat
    - CloseHandle
    - chmod
    - CreateFileW
    - win32_fchmod
    - argument_unavailable_error
    - win32_lchmod
    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:4110,1
    - Dst: win32_hchmod
      Src: /src/cpython/Modules/posixmodule.c:4115,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:4116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4109
    functionDepth: 1
    functionLinenumber: 4109
    functionLinenumberEnd: 4118
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - CreateFileW
    - win32_hchmod
    linkageType: ''
    returnType: else
    signature: else if (follow_symlinks)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4189,1
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:4196,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:4199,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4205
      start: 4183
    functionDepth: 4
    functionLinenumber: 4183
    functionLinenumberEnd: 4205
    functionName: if
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - follow_symlinks_specified
    - path_error
    - dir_fd_and_follow_symlinks_invalid
    - argument_unavailable_error
    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:4235,1
    - Dst: win32_fchmod
      Src: /src/cpython/Modules/posixmodule.c:4242,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4245,1
    - Dst: fchmod
      Src: /src/cpython/Modules/posixmodule.c:4251,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:4253,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:4255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - module
    - fd
    - mode
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4259
      start: 4229
    functionDepth: 2
    functionLinenumber: 4229
    functionLinenumberEnd: 4259
    functionName: os_fchmod_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fchmod
    - PyErr_SetFromWindowsErr
    - PySys_Audit
    - PyErr_CheckSignals
    - posix_error
    - win32_fchmod
    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:4282,1
    - Dst: win32_lchmod
      Src: /src/cpython/Modules/posixmodule.c:4287,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4290,1
    - Dst: lchmod
      Src: /src/cpython/Modules/posixmodule.c:4295,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - module
    - path
    - mode
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4303
      start: 4277
    functionDepth: 4
    functionLinenumber: 4277
    functionLinenumberEnd: 4303
    functionName: os_lchmod_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_lchmod
    - PySys_Audit
    - lchmod
    - path_error
    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:4333,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4337,1
    - Dst: lchflags
      Src: /src/cpython/Modules/posixmodule.c:4344,1
    - Dst: chflags
      Src: /src/cpython/Modules/posixmodule.c:4347,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4351,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: 4354
      start: 4325
    functionDepth: 4
    functionLinenumber: 4325
    functionLinenumberEnd: 4354
    functionName: os_chflags_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lchflags
    - follow_symlinks_specified
    - PySys_Audit
    - path_error
    - chflags
    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:4376,1
    - Dst: lchflags
      Src: /src/cpython/Modules/posixmodule.c:4380,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - path
    - flags
    argTypes:
    - PyObject*
    - path_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4386
      start: 4371
    functionDepth: 4
    functionLinenumber: 4371
    functionLinenumberEnd: 4386
    functionName: os_lchflags_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - lchflags
    - path_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchflags_impl(PyObject *module, path_t *path, unsigned long flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chroot
      Src: /src/cpython/Modules/posixmodule.c:4405,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4410
      start: 4399
    functionDepth: 4
    functionLinenumber: 4399
    functionLinenumberEnd: 4410
    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:4427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4423
    functionDepth: 3
    functionLinenumber: 4423
    functionLinenumberEnd: 4428
    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: 4447
      start: 4439
    functionDepth: 0
    functionLinenumber: 4439
    functionLinenumberEnd: 4447
    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:4468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4469
      start: 4464
    functionDepth: 3
    functionLinenumber: 4464
    functionLinenumberEnd: 4469
    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:4527,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:4530,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:4531,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4534,1
    - Dst: fchown
      Src: /src/cpython/Modules/posixmodule.c:4542,1
    - Dst: lchown
      Src: /src/cpython/Modules/posixmodule.c:4547,1
    - Dst: fchownat
      Src: /src/cpython/Modules/posixmodule.c:4553,1
    - Dst: chown
      Src: /src/cpython/Modules/posixmodule.c:4560,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4568,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4574,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: 4577
      start: 4515
    functionDepth: 4
    functionLinenumber: 4515
    functionLinenumberEnd: 4577
    functionName: os_chown_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - dir_fd_and_fd_invalid
    - follow_symlinks_specified
    - PySys_Audit
    - fchown
    - path_error
    - chown
    - fd_and_follow_symlinks_invalid
    - fchownat
    - argument_unavailable_error
    - lchown
    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:4602,1
    - Dst: fchown
      Src: /src/cpython/Modules/posixmodule.c:4608,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:4610,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:4612,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: 4615
      start: 4595
    functionDepth: 2
    functionLinenumber: 4595
    functionLinenumberEnd: 4615
    functionName: os_fchown_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - fchown
    - PyErr_CheckSignals
    - 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:4638,1
    - Dst: lchown
      Src: /src/cpython/Modules/posixmodule.c:4642,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4645,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: 4648
      start: 4633
    functionDepth: 4
    functionLinenumber: 4633
    functionLinenumberEnd: 4648
    functionName: os_lchown_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - path_error
    - 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:4661,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4661,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4665,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/posixmodule.c:4667,1
    - Dst: GetCurrentDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:4673,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:4679,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:4683,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4685,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:4689,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4691,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:4698,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:4698,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/posixmodule.c:4714,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4720,1
    - Dst: getcwd
      Src: /src/cpython/Modules/posixmodule.c:4726,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:4731,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:4734,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4735,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:4741,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:4741,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:4744,1
    - Dst: path_object_error
      Src: /src/cpython/Modules/posixmodule.c:4754,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4755,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:4759,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4760,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 1
    argNames:
    - use_bytes
    argTypes:
    - int
    assertStmts:
    - condition: (buf[0] == '/')
      pos:
        line_end: 4758
        line_start: 4758
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 4764
      start: 4652
    functionDepth: 3
    functionLinenumber: 4652
    functionLinenumberEnd: 4764
    functionName: posix_getcwd
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - getcwd
    - PyErr_SetFromWindowsErr
    - PyErr_NoMemory
    - PyMem_RawRealloc
    - PyUnicode_EncodeFSDefault
    - Py_ARRAY_LENGTH
    - PyBytes_FromStringAndSize
    - assert
    - Py_SETREF
    - GetCurrentDirectoryW
    - posix_error
    - PyMem_RawFree
    - PyMem_RawMalloc
    - strlen
    - path_object_error
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_getcwd(int use_bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/posixmodule.c:4714,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:4720,1
    - Dst: getcwd
      Src: /src/cpython/Modules/posixmodule.c:4726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4727
      start: 4709
    functionDepth: 1
    functionLinenumber: 4709
    functionLinenumberEnd: 4727
    functionName: do
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getcwd
    - PyMem_RawFree
    - PyMem_RawRealloc
    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:4777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4778
      start: 4773
    functionDepth: 4
    functionLinenumber: 4773
    functionLinenumberEnd: 4778
    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:4791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4787
    functionDepth: 4
    functionLinenumber: 4787
    functionLinenumberEnd: 4792
    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:4846,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4853,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4858,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:4863,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:4869,1
    - Dst: CreateHardLinkW
      Src: /src/cpython/Modules/posixmodule.c:4877,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:4881,1
    - Dst: linkat
      Src: /src/cpython/Modules/posixmodule.c:4886,1
    - Dst: link
      Src: /src/cpython/Modules/posixmodule.c:4894,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:4899,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: 4903
      start: 4825
    functionDepth: 3
    functionLinenumber: 4825
    functionLinenumberEnd: 4903
    functionName: os_link_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - link
    - path_error2
    - CreateHardLinkW
    - argument_unavailable_error
    - linkat
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_link_impl(PyObject *module, path_t *src, path_t *dst,
      int src_dir_fd,\n             int dst_dir_fd, int follow_symlinks)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:4916,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:4928,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:4929,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:4932,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:4934,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:4937,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:4942,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:4944,1
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:4948,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4951,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4954,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4955,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/posixmodule.c:4960,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/posixmodule.c:4961,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:4962,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:4963,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:4965,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:4965,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4968,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:4971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4972,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:4976,1
    - Dst: FindNextFileW
      Src: /src/cpython/Modules/posixmodule.c:4979,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:4983,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4984,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4985,1
    - Dst: FindClose
      Src: /src/cpython/Modules/posixmodule.c:4992,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:4994,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:4995,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:4999,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 2
    argNames:
    - path
    - list
    argTypes:
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5002
      start: 4908
    functionDepth: 4
    functionLinenumber: 4908
    functionLinenumberEnd: 5002
    functionName: _listdir_windows_no_opendir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - GetLastError
    - wcslen
    - PyErr_NoMemory
    - wcscpy
    - PyList_New
    - PyMem_Free
    - PyList_Append
    - PyUnicode_FromWideChar
    - FindClose
    - Py_ARRAY_LENGTH
    - Py_DECREF
    - FindNextFileW
    - path_error
    - Py_SETREF
    - FindFirstFileW
    - Py_CLEAR
    - wcscmp
    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:5022,1
    - Dst: fdopendir
      Src: /src/cpython/Modules/posixmodule.c:5029,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:5032,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5044,1
    - Dst: opendir
      Src: /src/cpython/Modules/posixmodule.c:5052,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:5057,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:5068,1
    - Dst: readdir
      Src: /src/cpython/Modules/posixmodule.c:5074,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:5080,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:5081,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:5086,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:5087,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:5090,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:5090,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:5092,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:5092,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:5094,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:5097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:5098,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:5099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:5102,1
    - Dst: rewinddir
      Src: /src/cpython/Modules/posixmodule.c:5110,1
    - Dst: closedir
      Src: /src/cpython/Modules/posixmodule.c:5112,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 2
    argNames:
    - path
    - list
    argTypes:
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5117
      start: 5006
    functionDepth: 4
    functionLinenumber: 5006
    functionLinenumberEnd: 5117
    functionName: _posix_listdir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - closedir
    - opendir
    - fdopendir
    - PyUnicode_DecodeFSDefaultAndSize
    - PyBytes_Check
    - PyErr_SetString
    - _Py_dup
    - path_error
    - PyBytes_FromStringAndSize
    - Py_CLEAR
    - rewinddir
    - PyList_New
    - readdir
    - PyList_Append
    - Py_DECREF
    - NAMLEN
    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:5145,1
    - Dst: _listdir_windows_no_opendir
      Src: /src/cpython/Modules/posixmodule.c:5150,1
    - Dst: _posix_listdir
      Src: /src/cpython/Modules/posixmodule.c:5152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5154
      start: 5141
    functionDepth: 5
    functionLinenumber: 5141
    functionLinenumberEnd: 5154
    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:5175,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:5177,1
    - Dst: GetLogicalDriveStringsW
      Src: /src/cpython/Modules/posixmodule.c:5182,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:5186,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5188,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:5189,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5194,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:5196,1
    - Dst: PyUnicode_Split
      Src: /src/cpython/Modules/posixmodule.c:5198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:5199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:5201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5204
      start: 5168
    functionDepth: 1
    functionLinenumber: 5168
    functionLinenumberEnd: 5204
    functionName: os_listdrives_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - Py_ARRAY_LENGTH
    - PySys_Audit
    - GetLogicalDriveStringsW
    - Py_DECREF
    - PyUnicode_Split
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listdrives_impl(PyObject *module)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:5223,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:5229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:5230,1
    - Dst: FindFirstVolumeW
      Src: /src/cpython/Modules/posixmodule.c:5236,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5236,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5238,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5243,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:5244,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:5245,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:5246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:5249,1
    - Dst: FindNextVolumeW
      Src: /src/cpython/Modules/posixmodule.c:5252,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5252,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5253,1
    - Dst: FindVolumeClose
      Src: /src/cpython/Modules/posixmodule.c:5260,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:5264,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:5265,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5269
      start: 5219
    functionDepth: 1
    functionLinenumber: 5219
    functionLinenumberEnd: 5269
    functionName: os_listvolumes_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - PySys_Audit
    - Py_ARRAY_LENGTH
    - PyList_Append
    - Py_CLEAR
    - PyList_New
    - Py_XDECREF
    - GetLastError
    - Py_DECREF
    - FindVolumeClose
    - FindFirstVolumeW
    - FindNextVolumeW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listvolumes_impl(PyObject *module)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5291,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/posixmodule.c:5300,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5303,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:5305,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:5308,1
    - Dst: GetVolumePathNamesForVolumeNameW
      Src: /src/cpython/Modules/posixmodule.c:5315,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5321,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:5322,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:5326,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:5328,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:5330,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:5335,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5340,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:5341,1
    - Dst: PyUnicode_Split
      Src: /src/cpython/Modules/posixmodule.c:5343,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:5347,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:5349,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:5350,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - module
    - volume
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5352
      start: 5286
    functionDepth: 1
    functionLinenumber: 5286
    functionLinenumberEnd: 5352
    functionName: os_listmounts_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - PyMem_Malloc
    - PyErr_NoMemory
    - GetVolumePathNamesForVolumeNameW
    - Py_ARRAY_LENGTH
    - PySys_Audit
    - GetFileAttributesW
    - PyList_New
    - PyMem_Free
    - GetLastError
    - Py_XDECREF
    - PyUnicode_Split
    - PyUnicode_FromStringAndSize
    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: 5320
      start: 5317
    functionDepth: 0
    functionLinenumber: 5317
    functionLinenumberEnd: 5320
    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:5384,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5390,1
    - Dst: GetDriveTypeW
      Src: /src/cpython/Modules/posixmodule.c:5391,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5395,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5405,1
    - Dst: DeviceIoControl
      Src: /src/cpython/Modules/posixmodule.c:5410,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5420,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5431
      start: 5367
    functionDepth: 0
    functionLinenumber: 5367
    functionLinenumberEnd: 5431
    functionName: os__path_isdevdrive_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetDriveTypeW
    - GetVolumePathNameW
    - CloseHandle
    - CreateFileW
    - DeviceIoControl
    - GetLastError
    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:5435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5437
      start: 5432
    functionDepth: 1
    functionLinenumber: 5432
    functionLinenumberEnd: 5437
    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:5453,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5454,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:5460,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/posixmodule.c:5462,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/posixmodule.c:5472,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:5474,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Modules/posixmodule.c:5484,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - path
    - abspath_p
    argTypes:
    - wchar_t*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5447
    functionDepth: 1
    functionLinenumber: 5447
    functionLinenumberEnd: 5486
    functionName: _PyOS_getfullpathname
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetFullPathNameW
    - Py_ARRAY_LENGTH
    - PyMem_RawFree
    - PyMem_RawMalloc
    - _PyMem_RawWcsdup
    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:5504,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:5505,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:5508,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5511,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/posixmodule.c:5512,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5516,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5517,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5520
      start: 5498
    functionDepth: 3
    functionLinenumber: 5498
    functionLinenumberEnd: 5520
    functionName: os__getfullpathname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_NoMemory
    - PyUnicode_EncodeFSDefault
    - _PyOS_getfullpathname
    - PyBytes_Check
    - Py_SETREF
    - PyMem_RawFree
    - win32_error_object
    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:5538,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5543,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:5555,1
    - Dst: GetFinalPathNameByHandleW
      Src: /src/cpython/Modules/posixmodule.c:5562,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:5567,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/posixmodule.c:5577,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:5580,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5588,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5589,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5590,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5590,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:5595,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5597,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5599
      start: 5532
    functionDepth: 3
    functionLinenumber: 5532
    functionLinenumberEnd: 5599
    functionName: os__getfinalpathname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_NoMemory
    - PyUnicode_EncodeFSDefault
    - Py_ARRAY_LENGTH
    - PyMem_Realloc
    - PyBytes_Check
    - Py_SETREF
    - CloseHandle
    - win32_error_object
    - CreateFileW
    - PyMem_Free
    - GetFinalPathNameByHandleW
    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:5619,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:5623,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5628,1
    - Dst: FindClose
      Src: /src/cpython/Modules/posixmodule.c:5629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5631
      start: 5609
    functionDepth: 4
    functionLinenumber: 5609
    functionLinenumberEnd: 5631
    functionName: os__findfirstfile_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - FindClose
    - path_error
    - FindFirstFileW
    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:5652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:5655,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:5659,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:5661,1
    - Dst: GetVolumePathNameW
      Src: /src/cpython/Modules/posixmodule.c:5664,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/posixmodule.c:5665,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:5669,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5672,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:5673,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:5674,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:5674,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:5677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5679
      start: 5642
    functionDepth: 3
    functionLinenumber: 5642
    functionLinenumberEnd: 5679
    functionName: os__getvolumepathname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyMem_New
    - PyErr_NoMemory
    - Py_SAFE_DOWNCAST
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - PyErr_SetString
    - GetVolumePathNameW
    - Py_SETREF
    - Py_MAX
    - win32_error_object
    - PyMem_Free
    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:5700,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:5700,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:5704,1
    - Dst: wcschr
      Src: /src/cpython/Modules/posixmodule.c:5705,1
    - Dst: wcschr
      Src: /src/cpython/Modules/posixmodule.c:5705,1
    - Dst: PathCchSkipRoot
      Src: /src/cpython/Modules/posixmodule.c:5710,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:5713,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:5716,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5717,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:5718,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:5721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5722
      start: 5691
    functionDepth: 1
    functionLinenumber: 5691
    functionLinenumberEnd: 5722
    functionName: os__path_splitroot_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - wcschr
    - wcscpy
    - PathCchSkipRoot
    - Py_BuildValue
    - PyMem_Malloc
    - wcslen
    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:5713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5714
      start: 5711
    functionDepth: 1
    functionLinenumber: 5711
    functionLinenumberEnd: 5714
    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:5753,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:5756,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - attributes
    - reparseTag
    - diskDevice
    - testedType
    argTypes:
    - DWORD
    - DWORD
    - BOOL
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5760
      start: 5736
    functionDepth: 0
    functionLinenumber: 5736
    functionLinenumberEnd: 5760
    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:5765,1
    - Dst: GetFileType
      Src: /src/cpython/Modules/posixmodule.c:5769,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:5775,1
    - Dst: _testInfo
      Src: /src/cpython/Modules/posixmodule.c:5777,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Modules/posixmodule.c:5781,1
    - Dst: _testInfo
      Src: /src/cpython/Modules/posixmodule.c:5783,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: 5766
        line_start: 5764
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 5784
      start: 5762
    functionDepth: 1
    functionLinenumber: 5762
    functionLinenumberEnd: 5784
    functionName: _testFileTypeByHandle
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetFileInformationByHandleEx
    - GetFileType
    - _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:5789,1
    - Dst: _Py_GetFileInformationByName
      Src: /src/cpython/Modules/posixmodule.c:5794,1
    - Dst: _testInfo
      Src: /src/cpython/Modules/posixmodule.c:5800,1
    - Dst: _Py_GetFileInformationByName_ErrorIsTrustworthy
      Src: /src/cpython/Modules/posixmodule.c:5808,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5809,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5818,1
    - Dst: _testFileTypeByHandle
      Src: /src/cpython/Modules/posixmodule.c:5821,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5822,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5826,1
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:5834,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:5839,1
    - Dst: _testInfo
      Src: /src/cpython/Modules/posixmodule.c:5842,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: 5790
        line_start: 5788
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 5848
      start: 5786
    functionDepth: 2
    functionLinenumber: 5786
    functionLinenumberEnd: 5848
    functionName: _testFileTypeByName
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - _testInfo
    - _testFileTypeByHandle
    - CloseHandle
    - CreateFileW
    - _Py_GetFileInformationByName
    - GetLastError
    - LSTAT
    - STAT
    - _Py_GetFileInformationByName_ErrorIsTrustworthy
    linkageType: ''
    returnType: BOOL
    signature: BOOL _testFileTypeByName(LPCWSTR path, int testedType)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetFileInformationByName
      Src: /src/cpython/Modules/posixmodule.c:5855,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/cpython/Modules/posixmodule.c:5859,1
    - Dst: _Py_GetFileInformationByName_ErrorIsTrustworthy
      Src: /src/cpython/Modules/posixmodule.c:5864,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5865,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5874,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5878,1
    - Dst: _testFileTypeByHandle
      Src: /src/cpython/Modules/posixmodule.c:5882,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5883,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:5887,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:5890,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5895,1
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:5901,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:5901,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - path
    - followLinks
    argTypes:
    - LPCWSTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5905
      start: 5851
    functionDepth: 2
    functionLinenumber: 5851
    functionLinenumberEnd: 5905
    functionName: _testFileExistsByName
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - _testFileTypeByHandle
    - CreateFileW
    - IsReparseTagNameSurrogate
    - _Py_GetFileInformationByName
    - GetLastError
    - LSTAT
    - STAT
    - _Py_GetFileInformationByName_ErrorIsTrustworthy
    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:5918,1
    - Dst: GetFileType
      Src: /src/cpython/Modules/posixmodule.c:5920,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:5920,1
    - Dst: _testFileExistsByName
      Src: /src/cpython/Modules/posixmodule.c:5926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - path
    - followLinks
    argTypes:
    - path_t*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5931
      start: 5908
    functionDepth: 3
    functionLinenumber: 5908
    functionLinenumberEnd: 5931
    functionName: _testFileExists
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetFileType
    - _Py_get_osfhandle_noraise
    - _testFileExistsByName
    - GetLastError
    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:5944,1
    - Dst: _testFileTypeByHandle
      Src: /src/cpython/Modules/posixmodule.c:5946,1
    - Dst: _testFileTypeByName
      Src: /src/cpython/Modules/posixmodule.c:5950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - testedType
    argTypes:
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5955
      start: 5934
    functionDepth: 3
    functionLinenumber: 5934
    functionLinenumberEnd: 5955
    functionName: _testFileType
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _testFileTypeByName
    - _testFileTypeByHandle
    - _Py_get_osfhandle_noraise
    linkageType: ''
    returnType: BOOL
    signature: BOOL _testFileType(path_t *path, int testedType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testFileExists
      Src: /src/cpython/Modules/posixmodule.c:5971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5972
      start: 5967
    functionDepth: 4
    functionLinenumber: 5967
    functionLinenumberEnd: 5972
    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:5988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5989
      start: 5984
    functionDepth: 4
    functionLinenumber: 5984
    functionLinenumberEnd: 5989
    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:6006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6007
      start: 6002
    functionDepth: 4
    functionLinenumber: 6002
    functionLinenumberEnd: 6007
    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:6023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6024
      start: 6019
    functionDepth: 4
    functionLinenumber: 6019
    functionLinenumberEnd: 6024
    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:6040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6041
      start: 6036
    functionDepth: 4
    functionLinenumber: 6036
    functionLinenumberEnd: 6041
    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:6057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6058
      start: 6053
    functionDepth: 4
    functionLinenumber: 6053
    functionLinenumberEnd: 6058
    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:6089,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:6090,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:6094,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:6098,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:6103,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:6104,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:6104,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:6108,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:6108,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:6112,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:6112,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/posixmodule.c:6117,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:6119,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:6120,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:6121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6123
      start: 6081
    functionDepth: 1
    functionLinenumber: 6081
    functionLinenumberEnd: 6123
    functionName: os__path_splitroot_ex_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - _Py_skiproot
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - Py_SETREF
    - PyTuple_Pack
    - Py_XDECREF
    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:6140,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/posixmodule.c:6143,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:6146,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:6148,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:6149,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:6149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6152
      start: 6134
    functionDepth: 1
    functionLinenumber: 6134
    functionLinenumberEnd: 6152
    functionName: os__path_normpath_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - Py_SETREF
    - PyUnicode_FromOrdinal
    - _Py_normpath_and_size
    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:6191,1
    - Dst: ConvertStringSecurityDescriptorToSecurityDescriptorW
      Src: /src/cpython/Modules/posixmodule.c:6207,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:6213,1
    - Dst: CreateDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:6218,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/posixmodule.c:6222,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:6223,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:6229,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6232,1
    - Dst: mkdirat
      Src: /src/cpython/Modules/posixmodule.c:6239,1
    - Dst: mkdir
      Src: /src/cpython/Modules/posixmodule.c:6247,1
    - Dst: mkdir
      Src: /src/cpython/Modules/posixmodule.c:6249,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:6255,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6261,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: 6264
      start: 6177
    functionDepth: 4
    functionLinenumber: 6177
    functionLinenumberEnd: 6264
    functionName: os_mkdir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - mkdir
    - PySys_Audit
    - argument_unavailable_error
    - path_error
    - LocalFree
    - GetLastError
    - mkdirat
    - CreateDirectoryW
    - ConvertStringSecurityDescriptorToSecurityDescriptorW
    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:6229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6230
      start: 6226
    functionDepth: 1
    functionLinenumber: 6226
    functionLinenumberEnd: 6230
    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:6300,1
    - Dst: getpriority
      Src: /src/cpython/Modules/posixmodule.c:6303,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:6307,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:6308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - module
    - increment
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6309
      start: 6283
    functionDepth: 2
    functionLinenumber: 6283
    functionLinenumberEnd: 6309
    functionName: os_nice_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getpriority
    - nice
    - PyLong_FromLong
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_nice_impl(PyObject *module, int increment)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpriority
      Src: /src/cpython/Modules/posixmodule.c:6330,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:6332,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:6333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - which
    - who
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6334
      start: 6323
    functionDepth: 2
    functionLinenumber: 6323
    functionLinenumberEnd: 6334
    functionName: os_getpriority_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getpriority
    - PyLong_FromLong
    - posix_error
    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:6355,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:6357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - module
    - which
    - who
    - priority
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6359
      start: 6349
    functionDepth: 2
    functionLinenumber: 6349
    functionLinenumberEnd: 6359
    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:6384,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:6389,1
    - Dst: MoveFileExW
      Src: /src/cpython/Modules/posixmodule.c:6397,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:6401,1
    - Dst: renameat
      Src: /src/cpython/Modules/posixmodule.c:6408,1
    - Dst: rename
      Src: /src/cpython/Modules/posixmodule.c:6414,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:6420,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:6426,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: 6429
      start: 6363
    functionDepth: 3
    functionLinenumber: 6363
    functionLinenumberEnd: 6429
    functionName: internal_rename
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - path_error2
    - rename
    - MoveFileExW
    - renameat
    - argument_unavailable_error
    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:6456,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: 6457
      start: 6451
    functionDepth: 4
    functionLinenumber: 6451
    functionLinenumberEnd: 6457
    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:6478,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: 6479
      start: 6473
    functionDepth: 4
    functionLinenumber: 6473
    functionLinenumberEnd: 6479
    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:6507,1
    - Dst: RemoveDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:6515,1
    - Dst: unlinkat
      Src: /src/cpython/Modules/posixmodule.c:6520,1
    - Dst: rmdir
      Src: /src/cpython/Modules/posixmodule.c:6527,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:6533,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6542
      start: 6498
    functionDepth: 4
    functionLinenumber: 6498
    functionLinenumberEnd: 6542
    functionName: os_rmdir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - rmdir
    - PySys_Audit
    - path_error
    - RemoveDirectoryW
    - argument_unavailable_error
    - unlinkat
    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:6561,1
    - Dst: _wsystem
      Src: /src/cpython/Modules/posixmodule.c:6567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - command
    argTypes:
    - PyObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6571
      start: 6555
    functionDepth: 1
    functionLinenumber: 6555
    functionLinenumberEnd: 6571
    functionName: os_system_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _wsystem
    - PySys_Audit
    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:6586,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:6588,1
    - Dst: system
      Src: /src/cpython/Modules/posixmodule.c:6593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - command
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6596
      start: 6581
    functionDepth: 1
    functionLinenumber: 6581
    functionLinenumberEnd: 6596
    functionName: os_system_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - system
    - PySys_Audit
    - PyBytes_AsString
    linkageType: ''
    returnType: long
    signature: long os_system_impl(PyObject *module, PyObject *command)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/cpython/Modules/posixmodule.c:6615,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:6617,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:6618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - mask
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6619
      start: 6611
    functionDepth: 2
    functionLinenumber: 6611
    functionLinenumberEnd: 6619
    functionName: os_umask_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - umask
    - PyLong_FromLong
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_umask_impl(PyObject *module, int mask)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesExW
      Src: /src/cpython/Modules/posixmodule.c:6635,1
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:6642,1
    - Dst: FindClose
      Src: /src/cpython/Modules/posixmodule.c:6649,1
    - Dst: RemoveDirectoryW
      Src: /src/cpython/Modules/posixmodule.c:6655,1
    - Dst: DeleteFileW
      Src: /src/cpython/Modules/posixmodule.c:6657,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - lpFileName
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6658
      start: 6627
    functionDepth: 0
    functionLinenumber: 6627
    functionLinenumberEnd: 6658
    functionName: Py_DeleteFileW
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DeleteFileW
    - FindClose
    - RemoveDirectoryW
    - FindFirstFileW
    - GetFileAttributesExW
    linkageType: ''
    returnType: BOOL
    signature: BOOL Py_DeleteFileW(LPCWSTR lpFileName)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:6688,1
    - Dst: Py_DeleteFileW
      Src: /src/cpython/Modules/posixmodule.c:6697,1
    - Dst: unlinkat
      Src: /src/cpython/Modules/posixmodule.c:6703,1
    - Dst: unlink
      Src: /src/cpython/Modules/posixmodule.c:6709,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:6716,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:6722,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6725
      start: 6679
    functionDepth: 4
    functionLinenumber: 6679
    functionLinenumberEnd: 6725
    functionName: os_unlink_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DeleteFileW
    - PySys_Audit
    - path_error
    - unlink
    - argument_unavailable_error
    - unlinkat
    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:6744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6745
      start: 6740
    functionDepth: 5
    functionLinenumber: 6740
    functionLinenumberEnd: 6745
    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:6792,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:6795,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:6797,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:6798,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6812,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6813,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6814,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6815,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:6816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6821
      start: 6783
    functionDepth: 2
    functionLinenumber: 6783
    functionLinenumberEnd: 6821
    functionName: os_uname_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SET
    - PyStructSequence_New
    - get_posix_state
    - uname
    - posix_error
    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: 6812
      start: 6802
    functionDepth: 0
    functionLinenumber: 6802
    functionLinenumberEnd: 6812
    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:6896,1
    - Dst: utimensat
      Src: /src/cpython/Modules/posixmodule.c:6904,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:6912,1
    - Dst: futimesat
      Src: /src/cpython/Modules/posixmodule.c:6913,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: 6911
        line_start: 6911
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 6915
      start: 6889
    functionDepth: 0
    functionLinenumber: 6889
    functionLinenumberEnd: 6915
    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:6932,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6938,1
    - Dst: futimes
      Src: /src/cpython/Modules/posixmodule.c:6950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ut
    - fd
    argTypes:
    - utime_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6953
      start: 6924
    functionDepth: 1
    functionLinenumber: 6924
    functionLinenumberEnd: 6953
    functionName: utime_fd
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - futimes
    - PyErr_SetString
    - futimens
    linkageType: ''
    returnType: int
    signature: int utime_fd(utime_t *ut, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utimensat
      Src: /src/cpython/Modules/posixmodule.c:6972,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:6977,1
    - Dst: lutimes
      Src: /src/cpython/Modules/posixmodule.c:6989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ut
    - path
    argTypes:
    - utime_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6992
      start: 6966
    functionDepth: 1
    functionLinenumber: 6966
    functionLinenumberEnd: 6992
    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:7004,1
    - Dst: utimes
      Src: /src/cpython/Modules/posixmodule.c:7007,1
    - Dst: utimensat
      Src: /src/cpython/Modules/posixmodule.c:7011,1
    - Dst: utimes
      Src: /src/cpython/Modules/posixmodule.c:7014,1
    - Dst: utime
      Src: /src/cpython/Modules/posixmodule.c:7017,1
    - Dst: utime
      Src: /src/cpython/Modules/posixmodule.c:7020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ut
    - path
    argTypes:
    - utime_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7022
      start: 6998
    functionDepth: 0
    functionLinenumber: 6998
    functionLinenumberEnd: 7022
    functionName: utime_default
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - utimes
    - utime
    - utimensat
    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:7031,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:7031,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7034,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:7034,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7035,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:7037,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:7037,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:7037,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:7037,1
    - Dst: _PyLong_AsTime_t
      Src: /src/cpython/Modules/posixmodule.c:7040,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7040,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:7041,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:7043,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7043,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:7044,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:7049,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: 7051
      start: 7026
    functionDepth: 2
    functionLinenumber: 7026
    functionLinenumberEnd: 7051
    functionName: split_py_long_to_s_and_ns
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - get_posix_state
    - _PyLong_AsTime_t
    - PyLong_AsLong
    - PyNumber_Divmod
    - PyErr_Format
    - PyTuple_Check
    - _PyType_Name
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_XDECREF
    - Py_TYPE
    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:7105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7108,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/posixmodule.c:7117,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/posixmodule.c:7117,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7118,1
    - Dst: _PyTime_ObjectToTimespec
      Src: /src/cpython/Modules/posixmodule.c:7124,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7124,1
    - Dst: _PyTime_ObjectToTimespec
      Src: /src/cpython/Modules/posixmodule.c:7126,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7126,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/posixmodule.c:7136,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/posixmodule.c:7136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7137,1
    - Dst: split_py_long_to_s_and_ns
      Src: /src/cpython/Modules/posixmodule.c:7142,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7142,1
    - Dst: split_py_long_to_s_and_ns
      Src: /src/cpython/Modules/posixmodule.c:7144,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7144,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:7155,1
    - Dst: path_and_dir_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:7159,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/cpython/Modules/posixmodule.c:7160,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:7161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7166,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:7173,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:7180,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:7185,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/cpython/Modules/posixmodule.c:7190,1
    - Dst: _Py_time_t_to_FILE_TIME
      Src: /src/cpython/Modules/posixmodule.c:7194,1
    - Dst: _Py_time_t_to_FILE_TIME
      Src: /src/cpython/Modules/posixmodule.c:7195,1
    - Dst: SetFileTime
      Src: /src/cpython/Modules/posixmodule.c:7197,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:7198,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:7199,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:7202,1
    - Dst: utime_nofollow_symlinks
      Src: /src/cpython/Modules/posixmodule.c:7208,1
    - Dst: utime_dir_fd
      Src: /src/cpython/Modules/posixmodule.c:7214,1
    - Dst: utime_fd
      Src: /src/cpython/Modules/posixmodule.c:7221,1
    - Dst: utime_default
      Src: /src/cpython/Modules/posixmodule.c:7225,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:7232,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:7238,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: 7245
      start: 7091
    functionDepth: 4
    functionLinenumber: 7091
    functionLinenumberEnd: 7245
    functionName: os_utime_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - utime_nofollow_symlinks
    - _Py_time_t_to_FILE_TIME
    - follow_symlinks_specified
    - PySys_Audit
    - utime_dir_fd
    - fd_and_follow_symlinks_invalid
    - PyTuple_CheckExact
    - path_and_dir_fd_invalid
    - dir_fd_and_fd_invalid
    - PyErr_SetString
    - CloseHandle
    - CreateFileW
    - _PyTime_ObjectToTimespec
    - utime_fd
    - PyTuple_Size
    - split_py_long_to_s_and_ns
    - path_error
    - SetFileTime
    - GetSystemTimeAsFileTime
    - memset
    - utime_default
    - argument_unavailable_error
    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:7263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7265
      start: 7259
    functionDepth: 0
    functionLinenumber: 7259
    functionLinenumberEnd: 7265
    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:7279,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:7280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - array
    - count
    argTypes:
    - EXECV_CHAR**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7281
      start: 7274
    functionDepth: 1
    functionLinenumber: 7274
    functionLinenumberEnd: 7281
    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:7290,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:7292,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/posixmodule.c:7296,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:7298,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:7299,1
    - Dst: memcpy
      Src: /src/cpython/Modules/posixmodule.c:7301,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:7301,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:7304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - o
    - out
    argTypes:
    - PyObject*
    - EXECV_CHAR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7308
      start: 7283
    functionDepth: 1
    functionLinenumber: 7283
    functionLinenumberEnd: 7308
    functionName: fsconvert_strdup
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - PyUnicode_FSDecoder
    - PyBytes_GET_SIZE
    - memcpy
    - PyMem_Malloc
    - Py_DECREF
    - PyUnicode_FSConverter
    - PyUnicode_AsWideCharString
    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:7320,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/posixmodule.c:7323,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:7325,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Modules/posixmodule.c:7329,1
    - Dst: PyMapping_Values
      Src: /src/cpython/Modules/posixmodule.c:7332,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:7335,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:7335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7336,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Modules/posixmodule.c:7344,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Modules/posixmodule.c:7348,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/posixmodule.c:7354,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/posixmodule.c:7357,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:7362,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/posixmodule.c:7363,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:7363,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7365,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:7368,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/posixmodule.c:7370,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/posixmodule.c:7373,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:7376,1
    - Dst: strchr
      Src: /src/cpython/Modules/posixmodule.c:7377,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:7377,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7379,1
    - Dst: PyBytes_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:7382,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:7382,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:7383,1
    - Dst: fsconvert_strdup
      Src: /src/cpython/Modules/posixmodule.c:7389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7390,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:7394,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:7395,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:7396,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:7397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7401,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:7408,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:7409,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:7410,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:7411,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:7412,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:7413,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7414,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7416
      start: 7312
    functionDepth: 2
    functionLinenumber: 7312
    functionLinenumberEnd: 7416
    functionName: parse_envlist
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fsconvert_strdup
    - PyList_GetItemRef
    - PyErr_NoMemory
    - PyUnicode_FSDecoder
    - strchr
    - PyUnicode_FindChar
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyMem_NEW
    - PyMapping_Size
    - free_string_array
    - PyErr_SetString
    - PyList_Check
    - PyUnicode_FSConverter
    - Py_DECREF
    - PyMapping_Values
    - PyBytes_GET_SIZE
    - PyMapping_Keys
    - PyBytes_FromFormat
    - PyUnicode_FromFormat
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:7422,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:7424,1
    - Dst: PySequence_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7428,1
    - Dst: fsconvert_strdup
      Src: /src/cpython/Modules/posixmodule.c:7431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7435,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7441,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7443
      start: 7418
    functionDepth: 2
    functionLinenumber: 7418
    functionLinenumberEnd: 7443
    functionName: parse_arglist
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    - free_string_array
    - PySequence_ITEM
    - fsconvert_strdup
    - Py_DECREF
    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:7468,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Modules/posixmodule.c:7469,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7470,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:7478,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7479,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:7483,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7485,1
    - Dst: parse_arglist
      Src: /src/cpython/Modules/posixmodule.c:7489,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7494,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7496,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:7500,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7501,1
    - Dst: _wexecv
      Src: /src/cpython/Modules/posixmodule.c:7507,1
    - Dst: execv
      Src: /src/cpython/Modules/posixmodule.c:7509,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - module
    - path
    - argv
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7518
      start: 7461
    functionDepth: 3
    functionLinenumber: 7461
    functionLinenumberEnd: 7518
    functionName: os_execv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - execv
    - free_string_array
    - PySys_Audit
    - PyErr_SetString
    - _wexecv
    - _PyInterpreterState_GET
    - PyList_Check
    - PyTuple_Check
    - PySequence_Size
    - _PyInterpreterState_HasFeature
    - parse_arglist
    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:7542,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Modules/posixmodule.c:7543,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7544,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:7553,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7553,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7554,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:7558,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7560,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/posixmodule.c:7564,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7565,1
    - Dst: parse_arglist
      Src: /src/cpython/Modules/posixmodule.c:7570,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7575,1
    - Dst: parse_envlist
      Src: /src/cpython/Modules/posixmodule.c:7580,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:7584,1
    - Dst: fexecve
      Src: /src/cpython/Modules/posixmodule.c:7591,1
    - Dst: _wexecve
      Src: /src/cpython/Modules/posixmodule.c:7595,1
    - Dst: execve
      Src: /src/cpython/Modules/posixmodule.c:7597,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7605,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:7608,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: 7610
      start: 7534
    functionDepth: 3
    functionLinenumber: 7534
    functionLinenumberEnd: 7610
    functionName: os_execve_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - free_string_array
    - PyErr_SetString
    - PyMapping_Check
    - _PyInterpreterState_GET
    - execve
    - PyList_Check
    - fexecve
    - PyTuple_Check
    - PySequence_Size
    - parse_envlist
    - _wexecve
    - _PyInterpreterState_HasFeature
    - parse_arglist
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:7636,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7636,1
    - Dst: posix_spawnattr_init
      Src: /src/cpython/Modules/posixmodule.c:7639,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7641,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/posixmodule.c:7646,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:7647,1
    - Dst: posix_spawnattr_setpgroup
      Src: /src/cpython/Modules/posixmodule.c:7650,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7652,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:7671,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:7677,1
    - Dst: _Py_Sigset_Converter
      Src: /src/cpython/Modules/posixmodule.c:7687,1
    - Dst: posix_spawnattr_setsigmask
      Src: /src/cpython/Modules/posixmodule.c:7690,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7692,1
    - Dst: _Py_Sigset_Converter
      Src: /src/cpython/Modules/posixmodule.c:7700,1
    - Dst: posix_spawnattr_setsigdefault
      Src: /src/cpython/Modules/posixmodule.c:7703,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7705,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7712,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7724,1
    - Dst: convert_sched_param
      Src: /src/cpython/Modules/posixmodule.c:7729,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/posixmodule.c:7733,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:7735,1
    - Dst: posix_spawnattr_setschedpolicy
      Src: /src/cpython/Modules/posixmodule.c:7738,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7740,1
    - Dst: posix_spawnattr_setschedparam
      Src: /src/cpython/Modules/posixmodule.c:7745,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7747,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7752,1
    - Dst: posix_spawnattr_setflags
      Src: /src/cpython/Modules/posixmodule.c:7758,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7760,1
    - Dst: posix_spawnattr_destroy
      Src: /src/cpython/Modules/posixmodule.c:7767,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 109
    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:
    - condition: (scheduler == NULL || scheduler == Py_None || PyTuple_Check(scheduler))
      pos:
        line_end: 7635
        line_start: 7635
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 7769
      start: 7630
    functionDepth: 2
    functionLinenumber: 7630
    functionLinenumberEnd: 7769
    functionName: parse_posix_spawn_flags
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_spawnattr_setsigmask
    - posix_spawnattr_setflags
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - posix_spawnattr_setschedpolicy
    - posix_spawnattr_setpgroup
    - posix_spawnattr_init
    - _Py_Sigset_Converter
    - PyLong_AsPid
    - PyArg_ParseTuple
    - posix_spawnattr_destroy
    - PyErr_SetString
    - posix_spawnattr_setsigdefault
    - convert_sched_param
    - PyLong_AsInt
    - posix_error
    - posix_spawnattr_setschedparam
    - argument_unavailable_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:7780,1
    - Dst: posix_spawn_file_actions_init
      Src: /src/cpython/Modules/posixmodule.c:7786,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7789,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:7793,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7794,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/posixmodule.c:7795,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7796,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/posixmodule.c:7796,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7797,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:7801,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:7801,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:7802,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7812,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:7819,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7820,1
    - Dst: posix_spawn_file_actions_addopen
      Src: /src/cpython/Modules/posixmodule.c:7823,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:7824,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7830,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7835,1
    - Dst: posix_spawn_file_actions_addclose
      Src: /src/cpython/Modules/posixmodule.c:7841,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7843,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7850,1
    - Dst: posix_spawn_file_actions_adddup2
      Src: /src/cpython/Modules/posixmodule.c:7856,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7859,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/posixmodule.c:7867,1
    - Dst: posix_spawn_file_actions_addclosefrom_np
      Src: /src/cpython/Modules/posixmodule.c:7873,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:7876,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:7883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:7896,1
    - Dst: posix_spawn_file_actions_destroy
      Src: /src/cpython/Modules/posixmodule.c:7897,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: 7899
      start: 7771
    functionDepth: 2
    functionLinenumber: 7771
    functionLinenumberEnd: 7899
    functionName: parse_file_actions
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PySequence_Fast
    - PyTuple_Check
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - posix_spawn_file_actions_adddup2
    - PyLong_AsLong
    - PyBytes_AS_STRING
    - PyList_Append
    - posix_spawn_file_actions_init
    - PyArg_ParseTuple
    - posix_spawn_file_actions_addclosefrom_np
    - Py_INCREF
    - PyErr_SetString
    - posix_spawn_file_actions_addclose
    - Py_DECREF
    - PySequence_Fast_GET_SIZE
    - posix_error
    - posix_spawn_file_actions_addopen
    - posix_spawn_file_actions_destroy
    - PySequence_Fast_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int parse_file_actions(PyObject *file_actions,\n                   posix_spawn_file_actions_t
      *file_actionsp,\n                   PyObject *temp_buffer)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/posixmodule.c:7925,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7925,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7926,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:7930,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7932,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/posixmodule.c:7937,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7938,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:7943,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7944,1
    - Dst: parse_arglist
      Src: /src/cpython/Modules/posixmodule.c:7949,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:7954,1
    - Dst: _NSGetEnviron
      Src: /src/cpython/Modules/posixmodule.c:7966,1
    - Dst: parse_envlist
      Src: /src/cpython/Modules/posixmodule.c:7970,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:7985,1
    - Dst: parse_file_actions
      Src: /src/cpython/Modules/posixmodule.c:7989,1
    - Dst: parse_posix_spawn_flags
      Src: /src/cpython/Modules/posixmodule.c:7995,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:8001,1
    - Dst: posix_spawnp
      Src: /src/cpython/Modules/posixmodule.c:8008,1
    - Dst: posix_spawn
      Src: /src/cpython/Modules/posixmodule.c:8014,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/posixmodule.c:8021,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/posixmodule.c:8025,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:8027,1
    - Dst: posix_spawn_file_actions_destroy
      Src: /src/cpython/Modules/posixmodule.c:8031,1
    - Dst: posix_spawnattr_destroy
      Src: /src/cpython/Modules/posixmodule.c:8034,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:8037,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:8040,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:8042,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 91
    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: 8044
      start: 7902
    functionDepth: 3
    functionLinenumber: 7902
    functionLinenumberEnd: 8044
    functionName: py_posix_spawn
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _NSGetEnviron
    - PyTuple_Check
    - __msan_unpoison
    - parse_file_actions
    - PySys_Audit
    - posix_spawnp
    - PyList_New
    - Py_XDECREF
    - parse_arglist
    - posix_spawnattr_destroy
    - free_string_array
    - PyList_Check
    - PyLong_FromPid
    - parse_posix_spawn_flags
    - PyMapping_Check
    - posix_spawn
    - posix_spawn_file_actions_destroy
    - PyErr_Format
    - PySequence_Size
    - parse_envlist
    - PyErr_SetFromErrnoWithFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_posix_spawn(int use_posix_spawnp, PyObject *module,
      path_t *path, PyObject *argv,\n               PyObject *env, PyObject *file_actions,\n
      \              PyObject *setpgroup, int resetids, int setsid, PyObject *setsigmask,\n
      \              PyObject *setsigdef, PyObject *scheduler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/posixmodule.c:8021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8023
      start: 8017
    functionDepth: 1
    functionLinenumber: 8017
    functionLinenumberEnd: 8023
    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:8085,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: 8088
      start: 8077
    functionDepth: 4
    functionLinenumber: 8077
    functionLinenumberEnd: 8088
    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:8132,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: 8135
      start: 8124
    functionDepth: 4
    functionLinenumber: 8124
    functionLinenumberEnd: 8135
    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:8152,1
    - Dst: rtpSpawn
      Src: /src/cpython/Modules/posixmodule.c:8156,1
    - Dst: waitpid
      Src: /src/cpython/Modules/posixmodule.c:8161,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:8162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - mode
    - rtpFileName
    - argv
    - envp
    argTypes:
    - int
    - char*
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8169
      start: 8139
    functionDepth: 1
    functionLinenumber: 8139
    functionLinenumberEnd: 8169
    functionName: _rtp_spawn
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - rtpSpawn
    - waitpid
    - PyErr_CheckSignals
    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:8200,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/posixmodule.c:8201,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:8204,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/posixmodule.c:8205,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8209,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8214,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/posixmodule.c:8219,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:8221,1
    - Dst: fsconvert_strdup
      Src: /src/cpython/Modules/posixmodule.c:8224,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:8226,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8227,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:8233,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8234,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:8247,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:8249,1
    - Dst: _wspawnv
      Src: /src/cpython/Modules/posixmodule.c:8256,1
    - Dst: _rtp_spawn
      Src: /src/cpython/Modules/posixmodule.c:8258,1
    - Dst: _spawnv
      Src: /src/cpython/Modules/posixmodule.c:8260,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:8266,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8270,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:8273,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: 8274
      start: 8187
    functionDepth: 2
    functionLinenumber: 8187
    functionLinenumberEnd: 8274
    functionName: os_spawnv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - _wspawnv
    - PyMem_NEW
    - PyErr_NoMemory
    - free_string_array
    - PySys_Audit
    - PyErr_SetString
    - _spawnv
    - _rtp_spawn
    - posix_error
    - Py_BuildValue
    - PyList_Check
    - PyTuple_Check
    - PyList_Size
    - fsconvert_strdup
    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:8309,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/posixmodule.c:8310,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/posixmodule.c:8313,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/posixmodule.c:8314,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8318,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8323,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/posixmodule.c:8327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8328,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/posixmodule.c:8333,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:8335,1
    - Dst: fsconvert_strdup
      Src: /src/cpython/Modules/posixmodule.c:8339,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8347,1
    - Dst: parse_envlist
      Src: /src/cpython/Modules/posixmodule.c:8356,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:8365,1
    - Dst: _wspawnve
      Src: /src/cpython/Modules/posixmodule.c:8372,1
    - Dst: _rtp_spawn
      Src: /src/cpython/Modules/posixmodule.c:8374,1
    - Dst: _spawnve
      Src: /src/cpython/Modules/posixmodule.c:8377,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8383,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:8385,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:8389,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:8391,1
    - Dst: free_string_array
      Src: /src/cpython/Modules/posixmodule.c:8393,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: 8396
      start: 8292
    functionDepth: 3
    functionLinenumber: 8292
    functionLinenumberEnd: 8396
    functionName: os_spawnve_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - PyMem_NEW
    - PyErr_NoMemory
    - PySys_Audit
    - free_string_array
    - PyErr_SetString
    - PyMapping_Check
    - _rtp_spawn
    - posix_error
    - parse_envlist
    - Py_BuildValue
    - PyList_Check
    - _spawnve
    - PyTuple_Check
    - PyMem_Free
    - PyList_Size
    - fsconvert_strdup
    - _wspawnve
    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:8408,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:8409,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:8410,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:8410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - obj_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8414
      start: 8405
    functionDepth: 1
    functionLinenumber: 8405
    functionLinenumberEnd: 8414
    functionName: check_null_or_callable
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - _PyType_Name
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int check_null_or_callable(PyObject *obj, const char* obj_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8442,1
    - Dst: check_null_or_callable
      Src: /src/cpython/Modules/posixmodule.c:8445,1
    - Dst: check_null_or_callable
      Src: /src/cpython/Modules/posixmodule.c:8446,1
    - Dst: check_null_or_callable
      Src: /src/cpython/Modules/posixmodule.c:8447,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:8450,1
    - Dst: register_at_forker
      Src: /src/cpython/Modules/posixmodule.c:8452,1
    - Dst: register_at_forker
      Src: /src/cpython/Modules/posixmodule.c:8455,1
    - Dst: register_at_forker
      Src: /src/cpython/Modules/posixmodule.c:8458,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: 8462
      start: 8434
    functionDepth: 2
    functionLinenumber: 8434
    functionLinenumberEnd: 8462
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:8480,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/posixmodule.c:8486,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:8486,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8488,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/posixmodule.c:8492,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:8492,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8495,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/posixmodule.c:8499,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:8499,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8506,1
    - Dst: PyMapping_Length
      Src: /src/cpython/Modules/posixmodule.c:8513,1
    - Dst: PyMapping_Length
      Src: /src/cpython/Modules/posixmodule.c:8514,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:8515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8517,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/posixmodule.c:8520,1
    - Dst: getpid
      Src: /src/cpython/Modules/posixmodule.c:8529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - name
    - num_os_threads
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (!_PyRuntime.stoptheworld.world_stopped)
      pos:
        line_end: 8479
        line_start: 8479
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 8534
      start: 8472
    functionDepth: 1
    functionLinenumber: 8472
    functionLinenumberEnd: 8534
    functionName: warn_about_fork_with_threads
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - PyErr_WarnFormat
    - getpid
    - PyImport_GetModule
    - PyErr_Clear
    - PyMapping_Length
    - assert
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: "int warn_about_fork_with_threads(\n    const char* name,  // Name
      of the API to use in the warning message.\n    const Py_ssize_t num_os_threads
      \ // Only trusted when >= 1.\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mach_task_self
      Src: /src/cpython/Modules/posixmodule.c:8545,1
    - Dst: task_for_pid
      Src: /src/cpython/Modules/posixmodule.c:8547,1
    - Dst: getpid
      Src: /src/cpython/Modules/posixmodule.c:8547,1
    - Dst: task_threads
      Src: /src/cpython/Modules/posixmodule.c:8550,1
    - Dst: fopen
      Src: /src/cpython/Modules/posixmodule.c:8557,1
    - Dst: fread
      Src: /src/cpython/Modules/posixmodule.c:8563,1
    - Dst: fclose
      Src: /src/cpython/Modules/posixmodule.c:8565,1
    - Dst: strtok_r
      Src: /src/cpython/Modules/posixmodule.c:8568,1
    - Dst: strtok_r
      Src: /src/cpython/Modules/posixmodule.c:8571,1
    - Dst: atoi
      Src: /src/cpython/Modules/posixmodule.c:8574,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8579
      start: 8538
    functionDepth: 0
    functionLinenumber: 8538
    functionLinenumberEnd: 8579
    functionName: get_number_of_os_threads
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fread
    - mach_task_self
    - fopen
    - task_for_pid
    - fclose
    - strtok_r
    - atoi
    - getpid
    - task_threads
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_number_of_os_threads(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:8597,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/posixmodule.c:8598,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8599,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/posixmodule.c:8603,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8604,1
    - Dst: PyOS_BeforeFork
      Src: /src/cpython/Modules/posixmodule.c:8607,1
    - Dst: fork1
      Src: /src/cpython/Modules/posixmodule.c:8608,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/cpython/Modules/posixmodule.c:8612,1
    - Dst: get_number_of_os_threads
      Src: /src/cpython/Modules/posixmodule.c:8615,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/cpython/Modules/posixmodule.c:8617,1
    - Dst: warn_about_fork_with_threads
      Src: /src/cpython/Modules/posixmodule.c:8619,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8625,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:8627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8628
      start: 8591
    functionDepth: 3
    functionLinenumber: 8591
    functionLinenumberEnd: 8628
    functionName: os_fork1_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - warn_about_fork_with_threads
    - fork1
    - _Py_IsMainInterpreter
    - PyOS_AfterFork_Child
    - PyErr_SetString
    - _PyInterpreterState_GET
    - get_number_of_os_threads
    - posix_error
    - _PyInterpreterState_GetFinalizing
    - PyOS_AfterFork_Parent
    - PyLong_FromPid
    - PyOS_BeforeFork
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fork1_impl(PyObject *module)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:8646,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/posixmodule.c:8647,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8648,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Modules/posixmodule.c:8652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8653,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:8657,1
    - Dst: PyOS_BeforeFork
      Src: /src/cpython/Modules/posixmodule.c:8660,1
    - Dst: fork
      Src: /src/cpython/Modules/posixmodule.c:8661,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/cpython/Modules/posixmodule.c:8665,1
    - Dst: get_number_of_os_threads
      Src: /src/cpython/Modules/posixmodule.c:8668,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/cpython/Modules/posixmodule.c:8670,1
    - Dst: warn_about_fork_with_threads
      Src: /src/cpython/Modules/posixmodule.c:8672,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8677,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:8679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8680
      start: 8641
    functionDepth: 3
    functionLinenumber: 8641
    functionLinenumberEnd: 8680
    functionName: os_fork_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fork
    - warn_about_fork_with_threads
    - PyOS_AfterFork_Child
    - PySys_Audit
    - PyErr_SetString
    - _PyInterpreterState_GET
    - get_number_of_os_threads
    - posix_error
    - PyLong_FromPid
    - _PyInterpreterState_GetFinalizing
    - PyOS_AfterFork_Parent
    - _PyInterpreterState_HasFeature
    - PyOS_BeforeFork
    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:8700,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8702,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - module
    - policy
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8704
      start: 8694
    functionDepth: 2
    functionLinenumber: 8694
    functionLinenumberEnd: 8704
    functionName: os_sched_get_priority_max_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - sched_get_priority_max
    - posix_error
    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:8721,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8723,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - module
    - policy
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8725
      start: 8715
    functionDepth: 2
    functionLinenumber: 8715
    functionLinenumberEnd: 8725
    functionName: os_sched_get_priority_min_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sched_get_priority_min
    - PyLong_FromLong
    - posix_error
    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:8746,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8748,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8750
      start: 8740
    functionDepth: 2
    functionLinenumber: 8740
    functionLinenumberEnd: 8750
    functionName: os_sched_getscheduler_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sched_getscheduler
    - PyLong_FromLong
    - posix_error
    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:8773,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:8776,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:8776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - sched_priority
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8778
      start: 8767
    functionDepth: 1
    functionLinenumber: 8767
    functionLinenumberEnd: 8778
    functionName: os_sched_param_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_SET_ITEM
    - PyStructSequence_New
    - Py_NewRef
    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:8783,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:8783,1
    - Dst: PyStructSequence_GetItem
      Src: /src/cpython/Modules/posixmodule.c:8783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8784
      start: 8780
    functionDepth: 1
    functionLinenumber: 8780
    functionLinenumberEnd: 8784
    functionName: os_sched_param_reduce
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_GetItem
    - Py_TYPE
    - Py_BuildValue
    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:8809,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:8809,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8810,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:8813,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:8813,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:8814,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:8817,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/posixmodule.c:8820,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - module
    - param
    - res
    argTypes:
    - PyObject*
    - PyObject*
    - struct sched_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8822
      start: 8804
    functionDepth: 2
    functionLinenumber: 8804
    functionLinenumberEnd: 8822
    functionName: convert_sched_param
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - Py_IS_TYPE
    - Py_SAFE_DOWNCAST
    - get_posix_state
    - PyErr_SetString
    - PyLong_AsLong
    - PyStructSequence_GET_ITEM
    - PyErr_Occurred
    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:8847,1
    - Dst: sched_setscheduler
      Src: /src/cpython/Modules/posixmodule.c:8856,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8857,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: 8859
      start: 8841
    functionDepth: 3
    functionLinenumber: 8841
    functionLinenumberEnd: 8859
    functionName: os_sched_setscheduler_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - convert_sched_param
    - sched_setscheduler
    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:8883,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8884,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:8885,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:8886,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:8889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:8891,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:8894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8896
      start: 8875
    functionDepth: 2
    functionLinenumber: 8875
    functionLinenumberEnd: 8896
    functionName: os_sched_getparam_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_New
    - get_posix_state
    - PyStructSequence_SET_ITEM
    - posix_error
    - sched_getparam
    - Py_DECREF
    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:8916,1
    - Dst: sched_setparam
      Src: /src/cpython/Modules/posixmodule.c:8920,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - pid
    - param_obj
    argTypes:
    - PyObject*
    - pid_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8923
      start: 8911
    functionDepth: 3
    functionLinenumber: 8911
    functionLinenumberEnd: 8923
    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:8944,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8945,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/posixmodule.c:8949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8952
      start: 8939
    functionDepth: 2
    functionLinenumber: 8939
    functionLinenumberEnd: 8952
    functionName: os_sched_rr_get_interval_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sched_rr_get_interval
    - __msan_unpoison
    - posix_error
    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:8968,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:8971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8974
      start: 8962
    functionDepth: 2
    functionLinenumber: 8962
    functionLinenumberEnd: 8974
    functionName: os_sched_yield_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sched_yield
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_yield_impl(PyObject *module)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/posixmodule.c:9000,1
    - Dst: CPU_ALLOC_SIZE
      Src: /src/cpython/Modules/posixmodule.c:9005,1
    - Dst: CPU_ALLOC
      Src: /src/cpython/Modules/posixmodule.c:9006,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9008,1
    - Dst: CPU_ZERO_S
      Src: /src/cpython/Modules/posixmodule.c:9011,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/posixmodule.c:9013,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:9015,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:9016,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:9019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9020,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:9023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9024,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:9026,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9027,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9031,1
    - Dst: CPU_ALLOC
      Src: /src/cpython/Modules/posixmodule.c:9045,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9047,1
    - Dst: CPU_ALLOC_SIZE
      Src: /src/cpython/Modules/posixmodule.c:9050,1
    - Dst: CPU_ZERO_S
      Src: /src/cpython/Modules/posixmodule.c:9051,1
    - Dst: memcpy
      Src: /src/cpython/Modules/posixmodule.c:9052,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:9053,1
    - Dst: CPU_SET_S
      Src: /src/cpython/Modules/posixmodule.c:9058,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:9060,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:9063,1
    - Dst: sched_setaffinity
      Src: /src/cpython/Modules/posixmodule.c:9065,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9066,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:9069,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:9074,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:9075,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 3
    argNames:
    - module
    - pid
    - mask
    argTypes:
    - PyObject*
    - pid_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9077
      start: 8991
    functionDepth: 2
    functionLinenumber: 8991
    functionLinenumberEnd: 9077
    functionName: os_sched_setaffinity_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - CPU_ALLOC_SIZE
    - sched_setaffinity
    - PyObject_GetIter
    - memcpy
    - PyErr_Occurred
    - PyIter_Next
    - Py_TYPE
    - PyErr_NoMemory
    - PyLong_AsLong
    - Py_XDECREF
    - CPU_ALLOC
    - PyIndex_Check
    - PyErr_SetString
    - CPU_ZERO_S
    - Py_DECREF
    - CPU_FREE
    - posix_error
    - Py_CLEAR
    - CPU_SET_S
    - PyErr_Format
    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:9100,1
    - Dst: CPU_ALLOC
      Src: /src/cpython/Modules/posixmodule.c:9101,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9103,1
    - Dst: sched_getaffinity
      Src: /src/cpython/Modules/posixmodule.c:9105,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:9108,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9110,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9113,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/posixmodule.c:9120,1
    - Dst: CPU_COUNT_S
      Src: /src/cpython/Modules/posixmodule.c:9126,1
    - Dst: CPU_ISSET_S
      Src: /src/cpython/Modules/posixmodule.c:9128,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:9129,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/posixmodule.c:9134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9138,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:9141,1
    - Dst: CPU_FREE
      Src: /src/cpython/Modules/posixmodule.c:9146,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:9148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9150
      start: 9091
    functionDepth: 2
    functionLinenumber: 9091
    functionLinenumberEnd: 9150
    functionName: os_sched_getaffinity_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_NoMemory
    - CPU_COUNT_S
    - PySet_Add
    - CPU_FREE
    - PyErr_SetString
    - CPU_ALLOC_SIZE
    - posix_error
    - PySet_New
    - sched_getaffinity
    - Py_XDECREF
    - CPU_ISSET_S
    - CPU_ALLOC
    - Py_DECREF
    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:9180,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9182,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:9187,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:9188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - module
    - oflag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9193
      start: 9170
    functionDepth: 2
    functionLinenumber: 9170
    functionLinenumberEnd: 9193
    functionName: os_posix_openpt_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - close
    - posix_openpt
    - _Py_set_inheritable
    - posix_error
    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:9217,1
    - Dst: grantpt
      Src: /src/cpython/Modules/posixmodule.c:9219,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:9223,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9231
      start: 9209
    functionDepth: 2
    functionLinenumber: 9209
    functionLinenumberEnd: 9231
    functionName: os_grantpt_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - grantpt
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

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

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

      os_ptsname_impl(PyObject *module, int fd)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: openpty
      Src: /src/cpython/Modules/posixmodule.c:9363,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:9366,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:9368,1
    - Dst: _getpty
      Src: /src/cpython/Modules/posixmodule.c:9372,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:9375,1
    - Dst: _Py_open
      Src: /src/cpython/Modules/posixmodule.c:9378,1
    - Dst: open
      Src: /src/cpython/Modules/posixmodule.c:9383,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:9387,1
    - Dst: grantpt
      Src: /src/cpython/Modules/posixmodule.c:9390,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:9392,1
    - Dst: unlockpt
      Src: /src/cpython/Modules/posixmodule.c:9398,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:9400,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/posixmodule.c:9405,1
    - Dst: ptsname
      Src: /src/cpython/Modules/posixmodule.c:9407,1
    - Dst: _Py_open
      Src: /src/cpython/Modules/posixmodule.c:9411,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:9415,1
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:9419,1
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:9420,1
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:9422,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:9427,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9430,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:9433,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:9435,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9437
      start: 9347
    functionDepth: 2
    functionLinenumber: 9347
    functionLinenumberEnd: 9437
    functionName: os_openpty_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ioctl
    - close
    - ptsname
    - _Py_set_inheritable
    - PyOS_setsig
    - open
    - Py_BuildValue
    - posix_error
    - _Py_open
    - _getpty
    - grantpt
    - openpty
    - unlockpt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_openpty_impl(PyObject *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: login_tty
      Src: /src/cpython/Modules/posixmodule.c:9465,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9466,1
    - Dst: setsid
      Src: /src/cpython/Modules/posixmodule.c:9470,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9471,1
    - Dst: ioctl
      Src: /src/cpython/Modules/posixmodule.c:9475,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9476,1
    - Dst: dup2
      Src: /src/cpython/Modules/posixmodule.c:9480,1
    - Dst: dup2
      Src: /src/cpython/Modules/posixmodule.c:9480,1
    - Dst: dup2
      Src: /src/cpython/Modules/posixmodule.c:9480,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9481,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:9484,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9488
      start: 9460
    functionDepth: 2
    functionLinenumber: 9460
    functionLinenumberEnd: 9488
    functionName: os_login_tty_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ioctl
    - login_tty
    - close
    - dup2
    - posix_error
    - setsid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_login_tty_impl(PyObject *module, int fd)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/posixmodule.c:9512,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/posixmodule.c:9513,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9514,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/posixmodule.c:9518,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:9519,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:9522,1
    - Dst: PyOS_BeforeFork
      Src: /src/cpython/Modules/posixmodule.c:9525,1
    - Dst: forkpty
      Src: /src/cpython/Modules/posixmodule.c:9526,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/cpython/Modules/posixmodule.c:9529,1
    - Dst: get_number_of_os_threads
      Src: /src/cpython/Modules/posixmodule.c:9532,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/cpython/Modules/posixmodule.c:9534,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:9536,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/posixmodule.c:9537,1
    - Dst: warn_about_fork_with_threads
      Src: /src/cpython/Modules/posixmodule.c:9542,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9546,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:9549,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:9549,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9550
      start: 9505
    functionDepth: 3
    functionLinenumber: 9505
    functionLinenumberEnd: 9550
    functionName: os_forkpty_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - warn_about_fork_with_threads
    - _Py_IsMainInterpreter
    - PyOS_AfterFork_Child
    - _Py_set_inheritable
    - PySys_Audit
    - PyErr_SetString
    - _PyInterpreterState_GET
    - get_number_of_os_threads
    - posix_error
    - Py_BuildValue
    - _PyInterpreterState_GetFinalizing
    - forkpty
    - PyOS_AfterFork_Parent
    - PyLong_FromPid
    - PyErr_FormatUnraisable
    - PyOS_BeforeFork
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_forkpty_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:9565,1
    - Dst: getegid
      Src: /src/cpython/Modules/posixmodule.c:9565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9566
      start: 9561
    functionDepth: 1
    functionLinenumber: 9561
    functionLinenumberEnd: 9566
    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:9581,1
    - Dst: geteuid
      Src: /src/cpython/Modules/posixmodule.c:9581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9582
      start: 9577
    functionDepth: 1
    functionLinenumber: 9577
    functionLinenumberEnd: 9582
    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:9597,1
    - Dst: getgid
      Src: /src/cpython/Modules/posixmodule.c:9597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9598
      start: 9593
    functionDepth: 1
    functionLinenumber: 9593
    functionLinenumberEnd: 9598
    functionName: os_getgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromGid
    - getgid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_getpid_impl(PyObject *module)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:9684,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:9686,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9689,1
    - Dst: getgrouplist
      Src: /src/cpython/Modules/posixmodule.c:9693,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9699,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9709,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/posixmodule.c:9719,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/posixmodule.c:9720,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:9723,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9725,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:9731,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:9733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:9736,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9737,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:9740,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9743,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - module
    - user
    - basegid
    argTypes:
    - PyObject*
    - char*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9746
      start: 9659
    functionDepth: 1
    functionLinenumber: 9659
    functionLinenumberEnd: 9746
    functionName: os_getgrouplist_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromGid
    - PyList_SET_ITEM
    - PyMem_New
    - PyErr_NoMemory
    - PyLong_FromUnsignedLong
    - PyList_New
    - PyMem_Free
    - Py_DECREF
    - getgrouplist
    - __msan_unpoison
    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:9762,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9764,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:9768,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:9771,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:9773,1
    - Dst: getgroups
      Src: /src/cpython/Modules/posixmodule.c:9776,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9778,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9779,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:9783,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:9789,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:9793,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9795,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:9800,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:9801,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9803
      start: 9757
    functionDepth: 2
    functionLinenumber: 9757
    functionLinenumberEnd: 9803
    functionName: os_getgroups_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromGid
    - PyList_SET_ITEM
    - PyMem_New
    - PyErr_NoMemory
    - posix_error
    - PyList_New
    - PyMem_Free
    - Py_XDECREF
    - getgroups
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgroups_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:9845,1
    - Dst: initgroups
      Src: /src/cpython/Modules/posixmodule.c:9847,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:9848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - oname
    - gid
    argTypes:
    - PyObject*
    - PyObject*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9851
      start: 9840
    functionDepth: 1
    functionLinenumber: 9840
    functionLinenumberEnd: 9851
    functionName: os_initgroups_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - initgroups
    - PyBytes_AS_STRING
    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:9868,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9870,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:9871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9872
      start: 9864
    functionDepth: 2
    functionLinenumber: 9864
    functionLinenumberEnd: 9872
    functionName: os_getpgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromPid
    - getpgid
    - posix_error
    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:9888,1
    - Dst: getpgrp
      Src: /src/cpython/Modules/posixmodule.c:9888,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:9890,1
    - Dst: getpgrp
      Src: /src/cpython/Modules/posixmodule.c:9890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9892
      start: 9883
    functionDepth: 0
    functionLinenumber: 9883
    functionLinenumberEnd: 9892
    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:9908,1
    - Dst: setpgrp
      Src: /src/cpython/Modules/posixmodule.c:9910,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:9912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9914
      start: 9903
    functionDepth: 2
    functionLinenumber: 9903
    functionLinenumberEnd: 9914
    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:9957,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/posixmodule.c:9962,1
    - Dst: pNtQueryInformationProcess
      Src: /src/cpython/Modules/posixmodule.c:9967,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/posixmodule.c:9967,1
    - Dst: NT_SUCCESS
      Src: /src/cpython/Modules/posixmodule.c:9973,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9994
      start: 9943
    functionDepth: 0
    functionLinenumber: 9943
    functionLinenumberEnd: 9994
    functionName: win32_getppid_fast
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - GetModuleHandleW
    - pNtQueryInformationProcess
    - GetProcAddress
    - NT_SUCCESS
    linkageType: ''
    returnType: ULONG
    signature: ULONG win32_getppid_fast(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/posixmodule.c:10001,1
    - Dst: win32_getppid_fast
      Src: /src/cpython/Modules/posixmodule.c:10005,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:10007,1
    - Dst: PssCaptureSnapshot
      Src: /src/cpython/Modules/posixmodule.c:10012,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:10014,1
    - Dst: PssQuerySnapshot
      Src: /src/cpython/Modules/posixmodule.c:10018,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:10021,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:10024,1
    - Dst: PssFreeSnapshot
      Src: /src/cpython/Modules/posixmodule.c:10027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10029
      start: 9996
    functionDepth: 1
    functionLinenumber: 9996
    functionLinenumberEnd: 10029
    functionName: win32_getppid
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - win32_getppid_fast
    - PyErr_SetFromWindowsErr
    - PssCaptureSnapshot
    - PssQuerySnapshot
    - PssFreeSnapshot
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      win32_getppid(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win32_getppid
      Src: /src/cpython/Modules/posixmodule.c:10048,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10050,1
    - Dst: getppid
      Src: /src/cpython/Modules/posixmodule.c:10050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10052
      start: 10043
    functionDepth: 2
    functionLinenumber: 10043
    functionLinenumberEnd: 10052
    functionName: os_getppid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromPid
    - win32_getppid
    - 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:10070,1
    - Dst: GetUserNameW
      Src: /src/cpython/Modules/posixmodule.c:10072,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:10074,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:10077,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:10077,1
    - Dst: getlogin_r
      Src: /src/cpython/Modules/posixmodule.c:10086,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10090,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:10094,1
    - Dst: getlogin
      Src: /src/cpython/Modules/posixmodule.c:10101,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10104,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10106,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:10109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10113
      start: 10063
    functionDepth: 2
    functionLinenumber: 10063
    functionLinenumberEnd: 10113
    functionName: os_getlogin_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - Py_ARRAY_LENGTH
    - PyErr_SetString
    - getlogin_r
    - GetUserNameW
    - posix_error
    - getlogin
    - GetLastError
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_getuid_impl(PyObject *module)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:10152,1
    - Dst: kill
      Src: /src/cpython/Modules/posixmodule.c:10156,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10157,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10163,1
    - Dst: GenerateConsoleCtrlEvent
      Src: /src/cpython/Modules/posixmodule.c:10175,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:10176,1
    - Dst: OpenProcess
      Src: /src/cpython/Modules/posixmodule.c:10184,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:10186,1
    - Dst: TerminateProcess
      Src: /src/cpython/Modules/posixmodule.c:10189,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:10190,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:10192,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: 10197
      start: 10148
    functionDepth: 2
    functionLinenumber: 10148
    functionLinenumberEnd: 10197
    functionName: os_kill_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PySys_Audit
    - PyErr_CheckSignals
    - posix_error
    - kill
    - CloseHandle
    - TerminateProcess
    - OpenProcess
    - GenerateConsoleCtrlEvent
    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:10216,1
    - Dst: killpg
      Src: /src/cpython/Modules/posixmodule.c:10223,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - pgid
    - signal
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10226
      start: 10212
    functionDepth: 2
    functionLinenumber: 10212
    functionLinenumberEnd: 10226
    functionName: os_killpg_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - killpg
    - PySys_Audit
    - posix_error
    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:10247,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - op
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10250
      start: 10243
    functionDepth: 2
    functionLinenumber: 10243
    functionLinenumberEnd: 10250
    functionName: os_plock_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - plock
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_plock_impl(PyObject *module, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setuid
      Src: /src/cpython/Modules/posixmodule.c:10268,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - uid
    argTypes:
    - PyObject*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10271
      start: 10264
    functionDepth: 2
    functionLinenumber: 10264
    functionLinenumberEnd: 10271
    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:10289,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - euid
    argTypes:
    - PyObject*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10292
      start: 10285
    functionDepth: 2
    functionLinenumber: 10285
    functionLinenumberEnd: 10292
    functionName: os_seteuid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - seteuid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_seteuid_impl(PyObject *module, uid_t euid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setegid
      Src: /src/cpython/Modules/posixmodule.c:10310,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - egid
    argTypes:
    - PyObject*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10313
      start: 10306
    functionDepth: 2
    functionLinenumber: 10306
    functionLinenumberEnd: 10313
    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:10332,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - ruid
    - euid
    argTypes:
    - PyObject*
    - uid_t
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10337
      start: 10328
    functionDepth: 2
    functionLinenumber: 10328
    functionLinenumberEnd: 10337
    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:10356,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - rgid
    - egid
    argTypes:
    - PyObject*
    - gid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10359
      start: 10352
    functionDepth: 2
    functionLinenumber: 10352
    functionLinenumberEnd: 10359
    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:10376,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - gid
    argTypes:
    - PyObject*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10379
      start: 10372
    functionDepth: 2
    functionLinenumber: 10372
    functionLinenumberEnd: 10379
    functionName: os_setgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setgid
    - posix_error
    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:10397,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10398,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:10401,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10406,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:10410,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:10412,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/posixmodule.c:10417,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:10419,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:10422,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:10425,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:10426,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/posixmodule.c:10429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:10430,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:10431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:10435,1
    - Dst: setgroups
      Src: /src/cpython/Modules/posixmodule.c:10438,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10439,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:10440,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:10443,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - module
    - groups
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10445
      start: 10393
    functionDepth: 2
    functionLinenumber: 10393
    functionLinenumberEnd: 10445
    functionName: os_setgroups
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PyMem_New
    - PyErr_NoMemory
    - PyErr_SetString
    - setgroups
    - PySequence_GetItem
    - posix_error
    - PySequence_Size
    - PyMem_Free
    - Py_DECREF
    - _Py_Gid_Converter
    - PyIndex_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setgroups(PyObject *module, PyObject *groups)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10456,1
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:10461,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/posixmodule.c:10464,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:10469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:10470,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10490,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:10490,1
    - Dst: doubletime
      Src: /src/cpython/Modules/posixmodule.c:10490,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10491,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:10491,1
    - Dst: doubletime
      Src: /src/cpython/Modules/posixmodule.c:10491,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10492,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10492,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10493,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10493,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10494,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10494,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10495,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10495,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10496,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10496,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10497,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10497,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10498,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10498,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10499,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10499,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10500,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10500,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10501,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10501,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10502,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10502,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10503,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10503,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10504,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10504,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10505,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10505,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10508,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10508,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: 10509
      start: 10449
    functionDepth: 2
    functionLinenumber: 10449
    functionLinenumberEnd: 10509
    functionName: wait_helper
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_New
    - doubletime
    - PyFloat_FromDouble
    - posix_error
    - Py_BuildValue
    - memset
    - Py_DECREF
    - SET_RESULT
    - PyLong_FromPid
    - PyImport_ImportModuleAttrString
    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: 10478
      start: 10477
    functionDepth: 0
    functionLinenumber: 10477
    functionLinenumberEnd: 10478
    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: 10489
      start: 10480
    functionDepth: 0
    functionLinenumber: 10480
    functionLinenumberEnd: 10489
    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:10536,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10538,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10540,1
    - Dst: wait_helper
      Src: /src/cpython/Modules/posixmodule.c:10542,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:10542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - module
    - options
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10543
      start: 10524
    functionDepth: 3
    functionLinenumber: 10524
    functionLinenumberEnd: 10543
    functionName: os_wait3_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wait3
    - WAIT_STATUS_INT
    - PyErr_CheckSignals
    - posix_error
    - wait_helper
    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: 10532
      start: 10532
    functionDepth: 0
    functionLinenumber: 10532
    functionLinenumberEnd: 10532
    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:10573,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10575,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10577,1
    - Dst: wait_helper
      Src: /src/cpython/Modules/posixmodule.c:10579,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:10579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10580
      start: 10561
    functionDepth: 3
    functionLinenumber: 10561
    functionLinenumberEnd: 10580
    functionName: os_wait4_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - PyErr_CheckSignals
    - posix_error
    - wait_helper
    - 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: 10569
      start: 10569
    functionDepth: 0
    functionLinenumber: 10569
    functionLinenumberEnd: 10569
    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:10615,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10617,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10619,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:10624,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:10625,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10641,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10641,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10642,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:10642,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10643,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10643,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10644,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10644,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:10645,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10645,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: 10650
      start: 10603
    functionDepth: 2
    functionLinenumber: 10603
    functionLinenumberEnd: 10650
    functionName: os_waitid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - waitid
    - PyLong_FromLong
    - PyStructSequence_New
    - PyErr_CheckSignals
    - get_posix_state
    - posix_error
    - _PyLong_FromUid
    - SET_RESULT
    - PyLong_FromPid
    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: 10640
      start: 10631
    functionDepth: 0
    functionLinenumber: 10631
    functionLinenumberEnd: 10640
    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:10680,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10682,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10684,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10686,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10686,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:10686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10687
      start: 10669
    functionDepth: 2
    functionLinenumber: 10669
    functionLinenumberEnd: 10687
    functionName: os_waitpid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - PyErr_CheckSignals
    - waitpid
    - Py_BuildValue
    - posix_error
    - PyLong_FromPid
    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: 10676
      start: 10676
    functionDepth: 0
    functionLinenumber: 10676
    functionLinenumberEnd: 10676
    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:10715,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10718,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10720,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10726
      start: 10704
    functionDepth: 2
    functionLinenumber: 10704
    functionLinenumberEnd: 10726
    functionName: os_waitpid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - Py_BuildValue
    - _cwait
    - 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:10751,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:10753,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10755,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:10757,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:10757,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:10757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10758
      start: 10740
    functionDepth: 2
    functionLinenumber: 10740
    functionLinenumberEnd: 10758
    functionName: os_wait_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wait
    - WAIT_STATUS_INT
    - PyErr_CheckSignals
    - Py_BuildValue
    - posix_error
    - PyLong_FromPid
    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: 10747
      start: 10747
    functionDepth: 0
    functionLinenumber: 10747
    functionLinenumberEnd: 10747
    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:10780,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10782,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - pid
    - flags
    argTypes:
    - PyObject*
    - pid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10785
      start: 10776
    functionDepth: 2
    functionLinenumber: 10776
    functionLinenumberEnd: 10785
    functionName: os_pidfd_open_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - syscall
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pidfd_open_impl(PyObject *module, pid_t pid, unsigned int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/cpython/Modules/posixmodule.c:10809,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10811,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:10813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - module
    - pidfd
    - targetfd
    - flags
    argTypes:
    - PyObject*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10814
      start: 10804
    functionDepth: 2
    functionLinenumber: 10804
    functionLinenumberEnd: 10814
    functionName: os_pidfd_getfd_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - syscall
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_pidfd_getfd_impl(PyObject *module, int pidfd, int targetfd,\n
      \                   unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setns
      Src: /src/cpython/Modules/posixmodule.c:10836,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - nstype
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10844
      start: 10829
    functionDepth: 2
    functionLinenumber: 10829
    functionLinenumberEnd: 10844
    functionName: os_setns_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setns
    - posix_error
    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:10864,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:10868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10872
      start: 10857
    functionDepth: 2
    functionLinenumber: 10857
    functionLinenumberEnd: 10872
    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:10909,1
    - Dst: readlink
      Src: /src/cpython/Modules/posixmodule.c:10915,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:10920,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:10926,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:10930,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:10931,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:10933,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/posixmodule.c:10944,1
    - Dst: DeviceIoControl
      Src: /src/cpython/Modules/posixmodule.c:10954,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/posixmodule.c:10962,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:10967,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:10986,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/posixmodule.c:10989,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:10993,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:10994,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:10995,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:10995,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11000
      start: 10894
    functionDepth: 4
    functionLinenumber: 10894
    functionLinenumberEnd: 11000
    functionName: os_readlink_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyBytes_FromStringAndSize
    - PyUnicode_DecodeFSDefaultAndSize
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_EncodeFSDefault
    - path_error
    - PyUnicode_Check
    - Py_SETREF
    - CloseHandle
    - readlink
    - CreateFileW
    - readlinkat
    - DeviceIoControl
    - wcsncmp
    - argument_unavailable_error
    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:11010,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11023
      start: 11006
    functionDepth: 0
    functionLinenumber: 11006
    functionLinenumberEnd: 11023
    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: 11037
      start: 11032
    functionDepth: 0
    functionLinenumber: 11032
    functionLinenumberEnd: 11037
    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:11043,1
    - Dst: wcscpy_s
      Src: /src/cpython/Modules/posixmodule.c:11044,1
    - Dst: wcscpy_s
      Src: /src/cpython/Modules/posixmodule.c:11047,1
    - Dst: wcscat_s
      Src: /src/cpython/Modules/posixmodule.c:11051,1
    - Dst: wcscat_s
      Src: /src/cpython/Modules/posixmodule.c:11055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - dest_path
    - root
    - rest
    argTypes:
    - WCHAR*
    - WCHAR*
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11056
      start: 11040
    functionDepth: 1
    functionLinenumber: 11040
    functionLinenumberEnd: 11056
    functionName: _joinW
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcscpy_s
    - _is_absW
    - wcscat_s
    linkageType: ''
    returnType: int
    signature: int _joinW(WCHAR *dest_path, const WCHAR *root, const WCHAR *rest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy_s
      Src: /src/cpython/Modules/posixmodule.c:11067,1
    - Dst: _dirnameW
      Src: /src/cpython/Modules/posixmodule.c:11068,1
    - Dst: _joinW
      Src: /src/cpython/Modules/posixmodule.c:11072,1
    - Dst: GetFileAttributesExW
      Src: /src/cpython/Modules/posixmodule.c:11076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11079
      start: 11059
    functionDepth: 2
    functionLinenumber: 11059
    functionLinenumberEnd: 11079
    functionName: _check_dirW
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcscpy_s
    - _joinW
    - _dirnameW
    - GetFileAttributesExW
    linkageType: ''
    returnType: int
    signature: int _check_dirW(LPCWSTR src, LPCWSTR dest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:11124,1
    - Dst: _check_dirW
      Src: /src/cpython/Modules/posixmodule.c:11139,1
    - Dst: CreateSymbolicLinkW
      Src: /src/cpython/Modules/posixmodule.c:11143,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:11148,1
    - Dst: CreateSymbolicLinkW
      Src: /src/cpython/Modules/posixmodule.c:11163,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:11167,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:11173,1
    - Dst: symlinkat
      Src: /src/cpython/Modules/posixmodule.c:11181,1
    - Dst: symlink
      Src: /src/cpython/Modules/posixmodule.c:11187,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:11192,1
    - Dst: path_error2
      Src: /src/cpython/Modules/posixmodule.c:11198,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: 11202
      start: 11106
    functionDepth: 3
    functionLinenumber: 11106
    functionLinenumberEnd: 11202
    functionName: os_symlink_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _check_dirW
    - PySys_Audit
    - CreateSymbolicLinkW
    - symlink
    - path_error2
    - symlinkat
    - GetLastError
    - argument_unavailable_error
    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:11236,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:11237,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:11251,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:11252,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:11253,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:11254,1
    - Dst: SET
      Src: /src/cpython/Modules/posixmodule.c:11255,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: 11260
      start: 11231
    functionDepth: 2
    functionLinenumber: 11231
    functionLinenumberEnd: 11260
    functionName: build_times_result
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - get_posix_state
    - SET
    - PyStructSequence_New
    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: 11251
      start: 11241
    functionDepth: 0
    functionLinenumber: 11241
    functionLinenumberEnd: 11251
    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:11280,1
    - Dst: GetProcessTimes
      Src: /src/cpython/Modules/posixmodule.c:11281,1
    - Dst: build_times_result
      Src: /src/cpython/Modules/posixmodule.c:11287,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:11296,1
    - Dst: times
      Src: /src/cpython/Modules/posixmodule.c:11302,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11304,1
    - Dst: build_times_result
      Src: /src/cpython/Modules/posixmodule.c:11307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11314
      start: 11273
    functionDepth: 3
    functionLinenumber: 11273
    functionLinenumberEnd: 11314
    functionName: os_times_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - build_times_result
    - get_posix_state
    - posix_error
    - times
    - GetProcessTimes
    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: 11320
      start: 11319
    functionDepth: 0
    functionLinenumber: 11319
    functionLinenumberEnd: 11320
    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: 11321
      start: 11320
    functionDepth: 0
    functionLinenumber: 11320
    functionLinenumberEnd: 11321
    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:11325,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:11327,1
    - Dst: CONVERT_SEC_AND_NSEC_TO_DOUBLE
      Src: /src/cpython/Modules/posixmodule.c:11331,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/posixmodule.c:11333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:11335,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/posixmodule.c:11338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - curr_value
    argTypes:
    - struct itimerspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11339
      start: 11322
    functionDepth: 1
    functionLinenumber: 11322
    functionLinenumberEnd: 11339
    functionName: build_itimerspec
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - CONVERT_SEC_AND_NSEC_TO_DOUBLE
    - PyFloat_FromDouble
    - Py_DECREF
    - _PyTuple_FromPairSteal
    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:11345,1
    - Dst: _PyTime_FromTimespec
      Src: /src/cpython/Modules/posixmodule.c:11348,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:11351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - curr_value
    argTypes:
    - struct itimerspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11352
      start: 11341
    functionDepth: 1
    functionLinenumber: 11341
    functionLinenumberEnd: 11352
    functionName: build_itimerspec_ns
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromTimespec
    - Py_BuildValue
    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:11386,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:11389,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:11391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - clockid
    - flags
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11392
      start: 11378
    functionDepth: 1
    functionLinenumber: 11378
    functionLinenumberEnd: 11392
    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:11417,1
    - Dst: _PyTime_FromSecondsDouble
      Src: /src/cpython/Modules/posixmodule.c:11421,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/posixmodule.c:11427,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11428,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/posixmodule.c:11431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11432,1
    - Dst: timerfd_settime
      Src: /src/cpython/Modules/posixmodule.c:11438,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:11441,1
    - Dst: build_itimerspec
      Src: /src/cpython/Modules/posixmodule.c:11443,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: 11444
      start: 11411
    functionDepth: 2
    functionLinenumber: 11411
    functionLinenumberEnd: 11444
    functionName: os_timerfd_settime_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - build_itimerspec
    - _PyTime_FromSecondsDouble
    - _PyTime_AsTimespec
    - PyErr_SetFromErrno
    - timerfd_settime
    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:11472,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11473,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/posixmodule.c:11476,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:11477,1
    - Dst: timerfd_settime
      Src: /src/cpython/Modules/posixmodule.c:11481,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:11484,1
    - Dst: build_itimerspec_ns
      Src: /src/cpython/Modules/posixmodule.c:11486,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: 11487
      start: 11464
    functionDepth: 2
    functionLinenumber: 11464
    functionLinenumberEnd: 11487
    functionName: os_timerfd_settime_ns_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyTime_AsTimespec
    - build_itimerspec_ns
    - PyErr_SetFromErrno
    - timerfd_settime
    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:11507,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:11510,1
    - Dst: build_itimerspec
      Src: /src/cpython/Modules/posixmodule.c:11512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11513
      start: 11500
    functionDepth: 2
    functionLinenumber: 11500
    functionLinenumberEnd: 11513
    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:11534,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:11537,1
    - Dst: build_itimerspec_ns
      Src: /src/cpython/Modules/posixmodule.c:11539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11540
      start: 11527
    functionDepth: 2
    functionLinenumber: 11527
    functionLinenumberEnd: 11540
    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:11562,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11564,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:11565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11566
      start: 11557
    functionDepth: 2
    functionLinenumber: 11557
    functionLinenumberEnd: 11566
    functionName: os_getsid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - getsid
    - posix_error
    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:11581,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11584
      start: 11577
    functionDepth: 2
    functionLinenumber: 11577
    functionLinenumberEnd: 11584
    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:11603,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - pid
    - pgrp
    argTypes:
    - PyObject*
    - pid_t
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11606
      start: 11599
    functionDepth: 2
    functionLinenumber: 11599
    functionLinenumberEnd: 11606
    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:11624,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11626,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/posixmodule.c:11627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11628
      start: 11620
    functionDepth: 2
    functionLinenumber: 11620
    functionLinenumberEnd: 11628
    functionName: os_tcgetpgrp_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - tcgetpgrp
    - PyLong_FromPid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_tcgetpgrp_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcsetpgrp
      Src: /src/cpython/Modules/posixmodule.c:11647,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - pgid
    argTypes:
    - PyObject*
    - int
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11650
      start: 11643
    functionDepth: 2
    functionLinenumber: 11643
    functionLinenumberEnd: 11650
    functionName: os_tcsetpgrp_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - tcsetpgrp
    - posix_error
    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:11699,1
    - Dst: _wopen
      Src: /src/cpython/Modules/posixmodule.c:11707,1
    - Dst: openat
      Src: /src/cpython/Modules/posixmodule.c:11712,1
    - Dst: open
      Src: /src/cpython/Modules/posixmodule.c:11720,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:11723,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:11728,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/posixmodule.c:11735,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/posixmodule.c:11740,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:11741,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: 11747
      start: 11677
    functionDepth: 2
    functionLinenumber: 11677
    functionLinenumberEnd: 11747
    functionName: os_open_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - close
    - _Py_set_inheritable
    - PySys_Audit
    - PyErr_CheckSignals
    - openat
    - open
    - _wopen
    - PyErr_SetFromErrnoWithFilenameObject
    - argument_unavailable_error
    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:11707,1
    - Dst: openat
      Src: /src/cpython/Modules/posixmodule.c:11712,1
    - Dst: open
      Src: /src/cpython/Modules/posixmodule.c:11720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11723
      start: 11703
    functionDepth: 0
    functionLinenumber: 11703
    functionLinenumberEnd: 11723
    functionName: do
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - openat
    - _wopen
    - open
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:11769,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11775
      start: 11758
    functionDepth: 2
    functionLinenumber: 11758
    functionLinenumberEnd: 11775
    functionName: os_close_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - close
    - posix_error
    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: 11795
      start: 11787
    functionDepth: 0
    functionLinenumber: 11787
    functionLinenumberEnd: 11795
    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:11811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11812
      start: 11807
    functionDepth: 1
    functionLinenumber: 11807
    functionLinenumberEnd: 11812
    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:11936,1
    - Dst: lockf
      Src: /src/cpython/Modules/posixmodule.c:11941,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11945,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: 11948
      start: 11930
    functionDepth: 2
    functionLinenumber: 11930
    functionLinenumberEnd: 11948
    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:11990,1
    - Dst: lseek
      Src: /src/cpython/Modules/posixmodule.c:11992,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:11997,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: 12000
      start: 11972
    functionDepth: 2
    functionLinenumber: 11972
    functionLinenumberEnd: 12000
    functionName: os_lseek_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _lseeki64
    - posix_error
    - lseek
    linkageType: ''
    returnType: Py_off_t
    signature: Py_off_t os_lseek_impl(PyObject *module, int fd, Py_off_t position,
      int how)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12018,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/posixmodule.c:12021,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/posixmodule.c:12023,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/posixmodule.c:12028,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/posixmodule.c:12028,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/posixmodule.c:12030,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/posixmodule.c:12034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - module
    - fd
    - length
    argTypes:
    - PyObject*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12035
      start: 12012
    functionDepth: 2
    functionLinenumber: 12012
    functionLinenumberEnd: 12035
    functionName: os_read_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - _Py_read
    - posix_error
    - Py_MIN
    - PyBytesWriter_Discard
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_GetData
    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:12060,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/posixmodule.c:12061,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:12065,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:12065,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: 12059
        line_start: 12059
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (result >= 0 || (result == -1 && PyErr_Occurred()))
      pos:
        line_end: 12064
        line_start: 12064
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 12067
      start: 12056
    functionDepth: 1
    functionLinenumber: 12056
    functionLinenumberEnd: 12067
    functionName: os_readinto_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_read
    - PyErr_Occurred
    - 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:12078,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:12080,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:12084,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:12086,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:12087,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/posixmodule.c:12092,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/posixmodule.c:12095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:12096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:12099,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:12106,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/posixmodule.c:12108,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:12110,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: 12112
      start: 12073
    functionDepth: 1
    functionLinenumber: 12073
    functionLinenumberEnd: 12112
    functionName: iov_setup
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - PySequence_GetItem
    - PyBuffer_Release
    - PyMem_Free
    - Py_DECREF
    - PyObject_GetBuffer
    linkageType: ''
    returnType: int
    signature: int iov_setup(struct iovec **iov, Py_buffer **buf, PyObject *seq, Py_ssize_t
      cnt, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:12118,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/posixmodule.c:12120,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:12122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - iov
    - buf
    - cnt
    argTypes:
    - struct iovec*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12123
      start: 12114
    functionDepth: 1
    functionLinenumber: 12114
    functionLinenumberEnd: 12123
    functionName: iov_cleanup
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void iov_cleanup(struct iovec *iov, Py_buffer *buf, int cnt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/posixmodule.c:12155,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12156,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:12161,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:12165,1
    - Dst: readv
      Src: /src/cpython/Modules/posixmodule.c:12170,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12172,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:12175,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12179,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - fd
    - buffers
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12185
      start: 12146
    functionDepth: 2
    functionLinenumber: 12146
    functionLinenumberEnd: 12185
    functionName: os_readv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - iov_setup
    - iov_cleanup
    - readv
    - PyErr_CheckSignals
    - PyErr_SetString
    - posix_error
    - PySequence_Size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t os_readv_impl(PyObject *module, int fd, PyObject *buffers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12214,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/posixmodule.c:12216,1
    - Dst: pread
      Src: /src/cpython/Modules/posixmodule.c:12224,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/posixmodule.c:12224,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12227,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12231,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/posixmodule.c:12233,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/posixmodule.c:12236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - module
    - fd
    - length
    - offset
    argTypes:
    - PyObject*
    - int
    - Py_ssize_t
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12237
      start: 12205
    functionDepth: 2
    functionLinenumber: 12205
    functionLinenumberEnd: 12237
    functionName: os_pread_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - PyBytesWriter_Create
    - posix_error
    - PyBytesWriter_Discard
    - pread
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_GetData
    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:12280,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12281,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:12286,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:12293,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:12298,1
    - Dst: preadv2
      Src: /src/cpython/Modules/posixmodule.c:12305,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12308,1
    - Dst: preadv
      Src: /src/cpython/Modules/posixmodule.c:12321,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12324,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:12333,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12337,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: 12343
      start: 12270
    functionDepth: 2
    functionLinenumber: 12270
    functionLinenumberEnd: 12343
    functionName: os_preadv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - iov_setup
    - iov_cleanup
    - preadv
    - PyErr_CheckSignals
    - PyErr_SetString
    - posix_error
    - PySequence_Size
    - preadv2
    - argument_unavailable_error
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t os_preadv_impl(PyObject *module, int fd, PyObject *buffers,
      Py_off_t offset,\n               int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_write
      Src: /src/cpython/Modules/posixmodule.c:12361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - fd
    - data
    argTypes:
    - PyObject*
    - int
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12362
      start: 12357
    functionDepth: 1
    functionLinenumber: 12357
    functionLinenumberEnd: 12362
    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: 28
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12428,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:12433,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/posixmodule.c:12447,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12448,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:12452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12456,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:12462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12470,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/posixmodule.c:12481,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12482,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:12486,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12490,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:12496,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:12507,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:12509,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12512,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:12517,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:12519,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12532,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:12540,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:12542,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:12550,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12552,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12554,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/posixmodule.c:12555,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:12559,1
    - Dst: fstat
      Src: /src/cpython/Modules/posixmodule.c:12569,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12571,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12573,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:12576,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:12590,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12599,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12601,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/posixmodule.c:12602,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 104
    argCount: 5
    argNames:
    - module
    - out_fd
    - in_fd
    - offobj
    - count
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (count >= 0)
      pos:
        line_end: 12432
        line_start: 12432
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 12604
      start: 12417
    functionDepth: 2
    functionLinenumber: 12417
    functionLinenumberEnd: 12604
    functionName: os_sendfile_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - iov_setup
    - iov_cleanup
    - sendfile
    - PyLong_FromLong
    - PyErr_CheckSignals
    - PyLong_FromLongLong
    - PyErr_SetString
    - Py_off_t_converter
    - posix_error
    - PyLong_FromSsize_t
    - PySequence_Size
    - assert
    - fstat
    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:12507,1
    - Dst: sendfile
      Src: /src/cpython/Modules/posixmodule.c:12509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12512
      start: 12503
    functionDepth: 0
    functionLinenumber: 12503
    functionLinenumberEnd: 12512
    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:12628,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12631,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: 12633
      start: 12621
    functionDepth: 2
    functionLinenumber: 12621
    functionLinenumberEnd: 12633
    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:12658,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12660,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:12663,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12665,1
    - Dst: _pystat_fromstructstat
      Src: /src/cpython/Modules/posixmodule.c:12669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12670
      start: 12648
    functionDepth: 4
    functionLinenumber: 12648
    functionLinenumberEnd: 12670
    functionName: os_fstat_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyErr_CheckSignals
    - posix_error
    - _pystat_fromstructstat
    - FSTAT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstat_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/cpython/Modules/posixmodule.c:12691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12695
      start: 12684
    functionDepth: 0
    functionLinenumber: 12684
    functionLinenumberEnd: 12695
    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:12802,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12804,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:12805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12806
      start: 12795
    functionDepth: 2
    functionLinenumber: 12795
    functionLinenumberEnd: 12806
    functionName: os_pipe2_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - pipe2
    - 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:12834,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12835,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:12839,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:12843,1
    - Dst: writev
      Src: /src/cpython/Modules/posixmodule.c:12849,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12851,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12854,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:12856,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - module
    - fd
    - buffers
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12858
      start: 12824
    functionDepth: 2
    functionLinenumber: 12824
    functionLinenumberEnd: 12858
    functionName: os_writev_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - iov_setup
    - iov_cleanup
    - writev
    - PyErr_CheckSignals
    - PyErr_SetString
    - posix_error
    - PySequence_Size
    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:12888,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12891,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12894,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: 12896
      start: 12878
    functionDepth: 2
    functionLinenumber: 12878
    functionLinenumberEnd: 12896
    functionName: os_pwrite_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - pwrite
    - 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:12943,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:12944,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/posixmodule.c:12949,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:12956,1
    - Dst: iov_setup
      Src: /src/cpython/Modules/posixmodule.c:12961,1
    - Dst: pwritev2
      Src: /src/cpython/Modules/posixmodule.c:12968,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12971,1
    - Dst: pwritev
      Src: /src/cpython/Modules/posixmodule.c:12985,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:12988,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:12998,1
    - Dst: iov_cleanup
      Src: /src/cpython/Modules/posixmodule.c:13002,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: 13005
      start: 12932
    functionDepth: 2
    functionLinenumber: 12932
    functionLinenumberEnd: 13005
    functionName: os_pwritev_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - iov_setup
    - iov_cleanup
    - PyErr_CheckSignals
    - PyErr_SetString
    - posix_error
    - pwritev2
    - PySequence_Size
    - pwritev
    - argument_unavailable_error
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t os_pwritev_impl(PyObject *module, int fd, PyObject *buffers,
      Py_off_t offset,\n                int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:13045,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:13052,1
    - Dst: copy_file_range
      Src: /src/cpython/Modules/posixmodule.c:13060,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13062,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13065,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/posixmodule.c:13068,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    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: 13069
      start: 13029
    functionDepth: 2
    functionLinenumber: 13029
    functionLinenumberEnd: 13069
    functionName: os_copy_file_range_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - Py_off_t_converter
    - posix_error
    - PyLong_FromSsize_t
    - copy_file_range
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:13110,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/posixmodule.c:13117,1
    - Dst: splice
      Src: /src/cpython/Modules/posixmodule.c:13125,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13127,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13130,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/posixmodule.c:13133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    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: 13134
      start: 13096
    functionDepth: 2
    functionLinenumber: 13096
    functionLinenumberEnd: 13134
    functionName: os_splice_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - Py_off_t_converter
    - splice
    - posix_error
    - PyLong_FromSsize_t
    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:13170,1
    - Dst: mkfifo
      Src: /src/cpython/Modules/posixmodule.c:13178,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13181,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:13185,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13191,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: 13194
      start: 13155
    functionDepth: 2
    functionLinenumber: 13155
    functionLinenumberEnd: 13194
    functionName: os_mkfifo_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - mkfifo
    - mkfifoat
    - PyErr_CheckSignals
    - posix_error
    - argument_unavailable_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:13240,1
    - Dst: mknod
      Src: /src/cpython/Modules/posixmodule.c:13248,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13251,1
    - Dst: argument_unavailable_error
      Src: /src/cpython/Modules/posixmodule.c:13254,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13259,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: 13262
      start: 13224
    functionDepth: 2
    functionLinenumber: 13224
    functionLinenumberEnd: 13262
    functionName: os_mknod_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - posix_error
    - mknod
    - mknodat
    - argument_unavailable_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:13272,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:13275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13276
      start: 13267
    functionDepth: 0
    functionLinenumber: 13267
    functionLinenumberEnd: 13276
    functionName: major_minor_conv
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromUnsignedLong
    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: 13287
      start: 13278
    functionDepth: 0
    functionLinenumber: 13278
    functionLinenumberEnd: 13287
    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:13302,1
    - Dst: major
      Src: /src/cpython/Modules/posixmodule.c:13302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - device
    argTypes:
    - PyObject*
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13303
      start: 13298
    functionDepth: 1
    functionLinenumber: 13298
    functionLinenumberEnd: 13303
    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:13319,1
    - Dst: minor
      Src: /src/cpython/Modules/posixmodule.c:13319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - device
    argTypes:
    - PyObject*
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13320
      start: 13315
    functionDepth: 1
    functionLinenumber: 13315
    functionLinenumberEnd: 13320
    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:13337,1
    - Dst: major_minor_check
      Src: /src/cpython/Modules/posixmodule.c:13337,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13338,1
    - Dst: makedev
      Src: /src/cpython/Modules/posixmodule.c:13342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - module
    - major
    - minor
    argTypes:
    - PyObject*
    - dev_t
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13343
      start: 13333
    functionDepth: 1
    functionLinenumber: 13333
    functionLinenumberEnd: 13343
    functionName: os_makedev_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - makedev
    - PyErr_SetString
    - 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:13365,1
    - Dst: _chsize_s
      Src: /src/cpython/Modules/posixmodule.c:13373,1
    - Dst: ftruncate
      Src: /src/cpython/Modules/posixmodule.c:13375,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13380,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - module
    - fd
    - length
    argTypes:
    - PyObject*
    - int
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13384
      start: 13358
    functionDepth: 2
    functionLinenumber: 13358
    functionLinenumberEnd: 13384
    functionName: os_ftruncate_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_CheckSignals
    - posix_error
    - ftruncate
    - _chsize_s
    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:13411,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:13413,1
    - Dst: _wopen
      Src: /src/cpython/Modules/posixmodule.c:13420,1
    - Dst: _chsize_s
      Src: /src/cpython/Modules/posixmodule.c:13424,1
    - Dst: close
      Src: /src/cpython/Modules/posixmodule.c:13425,1
    - Dst: truncate
      Src: /src/cpython/Modules/posixmodule.c:13430,1
    - Dst: posix_path_error
      Src: /src/cpython/Modules/posixmodule.c:13435,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: 13438
      start: 13401
    functionDepth: 3
    functionLinenumber: 13401
    functionLinenumberEnd: 13438
    functionName: os_truncate_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - close
    - posix_path_error
    - PySys_Audit
    - _wopen
    - _chsize_s
    - os_ftruncate_impl
    - truncate
    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:13471,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13473,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13482,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: 13483
      start: 13461
    functionDepth: 2
    functionLinenumber: 13461
    functionLinenumberEnd: 13483
    functionName: os_posix_fallocate_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - posix_fallocate
    - 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:13518,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:13520,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13529,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: 13530
      start: 13508
    functionDepth: 2
    functionLinenumber: 13508
    functionLinenumberEnd: 13530
    functionName: os_posix_fadvise_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - posix_error
    - posix_fadvise
    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:13540,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/posixmodule.c:13541,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/posixmodule.c:13541,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13543,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:13548,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:13551,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:13558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:13559,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:13565,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13568,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:13571,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13572,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13574,1
    - Dst: _wputenv
      Src: /src/cpython/Modules/posixmodule.c:13584,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13587,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13588,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:13591,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13594
      start: 13535
    functionDepth: 2
    functionLinenumber: 13535
    functionLinenumberEnd: 13594
    functionName: win32_putenv
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_FromFormat
    - posix_error
    - PyUnicode_FindChar
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyMem_Free
    - Py_DECREF
    - _wputenv
    - PyUnicode_AsWideCharString
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      win32_putenv(PyObject *name, PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:13613,1
    - Dst: win32_putenv
      Src: /src/cpython/Modules/posixmodule.c:13616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13617
      start: 13609
    functionDepth: 3
    functionLinenumber: 13609
    functionLinenumberEnd: 13617
    functionName: os_putenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - win32_putenv
    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:13633,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:13634,1
    - Dst: strchr
      Src: /src/cpython/Modules/posixmodule.c:13636,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:13637,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:13641,1
    - Dst: setenv
      Src: /src/cpython/Modules/posixmodule.c:13645,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - module
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13649
      start: 13629
    functionDepth: 2
    functionLinenumber: 13629
    functionLinenumberEnd: 13649
    functionName: os_putenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetString
    - setenv
    - strchr
    - posix_error
    - PyBytes_AS_STRING
    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:13666,1
    - Dst: win32_putenv
      Src: /src/cpython/Modules/posixmodule.c:13669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13670
      start: 13662
    functionDepth: 3
    functionLinenumber: 13662
    functionLinenumberEnd: 13670
    functionName: os_unsetenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - win32_putenv
    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:13684,1
    - Dst: unsetenv
      Src: /src/cpython/Modules/posixmodule.c:13688,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:13688,1
    - Dst: unsetenv
      Src: /src/cpython/Modules/posixmodule.c:13690,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:13690,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13697
      start: 13680
    functionDepth: 2
    functionLinenumber: 13680
    functionLinenumberEnd: 13697
    functionName: os_unsetenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - unsetenv
    - PySys_Audit
    - posix_error
    - PyBytes_AS_STRING
    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:13710,1
    - Dst: clearenv
      Src: /src/cpython/Modules/posixmodule.c:13715,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:13717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13720
      start: 13706
    functionDepth: 2
    functionLinenumber: 13706
    functionLinenumberEnd: 13720
    functionName: os__clearenv_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - clearenv
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      os_strerror_impl(PyObject *module, int code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13763,1
    - Dst: WCOREDUMP
      Src: /src/cpython/Modules/posixmodule.c:13764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13765
      start: 13758
    functionDepth: 1
    functionLinenumber: 13758
    functionLinenumberEnd: 13765
    functionName: os_WCOREDUMP_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WCOREDUMP
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WCOREDUMP_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13787,1
    - Dst: WIFCONTINUED
      Src: /src/cpython/Modules/posixmodule.c:13788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13789
      start: 13782
    functionDepth: 1
    functionLinenumber: 13782
    functionLinenumberEnd: 13789
    functionName: os_WIFCONTINUED_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WIFCONTINUED
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WIFCONTINUED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13807,1
    - Dst: WIFSTOPPED
      Src: /src/cpython/Modules/posixmodule.c:13808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13809
      start: 13802
    functionDepth: 1
    functionLinenumber: 13802
    functionLinenumberEnd: 13809
    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:13827,1
    - Dst: WIFSIGNALED
      Src: /src/cpython/Modules/posixmodule.c:13828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13829
      start: 13822
    functionDepth: 1
    functionLinenumber: 13822
    functionLinenumberEnd: 13829
    functionName: os_WIFSIGNALED_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WIFSIGNALED
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WIFSIGNALED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13848,1
    - Dst: WIFEXITED
      Src: /src/cpython/Modules/posixmodule.c:13849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13850
      start: 13843
    functionDepth: 1
    functionLinenumber: 13843
    functionLinenumberEnd: 13850
    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:13868,1
    - Dst: WEXITSTATUS
      Src: /src/cpython/Modules/posixmodule.c:13869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13870
      start: 13863
    functionDepth: 1
    functionLinenumber: 13863
    functionLinenumberEnd: 13870
    functionName: os_WEXITSTATUS_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WEXITSTATUS
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WEXITSTATUS_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:13889,1
    - Dst: WTERMSIG
      Src: /src/cpython/Modules/posixmodule.c:13890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13891
      start: 13884
    functionDepth: 1
    functionLinenumber: 13884
    functionLinenumberEnd: 13891
    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:13910,1
    - Dst: WSTOPSIG
      Src: /src/cpython/Modules/posixmodule.c:13911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13912
      start: 13905
    functionDepth: 1
    functionLinenumber: 13905
    functionLinenumberEnd: 13912
    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:13933,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:13934,1
    - Dst: _Static_assert
      Src: /src/cpython/Modules/posixmodule.c:13947,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13959,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13959,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13960,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13960,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13961,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13961,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13962,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13962,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13963,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13963,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13964,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13964,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13965,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13965,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13966,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:13966,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13967,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13967,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13969,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:13969,1
    - Dst: SET_ITEM
      Src: /src/cpython/Modules/posixmodule.c:13970,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:13970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - module
    - st
    argTypes:
    - PyObject*
    - struct statfs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13975
      start: 13931
    functionDepth: 2
    functionLinenumber: 13931
    functionLinenumberEnd: 13975
    functionName: _pystatvfs_fromstructstatfs
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_New
    - PyLong_FromLongLong
    - get_posix_state
    - PyLong_FromUnsignedLong
    - SET_ITEM
    - _Static_assert
    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: 13958
      start: 13949
    functionDepth: 0
    functionLinenumber: 13949
    functionLinenumberEnd: 13958
    functionName: SET_ITEM
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM(SEQ, INDEX, EXPR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:13983,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:13984,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14001,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14001,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14002,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14002,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14003,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14003,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14004,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14004,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14005,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14005,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14006,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14006,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14007,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14007,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14008,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14008,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14009,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14009,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14010,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14010,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14012,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14012,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14013,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14013,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14014,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:14014,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14015,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:14015,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14016,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:14016,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14017,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:14017,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14018,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:14018,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14019,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/posixmodule.c:14019,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14020,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14020,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14021,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:14021,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14026,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:14026,1
    - Dst: SET_RESULT
      Src: /src/cpython/Modules/posixmodule.c:14028,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:14028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - module
    - st
    argTypes:
    - PyObject*
    - struct statvfs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14034
      start: 13981
    functionDepth: 2
    functionLinenumber: 13981
    functionLinenumberEnd: 14034
    functionName: _pystatvfs_fromstructstatvfs
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_New
    - PyLong_FromLongLong
    - get_posix_state
    - SET_RESULT
    - PyLong_FromUnsignedLong
    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: 13999
      start: 13990
    functionDepth: 0
    functionLinenumber: 13990
    functionLinenumberEnd: 13999
    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:14062,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:14065,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14067,1
    - Dst: _pystatvfs_fromstructstatfs
      Src: /src/cpython/Modules/posixmodule.c:14069,1
    - Dst: fstatvfs
      Src: /src/cpython/Modules/posixmodule.c:14075,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:14078,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14080,1
    - Dst: _pystatvfs_fromstructstatvfs
      Src: /src/cpython/Modules/posixmodule.c:14082,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14084
      start: 14049
    functionDepth: 3
    functionLinenumber: 14049
    functionLinenumberEnd: 14084
    functionName: os_fstatvfs_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _pystatvfs_fromstructstatfs
    - fstatvfs
    - PyErr_CheckSignals
    - posix_error
    - _pystatvfs_fromstructstatvfs
    - 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:14117,1
    - Dst: statfs
      Src: /src/cpython/Modules/posixmodule.c:14120,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:14124,1
    - Dst: _pystatvfs_fromstructstatfs
      Src: /src/cpython/Modules/posixmodule.c:14127,1
    - Dst: fstatvfs
      Src: /src/cpython/Modules/posixmodule.c:14135,1
    - Dst: statvfs
      Src: /src/cpython/Modules/posixmodule.c:14139,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:14143,1
    - Dst: _pystatvfs_fromstructstatvfs
      Src: /src/cpython/Modules/posixmodule.c:14146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14148
      start: 14103
    functionDepth: 4
    functionLinenumber: 14103
    functionLinenumberEnd: 14148
    functionName: os_statvfs_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _pystatvfs_fromstructstatfs
    - fstatvfs
    - path_error
    - statvfs
    - statfs
    - _pystatvfs_fromstructstatvfs
    - 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:14124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14125
      start: 14121
    functionDepth: 4
    functionLinenumber: 14121
    functionLinenumberEnd: 14125
    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:14143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14144
      start: 14140
    functionDepth: 4
    functionLinenumber: 14140
    functionLinenumberEnd: 14144
    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:14171,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:14174,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:14177,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:14179,1
    - Dst: wcscpy_s
      Src: /src/cpython/Modules/posixmodule.c:14182,1
    - Dst: _dirnameW
      Src: /src/cpython/Modules/posixmodule.c:14184,1
    - Dst: GetDiskFreeSpaceExW
      Src: /src/cpython/Modules/posixmodule.c:14186,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:14190,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:14191,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:14196,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:14200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14201
      start: 14162
    functionDepth: 1
    functionLinenumber: 14162
    functionLinenumberEnd: 14201
    functionName: os__getdiskusage_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_SetFromWindowsErr
    - PyErr_NoMemory
    - wcscpy_s
    - GetDiskFreeSpaceExW
    - _dirnameW
    - Py_BuildValue
    - PyMem_Free
    - GetLastError
    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:14224,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/posixmodule.c:14225,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/posixmodule.c:14230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:14231,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:14233,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/posixmodule.c:14238,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/posixmodule.c:14242,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:14243,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/posixmodule.c:14246,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:14247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:14252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - module
    - arg
    - valuep
    - tablename
    argTypes:
    - PyObject*
    - PyObject*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14254
      start: 14221
    functionDepth: 1
    functionLinenumber: 14221
    functionLinenumberEnd: 14254
    functionName: conv_confname
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_GetItem
    - PyObject_GetAttrString
    - PyErr_Occurred
    - Py_DECREF
    - PyIndex_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:14367,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - module
    - fd
    - name
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14372
      start: 14360
    functionDepth: 2
    functionLinenumber: 14360
    functionLinenumberEnd: 14372
    functionName: os_fpathconf_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fpathconf
    - posix_error
    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:14399,1
    - Dst: pathconf
      Src: /src/cpython/Modules/posixmodule.c:14403,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14407,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:14409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - module
    - path
    - name
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14413
      start: 14390
    functionDepth: 4
    functionLinenumber: 14390
    functionLinenumberEnd: 14413
    functionName: os_pathconf_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fpathconf
    - path_error
    - pathconf
    - posix_error
    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:14589,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:14592,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:14602,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:14604,1
    - Dst: confstr
      Src: /src/cpython/Modules/posixmodule.c:14605,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:14606,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:14607,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:14608,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:14611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (len == len2)
      pos:
        line_end: 14605
        line_start: 14605
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 14613
      start: 14580
    functionDepth: 2
    functionLinenumber: 14580
    functionLinenumberEnd: 14613
    functionName: os_confstr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyUnicode_DecodeFSDefaultAndSize
    - posix_error
    - confstr
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_confstr_impl(PyObject *module, int name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/cpython/Modules/posixmodule.c:15135,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:15137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15139
      start: 15128
    functionDepth: 2
    functionLinenumber: 15128
    functionLinenumberEnd: 15139
    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:15147,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15152,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/posixmodule.c:15153,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:15154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15158,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/posixmodule.c:15160,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: 15161
      start: 15143
    functionDepth: 1
    functionLinenumber: 15143
    functionLinenumberEnd: 15161
    functionName: setup_confname_table
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_SetItemString
    - Py_XDECREF
    - PyModule_Add
    - Py_DECREF
    - PyDict_New
    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:15168,1
    - Dst: setup_confname_table
      Src: /src/cpython/Modules/posixmodule.c:15175,1
    - Dst: setup_confname_table
      Src: /src/cpython/Modules/posixmodule.c:15182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15189
      start: 15164
    functionDepth: 2
    functionLinenumber: 15164
    functionLinenumberEnd: 15189
    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:15205,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/posixmodule.c:15211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15214
      start: 15201
    functionDepth: 1
    functionLinenumber: 15201
    functionLinenumberEnd: 15214
    functionName: os_abort_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - abort
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_abort_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryW
      Src: /src/cpython/Modules/posixmodule.c:15233,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/posixmodule.c:15235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15244
      start: 15221
    functionDepth: 0
    functionLinenumber: 15221
    functionLinenumberEnd: 15244
    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:15291,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:15294,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15298,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15301,1
    - Dst: Py_ShellExecuteW
      Src: /src/cpython/Modules/posixmodule.c:15308,1
    - Dst: win32_error_object
      Src: /src/cpython/Modules/posixmodule.c:15313,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: 15317
      start: 15283
    functionDepth: 3
    functionLinenumber: 15283
    functionLinenumberEnd: 15317
    functionName: os_startfile_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - check_ShellExecute
    - win32_error_object
    - PyErr_Format
    - Py_ShellExecuteW
    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:15337,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:15338,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:15341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15342
      start: 15332
    functionDepth: 1
    functionLinenumber: 15332
    functionLinenumberEnd: 15342
    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:15360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15361
      start: 15356
    functionDepth: 1
    functionLinenumber: 15356
    functionLinenumberEnd: 15361
    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:15380,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:15381,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: 15383
      start: 15376
    functionDepth: 2
    functionLinenumber: 15376
    functionLinenumberEnd: 15383
    functionName: os_setresuid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setresuid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setresuid_impl(PyObject *module, uid_t ruid, uid_t euid, uid_t suid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setresgid
      Src: /src/cpython/Modules/posixmodule.c:15403,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:15404,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: 15406
      start: 15399
    functionDepth: 2
    functionLinenumber: 15399
    functionLinenumberEnd: 15406
    functionName: os_setresgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setresgid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setresgid_impl(PyObject *module, gid_t rgid, gid_t egid, gid_t sgid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getresuid
      Src: /src/cpython/Modules/posixmodule.c:15423,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:15424,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:15425,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:15425,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:15426,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/posixmodule.c:15427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15428
      start: 15418
    functionDepth: 2
    functionLinenumber: 15418
    functionLinenumberEnd: 15428
    functionName: os_getresuid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromUid
    - getresuid
    - Py_BuildValue
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getresuid_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getresgid
      Src: /src/cpython/Modules/posixmodule.c:15445,1
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:15446,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/posixmodule.c:15447,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:15447,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:15448,1
    - Dst: _PyLong_FromGid
      Src: /src/cpython/Modules/posixmodule.c:15449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15450
      start: 15440
    functionDepth: 2
    functionLinenumber: 15440
    functionLinenumberEnd: 15450
    functionName: os_getresgid_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromGid
    - getresgid
    - Py_BuildValue
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getresgid_impl(PyObject *module)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:15478,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15481,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15490,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/posixmodule.c:15493,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/posixmodule.c:15497,1
    - Dst: fgetxattr
      Src: /src/cpython/Modules/posixmodule.c:15501,1
    - Dst: getxattr
      Src: /src/cpython/Modules/posixmodule.c:15503,1
    - Dst: lgetxattr
      Src: /src/cpython/Modules/posixmodule.c:15505,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/posixmodule.c:15509,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15513,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/posixmodule.c:15517,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - module
    - path
    - attribute
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15519
      start: 15473
    functionDepth: 4
    functionLinenumber: 15473
    functionLinenumberEnd: 15519
    functionName: os_getxattr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lgetxattr
    - PySys_Audit
    - PyBytesWriter_Create
    - path_error
    - PyBytesWriter_Discard
    - getxattr
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_GetData
    - fd_and_follow_symlinks_invalid
    - fgetxattr
    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:15549,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15552,1
    - Dst: fsetxattr
      Src: /src/cpython/Modules/posixmodule.c:15559,1
    - Dst: setxattr
      Src: /src/cpython/Modules/posixmodule.c:15562,1
    - Dst: lsetxattr
      Src: /src/cpython/Modules/posixmodule.c:15565,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15570,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: 15575
      start: 15542
    functionDepth: 4
    functionLinenumber: 15542
    functionLinenumberEnd: 15575
    functionName: os_setxattr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fsetxattr
    - PySys_Audit
    - path_error
    - lsetxattr
    - fd_and_follow_symlinks_invalid
    - setxattr
    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:15603,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15606,1
    - Dst: fremovexattr
      Src: /src/cpython/Modules/posixmodule.c:15612,1
    - Dst: removexattr
      Src: /src/cpython/Modules/posixmodule.c:15614,1
    - Dst: lremovexattr
      Src: /src/cpython/Modules/posixmodule.c:15616,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15620,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: 15624
      start: 15596
    functionDepth: 4
    functionLinenumber: 15596
    functionLinenumberEnd: 15624
    functionName: os_removexattr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fremovexattr
    - PySys_Audit
    - path_error
    - fd_and_follow_symlinks_invalid
    - removexattr
    - lremovexattr
    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:15653,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:15656,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15670,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/posixmodule.c:15673,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:15675,1
    - Dst: flistxattr
      Src: /src/cpython/Modules/posixmodule.c:15681,1
    - Dst: listxattr
      Src: /src/cpython/Modules/posixmodule.c:15683,1
    - Dst: llistxattr
      Src: /src/cpython/Modules/posixmodule.c:15685,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:15690,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:15694,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:15698,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:15707,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:15710,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:15713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:15714,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:15716,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:15726,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 3
    argNames:
    - module
    - path
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15728
      start: 15644
    functionDepth: 4
    functionLinenumber: 15644
    functionLinenumberEnd: 15728
    functionName: os_listxattr_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - listxattr
    - PyErr_NoMemory
    - PySys_Audit
    - PyUnicode_DecodeFSDefaultAndSize
    - path_error
    - llistxattr
    - Py_SETREF
    - PyList_Append
    - PyList_New
    - PyMem_Free
    - PyMem_Malloc
    - Py_DECREF
    - fd_and_follow_symlinks_invalid
    - flistxattr
    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:15747,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/posixmodule.c:15751,1
    - Dst: _PyOS_URandom
      Src: /src/cpython/Modules/posixmodule.c:15756,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/posixmodule.c:15756,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/posixmodule.c:15758,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/posixmodule.c:15761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - size
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15762
      start: 15742
    functionDepth: 1
    functionLinenumber: 15742
    functionLinenumberEnd: 15762
    functionName: os_urandom_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - _PyOS_URandom
    - PyBytesWriter_Discard
    - PyErr_Format
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    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:15778,1
    - Dst: memfd_create
      Src: /src/cpython/Modules/posixmodule.c:15780,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15783,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - name
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15786
      start: 15773
    functionDepth: 1
    functionLinenumber: 15773
    functionLinenumberEnd: 15786
    functionName: os_memfd_create_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyLong_FromLong
    - memfd_create
    - PyBytes_AS_STRING
    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:15807,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15810,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - initval
    - flags
    argTypes:
    - PyObject*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15813
      start: 15799
    functionDepth: 1
    functionLinenumber: 15799
    functionLinenumberEnd: 15813
    functionName: os_eventfd_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyLong_FromLong
    - eventfd
    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:15830,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15833,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:15835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15836
      start: 15823
    functionDepth: 1
    functionLinenumber: 15823
    functionLinenumberEnd: 15836
    functionName: os_eventfd_read_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - eventfd_read
    - PyErr_SetFromErrno
    - PyLong_FromUnsignedLongLong
    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:15853,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - value
    argTypes:
    - PyObject*
    - int
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15859
      start: 15847
    functionDepth: 1
    functionLinenumber: 15847
    functionLinenumberEnd: 15859
    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:15920,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:15921,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Modules/posixmodule.c:15931,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/cpython/Modules/posixmodule.c:15935,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:15936,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:15943,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/posixmodule.c:15944,1
    - Dst: SET_TERMSIZE
      Src: /src/cpython/Modules/posixmodule.c:15960,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15960,1
    - Dst: SET_TERMSIZE
      Src: /src/cpython/Modules/posixmodule.c:15961,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15961,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15965
      start: 15902
    functionDepth: 2
    functionLinenumber: 15902
    functionLinenumberEnd: 15965
    functionName: os_get_terminal_size_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ioctl
    - PyErr_SetFromWindowsErr
    - PyStructSequence_New
    - SET_TERMSIZE
    - PyLong_FromLong
    - get_posix_state
    - GetConsoleScreenBufferInfo
    - PyErr_SetFromErrno
    - _Py_get_osfhandle
    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: 15959
      start: 15950
    functionDepth: 0
    functionLinenumber: 15950
    functionLinenumberEnd: 15959
    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:15980,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:15982,1
    - Dst: GetActiveProcessorCount
      Src: /src/cpython/Modules/posixmodule.c:15988,1
    - Dst: mpctl
      Src: /src/cpython/Modules/posixmodule.c:15994,1
    - Dst: sysconf
      Src: /src/cpython/Modules/posixmodule.c:15997,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Modules/posixmodule.c:16000,1
    - Dst: vxCpuEnabledGet
      Src: /src/cpython/Modules/posixmodule.c:16000,1
    - Dst: sysctl
      Src: /src/cpython/Modules/posixmodule.c:16010,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:16018,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16019
      start: 15976
    functionDepth: 1
    functionLinenumber: 15976
    functionLinenumberEnd: 16019
    functionName: os_cpu_count_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetActiveProcessorCount
    - PyLong_FromLong
    - sysctl
    - vxCpuEnabledGet
    - mpctl
    - sysconf
    - _Py_popcount32
    - _Py_GetConfig
    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:16037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16040
      start: 16031
    functionDepth: 1
    functionLinenumber: 16031
    functionLinenumberEnd: 16040
    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:16059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - fd
    - inheritable
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16064
      start: 16052
    functionDepth: 1
    functionLinenumber: 16052
    functionLinenumberEnd: 16064
    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:16086,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:16087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16092
      start: 16080
    functionDepth: 1
    functionLinenumber: 16080
    functionLinenumberEnd: 16092
    functionName: os_get_handle_inheritable_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetHandleInformation
    linkageType: ''
    returnType: int
    signature: int os_get_handle_inheritable_impl(PyObject *module, intptr_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetHandleInformation
      Src: /src/cpython/Modules/posixmodule.c:16110,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/posixmodule.c:16111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - handle
    - inheritable
    argTypes:
    - PyObject*
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16115
      start: 16104
    functionDepth: 1
    functionLinenumber: 16104
    functionLinenumberEnd: 16115
    functionName: os_set_handle_inheritable_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - SetHandleInformation
    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:16135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16138
      start: 16128
    functionDepth: 1
    functionLinenumber: 16128
    functionLinenumberEnd: 16138
    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:16159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - fd
    - blocking
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16164
      start: 16152
    functionDepth: 1
    functionLinenumber: 16152
    functionLinenumberEnd: 16164
    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: 16193
      start: 16192
    functionDepth: 0
    functionLinenumber: 16192
    functionLinenumberEnd: 16193
    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:16197,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16198,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:16199,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:16200,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:16201,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:16202,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/posixmodule.c:16203,1
    - Dst: free_func
      Src: /src/cpython/Modules/posixmodule.c:16204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16206
      start: 16194
    functionDepth: 1
    functionLinenumber: 16194
    functionLinenumberEnd: 16206
    functionName: DirEntry_dealloc
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_CAST
    - Py_XDECREF
    - Py_DECREF
    - free_func
    - PyType_GetSlot
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void DirEntry_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_test_mode
      Src: /src/cpython/Modules/posixmodule.c:16232,1
    - Dst: DirEntry_test_mode
      Src: /src/cpython/Modules/posixmodule.c:16235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - defining_class
    argTypes:
    - DirEntry*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16237
      start: 16221
    functionDepth: 1
    functionLinenumber: 16221
    functionLinenumberEnd: 16237
    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: 16254
      start: 16245
    functionDepth: 0
    functionLinenumber: 16245
    functionLinenumberEnd: 16254
    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:16264,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:16266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16267,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/posixmodule.c:16269,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/posixmodule.c:16271,1
    - Dst: fstatat
      Src: /src/cpython/Modules/posixmodule.c:16276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16283,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:16284,1
    - Dst: STAT
      Src: /src/cpython/Modules/posixmodule.c:16293,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:16296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - self
    - follow_symlinks
    argTypes:
    - PyObject*
    - DirEntry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16299
      start: 16256
    functionDepth: 1
    functionLinenumber: 16256
    functionLinenumberEnd: 16299
    functionName: DirEntry_fetch_stat
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fstatat
    - PyUnicode_FSDecoder
    - PyErr_SetString
    - LSTAT
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyUnicode_FSConverter
    - STAT
    - 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:16293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16294
      start: 16291
    functionDepth: 0
    functionLinenumber: 16291
    functionLinenumberEnd: 16294
    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:16321,1
    - Dst: _pystat_fromstructstat
      Src: /src/cpython/Modules/posixmodule.c:16323,1
    - Dst: DirEntry_fetch_stat
      Src: /src/cpython/Modules/posixmodule.c:16325,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/posixmodule.c:16328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - defining_class
    - self
    argTypes:
    - PyTypeObject*
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16329
      start: 16317
    functionDepth: 4
    functionLinenumber: 16317
    functionLinenumberEnd: 16329
    functionName: DirEntry_get_lstat
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _pystat_fromstructstat
    - DirEntry_fetch_stat
    - PyType_GetModule
    - Py_XNewRef
    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:16347,1
    - Dst: os_DirEntry_is_symlink_impl
      Src: /src/cpython/Modules/posixmodule.c:16351,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:16356,1
    - Dst: DirEntry_fetch_stat
      Src: /src/cpython/Modules/posixmodule.c:16357,1
    - Dst: DirEntry_get_lstat
      Src: /src/cpython/Modules/posixmodule.c:16360,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/posixmodule.c:16364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - defining_class
    - follow_symlinks
    argTypes:
    - DirEntry*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16365
      start: 16341
    functionDepth: 5
    functionLinenumber: 16341
    functionLinenumberEnd: 16365
    functionName: os_DirEntry_stat_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - DirEntry_fetch_stat
    - DirEntry_get_lstat
    - PyType_GetModule
    - os_DirEntry_is_symlink_impl
    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:16395,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:16397,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/posixmodule.c:16400,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:16405,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:16405,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/posixmodule.c:16406,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/posixmodule.c:16410,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:16411,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:16413,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/posixmodule.c:16414,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:16419,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:16423,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:16442,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:16443,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: 16418
        line_start: 16418
        source_file: /src/cpython/Modules/posixmodule.c
    - condition: (mode_bits == S_IFDIR || mode_bits == S_IFREG)
      pos:
        line_end: 16422
        line_start: 16422
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 16445
      start: 16368
    functionDepth: 6
    functionLinenumber: 16368
    functionLinenumberEnd: 16445
    functionName: DirEntry_test_mode
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - os_DirEntry_stat_impl
    - get_posix_state
    - PyObject_GetAttr
    - Py_CLEAR
    - PyErr_Clear
    - PyLong_AsLong
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - PyType_GetModule
    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:16462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - defining_class
    - follow_symlinks
    argTypes:
    - DirEntry*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16463
      start: 16457
    functionDepth: 7
    functionLinenumber: 16457
    functionLinenumberEnd: 16463
    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:16480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - defining_class
    - follow_symlinks
    argTypes:
    - DirEntry*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16481
      start: 16475
    functionDepth: 7
    functionLinenumber: 16475
    functionLinenumberEnd: 16481
    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:16499,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/posixmodule.c:16501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16502,1
    - Dst: LSTAT
      Src: /src/cpython/Modules/posixmodule.c:16503,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:16506,1
    - Dst: path_object_error
      Src: /src/cpython/Modules/posixmodule.c:16510,1
    - Dst: _pystat_l128_from_l64_l64
      Src: /src/cpython/Modules/posixmodule.c:16517,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:16521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16523
      start: 16489
    functionDepth: 3
    functionLinenumber: 16489
    functionLinenumberEnd: 16523
    functionName: os_DirEntry_inode_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _pystat_l128_from_l64_l64
    - PyUnicode_FSDecoder
    - PyMem_Free
    - path_object_error
    - Py_DECREF
    - PyLong_FromUnsignedLongLong
    - LSTAT
    - 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:16528,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/posixmodule.c:16529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16530
      start: 16525
    functionDepth: 1
    functionLinenumber: 16525
    functionLinenumberEnd: 16530
    functionName: DirEntry_repr
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      DirEntry_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:16542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16543
      start: 16538
    functionDepth: 0
    functionLinenumber: 16538
    functionLinenumberEnd: 16543
    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:16603,1
    - Dst: wcslen
      Src: /src/cpython/Modules/posixmodule.c:16607,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:16608,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:16610,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:16613,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/posixmodule.c:16618,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - path_wide
    - filename
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16621
      start: 16590
    functionDepth: 1
    functionLinenumber: 16590
    functionLinenumberEnd: 16621
    functionName: join_path_filenameW
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - wcscpy
    - PyErr_NoMemory
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      join_path_filenameW(const wchar_t *path_wide, const wchar_t *filename)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:16631,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/posixmodule.c:16632,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:16641,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:16644,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:16646,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:16646,1
    - Dst: join_path_filenameW
      Src: /src/cpython/Modules/posixmodule.c:16651,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/posixmodule.c:16655,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:16656,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/posixmodule.c:16660,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:16660,1
    - Dst: find_data_to_file_info
      Src: /src/cpython/Modules/posixmodule.c:16665,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/cpython/Modules/posixmodule.c:16666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:16675,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: 16677
      start: 16623
    functionDepth: 2
    functionLinenumber: 16623
    functionLinenumberEnd: 16677
    functionName: DirEntry_from_find_data
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - join_path_filenameW
    - PyUnicode_EncodeFSDefault
    - get_posix_state
    - PyBytes_Check
    - Py_SETREF
    - _Py_attribute_data_to_stat
    - PyMem_Free
    - Py_DECREF
    - find_data_to_file_info
    - PyObject_New
    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:16693,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:16697,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/posixmodule.c:16701,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/posixmodule.c:16703,1
    - Dst: strcpy
      Src: /src/cpython/Modules/posixmodule.c:16706,1
    - Dst: strcpy
      Src: /src/cpython/Modules/posixmodule.c:16709,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: 16711
      start: 16681
    functionDepth: 1
    functionLinenumber: 16681
    functionLinenumberEnd: 16711
    functionName: join_path_filename
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - strlen
    - strcpy
    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:16724,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/posixmodule.c:16725,1
    - Dst: join_path_filename
      Src: /src/cpython/Modules/posixmodule.c:16739,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:16744,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Modules/posixmodule.c:16745,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/posixmodule.c:16747,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/posixmodule.c:16750,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/posixmodule.c:16752,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:16754,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:16759,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/posixmodule.c:16772,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: 16774
      start: 16713
    functionDepth: 2
    functionLinenumber: 16713
    functionLinenumberEnd: 16774
    functionName: DirEntry_from_posix_info
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - join_path_filename
    - PyBytes_FromStringAndSize
    - PyUnicode_DecodeFSDefaultAndSize
    - PyBytes_Check
    - get_posix_state
    - Py_NewRef
    - PyMem_Free
    - Py_XDECREF
    - PyBytes_FromString
    - PyUnicode_DecodeFSDefault
    - PyObject_New
    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: 16795
      start: 16794
    functionDepth: 0
    functionLinenumber: 16794
    functionLinenumberEnd: 16795
    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: 16802
      start: 16798
    functionDepth: 0
    functionLinenumber: 16798
    functionLinenumberEnd: 16802
    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: 16816
      start: 16804
    functionDepth: 0
    functionLinenumber: 16804
    functionLinenumberEnd: 16816
    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:16821,1
    - Dst: FindNextFileW
      Src: /src/cpython/Modules/posixmodule.c:16833,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:16837,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:16838,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/posixmodule.c:16845,1
    - Dst: wcscmp
      Src: /src/cpython/Modules/posixmodule.c:16846,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:16848,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16848,1
    - Dst: DirEntry_from_find_data
      Src: /src/cpython/Modules/posixmodule.c:16849,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16859,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16861
      start: 16818
    functionDepth: 4
    functionLinenumber: 16818
    functionLinenumberEnd: 16861
    functionName: ScandirIterator_iternext
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - FindNextFileW
    - ScandirIterator_closedir
    - DirEntry_from_find_data
    - path_error
    - GetLastError
    - ScandirIterator_CAST
    - PyType_GetModule
    - wcscmp
    - 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: 16869
      start: 16865
    functionDepth: 0
    functionLinenumber: 16865
    functionLinenumberEnd: 16869
    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:16883,1
    - Dst: closedir
      Src: /src/cpython/Modules/posixmodule.c:16886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16889
      start: 16871
    functionDepth: 0
    functionLinenumber: 16871
    functionLinenumberEnd: 16889
    functionName: ScandirIterator_closedir
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - closedir
    - rewinddir
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_closedir(ScandirIterator *iterator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_CAST
      Src: /src/cpython/Modules/posixmodule.c:16894,1
    - Dst: readdir
      Src: /src/cpython/Modules/posixmodule.c:16907,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:16913,1
    - Dst: NAMLEN
      Src: /src/cpython/Modules/posixmodule.c:16918,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/posixmodule.c:16922,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16922,1
    - Dst: DirEntry_from_posix_info
      Src: /src/cpython/Modules/posixmodule.c:16923,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16939,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16941
      start: 16891
    functionDepth: 4
    functionLinenumber: 16891
    functionLinenumberEnd: 16941
    functionName: ScandirIterator_iternext
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_closedir
    - path_error
    - DirEntry_from_posix_info
    - readdir
    - ScandirIterator_CAST
    - PyType_GetModule
    - NAMLEN
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_iternext(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_CAST
      Src: /src/cpython/Modules/posixmodule.c:16948,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16951
      start: 16945
    functionDepth: 1
    functionLinenumber: 16945
    functionLinenumberEnd: 16951
    functionName: ScandirIterator_close
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_CAST
    - ScandirIterator_closedir
    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:16956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16957
      start: 16953
    functionDepth: 0
    functionLinenumber: 16953
    functionLinenumberEnd: 16957
    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:16962,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16965
      start: 16959
    functionDepth: 1
    functionLinenumber: 16959
    functionLinenumberEnd: 16965
    functionName: ScandirIterator_exit
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_CAST
    - ScandirIterator_closedir
    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:16970,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/posixmodule.c:16972,1
    - Dst: ScandirIterator_is_closed
      Src: /src/cpython/Modules/posixmodule.c:16974,1
    - Dst: ScandirIterator_closedir
      Src: /src/cpython/Modules/posixmodule.c:16975,1
    - Dst: PyErr_ResourceWarning
      Src: /src/cpython/Modules/posixmodule.c:16977,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/posixmodule.c:16981,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/posixmodule.c:16982,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/posixmodule.c:16988,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/posixmodule.c:16991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16992
      start: 16967
    functionDepth: 2
    functionLinenumber: 16967
    functionLinenumberEnd: 16992
    functionName: ScandirIterator_finalize
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_cleanup
    - ScandirIterator_is_closed
    - ScandirIterator_closedir
    - PyErr_ResourceWarning
    - PyErr_ExceptionMatches
    - PyErr_SetRaisedException
    - ScandirIterator_CAST
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_finalize(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:16997,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/posixmodule.c:16998,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/posixmodule.c:17001,1
    - Dst: free_func
      Src: /src/cpython/Modules/posixmodule.c:17002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:17003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17004
      start: 16994
    functionDepth: 1
    functionLinenumber: 16994
    functionLinenumberEnd: 17004
    functionName: ScandirIterator_dealloc
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - Py_DECREF
    - free_func
    - PyType_GetSlot
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_dealloc(PyObject *op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/posixmodule.c:17064,1
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:17069,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/posixmodule.c:17070,1
    - Dst: memcpy
      Src: /src/cpython/Modules/posixmodule.c:17081,1
    - Dst: memset
      Src: /src/cpython/Modules/posixmodule.c:17082,1
    - Dst: join_path_filenameW
      Src: /src/cpython/Modules/posixmodule.c:17087,1
    - Dst: FindFirstFileW
      Src: /src/cpython/Modules/posixmodule.c:17092,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:17096,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:17097,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/posixmodule.c:17100,1
    - Dst: _Py_dup
      Src: /src/cpython/Modules/posixmodule.c:17107,1
    - Dst: fdopendir
      Src: /src/cpython/Modules/posixmodule.c:17112,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:17115,1
    - Dst: opendir
      Src: /src/cpython/Modules/posixmodule.c:17129,1
    - Dst: path_error
      Src: /src/cpython/Modules/posixmodule.c:17134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:17149,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17151
      start: 17050
    functionDepth: 4
    functionLinenumber: 17050
    functionLinenumberEnd: 17151
    functionName: os_scandir_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - join_path_filenameW
    - opendir
    - fdopendir
    - PySys_Audit
    - get_posix_state
    - _Py_dup
    - PyErr_SetString
    - path_error
    - FindFirstFileW
    - memset
    - memcpy
    - PyMem_Free
    - Py_DECREF
    - PyObject_New
    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:17168,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:17168,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/posixmodule.c:17169,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Modules/posixmodule.c:17172,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/posixmodule.c:17172,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:17174,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:17177,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:17177,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/posixmodule.c:17180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:17181,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/posixmodule.c:17186,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/posixmodule.c:17186,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:17187,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:17189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:17189,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/posixmodule.c:17190,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/posixmodule.c:17190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:17191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17196
      start: 17160
    functionDepth: 1
    functionLinenumber: 17160
    functionLinenumberEnd: 17196
    functionName: PyOS_FSPath
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_LookupSpecial
    - PyBytes_Check
    - PyUnicode_Check
    - PyErr_Format
    - _PyType_Name
    - _PyObject_CallNoArgs
    - Py_NewRef
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyOS_FSPath(PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_FSPath
      Src: /src/cpython/Modules/posixmodule.c:17214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17215
      start: 17210
    functionDepth: 2
    functionLinenumber: 17210
    functionLinenumberEnd: 17215
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/cpython/Modules/posixmodule.c:17233,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/posixmodule.c:17236,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/posixmodule.c:17240,1
    - Dst: syscall
      Src: /src/cpython/Modules/posixmodule.c:17244,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/posixmodule.c:17246,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/posixmodule.c:17257,1
    - Dst: _Py_MSAN_UNPOISON
      Src: /src/cpython/Modules/posixmodule.c:17261,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/posixmodule.c:17263,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/posixmodule.c:17266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - module
    - size
    - flags
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17268
      start: 17227
    functionDepth: 2
    functionLinenumber: 17227
    functionLinenumberEnd: 17268
    functionName: os_getrandom_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - PyBytesWriter_Create
    - _Py_MSAN_UNPOISON
    - posix_error
    - PyBytesWriter_Discard
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_GetData
    - PyErr_SetFromErrno
    - syscall
    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:17299,1
    - Dst: AddDllDirectory
      Src: /src/cpython/Modules/posixmodule.c:17304,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:17305,1
    - Dst: win32_error_object_err
      Src: /src/cpython/Modules/posixmodule.c:17310,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/posixmodule.c:17314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17315
      start: 17292
    functionDepth: 2
    functionLinenumber: 17292
    functionLinenumberEnd: 17315
    functionName: os__add_dll_directory_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_error_object_err
    - PySys_Audit
    - PyCapsule_New
    - GetLastError
    - AddDllDirectory
    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:17310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17312
      start: 17307
    functionDepth: 2
    functionLinenumber: 17307
    functionLinenumberEnd: 17312
    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:17336,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:17337,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/posixmodule.c:17342,1
    - Dst: RemoveDllDirectory
      Src: /src/cpython/Modules/posixmodule.c:17346,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/posixmodule.c:17347,1
    - Dst: win32_error_object_err
      Src: /src/cpython/Modules/posixmodule.c:17352,1
    - Dst: PyCapsule_SetName
      Src: /src/cpython/Modules/posixmodule.c:17356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - module
    - cookie
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17361
      start: 17329
    functionDepth: 2
    functionLinenumber: 17329
    functionLinenumberEnd: 17361
    functionName: os__remove_dll_directory_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_error_object_err
    - PyCapsule_IsValid
    - PyErr_SetString
    - PyCapsule_GetPointer
    - PyCapsule_SetName
    - GetLastError
    - RemoveDllDirectory
    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:17352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17354
      start: 17349
    functionDepth: 2
    functionLinenumber: 17349
    functionLinenumberEnd: 17354
    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:17398,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:17399,1
    - Dst: WAIT_STATUS_INT
      Src: /src/cpython/Modules/posixmodule.c:17404,1
    - Dst: WIFEXITED
      Src: /src/cpython/Modules/posixmodule.c:17406,1
    - Dst: WEXITSTATUS
      Src: /src/cpython/Modules/posixmodule.c:17407,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:17411,1
    - Dst: WIFSIGNALED
      Src: /src/cpython/Modules/posixmodule.c:17415,1
    - Dst: WTERMSIG
      Src: /src/cpython/Modules/posixmodule.c:17416,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:17420,1
    - Dst: WIFSTOPPED
      Src: /src/cpython/Modules/posixmodule.c:17424,1
    - Dst: WSTOPSIG
      Src: /src/cpython/Modules/posixmodule.c:17427,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:17428,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:17434,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:17437,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/posixmodule.c:17441,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/posixmodule.c:17442,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/posixmodule.c:17450,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/posixmodule.c:17453,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - module
    - status_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17455
      start: 17393
    functionDepth: 1
    functionLinenumber: 17393
    functionLinenumberEnd: 17455
    functionName: os_waitstatus_to_exitcode_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WIFSTOPPED
    - WIFSIGNALED
    - WAIT_STATUS_INT
    - WIFEXITED
    - PyLong_FromLong
    - PyLong_AsInt
    - WEXITSTATUS
    - PyLong_AsUnsignedLongLong
    - PyErr_Occurred
    - PyErr_Format
    - WSTOPSIG
    - WTERMSIG
    - PyLong_FromUnsignedLong
    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:17471,1
    - Dst: GetConsoleMode
      Src: /src/cpython/Modules/posixmodule.c:17472,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/posixmodule.c:17475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17479
      start: 17465
    functionDepth: 1
    functionLinenumber: 17465
    functionLinenumberEnd: 17479
    functionName: os__supports_virtual_terminal_impl
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetConsoleMode
    - PyBool_FromLong
    - 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:17495,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:17498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17499
      start: 17488
    functionDepth: 0
    functionLinenumber: 17488
    functionLinenumberEnd: 17499
    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:17511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17512
      start: 17507
    functionDepth: 1
    functionLinenumber: 17507
    functionLinenumberEnd: 17512
    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:17524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17525
      start: 17520
    functionDepth: 2
    functionLinenumber: 17520
    functionLinenumberEnd: 17525
    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:17539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17541
      start: 17535
    functionDepth: 0
    functionLinenumber: 17535
    functionLinenumberEnd: 17541
    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:17558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17560
      start: 17554
    functionDepth: 0
    functionLinenumber: 17554
    functionLinenumberEnd: 17560
    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: 232
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17791,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17794,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17797,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: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:17851,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17854,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17857,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17860,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17863,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17866,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17870,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17873,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17877,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17880,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17883,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17886,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17889,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17892,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17895,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17898,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17901,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17904,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17907,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17910,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17913,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17916,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17919,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17922,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17925,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17929,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17932,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17938,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:17943,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17947,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17951,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17955,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17962,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17966,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17970,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17974,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17977,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17981,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17985,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17990,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17993,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17996,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:17999,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18002,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18005,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18008,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18011,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18014,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18017,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18020,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18023,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18026,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18029,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18032,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18035,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18038,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18043,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18046,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18051,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18054,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18057,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18060,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18063,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18066,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18069,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18072,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18075,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18080,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18084,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18087,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18090,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18094,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18097,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18100,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18103,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18108,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18111,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18114,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18117,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18120,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18123,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18128,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18129,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18130,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18132,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18135,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18139,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18142,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18145,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18148,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18151,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18154,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18157,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18160,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18163,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18168,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18171,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18174,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18177,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18181,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18184,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18187,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18190,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18193,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18196,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18199,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18204,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18205,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18206,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18211,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18212,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18213,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18215,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18220,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18221,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18222,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18225,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18226,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18231,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18234,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18237,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18240,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18243,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18246,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18249,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18252,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18255,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18258,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18261,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18264,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18267,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18273,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18276,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18279,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18282,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18285,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18288,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18291,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18294,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18297,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18300,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18303,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18306,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18309,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18312,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18319,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18320,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18321,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18325,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18328,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18331,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18334,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18337,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18340,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18343,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18346,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18350,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18351,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18354,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18355,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18357,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18360,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18363,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18366,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18369,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18372,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18375,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18378,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18381,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18384,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18387,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18390,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18393,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18396,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18399,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18404,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18406,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18409,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/posixmodule.c:18414,1
    - Dst: _PyLong_FromDev
      Src: /src/cpython/Modules/posixmodule.c:18414,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18418,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18422,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18423,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18424,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18425,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18426,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18427,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18428,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18429,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18430,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18431,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18432,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18433,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18434,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18436,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18439,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18442,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18445,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18448,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18451,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18454,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18455,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/posixmodule.c:18456,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18461,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18462,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18463,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18464,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18468,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18469,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18470,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18471,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/posixmodule.c:18472,1
    CyclomaticComplexity: 236
    EdgeCount: 236
    ICount: 464
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18476
      start: 17787
    functionDepth: 2
    functionLinenumber: 17787
    functionLinenumberEnd: 18476
    functionName: all_ins
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntMacro
    - PyModule_AddIntConstant
    - _PyLong_FromDev
    - PyModule_Add
    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: 18489
      start: 18480
    functionDepth: 0
    functionLinenumber: 18480
    functionLinenumberEnd: 18489
    functionName: PROBE
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROBE(name, test)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: get_posix_state
      Src: /src/cpython/Modules/posixmodule.c:18712,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/posixmodule.c:18716,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/posixmodule.c:18722,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/posixmodule.c:18725,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/posixmodule.c:18733,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/posixmodule.c:18737,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/posixmodule.c:18742,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18743,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/posixmodule.c:18750,1
    - Dst: convertenviron
      Src: /src/cpython/Modules/posixmodule.c:18750,1
    - Dst: all_ins
      Src: /src/cpython/Modules/posixmodule.c:18754,1
    - Dst: setup_confname_tables
      Src: /src/cpython/Modules/posixmodule.c:18757,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18760,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18765,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18766,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18774,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18775,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18781,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18782,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18787,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18788,1
    - Dst: _PyType_AddMethod
      Src: /src/cpython/Modules/posixmodule.c:18792,1
    - Dst: PyType_Modified
      Src: /src/cpython/Modules/posixmodule.c:18797,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18801,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18802,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/posixmodule.c:18807,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/posixmodule.c:18813,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18814,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18818,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18819,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/posixmodule.c:18823,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/posixmodule.c:18824,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/posixmodule.c:18828,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/posixmodule.c:18831,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/posixmodule.c:18835,1
    - Dst: fd_specified
      Src: /src/cpython/Modules/posixmodule.c:18842,1
    - Dst: follow_symlinks_specified
      Src: /src/cpython/Modules/posixmodule.c:18843,1
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/cpython/Modules/posixmodule.c:18844,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/posixmodule.c:18845,1
    - Dst: dir_fd_unavailable
      Src: /src/cpython/Modules/posixmodule.c:18846,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/posixmodule.c:18853,1
    - Dst: struct have_function*::probe
      Src: /src/cpython/Modules/posixmodule.c:18859,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/posixmodule.c:18860,1
    - Dst: strlen
      Src: /src/cpython/Modules/posixmodule.c:18860,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/posixmodule.c:18863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/posixmodule.c:18865,1
    - Dst: _Py_GetTicksPerSecond
      Src: /src/cpython/Modules/posixmodule.c:18869,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/posixmodule.c:18870,1
    - Dst: assert
      Src: /src/cpython/Modules/posixmodule.c:18874,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/posixmodule.c:18877,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 115
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state->ticks_per_second >= 1)
      pos:
        line_end: 18873
        line_start: 18873
        source_file: /src/cpython/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 18878
      start: 18709
    functionDepth: 4
    functionLinenumber: 18709
    functionLinenumberEnd: 18878
    functionName: posixmodule_exec
    functionSourceFile: /src/cpython/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - struct have_function*::probe
    - PyDict_PopString
    - PyModule_Add
    - assert
    - PyModule_AddObjectRef
    - dir_fd_and_follow_symlinks_invalid
    - follow_symlinks_specified
    - PyModule_GetDict
    - PyStructSequence_NewType
    - PyType_FromModuleAndSpec
    - PyType_Modified
    - fd_specified
    - PyList_New
    - strlen
    - PyList_Append
    - dir_fd_unavailable
    - _Py_GetTicksPerSecond
    - dir_fd_converter
    - get_posix_state
    - PyErr_SetString
    - Py_DECREF
    - convertenviron
    - PyUnicode_InternFromString
    - all_ins
    - _PyType_AddMethod
    - PyUnicode_DecodeASCII
    - setup_confname_tables
    linkageType: ''
    returnType: int
    signature: int posixmodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/posixmodule.c:18904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18905
      start: 18901
    functionDepth: 1
    functionLinenumber: 18901
    functionLinenumberEnd: 18905
    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_Clear
    - PyErr_SetRaisedException
    - PyErr_GetRaisedException
    - _PyXIData_Release
    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:
    - Py_DECREF
    - PyImport_GetModule
    - 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:
    - PyObject_HasAttrStringWithError
    - PyErr_NewException
    - assert
    - Py_DECREF
    - PyModule_AddType
    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:
    - PyThread_acquire_lock_timed_with_retries
    - PyErr_SetString
    - PyThread_release_lock
    - PyErr_Occurred
    - 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:
    - Py_DECREF
    - PyImport_ImportModule
    - PyErr_Clear
    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_module_state
    - PyImport_ImportModule
    - _get_current_module
    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:
    - Py_CLEAR
    - clear_xid_types
    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:
    - get_module_state
    - ADD
    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: (state != NULL)
      pos:
        line_end: 402
        line_start: 402
        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: (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
    - assert
    - PyErr_SetString
    - PyErr_Format
    - PyErr_Occurred
    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: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:515,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:519,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: 514
        line_start: 514
        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:
    - PyThread_release_lock
    - assert
    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
    - _channelitem_ID
    - assert
    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:
    - _waiting_release
    - _release_xid_data
    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:
    - GLOBAL_FREE
    - _channelitem_clear
    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:
    - Py_FatalError
    - _channelitem_clear_data
    - _PyXIData_INTERPID
    - assert
    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:
    - _waiting_acquire
    - _channelitem_new
    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: (!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: (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: (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_clear_interpreter
    - _channelitem_free
    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_add
    - _channelends_release_end
    - _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:
    - check_unbound
    - GLOBAL_MALLOC
    - _channelends_new
    - GLOBAL_FREE
    - assert
    - _channelqueue_new
    - _channelqueue_free
    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:
    - _channelends_free
    - PyThread_acquire_lock
    - _channel_clear_closing
    - PyThread_release_lock
    - GLOBAL_FREE
    - PyThread_free_lock
    - _channelqueue_free
    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:
    - PyThread_release_lock
    - _channelends_associate
    - _channelqueue_put
    - PyThread_acquire_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:
    - PyThread_acquire_lock
    - PyThread_release_lock
    - _channel_finish_closing
    - PyErr_Occurred
    - assert
    - _channelqueue_get
    - _channelends_associate
    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:
    - _channelqueue_remove
    - PyThread_acquire_lock
    - PyThread_release_lock
    - _channel_finish_closing
    - _waiting_release
    - _release_xid_data
    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:
    - PyThread_release_lock
    - _channelends_is_open
    - PyThread_acquire_lock
    - _channelends_release_interpreter
    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:
    - PyThread_release_lock
    - PyThread_acquire_lock
    - _channelends_release_all
    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:
    - _channelends_is_open
    - PyThread_acquire_lock
    - _channelqueue_clear_interpreter
    - _channelends_clear_interpreter
    - PyThread_release_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:
    - GLOBAL_FREE
    - _channel_clear_closing
    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_release_lock
    - PyThread_acquire_lock
    - assert
    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_release_lock
    - _channelref_find
    - PyThread_acquire_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:
    - PyThread_release_lock
    - _channelref_new
    - _channels_next_id
    - PyThread_acquire_lock
    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_release_all
    - PyThread_acquire_lock
    - _channelref_find
    - PyThread_release_lock
    - PyErr_Clear
    - _channel_free
    - _channel_set_closing
    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:
    - PyThread_release_lock
    - _channelref_find
    - _channels_remove_ref
    - PyThread_acquire_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_release_lock
    - _channelref_find
    - PyThread_acquire_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:
    - PyThread_acquire_lock
    - _channelref_find
    - _channels_remove_ref
    - PyThread_release_lock
    - _channel_free
    linkageType: ''
    returnType: void
    signature: void _channels_release_cid_object(_channels *channels, int64_t cid)
  - BBCount: 3
    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:1660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - channels
    - count
    argTypes:
    - _channels*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1662
    functionName: _channels_list_all
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_lock
    - PyMem_NEW
    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:1667,1
    - Dst: _channel_clear_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1672,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - channels
    - interpid
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1664
    functionDepth: 7
    functionLinenumber: 1664
    functionLinenumberEnd: 1677
    functionName: _channels_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channel_clear_interpreter
    - PyThread_release_lock
    - PyThread_acquire_lock
    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:1694,1
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1699,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ref
    - mutex
    argTypes:
    - _channelref*
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1709
    functionName: _channel_set_closing
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 1
    functionsReached:
    - GLOBAL_MALLOC
    - PyThread_release_lock
    - PyThread_acquire_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:1713,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1715,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - chan
    argTypes:
    - _channel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1719
    functionName: _channel_clear_closing
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 2
    functionsReached:
    - PyThread_release_lock
    - GLOBAL_FREE
    - PyThread_acquire_lock
    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:1728,1
    - Dst: _channel_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - chan
    argTypes:
    - _channel_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1721
    functionDepth: 9
    functionLinenumber: 1721
    functionLinenumberEnd: 1732
    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:1741,1
    - Dst: _channel_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1745,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1747,1
    - Dst: _channels_add
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1750,1
    - Dst: _channel_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - channels
    - defaults
    argTypes:
    - _channels*
    - struct _channeldefaults
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1738
    functionDepth: 9
    functionLinenumber: 1738
    functionLinenumberEnd: 1755
    functionName: channel_create
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channel_new
    - _channel_free
    - PyThread_free_lock
    - PyThread_allocate_lock
    - _channels_add
    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:1762,1
    - Dst: _channel_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - channels
    - cid
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1758
    functionDepth: 9
    functionLinenumber: 1758
    functionLinenumberEnd: 1770
    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:1779,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1781,1
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1786,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1790,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1794,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1799,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1801,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1804,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1805,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1806,1
    - Dst: _channel_add
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1811,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1812,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1815,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1816,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: 1789
        line_start: 1789
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1821
      start: 1775
    functionDepth: 5
    functionLinenumber: 1775
    functionLinenumberEnd: 1821
    functionName: channel_send
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channel_add
    - _PyObject_GetXIData
    - _channels_lookup
    - PyThread_release_lock
    - GLOBAL_FREE
    - _PyThreadState_GET
    - _PyXIData_New
    - assert
    - PyInterpreterState_GetID
    - _release_xid_data
    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:1830,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1833,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1836,1
    - Dst: _waiting_get_itemid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1839,1
    - Dst: _channel_remove
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1840,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1842,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: 1835
        line_start: 1835
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (waiting->status == WAITING_RELEASED)
      pos:
        line_end: 1832
        line_start: 1832
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1843
      start: 1824
    functionDepth: 8
    functionLinenumber: 1824
    functionLinenumberEnd: 1843
    functionName: channel_clear_sent
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _waiting_get_itemid
    - _channels_lookup
    - PyThread_release_lock
    - _channel_remove
    - assert
    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:1854,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1855,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1855,1
    - Dst: channel_send
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1860,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1862,1
    - Dst: wait_for_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1867,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1868,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1868,1
    - Dst: _waiting_finish_releasing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1869,1
    - Dst: channel_clear_sent
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1872,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1873,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1879,1
    - Dst: _waiting_finish_releasing
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1882,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1883,1
    - Dst: _waiting_clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1894,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: 1861
        line_start: 1861
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1854
        line_start: 1854
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1867
        line_start: 1867
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (waiting.status == WAITING_RELEASED)
      pos:
        line_end: 1872
        line_start: 1872
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (waiting.status == WAITING_RELEASED)
      pos:
        line_end: 1882
        line_start: 1882
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1896
      start: 1846
    functionDepth: 9
    functionLinenumber: 1846
    functionLinenumberEnd: 1896
    functionName: channel_send_wait
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - channel_clear_sent
    - channel_send
    - _waiting_init
    - PyErr_Clear
    - wait_for_lock
    - _waiting_clear
    - PyErr_Occurred
    - assert
    - _waiting_finish_releasing
    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:1907,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1910,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1915,1
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1920,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1924,1
    - Dst: _channel_next
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1930,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1931,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1937,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1937,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1943,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1945,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1945,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1947,1
    - Dst: _waiting_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1949,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1954,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1957,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1958,1
    - Dst: _waiting_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1960,1
    - Dst: _waiting_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1967,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: 1923
        line_start: 1923
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1956
        line_start: 1956
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1936
        line_start: 1936
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1944
        line_start: 1944
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 1972
      start: 1901
    functionDepth: 8
    functionLinenumber: 1901
    functionLinenumberEnd: 1972
    functionName: channel_recv
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channel_next
    - Py_DECREF
    - _channels_lookup
    - PyThread_release_lock
    - _get_current_interp
    - PyErr_Occurred
    - assert
    - _waiting_release
    - _PyXIData_NewObject
    - PyInterpreterState_GetID
    - _release_xid_data
    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:1980,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1984,1
    - Dst: _channels_lookup
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1989,1
    - Dst: _channel_release_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1996,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:1997,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: 1999
      start: 1977
    functionDepth: 5
    functionLinenumber: 1977
    functionLinenumberEnd: 1999
    functionName: channel_release
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_lookup
    - PyThread_release_lock
    - _get_current_interp
    - _channel_release_interpreter
    - PyInterpreterState_GetID
    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:2007,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: 2008
      start: 2004
    functionDepth: 10
    functionLinenumber: 2004
    functionLinenumberEnd: 2008
    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:2017,1
    - Dst: _channelend_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2025,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: 2029
      start: 2012
    functionDepth: 2
    functionLinenumber: 2012
    functionLinenumberEnd: 2029
    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:2036,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - channels
    - cid
    - defaults
    argTypes:
    - _channels*
    - int64_t
    - struct _channeldefaults*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2031
    functionDepth: 2
    functionLinenumber: 2031
    functionLinenumberEnd: 2043
    functionName: channel_get_defaults
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - _channels_lookup
    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:2050,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2054,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2056,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: 2053
        line_start: 2053
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2060
      start: 2045
    functionDepth: 2
    functionLinenumber: 2045
    functionLinenumberEnd: 2060
    functionName: _channel_get_count
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - _channels_lookup
    - assert
    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:2095,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2099,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2102,1
    - Dst: _channelref_find
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2105,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2118,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2123,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2134,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2135,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2198,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: 2117
        line_start: 2117
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (chan->queue->count > 0)
      pos:
        line_end: 2122
        line_start: 2122
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (info->status.cur.send == 0)
      pos:
        line_end: 2133
        line_start: 2133
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (info->status.cur.recv == 0)
      pos:
        line_end: 2134
        line_start: 2134
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2200
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2200
    functionName: _channel_get_info
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _channelref_find
    - PyThread_release_lock
    - _get_current_interp
    - assert
    - PyInterpreterState_GetID
    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:2246,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2251,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2252,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2270,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2271,1
    - Dst: SET_BOOL
      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_COUNT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2280,1
    - Dst: SET_COUNT
      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: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2284,1
    - Dst: SET_BOOL
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2285,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2288,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - mod
    - info
    argTypes:
    - PyObject*
    - struct channel_info*
    assertStmts:
    - condition: (state->ChannelInfoType != NULL)
      pos:
        line_end: 2250
        line_start: 2250
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2287
        line_start: 2287
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2290
      start: 2243
    functionDepth: 1
    functionLinenumber: 2243
    functionLinenumberEnd: 2290
    functionName: new_channel_info
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyStructSequence_New
    - SET_COUNT
    - PyErr_Occurred
    - assert
    - SET_BOOL
    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: 2261
      start: 2258
    functionDepth: 0
    functionLinenumber: 2258
    functionLinenumberEnd: 2261
    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: 2270
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2270
    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: 2304
      start: 2303
    functionDepth: 0
    functionLinenumber: 2303
    functionLinenumberEnd: 2304
    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:2317,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2318,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2319,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2323,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2324,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2325,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2329,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2335,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 2317
        line_start: 2317
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2343
      start: 2311
    functionDepth: 1
    functionLinenumber: 2311
    functionLinenumberEnd: 2343
    functionName: channel_id_converter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - get_module_state
    - PyLong_AsLongLong
    - PyErr_Occurred
    - assert
    - PyErr_Format
    - PyIndex_Check
    - Py_TYPE
    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:2351,1
    - Dst: _channels_add_id_object
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2360,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2363,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2366,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: 2362
        line_start: 2362
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2373
      start: 2345
    functionDepth: 2
    functionLinenumber: 2345
    functionLinenumberEnd: 2373
    functionName: newchannelid
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_add_id_object
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyObject_New
    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:2391,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2402,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2411,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2416,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2421,1
    - Dst: _global_channels
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2421,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2424,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2425,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2428,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - mod
    - cls
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (recv == 1)
      pos:
        line_end: 2410
        line_start: 2410
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (send == 0 || send == -1)
      pos:
        line_end: 2415
        line_start: 2415
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj == NULL)
      pos:
        line_end: 2424
        line_start: 2424
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj != NULL)
      pos:
        line_end: 2427
        line_start: 2427
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2430
      start: 2377
    functionDepth: 3
    functionLinenumber: 2377
    functionLinenumberEnd: 2430
    functionName: _channelid_new
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - newchannelid
    - PyArg_ParseTupleAndKeywords
    - handle_channel_error
    - PyErr_SetString
    - assert
    - _global_channels
    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:2435,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2439,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2447,1
    - Dst: _channels_release_cid_object
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2432
    functionDepth: 10
    functionLinenumber: 2432
    functionLinenumberEnd: 2450
    functionName: channelid_dealloc
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _channels_release_cid_object
    - channelid_CAST
    - PyTypeObject*::tp_free
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void channelid_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2455,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2456,1
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2458,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2452
    functionDepth: 1
    functionLinenumber: 2452
    functionLinenumberEnd: 2470
    functionName: channelid_repr
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - PyUnicode_FromFormat
    - Py_TYPE
    - channelid_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2475,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2472
    functionDepth: 1
    functionLinenumber: 2472
    functionLinenumberEnd: 2477
    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:2482,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2479
    functionDepth: 1
    functionLinenumber: 2479
    functionLinenumberEnd: 2484
    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:2489,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2490,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2486
    functionDepth: 1
    functionLinenumber: 2486
    functionLinenumberEnd: 2497
    functionName: channelid_hash
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromLongLong
    - PyObject_Hash
    - channelid_CAST
    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:2507,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2507,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2511,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2516,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2517,1
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2521,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2523,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2527,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2530,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2531,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2536,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2537,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2542,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2546,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2551,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2558,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2560
    functionName: channelid_richcompare
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - get_module_from_type
    - get_module_state
    - PyLong_FromLongLong
    - PyNumber_Check
    - channelid_CAST
    - PyLong_Check
    - PyObject_RichCompare
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - Py_DECREF
    - Py_NewRef
    - 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:2567,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cidobj
    - end
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2564
    functionDepth: 1
    functionLinenumber: 2564
    functionLinenumberEnd: 2577
    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:2588,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2592,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2596,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2597,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2603,1
    - Dst: _global_channels
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2604,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2607,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2608,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2611,1
    - Dst: _channelobj_from_cidobj
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2620,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2629,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 2595
        line_start: 2595
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj == NULL)
      pos:
        line_end: 2606
        line_start: 2606
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj != NULL)
      pos:
        line_end: 2610
        line_start: 2610
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2631
      start: 2585
    functionDepth: 3
    functionLinenumber: 2585
    functionLinenumberEnd: 2631
    functionName: _channelid_from_xid
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - newchannelid
    - get_module_state
    - PyImport_ImportModule
    - handle_channel_error
    - _PyXIData_DATA
    - _channelobj_from_cidobj
    - PyErr_Clear
    - assert
    - _global_channels
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _channelid_from_xid(_PyXIData_t *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyXIData_InitWithSize
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2636,1
    - Dst: _PyXIData_DATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2643,1
    - Dst: channelid_CAST
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tstate
    - obj
    - data
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2633
    functionDepth: 1
    functionLinenumber: 2633
    functionLinenumberEnd: 2649
    functionName: _channelid_shared
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _PyXIData_InitWithSize
    - _PyXIData_DATA
    - channelid_CAST
    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:2655,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2658,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2658,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2662,1
    - Dst: get_module_from_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2663,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2663,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2668,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2671,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2676,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2679,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (obj == NULL)
      pos:
        line_end: 2661
        line_start: 2661
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (obj != NULL)
      pos:
        line_end: 2670
        line_start: 2670
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2682
      start: 2651
    functionDepth: 3
    functionLinenumber: 2651
    functionLinenumberEnd: 2682
    functionName: channelid_end
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - newchannelid
    - get_module_from_type
    - PyUnicode_InternFromString
    - channelid_CAST
    - assert
    - handle_channel_error
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_end(PyObject *self, void *end)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2725,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2731,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2734,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2739
    functionName: add_channelid_type
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyType_FromModuleAndSpec
    - ensure_xid_class
    - Py_DECREF
    - GETDATA
    - PyModule_AddType
    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:2749,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2758,1
    - Dst: ensure_highlevel_module_loaded
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2763,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - end
    argTypes:
    - int
    assertStmts:
    - condition: (end == CHANNEL_RECV)
      pos:
        line_end: 2757
        line_start: 2757
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cls != NULL)
      pos:
        line_end: 2771
        line_start: 2771
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2775
      start: 2746
    functionDepth: 0
    functionLinenumber: 2746
    functionLinenumberEnd: 2775
    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:2780,1
    - Dst: _get_current_channelend_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2786,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2789,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2777
    functionDepth: 4
    functionLinenumber: 2777
    functionLinenumberEnd: 2792
    functionName: _channelend_from_xid
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _channelid_from_xid
    - _get_current_channelend_type
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _channelend_from_xid(_PyXIData_t *data)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2797,1
    - Dst: _channelid_shared
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2802,1
    - Dst: _PyXIData_SET_NEW_OBJECT
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tstate
    - obj
    - data
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2794
    functionDepth: 2
    functionLinenumber: 2794
    functionLinenumberEnd: 2808
    functionName: _channelend_shared
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyXIData_SET_NEW_OBJECT
    - _channelid_shared
    - 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:2813,1
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2820,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2821,1
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2824,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2825,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2829,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2830,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2831,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2831,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2832,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2833,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2836,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2836,1
    - Dst: clear_xid_class
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2838,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - mod
    - send
    - recv
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2810
    functionDepth: 1
    functionLinenumber: 2810
    functionLinenumberEnd: 2844
    functionName: set_channelend_types
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - clear_xid_class
    - Py_CLEAR
    - GETDATA
    - Py_NewRef
    - ensure_xid_class
    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:2861,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2862,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2866,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2869,1
    - Dst: _channels_init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2872,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_globals.module_count >= 0)
      pos:
        line_end: 2861
        line_start: 2861
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2876
      start: 2858
    functionDepth: 1
    functionLinenumber: 2858
    functionLinenumberEnd: 2876
    functionName: _globals_init
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - _channels_init
    - assert
    - PyMutex_Lock
    - PyThread_allocate_lock
    linkageType: ''
    returnType: int
    signature: int _globals_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2881,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2882,1
    - Dst: _channels_fini
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2886,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2887,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2888,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 2886
        line_start: 2886
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (_globals.module_count > 0)
      pos:
        line_end: 2881
        line_start: 2881
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2891
      start: 2878
    functionDepth: 2
    functionLinenumber: 2878
    functionLinenumberEnd: 2891
    functionName: _globals_fini
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - _channels_fini
    - assert
    - PyMutex_Lock
    - PyThread_free_lock
    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: 2896
      start: 2893
    functionDepth: 0
    functionLinenumber: 2893
    functionLinenumberEnd: 2896
    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:2906,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2906,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2907,1
    - Dst: _channels_clear_interpreter
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (interp == _get_current_interp())
      pos:
        line_end: 2905
        line_start: 2905
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2909
      start: 2899
    functionDepth: 8
    functionLinenumber: 2899
    functionLinenumberEnd: 2909
    functionName: clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 4
    functionsReached:
    - _channels_clear_interpreter
    - _get_current_interp
    - PyInterpreterState_GetID
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_interpreter(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2918,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2924,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2929,1
    - Dst: channel_create
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2935,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2937,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2940,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2945,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2948,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2949,1
    - Dst: channel_destroy
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2950,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2951,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2956,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2957,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (cidobj == NULL)
      pos:
        line_end: 2948
        line_start: 2948
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj->channels != NULL)
      pos:
        line_end: 2956
        line_start: 2956
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj != NULL)
      pos:
        line_end: 2955
        line_start: 2955
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 2959
      start: 2912
    functionDepth: 10
    functionLinenumber: 2912
    functionLinenumberEnd: 2959
    functionName: channelsmod_create
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - newchannelid
    - get_module_state
    - channel_destroy
    - channel_create
    - assert
    - resolve_fallback
    - PyArg_ParseTupleAndKeywords
    - handle_channel_error
    - resolve_unboundop
    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:2974,1
    - Dst: channel_destroy
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2980,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:2981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2966
    functionDepth: 10
    functionLinenumber: 2966
    functionLinenumberEnd: 2985
    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:2998,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3001,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3005,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3011,1
    - Dst: newchannelid
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3018,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3021,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3022,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3023,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3026,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3031,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3033,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3036,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3040,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (cidobj == NULL)
      pos:
        line_end: 3021
        line_start: 3021
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    - condition: (cidobj != NULL)
      pos:
        line_end: 3025
        line_start: 3025
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3042
      start: 2993
    functionDepth: 3
    functionLinenumber: 2993
    functionLinenumberEnd: 3042
    functionName: channelsmod_list_all
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - newchannelid
    - get_module_state
    - PyList_SET_ITEM
    - _channels_list_all
    - handle_channel_error
    - Py_SETREF
    - Py_BuildValue
    - PyList_New
    - PyMem_Free
    - assert
    - Py_DECREF
    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:3062,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3069,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3074,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3076,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3077,1
    - Dst: channel_is_associated
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3078,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3080,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3084,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3089,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3094,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (interpid >= 0)
      pos:
        line_end: 3076
        line_start: 3076
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3104
      start: 3049
    functionDepth: 3
    functionLinenumber: 3049
    functionLinenumberEnd: 3104
    functionName: channelsmod_list_interpreters
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTupleAndKeywords
    - _PyInterpreterState_GetIDObject
    - PyInterpreterState_Next
    - channel_is_associated
    - PyInterpreterState_Head
    - Py_CLEAR
    - PyList_New
    - PyList_Insert
    - assert
    - handle_channel_error
    - PyInterpreterState_GetID
    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:3128,1
    - Dst: PyThread_ParseTimeoutArg
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3138,1
    - Dst: channel_get_defaults
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3143,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3144,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3149,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3153,1
    - Dst: channel_send_wait
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3160,1
    - Dst: channel_send
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3164,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3167,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3172
      start: 3115
    functionDepth: 10
    functionLinenumber: 3115
    functionLinenumberEnd: 3172
    functionName: channelsmod_send
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - channel_send
    - PyThread_ParseTimeoutArg
    - channel_send_wait
    - resolve_fallback
    - PyArg_ParseTupleAndKeywords
    - handle_channel_error
    - channel_get_defaults
    - resolve_unboundop
    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:3193,1
    - Dst: PyThread_ParseTimeoutArg
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3203,1
    - Dst: channel_get_defaults
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3208,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3209,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3214,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3218,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3222,1
    - Dst: channel_send_wait
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3230,1
    - Dst: channel_send
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3237,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3238,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3180
    functionDepth: 10
    functionLinenumber: 3180
    functionLinenumberEnd: 3243
    functionName: channelsmod_send_buffer
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - channel_send
    - PyThread_ParseTimeoutArg
    - channel_send_wait
    - resolve_fallback
    - PyArg_ParseTupleAndKeywords
    - handle_channel_error
    - channel_get_defaults
    - Py_DECREF
    - resolve_unboundop
    - PyMemoryView_FromObject
    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:3260,1
    - Dst: channel_recv
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3268,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3271,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3274,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3279,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3285
      start: 3251
    functionDepth: 9
    functionLinenumber: 3251
    functionLinenumberEnd: 3285
    functionName: channelsmod_recv
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - channel_recv
    - PyArg_ParseTupleAndKeywords
    - handle_channel_error
    - Py_DECREF
    - 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:3306,1
    - Dst: channel_close
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3314,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3295
    functionDepth: 11
    functionLinenumber: 3295
    functionLinenumberEnd: 3319
    functionName: channelsmod_close
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - channel_close
    - handle_channel_error
    - 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:3360,1
    - Dst: channel_release
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3375,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3348
    functionDepth: 6
    functionLinenumber: 3348
    functionLinenumberEnd: 3380
    functionName: channelsmod_release
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - handle_channel_error
    - channel_release
    - 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:3396,1
    - Dst: _channel_get_count
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3404,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3405,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3408,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (count >= 0)
      pos:
        line_end: 3407
        line_start: 3407
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3410
      start: 3389
    functionDepth: 3
    functionLinenumber: 3389
    functionLinenumberEnd: 3410
    functionName: channelsmod_get_count
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - _channel_get_count
    - PyLong_FromSsize_t
    - assert
    - handle_channel_error
    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:3424,1
    - Dst: _channel_get_info
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3432,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3433,1
    - Dst: new_channel_info
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3417
    functionDepth: 2
    functionLinenumber: 3417
    functionLinenumberEnd: 3437
    functionName: channelsmod_get_info
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - handle_channel_error
    - _channel_get_info
    - new_channel_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:3451,1
    - Dst: channel_get_defaults
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3459,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3460,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3466
      start: 3444
    functionDepth: 3
    functionLinenumber: 3444
    functionLinenumberEnd: 3466
    functionName: channelsmod_get_channel_defaults
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - handle_channel_error
    - channel_get_defaults
    - Py_BuildValue
    - 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:3476,1
    - Dst: get_module_from_owned_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3482,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3484,1
    - Dst: _channelid_new
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mod == self)
      pos:
        line_end: 3482
        line_start: 3482
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3487
      start: 3473
    functionDepth: 4
    functionLinenumber: 3473
    functionLinenumberEnd: 3487
    functionName: channelsmod__channel_id
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - get_module_from_owned_type
    - assert
    - Py_DECREF
    - _channelid_new
    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:3495,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3500,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3501,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3504,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3505,1
    - Dst: set_channelend_types
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3511,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3516
      start: 3489
    functionDepth: 2
    functionLinenumber: 3489
    functionLinenumberEnd: 3516
    functionName: channelsmod__register_end_types
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - set_channelend_types
    - PyErr_SetString
    - PyType_Check
    - 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:3561,1
    - Dst: handle_channel_error
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3562,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3566,1
    - Dst: exceptions_init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3572,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3579,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3583,1
    - Dst: add_channelid_type
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3588,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3594,1
    - Dst: PyUnstable_AtExit
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3595,1
    - Dst: clear_xid_types
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3601,1
    - Dst: _globals_fini
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3603,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3558
    functionDepth: 2
    functionLinenumber: 3558
    functionLinenumberEnd: 3605
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _globals_init
    - get_module_state
    - PyUnstable_AtExit
    - exceptions_init
    - PyStructSequence_NewType
    - _get_current_interp
    - clear_xid_types
    - handle_channel_error
    - _globals_fini
    - PyModule_AddType
    - add_channelid_type
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3618,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3619,1
    - Dst: traverse_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3618
        line_start: 3618
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3621
      start: 3615
    functionDepth: 0
    functionLinenumber: 3615
    functionLinenumberEnd: 3621
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - traverse_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:3626,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3627,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3626
        line_start: 3626
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3631
      start: 3623
    functionDepth: 0
    functionLinenumber: 3623
    functionLinenumberEnd: 3631
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - clear_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:3636,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3637,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3640,1
    - Dst: _globals_fini
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3636
        line_start: 3636
        source_file: /src/cpython/Modules/_interpchannelsmodule.c
    constantsTouched: []
    func_position:
      end: 3643
      start: 3633
    functionDepth: 0
    functionLinenumber: 3633
    functionLinenumberEnd: 3643
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_interpchannelsmodule.c
    functionUses: 0
    functionsReached:
    - _globals_fini
    - get_module_state
    - clear_module_state
    - assert
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_interpchannelsmodule.c:3660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3661
      start: 3657
    functionDepth: 1
    functionLinenumber: 3657
    functionLinenumberEnd: 3661
    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: 47
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 47
    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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    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: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    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: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    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: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    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:198,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 201
    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:206,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: get_asyncio_state_by_cls
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyType_GetModuleState
    - assert
    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:216,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_asynciomodule.c:217,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:218,1
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 220
    functionName: get_asyncio_state_by_def
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state
    - PyType_GetModuleByDef
    - Py_TYPE
    - assert
    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:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    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:248,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:249,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - task
    - coro
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts:
    - condition: (coro != NULL)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 251
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 251
    functionName: set_task_coro
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_INCREF
    - 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:263,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:269,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:274,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:279,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - state
    - coro
    argTypes:
    - asyncio_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 285
    functionName: _is_coroutine
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - PySet_GET_SIZE
    - PyObject_IsTrue
    - Py_DECREF
    - Py_TYPE
    - PyObject_CallOneArg
    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:291,1
    - Dst: PySet_Contains
      Src: /src/cpython/Modules/_asynciomodule.c:304,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:305,1
    - Dst: _is_coroutine
      Src: /src/cpython/Modules/_asynciomodule.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - coro
    argTypes:
    - asyncio_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 315
    functionName: is_coroutine
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - PyCoro_CheckExact
    - _is_coroutine
    - PySet_Contains
    - Py_TYPE
    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:325,1
    - Dst: Task_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:325,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:327,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_asynciomodule.c:330,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:330,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:335,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:339,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - state
    - fut
    argTypes:
    - asyncio_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 340
    functionName: get_future_loop
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Future_CheckExact
    - PyObject_GetAttr
    - PyObject_GetOptionalAttr
    - Task_CheckExact
    - PyObject_CallNoArgs
    - Py_DECREF
    - Py_NewRef
    - _Py_ID
    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:348,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:349,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:355,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:360,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - asyncio_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 363
    functionName: get_event_loop
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyObject_CallNoArgs
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - Py_XNewRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_event_loop(asyncio_state *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Modules/_asynciomodule.c:375,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:375,1
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Modules/_asynciomodule.c:389,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:396,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: 398
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 398
    functionName: call_soon
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_VectorcallMethod
    - _Py_ID
    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: 405
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 405
    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:411,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 417
    functionName: future_ensure_alive
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - future_is_alive
    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: 428
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 428
    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:433,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:435,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:437,1
    - Dst: unregister_task
      Src: /src/cpython/Modules/_asynciomodule.c:441,1
    - Dst: call_soon
      Src: /src/cpython/Modules/_asynciomodule.c:456,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:458,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:459,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:463,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:482,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:484,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:484,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:485,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:486,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:487,1
    - Dst: call_soon
      Src: /src/cpython/Modules/_asynciomodule.c:489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:494,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: 434
        line_start: 434
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (PyList_GET_SIZE(callbacks) == n)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 496
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 496
    functionName: future_schedule_callbacks
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyTuple_GET_ITEM
    - Task_Check
    - PyList_GET_ITEM
    - call_soon
    - Py_CLEAR
    - unregister_task
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int future_schedule_callbacks(asyncio_state *state, FutureObj *fut)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:503,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:516,1
    - Dst: get_event_loop
      Src: /src/cpython/Modules/_asynciomodule.c:517,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:523,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:527,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:527,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:532,1
    - Dst: _Py_IsInterpreterFinalizing
      Src: /src/cpython/Modules/_asynciomodule.c:536,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:536,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:543,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:544,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - fut
    - loop
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 551
    functionName: future_init
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _Py_IsInterpreterFinalizing
    - PyObject_IsTrue
    - get_event_loop
    - _PyInterpreterState_GET
    - PyErr_Format
    - PyObject_CallNoArgs
    - get_asyncio_state_by_def
    - PyObject_CallMethodNoArgs
    - Py_DECREF
    - _Py_ID
    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:556,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:560,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:560,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:561,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:561,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:567,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:568,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:574,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:574,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:575,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_asynciomodule.c:578,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:583,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:587,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_asynciomodule.c:590,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - state
    - fut
    - thing
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    assertStmts:
    - condition: (TaskOrFuture_Check(state, thing))
      pos:
        line_end: 560
        line_start: 560
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (TaskOrFuture_Check(state, fut))
      pos:
        line_end: 559
        line_start: 559
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (!fut->fut_awaited_by_is_set)
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (PySet_CheckExact(fut->fut_awaited_by))
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 593
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 593
    functionName: future_awaited_by_add
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - PySet_Add
    - Py_SETREF
    - PySet_New
    - TaskOrFuture_Check
    - assert
    - Py_DECREF
    - PySet_CheckExact
    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:598,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:602,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:602,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:603,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:603,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:612,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:616,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:616,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_asynciomodule.c:617,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: 601
        line_start: 601
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (TaskOrFuture_Check(state, thing))
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (PySet_CheckExact(fut->fut_awaited_by))
      pos:
        line_end: 615
        line_start: 615
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 625
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 625
    functionName: future_awaited_by_discard
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PySet_Discard
    - Py_CLEAR
    - TaskOrFuture_Check
    - assert
    - PySet_CheckExact
    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:631,1
    - Dst: future_ensure_alive
      Src: /src/cpython/Modules/_asynciomodule.c:633,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:638,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:642,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:643,1
    - Dst: future_schedule_callbacks
      Src: /src/cpython/Modules/_asynciomodule.c:646,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: 641
        line_start: 641
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 650
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 650
    functionName: future_set_result
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - future_schedule_callbacks
    - assert
    - future_ensure_alive
    - Py_NewRef
    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:655,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:660,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Modules/_asynciomodule.c:664,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:670,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:671,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:676,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_asynciomodule.c:678,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:679,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:680,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:683,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_asynciomodule.c:687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:689,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:695,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:698,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_asynciomodule.c:698,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Modules/_asynciomodule.c:700,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:700,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Modules/_asynciomodule.c:701,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:702,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:706,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:707,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Modules/_asynciomodule.c:709,1
    - Dst: future_schedule_callbacks
      Src: /src/cpython/Modules/_asynciomodule.c:712,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 3
    argNames:
    - state
    - fut
    - exc
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    assertStmts:
    - condition: (!fut->fut_exception)
      pos:
        line_end: 705
        line_start: 705
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (PyExceptionInstance_Check(err))
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (!fut->fut_exception_tb)
      pos:
        line_end: 706
        line_start: 706
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 718
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 718
    functionName: future_set_exception
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyUnicode_FromString
    - PyExceptionClass_Check
    - PyErr_SetString
    - future_schedule_callbacks
    - PyException_SetCause
    - PyException_GetTraceback
    - PyObject_CallNoArgs
    - assert
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - PyException_SetContext
    - Py_NewRef
    - PyObject_CallOneArg
    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:723,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:734,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - fut
    argTypes:
    - asyncio_state*
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 739
    functionName: create_cancelled_error
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyObject_CallNoArgs
    - PyObject_CallOneArg
    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:744,1
    - Dst: create_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:746,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_asynciomodule.c:750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - fut
    argTypes:
    - asyncio_state*
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 752
    functionName: future_set_cancelled_error
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - create_cancelled_error
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_DECREF
    - PyErr_SetObject
    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:757,1
    - Dst: future_set_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:760,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:765,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Modules/_asynciomodule.c:776,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:779,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:780,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:784,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - state
    - fut
    - result
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 786
    functionName: future_get_result
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - PyException_SetTraceback
    - Py_CLEAR
    - future_set_cancelled_error
    - Py_NewRef
    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:792,1
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:794,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:795,1
    - Dst: call_soon
      Src: /src/cpython/Modules/_asynciomodule.c:802,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:829,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:830,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_asynciomodule.c:833,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_asynciomodule.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:841,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:844,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_asynciomodule.c:847,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:849,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:853,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - state
    - fut
    - arg
    - ctx
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 859
    functionName: future_add_done_callback
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - call_soon
    - _PyTuple_FromPair
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - future_is_alive
    - Py_NewRef
    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:864,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_asynciomodule.c:873,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:874,1
    - Dst: future_schedule_callbacks
      Src: /src/cpython/Modules/_asynciomodule.c:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - state
    - fut
    - msg
    argTypes:
    - asyncio_state*
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 881
    functionName: future_cancel
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - future_schedule_callbacks
    - Py_XINCREF
    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:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - loop
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 903
    functionDepth: 4
    functionLinenumber: 903
    functionLinenumberEnd: 909
    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:915,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:916,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:917,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:918,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:919,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:920,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:921,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:922,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:923,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:924,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:925,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Modules/_asynciomodule.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 929
    functionName: FutureObj_clear
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyObject_ClearManagedDict
    linkageType: ''
    returnType: int
    signature: int FutureObj_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:935,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:935,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:936,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:937,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:938,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:939,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:940,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:941,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:942,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:943,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:944,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:945,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:946,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Modules/_asynciomodule.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 948
    functionName: FutureObj_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - 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:966,1
    - Dst: future_is_alive
      Src: /src/cpython/Modules/_asynciomodule.c:969,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:970,1
    - Dst: future_get_result
      Src: /src/cpython/Modules/_asynciomodule.c:975,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:985,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_asynciomodule.c:987,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Modules/_asynciomodule.c:987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (res == 1)
      pos:
        line_end: 984
        line_start: 984
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 990
      start: 962
    functionDepth: 4
    functionLinenumber: 962
    functionLinenumberEnd: 990
    functionName: _asyncio_Future_result_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetObject
    - PyExceptionInstance_Class
    - PyErr_SetString
    - future_get_result
    - assert
    - get_asyncio_state_by_def
    - future_is_alive
    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:1011,1
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1012,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1013,1
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1019,1
    - Dst: future_set_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:1020,1
    - Dst: get_asyncio_state_by_cls
      Src: /src/cpython/Modules/_asynciomodule.c:1025,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1026,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1033,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - FutureObj*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1007
    functionDepth: 3
    functionLinenumber: 1007
    functionLinenumberEnd: 1037
    functionName: _asyncio_Future_exception_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - get_asyncio_state_by_cls
    - future_set_cancelled_error
    - future_is_alive
    - Py_NewRef
    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:1058,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1059,1
    - Dst: future_set_result
      Src: /src/cpython/Modules/_asynciomodule.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - cls
    - result
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1053
    functionDepth: 4
    functionLinenumber: 1053
    functionLinenumberEnd: 1061
    functionName: _asyncio_Future_set_result_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - future_set_result
    - get_asyncio_state_by_cls
    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:1082,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1083,1
    - Dst: future_set_exception
      Src: /src/cpython/Modules/_asynciomodule.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - cls
    - exception
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1077
    functionDepth: 4
    functionLinenumber: 1077
    functionLinenumberEnd: 1085
    functionName: _asyncio_Future_set_exception_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - future_set_exception
    - get_asyncio_state_by_cls
    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:1109,1
    - Dst: PyContext_CopyCurrent
      Src: /src/cpython/Modules/_asynciomodule.c:1111,1
    - Dst: future_add_done_callback
      Src: /src/cpython/Modules/_asynciomodule.c:1115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1116,1
    - Dst: future_add_done_callback
      Src: /src/cpython/Modules/_asynciomodule.c:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - cls
    - fn
    - context
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1104
    functionDepth: 3
    functionLinenumber: 1104
    functionLinenumberEnd: 1120
    functionName: _asyncio_Future_add_done_callback_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - future_add_done_callback
    - PyContext_CopyCurrent
    - get_asyncio_state_by_cls
    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:1144,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1145,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1151,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_asynciomodule.c:1152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1153,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1159,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1160,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1166,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1169,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1171,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1172,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1176,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1177,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_asynciomodule.c:1178,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1180,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1186,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1187,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1190,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_asynciomodule.c:1193,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1201,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1204,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1205,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_asynciomodule.c:1206,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1206,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1209,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_asynciomodule.c:1213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1215,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1224,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1225,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1229,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1231,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1232,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_asynciomodule.c:1234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1238,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_asynciomodule.c:1239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1242,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    argCount: 3
    argNames:
    - self
    - cls
    - fn
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1244
    functionName: _asyncio_Future_remove_done_callback_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyObject_RichCompareBool
    - Py_INCREF
    - PyTuple_GET_ITEM
    - Py_SET_SIZE
    - ENSURE_FUTURE_ALIVE
    - PyList_GET_ITEM
    - get_asyncio_state_by_cls
    - Py_CLEAR
    - PyLong_FromSsize_t
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - PyList_GET_SIZE
    - Py_NewRef
    - PyList_SetSlice
    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:1266,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1267,1
    - Dst: future_cancel
      Src: /src/cpython/Modules/_asynciomodule.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - cls
    - msg
    argTypes:
    - FutureObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1261
    functionDepth: 4
    functionLinenumber: 1261
    functionLinenumberEnd: 1269
    functionName: _asyncio_Future_cancel_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - future_cancel
    - get_asyncio_state_by_cls
    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:1282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1288
    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:1304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1310
    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:1326,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1327,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - FutureObj*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1322
    functionDepth: 2
    functionLinenumber: 1322
    functionLinenumberEnd: 1329
    functionName: _asyncio_Future_get_loop_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - Py_NewRef
    - get_asyncio_state_by_cls
    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:1347,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:1347,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_asynciomodule.c:1348,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_asynciomodule.c:1351,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:1355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (PySet_CheckExact(self->fut_awaited_by))
      pos:
        line_end: 1346
        line_start: 1346
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1360
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1360
    functionName: _asyncio_Future__asyncio_awaited_by_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - assert
    - Py_DECREF
    - PyFrozenSet_New
    - PySet_CheckExact
    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:1373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1379
    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:1393,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1397,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:1401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1407
    functionName: _asyncio_Future__asyncio_future_blocking_set_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - future_ensure_alive
    - 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:1419,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1415
    functionDepth: 3
    functionLinenumber: 1415
    functionLinenumberEnd: 1427
    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:1440,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:1443,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1454
    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:1465,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1469
    functionName: _asyncio_Future__loop_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    - Py_NewRef
    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:1481,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1482,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1489,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_asynciomodule.c:1496,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1503,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_asynciomodule.c:1504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1506,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1509,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:1514,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1515,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1516,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:1517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (self->fut_context0 != NULL)
      pos:
        line_end: 1502
        line_start: 1502
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1523
      start: 1477
    functionDepth: 3
    functionLinenumber: 1477
    functionLinenumberEnd: 1523
    functionName: _asyncio_Future__callbacks_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - Py_DECREF
    - Py_INCREF
    - ENSURE_FUTURE_ALIVE
    - PyList_GET_ITEM
    - _PyTuple_FromPair
    - PyList_New
    - assert
    - get_asyncio_state_by_def
    - PyList_GET_SIZE
    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:1536,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1537,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1531
    functionDepth: 3
    functionLinenumber: 1531
    functionLinenumberEnd: 1542
    functionName: _asyncio_Future__result_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - ENSURE_FUTURE_ALIVE
    - Py_NewRef
    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:1554,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1555,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1550
    functionDepth: 3
    functionLinenumber: 1550
    functionLinenumberEnd: 1560
    functionName: _asyncio_Future__exception_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - ENSURE_FUTURE_ALIVE
    - Py_NewRef
    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:1572,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1576
    functionName: _asyncio_Future__source_traceback_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    - Py_NewRef
    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:1591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1592
    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:1605,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1608,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1600
    functionDepth: 1
    functionLinenumber: 1600
    functionLinenumberEnd: 1611
    functionName: _asyncio_Future__cancel_message_set_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_INCREF
    - PyErr_SetString
    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:1623,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1626,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1630,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1633,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1636,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1639,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1641,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Modules/_asynciomodule.c:1641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1638
        line_start: 1638
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (_Py_IsImmortal(ret))
      pos:
        line_end: 1640
        line_start: 1640
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1643
      start: 1619
    functionDepth: 3
    functionLinenumber: 1619
    functionLinenumberEnd: 1643
    functionName: _asyncio_Future__state_get_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - _Py_IsImmortal
    - assert
    - get_asyncio_state_by_def
    - _Py_ID
    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:1649,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:1650,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:1651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1645
    functionDepth: 3
    functionLinenumber: 1645
    functionLinenumberEnd: 1652
    functionName: FutureObj_repr
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state_by_def
    - ENSURE_FUTURE_ALIVE
    - PyObject_CallOneArg
    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:1668,1
    - Dst: create_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1664
    functionDepth: 3
    functionLinenumber: 1664
    functionLinenumberEnd: 1670
    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:1683,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:1687,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_asynciomodule.c:1689,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_asynciomodule.c:1694,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_asynciomodule.c:1695,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:1695,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:1700,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1700,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:1701,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1701,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:1702,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1702,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:1706,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1706,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:1712,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:1712,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:1714,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_asynciomodule.c:1716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1722,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1726,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1727,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:1730,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (fut->fut_exception != NULL)
      pos:
        line_end: 1682
        line_start: 1682
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1731
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1731
    functionName: FutureObj_finalize
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyObject_GetAttr
    - PyDict_SetItem
    - _Py_ID
    - PyErr_SetRaisedException
    - Py_XDECREF
    - assert
    - _PyType_Name
    - PyErr_GetRaisedException
    - PyObject_CallOneArg
    - PyErr_FormatUnraisable
    - Py_TYPE
    - PyDict_New
    linkageType: ''
    returnType: void
    signature: void FutureObj_finalize(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/_asynciomodule.c:1795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:1800,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_asynciomodule.c:1801,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_asynciomodule.c:1803,1
    - Dst: FutureObj_clear
      Src: /src/cpython/Modules/_asynciomodule.c:1805,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_asynciomodule.c:1806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1792
    functionDepth: 2
    functionLinenumber: 1792
    functionLinenumberEnd: 1808
    functionName: FutureObj_dealloc
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - PyObject_ClearWeakRefs
    - FutureObj_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void FutureObj_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:1822,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:1824,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_asynciomodule.c:1824,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_asynciomodule.c:1826,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_asynciomodule.c:1827,1
    - Dst: _Py_FREELIST_PUSH
      Src: /src/cpython/Modules/_asynciomodule.c:1829,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_asynciomodule.c:1830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 1823
        line_start: 1823
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    functionName: FutureIter_dealloc
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyTypeObject*::tp_clear
    - PyObject_GC_Del
    - _Py_FREELIST_PUSH
    - assert
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    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:1840,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:1847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1850,1
    - Dst: _asyncio_Future_result_impl
      Src: /src/cpython/Modules/_asynciomodule.c:1855,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - it
    - result
    argTypes:
    - futureiterobject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1835
    functionDepth: 5
    functionLinenumber: 1835
    functionLinenumberEnd: 1862
    functionName: FutureIter_am_send_lock_held
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - Py_NewRef
    - _asyncio_Future_result_impl
    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:1872,1
    - Dst: FutureIter_am_send_lock_held
      Src: /src/cpython/Modules/_asynciomodule.c:1873,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:1874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - Py_UNUSED(arg)
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1864
    functionDepth: 6
    functionLinenumber: 1864
    functionLinenumberEnd: 1876
    functionName: FutureIter_am_send
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - FutureIter_am_send_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1883,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Modules/_asynciomodule.c:1885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1886,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_asynciomodule.c:1893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1879
    functionDepth: 7
    functionLinenumber: 1879
    functionLinenumberEnd: 1895
    functionName: FutureIter_iternext
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_UNREACHABLE
    - FutureIter_am_send
    - _PyGen_SetStopIterationValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureIter_iternext(PyObject *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FutureIter_iternext
      Src: /src/cpython/Modules/_asynciomodule.c:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1897
    functionDepth: 8
    functionLinenumber: 1897
    functionLinenumberEnd: 1904
    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:1911,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_asynciomodule.c:1915,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Modules/_asynciomodule.c:1937,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1938,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1942,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1943,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1944,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Modules/_asynciomodule.c:1946,1
    - Dst: PyErr_NormalizeException
      Src: /src/cpython/Modules/_asynciomodule.c:1947,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_asynciomodule.c:1950,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1952,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Modules/_asynciomodule.c:1957,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:1958,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Modules/_asynciomodule.c:1960,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:1962,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:1968,1
    - Dst: PyErr_Restore
      Src: /src/cpython/Modules/_asynciomodule.c:1970,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1975,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1976,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:1977,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 3
    argNames:
    - op
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1906
    functionDepth: 1
    functionLinenumber: 1906
    functionLinenumberEnd: 1979
    functionName: FutureIter_throw
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_INCREF
    - PyExceptionClass_Check
    - PyErr_WarnEx
    - PyExceptionInstance_Class
    - PyErr_SetString
    - PyErr_Restore
    - PyException_GetTraceback
    - Py_CLEAR
    - Py_XDECREF
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyTraceBack_Check
    - PyErr_NormalizeException
    - Py_XINCREF
    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:1985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1981
    functionDepth: 1
    functionLinenumber: 1981
    functionLinenumberEnd: 1987
    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:1992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1989
    functionDepth: 2
    functionLinenumber: 1989
    functionLinenumberEnd: 1994
    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:2000,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2000,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2003
    functionName: FutureIter_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    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:2039,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/cpython/Modules/_asynciomodule.c:2040,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Modules/_asynciomodule.c:2042,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_asynciomodule.c:2044,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2050,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_asynciomodule.c:2051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fut
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2034
    functionDepth: 3
    functionLinenumber: 2034
    functionLinenumberEnd: 2053
    functionName: future_new_iter
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - ENSURE_FUTURE_ALIVE
    - _Py_FREELIST_POP
    - get_asyncio_state_by_def
    - Py_NewRef
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_new_iter(PyObject *fut)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2075,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2071
    functionDepth: 1
    functionLinenumber: 2071
    functionLinenumberEnd: 2078
    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:2084,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_asynciomodule.c:2085,1
    - Dst: TaskStepMethWrapper_clear
      Src: /src/cpython/Modules/_asynciomodule.c:2086,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2087,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2080
    functionDepth: 2
    functionLinenumber: 2080
    functionLinenumberEnd: 2089
    functionName: TaskStepMethWrapper_dealloc
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - TaskStepMethWrapper_clear
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TaskStepMethWrapper_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:2096,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:2097,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:2100,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:2101,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:2104,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:2106,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:2107,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:2108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2091
    functionDepth: 3
    functionLinenumber: 2091
    functionLinenumberEnd: 2110
    functionName: TaskStepMethWrapper_call
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - task_step
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - get_asyncio_state_by_def
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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:2117,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2117,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2118,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2121
    functionName: TaskStepMethWrapper_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    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:2128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2123
    functionDepth: 0
    functionLinenumber: 2123
    functionLinenumberEnd: 2131
    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:2159,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_asynciomodule.c:2161,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2166,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2167,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_asynciomodule.c:2169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - task
    - arg
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2156
    functionDepth: 3
    functionLinenumber: 2156
    functionLinenumberEnd: 2171
    functionName: TaskStepMethWrapper_new
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - get_asyncio_state_by_def
    - Py_XNewRef
    - Py_NewRef
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskStepMethWrapper_new(TaskObj *task, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:2189,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Modules/_asynciomodule.c:2193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ts
    - task
    argTypes:
    - _PyThreadStateImpl*
    - TaskObj*
    assertStmts:
    - condition: (task->task_node.prev != NULL)
      pos:
        line_end: 2188
        line_start: 2188
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 2194
      start: 2184
    functionDepth: 1
    functionLinenumber: 2184
    functionLinenumberEnd: 2194
    functionName: register_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - llist_insert_tail
    - assert
    linkageType: ''
    returnType: void
    signature: void register_task(_PyThreadStateImpl *ts, TaskObj *task)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:2201,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_asynciomodule.c:2204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts:
    - condition: (task->task_node.prev == NULL)
      pos:
        line_end: 2200
        line_start: 2200
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 2205
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2205
    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:2213,1
    - Dst: unregister_task_safe
      Src: /src/cpython/Modules/_asynciomodule.c:2214,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:2219,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:2220,1
    - Dst: unregister_task_safe
      Src: /src/cpython/Modules/_asynciomodule.c:2221,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:2222,1
    - Dst: unregister_task_safe
      Src: /src/cpython/Modules/_asynciomodule.c:2225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2207
    functionDepth: 2
    functionLinenumber: 2207
    functionLinenumberEnd: 2227
    functionName: unregister_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - _PyEval_StartTheWorld
    - _Py_ThreadId
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - unregister_task_safe
    linkageType: ''
    returnType: void
    signature: void unregister_task(TaskObj *task)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2233,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2238,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ts
    - loop
    - task
    argTypes:
    - _PyThreadStateImpl*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2229
    functionDepth: 1
    functionLinenumber: 2229
    functionLinenumberEnd: 2248
    functionName: enter_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int enter_task(_PyThreadStateImpl *ts, PyObject *loop, PyObject *task)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2254,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2259,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ts
    - loop
    - task
    argTypes:
    - _PyThreadStateImpl*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2250
    functionDepth: 1
    functionLinenumber: 2250
    functionLinenumberEnd: 2268
    functionName: leave_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int leave_task(_PyThreadStateImpl *ts, PyObject *loop, PyObject *task)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2274,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ts
    - loop
    - task
    argTypes:
    - _PyThreadStateImpl*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2270
    functionDepth: 1
    functionLinenumber: 2270
    functionLinenumberEnd: 2289
    functionName: swap_current_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      swap_current_task(_PyThreadStateImpl *ts, PyObject *loop, PyObject *task)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: future_init
      Src: /src/cpython/Modules/_asynciomodule.c:2312,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:2317,1
    - Dst: is_coroutine
      Src: /src/cpython/Modules/_asynciomodule.c:2318,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:2324,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2331,1
    - Dst: PyContext_CopyCurrent
      Src: /src/cpython/Modules/_asynciomodule.c:2331,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2336,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2336,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2339,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Modules/_asynciomodule.c:2341,1
    - Dst: set_task_coro
      Src: /src/cpython/Modules/_asynciomodule.c:2346,1
    - Dst: _Py_atomic_add_uint64
      Src: /src/cpython/Modules/_asynciomodule.c:2353,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_asynciomodule.c:2357,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:2358,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_asynciomodule.c:2359,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:2361,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2363,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:2367,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:2369,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2369,1
    - Dst: Py_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:2373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2374,1
    - Dst: task_eager_start
      Src: /src/cpython/Modules/_asynciomodule.c:2376,1
    - Dst: task_call_step_soon
      Src: /src/cpython/Modules/_asynciomodule.c:2383,1
    - Dst: _PyObject_SetMaybeWeakref
      Src: /src/cpython/Modules/_asynciomodule.c:2389,1
    - Dst: register_task
      Src: /src/cpython/Modules/_asynciomodule.c:2391,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: 2393
      start: 2306
    functionDepth: 4
    functionLinenumber: 2306
    functionLinenumberEnd: 2393
    functionName: _asyncio_Task___init___impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyContext_CopyCurrent
    - Py_IsTrue
    - _PyThreadState_GET
    - get_asyncio_state_by_def
    - register_task
    - set_task_coro
    - task_eager_start
    - task_call_step_soon
    - is_coroutine
    - Py_INCREF
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - future_init
    - PyObject_Str
    - Py_XSETREF
    - _Py_atomic_add_uint64
    - PyUnicode_CheckExact
    - _Py_ThreadId
    - Py_CLEAR
    - PyErr_Format
    - PyLong_FromUnsignedLongLong
    - _PyObject_SetMaybeWeakref
    - _Py_ID
    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:2399,1
    - Dst: clear_task_coro
      Src: /src/cpython/Modules/_asynciomodule.c:2400,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2401,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2402,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2395
    functionDepth: 2
    functionLinenumber: 2395
    functionLinenumberEnd: 2405
    functionName: TaskObj_clear
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - FutureObj_clear
    - clear_task_coro
    linkageType: ''
    returnType: int
    signature: int TaskObj_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2411,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2412,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2413,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2414,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2415,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2417,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2418,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2419,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2420,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2421,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2422,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2423,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2424,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2425,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2426,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:2427,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Modules/_asynciomodule.c:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2407
    functionDepth: 1
    functionLinenumber: 2407
    functionLinenumberEnd: 2429
    functionName: TaskObj_traverse
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - 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: 2447
      start: 2437
    functionDepth: 0
    functionLinenumber: 2437
    functionLinenumberEnd: 2447
    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:2460,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:2463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2469
    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: 2488
      start: 2478
    functionDepth: 0
    functionLinenumber: 2478
    functionLinenumberEnd: 2488
    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:2501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2496
    functionDepth: 0
    functionLinenumber: 2496
    functionLinenumberEnd: 2505
    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:2519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2514
    functionDepth: 0
    functionLinenumber: 2514
    functionLinenumberEnd: 2523
    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:2528,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:2529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - task
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2525
    functionDepth: 3
    functionLinenumber: 2525
    functionLinenumberEnd: 2530
    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:2548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2543
    functionDepth: 4
    functionLinenumber: 2543
    functionLinenumberEnd: 2549
    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:2603,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2604,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:2609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2610,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_asynciomodule.c:2621,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - msg
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2580
    functionDepth: 1
    functionLinenumber: 2580
    functionLinenumberEnd: 2624
    functionName: _asyncio_Task_cancel_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - Py_XSETREF
    - PyObject_IsTrue
    - _Py_ID
    - Py_DECREF
    - Py_XINCREF
    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:2641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2636
    functionDepth: 0
    functionLinenumber: 2636
    functionLinenumberEnd: 2642
    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:2667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2656
    functionDepth: 0
    functionLinenumber: 2656
    functionLinenumberEnd: 2668
    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:2704,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_asynciomodule.c:2706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - limit
    argTypes:
    - TaskObj*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2699
    functionDepth: 2
    functionLinenumber: 2699
    functionLinenumberEnd: 2708
    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:2733,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_asynciomodule.c:2735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cls
    - limit
    - file
    argTypes:
    - TaskObj*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2728
    functionDepth: 2
    functionLinenumber: 2728
    functionLinenumberEnd: 2737
    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:2750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2746
    functionDepth: 1
    functionLinenumber: 2746
    functionLinenumberEnd: 2753
    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:2766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - exception
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2762
    functionDepth: 1
    functionLinenumber: 2762
    functionLinenumberEnd: 2769
    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:2781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2776
    functionDepth: 0
    functionLinenumber: 2776
    functionLinenumberEnd: 2785
    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:2795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2796
    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:2808,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_asynciomodule.c:2809,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2813,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:2815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2803
    functionDepth: 1
    functionLinenumber: 2803
    functionLinenumberEnd: 2819
    functionName: _asyncio_Task_get_name_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - Py_NewRef
    - Py_SETREF
    - PyUnicode_FromFormat
    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:2833,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_asynciomodule.c:2834,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:2839,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:2842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2829
    functionDepth: 1
    functionLinenumber: 2829
    functionLinenumberEnd: 2844
    functionName: _asyncio_Task_set_name_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - Py_XSETREF
    - Py_INCREF
    - PyUnicode_CheckExact
    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:2859,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_asynciomodule.c:2861,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_asynciomodule.c:2866,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:2871,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2871,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:2872,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2872,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_asynciomodule.c:2878,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2878,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:2885,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:2885,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:2887,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_asynciomodule.c:2889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2895,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2899,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2900,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:2903,1
    - Dst: FutureObj_finalize
      Src: /src/cpython/Modules/_asynciomodule.c:2906,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2846
    functionDepth: 2
    functionLinenumber: 2846
    functionLinenumberEnd: 2907
    functionName: TaskObj_finalize
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyObject_GetAttr
    - PyDict_SetItem
    - PyDict_New
    - PyErr_SetRaisedException
    - Py_XDECREF
    - FutureObj_finalize
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyObject_CallOneArg
    - PyErr_FormatUnraisable
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void TaskObj_finalize(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/_asynciomodule.c:2972,1
    - Dst: unregister_task
      Src: /src/cpython/Modules/_asynciomodule.c:2977,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:2979,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_asynciomodule.c:2980,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_asynciomodule.c:2982,1
    - Dst: TaskObj_clear
      Src: /src/cpython/Modules/_asynciomodule.c:2984,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_asynciomodule.c:2985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2969
    functionDepth: 3
    functionLinenumber: 2969
    functionLinenumberEnd: 2987
    functionName: TaskObj_dealloc
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - TaskObj_clear
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - unregister_task
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TaskObj_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TaskStepMethWrapper_new
      Src: /src/cpython/Modules/_asynciomodule.c:2992,1
    - Dst: call_soon
      Src: /src/cpython/Modules/_asynciomodule.c:2997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:2998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - task
    - arg
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2989
    functionDepth: 4
    functionLinenumber: 2989
    functionLinenumberEnd: 3000
    functionName: task_call_step_soon
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - TaskStepMethWrapper_new
    - call_soon
    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:3009,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Modules/_asynciomodule.c:3010,1
    - Dst: va_end
      Src: /src/cpython/Modules/_asynciomodule.c:3011,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3018,1
    - Dst: task_call_step_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3028,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: 3030
      start: 3002
    functionDepth: 5
    functionLinenumber: 3002
    functionLinenumberEnd: 3030
    functionName: task_set_error_soon
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormatV
    - task_call_step_soon
    - va_start
    - va_end
    - Py_DECREF
    - PyObject_CallOneArg
    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:3038,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3042,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_asynciomodule.c:3042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3041
        line_start: 3041
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3044
      start: 3032
    functionDepth: 1
    functionLinenumber: 3032
    functionLinenumberEnd: 3044
    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:3049,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_asynciomodule.c:3057,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3065,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:3067,1
    - Dst: create_cancelled_error
      Src: /src/cpython/Modules/_asynciomodule.c:3069,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:3080,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:3084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3087,1
    - Dst: PyIter_Send
      Src: /src/cpython/Modules/_asynciomodule.c:3094,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3097,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3097,1
    - Dst: gen_status_from_result
      Src: /src/cpython/Modules/_asynciomodule.c:3098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3101,1
    - Dst: future_cancel
      Src: /src/cpython/Modules/_asynciomodule.c:3114,1
    - Dst: future_set_result
      Src: /src/cpython/Modules/_asynciomodule.c:3118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3121,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3126,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:3130,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3133,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3134,1
    - Dst: future_cancel
      Src: /src/cpython/Modules/_asynciomodule.c:3140,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3144,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3145,1
    - Dst: future_set_exception
      Src: /src/cpython/Modules/_asynciomodule.c:3147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3150,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3154,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:3156,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_asynciomodule.c:3157,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3164,1
    - Dst: task_step_handle_result_impl
      Src: /src/cpython/Modules/_asynciomodule.c:3169,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 3
    argNames:
    - state
    - task
    - exc
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    assertStmts:
    - condition: (exc != Py_None)
      pos:
        line_end: 3064
        line_start: 3064
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (exc)
      pos:
        line_end: 3144
        line_start: 3144
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (o == Py_None)
      pos:
        line_end: 3152
        line_start: 3152
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (exc)
      pos:
        line_end: 3133
        line_start: 3133
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3174
      start: 3046
    functionDepth: 4
    functionLinenumber: 3046
    functionLinenumberEnd: 3174
    functionName: task_step_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - create_cancelled_error
    - PyErr_SetRaisedException
    - assert
    - future_cancel
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - future_set_exception
    - task_step_handle_result_impl
    - PyErr_SetString
    - Py_DECREF
    - PyErr_GetRaisedException
    - future_set_result
    - PyIter_Send
    - Py_CLEAR
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_GivenExceptionMatches
    - gen_status_from_result
    - _Py_ID
    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:3180,1
    - Dst: Future_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3191,1
    - Dst: Task_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3191,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3205,1
    - Dst: future_awaited_by_add
      Src: /src/cpython/Modules/_asynciomodule.c:3206,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3207,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/_asynciomodule.c:3215,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3219,1
    - Dst: future_add_done_callback
      Src: /src/cpython/Modules/_asynciomodule.c:3220,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3227,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3241,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3242,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3244,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:3249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3250,1
    - Dst: task_call_step_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3265,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_asynciomodule.c:3272,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3272,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:3280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3281,1
    - Dst: get_future_loop
      Src: /src/cpython/Modules/_asynciomodule.c:3287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3295,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3301,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3303,1
    - Dst: future_awaited_by_add
      Src: /src/cpython/Modules/_asynciomodule.c:3304,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3305,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:3312,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3313,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/_asynciomodule.c:3317,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_asynciomodule.c:3323,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3324,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3326,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Modules/_asynciomodule.c:3332,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_asynciomodule.c:3333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3339,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3353,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3354,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3356,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:3361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3362,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3374,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_asynciomodule.c:3376,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3386,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3393,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3400,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3404,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3409,1
    - Dst: task_set_error_soon
      Src: /src/cpython/Modules/_asynciomodule.c:3413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3417,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3421,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 171
    argCount: 3
    argNames:
    - state
    - task
    - result
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3423
      start: 3177
    functionDepth: 6
    functionLinenumber: 3177
    functionLinenumberEnd: 3423
    functionName: task_step_handle_result_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyObject_CallMethodOneArg
    - Task_CheckExact
    - PyCFunction_New
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - get_future_loop
    - task_call_step_soon
    - PyObject_IsTrue
    - PyObject_GetOptionalAttr
    - PyObject_IsInstance
    - future_add_done_callback
    - Py_XDECREF
    - task_set_error_soon
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - Future_CheckExact
    - TaskOrFuture_Check
    - Py_DECREF
    - Py_NewRef
    - future_awaited_by_add
    - PyObject_SetAttr
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_Vectorcall
    - PyObject_GetAttr
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_step_handle_result_impl(asyncio_state *state, TaskObj *task, PyObject *result)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3430,1
    - Dst: enter_task
      Src: /src/cpython/Modules/_asynciomodule.c:3432,1
    - Dst: task_step_impl
      Src: /src/cpython/Modules/_asynciomodule.c:3436,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3439,1
    - Dst: leave_task
      Src: /src/cpython/Modules/_asynciomodule.c:3440,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_asynciomodule.c:3441,1
    - Dst: leave_task
      Src: /src/cpython/Modules/_asynciomodule.c:3445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - state
    - task
    - exc
    argTypes:
    - asyncio_state*
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3453
      start: 3425
    functionDepth: 5
    functionLinenumber: 3425
    functionLinenumberEnd: 3453
    functionName: task_step
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - enter_task
    - _PyErr_ChainExceptions1
    - leave_task
    - _PyThreadState_GET
    - task_step_impl
    - Py_DECREF
    - PyErr_GetRaisedException
    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:3458,1
    - Dst: swap_current_task
      Src: /src/cpython/Modules/_asynciomodule.c:3459,1
    - Dst: register_task
      Src: /src/cpython/Modules/_asynciomodule.c:3467,1
    - Dst: _PyContext_Enter
      Src: /src/cpython/Modules/_asynciomodule.c:3469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3470,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3477,1
    - Dst: task_step_impl
      Src: /src/cpython/Modules/_asynciomodule.c:3478,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3479,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3481,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_asynciomodule.c:3482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3485,1
    - Dst: swap_current_task
      Src: /src/cpython/Modules/_asynciomodule.c:3488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3489,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3494,1
    - Dst: _PyContext_Exit
      Src: /src/cpython/Modules/_asynciomodule.c:3497,1
    - Dst: clear_task_coro
      Src: /src/cpython/Modules/_asynciomodule.c:3503,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - ts
    - state
    - task
    argTypes:
    - _PyThreadStateImpl*
    - asyncio_state*
    - TaskObj*
    assertStmts:
    - condition: (task != NULL)
      pos:
        line_end: 3457
        line_start: 3457
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (curtask == (PyObject *)task)
      pos:
        line_end: 3492
        line_start: 3492
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3507
      start: 3455
    functionDepth: 5
    functionLinenumber: 3455
    functionLinenumberEnd: 3507
    functionName: task_eager_start
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - _PyContext_Exit
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - clear_task_coro
    - _PyErr_ChainExceptions1
    - swap_current_task
    - task_step_impl
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - _PyContext_Enter
    - register_task
    linkageType: ''
    returnType: int
    signature: int task_eager_start(_PyThreadStateImpl *ts, asyncio_state *state,
      TaskObj *task)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_asynciomodule.c:3512,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3515,1
    - Dst: get_asyncio_state_by_def
      Src: /src/cpython/Modules/_asynciomodule.c:3517,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3519,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3521,1
    - Dst: future_awaited_by_discard
      Src: /src/cpython/Modules/_asynciomodule.c:3522,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3523,1
    - Dst: Future_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3529,1
    - Dst: Task_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3529,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3532,1
    - Dst: future_get_result
      Src: /src/cpython/Modules/_asynciomodule.c:3533,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3534,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3540,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:3541,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3543,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:3544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3545,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_asynciomodule.c:3550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3552,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:3553,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_asynciomodule.c:3558,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3559,1
    - Dst: task_step
      Src: /src/cpython/Modules/_asynciomodule.c:3561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3563,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - task
    - o
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts:
    - condition: (o)
      pos:
        line_end: 3514
        line_start: 3514
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (fut_result == NULL)
      pos:
        line_end: 3536
        line_start: 3536
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (res == 1)
      pos:
        line_end: 3542
        line_start: 3542
        source_file: /src/cpython/Modules/_asynciomodule.c
    - condition: (exc)
      pos:
        line_end: 3558
        line_start: 3558
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3566
      start: 3509
    functionDepth: 6
    functionLinenumber: 3509
    functionLinenumberEnd: 3566
    functionName: task_wakeup_lock_held
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Future_CheckExact
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - future_awaited_by_discard
    - task_step
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - future_get_result
    - Task_CheckExact
    - TaskOrFuture_Check
    - assert
    - get_asyncio_state_by_def
    - PyErr_GetRaisedException
    - PyObject_CallMethod
    - Py_DECREF
    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:3573,1
    - Dst: task_wakeup_lock_held
      Src: /src/cpython/Modules/_asynciomodule.c:3574,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3577
      start: 3568
    functionDepth: 7
    functionLinenumber: 3568
    functionLinenumberEnd: 3577
    functionName: task_wakeup
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - task_wakeup_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_wakeup(PyObject *op, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3597,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3593
    functionDepth: 1
    functionLinenumber: 3593
    functionLinenumberEnd: 3604
    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:3621,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_asynciomodule.c:3625,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - loop
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3627
      start: 3617
    functionDepth: 1
    functionLinenumber: 3617
    functionLinenumberEnd: 3627
    functionName: _asyncio__set_running_loop
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - _PyThreadState_GET
    - Py_XNewRef
    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:3646,1
    - Dst: get_event_loop
      Src: /src/cpython/Modules/_asynciomodule.c:3647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3648
      start: 3642
    functionDepth: 2
    functionLinenumber: 3642
    functionLinenumberEnd: 3648
    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:3663,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3664,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_asynciomodule.c:3667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3672
      start: 3658
    functionDepth: 1
    functionLinenumber: 3658
    functionLinenumberEnd: 3672
    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:3688,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3689,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3692,1
    - Dst: register_task
      Src: /src/cpython/Modules/_asynciomodule.c:3693,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3698,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3684
    functionDepth: 2
    functionLinenumber: 3684
    functionLinenumberEnd: 3705
    functionName: _asyncio__register_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - Task_Check
    - _PyThreadState_GET
    - get_asyncio_state
    - Py_DECREF
    - register_task
    - _Py_ID
    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:3721,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3723,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3726,1
    - Dst: register_task
      Src: /src/cpython/Modules/_asynciomodule.c:3727,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:3731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3736
      start: 3717
    functionDepth: 2
    functionLinenumber: 3717
    functionLinenumberEnd: 3736
    functionName: _asyncio__register_eager_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - Task_Check
    - _PyThreadState_GET
    - get_asyncio_state
    - 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:3753,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3754,1
    - Dst: unregister_task
      Src: /src/cpython/Modules/_asynciomodule.c:3755,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_asynciomodule.c:3758,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3765
      start: 3749
    functionDepth: 3
    functionLinenumber: 3749
    functionLinenumberEnd: 3765
    functionName: _asyncio__unregister_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - Task_Check
    - unregister_task
    - get_asyncio_state
    - Py_DECREF
    - _Py_ID
    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:3781,1
    - Dst: Task_Check
      Src: /src/cpython/Modules/_asynciomodule.c:3782,1
    - Dst: unregister_task
      Src: /src/cpython/Modules/_asynciomodule.c:3785,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_asynciomodule.c:3789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3777
    functionDepth: 3
    functionLinenumber: 3777
    functionLinenumberEnd: 3794
    functionName: _asyncio__unregister_eager_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state
    - PySet_Discard
    - unregister_task
    - Task_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

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

      _asyncio__leave_task_impl(PyObject *module, PyObject *loop, PyObject *task)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3865,1
    - Dst: swap_current_task
      Src: /src/cpython/Modules/_asynciomodule.c:3866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3867
      start: 3860
    functionDepth: 2
    functionLinenumber: 3860
    functionLinenumberEnd: 3867
    functionName: _asyncio__swap_current_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - 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:3884,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:3889,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:3892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3897,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3900,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:3908,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_asynciomodule.c:3913,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Modules/_asynciomodule.c:3919,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:3920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3921,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - module
    - loop
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3923
      start: 3879
    functionDepth: 2
    functionLinenumber: 3879
    functionLinenumberEnd: 3923
    functionName: _asyncio_current_task_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyEval_StartTheWorld
    - _Py_FOR_EACH_TSTATE_END
    - _asyncio_get_running_loop_impl
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - Py_DECREF
    - Py_NewRef
    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:3913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3909
    functionDepth: 0
    functionLinenumber: 3909
    functionLinenumberEnd: 3917
    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:3929,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3929,1
    - Dst: Task_CheckExact
      Src: /src/cpython/Modules/_asynciomodule.c:3930,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3932,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:3934,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:3936,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:3943,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_asynciomodule.c:3943,1
    - Dst: Py_IsTrue
      Src: /src/cpython/Modules/_asynciomodule.c:3947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3950,1
    - Dst: get_future_loop
      Src: /src/cpython/Modules/_asynciomodule.c:3951,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_asynciomodule.c:3956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:3961,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: 3928
        line_start: 3928
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3963
      start: 3926
    functionDepth: 2
    functionLinenumber: 3926
    functionLinenumberEnd: 3963
    functionName: add_one_task
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - Py_END_CRITICAL_SECTION
    - get_future_loop
    - Py_BEGIN_CRITICAL_SECTION
    - Py_IsTrue
    - Task_CheckExact
    - assert
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PySet_CheckExact
    - _Py_ID
    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:3970,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3971,1
    - Dst: _Py_TryIncref
      Src: /src/cpython/Modules/_asynciomodule.c:3979,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_asynciomodule.c:3980,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: 3970
        line_start: 3970
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3987
      start: 3965
    functionDepth: 1
    functionLinenumber: 3965
    functionLinenumberEnd: 3987
    functionName: add_tasks_llist
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_TryIncref
    - _PyList_AppendTakeRef
    - llist_data
    - assert
    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:3970,1
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3971,1
    - Dst: _Py_TryIncref
      Src: /src/cpython/Modules/_asynciomodule.c:3979,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_asynciomodule.c:3980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (task->task_state == STATE_PENDING)
      pos:
        line_end: 3970
        line_start: 3970
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3985
      start: 3969
    functionDepth: 1
    functionLinenumber: 3969
    functionLinenumberEnd: 3985
    functionName: llist_for_each_safe
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _Py_TryIncref
    - _PyList_AppendTakeRef
    - llist_data
    - assert
    linkageType: ''
    returnType: void
    signature: void llist_for_each_safe(node, head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_asynciomodule.c:3993,1
    - Dst: add_tasks_llist
      Src: /src/cpython/Modules/_asynciomodule.c:3998,1
    - Dst: add_tasks_llist
      Src: /src/cpython/Modules/_asynciomodule.c:4007,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Modules/_asynciomodule.c:4013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - interp
    - tasks
    argTypes:
    - PyInterpreterState*
    - PyListObject*
    assertStmts:
    - condition: (interp->stoptheworld.world_stopped)
      pos:
        line_end: 3992
        line_start: 3992
        source_file: /src/cpython/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 4015
      start: 3989
    functionDepth: 2
    functionLinenumber: 3989
    functionLinenumberEnd: 4015
    functionName: add_tasks_interp
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - add_tasks_llist
    - _Py_FOR_EACH_TSTATE_END
    - assert
    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:4007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4011
      start: 4004
    functionDepth: 2
    functionLinenumber: 4004
    functionLinenumberEnd: 4011
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_asyncio_state
      Src: /src/cpython/Modules/_asynciomodule.c:4032,1
    - Dst: _asyncio_get_running_loop_impl
      Src: /src/cpython/Modules/_asynciomodule.c:4034,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_asynciomodule.c:4039,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_asynciomodule.c:4045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4047,1
    - Dst: PyList_Extend
      Src: /src/cpython/Modules/_asynciomodule.c:4050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4052,1
    - Dst: PyList_Extend
      Src: /src/cpython/Modules/_asynciomodule.c:4055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4057,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_asynciomodule.c:4061,1
    - Dst: add_tasks_llist
      Src: /src/cpython/Modules/_asynciomodule.c:4066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4068,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:4090,1
    - Dst: add_tasks_interp
      Src: /src/cpython/Modules/_asynciomodule.c:4091,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/_asynciomodule.c:4092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4096,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_asynciomodule.c:4102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4105,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_asynciomodule.c:4109,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_asynciomodule.c:4110,1
    - Dst: add_one_task
      Src: /src/cpython/Modules/_asynciomodule.c:4111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - module
    - loop
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4122
      start: 4028
    functionDepth: 3
    functionLinenumber: 4028
    functionLinenumberEnd: 4122
    functionName: _asyncio_all_tasks_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyEval_StartTheWorld
    - add_tasks_interp
    - add_tasks_llist
    - _asyncio_get_running_loop_impl
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PySet_New
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - PyList_Extend
    - add_one_task
    - PyList_New
    - get_asyncio_state
    - Py_DECREF
    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:4140,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:4141,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:4141,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:4143,1
    - Dst: future_awaited_by_add
      Src: /src/cpython/Modules/_asynciomodule.c:4144,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:4145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - fut
    - waiter
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4151
      start: 4135
    functionDepth: 2
    functionLinenumber: 4135
    functionLinenumberEnd: 4151
    functionName: _asyncio_future_add_to_awaited_by_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - TaskOrFuture_Check
    - get_asyncio_state
    - 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:4167,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:4168,1
    - Dst: TaskOrFuture_Check
      Src: /src/cpython/Modules/_asynciomodule.c:4168,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:4170,1
    - Dst: future_awaited_by_discard
      Src: /src/cpython/Modules/_asynciomodule.c:4171,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_asynciomodule.c:4172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - fut
    - waiter
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4178
      start: 4162
    functionDepth: 2
    functionLinenumber: 4162
    functionLinenumberEnd: 4178
    functionName: _asyncio_future_discard_from_awaited_by_impl
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_awaited_by_discard
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - TaskOrFuture_Check
    - get_asyncio_state
    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:4183,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4185,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4186,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4187,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4188,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4190,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_asynciomodule.c:4191,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:4196,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: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:4205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4208
      start: 4180
    functionDepth: 2
    functionLinenumber: 4180
    functionLinenumberEnd: 4208
    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:4213,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4215,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4216,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4217,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4218,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4220,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4221,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:4226,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: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:4235,1
    - Dst: _PyThreadState_GET
      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:4241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4244
      start: 4210
    functionDepth: 2
    functionLinenumber: 4210
    functionLinenumberEnd: 4244
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state
    - Py_CLEAR
    - _PyThreadState_GET
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_clear
      Src: /src/cpython/Modules/_asynciomodule.c:4249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4250
      start: 4246
    functionDepth: 0
    functionLinenumber: 4246
    functionLinenumberEnd: 4250
    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:4257,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_asynciomodule.c:4262,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_asynciomodule.c:4267,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4285,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4286,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4288,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4289,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4291,1
    - Dst: GET_MOD_ATTR
      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: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4297,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4298,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4300,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4301,1
    - Dst: WITH_MOD
      Src: /src/cpython/Modules/_asynciomodule.c:4303,1
    - Dst: GET_MOD_ATTR
      Src: /src/cpython/Modules/_asynciomodule.c:4304,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: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_asynciomodule.c:4309,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4310,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_asynciomodule.c:4315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_asynciomodule.c:4322,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_asynciomodule.c:4326,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 1
    argNames:
    - state
    argTypes:
    - asyncio_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4252
    functionDepth: 1
    functionLinenumber: 4252
    functionLinenumberEnd: 4331
    functionName: module_init
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - WITH_MOD
    - PyImport_ImportModule
    - GET_MOD_ATTR
    - Py_BuildValue
    - PySet_New
    - Py_CLEAR
    - PyObject_CallNoArgs
    - Py_DECREF
    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: 4278
      start: 4272
    functionDepth: 0
    functionLinenumber: 4272
    functionLinenumberEnd: 4278
    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: 4284
      start: 4279
    functionDepth: 0
    functionLinenumber: 4279
    functionLinenumberEnd: 4284
    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:4357,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:4369,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:4370,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:4371,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_asynciomodule.c:4372,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_asynciomodule.c:4376,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_asynciomodule.c:4380,1
    - Dst: module_init
      Src: /src/cpython/Modules/_asynciomodule.c:4384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4389
      start: 4354
    functionDepth: 2
    functionLinenumber: 4354
    functionLinenumberEnd: 4389
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_asyncio_state
    - module_init
    - CREATE_TYPE
    - PyModule_AddType
    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: 4368
      start: 4360
    functionDepth: 0
    functionLinenumber: 4360
    functionLinenumberEnd: 4368
    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:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4411
    functionDepth: 1
    functionLinenumber: 4411
    functionLinenumberEnd: 4415
    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:
    - Py_DECREF
    - PyList_SET_ITEM
    - PyLong_FromLong
    - PyList_New
    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:
    - PyUnicode_DecodeLocale
    - check_locale_name_all
    - PyErr_SetString
    - check_locale_name
    - setlocale
    - get_locale_state
    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:
    - strcmp
    - _PyMem_Strdup
    - PyErr_NoMemory
    - RESULT_STRING
    - PyErr_SetString
    - locale_is_ascii
    - setlocale
    - PyMem_Free
    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
    - RESULT_STRING
    - copy_grouping
    - PyDict_SetItemString
    - Py_XDECREF
    - locale_decode_monetary
    - Py_DECREF
    - localeconv
    - RESULT_INT
    - RESULT
    - PyDict_New
    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
    - PyUnicode_AsWideCharString
    - PyMem_Free
    - wcscoll
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_strcoll_impl(PyObject *module, PyObject *os1, PyObject *os2)'
  - BBCount: 10
    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: wcsxfrm
      Src: /src/cpython/Modules/_localemodule.c:459,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_localemodule.c:461,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_localemodule.c:464,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:466,1
    - Dst: wcsxfrm
      Src: /src/cpython/Modules/_localemodule.c:471,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_localemodule.c:473,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_localemodule.c:500,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:502,1
    - Dst: assert
      Src: /src/cpython/Modules/_localemodule.c:516,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_localemodule.c:517,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:518,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_localemodule.c:523,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:525,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 2
    argNames:
    - module
    - str
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (j == n3)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/cpython/Modules/_localemodule.c
    constantsTouched: []
    func_position:
      end: 528
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 528
    functionName: _locale_strxfrm_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - wcsxfrm
    - PyMem_New
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_Free
    - assert
    - PyUnicode_FromKindAndData
    - PyErr_SetFromErrno
    - PyUnicode_AsWideCharString
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _locale_strxfrm_impl(PyObject *module, PyObject *str)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_localemodule.c:545,1
    - Dst: GetACP
      Src: /src/cpython/Modules/_localemodule.c:545,1
    - Dst: GetLocaleInfoA
      Src: /src/cpython/Modules/_localemodule.c:547,1
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:550,1
    - Dst: GetLocaleInfoA
      Src: /src/cpython/Modules/_localemodule.c:552,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_localemodule.c:555,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_localemodule.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 560
    functionName: _locale__getdefaultlocale_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - GetLocaleInfoA
    - GetACP
    - strlen
    - PyOS_snprintf
    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: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    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:678,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:680,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_localemodule.c:683,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:685,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:690,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_localemodule.c:691,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:692,1
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:697,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - category
    - oldloc
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 699
    functionName: change_locale
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - _PyMem_Strdup
    - PyErr_NoMemory
    - PyErr_SetString
    - setlocale
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int change_locale(int category, char **oldloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/cpython/Modules/_localemodule.c:706,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - oldloc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 709
    functionName: restore_locale
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - setlocale
    linkageType: ''
    returnType: void
    signature: void restore_locale(char *oldloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:721,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_localemodule.c:723,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_localemodule.c:725,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_localemodule.c:728,1
    - Dst: strlen
      Src: /src/cpython/Modules/_localemodule.c:732,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:735,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_localemodule.c:736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - result
    - max_count
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 738
    functionName: decode_strings
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - PyErr_NoMemory
    - memcpy
    - strlen
    - PyMem_Malloc
    - PyMem_Free
    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:763,1
    - Dst: is_all_ascii
      Src: /src/cpython/Modules/_localemodule.c:777,1
    - Dst: change_locale
      Src: /src/cpython/Modules/_localemodule.c:778,1
    - Dst: decode_strings
      Src: /src/cpython/Modules/_localemodule.c:789,1
    - Dst: decode_strings
      Src: /src/cpython/Modules/_localemodule.c:795,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:801,1
    - Dst: restore_locale
      Src: /src/cpython/Modules/_localemodule.c:803,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:807,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - module
    - item
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 809
    functionName: _locale_nl_langinfo_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - nl_langinfo
    - PyErr_SetString
    - restore_locale
    - change_locale
    - decode_strings
    - is_all_ascii
    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:829,1
    - Dst: gettext
      Src: /src/cpython/Modules/_localemodule.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - in
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: _locale_gettext_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - gettext
    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:848,1
    - Dst: dgettext
      Src: /src/cpython/Modules/_localemodule.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - domain
    - in
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 849
    functionName: _locale_dgettext_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - dgettext
    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:867,1
    - Dst: dcgettext
      Src: /src/cpython/Modules/_localemodule.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - domain
    - msgid
    - category
    argTypes:
    - PyObject*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 868
    functionName: _locale_dcgettext_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - dcgettext
    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:883,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_localemodule.c:885,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - domain
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 889
    functionName: _locale_textdomain_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - PyErr_SetFromErrno
    - 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:909,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_localemodule.c:910,1
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:910,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_localemodule.c:915,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_localemodule.c:917,1
    - Dst: bindtextdomain
      Src: /src/cpython/Modules/_localemodule.c:922,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_localemodule.c:924,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_localemodule.c:925,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:928,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_localemodule.c:929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - module
    - domain
    - dirname_obj
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 931
    functionName: _locale_bindtextdomain_impl
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - PyErr_SetString
    - bindtextdomain
    - PyErr_SetFromErrno
    - PyBytes_AsString
    - strlen
    - PyUnicode_FSConverter
    - Py_XDECREF
    - get_locale_state
    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:950,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_localemodule.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - domain
    - codeset
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 955
    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:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 972
    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:1017,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1018,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1019,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1020,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1023,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1026,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1027,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/_localemodule.c:1028,1
    - Dst: get_locale_state
      Src: /src/cpython/Modules/_localemodule.c:1030,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_localemodule.c:1031,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_localemodule.c:1032,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_localemodule.c:1038,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_localemodule.c:1046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1004
    functionDepth: 2
    functionLinenumber: 1004
    functionLinenumberEnd: 1052
    functionName: _locale_exec
    functionSourceFile: /src/cpython/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_AddIntConstant
    - PyErr_Occurred
    - PyModule_AddObjectRef
    - get_locale_state
    - ADD_INT
    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: 1016
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1016
    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:1065,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_localemodule.c:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 2
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    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:1073,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_localemodule.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1070
    functionDepth: 2
    functionLinenumber: 1070
    functionLinenumberEnd: 1076
    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:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1078
    functionDepth: 3
    functionLinenumber: 1078
    functionLinenumberEnd: 1082
    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: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__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: assert
      Src: /src/cpython/Modules/_testsinglephase.c:247,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testsinglephase.c:256,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:257,1
    - Dst: PyModule_GetState_DuringGC
      Src: /src/cpython/Modules/_testsinglephase.c:257,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (def)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/cpython/Modules/_testsinglephase.c
    - condition: (state == PyModule_GetState_DuringGC(module))
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/cpython/Modules/_testsinglephase.c
    - condition: (state != NULL)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 261
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 261
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 15
    functionsReached:
    - PyModule_GetState_DuringGC
    - 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:267,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:268,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 270
    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:277,1
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/_testsinglephase.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - initialized
    argTypes:
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 290
    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:295,1
    - Dst: _set_initialized
      Src: /src/cpython/Modules/_testsinglephase.c:300,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:303,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_testsinglephase.c:306,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testsinglephase.c:311,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testsinglephase.c:316,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:324,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: 297
        line_start: 294
        source_file: /src/cpython/Modules/_testsinglephase.c
    - condition: (state->initialized > 0)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 326
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 326
    functionName: init_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyUnicode_FromString
    - PyLong_FromLong
    - assert
    - clear_state
    - _set_initialized
    linkageType: ''
    returnType: int
    signature: int init_state(module_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testsinglephase.c:332,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testsinglephase.c:335,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testsinglephase.c:338,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/_testsinglephase.c:342,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testsinglephase.c:343,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testsinglephase.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - state
    argTypes:
    - PyObject*
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 348
    functionName: init_module
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_AddObjectRef
    - PyFloat_FromDouble
    - PyTime_AsSecondsDouble
    - PyModule_Add
    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:359,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/_testsinglephase.c:363,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testsinglephase.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 365
    functionName: common_state_initialized
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyTime_AsSecondsDouble
    - PyFloat_FromDouble
    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:380,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:384,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testsinglephase.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: common_look_up_self
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyModule_GetDef
    - PyState_FindModule
    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:404,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testsinglephase.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: common_sum
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      common_sum(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:422,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testsinglephase.c:422,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testsinglephase.c:423,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: 421
        line_start: 421
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: basic_initialized_count
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyModule_GetDef
    - assert
    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:439,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testsinglephase.c:439,1
    - Dst: clear_global_state
      Src: /src/cpython/Modules/_testsinglephase.c:440,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: 438
        line_start: 438
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 442
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 442
    functionName: basic__clear_globals
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_GetDef
    - clear_global_state
    - 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:456,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 461
    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:508,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testsinglephase.c:513,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:518,1
    - Dst: init_state
      Src: /src/cpython/Modules/_testsinglephase.c:519,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:520,1
    - Dst: init_module
      Src: /src/cpython/Modules/_testsinglephase.c:524,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 533
    functionName: init__testsinglephase_basic
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyUnstable_Module_SetGIL
    - init_state
    - Py_CLEAR
    - clear_state
    - init_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      init__testsinglephase_basic(PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init__testsinglephase_basic
      Src: /src/cpython/Modules/_testsinglephase.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 539
    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:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 546
    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:555,1
    - Dst: init__testsinglephase_basic
      Src: /src/cpython/Modules/_testsinglephase.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 560
    functionName: PyInit__testsinglephase_basic_copy
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - init__testsinglephase_basic
    - PyDoc_STR
    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:602,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testsinglephase.c:607,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:610,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testsinglephase.c:610,1
    - Dst: init_state
      Src: /src/cpython/Modules/_testsinglephase.c:613,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:614,1
    - Dst: init_module
      Src: /src/cpython/Modules/_testsinglephase.c:618,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:619,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (get_module_state(module) == NULL)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 627
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 627
    functionName: PyInit__testsinglephase_with_reinit
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - get_module_state
    - PyUnstable_Module_SetGIL
    - init_state
    - Py_CLEAR
    - assert
    - clear_state
    - init_module
    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:667,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testsinglephase.c:672,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testsinglephase.c:675,1
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:676,1
    - Dst: init_state
      Src: /src/cpython/Modules/_testsinglephase.c:677,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:678,1
    - Dst: init_module
      Src: /src/cpython/Modules/_testsinglephase.c:682,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_testsinglephase.c:683,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testsinglephase.c:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 675
        line_start: 675
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 690
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 690
    functionName: PyInit__testsinglephase_with_state
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - get_module_state
    - PyUnstable_Module_SetGIL
    - init_state
    - Py_CLEAR
    - assert
    - clear_state
    - init_module
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_with_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testsinglephase.c:710,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testsinglephase.c:711,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:713,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:715,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: 709
        line_start: 709
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 716
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 716
    functionName: PyInit__testsinglephase_check_cache_first
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyState_FindModule
    - Py_NewRef
    - 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:729,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testsinglephase.c:730,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:732,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:734,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: 728
        line_start: 728
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 735
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 735
    functionName: PyInit__testsinglephase_with_reinit_check_cache_first
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyState_FindModule
    - Py_NewRef
    - 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:748,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testsinglephase.c:749,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:751,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_testsinglephase.c:753,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: 747
        line_start: 747
        source_file: /src/cpython/Modules/_testsinglephase.c
    constantsTouched: []
    func_position:
      end: 754
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 754
    functionName: PyInit__testsinglephase_with_state_check_cache_first
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyState_FindModule
    - Py_NewRef
    - 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: 769
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 769
    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:786,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testsinglephase.c:793,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testsinglephase.c:794,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_testsinglephase.c:798,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testsinglephase.c:803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 804
    functionName: PyInit__testsinglephase_circular
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyImport_ImportModule
    - PyModule_AddStringConstant
    - Py_XDECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_circular(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testsinglephase.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: PyInit__testsinglephase_raise_exception
    functionSourceFile: /src/cpython/Modules/_testsinglephase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testsinglephase_raise_exception(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:21,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:22,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:36,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
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:50,1
    - Dst: EXPORT_STATIC_TYPE
      Src: /src/cpython/Modules/_typesmodule.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 54
    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: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    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:
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Occurred
    - PyLong_AsUnsignedLong
    - Py_DECREF
    - PyNumber_Index
    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:
    - _PyLong_AsMode_t
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stat_S_IMODE(PyObject *self, PyObject *omode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_AsMode_t
      Src: /src/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:
    - _PyLong_AsMode_t
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stat_S_IFMT(PyObject *self, PyObject *omode)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/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_ISREG
    - S_ISDIR
    - S_ISBLK
    - S_ISLNK
    - S_ISSOCK
    - S_ISFIFO
    - S_ISCHR
    - S_ISPORT
    - S_ISWHT
    - S_ISDOOR
    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:
    - fileperm
    - _PyLong_AsMode_t
    - PyErr_Occurred
    - filetype
    - PyUnicode_FromStringAndSize
    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:
    - PyModule_AddIntConstant
    - ADD_INT_MACRO
    - Py_ARRAY_LENGTH
    - PyModule_Add
    - PyLong_FromUnsignedLong
    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:
    - PyList_SetItem
    - cfgetospeed
    - PyModule_GetState
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - tcgetattr
    - memset
    - PyList_New
    - ADD_LONG_ITEM
    - Py_DECREF
    - PyErr_SetFromErrno
    - cfgetispeed
    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:
    - PyModule_GetState
    - PyList_GetItem
    - cfsetispeed
    - PyBytes_Size
    - tcgetattr
    - PyErr_SetString
    - PyBytes_Check
    - cfsetospeed
    - PyLong_Check
    - PyList_Check
    - PyLong_AsLong
    - tcsetattr
    - PyErr_Format
    - PyBytes_AsString
    - PyList_Size
    - PyErr_Occurred
    - SET_FROM_LIST
    - PyErr_SetFromErrno
    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:
    - PyModule_GetState
    - tcsendbreak
    - PyErr_SetFromErrno
    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:328,1
    - Dst: tcdrain
      Src: /src/cpython/Modules/termios.c:332,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 340
    functionName: termios_tcdrain_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - tcdrain
    - PyErr_SetFromErrno
    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:360,1
    - Dst: tcflush
      Src: /src/cpython/Modules/termios.c:364,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - queue
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 372
    functionName: termios_tcflush_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - tcflush
    - PyModule_GetState
    - PyErr_SetFromErrno
    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:392,1
    - Dst: tcflow
      Src: /src/cpython/Modules/termios.c:396,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - action
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 404
    functionName: termios_tcflow_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - tcflow
    - PyErr_SetFromErrno
    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:422,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:427,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:431,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/termios.c:435,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/termios.c:439,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:439,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/termios.c:440,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:440,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/termios.c:442,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:447,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:452,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:455,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/termios.c:459,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/termios.c:463,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:463,1
    - Dst: PyTuple_SetItem
      Src: /src/cpython/Modules/termios.c:464,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/termios.c:464,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/termios.c:466,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 475
    functionName: termios_tcgetwinsize_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - ioctl
    - PyModule_GetState
    - PyLong_FromLong
    - PyTuple_SetItem
    - PyErr_SetString
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetFromErrno
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcgetwinsize_impl(PyObject *module, int fd)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/termios.c:495,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/termios.c:495,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:496,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/termios.c:503,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/termios.c:507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/termios.c:508,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:509,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/termios.c:512,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/termios.c:516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/termios.c:517,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/termios.c:518,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/termios.c:523,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:529,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:530,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:536,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:543,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:547,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:556,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:560,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:566,1
    - Dst: ioctl
      Src: /src/cpython/Modules/termios.c:572,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/termios.c:576,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/termios.c:581,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 3
    argNames:
    - module
    - fd
    - winsz
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 585
    functionName: termios_tcsetwinsize_impl
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - ioctl
    - PyModule_GetState
    - PyErr_SetString
    - PySequence_GetItem
    - PyLong_AsLong
    - PySequence_Size
    - PyErr_Occurred
    - Py_DECREF
    - 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:1338,1
    - Dst: get_termios_state
      Src: /src/cpython/Modules/termios.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1340
    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:1343,1
    - Dst: get_termios_state
      Src: /src/cpython/Modules/termios.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1345
    functionName: termiosmodule_clear
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_termios_state
    linkageType: ''
    returnType: int
    signature: int termiosmodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: termiosmodule_clear
      Src: /src/cpython/Modules/termios.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1347
    functionDepth: 3
    functionLinenumber: 1347
    functionLinenumberEnd: 1349
    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:1355,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/termios.c:1356,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/termios.c:1357,1
    - Dst: strncmp
      Src: /src/cpython/Modules/termios.c:1362,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/termios.c:1367,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/termios.c:1368,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/termios.c:1373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1351
    functionDepth: 2
    functionLinenumber: 1351
    functionLinenumberEnd: 1381
    functionName: termios_exec
    functionSourceFile: /src/cpython/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_AddIntConstant
    - strncmp
    - get_termios_state
    - PyModule_Add
    - PyModule_AddObjectRef
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: int
    signature: int termios_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/termios.c:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1405
    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: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    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: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    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: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    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: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    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: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    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:
    - PyMem_Calloc
    - Py_MAX
    - Py_MIN
    - 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:160,1
    - Dst: resize_ringbuf
      Src: /src/cpython/Modules/_queuemodule.c:164,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_queuemodule.c:165,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_queuemodule.c:169,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: 159
        line_start: 159
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 173
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 173
    functionName: RingBuf_Put
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - resize_ringbuf
    - PyErr_NoMemory
    - 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: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    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: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    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: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    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:210,1
    - Dst: RingBuf_Fini
      Src: /src/cpython/Modules/_queuemodule.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 213
    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:218,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_queuemodule.c:219,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_queuemodule.c:221,1
    - Dst: simplequeue_clear
      Src: /src/cpython/Modules/_queuemodule.c:222,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_queuemodule.c:223,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_queuemodule.c:224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_queuemodule.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: simplequeue_dealloc
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - simplequeue_clear
    - simplequeueobject_CAST
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void simplequeue_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simplequeueobject_CAST
      Src: /src/cpython/Modules/_queuemodule.c:231,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_queuemodule.c:234,1
    - Dst: RingBuf_At
      Src: /src/cpython/Modules/_queuemodule.c:234,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_queuemodule.c:236,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_queuemodule.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: simplequeue_traverse
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - simplequeueobject_CAST
    - RingBuf_At
    - Py_VISIT
    - Py_TYPE
    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:253,1
    - Dst: RingBuf_Init
      Src: /src/cpython/Modules/_queuemodule.c:256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_queuemodule.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: simplequeue_new_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - RingBuf_Init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      simplequeue_new_impl(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_queuemodule.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - park_arg
    - has_more_waiters
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: maybe_handoff_item
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void maybe_handoff_item(void *arg, void *park_arg, int has_more_waiters)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyParkingLot_Unpark
      Src: /src/cpython/Modules/_queuemodule.c:312,1
    - Dst: RingBuf_Put
      Src: /src/cpython/Modules/_queuemodule.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - item
    - block
    - timeout
    argTypes:
    - simplequeueobject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 322
    functionName: _queue_SimpleQueue_put_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - 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:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - simplequeueobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 341
    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:346,1
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:347,1
    - Dst: simplequeue_get_state
      Src: /src/cpython/Modules/_queuemodule.c:348,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_queuemodule.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: empty_error
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    - PyType_GetModule
    - simplequeue_get_state
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      empty_error(PyTypeObject *cls)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_queuemodule.c:384,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/_queuemodule.c:387,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_queuemodule.c:392,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_queuemodule.c:396,1
    - Dst: RingBuf_IsEmpty
      Src: /src/cpython/Modules/_queuemodule.c:400,1
    - Dst: RingBuf_Get
      Src: /src/cpython/Modules/_queuemodule.c:401,1
    - Dst: empty_error
      Src: /src/cpython/Modules/_queuemodule.c:405,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_queuemodule.c:410,1
    - Dst: empty_error
      Src: /src/cpython/Modules/_queuemodule.c:412,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Modules/_queuemodule.c:420,1
    - Dst: assert
      Src: /src/cpython/Modules/_queuemodule.c:425,1
    - Dst: empty_error
      Src: /src/cpython/Modules/_queuemodule.c:429,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Modules/_queuemodule.c:433,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_queuemodule.c:446,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: 424
        line_start: 424
        source_file: /src/cpython/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 450
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 450
    functionName: _queue_SimpleQueue_get_impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - RingBuf_IsEmpty
    - _PyDeadline_Init
    - assert
    - _PyTime_FromSecondsObject
    - _PyDeadline_Get
    - PyErr_SetString
    - Py_UNREACHABLE
    - Py_IsNone
    - Py_MakePendingCalls
    - RingBuf_Get
    - empty_error
    - _PyParkingLot_Park
    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:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - simplequeueobject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 471
    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:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 485
    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:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 499
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: _queue_SimpleQueue___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _queue_SimpleQueue___sizeof___impl(simplequeueobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simplequeue_get_state
      Src: /src/cpython/Modules/_queuemodule.c:520,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_queuemodule.c:521,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_queuemodule.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: queue_traverse
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - simplequeue_get_state
    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:529,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_queuemodule.c:530,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_queuemodule.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: queue_clear
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 2
    functionsReached:
    - Py_CLEAR
    - simplequeue_get_state
    linkageType: ''
    returnType: int
    signature: int queue_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_clear
      Src: /src/cpython/Modules/_queuemodule.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 539
    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:591,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/cpython/Modules/_queuemodule.c:593,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_queuemodule.c:600,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_queuemodule.c:604,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_queuemodule.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 614
    functionName: queuemodule_exec
    functionSourceFile: /src/cpython/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NewExceptionWithDoc
    - simplequeue_get_state
    - PyType_FromModuleAndSpec
    - PyModule_AddObjectRef
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int queuemodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_queuemodule.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 641
    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:29,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    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:39,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:40,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_bz2module.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: find_module_state_by_def
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyType_GetModuleByDef
    - assert
    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:52,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: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    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:66,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: 70
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 70
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    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:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    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:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - _BlocksOutputBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    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:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    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: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    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:142,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:147,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_bz2module.c:152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:156,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:159,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:162,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:167,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_bz2module.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - bzerror
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 176
    functionName: catch_bz2_error
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int catch_bz2_error(int bzerror)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_bz2module.c:187,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_bz2module.c:199,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/_bz2module.c:208,1
    - Dst: BZ2_bzCompress
      Src: /src/cpython/Modules/_bz2module.c:214,1
    - Dst: catch_bz2_error
      Src: /src/cpython/Modules/_bz2module.c:217,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/_bz2module.c:225,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/_bz2module.c:231,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: 233
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 233
    functionName: compress
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - catch_bz2_error
    - OutputBuffer_InitAndGrow
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - Py_MIN
    - OutputBuffer_Finish
    - BZ2_bzCompress
    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: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_bz2module.c:266,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:268,1
    - Dst: compress
      Src: /src/cpython/Modules/_bz2module.c:270,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_bz2module.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - BZ2Compressor*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: _bz2_BZ2Compressor_compress_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyErr_SetString
    - PyMutex_Unlock
    - compress
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _bz2_BZ2Compressor_flush_impl(BZ2Compressor *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_bz2module.c:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - items
    - size
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 312
    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:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 318
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:341,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:346,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_bz2module.c:347,1
    - Dst: BZ2_bzCompressInit
      Src: /src/cpython/Modules/_bz2module.c:356,1
    - Dst: catch_bz2_error
      Src: /src/cpython/Modules/_bz2module.c:357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - type
    - compresslevel
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 365
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 365
    functionName: _bz2_BZ2Compressor_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - BZ2_bzCompressInit
    - catch_bz2_error
    - PyErr_SetString
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_impl(PyTypeObject *type, int compresslevel)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BZ2Compressor_CAST
      Src: /src/cpython/Modules/_bz2module.c:370,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:371,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_bz2module.c:371,1
    - Dst: BZ2_bzCompressEnd
      Src: /src/cpython/Modules/_bz2module.c:372,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bz2module.c:373,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_bz2module.c:374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->mutex))
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: BZ2Compressor_dealloc
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - BZ2_bzCompressEnd
    - PyTypeObject*::tp_free
    - _BZ2Compressor_CAST
    - assert
    - Py_DECREF
    - Py_TYPE
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void BZ2Compressor_dealloc(PyObject *op)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_bz2module.c:419,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_bz2module.c:429,1
    - Dst: BZ2_bzDecompress
      Src: /src/cpython/Modules/_bz2module.c:433,1
    - Dst: catch_bz2_error
      Src: /src/cpython/Modules/_bz2module.c:438,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_bz2module.c:441,1
    - Dst: OutputBuffer_GetDataSize
      Src: /src/cpython/Modules/_bz2module.c:446,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/_bz2module.c:449,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/_bz2module.c:455,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/_bz2module.c:461,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - d
    - max_length
    argTypes:
    - BZ2Decompressor*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 463
    functionName: decompress_buf
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - catch_bz2_error
    - OutputBuffer_InitAndGrow
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - Py_MIN
    - OutputBuffer_Finish
    - BZ2_bzDecompress
    - OutputBuffer_GetDataSize
    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:493,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_bz2module.c:495,1
    - Dst: memmove
      Src: /src/cpython/Modules/_bz2module.c:504,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_bz2module.c:508,1
    - Dst: decompress_buf
      Src: /src/cpython/Modules/_bz2module.c:518,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_bz2module.c:525,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_bz2module.c:527,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_bz2module.c:532,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_bz2module.c:537,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_bz2module.c:540,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_bz2module.c:551,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_bz2module.c:557,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_bz2module.c:559,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_bz2module.c:566,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_bz2module.c:575,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 4
    argNames:
    - d
    - data
    - len
    - max_length
    argTypes:
    - BZ2Decompressor*
    - char*
    - size_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 577
    functionName: decompress
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - decompress_buf
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - PyBytes_FromStringAndSize
    - memmove
    - PyMem_Realloc
    - Py_XSETREF
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - PyErr_SetNone
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress(BZ2Decompressor *d, char *data, size_t len, Py_ssize_t max_length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_bz2module.c:609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_bz2module.c:611,1
    - Dst: decompress
      Src: /src/cpython/Modules/_bz2module.c:613,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_bz2module.c:614,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: 616
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 616
    functionName: _bz2_BZ2Decompressor_decompress_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyErr_SetString
    - PyMutex_Unlock
    - decompress
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self,
      Py_buffer *data,\n                                     Py_ssize_t max_length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:634,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_bz2module.c:635,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_bz2module.c:645,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/cpython/Modules/_bz2module.c:647,1
    - Dst: catch_bz2_error
      Src: /src/cpython/Modules/_bz2module.c:648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 633
        line_start: 633
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 656
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 656
    functionName: _bz2_BZ2Decompressor_impl
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - BZ2_bzDecompressInit
    - catch_bz2_error
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Decompressor_impl(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _BZ2Decompressor_CAST
      Src: /src/cpython/Modules/_bz2module.c:661,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:662,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_bz2module.c:662,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_bz2module.c:665,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/cpython/Modules/_bz2module.c:667,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_bz2module.c:668,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bz2module.c:670,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_bz2module.c:671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bz2module.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->mutex))
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 673
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 673
    functionName: BZ2Decompressor_dealloc
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - _BZ2Decompressor_CAST
    - assert
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - PyMem_Free
    - BZ2_bzDecompressEnd
    - Py_DECREF
    - Py_TYPE
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void BZ2Decompressor_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _BZ2Decompressor_CAST
      Src: /src/cpython/Modules/_bz2module.c:692,1
    - Dst: FT_ATOMIC_LOAD_CHAR_RELAXED
      Src: /src/cpython/Modules/_bz2module.c:693,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_bz2module.c:694,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_bz2module.c:696,1
    - Dst: assert
      Src: /src/cpython/Modules/_bz2module.c:697,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_bz2module.c:698,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_bz2module.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (self->unused_data != NULL)
      pos:
        line_end: 696
        line_start: 696
        source_file: /src/cpython/Modules/_bz2module.c
    constantsTouched: []
    func_position:
      end: 701
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 701
    functionName: BZ2Decompressor_unused_data_get
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyMutex_Unlock
    - _BZ2Decompressor_CAST
    - FT_ATOMIC_LOAD_CHAR_RELAXED
    - assert
    - PyMutex_Lock
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BZ2Decompressor_unused_data_get(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_bz2module.c:743,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_bz2module.c:744,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_bz2module.c:749,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_bz2module.c:753,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_bz2module.c:758,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 763
    functionName: _bz2_exec
    functionSourceFile: /src/cpython/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyType_FromModuleAndSpec
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int _bz2_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_bz2module.c:768,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_bz2module.c:769,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_bz2module.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 772
    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:777,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_bz2module.c:778,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_bz2module.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 781
    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:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 787
    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: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__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:
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    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:
    - PyErr_SetString
    - get_functools_state_by_type
    - PyType_GenericNew
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      placeholder_new(PyTypeObject *type, 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: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    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:152,1
    - Dst: get_functools_state
      Src: /src/cpython/Modules/_functoolsmodule.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: get_functools_state_by_type
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 1
    functionsReached:
    - get_functools_state
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: _functools_state
    signature: '_functools_state *

      get_functools_state_by_type(PyTypeObject *type)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:169,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:173,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:174,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:175,1
    - Dst: get_functools_state_by_type
      Src: /src/cpython/Modules/_functoolsmodule.c:180,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:187,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:188,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:197,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:199,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_functoolsmodule.c:208,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:220,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:220,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:221,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:221,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_functoolsmodule.c:226,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:230,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_functoolsmodule.c:233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:235,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:242,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:248,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:257,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:262,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:264,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:270,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:273,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:278,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Modules/_functoolsmodule.c:285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:289,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:292,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:292,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:295,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_functoolsmodule.c:297,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_functoolsmodule.c:299,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:300,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:303,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:307,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Modules/_functoolsmodule.c:309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:316,1
    - Dst: partial_setvectorcall
      Src: /src/cpython/Modules/_functoolsmodule.c:320,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 120
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(pto_kw))
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyTuple_Check(pto_args))
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyTuple_Check(pto->args))
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 322
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 322
    functionName: partial_new
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_Check
    - assert
    - partial_setvectorcall
    - get_functools_state_by_type
    - PyTuple_GET_SIZE
    - PySequence_Concat
    - PyCallable_Check
    - PyDict_GET_SIZE
    - _PyObject_IsUniquelyReferenced
    - PyObject_TypeCheck
    - Py_INCREF
    - PyErr_SetString
    - PyDict_Next
    - PyDict_Copy
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyTuple_New
    - PyDict_New
    - PyDict_Check
    - PyTuple_GetSlice
    - PyDict_Merge
    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:327,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:328,1
    - Dst: Py_CLEAR
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: partial_clear
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - partialobject_CAST
    linkageType: ''
    returnType: int
    signature: int partial_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:338,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:339,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:339,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:340,1
    - Dst: Py_VISIT
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: partial_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - partialobject_CAST
    - Py_TYPE
    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:350,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_functoolsmodule.c:352,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_functoolsmodule.c:353,1
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:353,1
    - Dst: partial_clear
      Src: /src/cpython/Modules/_functoolsmodule.c:354,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 357
    functionName: partial_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - partialobject_CAST
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - partial_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void partial_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:363,1
    - Dst: PyMethod_New
      Src: /src/cpython/Modules/_functoolsmodule.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 366
    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: 25
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:372,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_functoolsmodule.c:373,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Modules/_functoolsmodule.c:374,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_functoolsmodule.c:379,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/_functoolsmodule.c:385,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:386,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:387,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:388,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Modules/_functoolsmodule.c:395,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Modules/_functoolsmodule.c:405,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_functoolsmodule.c:432,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_functoolsmodule.c:436,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_functoolsmodule.c:438,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_functoolsmodule.c:447,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:458,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_functoolsmodule.c:460,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:466,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_functoolsmodule.c:471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:472,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:486,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:488,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:492,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:493,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:500,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:501,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:502,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:503,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:503,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:507,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:508,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:509,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_functoolsmodule.c:515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:517,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_functoolsmodule.c:519,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_functoolsmodule.c:521,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:539,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_functoolsmodule.c:542,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_functoolsmodule.c:546,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_functoolsmodule.c:547,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Modules/_functoolsmodule.c:550,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_functoolsmodule.c:553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:556,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_functoolsmodule.c:562,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 121
    argCount: 4
    argNames:
    - self
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (j == pto_phcount)
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (i < pto_nkwds)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (i == pto_nkwds)
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 565
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 565
    functionName: partial_vectorcall
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyObject_VectorcallTstate
    - Py_END_CRITICAL_SECTION
    - _PyThreadState_GET
    - memcpy
    - assert
    - PyTuple_GET_SIZE
    - PyVectorcall_NARGS
    - PyErr_NoMemory
    - PyDict_Contains
    - Py_XDECREF
    - PyMem_Malloc
    - PyMem_Free
    - PyDict_GET_SIZE
    - Py_ARRAY_LENGTH
    - PyMem_Realloc
    - PyDict_Next
    - PyDict_Copy
    - PyTuple_SET_ITEM
    - _PyTuple_ITEMS
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    - Py_BEGIN_CRITICAL_SECTION
    - partialobject_CAST
    - PyDict_SetItem
    - PyErr_Format
    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:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pto
    argTypes:
    - partialobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 581
    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:588,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:589,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:589,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:590,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:590,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:591,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:591,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:593,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_functoolsmodule.c:596,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:604,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:606,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:612,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Modules/_functoolsmodule.c:618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:619,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:628,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:630,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:631,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:633,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:640,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:642,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:645,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:646,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:648,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:650,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:651,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:652,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Modules/_functoolsmodule.c:658,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:660,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:666,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:667,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: 590
        line_start: 590
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (tot_nargs >= 0)
      pos:
        line_end: 629
        line_start: 629
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (j == pto_phcount)
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyCallable_Check(pto->fn))
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyTuple_Check(pto->args))
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 669
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 669
    functionName: partial_call
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyObject_Call
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    - Py_XNewRef
    - PySequence_Concat
    - PyCallable_Check
    - Py_XDECREF
    - PyDict_GET_SIZE
    - Py_INCREF
    - PyDict_Copy
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    - partialobject_CAST
    - PyDict_Check
    - PyErr_Format
    - PyDict_Merge
    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: 677
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 677
    functionName: 'OFF'
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:701,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_functoolsmodule.c:710,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_functoolsmodule.c:715,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:718,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:719,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:720,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:721,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:721,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:722,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:722,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_functoolsmodule.c:724,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:729,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:731,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_functoolsmodule.c:731,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:732,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:739,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:740,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:742,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:743,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_functoolsmodule.c:743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:745,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:751,1
    - Dst: PyType_GetModuleName
      Src: /src/cpython/Modules/_functoolsmodule.c:756,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:756,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Modules/_functoolsmodule.c:761,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:761,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_functoolsmodule.c:766,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:768,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:769,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:773,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_functoolsmodule.c:774,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(kw))
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 776
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 776
    functionName: partial_repr
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleName
    - PyTuple_GET_ITEM
    - Py_END_CRITICAL_SECTION
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyUnicode_FromString
    - Py_XDECREF
    - Py_INCREF
    - PyType_GetQualName
    - Py_ReprEnter
    - PyDict_Next
    - Py_DECREF
    - Py_NewRef
    - Py_GetConstant
    - Py_ReprLeave
    - Py_BEGIN_CRITICAL_SECTION
    - partialobject_CAST
    - Py_SETREF
    - PyUnicode_FromFormat
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: partialobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:788,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_functoolsmodule.c:789,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 792
    functionName: partial_reduce
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - partialobject_CAST
    - Py_TYPE
    - Py_BuildValue
    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:797,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:800,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:801,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_functoolsmodule.c:804,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:805,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:806,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:807,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:808,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:810,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:814,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:815,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:816,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:823,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_functoolsmodule.c:828,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_functoolsmodule.c:829,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:831,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_functoolsmodule.c:836,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_functoolsmodule.c:837,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_functoolsmodule.c:838,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:840,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:842,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:849,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:850,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:850,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:851,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:852,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:854,1
    - Dst: partial_setvectorcall
      Src: /src/cpython/Modules/_functoolsmodule.c:855,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 857
    functionName: partial_setstate
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyTuple_Check
    - partial_setvectorcall
    - PyTuple_GET_SIZE
    - PyCallable_Check
    - PyArg_ParseTuple
    - PyTuple_CheckExact
    - Py_INCREF
    - PyErr_SetString
    - PyDict_Copy
    - Py_DECREF
    - PyDict_CheckExact
    - Py_NewRef
    - PyDict_New
    - Py_XSETREF
    - partialobject_CAST
    - Py_SETREF
    - PyDict_Check
    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: 904
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 904
    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:908,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:909,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 912
    functionName: keyobject_clear
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - keyobject_CAST
    linkageType: ''
    returnType: int
    signature: int keyobject_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:917,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_functoolsmodule.c:918,1
    - Dst: keyobject_clear
      Src: /src/cpython/Modules/_functoolsmodule.c:919,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ko
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 922
    functionName: keyobject_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - keyobject_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void keyobject_dealloc(PyObject *ko)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:927,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:928,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:928,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:929,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 932
    functionName: keyobject_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - keyobject_CAST
    - Py_TYPE
    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:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 945
    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:984,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_functoolsmodule.c:986,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_functoolsmodule.c:989,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:989,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:993,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:994,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_functoolsmodule.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 997
    functionName: keyobject_call
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - keyobject_CAST
    - PyArg_ParseTupleAndKeywords
    - Py_NewRef
    - Py_TYPE
    - PyObject_GC_Track
    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:1002,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1002,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_functoolsmodule.c:1003,1
    - Dst: keyobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:1007,1
    - Dst: keyobject_CAST
      Src: /src/cpython/Modules/_functoolsmodule.c:1008,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1011,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_functoolsmodule.c:1015,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_functoolsmodule.c:1023,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Modules/_functoolsmodule.c:1028,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_functoolsmodule.c:1028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (compare != NULL)
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1031
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1031
    functionName: keyobject_richcompare
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - keyobject_CAST
    - Py_IS_TYPE
    - PyObject_Vectorcall
    - PyObject_RichCompare
    - PyErr_Format
    - assert
    - _PyLong_GetZero
    - Py_DECREF
    - Py_TYPE
    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:1049,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1050,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1053,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_functoolsmodule.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - mycmp
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1057
    functionName: _functools_cmp_to_key_impl
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - get_functools_state
    - Py_NewRef
    - PyObject_GC_Track
    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:1088,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_functoolsmodule.c:1090,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_functoolsmodule.c:1092,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:1093,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1095,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1099,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_functoolsmodule.c:1105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1106,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1107,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:1111,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_functoolsmodule.c:1113,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1122,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_functoolsmodule.c:1122,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1123,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/_functoolsmodule.c:1123,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1124,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/_functoolsmodule.c:1124,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:1125,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/_functoolsmodule.c:1130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1134,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:1137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1140,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1144,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1146,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: 1121
        line_start: 1121
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1148
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1148
    functionName: _functools_reduce_impl
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - assert
    - Py_XSETREF
    - PyErr_SetString
    - PyObject_GetIter
    - _PyObject_IsUniquelyReferenced
    - Py_REFCNT
    - PyObject_Call
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - PyErr_Occurred
    - Py_DECREF
    - _PyTuple_ITEMS
    - PyIter_Next
    - PyTuple_New
    - _PyTuple_Recycle
    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: 1182
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1182
    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:1186,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1187,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1188,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1189,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:1190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1192
    functionName: lru_list_elem_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_list_elem_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - Py_DECREF
    - 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: 1228
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1228
    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:1236,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1240,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1241,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_functoolsmodule.c:1242,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_functoolsmodule.c:1242,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1245,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1248,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1251,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1255,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1257,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1262,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1263,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1264,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1264,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1267,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1267,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:1268,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1269,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1269,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1270,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1270,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1272,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1272,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1275,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1276,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1276,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1277,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1277,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_functoolsmodule.c:1280,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1281,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_functoolsmodule.c:1282,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1282,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1286,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: 1271
        line_start: 1271
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (key_pos == key_size)
      pos:
        line_end: 1285
        line_start: 1285
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1288
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1288
    functionName: lru_cache_make_key
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyUnicode_CheckExact
    - PyDict_Next
    - PyLong_CheckExact
    - PyTuple_SET_ITEM
    - assert
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - Py_TYPE
    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:1295,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1300
    functionName: uncached_lru_cache_wrapper
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - FT_ATOMIC_ADD_SSIZE
    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:1307,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_functoolsmodule.c:1310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1312,1
    - Dst: _PyDict_GetItemRef_KnownHash
      Src: /src/cpython/Modules/_functoolsmodule.c:1315,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1322,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1325,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:1326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1328,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/cpython/Modules/_functoolsmodule.c:1331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1336,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1302
    functionDepth: 2
    functionLinenumber: 1302
    functionLinenumberEnd: 1338
    functionName: infinite_lru_cache_wrapper
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItem_KnownHash
    - PyObject_Hash
    - _PyDict_GetItemRef_KnownHash
    - PyObject_Call
    - FT_ATOMIC_ADD_SSIZE
    - lru_cache_make_key
    - Py_DECREF
    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: 1347
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1347
    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: 1357
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1357
    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: 1367
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1367
    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:1404,1
    - Dst: lru_cache_make_key
      Src: /src/cpython/Modules/_functoolsmodule.c:1407,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_functoolsmodule.c:1410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1412,1
    - Dst: _PyDict_GetItemRef_KnownHash_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1415,1
    - Dst: lru_cache_extract_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1418,1
    - Dst: lru_cache_append_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1419,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1421,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1428,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1431,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: 1433
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1433
    functionName: bounded_lru_cache_get_lock_held
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - PyObject_Hash
    - FT_ATOMIC_ADD_SSIZE
    - lru_cache_make_key
    - lru_cache_extract_link
    - Py_DECREF
    - _PyDict_GetItemRef_KnownHash_LockHeld
    - lru_cache_append_link
    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:1439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1445,1
    - Dst: _PyDict_GetItemRef_KnownHash_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1464,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1471,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1472,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1480,1
    - Dst: _PyDict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1494,1
    - Dst: lru_cache_append_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1497,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1498,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1515,1
    - Dst: lru_cache_extract_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1517,1
    - Dst: _PyDict_Pop_KnownHash
      Src: /src/cpython/Modules/_functoolsmodule.c:1522,1
    - Dst: lru_cache_prepend_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1532,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1542,1
    - Dst: assert
      Src: /src/cpython/Modules/_functoolsmodule.c:1550,1
    - Dst: _PyDict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1570,1
    - Dst: lru_cache_append_link
      Src: /src/cpython/Modules/_functoolsmodule.c:1573,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1577,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->root.next != &self->root)
      pos:
        line_end: 1514
        line_start: 1514
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (self->maxsize > 0)
      pos:
        line_end: 1470
        line_start: 1470
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (popresult != NULL)
      pos:
        line_end: 1549
        line_start: 1549
        source_file: /src/cpython/Modules/_functoolsmodule.c
    - condition: (popresult == NULL)
      pos:
        line_end: 1539
        line_start: 1539
        source_file: /src/cpython/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1579
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1579
    functionName: bounded_lru_cache_update_lock_held
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_Pop_KnownHash
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - lru_cache_prepend_link
    - _PyDict_SetItem_KnownHash_LockHeld
    - Py_NewRef
    - lru_cache_extract_link
    - assert
    - Py_DECREF
    - PyDict_GET_SIZE
    - _PyDict_GetItemRef_KnownHash_LockHeld
    - PyObject_New
    - lru_cache_append_link
    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:1588,1
    - Dst: bounded_lru_cache_get_lock_held
      Src: /src/cpython/Modules/_functoolsmodule.c:1589,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:1590,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_functoolsmodule.c:1599,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:1601,1
    - Dst: bounded_lru_cache_update_lock_held
      Src: /src/cpython/Modules/_functoolsmodule.c:1606,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_functoolsmodule.c:1607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1581
    functionDepth: 3
    functionLinenumber: 1581
    functionLinenumberEnd: 1610
    functionName: bounded_lru_cache_wrapper
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_Call
    - bounded_lru_cache_get_lock_held
    - 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:1624,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:1630,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:1631,1
    - Dst: get_functools_state_by_type
      Src: /src/cpython/Modules/_functoolsmodule.c:1636,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_functoolsmodule.c:1646,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_functoolsmodule.c:1647,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_functoolsmodule.c:1648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_functoolsmodule.c:1658,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1662,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_functoolsmodule.c:1665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1667,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1676,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1679,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1680,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1681,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1612
    functionDepth: 3
    functionLinenumber: 1612
    functionLinenumberEnd: 1685
    functionName: lru_cache_new
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - get_functools_state_by_type
    - PyTypeObject*::tp_alloc
    - PyIndex_Check
    - Py_NewRef
    - PyDict_New
    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: 1697
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1697
    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:1704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - lru_list_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1699
    functionDepth: 1
    functionLinenumber: 1699
    functionLinenumberEnd: 1706
    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:1711,1
    - Dst: lru_cache_unlink_list
      Src: /src/cpython/Modules/_functoolsmodule.c:1712,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1713,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1714,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1715,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1716,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1717,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:1718,1
    - Dst: lru_cache_clear_list
      Src: /src/cpython/Modules/_functoolsmodule.c:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1708
    functionDepth: 2
    functionLinenumber: 1708
    functionLinenumberEnd: 1721
    functionName: lru_cache_tp_clear
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_clear_list
    - Py_CLEAR
    - lru_cache_unlink_list
    - lru_cache_object_CAST
    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:1726,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1727,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_functoolsmodule.c:1729,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_functoolsmodule.c:1730,1
    - Dst: lru_cache_tp_clear
      Src: /src/cpython/Modules/_functoolsmodule.c:1732,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_functoolsmodule.c:1733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1723
    functionDepth: 3
    functionLinenumber: 1723
    functionLinenumberEnd: 1735
    functionName: lru_cache_dealloc
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_object_CAST
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:1740,1
    - Dst: lru_cache_object*::wrapper
      Src: /src/cpython/Modules/_functoolsmodule.c:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1737
    functionDepth: 1
    functionLinenumber: 1737
    functionLinenumberEnd: 1744
    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:1750,1
    - Dst: PyMethod_New
      Src: /src/cpython/Modules/_functoolsmodule.c:1752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1753
    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:1768,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1769,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1770,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1772,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_functoolsmodule.c:1774,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1775,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1776,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_functoolsmodule.c:1778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1779
    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:1793,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1794,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_functoolsmodule.c:1795,1
    - Dst: _PyDict_Clear_LockHeld
      Src: /src/cpython/Modules/_functoolsmodule.c:1799,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Modules/_functoolsmodule.c:1801,1
    - Dst: lru_cache_clear_list
      Src: /src/cpython/Modules/_functoolsmodule.c:1803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1788
    functionDepth: 2
    functionLinenumber: 1788
    functionLinenumberEnd: 1805
    functionName: _functools__lru_cache_wrapper_cache_clear_impl
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    - lru_cache_unlink_list
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _PyDict_Clear_LockHeld
    - lru_cache_clear_list
    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:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1807
    functionDepth: 1
    functionLinenumber: 1807
    functionLinenumberEnd: 1811
    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:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1813
    functionDepth: 0
    functionLinenumber: 1813
    functionLinenumberEnd: 1817
    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:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1823
    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:1828,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1829,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1829,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1833,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1834,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1835,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_functoolsmodule.c:1835,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1838,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1839,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1840,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1841,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1842,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1825
    functionDepth: 1
    functionLinenumber: 1825
    functionLinenumberEnd: 1845
    functionName: lru_cache_tp_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - lru_cache_object_CAST
    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:1923,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_functoolsmodule.c:1924,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1929,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_functoolsmodule.c:1934,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_functoolsmodule.c:1938,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_functoolsmodule.c:1942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1946,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1948,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_functoolsmodule.c:1953,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1957,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_functoolsmodule.c:1962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_functoolsmodule.c:1966,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1968,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_functoolsmodule.c:1976,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1920
    functionDepth: 2
    functionLinenumber: 1920
    functionLinenumberEnd: 1985
    functionName: _functools_exec
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_functools_state
    - PyType_FromModuleAndSpec
    - PyObject_CallNoArgs
    - Py_DECREF
    - PyModule_AddObjectRef
    - _PyObject_CallNoArgs
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int _functools_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_functools_state
      Src: /src/cpython/Modules/_functoolsmodule.c:1990,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1991,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1992,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1993,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1994,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1995,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_functoolsmodule.c:1996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1987
    functionDepth: 2
    functionLinenumber: 1987
    functionLinenumberEnd: 1998
    functionName: _functools_traverse
    functionSourceFile: /src/cpython/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_functools_state
    - Py_VISIT
    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:2003,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:2004,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:2005,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:2006,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:2007,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:2008,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_functoolsmodule.c:2009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2000
    functionDepth: 2
    functionLinenumber: 2000
    functionLinenumberEnd: 2011
    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:2016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2013
    functionDepth: 3
    functionLinenumber: 2013
    functionLinenumberEnd: 2017
    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: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__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:46,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: 50
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 50
    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:60,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: 64
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 64
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    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:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - _BlocksOutputBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    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:113,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/zlibmodule.c:118,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: 125
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: OutputBuffer_WindowInitWithSize
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - _BlocksOutputBuffer_InitWithSize
    - Py_MIN
    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:140,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/zlibmodule.c:147,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:157,1
    - Dst: _BlocksOutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:160,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: 156
        line_start: 156
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 164
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 164
    functionName: OutputBuffer_WindowGrow
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - _BlocksOutputBuffer_Grow
    - Py_MIN
    - 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:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - window
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - _Uint32Window*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - window
    argTypes:
    - _BlocksOutputBuffer*
    - _Uint32Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    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:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/zlibmodule.c:209,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    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: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    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:252,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/zlibmodule.c:254,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: 255
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 255
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:268,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:269,1
    - Dst: _compobject_CAST
      Src: /src/cpython/Modules/zlibmodule.c:270,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/zlibmodule.c:270,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/zlibmodule.c:276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:278,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/zlibmodule.c:281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/cpython/Modules/zlibmodule.c
    - condition: (type->tp_alloc != NULL)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 288
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 288
    functionName: newcompobject
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - _compobject_CAST
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: compobject
    signature: 'compobject *

      newcompobject(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/zlibmodule.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - items
    - size
    argTypes:
    - voidpf
    - uInt
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 298
    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:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - voidpf
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 304
    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:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zst
    - remains
    argTypes:
    - z_stream*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 311
    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:336,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:341,1
    - Dst: deflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:349,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:356,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:360,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:363,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:364,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:369,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:374,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:375,1
    - Dst: deflate
      Src: /src/cpython/Modules/zlibmodule.c:381,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:385,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:386,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:391,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:394,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:396,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:398,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:405,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:407,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: 393
        line_start: 393
        source_file: /src/cpython/Modules/zlibmodule.c
    - condition: (zst.avail_in == 0)
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 409
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 409
    functionName: zlib_compress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - get_zlib_state
    - arrange_input_buffer
    - OutputBuffer_InitAndGrow
    - PyErr_SetString
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - deflate
    - zlib_error
    - deflateInit2
    - OutputBuffer_Finish
    - assert
    - deflateEnd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_compress_impl(PyObject *module, Py_buffer *data, int level, int wbits)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:438,1
    - Dst: OutputBuffer_WindowInitWithSize
      Src: /src/cpython/Modules/zlibmodule.c:444,1
    - Dst: inflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:457,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:463,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:467,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:468,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:473,1
    - Dst: OutputBuffer_WindowGrow
      Src: /src/cpython/Modules/zlibmodule.c:478,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:480,1
    - Dst: inflate
      Src: /src/cpython/Modules/zlibmodule.c:486,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:495,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:496,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:500,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:501,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:511,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:512,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:516,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:518,1
    - Dst: OutputBuffer_WindowFinish
      Src: /src/cpython/Modules/zlibmodule.c:522,1
    - Dst: OutputBuffer_WindowOnError
      Src: /src/cpython/Modules/zlibmodule.c:528,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 4
    argNames:
    - module
    - data
    - wbits
    - bufsize
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 530
    functionName: zlib_decompress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - get_zlib_state
    - OutputBuffer_WindowInitWithSize
    - OutputBuffer_WindowGrow
    - inflateEnd
    - inflate
    - PyErr_SetString
    - OutputBuffer_WindowOnError
    - zlib_error
    - inflateInit2
    - OutputBuffer_WindowFinish
    - arrange_input_buffer
    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:495,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:496,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:500,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 503
    functionName: switch
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - inflateEnd
    - zlib_error
    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:565,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:567,1
    - Dst: newcompobject
      Src: /src/cpython/Modules/zlibmodule.c:572,1
    - Dst: deflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:580,1
    - Dst: deflateSetDictionary
      Src: /src/cpython/Modules/zlibmodule.c:587,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:593,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:596,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:605,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:608,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:613,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: 616
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 616
    functionName: zlib_compressobj_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - get_zlib_state
    - PyErr_SetString
    - zlib_error
    - Py_CLEAR
    - deflateInit2
    - deflateSetDictionary
    - newcompobject
    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:622,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:626,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:628,1
    - Dst: inflateSetDictionary
      Src: /src/cpython/Modules/zlibmodule.c:632,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:634,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - zlibstate*
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 640
    functionName: set_inflate_zdict
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - zlib_error
    - PyBuffer_Release
    - inflateSetDictionary
    - PyObject_GetBuffer
    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:658,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/zlibmodule.c:660,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:661,1
    - Dst: newcompobject
      Src: /src/cpython/Modules/zlibmodule.c:666,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:675,1
    - Dst: inflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:677,1
    - Dst: set_inflate_zdict
      Src: /src/cpython/Modules/zlibmodule.c:682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:689,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:693,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:694,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:699,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - module
    - wbits
    - zdict
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 702
    functionName: zlib_decompressobj_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - set_inflate_zdict
    - get_zlib_state
    - PyErr_SetString
    - zlib_error
    - inflateInit2
    - Py_DECREF
    - newcompobject
    - Py_NewRef
    - PyObject_CheckBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/zlibmodule.c:707,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/zlibmodule.c:708,1
    - Dst: _compobject_CAST
      Src: /src/cpython/Modules/zlibmodule.c:709,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:710,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/zlibmodule.c:710,1
    - Dst: dealloc
      Src: /src/cpython/Modules/zlibmodule.c:712,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:714,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:715,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:716,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/zlibmodule.c:717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->mutex))
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 719
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 719
    functionName: compobject_dealloc_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - _compobject_CAST
    - dealloc
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - assert
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void compobject_dealloc_impl(PyObject *op, int (*dealloc)(z_streamp))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _compobject_CAST
      Src: /src/cpython/Modules/zlibmodule.c:724,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:725,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/zlibmodule.c:725,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 728
    functionName: compobject_traverse
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - _compobject_CAST
    - Py_VISIT
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int compobject_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compobject_dealloc_impl
      Src: /src/cpython/Modules/zlibmodule.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: Comp_dealloc
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - compobject_dealloc_impl
    linkageType: ''
    returnType: void
    signature: void Comp_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compobject_dealloc_impl
      Src: /src/cpython/Modules/zlibmodule.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: Decomp_dealloc
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - compobject_dealloc_impl
    linkageType: ''
    returnType: void
    signature: void Decomp_dealloc(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/zlibmodule.c:765,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:767,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:772,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:777,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:781,1
    - Dst: deflate
      Src: /src/cpython/Modules/zlibmodule.c:787,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:791,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:796,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:800,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:806,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:809,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: 795
        line_start: 795
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 811
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 811
    functionName: zlib_Compress_compress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - arrange_input_buffer
    - OutputBuffer_InitAndGrow
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - deflate
    - zlib_error
    - OutputBuffer_Finish
    - assert
    - PyMutex_Lock
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_Compress_compress_impl(compobject *self, PyTypeObject
      *cls,\n                            Py_buffer *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/zlibmodule.c:822,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/zlibmodule.c:826,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/zlibmodule.c:829,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/zlibmodule.c:833,1
    - Dst: memcpy
      Src: /src/cpython/Modules/zlibmodule.c:834,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:834,1
    - Dst: memcpy
      Src: /src/cpython/Modules/zlibmodule.c:835,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/zlibmodule.c:836,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/zlibmodule.c:840,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/zlibmodule.c:845,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/zlibmodule.c:850,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/zlibmodule.c:854,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - data
    - err
    argTypes:
    - compobject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 858
    functionName: save_unconsumed_input
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - PyBytesWriter_Create
    - Py_SETREF
    - PyBytesWriter_Finish
    - memcpy
    - PyBytes_AS_STRING
    - PyBytesWriter_GetData
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int save_unconsumed_input(compobject *self, Py_buffer *data, int err)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/zlibmodule.c:890,1
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:894,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:899,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:904,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:909,1
    - Dst: OutputBuffer_GetDataSize
      Src: /src/cpython/Modules/zlibmodule.c:913,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:916,1
    - Dst: inflate
      Src: /src/cpython/Modules/zlibmodule.c:922,1
    - Dst: set_inflate_zdict
      Src: /src/cpython/Modules/zlibmodule.c:932,1
    - Dst: save_unconsumed_input
      Src: /src/cpython/Modules/zlibmodule.c:946,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/zlibmodule.c:952,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:958,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:962,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:968,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:971,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 4
    argNames:
    - self
    - cls
    - data
    - max_length
    argTypes:
    - compobject*
    - PyTypeObject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 973
    functionName: zlib_Decompress_decompress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - set_inflate_zdict
    - get_zlib_state
    - inflate
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - PyMutex_Unlock
    - arrange_input_buffer
    - OutputBuffer_InitAndGrow
    - save_unconsumed_input
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - zlib_error
    - OutputBuffer_Finish
    - PyMutex_Lock
    - PyType_GetModule
    - OutputBuffer_GetDataSize
    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:932,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 939
    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:997,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/zlibmodule.c:1001,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:1004,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/zlibmodule.c:1008,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/zlibmodule.c:1014,1
    - Dst: deflate
      Src: /src/cpython/Modules/zlibmodule.c:1020,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1024,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1028,1
    - Dst: deflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:1034,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1036,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1047,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/zlibmodule.c:1051,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/zlibmodule.c:1057,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1060,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: 1027
        line_start: 1027
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1062
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1062
    functionName: zlib_Compress_flush_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyMutex_Unlock
    - OutputBuffer_InitAndGrow
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - deflate
    - zlib_error
    - OutputBuffer_Finish
    - assert
    - PyMutex_Lock
    - deflateEnd
    - PyType_GetModuleState
    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:1078,1
    - Dst: newcompobject
      Src: /src/cpython/Modules/zlibmodule.c:1080,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:1086,1
    - Dst: deflateCopy
      Src: /src/cpython/Modules/zlibmodule.c:1087,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1092,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1095,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1099,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1102,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1102,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1103,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1103,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1104,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/zlibmodule.c:1104,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1110,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1114,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:1115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - compobject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1117
    functionName: zlib_Compress_copy_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - Py_XSETREF
    - PyErr_SetString
    - zlib_error
    - deflateCopy
    - Py_XDECREF
    - PyMutex_Lock
    - newcompobject
    - Py_XNewRef
    - Py_NewRef
    - PyType_GetModuleState
    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:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - compobject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1131
    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:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - memo
    argTypes:
    - compobject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1142
    functionDepth: 3
    functionLinenumber: 1142
    functionLinenumberEnd: 1148
    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:1162,1
    - Dst: newcompobject
      Src: /src/cpython/Modules/zlibmodule.c:1164,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:1170,1
    - Dst: inflateCopy
      Src: /src/cpython/Modules/zlibmodule.c:1171,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1179,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1183,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1187,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1187,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1188,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1188,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1189,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/zlibmodule.c:1189,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1195,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1199,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:1200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - compobject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1202
    functionName: zlib_Decompress_copy_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - Py_XSETREF
    - PyErr_SetString
    - zlib_error
    - inflateCopy
    - Py_XDECREF
    - PyMutex_Lock
    - newcompobject
    - Py_XNewRef
    - Py_NewRef
    - PyType_GetModuleState
    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:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - compobject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1211
    functionDepth: 3
    functionLinenumber: 1211
    functionLinenumberEnd: 1216
    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:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - memo
    argTypes:
    - compobject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1227
    functionDepth: 3
    functionLinenumber: 1227
    functionLinenumberEnd: 1233
    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:1260,1
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:1265,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1268,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:1272,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/zlibmodule.c:1274,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1275,1
    - Dst: OutputBuffer_WindowInitWithSize
      Src: /src/cpython/Modules/zlibmodule.c:1282,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:1288,1
    - Dst: OutputBuffer_WindowGrow
      Src: /src/cpython/Modules/zlibmodule.c:1293,1
    - Dst: inflate
      Src: /src/cpython/Modules/zlibmodule.c:1300,1
    - Dst: save_unconsumed_input
      Src: /src/cpython/Modules/zlibmodule.c:1317,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/zlibmodule.c:1323,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:1325,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1327,1
    - Dst: OutputBuffer_WindowFinish
      Src: /src/cpython/Modules/zlibmodule.c:1332,1
    - Dst: OutputBuffer_WindowOnError
      Src: /src/cpython/Modules/zlibmodule.c:1338,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:1341,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1342,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 3
    argNames:
    - self
    - cls
    - length
    argTypes:
    - compobject*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1344
    functionName: zlib_Decompress_flush_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - get_zlib_state
    - OutputBuffer_WindowInitWithSize
    - OutputBuffer_WindowGrow
    - inflate
    - arrange_input_buffer
    - save_unconsumed_input
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - inflateEnd
    - PyErr_SetString
    - OutputBuffer_WindowOnError
    - zlib_error
    - PyBuffer_Release
    - OutputBuffer_WindowFinish
    - PyObject_GetBuffer
    - PyMutex_Lock
    - PyType_GetModule
    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: 1310
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1310
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1365
    functionName: ZlibDecompressor_CAST
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZlibDecompressor_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/zlibmodule.c:1374,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/zlibmodule.c:1375,1
    - Dst: ZlibDecompressor_CAST
      Src: /src/cpython/Modules/zlibmodule.c:1376,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1377,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/zlibmodule.c:1377,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:1379,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/zlibmodule.c:1381,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:1382,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:1383,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/zlibmodule.c:1384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->mutex))
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1386
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1386
    functionName: ZlibDecompressor_dealloc
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - PyMem_Free
    - assert
    - PyObject_GC_UnTrack
    - Py_DECREF
    - ZlibDecompressor_CAST
    - Py_TYPE
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void ZlibDecompressor_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZlibDecompressor_CAST
      Src: /src/cpython/Modules/zlibmodule.c:1391,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:1392,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/zlibmodule.c:1392,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1395
    functionName: ZlibDecompressor_traverse
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - ZlibDecompressor_CAST
    linkageType: ''
    returnType: int
    signature: int ZlibDecompressor_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/zlibmodule.c:1401,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1405,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:1407,1
    - Dst: inflateSetDictionary
      Src: /src/cpython/Modules/zlibmodule.c:1411,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/zlibmodule.c:1413,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - zlibstate*
    - ZlibDecompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1419
    functionName: set_inflate_zdict_ZlibDecompressor
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - zlib_error
    - PyBuffer_Release
    - inflateSetDictionary
    - PyObject_GetBuffer
    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:1431,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:1436,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1440,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/zlibmodule.c:1448,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/zlibmodule.c:1454,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:1455,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: 1439
        line_start: 1439
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1458
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1458
    functionName: arrange_output_buffer_with_maximum
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyBytes_FromStringAndSize
    - Py_MIN
    - assert
    - _PyBytes_Resize
    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:1475,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/zlibmodule.c:1475,1
    - Dst: arrange_input_buffer
      Src: /src/cpython/Modules/zlibmodule.c:1499,1
    - Dst: arrange_output_buffer_with_maximum
      Src: /src/cpython/Modules/zlibmodule.c:1502,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1508,1
    - Dst: inflate
      Src: /src/cpython/Modules/zlibmodule.c:1516,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/zlibmodule.c:1535,1
    - Dst: inflateEnd
      Src: /src/cpython/Modules/zlibmodule.c:1539,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1541,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1545,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/zlibmodule.c:1551,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/zlibmodule.c:1552,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:1558,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 2
    argNames:
    - self
    - max_length
    argTypes:
    - ZlibDecompressor*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1561
    functionName: decompress_buf
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - inflate
    - inflateEnd
    - PyErr_SetString
    - zlib_error
    - Py_CLEAR
    - arrange_output_buffer_with_maximum
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    - arrange_input_buffer
    - PyType_GetModuleState
    - 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: 1530
      start: 1517
    functionDepth: 0
    functionLinenumber: 1517
    functionLinenumberEnd: 1530
    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:1591,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/zlibmodule.c:1593,1
    - Dst: memmove
      Src: /src/cpython/Modules/zlibmodule.c:1602,1
    - Dst: memcpy
      Src: /src/cpython/Modules/zlibmodule.c:1606,1
    - Dst: decompress_buf
      Src: /src/cpython/Modules/zlibmodule.c:1616,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/zlibmodule.c:1623,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/zlibmodule.c:1626,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/zlibmodule.c:1631,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/zlibmodule.c:1636,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/zlibmodule.c:1639,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/zlibmodule.c:1650,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/zlibmodule.c:1656,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/zlibmodule.c:1658,1
    - Dst: memcpy
      Src: /src/cpython/Modules/zlibmodule.c:1665,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/zlibmodule.c:1673,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 4
    argNames:
    - self
    - data
    - len
    - max_length
    argTypes:
    - ZlibDecompressor*
    - uint8_t*
    - size_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1675
    functionName: decompress
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 1
    functionsReached:
    - decompress_buf
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - PyBytes_FromStringAndSize
    - memmove
    - PyMem_Realloc
    - Py_XSETREF
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - PyErr_SetNone
    - Py_XDECREF
    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: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:1709,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1711,1
    - Dst: decompress
      Src: /src/cpython/Modules/zlibmodule.c:1714,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1716,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: 1718
      start: 1700
    functionDepth: 1
    functionLinenumber: 1700
    functionLinenumberEnd: 1718
    functionName: zlib__ZlibDecompressor_decompress_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyErr_SetString
    - PyMutex_Unlock
    - decompress
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib__ZlibDecompressor_decompress_impl(ZlibDecompressor
      *self,\n                                       Py_buffer *data,\n                                       Py_ssize_t
      max_length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1740,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/zlibmodule.c:1741,1
    - Dst: ZlibDecompressor_CAST
      Src: /src/cpython/Modules/zlibmodule.c:1742,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/zlibmodule.c:1742,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/zlibmodule.c:1751,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/zlibmodule.c:1757,1
    - Dst: inflateInit2
      Src: /src/cpython/Modules/zlibmodule.c:1759,1
    - Dst: set_inflate_zdict_ZlibDecompressor
      Src: /src/cpython/Modules/zlibmodule.c:1764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1765,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1771,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1775,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/zlibmodule.c:1776,1
    - Dst: zlib_error
      Src: /src/cpython/Modules/zlibmodule.c:1780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/zlibmodule.c:1781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 3
    argNames:
    - type
    - wbits
    - zdict
    argTypes:
    - PyTypeObject*
    - int
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 1739
        line_start: 1739
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1784
      start: 1736
    functionDepth: 3
    functionLinenumber: 1736
    functionLinenumberEnd: 1784
    functionName: zlib__ZlibDecompressor_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - Py_DECREF
    - assert
    - PyErr_SetString
    - zlib_error
    - inflateInit2
    - ZlibDecompressor_CAST
    - set_inflate_zdict_ZlibDecompressor
    - PyTypeObject*::tp_alloc
    - Py_XNewRef
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib__ZlibDecompressor_impl(PyTypeObject *type, int wbits, PyObject *zdict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _compobject_CAST
      Src: /src/cpython/Modules/zlibmodule.c:1816,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:1817,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1818,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1819,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (self->unused_data != NULL)
      pos:
        line_end: 1817
        line_start: 1817
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1822
      start: 1813
    functionDepth: 1
    functionLinenumber: 1813
    functionLinenumberEnd: 1822
    functionName: Decomp_unused_data_get
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - _compobject_CAST
    - assert
    - PyMutex_Lock
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Decomp_unused_data_get(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _compobject_CAST
      Src: /src/cpython/Modules/zlibmodule.c:1827,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:1828,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1829,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1830,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (self->unconsumed_tail != NULL)
      pos:
        line_end: 1828
        line_start: 1828
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1833
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1833
    functionName: Decomp_unconsumed_tail_get
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - _compobject_CAST
    - assert
    - PyMutex_Lock
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Decomp_unconsumed_tail_get(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1842
    functionName: COMP_OFF
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMP_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZlibDecompressor_CAST
      Src: /src/cpython/Modules/zlibmodule.c:1859,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/zlibmodule.c:1860,1
    - Dst: assert
      Src: /src/cpython/Modules/zlibmodule.c:1861,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/zlibmodule.c:1862,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/zlibmodule.c:1863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (self->unused_data != NULL)
      pos:
        line_end: 1860
        line_start: 1860
        source_file: /src/cpython/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 1865
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1865
    functionName: ZlibDecompressor_unused_data_get
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - assert
    - ZlibDecompressor_CAST
    - PyMutex_Lock
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ZlibDecompressor_unused_data_get(PyObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: adler32
      Src: /src/cpython/Modules/zlibmodule.c:1909,1
    - Dst: adler32
      Src: /src/cpython/Modules/zlibmodule.c:1913,1
    - Dst: adler32
      Src: /src/cpython/Modules/zlibmodule.c:1916,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/zlibmodule.c:1918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - module
    - data
    - value
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1919
    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:1947,1
    - Dst: convert_to_z_off_t
      Src: /src/cpython/Modules/zlibmodule.c:1949,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/zlibmodule.c:1951,1
    - Dst: adler32_combine
      Src: /src/cpython/Modules/zlibmodule.c:1954,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: 1955
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1955
    functionName: zlib_adler32_combine_impl
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - adler32_combine
    - PyErr_Occurred
    - 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:1993,1
    - Dst: crc32
      Src: /src/cpython/Modules/zlibmodule.c:1998,1
    - Dst: crc32
      Src: /src/cpython/Modules/zlibmodule.c:2001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - data
    - value
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 2004
    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:2032,1
    - Dst: convert_to_z_off_t
      Src: /src/cpython/Modules/zlibmodule.c:2034,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/zlibmodule.c:2036,1
    - Dst: crc32_combine
      Src: /src/cpython/Modules/zlibmodule.c:2039,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: 2040
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2040
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/zlibmodule.c:2046,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/zlibmodule.c:2050,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/zlibmodule.c:2050,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/zlibmodule.c:2051,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/zlibmodule.c:2056,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/zlibmodule.c:2059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2061
    functionName: zlib_getattr
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_WarnEx
    - PyUnicode_Check
    - PyUnicode_EqualToUTF8
    - PyErr_Format
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_getattr(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:2163,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:2164,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:2165,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:2166,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/zlibmodule.c:2167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2160
    functionDepth: 2
    functionLinenumber: 2160
    functionLinenumberEnd: 2169
    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:2174,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:2175,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:2176,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:2177,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/zlibmodule.c:2178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2171
    functionDepth: 2
    functionLinenumber: 2171
    functionLinenumberEnd: 2180
    functionName: zlib_traverse
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - get_zlib_state
    - Py_VISIT
    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:2185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2182
    functionDepth: 3
    functionLinenumber: 2182
    functionLinenumberEnd: 2186
    functionName: zlib_free
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_clear
    linkageType: ''
    returnType: void
    signature: void zlib_free(void *mod)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_zlib_state
      Src: /src/cpython/Modules/zlibmodule.c:2191,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/zlibmodule.c:2193,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/zlibmodule.c:2199,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/zlibmodule.c:2205,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/zlibmodule.c:2211,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/zlibmodule.c:2212,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/zlibmodule.c:2215,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2227,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2228,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2229,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2230,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2232,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2233,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2234,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2235,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2237,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2238,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2240,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2243,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2245,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2247,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2248,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2249,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2250,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2251,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2253,1
    - Dst: ZLIB_ADD_INT_MACRO
      Src: /src/cpython/Modules/zlibmodule.c:2256,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/zlibmodule.c:2258,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/zlibmodule.c:2259,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/zlibmodule.c:2262,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/zlibmodule.c:2263,1
    - Dst: zlibVersion
      Src: /src/cpython/Modules/zlibmodule.c:2263,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/zlibmodule.c:2267,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/zlibmodule.c:2268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2188
    functionDepth: 2
    functionLinenumber: 2188
    functionLinenumberEnd: 2273
    functionName: zlib_exec
    functionSourceFile: /src/cpython/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - get_zlib_state
    - PyUnicode_FromString
    - ZLIB_ADD_INT_MACRO
    - zlibVersion
    - PyType_FromModuleAndSpec
    - PyModule_Add
    - PyModule_AddObjectRef
    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: 2226
      start: 2220
    functionDepth: 0
    functionLinenumber: 2220
    functionLinenumberEnd: 2226
    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:2298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2295
    functionDepth: 1
    functionLinenumber: 2295
    functionLinenumberEnd: 2299
    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: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    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:45,1
    - Dst: _PyXIData_ReleaseAndRawFree
      Src: /src/cpython/Modules/_interpqueuesmodule.c:49,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpqueuesmodule.c:52,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:58,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpqueuesmodule.c:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - _PyXIData_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: _release_xid_data
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 4
    functionsReached:
    - _PyXIData_ReleaseAndRawFree
    - PyErr_Clear
    - PyErr_SetRaisedException
    - PyErr_GetRaisedException
    - _PyXIData_Release
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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:81,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/_interpqueuesmodule.c:85,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:86,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: _get_current_module
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyImport_GetModule
    - 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:113,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_interpqueuesmodule.c:115,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:116,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpqueuesmodule.c:120,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpqueuesmodule.c:125,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpqueuesmodule.c:131,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 138
    functionName: idarg_int64_converter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongLongAndOverflow
    - PyErr_Format
    - PyErr_Occurred
    - 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:145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 151
    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:170,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_interpqueuesmodule.c:171,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 174
    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:180,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:183,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:184,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:185,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_interpqueuesmodule.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - state
    - visit
    - arg
    argTypes:
    - module_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 189
    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:196,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:198,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:201,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:202,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:203,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 207
    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:234,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpqueuesmodule.c:238,1
    - Dst: ensure_external_exc_types
      Src: /src/cpython/Modules/_interpqueuesmodule.c:241,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpqueuesmodule.c:245,1
    - Dst: ensure_external_exc_types
      Src: /src/cpython/Modules/_interpqueuesmodule.c:248,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpqueuesmodule.c:252,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_interpqueuesmodule.c:256,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpqueuesmodule.c:259,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:265,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:265,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: 264
        line_start: 264
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 271
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 271
    functionName: resolve_module_errcode
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - ensure_external_exc_types
    - PyUnicode_FromFormat
    - PyErr_Format
    - assert
    - PyErr_Occurred
    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:281,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:282,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:284,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:285,1
    - Dst: PyObject_HasAttrStringWithError
      Src: /src/cpython/Modules/_interpqueuesmodule.c:285,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/cpython/Modules/_interpqueuesmodule.c:287,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpqueuesmodule.c:291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:292,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: (*p_state_field == NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (dot != NULL)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (!PyObject_HasAttrStringWithError(mod, name))
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 297
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 297
    functionName: add_exctype
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrStringWithError
    - strrchr
    - PyErr_NewExceptionWithDoc
    - assert
    - Py_DECREF
    - PyModule_AddType
    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:302,1
    - Dst: ADD_EXCTYPE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:310,1
    - Dst: ADD_EXCTYPE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 320
    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: 310
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 310
    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:327,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:328,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:329,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:332,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:334,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_interpqueuesmodule.c:334,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:335,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_interpqueuesmodule.c:335,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpqueuesmodule.c:336,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpqueuesmodule.c:337,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: 326
        line_start: 326
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (PyObject_IsSubclass(emptyerror, state->QueueError))
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueFull == NULL)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (PyObject_IsSubclass(fullerror, state->QueueError))
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 339
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 339
    functionName: set_external_exc_types
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_NewRef
    - PyObject_IsSubclass
    - 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:345,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:348,1
    - Dst: ensure_highlevel_module_loaded
      Src: /src/cpython/Modules/_interpqueuesmodule.c:351,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:354,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts:
    - condition: (state->QueueFull != NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueFull != NULL)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueEmpty != NULL)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueFull == NULL)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 357
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 357
    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:363,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:363,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:366,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:367,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:367,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_interpqueuesmodule.c:373,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:378,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:379,1
    - Dst: resolve_module_errcode
      Src: /src/cpython/Modules/_interpqueuesmodule.c:382,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_interpqueuesmodule.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:386,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_interpqueuesmodule.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:391,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: 362
        line_start: 362
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: ((err == -1) == (PyErr_Occurred() != NULL))
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (err < 0)
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (state->QueueError != NULL)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 394
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 394
    functionName: handle_queue_error
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyErr_NoMemory
    - PyErr_SetObject
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - resolve_module_errcode
    - PyObject_CallOneArg
    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:417,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:420,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:421,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:422,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:424,1
    - Dst: check_unbound
      Src: /src/cpython/Modules/_interpqueuesmodule.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - item
    - interpid
    - data
    - unboundop
    argTypes:
    - _queueitem*
    - int64_t
    - _PyXIData_t*
    - unboundop_t
    assertStmts:
    - condition: (check_unbound(unboundop))
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: "(data == NULL\n               || _PyXIData_INTERPID(data) < 0\n
        \              || interpid == _PyXIData_INTERPID(data))"
      pos:
        line_end: 421
        line_start: 419
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 430
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 430
    functionName: _queueitem_init
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _get_interpid
    - _PyXIData_INTERPID
    - check_unbound
    - 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:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 441
    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:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 448
    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:453,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_interpqueuesmodule.c:455,1
    - Dst: _queueitem_init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - interpid
    - data
    - unboundop
    argTypes:
    - int64_t
    - _PyXIData_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 460
    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:465,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 467
    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:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 477
    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:487,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: 488
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 488
    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:493,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:497,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:500,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:500,1
    - Dst: _queueitem_clear_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:510,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_interpqueuesmodule.c:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - item
    argTypes:
    - _queueitem*
    assertStmts:
    - condition: (item->interpid >= 0)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (_PyXIData_INTERPID(item->data) == item->interpid)
      pos:
        line_end: 499
        line_start: 499
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (item->unboundop != UNBOUND_REMOVE)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 516
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 516
    functionName: _queueitem_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _queueitem_clear_data
    - _PyXIData_INTERPID
    - assert
    linkageType: ''
    returnType: int
    signature: int _queueitem_clear_interpreter(_queueitem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:540,1
    - Dst: check_unbound
      Src: /src/cpython/Modules/_interpqueuesmodule.c:540,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:541,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: 539
        line_start: 539
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 554
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 554
    functionName: _queue_init
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_allocate_lock
    - check_unbound
    - assert
    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:559,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:560,1
    - Dst: _queueitem_free_all
      Src: /src/cpython/Modules/_interpqueuesmodule.c:561,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:562,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts:
    - condition: (!queue->alive)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queue->num_waiters == 0)
      pos:
        line_end: 559
        line_start: 559
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queue->mutex != NULL)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 565
      start: 556
    functionDepth: 4
    functionLinenumber: 556
    functionLinenumberEnd: 565
    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:573,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:574,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:576,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:580,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts:
    - condition: (queue->alive)
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 583
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 583
    functionName: _queue_kill_and_wait
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_lock
    - assert
    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:589,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - queue
    - parent_mutex
    argTypes:
    - _queue*
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 597
    functionName: _queue_mark_waiter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_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:603,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - queue
    - parent_mutex
    argTypes:
    - _queue*
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 611
    functionName: _queue_unmark_waiter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_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:617,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 623
    functionName: _queue_lock
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_lock
    linkageType: ''
    returnType: int
    signature: int _queue_lock(_queue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 629
    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:634,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:644,1
    - Dst: _queueitem_new
      Src: /src/cpython/Modules/_interpqueuesmodule.c:648,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:650,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:663,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: 665
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 665
    functionName: _queue_add
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_unlock
    - _queue_lock
    - _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:670,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:675,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:678,1
    - Dst: _queueitem_popped
      Src: /src/cpython/Modules/_interpqueuesmodule.c:687,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:689,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: 674
        line_start: 674
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 691
      start: 667
    functionDepth: 4
    functionLinenumber: 667
    functionLinenumberEnd: 691
    functionName: _queue_next
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_unlock
    - _queueitem_popped
    - _queue_lock
    - assert
    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:696,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - queue
    - p_maxsize
    argTypes:
    - _queue*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 705
    functionName: _queue_get_maxsize
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_unlock
    - _queue_lock
    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:710,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:715,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:721,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: 715
        line_start: 714
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 723
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 723
    functionName: _queue_is_full
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_unlock
    - _queue_lock
    - assert
    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:728,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - queue
    - p_count
    argTypes:
    - _queue*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 737
    functionName: _queue_get_count
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_unlock
    - _queue_lock
    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:742,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:745,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:745,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:748,1
    - Dst: _queueitem_clear_interpreter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:756,1
    - Dst: _queueitem_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:759,1
    - Dst: _queue_unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:773,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - queue
    - interpid
    argTypes:
    - _queue*
    - int64_t
    assertStmts:
    - condition: (err == 0)
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 774
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 774
    functionName: _queue_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queueitem_clear_interpreter
    - _queue_lock
    - _queueitem_free
    - _queue_unlock
    - PyErr_Occurred
    - 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: 804
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 804
    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:816,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:819,1
    - Dst: _queue_kill_and_wait
      Src: /src/cpython/Modules/_interpqueuesmodule.c:821,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_interpqueuesmodule.c:824,1
    - Dst: _queue_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - head
    argTypes:
    - _queueref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 830
    functionName: _queuerefs_clear
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - fprintf
    - GLOBAL_FREE
    - _queue_free
    - _queue_kill_and_wait
    linkageType: ''
    returnType: void
    signature: void _queuerefs_clear(_queueref *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:845,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - queues
    - mutex
    argTypes:
    - _queues*
    - PyThread_type_lock
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queues->mutex == NULL)
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 853
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 853
    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:859,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:861,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:863,1
    - Dst: _queuerefs_clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:864,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:867,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: 858
        line_start: 858
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (queues->head != NULL)
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 870
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 870
    functionName: _queues_fini
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - _queuerefs_clear
    - PyThread_acquire_lock
    - assert
    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: 882
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 882
    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:887,1
    - Dst: _queuerefs_find
      Src: /src/cpython/Modules/_interpqueuesmodule.c:889,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:891,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:894,1
    - Dst: _queue_mark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:896,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:899,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: 893
        line_start: 893
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 903
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 903
    functionName: _queues_lookup
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyThread_release_lock
    - _queue_mark_waiter
    - _queuerefs_find
    - 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:909,1
    - Dst: _queues_next_id
      Src: /src/cpython/Modules/_interpqueuesmodule.c:912,1
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpqueuesmodule.c:916,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:934,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - queues
    - queue
    argTypes:
    - _queues*
    - _queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 936
    functionName: _queues_add
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_MALLOC
    - _queues_next_id
    - PyThread_release_lock
    - PyThread_acquire_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:942,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:955,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: 941
        line_start: 941
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 956
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 956
    functionName: _queues_remove_ref
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - GLOBAL_FREE
    - assert
    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:961,1
    - Dst: _queuerefs_find
      Src: /src/cpython/Modules/_interpqueuesmodule.c:964,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:966,1
    - Dst: _queues_remove_ref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:970,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - queues
    - qid
    - p_queue
    argTypes:
    - _queues*
    - int64_t
    - _queue**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 974
    functionName: _queues_remove
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - _queues_remove_ref
    - PyThread_acquire_lock
    - _queuerefs_find
    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:981,1
    - Dst: _queuerefs_find
      Src: /src/cpython/Modules/_interpqueuesmodule.c:983,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:985,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:985,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - queues
    - qid
    argTypes:
    - _queues*
    - int64_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 984
        line_start: 984
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 995
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 995
    functionName: _queues_incref
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyThread_release_lock
    - _queuerefs_find
    - PyErr_Occurred
    - 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:1001,1
    - Dst: _queuerefs_find
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1004,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1006,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1006,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1014,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1018,1
    - Dst: _queues_remove_ref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1021,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1022,1
    - Dst: _queue_kill_and_wait
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1024,1
    - Dst: _queue_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1025,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - queues
    - qid
    argTypes:
    - _queues*
    - int64_t
    assertStmts:
    - condition: (ref->refcount > 0)
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1005
        line_start: 1005
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (ref->queue != NULL)
      pos:
        line_end: 1017
        line_start: 1017
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1033
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1033
    functionName: _queues_decref
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _queue_kill_and_wait
    - PyThread_release_lock
    - _queues_remove_ref
    - _queuerefs_find
    - PyErr_Occurred
    - assert
    - _queue_free
    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:1044,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1045,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1053,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1060,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: 1052
        line_start: 1052
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1062
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1062
    functionName: _queues_list_all
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_lock
    - PyMem_NEW
    - assert
    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:1067,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1071,1
    - Dst: _queue_clear_interpreter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1072,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - queues
    - interpid
    argTypes:
    - _queues*
    - int64_t
    assertStmts:
    - condition: (ref->queue != NULL)
      pos:
        line_end: 1070
        line_start: 1070
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1076
      start: 1064
    functionDepth: 4
    functionLinenumber: 1064
    functionLinenumberEnd: 1076
    functionName: _queues_clear_interpreter
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_acquire_lock
    - _queue_clear_interpreter
    - assert
    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:1084,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1081
    functionDepth: 5
    functionLinenumber: 1081
    functionLinenumberEnd: 1086
    functionName: _queue_free
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 2
    functionsReached:
    - GLOBAL_FREE
    - _queue_clear
    linkageType: ''
    returnType: void
    signature: void _queue_free(_queue *queue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL_MALLOC
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1093,1
    - Dst: _queue_init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1097,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1099,1
    - Dst: _queues_add
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1102,1
    - Dst: _queue_clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1104,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1105,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: 1108
      start: 1089
    functionDepth: 5
    functionLinenumber: 1089
    functionLinenumberEnd: 1108
    functionName: queue_create
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queue_clear
    - GLOBAL_MALLOC
    - GLOBAL_FREE
    - _queues_add
    - _queue_init
    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:1115,1
    - Dst: _queue_kill_and_wait
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1119,1
    - Dst: _queue_free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - queues
    - qid
    argTypes:
    - _queues*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1111
    functionDepth: 6
    functionLinenumber: 1111
    functionLinenumberEnd: 1122
    functionName: queue_destroy
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queues_remove
    - _queue_free
    - _queue_kill_and_wait
    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:1129,1
    - Dst: _queues_lookup
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1133,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1137,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1140,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1142,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1145,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1146,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1147,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1150,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1150,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1151,1
    - Dst: _queue_add
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1155,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1156,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1159,1
    - Dst: GLOBAL_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1160,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: 1136
        line_start: 1136
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: "(_PyXIData_INTERPID(xidata) ==\n            PyInterpreterState_GetID(tstate->interp))"
      pos:
        line_end: 1150
        line_start: 1149
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1165
      start: 1125
    functionDepth: 4
    functionLinenumber: 1125
    functionLinenumberEnd: 1165
    functionName: queue_put
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_lookup
    - _PyObject_GetXIData
    - assert
    - PyThreadState_Get
    - _PyXIData_INTERPID
    - _queue_add
    - GLOBAL_FREE
    - PyInterpreterState_GetID
    - _PyXIData_New
    - _queue_unmark_waiter
    - _release_xid_data
    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:1178,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1183,1
    - Dst: _queue_next
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1187,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1188,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1193,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1198,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1200,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1200,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1202,1
    - Dst: _release_xid_data
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1206,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - queues
    - qid
    - res
    - p_unboundop
    argTypes:
    - _queues*
    - int64_t
    - PyObject**
    - int*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 1182
        line_start: 1182
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1199
        line_start: 1199
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1208
        line_start: 1208
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1216
      start: 1169
    functionDepth: 5
    functionLinenumber: 1169
    functionLinenumberEnd: 1216
    functionName: queue_get
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_lookup
    - _PyXIData_NewObject
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - _queue_next
    - _queue_unmark_waiter
    - _release_xid_data
    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:1223,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1228,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: 1230
      start: 1218
    functionDepth: 3
    functionLinenumber: 1218
    functionLinenumberEnd: 1230
    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:1236,1
    - Dst: _queue_get_maxsize
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1240,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1241,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: 1243
      start: 1232
    functionDepth: 3
    functionLinenumber: 1232
    functionLinenumberEnd: 1243
    functionName: queue_get_maxsize
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_lookup
    - _queue_unmark_waiter
    - _queue_get_maxsize
    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:1249,1
    - Dst: _queue_is_full
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1253,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1254,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: 1256
      start: 1245
    functionDepth: 3
    functionLinenumber: 1245
    functionLinenumberEnd: 1256
    functionName: queue_is_full
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_lookup
    - _queue_unmark_waiter
    - _queue_is_full
    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:1262,1
    - Dst: _queue_get_count
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1266,1
    - Dst: _queue_unmark_waiter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1267,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: 1269
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1269
    functionName: queue_get_count
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queue_get_count
    - _queues_lookup
    - _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:1281,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1282,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1286,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1286,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - queue_type
    argTypes:
    - module_state*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1292
    functionName: set_external_queue_type
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - clear_xid_class
    - Py_CLEAR
    - GETDATA
    - Py_NewRef
    - ensure_xid_class
    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:1297,1
    - Dst: ensure_highlevel_module_loaded
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1302,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 1305
        line_start: 1305
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1309
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1309
    functionName: get_external_queue_type
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - ensure_highlevel_module_loaded
    - 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:1323,1
    - Dst: _queues_incref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1324,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1328,1
    - Dst: _queues_decref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - qid
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1320
    functionDepth: 3
    functionLinenumber: 1320
    functionLinenumberEnd: 1335
    functionName: _queueid_xid_new
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _queues_incref
    - PyMem_RawMalloc
    - _queues_decref
    - _get_global_queues
    linkageType: ''
    returnType: void
    signature: 'void *

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

      _queueobj_from_xid(_PyXIData_t *data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1385,1
    - Dst: idarg_int64_converter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1392,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1393,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1395,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1395,1
    - Dst: _queueid_xid_new
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1399,1
    - Dst: _PyXIData_Init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1403,1
    - Dst: _PyXIData_SET_FREE
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1404,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: 1394
        line_start: 1394
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1406
      start: 1382
    functionDepth: 4
    functionLinenumber: 1382
    functionLinenumberEnd: 1406
    functionName: _queueobj_shared
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - idarg_int64_converter
    - _PyXIData_Init
    - assert
    - _queueid_xid_new
    - _PyXIData_SET_FREE
    - Py_CLEAR
    - PyErr_Occurred
    - PyObject_GetAttrString
    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:1423,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1424,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1428,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1431,1
    - Dst: _queues_init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1434,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_globals.module_count >= 0)
      pos:
        line_end: 1423
        line_start: 1423
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1438
      start: 1420
    functionDepth: 1
    functionLinenumber: 1420
    functionLinenumberEnd: 1438
    functionName: _globals_init
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 1
    functionsReached:
    - _queues_init
    - PyMutex_Unlock
    - assert
    - PyMutex_Lock
    - PyThread_allocate_lock
    linkageType: ''
    returnType: int
    signature: int _globals_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1443,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1444,1
    - Dst: _queues_fini
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1448,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1449,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1450,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_globals.module_count > 0)
      pos:
        line_end: 1443
        line_start: 1443
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    - condition: (mutex != NULL)
      pos:
        line_end: 1448
        line_start: 1448
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1453
      start: 1440
    functionDepth: 4
    functionLinenumber: 1440
    functionLinenumberEnd: 1453
    functionName: _globals_fini
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 2
    functionsReached:
    - PyMutex_Unlock
    - _queues_fini
    - assert
    - PyMutex_Lock
    - PyThread_free_lock
    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: 1459
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1459
    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:1469,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1469,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1470,1
    - Dst: _queues_clear_interpreter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (interp == _get_current_interp())
      pos:
        line_end: 1468
        line_start: 1468
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1472
      start: 1462
    functionDepth: 5
    functionLinenumber: 1462
    functionLinenumberEnd: 1472
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: idarg_int64_converter
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1494
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1518,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1523,1
    - Dst: queue_create
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1529,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1531,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1535,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1537,1
    - Dst: queue_destroy
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1538,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1539,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1541,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - module
    - maxsize
    - unboundarg
    - fallbackarg
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1512
    functionDepth: 7
    functionLinenumber: 1512
    functionLinenumberEnd: 1548
    functionName: _interpqueues_create_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - PyLong_FromLongLong
    - queue_create
    - PyErr_Clear
    - PyErr_SetRaisedException
    - resolve_fallback
    - queue_destroy
    - PyErr_GetRaisedException
    - resolve_unboundop
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpqueues_create_impl(PyObject *module, Py_ssize_t
      maxsize,\n                          int unboundarg, int fallbackarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_destroy
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1564,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - qid
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1560
    functionDepth: 7
    functionLinenumber: 1560
    functionLinenumberEnd: 1569
    functionName: _interpqueues_destroy_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - queue_destroy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_destroy_impl(PyObject *module, int64_t qid)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _queues_list_all
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1584,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1586,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1587,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1591,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1597,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1601,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1604,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1608,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1610
    functionName: _interpqueues_list_all_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - Py_SETREF
    - Py_BuildValue
    - _queues_list_all
    - PyList_New
    - PyErr_Occurred
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_list_all_impl(PyObject *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: queue_get_defaults
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1629,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1630,1
    - Dst: resolve_unboundop
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1635,1
    - Dst: resolve_fallback
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1639,1
    - Dst: queue_put
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1644,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - module
    - qid
    - obj
    - unboundarg
    - fallbackarg
    argTypes:
    - PyObject*
    - int64_t
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1622
    functionDepth: 5
    functionLinenumber: 1622
    functionLinenumberEnd: 1651
    functionName: _interpqueues_put_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - queue_get_defaults
    - resolve_fallback
    - queue_put
    - resolve_unboundop
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpqueues_put_impl(PyObject *module, int64_t qid,
      PyObject *obj,\n                       int unboundarg, int fallbackarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_get
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1668,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1670,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1675,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - qid
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1662
    functionDepth: 6
    functionLinenumber: 1662
    functionLinenumberEnd: 1680
    functionName: _interpqueues_get_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - Py_DECREF
    - queue_get
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_get_impl(PyObject *module, int64_t qid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queues_incref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1697,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - qid
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1691
    functionDepth: 3
    functionLinenumber: 1691
    functionLinenumberEnd: 1705
    functionName: _interpqueues_bind_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - _queues_incref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_bind_impl(PyObject *module, int64_t qid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queues_decref
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1725,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - qid
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1716
    functionDepth: 3
    functionLinenumber: 1716
    functionLinenumberEnd: 1731
    functionName: _interpqueues_release_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - _queues_decref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_release_impl(PyObject *module, int64_t qid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_get_maxsize
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1745,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1746,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - qid
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1740
    functionDepth: 4
    functionLinenumber: 1740
    functionLinenumberEnd: 1750
    functionName: _interpqueues_get_maxsize_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - queue_get_maxsize
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_get_maxsize_impl(PyObject *module, int64_t qid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_get_defaults
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1764,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1765,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - qid
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1759
    functionDepth: 4
    functionLinenumber: 1759
    functionLinenumberEnd: 1771
    functionName: _interpqueues_get_queue_defaults_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - queue_get_defaults
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_get_queue_defaults_impl(PyObject *module, int64_t qid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_is_full
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1785,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - qid
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1780
    functionDepth: 4
    functionLinenumber: 1780
    functionLinenumberEnd: 1793
    functionName: _interpqueues_is_full_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - queue_is_full
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_is_full_impl(PyObject *module, int64_t qid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_get_count
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1807,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1808,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1811,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - qid
    argTypes:
    - PyObject*
    - int64_t
    assertStmts:
    - condition: (count >= 0)
      pos:
        line_end: 1810
        line_start: 1810
        source_file: /src/cpython/Modules/_interpqueuesmodule.c
    constantsTouched: []
    func_position:
      end: 1813
      start: 1802
    functionDepth: 4
    functionLinenumber: 1802
    functionLinenumberEnd: 1813
    functionName: _interpqueues_get_count_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - handle_queue_error
    - queue_get_count
    - PyLong_FromSsize_t
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_get_count_impl(PyObject *module, int64_t qid)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1831,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1832,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1836,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1837,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1842,1
    - Dst: set_external_queue_type
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1844,1
    - Dst: set_external_exc_types
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - module
    - queuetype
    - emptyerror
    - fullerror
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1824
    functionDepth: 2
    functionLinenumber: 1824
    functionLinenumberEnd: 1852
    functionName: _interpqueues__register_heap_types_impl
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - set_external_exc_types
    - get_module_state
    - PyExceptionClass_Check
    - PyErr_SetString
    - set_external_queue_type
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_interpqueues__register_heap_types_impl(PyObject *module,\n
      \                                       PyTypeObject *queuetype,\n                                        PyObject
      *emptyerror,\n                                        PyObject *fullerror)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _globals_init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1881,1
    - Dst: handle_queue_error
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1882,1
    - Dst: add_QueueError
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1887,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1892,1
    - Dst: PyUnstable_AtExit
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1893,1
    - Dst: _globals_fini
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1878
    functionDepth: 3
    functionLinenumber: 1878
    functionLinenumberEnd: 1900
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _globals_init
    - handle_queue_error
    - PyUnstable_AtExit
    - add_QueueError
    - _get_current_interp
    - _globals_fini
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1913,1
    - Dst: traverse_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1915
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - traverse_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:1920,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1924
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 2
    functionsReached:
    - get_module_state
    - clear_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:1929,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1932,1
    - Dst: _globals_fini
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1926
    functionDepth: 0
    functionLinenumber: 1926
    functionLinenumberEnd: 1935
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_interpqueuesmodule.c
    functionUses: 0
    functionsReached:
    - _globals_fini
    - get_module_state
    - clear_module_state
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_interpqueuesmodule.c:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1953
    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:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - in
    - out
    - table
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: base64_encode_trio
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void base64_encode_trio(const unsigned char *in, unsigned char *out,\n
      \                  const unsigned char *table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base64_encode_trio
      Src: /src/cpython/Modules/binascii.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - in
    - in_len
    - out
    - table
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: base64_encode_fast
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - base64_encode_trio
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t base64_encode_fast(const unsigned char *in, Py_ssize_t
      in_len,\n                   unsigned char *out, const unsigned char *table)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - in
    - out
    - table
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: base64_decode_quad
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int base64_decode_quad(const unsigned char *in, unsigned char *out,\n
      \                  const unsigned char *table)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: base64_decode_quad
      Src: /src/cpython/Modules/binascii.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - in
    - in_len
    - out
    - table
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: base64_decode_fast
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - base64_decode_quad
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t base64_decode_fast(const unsigned char *in, Py_ssize_t
      in_len,\n                   unsigned char *out, const unsigned char *table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - in
    - out
    - table
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: base32_encode_quint
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void base32_encode_quint(const unsigned char *in, unsigned char *out,\n
      \                   const unsigned char table[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base32_encode_quint
      Src: /src/cpython/Modules/binascii.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - in
    - in_len
    - out
    - table
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - unsigned char*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 320
    functionName: base32_encode_fast
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - base32_encode_quint
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t base32_encode_fast(const unsigned char *in, Py_ssize_t
      in_len,\n                   unsigned char *out, const unsigned char table[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - in
    - out
    - table
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 349
    functionName: base32_decode_octa
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int base32_decode_octa(const unsigned char *in, unsigned char *out,\n
      \                  const unsigned char table[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: base32_decode_octa
      Src: /src/cpython/Modules/binascii.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - in
    - in_len
    - out
    - table
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - unsigned char*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 370
    functionName: base32_decode_fast
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - base32_decode_octa
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t base32_decode_fast(const unsigned char *in, Py_ssize_t
      in_len,\n                   unsigned char *out, const unsigned char table[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/binascii.c:432,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/binascii.c:435,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/binascii.c:436,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:437,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:441,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/binascii.c:441,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/binascii.c:442,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/binascii.c:443,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/binascii.c:447,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:448,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/binascii.c:450,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:453,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/binascii.c:453,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: 440
        line_start: 440
        source_file: /src/cpython/Modules/binascii.c
    - condition: (PyBuffer_IsContiguous(buf, 'C'))
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 455
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 455
    functionName: ascii_buffer_converter
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_IS_ASCII
    - PyUnicode_KIND
    - PyErr_SetString
    - PyUnicode_Check
    - PyBuffer_Release
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - assert
    - PyBuffer_IsContiguous
    - PyObject_GetBuffer
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int ascii_buffer_converter(PyObject *arg, Py_buffer *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/cpython/Modules/binascii.c:475,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - data
    - size
    - width
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - size_t
    assertStmts:
    - condition: (dst == data + width)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 481
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 481
    functionName: wraplines
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - memmove
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t wraplines(unsigned char *data, Py_ssize_t size, size_t width)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:508,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:512,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:516,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:523,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:527,1
    - Dst: this_ch < ' ' || this_ch >
      Src: /src/cpython/Modules/binascii.c:544,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:545,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:549,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:576,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:580,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/binascii.c:584,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/binascii.c:587,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 2
    argNames:
    - module
    - data
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (ascii_len >= 0)
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 589
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 589
    functionName: binascii_a2b_uu_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - this_ch < ' ' || this_ch >
    - PyBytesWriter_Finish
    - assert
    - PyBytesWriter_GetData
    - get_binascii_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_uu_impl(PyObject *module, Py_buffer *data)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:617,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:621,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:627,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:631,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:659,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - module
    - data
    - backtick
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 660
    functionName: binascii_b2a_uu_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_GetData
    - get_binascii_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_uu_impl(PyObject *module, Py_buffer *data, int backtick)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/binascii.c:669,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:670,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/binascii.c:673,1
    - Dst: memset
      Src: /src/cpython/Modules/binascii.c:678,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/binascii.c:679,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:684,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:687,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/binascii.c:691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/binascii.c:692,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/binascii.c:697,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/binascii.c:698,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/binascii.c:701,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - state
    - alphabet
    - size
    - padchar
    argTypes:
    - binascii_state*
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (padchar < 256)
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 706
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 706
    functionName: get_reverse_table
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - assert
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - PyErr_SetString
    - PyDict_SetItem
    - memset
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyDict_GetItemRef
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_reverse_table(binascii_state *state, PyObject *alphabet, int size, int padchar)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Modules/binascii.c:720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - c
    - ignorechars
    - ignorecache
    argTypes:
    - unsigned char
    - Py_buffer*
    - ignorecache_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 725
    functionName: ignorechar
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: int
    signature: "int ignorechar(unsigned char c, const Py_buffer *ignorechars,\n           ignorecache_t
      ignorecache)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:755,1
    - Dst: memset
      Src: /src/cpython/Modules/binascii.c:771,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:775,1
    - Dst: get_reverse_table
      Src: /src/cpython/Modules/binascii.c:776,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/binascii.c:780,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:785,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:787,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:790,1
    - Dst: base64_decode_fast
      Src: /src/cpython/Modules/binascii.c:798,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:826,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:833,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:835,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:836,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:847,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:848,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:850,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:863,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:865,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:867,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:905,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:907,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:908,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:918,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:920,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:928,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:930,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:935,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:936,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:939,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/binascii.c:940,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 127
    argCount: 7
    argNames:
    - module
    - data
    - strict_mode
    - padded
    - alphabet
    - ignorechars
    - canonical
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - int
    - PyBytesObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (data->len >= 0)
      pos:
        line_end: 754
        line_start: 754
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 942
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 942
    functionName: binascii_a2b_base64_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - ignorechar
    - base64_decode_fast
    - assert
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - memset
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyBytesWriter_GetData
    - get_binascii_state
    - PyErr_Format
    - get_reverse_table
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_a2b_base64_impl(PyObject *module, Py_buffer *data,
      int strict_mode,\n                         int padded, PyBytesObject *alphabet,\n
      \                        Py_buffer *ignorechars, int canonical)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:968,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:972,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:998,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1002,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:1005,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1009,1
    - Dst: base64_encode_fast
      Src: /src/cpython/Modules/binascii.c:1012,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1021,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1028,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1035,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1042,1
    - Dst: wraplines
      Src: /src/cpython/Modules/binascii.c:1043,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:1048,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 6
    argNames:
    - module
    - data
    - padded
    - wrapcol
    - newline
    - alphabet
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - size_t
    - int
    - Py_buffer*
    assertStmts:
    - condition: (bin_len >= 0)
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/cpython/Modules/binascii.c
    - condition: (!padded || pads == 2)
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/cpython/Modules/binascii.c
    - condition: (!padded || pads == 1)
      pos:
        line_end: 1027
        line_start: 1027
        source_file: /src/cpython/Modules/binascii.c
    - condition: (pads == 0)
      pos:
        line_end: 1034
        line_start: 1034
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 1049
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 1049
    functionName: binascii_b2a_base64_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - wraplines
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - assert
    - PyBytesWriter_GetData
    - get_binascii_state
    - base64_encode_fast
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_b2a_base64_impl(PyObject *module, Py_buffer *data,
      int padded,\n                         size_t wrapcol, int newline, Py_buffer
      *alphabet)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1079,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1087,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1089,1
    - Dst: memset
      Src: /src/cpython/Modules/binascii.c:1105,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1123,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:1128,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1132,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1153,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1155,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1164,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:1166,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:1175,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1176,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:1178,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1195,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1197,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1211,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1213,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1235,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1237,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:1250,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/binascii.c:1253,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 118
    argCount: 6
    argNames:
    - module
    - data
    - foldspaces
    - adobe
    - ignorechars
    - canonical
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - int
    - Py_buffer*
    - int
    assertStmts:
    - condition: (ascii_len >= 0)
      pos:
        line_end: 1078
        line_start: 1078
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 1255
      start: 1070
    functionDepth: 2
    functionLinenumber: 1070
    functionLinenumberEnd: 1255
    functionName: binascii_a2b_ascii85_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - ignorechar
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - memset
    - PyErr_Format
    - assert
    - PyBytesWriter_GetData
    - get_binascii_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_a2b_ascii85_impl(PyObject *module, Py_buffer
      *data, int foldspaces,\n                          int adobe, Py_buffer *ignorechars,
      int canonical)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1283,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1301,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1305,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:1309,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1313,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1375,1
    - Dst: wraplines
      Src: /src/cpython/Modules/binascii.c:1376,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1378,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1379,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:1385,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 6
    argNames:
    - module
    - data
    - foldspaces
    - wrapcol
    - pad
    - adobe
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - size_t
    - int
    - int
    assertStmts:
    - condition: (bin_len >= 0)
      pos:
        line_end: 1282
        line_start: 1282
        source_file: /src/cpython/Modules/binascii.c
    - condition: (ascii_data[-1] == BASE85_A85_SUFFIX)
      pos:
        line_end: 1377
        line_start: 1377
        source_file: /src/cpython/Modules/binascii.c
    - condition: (ascii_data[-3] == BASE85_A85_AFFIX)
      pos:
        line_end: 1378
        line_start: 1378
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 1386
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1386
    functionName: binascii_b2a_ascii85_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - wraplines
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - assert
    - PyBytesWriter_GetData
    - get_binascii_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_b2a_ascii85_impl(PyObject *module, Py_buffer
      *data, int foldspaces,\n                          size_t wrapcol, int pad, int
      adobe)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1416,1
    - Dst: get_reverse_table
      Src: /src/cpython/Modules/binascii.c:1417,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/binascii.c:1421,1
    - Dst: memset
      Src: /src/cpython/Modules/binascii.c:1429,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1432,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:1436,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:1438,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1441,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1462,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:1464,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:1473,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1474,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:1476,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1493,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1495,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1514,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1516,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:1527,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:1528,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/binascii.c:1531,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:1532,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 5
    argNames:
    - module
    - data
    - alphabet
    - ignorechars
    - canonical
    argTypes:
    - PyObject*
    - Py_buffer*
    - PyBytesObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (ascii_len >= 0)
      pos:
        line_end: 1431
        line_start: 1431
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 1534
      start: 1403
    functionDepth: 2
    functionLinenumber: 1403
    functionLinenumberEnd: 1534
    functionName: binascii_a2b_base85_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - ignorechar
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - memset
    - Py_XDECREF
    - assert
    - PyBytesWriter_GetData
    - get_binascii_state
    - PyErr_Format
    - get_reverse_table
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_a2b_base85_impl(PyObject *module, Py_buffer *data,\n
      \                        PyBytesObject *alphabet, Py_buffer *ignorechars,\n
      \                        int canonical)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1561,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1567,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1580,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1584,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:1588,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1592,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1632,1
    - Dst: wraplines
      Src: /src/cpython/Modules/binascii.c:1633,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:1636,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 5
    argNames:
    - module
    - data
    - pad
    - wrapcol
    - alphabet
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - size_t
    - Py_buffer*
    assertStmts:
    - condition: (bin_len >= 0)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 1637
      start: 1550
    functionDepth: 2
    functionLinenumber: 1550
    functionLinenumberEnd: 1637
    functionName: binascii_b2a_base85_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - wraplines
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - assert
    - PyBytesWriter_GetData
    - get_binascii_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_b2a_base85_impl(PyObject *module, Py_buffer *data,
      int pad,\n                         size_t wrapcol, Py_buffer *alphabet)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1668,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1671,1
    - Dst: get_reverse_table
      Src: /src/cpython/Modules/binascii.c:1672,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/binascii.c:1676,1
    - Dst: memset
      Src: /src/cpython/Modules/binascii.c:1684,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:1689,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:1691,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1694,1
    - Dst: base32_decode_fast
      Src: /src/cpython/Modules/binascii.c:1702,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:1731,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1738,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1740,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1741,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:1752,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1753,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1755,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:1767,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1768,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1770,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1821,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1823,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/binascii.c:1824,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1834,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1836,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1844,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1846,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:1851,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:1852,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/binascii.c:1855,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/binascii.c:1856,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 141
    argCount: 6
    argNames:
    - module
    - data
    - padded
    - alphabet
    - ignorechars
    - canonical
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - PyBytesObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (ascii_len >= 0)
      pos:
        line_end: 1667
        line_start: 1667
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 1858
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1858
    functionName: binascii_a2b_base32_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - ignorechar
    - assert
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - base32_decode_fast
    - memset
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyBytesWriter_GetData
    - get_binascii_state
    - PyErr_Format
    - get_reverse_table
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_a2b_base32_impl(PyObject *module, Py_buffer *data,
      int padded,\n                         PyBytesObject *alphabet, Py_buffer *ignorechars,\n
      \                        int canonical)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1888,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:1910,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:1912,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:1916,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1920,1
    - Dst: base32_encode_fast
      Src: /src/cpython/Modules/binascii.c:1923,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1932,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1939,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1948,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1960,1
    - Dst: assert
      Src: /src/cpython/Modules/binascii.c:1974,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:1981,1
    - Dst: wraplines
      Src: /src/cpython/Modules/binascii.c:1982,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:1985,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 5
    argNames:
    - module
    - data
    - padded
    - wrapcol
    - alphabet
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - size_t
    - Py_buffer*
    assertStmts:
    - condition: (bin_len >= 0)
      pos:
        line_end: 1883
        line_start: 1883
        source_file: /src/cpython/Modules/binascii.c
    - condition: (!padded || pads == 6)
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Modules/binascii.c
    - condition: (!padded || pads == 4)
      pos:
        line_end: 1938
        line_start: 1938
        source_file: /src/cpython/Modules/binascii.c
    - condition: (!padded || pads == 3)
      pos:
        line_end: 1947
        line_start: 1947
        source_file: /src/cpython/Modules/binascii.c
    - condition: (!padded || pads == 1)
      pos:
        line_end: 1959
        line_start: 1959
        source_file: /src/cpython/Modules/binascii.c
    - condition: (pads == 0)
      pos:
        line_end: 1973
        line_start: 1973
        source_file: /src/cpython/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 1986
      start: 1874
    functionDepth: 2
    functionLinenumber: 1874
    functionLinenumberEnd: 1986
    functionName: binascii_b2a_base32_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - base32_encode_fast
    - wraplines
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - assert
    - PyBytesWriter_GetData
    - get_binascii_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_b2a_base32_impl(PyObject *module, Py_buffer *data,
      int padded,\n                         size_t wrapcol, Py_buffer *alphabet)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/binascii.c:2013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - data
    - crc
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2014
    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: 2148
      start: 2135
    functionDepth: 0
    functionLinenumber: 2135
    functionLinenumberEnd: 2148
    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:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - sep
    - bytes_per_sep
    argTypes:
    - PyObject*
    - Py_buffer*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2241
    functionDepth: 1
    functionLinenumber: 2241
    functionLinenumberEnd: 2248
    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                      Py_ssize_t bytes_per_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_bytes_with_sep
      Src: /src/cpython/Modules/binascii.c:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - sep
    - bytes_per_sep
    argTypes:
    - PyObject*
    - Py_buffer*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2259
    functionDepth: 1
    functionLinenumber: 2259
    functionLinenumberEnd: 2266
    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                      Py_ssize_t bytes_per_sep)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/binascii.c:2297,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/binascii.c:2302,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/binascii.c:2306,1
    - Dst: ignorechar
      Src: /src/cpython/Modules/binascii.c:2316,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:2317,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:2319,1
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:2338,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/binascii.c:2340,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/binascii.c:2345,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/binascii.c:2348,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - module
    - hexstr
    - ignorechars
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2283
    functionDepth: 2
    functionLinenumber: 2283
    functionLinenumberEnd: 2350
    functionName: binascii_a2b_hex_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - ignorechar
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - memset
    - PyBytesWriter_GetData
    - get_binascii_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_a2b_hex_impl(PyObject *module, Py_buffer *hexstr,\n
      \                     Py_buffer *ignorechars)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binascii_a2b_hex_impl
      Src: /src/cpython/Modules/binascii.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - hexstr
    - ignorechars
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2360
    functionDepth: 3
    functionLinenumber: 2360
    functionLinenumberEnd: 2366
    functionName: binascii_unhexlify_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - binascii_a2b_hex_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_unhexlify_impl(PyObject *module, Py_buffer *hexstr,\n
      \                       Py_buffer *ignorechars)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/binascii.c:2396,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/binascii.c:2398,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:2447,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/binascii.c:2448,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 48
    argCount: 3
    argNames:
    - module
    - data
    - header
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2380
    functionDepth: 1
    functionLinenumber: 2380
    functionLinenumberEnd: 2450
    functionName: binascii_a2b_qp_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyMem_Calloc
    - PyMem_Free
    - 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: 2461
      start: 2452
    functionDepth: 0
    functionLinenumber: 2452
    functionLinenumberEnd: 2461
    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:2504,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/binascii.c:2570,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/binascii.c:2578,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/binascii.c:2580,1
    - Dst: to_hex
      Src: /src/cpython/Modules/binascii.c:2605,1
    - Dst: to_hex
      Src: /src/cpython/Modules/binascii.c:2621,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:2652,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/binascii.c:2653,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: 2655
      start: 2482
    functionDepth: 1
    functionLinenumber: 2482
    functionLinenumberEnd: 2655
    functionName: binascii_b2a_qp_impl
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - to_hex
    - PyMem_Free
    - memchr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_b2a_qp_impl(PyObject *module, Py_buffer *data,
      int quotetabs,\n                     int istext, int header)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/binascii.c:2688,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/binascii.c:2693,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/binascii.c:2694,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/binascii.c:2698,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/binascii.c:2699,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2703,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:2704,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2708,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/binascii.c:2709,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2715,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/binascii.c:2716,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2722,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/binascii.c:2723,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2730,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/binascii.c:2731,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2737,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:2738,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2742,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:2743,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2747,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/binascii.c:2748,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2756,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/binascii.c:2757,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/binascii.c:2761,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/binascii.c:2762,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/binascii.c:2767,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2685
    functionDepth: 1
    functionLinenumber: 2685
    functionLinenumberEnd: 2773
    functionName: binascii_exec
    functionSourceFile: /src/cpython/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_GetState
    - PyBytes_FromStringAndSize
    - PyModule_Add
    - PyBytes_FromString
    - PyModule_AddObjectRef
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int binascii_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_binascii_state
      Src: /src/cpython/Modules/binascii.c:2786,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/binascii.c:2787,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/binascii.c:2788,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/binascii.c:2789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2783
    functionDepth: 2
    functionLinenumber: 2783
    functionLinenumberEnd: 2791
    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:2796,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/binascii.c:2797,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/binascii.c:2798,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/binascii.c:2799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2793
    functionDepth: 2
    functionLinenumber: 2793
    functionLinenumberEnd: 2801
    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:2806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2803
    functionDepth: 3
    functionLinenumber: 2803
    functionLinenumberEnd: 2807
    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:2824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2821
    functionDepth: 1
    functionLinenumber: 2821
    functionLinenumberEnd: 2825
    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:
    - PyErr_NoMemory
    - assert
    - PySequence_GetItem
    - _Py_FreeCharPArray
    - memcpy
    - PySequence_Size
    - PyMem_Malloc
    - Py_DECREF
    - Py_XDECREF
    - PyBytes_AsStringAndSize
    - PyBytes_GET_SIZE
    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_ITEM
    - PyErr_SetString
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    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:
    - sysconf
    - getrlimit
    - 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:
    - close
    - _Py_open_noraise
    - _is_fd_in_sorted_fd_sequence
    - _close_range_except
    - _pos_int_from_ascii
    - syscall
    - __msan_unpoison
    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: snprintf
      Src: /src/cpython/Modules/_posixsubprocess.c:519,1
    - Dst: getpid
      Src: /src/cpython/Modules/_posixsubprocess.c:519,1
    - Dst: opendir
      Src: /src/cpython/Modules/_posixsubprocess.c:520,1
    - Dst: opendir
      Src: /src/cpython/Modules/_posixsubprocess.c:522,1
    - Dst: _close_range_except
      Src: /src/cpython/Modules/_posixsubprocess.c:526,1
    - Dst: dirfd
      Src: /src/cpython/Modules/_posixsubprocess.c:531,1
    - Dst: readdir
      Src: /src/cpython/Modules/_posixsubprocess.c:536,1
    - Dst: _pos_int_from_ascii
      Src: /src/cpython/Modules/_posixsubprocess.c:538,1
    - Dst: _is_fd_in_sorted_fd_sequence
      Src: /src/cpython/Modules/_posixsubprocess.c:541,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:543,1
    - Dst: _close_range_except
      Src: /src/cpython/Modules/_posixsubprocess.c:549,1
    - Dst: closedir
      Src: /src/cpython/Modules/_posixsubprocess.c:552,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - start_fd
    - fds_to_keep
    - fds_to_keep_len
    argTypes:
    - int
    - int*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 554
    functionName: _close_open_fds_maybe_unsafe
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - closedir
    - close
    - opendir
    - _is_fdescfs_mounted_on_dev_fd
    - _is_fd_in_sorted_fd_sequence
    - _close_range_except
    - readdir
    - getpid
    - _pos_int_from_ascii
    - snprintf
    - dirfd
    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:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    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:581,1
    - Dst: _close_open_fds_fallback
      Src: /src/cpython/Modules/_posixsubprocess.c:587,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: 588
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 588
    functionName: _close_open_fds
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - _close_range_except
    - _close_open_fds_fallback
    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:607,1
    - Dst: sigaction
      Src: /src/cpython/Modules/_posixsubprocess.c:615,1
    - Dst: sigaction
      Src: /src/cpython/Modules/_posixsubprocess.c:628,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 1
    argNames:
    - child_sigmask
    argTypes:
    - sigset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 630
    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:691,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:696,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:696,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:698,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:698,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:700,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:700,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:701,1
    - Dst: close
      Src: /src/cpython/Modules/_posixsubprocess.c:701,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:706,1
    - Dst: dup
      Src: /src/cpython/Modules/_posixsubprocess.c:706,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:708,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:713,1
    - Dst: dup
      Src: /src/cpython/Modules/_posixsubprocess.c:713,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:715,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:724,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:728,1
    - Dst: dup2
      Src: /src/cpython/Modules/_posixsubprocess.c:728,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:731,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:735,1
    - Dst: dup2
      Src: /src/cpython/Modules/_posixsubprocess.c:735,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/cpython/Modules/_posixsubprocess.c:738,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:742,1
    - Dst: dup2
      Src: /src/cpython/Modules/_posixsubprocess.c:742,1
    - Dst: chdir
      Src: /src/cpython/Modules/_posixsubprocess.c:748,1
    - Dst: umask
      Src: /src/cpython/Modules/_posixsubprocess.c:755,1
    - Dst: _Py_RestoreSignals
      Src: /src/cpython/Modules/_posixsubprocess.c:758,1
    - Dst: reset_signal_handlers
      Src: /src/cpython/Modules/_posixsubprocess.c:763,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/_posixsubprocess.c:764,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:772,1
    - Dst: setsid
      Src: /src/cpython/Modules/_posixsubprocess.c:772,1
    - Dst: _Py_IS_TYPE_SIGNED
      Src: /src/cpython/Modules/_posixsubprocess.c:776,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:778,1
    - Dst: setpgid
      Src: /src/cpython/Modules/_posixsubprocess.c:778,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:784,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:785,1
    - Dst: setgroups
      Src: /src/cpython/Modules/_posixsubprocess.c:785,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:791,1
    - Dst: setregid
      Src: /src/cpython/Modules/_posixsubprocess.c:791,1
    - Dst: POSIX_CALL
      Src: /src/cpython/Modules/_posixsubprocess.c:796,1
    - Dst: setreuid
      Src: /src/cpython/Modules/_posixsubprocess.c:796,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_posixsubprocess.c:803,1
    - Dst: _close_open_fds
      Src: /src/cpython/Modules/_posixsubprocess.c:820,1
    - Dst: execve
      Src: /src/cpython/Modules/_posixsubprocess.c:829,1
    - Dst: execv
      Src: /src/cpython/Modules/_posixsubprocess.c:831,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:850,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:856,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:857,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:861,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/_posixsubprocess.c:863,1
    - Dst: strlen
      Src: /src/cpython/Modules/_posixsubprocess.c:863,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: 783
        line_start: 783
        source_file: /src/cpython/Modules/_posixsubprocess.c
    constantsTouched: []
    func_position:
      end: 864
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 864
    functionName: child_exec
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - setregid
    - dup2
    - umask
    - PyObject_Call
    - setpgid
    - assert
    - setreuid
    - _Py_RestoreSignals
    - chdir
    - _Py_IS_TYPE_SIGNED
    - close
    - execv
    - dup
    - _close_open_fds
    - execve
    - make_inheritable
    - strlen
    - _Py_set_inheritable_async_safe
    - reset_signal_handlers
    - setgroups
    - setsid
    - POSIX_CALL
    - _Py_write_noraise
    - pthread_sigmask
    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:901,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:902,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:903,1
    - Dst: assert
      Src: /src/cpython/Modules/_posixsubprocess.c:904,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/_posixsubprocess.c:916,1
    - Dst: vfork
      Src: /src/cpython/Modules/_posixsubprocess.c:917,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Modules/_posixsubprocess.c:920,1
    - Dst: fork
      Src: /src/cpython/Modules/_posixsubprocess.c:926,1
    - Dst: fork
      Src: /src/cpython/Modules/_posixsubprocess.c:931,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/cpython/Modules/_posixsubprocess.c:949,1
    - Dst: child_exec
      Src: /src/cpython/Modules/_posixsubprocess.c:952,1
    - Dst: _exit
      Src: /src/cpython/Modules/_posixsubprocess.c:960,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: 900
        line_start: 900
        source_file: /src/cpython/Modules/_posixsubprocess.c
    - condition: (preexec_fn == Py_None)
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Modules/_posixsubprocess.c
    - condition: (extra_group_size < 0)
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/cpython/Modules/_posixsubprocess.c
    - condition: (gid == (gid_t)-1)
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/cpython/Modules/_posixsubprocess.c
    constantsTouched: []
    func_position:
      end: 962
      start: 875
    functionDepth: 4
    functionLinenumber: 875
    functionLinenumberEnd: 962
    functionName: do_fork_exec
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - fork
    - PyOS_AfterFork_Child
    - assert
    - vfork
    - child_exec
    - _exit
    - PyEval_SaveThread
    - 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:1038,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_posixsubprocess.c:1040,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/_posixsubprocess.c:1042,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1044,1
    - Dst: PyInterpreterState_Main
      Src: /src/cpython/Modules/_posixsubprocess.c:1048,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1049,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1055,1
    - Dst: _sanity_check_python_fd_sequence
      Src: /src/cpython/Modules/_posixsubprocess.c:1058,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1059,1
    - Dst: PyGC_Disable
      Src: /src/cpython/Modules/_posixsubprocess.c:1065,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1068,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_posixsubprocess.c:1079,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_posixsubprocess.c:1082,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_posixsubprocess.c:1083,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_posixsubprocess.c:1088,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1089,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_posixsubprocess.c:1092,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_posixsubprocess.c:1093,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_posixsubprocess.c:1095,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1098,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_posixsubprocess.c:1099,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_posixsubprocess.c:1100,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1106,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_posixsubprocess.c:1112,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_posixsubprocess.c:1114,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_posixsubprocess.c:1126,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1127,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_posixsubprocess.c:1131,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1137,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_posixsubprocess.c:1143,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1145,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_posixsubprocess.c:1153,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_posixsubprocess.c:1156,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1159,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/_posixsubprocess.c:1163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1170,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_posixsubprocess.c:1174,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/_posixsubprocess.c:1182,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_posixsubprocess.c:1186,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/_posixsubprocess.c:1194,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_posixsubprocess.c:1198,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_posixsubprocess.c:1203,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_posixsubprocess.c:1205,1
    - Dst: convert_fds_to_keep_to_c
      Src: /src/cpython/Modules/_posixsubprocess.c:1208,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_posixsubprocess.c:1217,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_posixsubprocess.c:1229,1
    - Dst: PyOS_BeforeFork
      Src: /src/cpython/Modules/_posixsubprocess.c:1232,1
    - Dst: sigfillset
      Src: /src/cpython/Modules/_posixsubprocess.c:1253,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/_posixsubprocess.c:1254,1
    - Dst: do_fork_exec
      Src: /src/cpython/Modules/_posixsubprocess.c:1261,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/_posixsubprocess.c:1290,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/cpython/Modules/_posixsubprocess.c:1295,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_posixsubprocess.c:1299,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_posixsubprocess.c:1306,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1309,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_posixsubprocess.c:1310,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1311,1
    - Dst: _Py_FreeCharPArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1313,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1314,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_posixsubprocess.c:1315,1
    - Dst: _Py_FreeCharPArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1317,1
    - Dst: _Py_FreeCharPArray
      Src: /src/cpython/Modules/_posixsubprocess.c:1319,1
    - Dst: PyGC_Enable
      Src: /src/cpython/Modules/_posixsubprocess.c:1322,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/_posixsubprocess.c:1325,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: 1326
      start: 1013
    functionDepth: 5
    functionLinenumber: 1013
    functionLinenumberEnd: 1326
    functionName: subprocess_fork_exec_impl
    functionSourceFile: /src/cpython/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast
    - _Py_FreeCharPArray
    - _PyInterpreterState_GetFinalizing
    - PyGC_Disable
    - PyTuple_GET_SIZE
    - _Py_Gid_Converter
    - convert_fds_to_keep_to_c
    - PySys_Audit
    - PyLong_Check
    - PyMem_RawFree
    - sigfillset
    - PyMem_Free
    - PyMem_Malloc
    - Py_XDECREF
    - _PySequence_BytesToCharpArray
    - PyErr_SetString
    - PySequence_GetItem
    - PyErr_BadInternalCall
    - _Py_Uid_Converter
    - PyList_Check
    - PyTuple_SET_ITEM
    - PyGC_Enable
    - PyBytes_AsString
    - PyUnicode_FSConverter
    - Py_DECREF
    - PyLong_FromPid
    - PyTuple_New
    - PyOS_BeforeFork
    - pthread_sigmask
    - PySequence_Fast_GET_SIZE
    - PyInterpreterState_Main
    - do_fork_exec
    - _PyInterpreterState_GET
    - Py_CLEAR
    - PyMem_RawMalloc
    - _sanity_check_python_fd_sequence
    - PySequence_Size
    - PyOS_AfterFork_Parent
    - PyErr_SetFromErrno
    - PySequence_Fast_GET_ITEM
    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:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1358
    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:
    - PyThreadState_Get
    - _PyXIData_UnregisterClass
    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_Get
    - _PyXIData_INTERPID
    - PyErr_Occurred
    - assert
    - PyInterpreterState_GetID
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Modules/symtablemodule.c:39,1
    - Dst: strcmp
      Src: /src/cpython/Modules/symtablemodule.c:44,1
    - Dst: strcmp
      Src: /src/cpython/Modules/symtablemodule.c:46,1
    - Dst: strcmp
      Src: /src/cpython/Modules/symtablemodule.c:48,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/symtablemodule.c:51,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/symtablemodule.c:53,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/symtablemodule.c:59,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/symtablemodule.c:60,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/symtablemodule.c:63,1
    - Dst: _Py_SymtableStringObjectFlags
      Src: /src/cpython/Modules/symtablemodule.c:66,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/symtablemodule.c:67,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/symtablemodule.c:71,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Modules/symtablemodule.c:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - module
    - source
    - filename
    - startstr
    - modname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 74
    functionName: _symtable_symtable_impl
    functionSourceFile: /src/cpython/Modules/symtablemodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - _Py_SymtableStringObjectFlags
    - PyErr_SetString
    - _PySymtable_Free
    - PyUnicode_Check
    - _Py_SourceAsString
    - Py_XDECREF
    - PyErr_Format
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_symtable_symtable_impl(PyObject *module, PyObject *source,\n
      \                       PyObject *filename, const char *startstr,\n                        PyObject
      *modname)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:84,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:85,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:86,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:87,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:88,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:89,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:90,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:91,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:92,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:93,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:94,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:95,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:97,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:99,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:101,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:103,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:105,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:107,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:109,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:112,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:113,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:114,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:115,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:116,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/symtablemodule.c:118,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/symtablemodule.c:119,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 54
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: symtable_init_constants
    functionSourceFile: /src/cpython/Modules/symtablemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntMacro
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int symtable_init_constants(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/symtablemodule.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 144
    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: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    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:53,1
    - Dst: assert
      Src: /src/cpython/Modules/sha1module.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/cpython/Modules/sha1module.c
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    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:73,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha1module.c:77,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha1module.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - SHA1State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: newSHA1object
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    linkageType: ''
    returnType: SHA1object
    signature: 'SHA1object *

      newSHA1object(SHA1State *st)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA1object_CAST
      Src: /src/cpython/Modules/sha1module.c:88,1
    - Dst: Hacl_Hash_SHA1_free
      Src: /src/cpython/Modules/sha1module.c:90,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha1module.c:93,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/sha1module.c:94,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/sha1module.c:95,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha1module.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: SHA1_dealloc
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - _SHA1object_CAST
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Hacl_Hash_SHA1_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SHA1_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/sha1module.c:114,1
    - Dst: newSHA1object
      Src: /src/cpython/Modules/sha1module.c:117,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha1module.c:121,1
    - Dst: Hacl_Hash_SHA1_copy
      Src: /src/cpython/Modules/sha1module.c:122,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha1module.c:123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha1module.c:125,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha1module.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - SHA1object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: SHA1Type_copy_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA1_copy
    - newSHA1object
    - PyErr_NoMemory
    - HASHLIB_RELEASE_LOCK
    - Py_DECREF
    - _PyType_GetModuleState
    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:142,1
    - Dst: Hacl_Hash_SHA1_digest
      Src: /src/cpython/Modules/sha1module.c:143,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha1module.c:144,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha1module.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA1object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: SHA1Type_digest_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Hacl_Hash_SHA1_digest
    - HASHLIB_RELEASE_LOCK
    - HASHLIB_ACQUIRE_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_digest_impl(SHA1object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha1module.c:159,1
    - Dst: Hacl_Hash_SHA1_digest
      Src: /src/cpython/Modules/sha1module.c:160,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha1module.c:161,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha1module.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA1object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: SHA1Type_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA1_digest
    - HASHLIB_RELEASE_LOCK
    - HASHLIB_ACQUIRE_LOCK
    - _Py_strhex
    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:175,1
    - Dst: Hacl_Hash_SHA1_update
      Src: /src/cpython/Modules/sha1module.c:181,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: 182
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 182
    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:198,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/sha1module.c:199,1
    - Dst: update
      Src: /src/cpython/Modules/sha1module.c:201,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha1module.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHA1object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: SHA1Type_update_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - update
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    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:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    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: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: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    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: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: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    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:277,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha1module.c:282,1
    - Dst: sha1_get_state
      Src: /src/cpython/Modules/sha1module.c:285,1
    - Dst: newSHA1object::newSHA1object
      Src: /src/cpython/Modules/sha1module.c:286,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha1module.c:288,1
    - Dst: Hacl_Hash_SHA1_malloc
      Src: /src/cpython/Modules/sha1module.c:293,1
    - Dst: hash_state::hash_state
      Src: /src/cpython/Modules/sha1module.c:295,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha1module.c:298,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha1module.c:300,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha1module.c:305,1
    - Dst: update
      Src: /src/cpython/Modules/sha1module.c:307,1
    - Dst: hash_state::hash_state
      Src: /src/cpython/Modules/sha1module.c:307,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha1module.c:309,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: 313
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 313
    functionName: _sha1_sha1_impl
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - newSHA1object::newSHA1object
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyBuffer_Release
    - update
    - Hacl_Hash_SHA1_malloc
    - _Py_hashlib_data_argument
    - GET_BUFFER_VIEW_OR_ERROUT
    - sha1_get_state
    - hash_state::hash_state
    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:326,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha1module.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: _sha1_traverse
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - sha1_get_state
    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:334,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha1module.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: _sha1_clear
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - sha1_get_state
    linkageType: ''
    returnType: int
    signature: int _sha1_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha1_clear
      Src: /src/cpython/Modules/sha1module.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 343
    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:348,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha1module.c:350,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/sha1module.c:352,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/sha1module.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 366
    functionName: _sha1_exec
    functionSourceFile: /src/cpython/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyType_FromModuleAndSpec
    - PyModule_AddObjectRef
    - sha1_get_state
    linkageType: ''
    returnType: int
    signature: int _sha1_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/sha1module.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 394
    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:41,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:42,1
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/cpython/Modules/main.c:47,1
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/cpython/Modules/main.c:49,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:50,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/cpython/Modules/main.c:55,1
    - Dst: PyConfig_SetBytesArgv
      Src: /src/cpython/Modules/main.c:60,1
    - Dst: PyConfig_SetArgv
      Src: /src/cpython/Modules/main.c:63,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:65,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Modules/main.c:69,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:70,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Modules/main.c:73,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Modules/main.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - args
    argTypes:
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 78
    functionName: pymain_init
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - _Py_PreInitializeFromPyArgv
    - Py_InitializeFromConfig
    - _PyStatus_OK
    - PyConfig_SetArgv
    - PyPreConfig_InitPythonConfig
    - PyConfig_Clear
    - _PyStatus_EXCEPTION
    - PyConfig_InitPythonConfig
    - _PyRuntime_Initialize
    - PyConfig_SetBytesArgv
    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: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    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:97,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    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:106,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/main.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - exitcode_p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    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:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: 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:132,1
    - Dst: PyImport_GetImporter
      Src: /src/cpython/Modules/main.c:137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:148,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:153,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/main.c:155,1
    - Dst: pymain_err_print
      Src: /src/cpython/Modules/main.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - filename
    - importer_p
    - exitcode
    argTypes:
    - wchar_t*
    - PyObject**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 157
    functionName: pymain_get_importer
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PySys_WriteStderr
    - pymain_err_print
    - PyImport_GetImporter
    - Py_XDECREF
    - Py_DECREF
    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:166,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/main.c:166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/main.c:167,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/main.c:175,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/main.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - interp
    - path0
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: pymain_sys_path_add_path0
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyList_Insert
    - PyErr_Occurred
    - PyDict_GetItemWithError
    - _Py_ID
    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:193,1
    - Dst: stdin_is_interactive
      Src: /src/cpython/Modules/main.c:193,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:197,1
    - Dst: Py_GetVersion
      Src: /src/cpython/Modules/main.c:197,1
    - Dst: Py_GetPlatform
      Src: /src/cpython/Modules/main.c:197,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: pymain_header
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - config_run_code
    - Py_GetVersion
    - stdin_is_interactive
    - fprintf
    - Py_GetPlatform
    linkageType: ''
    returnType: void
    signature: void pymain_header(const PyConfig *config)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: config_run_code
      Src: /src/cpython/Modules/main.c:210,1
    - Dst: isatty
      Src: /src/cpython/Modules/main.c:213,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:213,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/main.c:217,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:222,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/main.c:224,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 231
    functionName: pymain_import_readline
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - fileno
    - PyImport_ImportModule
    - isatty
    - PyErr_Clear
    - config_run_code
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void pymain_import_readline(const PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:240,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:245,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:246,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/main.c:249,1
    - Dst: _PyUnicode_Dedent
      Src: /src/cpython/Modules/main.c:249,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/main.c:254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:255,1
    - Dst: _PyRun_SimpleStringFlagsWithName
      Src: /src/cpython/Modules/main.c:262,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/main.c:262,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:263,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/main.c:267,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - command
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 269
    functionName: pymain_run_command
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - pymain_exit_err_print
    - PySys_WriteStderr
    - PySys_Audit
    - Py_SETREF
    - PyUnicode_AsUTF8String
    - _PyUnicode_Dedent
    - PyBytes_AsString
    - Py_DECREF
    - _PyRun_SimpleStringFlagsWithName
    linkageType: ''
    returnType: int
    signature: int pymain_run_command(wchar_t *command)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/main.c:282,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:284,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:285,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/main.c:288,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:290,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:291,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/main.c:294,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:296,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/main.c:299,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:301,1
    - Dst: PyImport_AddModuleRef
      Src: /src/cpython/Modules/main.c:304,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:306,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/main.c:309,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/main.c:310,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/main.c:311,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:313,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
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:322,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - pythonstartup
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 324
    functionName: pymain_start_pyrepl
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_exit_err_print
    - PyImport_ImportModule
    - PyObject_Call
    - PyDict_SetItemString
    - PyObject_GetAttrString
    - Py_XDECREF
    - fprintf
    - PyImport_AddModuleRef
    - PyTuple_New
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int pymain_start_pyrepl(int pythonstartup)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:331,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:332,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/main.c:334,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:337,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:338,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:340,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:343,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:344,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/main.c:346,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:351,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:352,1
    - Dst: PyObject_Call
      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: Py_DECREF
      Src: /src/cpython/Modules/main.c:357,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - modname
    - set_argv0
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: pymain_run_module
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_exit_err_print
    - PyUnicode_FromWideChar
    - PySys_Audit
    - _PyTuple_FromPair
    - PyObject_Call
    - fprintf
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    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:370,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:371,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/main.c:374,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:377,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Modules/main.c:379,1
    - Dst: strerror
      Src: /src/cpython/Modules/main.c:380,1
    - Dst: getc
      Src: /src/cpython/Modules/main.c:387,1
    - Dst: ungetc
      Src: /src/cpython/Modules/main.c:389,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Modules/main.c:396,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:396,1
    - Dst: S_ISDIR
      Src: /src/cpython/Modules/main.c:396,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Modules/main.c:397,1
    - Dst: fclose
      Src: /src/cpython/Modules/main.c:399,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Modules/main.c:404,1
    - Dst: fclose
      Src: /src/cpython/Modules/main.c:405,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:406,1
    - Dst: _PyRun_AnyFileObject
      Src: /src/cpython/Modules/main.c:411,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: 413
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 413
    functionName: pymain_run_file_obj
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_exit_err_print
    - ungetc
    - fileno
    - PySys_FormatStderr
    - S_ISDIR
    - fclose
    - PySys_Audit
    - getc
    - _Py_fstat_noraise
    - PyErr_Clear
    - strerror
    - Py_MakePendingCalls
    - Py_fopen
    - _PyRun_AnyFileObject
    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:418,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/main.c:420,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:425,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/main.c:426,1
    - Dst: pymain_run_file_obj
      Src: /src/cpython/Modules/main.c:430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 435
    functionName: pymain_run_file
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_Print
    - Py_DECREF
    - pymain_run_file_obj
    linkageType: ''
    returnType: int
    signature: int pymain_run_file(const PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/cpython/Modules/main.c:447,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/main.c:451,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Modules/main.c:456,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/main.c:460,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:465,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/main.c:469,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:472,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/main.c:473,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Modules/main.c:476,1
    - Dst: _PyRun_SimpleFileObject
      Src: /src/cpython/Modules/main.c:481,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:482,1
    - Dst: fclose
      Src: /src/cpython/Modules/main.c:483,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:487,1
    - Dst: pymain_err_print
      Src: /src/cpython/Modules/main.c:491,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - config
    - exitcode
    argTypes:
    - PyConfig*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 493
    functionName: pymain_run_startup
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - _wgetenv
    - PySys_WriteStderr
    - PyErr_SetFromErrnoWithFilenameObjects
    - fclose
    - PySys_Audit
    - _Py_GetEnv
    - _PyRun_SimpleFileObject
    - pymain_err_print
    - PyErr_Clear
    - Py_XDECREF
    - Py_fopen
    - PyUnicode_DecodeFSDefault
    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:502,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:510,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/main.c:514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:519,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/main.c:524,1
    - Dst: pymain_err_print
      Src: /src/cpython/Modules/main.c:525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 526
    functionName: pymain_run_interactive_hook
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PySys_GetOptionalAttrString
    - PySys_WriteStderr
    - PySys_Audit
    - pymain_err_print
    - Py_DECREF
    - _PyObject_CallNoArgs
    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: 537
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 537
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: stdin_is_interactive
      Src: /src/cpython/Modules/main.c:543,1
    - Dst: pymain_set_inspect
      Src: /src/cpython/Modules/main.c:545,1
    - Dst: pymain_run_startup
      Src: /src/cpython/Modules/main.c:548,1
    - Dst: pymain_run_interactive_hook
      Src: /src/cpython/Modules/main.c:552,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Modules/main.c:558,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:559,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:562,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:563,1
    - Dst: isatty
      Src: /src/cpython/Modules/main.c:567,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:567,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Modules/main.c:568,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/main.c:569,1
    - Dst: pymain_start_pyrepl
      Src: /src/cpython/Modules/main.c:571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:572,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/main.c:575,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:576,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:577,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:579,1
    - Dst: PyRun_AnyFileExFlags
      Src: /src/cpython/Modules/main.c:583,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 585
    functionName: pymain_run_stdin
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_exit_err_print
    - pymain_run_startup
    - fileno
    - pymain_run_interactive_hook
    - PyImport_ImportModule
    - PySys_Audit
    - pymain_set_inspect
    - _Py_GetEnv
    - pymain_start_pyrepl
    - isatty
    - fprintf
    - PyErr_Clear
    - Py_MakePendingCalls
    - PyErr_ExceptionMatches
    - stdin_is_interactive
    - Py_DECREF
    - PyRun_AnyFileExFlags
    linkageType: ''
    returnType: int
    signature: int pymain_run_stdin(PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/cpython/Modules/main.c:593,1
    - Dst: pymain_set_inspect
      Src: /src/cpython/Modules/main.c:594,1
    - Dst: stdin_is_interactive
      Src: /src/cpython/Modules/main.c:597,1
    - Dst: config_run_code
      Src: /src/cpython/Modules/main.c:597,1
    - Dst: pymain_set_inspect
      Src: /src/cpython/Modules/main.c:601,1
    - Dst: pymain_run_interactive_hook
      Src: /src/cpython/Modules/main.c:602,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/main.c:606,1
    - Dst: isatty
      Src: /src/cpython/Modules/main.c:610,1
    - Dst: fileno
      Src: /src/cpython/Modules/main.c:610,1
    - Dst: _Py_GetEnv
      Src: /src/cpython/Modules/main.c:611,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/main.c:612,1
    - Dst: pymain_start_pyrepl
      Src: /src/cpython/Modules/main.c:614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:616,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/main.c:619,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:620,1
    - Dst: fprintf
      Src: /src/cpython/Modules/main.c:621,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/main.c:624,1
    - Dst: PyRun_AnyFileExFlags
      Src: /src/cpython/Modules/main.c:627,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - config
    - exitcode
    argTypes:
    - PyConfig*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 588
    functionDepth: 4
    functionLinenumber: 588
    functionLinenumberEnd: 630
    functionName: pymain_repl
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - fileno
    - pymain_run_interactive_hook
    - PyImport_ImportModule
    - stdin_is_interactive
    - PySys_Audit
    - pymain_set_inspect
    - _Py_GetEnv
    - pymain_start_pyrepl
    - isatty
    - fprintf
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - config_run_code
    - Py_DECREF
    - PyRun_AnyFileExFlags
    linkageType: ''
    returnType: void
    signature: void pymain_repl(PyConfig *config, int *exitcode)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/main.c:637,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Modules/main.c:639,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:642,1
    - Dst: _PyPathConfig_UpdateGlobal
      Src: /src/cpython/Modules/main.c:642,1
    - Dst: assert
      Src: /src/cpython/Modules/main.c:649,1
    - Dst: pymain_get_importer
      Src: /src/cpython/Modules/main.c:657,1
    - Dst: pymain_import_readline
      Src: /src/cpython/Modules/main.c:664,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/main.c:668,1
    - Dst: _PyPathConfig_ComputeSysPath0
      Src: /src/cpython/Modules/main.c:671,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/main.c:676,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/main.c:682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:684,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Modules/main.c:687,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/main.c:688,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:690,1
    - Dst: pymain_sys_path_add_path0
      Src: /src/cpython/Modules/main.c:693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/main.c:694,1
    - Dst: pymain_header
      Src: /src/cpython/Modules/main.c:700,1
    - Dst: _PyInterpreterState_SetRunningMain
      Src: /src/cpython/Modules/main.c:702,1
    - Dst: assert
      Src: /src/cpython/Modules/main.c:703,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/main.c:703,1
    - Dst: pymain_run_command
      Src: /src/cpython/Modules/main.c:706,1
    - Dst: pymain_run_module
      Src: /src/cpython/Modules/main.c:709,1
    - Dst: pymain_run_module
      Src: /src/cpython/Modules/main.c:712,1
    - Dst: pymain_run_file
      Src: /src/cpython/Modules/main.c:715,1
    - Dst: pymain_run_stdin
      Src: /src/cpython/Modules/main.c:718,1
    - Dst: pymain_repl
      Src: /src/cpython/Modules/main.c:721,1
    - Dst: pymain_exit_err_print
      Src: /src/cpython/Modules/main.c:725,1
    - Dst: _PyInterpreterState_SetNotRunningMain
      Src: /src/cpython/Modules/main.c:728,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/main.c:729,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int*
    assertStmts:
    - condition: (config->sys_path_0 == NULL)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/cpython/Modules/main.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 702
        line_start: 702
        source_file: /src/cpython/Modules/main.c
    constantsTouched: []
    func_position:
      end: 730
      start: 633
    functionDepth: 5
    functionLinenumber: 633
    functionLinenumberEnd: 730
    functionName: pymain_run_python
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - assert
    - _PyInterpreterState_SetRunningMain
    - _PyPathConfig_ComputeSysPath0
    - _PyInterpreterState_GetConfig
    - pymain_sys_path_add_path0
    - pymain_header
    - _PyStatus_EXCEPTION
    - PyMem_Free
    - Py_XDECREF
    - _PyMem_RawWcsdup
    - pymain_run_stdin
    - pymain_run_file
    - pymain_run_module
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - Py_NewRef
    - pymain_exit_err_print
    - _PyInterpreterState_SetNotRunningMain
    - pymain_import_readline
    - _PyPathConfig_UpdateGlobal
    - _PyInterpreterState_GET
    - pymain_get_importer
    - Py_CLEAR
    - pymain_run_command
    - pymain_repl
    linkageType: ''
    returnType: void
    signature: void pymain_run_python(int *exitcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_Fini2
      Src: /src/cpython/Modules/main.c:738,1
    - Dst: _PyPathConfig_ClearGlobal
      Src: /src/cpython/Modules/main.c:744,1
    - Dst: _Py_ClearArgcArgv
      Src: /src/cpython/Modules/main.c:745,1
    - Dst: _PyRuntime_Finalize
      Src: /src/cpython/Modules/main.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 747
    functionName: pymain_free
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - _PyRuntime_Finalize
    - _PyPathConfig_ClearGlobal
    - _Py_ClearArgcArgv
    - _PyImport_Fini2
    linkageType: ''
    returnType: void
    signature: void pymain_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/main.c:758,1
    - Dst: perror
      Src: /src/cpython/Modules/main.c:759,1
    - Dst: kill
      Src: /src/cpython/Modules/main.c:761,1
    - Dst: getpid
      Src: /src/cpython/Modules/main.c:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 773
    functionName: exit_sigint
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - kill
    - perror
    - getpid
    linkageType: ''
    returnType: int
    signature: int exit_sigint(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_EXIT
      Src: /src/cpython/Modules/main.c:779,1
    - Dst: pymain_free
      Src: /src/cpython/Modules/main.c:783,1
    - Dst: _Py_NO_RETURN::Py_ExitStatusException
      Src: /src/cpython/Modules/main.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 786
    functionName: _Py_NO_RETURN::pymain_exit_error
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_free
    - _Py_NO_RETURN::Py_ExitStatusException
    - _PyStatus_IS_EXIT
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      pymain_exit_error(PyStatus status)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pymain_run_python
      Src: /src/cpython/Modules/main.c:796,1
    - Dst: Py_FinalizeEx
      Src: /src/cpython/Modules/main.c:798,1
    - Dst: pymain_free
      Src: /src/cpython/Modules/main.c:804,1
    - Dst: exit_sigint
      Src: /src/cpython/Modules/main.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 789
    functionDepth: 6
    functionLinenumber: 789
    functionLinenumberEnd: 811
    functionName: Py_RunMain
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 1
    functionsReached:
    - exit_sigint
    - pymain_free
    - Py_FinalizeEx
    - pymain_run_python
    linkageType: ''
    returnType: int
    signature: int Py_RunMain(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pymain_init
      Src: /src/cpython/Modules/main.c:817,1
    - Dst: _PyStatus_IS_EXIT
      Src: /src/cpython/Modules/main.c:818,1
    - Dst: pymain_free
      Src: /src/cpython/Modules/main.c:819,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Modules/main.c:822,1
    - Dst: pymain_exit_error
      Src: /src/cpython/Modules/main.c:823,1
    - Dst: Py_RunMain
      Src: /src/cpython/Modules/main.c:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - args
    argTypes:
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 814
    functionDepth: 7
    functionLinenumber: 814
    functionLinenumberEnd: 827
    functionName: pymain_main
    functionSourceFile: /src/cpython/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_init
    - pymain_free
    - pymain_exit_error
    - _PyStatus_EXCEPTION
    - _PyStatus_IS_EXIT
    - Py_RunMain
    linkageType: ''
    returnType: int
    signature: int pymain_main(_PyArgv *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymain_main
      Src: /src/cpython/Modules/main.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 830
    functionDepth: 8
    functionLinenumber: 830
    functionLinenumberEnd: 839
    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:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 842
    functionDepth: 8
    functionLinenumber: 842
    functionLinenumberEnd: 851
    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:
    - _PyLong_FromGid
    - SET
    - PyStructSequence_New
    - Py_INCREF
    - get_grp_state
    - memcpy
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - Py_XDECREF
    - PyErr_Occurred
    - PyUnicode_DecodeFSDefault
    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:
    - _PyLong_FromGid
    - PyMutex_Unlock
    - getgrgid
    - PyErr_NoMemory
    - PyMem_RawRealloc
    - mkgrent
    - sysconf
    - getgrgid_r
    - PyMem_RawFree
    - PyErr_Format
    - Py_DECREF
    - _Py_Gid_Converter
    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:
    - getgrnam
    - PyMutex_Unlock
    - Py_DECREF
    - PyErr_NoMemory
    - PyMem_RawRealloc
    - PyUnicode_EncodeFSDefault
    - mkgrent
    - sysconf
    - PyMem_RawFree
    - PyErr_Format
    - getgrnam_r
    - PyBytes_AsStringAndSize
    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:
    - PyMutex_Unlock
    - mkgrent
    - setgrent
    - getgrent
    - Py_CLEAR
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    - PyMutex_Lock
    - 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:
    - get_grp_state
    - PyModule_AddType
    - PyStructSequence_NewType
    linkageType: ''
    returnType: int
    signature: int grpmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/grpmodule.c:381,1
    - Dst: get_grp_state
      Src: /src/cpython/Modules/grpmodule.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 383
    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:386,1
    - Dst: get_grp_state
      Src: /src/cpython/Modules/grpmodule.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: grpmodule_clear
    functionSourceFile: /src/cpython/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_grp_state
    linkageType: ''
    returnType: int
    signature: int grpmodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grpmodule_clear
      Src: /src/cpython/Modules/grpmodule.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 392
    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: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_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:
    - Py_DECREF
    - PyDict_SetItemString
    - PyUnicode_FromString
    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_GetOne
    - PyDict_SetItemString
    - PyDict_New
    - _PyLong_GetZero
    - Py_DECREF
    - add_string_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sysconfig_config_vars_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sysconfig.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: _sysconfig_get_platform_impl
    functionSourceFile: /src/cpython/Modules/_sysconfig.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sysconfig_get_platform_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_sysconfig.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: 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:
    - freeaddrinfo
    - ntohl
    - htons
    - getenv
    - strcmp
    - get_name
    - IN_MULTICAST
    - inet_pton
    - GET_AI
    - IN_EXPERIMENTAL
    - strtol
    - memcpy
    - fprintf
    - get_addr
    - ERR
    - getservbyname
    - str_isnumber
    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:
    - freeaddrinfo
    - freehostent
    - GET_AI
    - GET_CANONNAME
    - gethostbyaddr
    - getipnodebyaddr
    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:
    - freeaddrinfo
    - gethostbyname
    - IN6_IS_ADDR_V4MAPPED
    - freehostent
    - GET_AI
    - GET_CANONNAME
    - getipnodebyname
    - memcpy
    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_SETREF
    - PyUnicode_Check
    - PyUnicode_FindChar
    - PyErr_Clear
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - PyList_Size
    - Py_DECREF
    - 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
    - is_main_interpreter
    - syslog_get_argv
    - PySys_Audit
    - PyErr_SetString
    - Py_XSETREF
    - openlog
    - PyUnicode_AsUTF8
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    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:
    - is_main_interpreter
    - PySys_Audit
    - PyErr_SetString
    - syslog
    - syslog_openlog_impl
    - Py_XDECREF
    - Py_DECREF
    - Py_XNewRef
    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:
    - is_main_interpreter
    - PySys_Audit
    - PyErr_SetString
    - Py_CLEAR
    - closelog
    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:
    - PySys_Audit
    - PyMutex_Lock
    - setlogmask
    - PyMutex_Unlock
    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:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 475
    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:50,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: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    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:64,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: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - avail_out
    argTypes:
    - _BlocksOutputBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    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:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - _BlocksOutputBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    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:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_lzmamodule.c:100,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    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: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    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: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: Decompressor_CAST
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Decompressor_CAST(op)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:152,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_lzmamodule.c:155,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:158,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:167,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:170,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:173,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 2
    argNames:
    - state
    - lzret
    argTypes:
    - _lzma_state*
    - lzma_ret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 179
    functionName: catch_lzma_error
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    - PyErr_NoMemory
    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:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 190
    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:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    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: 233
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 233
    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:259,1
    - Dst: _PyLong_UInt32_Converter
      Src: /src/cpython/Modules/_lzmamodule.c:263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:264,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_lzmamodule.c:270,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_lzmamodule.c:272,1
    - Dst: lzma_lzma_preset
      Src: /src/cpython/Modules/_lzmamodule.c:275,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:276,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:277,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_lzmamodule.c:281,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:292,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - state
    - spec
    argTypes:
    - _lzma_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 299
    functionName: parse_filter_spec_lzma
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyArg_ParseTupleAndKeywords
    - PyErr_NoMemory
    - lzma_lzma_preset
    - PyErr_SetString
    - _PyLong_UInt32_Converter
    - PyMem_Free
    - PyErr_Format
    - PyMapping_GetOptionalItemString
    - Py_DECREF
    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:309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:311,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_lzmamodule.c:316,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_lzmamodule.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - state
    - spec
    argTypes:
    - _lzma_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 323
    functionName: parse_filter_spec_delta
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_SetString
    - 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:333,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:335,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_lzmamodule.c:340,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_lzmamodule.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - state
    - spec
    argTypes:
    - _lzma_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 346
    functionName: parse_filter_spec_bcj
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_SetString
    - PyErr_NoMemory
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: void
    signature: 'void *

      parse_filter_spec_bcj(_lzma_state *state, PyObject *spec)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/_lzmamodule.c:354,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:355,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_lzmamodule.c:359,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:363,1
    - Dst: lzma_vli_converter
      Src: /src/cpython/Modules/_lzmamodule.c:368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:372,1
    - Dst: parse_filter_spec_lzma
      Src: /src/cpython/Modules/_lzmamodule.c:378,1
    - Dst: parse_filter_spec_delta
      Src: /src/cpython/Modules/_lzmamodule.c:381,1
    - Dst: parse_filter_spec_bcj
      Src: /src/cpython/Modules/_lzmamodule.c:391,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:394,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 3
    argNames:
    - state
    - spec
    - ptr
    argTypes:
    - _lzma_state*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 397
    functionName: lzma_filter_converter
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - parse_filter_spec_delta
    - lzma_vli_converter
    - parse_filter_spec_bcj
    - PyErr_SetString
    - PyMapping_Check
    - parse_filter_spec_lzma
    - PyErr_Format
    - PyMapping_GetOptionalItemString
    - Py_DECREF
    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:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filters
    argTypes:
    - lzma_filter[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 405
    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:412,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:417,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_lzmamodule.c:425,1
    - Dst: lzma_filter_converter
      Src: /src/cpython/Modules/_lzmamodule.c:426,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_lzmamodule.c:429,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - state
    - filters
    - filterspecs
    argTypes:
    - _lzma_state*
    - lzma_filter[]
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 438
    functionName: parse_filter_chain_spec
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Length
    - PySequence_GetItem
    - lzma_filter_converter
    - Py_XDECREF
    - 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:449,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_lzmamodule.c:453,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:455,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_lzmamodule.c:458,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:459,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - spec
    - key
    - value
    argTypes:
    - PyObject*
    - char*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 462
    functionName: spec_add_field
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItem
    - PyLong_FromUnsignedLongLong
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int spec_add_field(PyObject *spec, const char *key, unsigned long long
      value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_lzmamodule.c:469,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:480,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:488,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:489,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:490,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:491,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:496,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:501,1
    - Dst: ADD_FIELD
      Src: /src/cpython/Modules/_lzmamodule.c:514,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:528,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - f
    argTypes:
    - lzma_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 530
    functionName: build_filter_spec
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - ADD_FIELD
    - PyErr_Format
    - PyDict_New
    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: 479
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 479
    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:569,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:569,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:570,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_lzmamodule.c:572,1
    - Dst: lzma_code
      Src: /src/cpython/Modules/_lzmamodule.c:582,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:588,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/_lzmamodule.c:595,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/_lzmamodule.c:601,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/_lzmamodule.c:607,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: 569
        line_start: 569
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 609
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 609
    functionName: compress
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 5
    functionsReached:
    - OutputBuffer_InitAndGrow
    - catch_lzma_error
    - lzma_code
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - OutputBuffer_Finish
    - assert
    - PyType_GetModuleState
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compress(Compressor *c, uint8_t *data, size_t len, lzma_action action)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_lzmamodule.c:631,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:633,1
    - Dst: compress
      Src: /src/cpython/Modules/_lzmamodule.c:636,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_lzmamodule.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - Compressor*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 640
    functionName: _lzma_LZMACompressor_compress_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyErr_SetString
    - PyMutex_Unlock
    - compress
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_compress_impl(Compressor *self, Py_buffer *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_lzmamodule.c:658,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:660,1
    - Dst: compress
      Src: /src/cpython/Modules/_lzmamodule.c:663,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_lzmamodule.c:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - Compressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 667
    functionName: _lzma_LZMACompressor_flush_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyErr_SetString
    - PyMutex_Unlock
    - compress
    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:676,1
    - Dst: parse_filter_chain_spec
      Src: /src/cpython/Modules/_lzmamodule.c:680,1
    - Dst: lzma_stream_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:682,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:683,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:685,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: 691
      start: 669
    functionDepth: 4
    functionLinenumber: 669
    functionLinenumberEnd: 691
    functionName: Compressor_init_xz
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - parse_filter_chain_spec
    - catch_lzma_error
    - free_filter_chain
    - lzma_stream_encoder
    - lzma_easy_encoder
    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:701,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:702,1
    - Dst: lzma_alone_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:705,1
    - Dst: parse_filter_chain_spec
      Src: /src/cpython/Modules/_lzmamodule.c:709,1
    - Dst: lzma_alone_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:713,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:715,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:720,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_lzmamodule.c:722,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:722,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: 728
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 728
    functionName: Compressor_init_alone
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - catch_lzma_error
    - lzma_alone_encoder
    - PyErr_SetString
    - lzma_lzma_preset
    - PyErr_Format
    - PyErr_Occurred
    - free_filter_chain
    - parse_filter_chain_spec
    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:737,1
    - Dst: parse_filter_chain_spec
      Src: /src/cpython/Modules/_lzmamodule.c:741,1
    - Dst: lzma_raw_encoder
      Src: /src/cpython/Modules/_lzmamodule.c:744,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:745,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - state
    - lzs
    - filterspecs
    argTypes:
    - _lzma_state*
    - lzma_stream*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 730
    functionDepth: 4
    functionLinenumber: 730
    functionLinenumberEnd: 752
    functionName: Compressor_init_raw
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - lzma_raw_encoder
    - catch_lzma_error
    - PyErr_SetString
    - free_filter_chain
    - parse_filter_chain_spec
    linkageType: ''
    returnType: int
    signature: int Compressor_init_raw(_lzma_state *state, lzma_stream *lzs, PyObject
      *filterspecs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_lzmamodule.c:798,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:799,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_lzmamodule.c:800,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:808,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:814,1
    - Dst: _PyLong_UInt32_Converter
      Src: /src/cpython/Modules/_lzmamodule.c:819,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:823,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_lzmamodule.c:824,1
    - Dst: Compressor_init_xz
      Src: /src/cpython/Modules/_lzmamodule.c:842,1
    - Dst: Compressor_init_alone
      Src: /src/cpython/Modules/_lzmamodule.c:848,1
    - Dst: Compressor_init_raw
      Src: /src/cpython/Modules/_lzmamodule.c:854,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:868,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/cpython/Modules/_lzmamodule.c
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 870
      start: 787
    functionDepth: 5
    functionLinenumber: 787
    functionLinenumberEnd: 870
    functionName: Compressor_new
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_SetString
    - _PyLong_UInt32_Converter
    - Compressor_init_alone
    - Compressor_init_raw
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    - Compressor_init_xz
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Compressor_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Compressor_CAST
      Src: /src/cpython/Modules/_lzmamodule.c:875,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:876,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_lzmamodule.c:876,1
    - Dst: lzma_end
      Src: /src/cpython/Modules/_lzmamodule.c:877,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:878,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_lzmamodule.c:879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->mutex))
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 881
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 881
    functionName: Compressor_dealloc
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Compressor_CAST
    - lzma_end
    - PyTypeObject*::tp_free
    - assert
    - Py_DECREF
    - Py_TYPE
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void Compressor_dealloc(PyObject *op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_lzmamodule.c:948,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:948,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:949,1
    - Dst: OutputBuffer_InitAndGrow
      Src: /src/cpython/Modules/_lzmamodule.c:951,1
    - Dst: lzma_code
      Src: /src/cpython/Modules/_lzmamodule.c:959,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:965,1
    - Dst: FT_ATOMIC_STORE_INT_RELAXED
      Src: /src/cpython/Modules/_lzmamodule.c:969,1
    - Dst: lzma_get_check
      Src: /src/cpython/Modules/_lzmamodule.c:969,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_lzmamodule.c:972,1
    - Dst: OutputBuffer_GetDataSize
      Src: /src/cpython/Modules/_lzmamodule.c:979,1
    - Dst: OutputBuffer_Grow
      Src: /src/cpython/Modules/_lzmamodule.c:982,1
    - Dst: OutputBuffer_Finish
      Src: /src/cpython/Modules/_lzmamodule.c:990,1
    - Dst: OutputBuffer_OnError
      Src: /src/cpython/Modules/_lzmamodule.c:996,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: 948
        line_start: 948
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 998
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 998
    functionName: decompress_buf
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 2
    functionsReached:
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - OutputBuffer_InitAndGrow
    - catch_lzma_error
    - lzma_code
    - OutputBuffer_OnError
    - OutputBuffer_Grow
    - FT_ATOMIC_STORE_INT_RELAXED
    - assert
    - OutputBuffer_Finish
    - lzma_get_check
    - OutputBuffer_GetDataSize
    - PyType_GetModuleState
    - Py_TYPE
    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:1027,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_lzmamodule.c:1029,1
    - Dst: memmove
      Src: /src/cpython/Modules/_lzmamodule.c:1038,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_lzmamodule.c:1042,1
    - Dst: decompress_buf
      Src: /src/cpython/Modules/_lzmamodule.c:1052,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_lzmamodule.c:1059,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_lzmamodule.c:1061,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_lzmamodule.c:1066,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_lzmamodule.c:1076,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1079,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_lzmamodule.c:1082,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Modules/_lzmamodule.c:1086,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:1097,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_lzmamodule.c:1103,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_lzmamodule.c:1105,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_lzmamodule.c:1112,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_lzmamodule.c:1121,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    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: 1078
        line_start: 1078
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1123
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1123
    functionName: decompress
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 2
    functionsReached:
    - decompress_buf
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - PyMem_Malloc
    - PyBytes_FromStringAndSize
    - memmove
    - PyMem_Realloc
    - Py_XSETREF
    - memcpy
    - PyMem_Free
    - assert
    - PyErr_SetNone
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress(Decompressor *d, uint8_t *data, size_t len, Py_ssize_t max_length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_lzmamodule.c:1155,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1157,1
    - Dst: decompress
      Src: /src/cpython/Modules/_lzmamodule.c:1159,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_lzmamodule.c:1160,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: 1162
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1162
    functionName: _lzma_LZMADecompressor_decompress_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyErr_SetString
    - PyMutex_Unlock
    - decompress
    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:1170,1
    - Dst: lzma_raw_decoder
      Src: /src/cpython/Modules/_lzmamodule.c:1173,1
    - Dst: free_filter_chain
      Src: /src/cpython/Modules/_lzmamodule.c:1174,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - state
    - lzs
    - filterspecs
    argTypes:
    - _lzma_state*
    - lzma_stream*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1164
    functionDepth: 4
    functionLinenumber: 1164
    functionLinenumberEnd: 1181
    functionName: Decompressor_init_raw
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - catch_lzma_error
    - free_filter_chain
    - parse_filter_chain_spec
    - lzma_raw_decoder
    linkageType: ''
    returnType: int
    signature: int Decompressor_init_raw(_lzma_state *state, lzma_stream *lzs, PyObject
      *filterspecs)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_lzmamodule.c:1218,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1219,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1223,1
    - Dst: _PyLong_UInt64_Converter
      Src: /src/cpython/Modules/_lzmamodule.c:1227,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1233,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lzmamodule.c:1237,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1242,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_lzmamodule.c:1243,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_lzmamodule.c:1259,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_lzmamodule.c:1259,1
    - Dst: lzma_auto_decoder
      Src: /src/cpython/Modules/_lzmamodule.c:1263,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1264,1
    - Dst: lzma_stream_decoder
      Src: /src/cpython/Modules/_lzmamodule.c:1270,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1271,1
    - Dst: lzma_alone_decoder
      Src: /src/cpython/Modules/_lzmamodule.c:1278,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1279,1
    - Dst: Decompressor_init_raw
      Src: /src/cpython/Modules/_lzmamodule.c:1286,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lzmamodule.c:1292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:1300,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 4
    argNames:
    - type
    - format
    - memlimit
    - filters
    argTypes:
    - PyTypeObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1218
        line_start: 1218
        source_file: /src/cpython/Modules/_lzmamodule.c
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 1241
        line_start: 1241
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1302
      start: 1209
    functionDepth: 5
    functionLinenumber: 1209
    functionLinenumberEnd: 1302
    functionName: _lzma_LZMADecompressor_impl
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - _PyLong_UInt64_Converter
    - lzma_auto_decoder
    - Py_XSETREF
    - catch_lzma_error
    - PyErr_SetString
    - lzma_stream_decoder
    - PyErr_Format
    - assert
    - Py_DECREF
    - lzma_alone_decoder
    - PyTypeObject*::tp_alloc
    - Decompressor_init_raw
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lzma_LZMADecompressor_impl(PyTypeObject *type, int format,\n
      \                           PyObject *memlimit, PyObject *filters)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decompressor_CAST
      Src: /src/cpython/Modules/_lzmamodule.c:1307,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1308,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_lzmamodule.c:1308,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lzmamodule.c:1311,1
    - Dst: lzma_end
      Src: /src/cpython/Modules/_lzmamodule.c:1313,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1314,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lzmamodule.c:1315,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_lzmamodule.c:1316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lzmamodule.c:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->mutex))
      pos:
        line_end: 1307
        line_start: 1307
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1318
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1318
    functionName: Decompressor_dealloc
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - lzma_end
    - Decompressor_CAST
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - PyMem_Free
    - assert
    - Py_DECREF
    - Py_TYPE
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void Decompressor_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decompressor_CAST
      Src: /src/cpython/Modules/_lzmamodule.c:1340,1
    - Dst: FT_ATOMIC_LOAD_CHAR_RELAXED
      Src: /src/cpython/Modules/_lzmamodule.c:1341,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_lzmamodule.c:1342,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_lzmamodule.c:1344,1
    - Dst: assert
      Src: /src/cpython/Modules/_lzmamodule.c:1345,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_lzmamodule.c:1346,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_lzmamodule.c:1347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (self->unused_data != NULL)
      pos:
        line_end: 1344
        line_start: 1344
        source_file: /src/cpython/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1349
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1349
    functionName: Decompressor_unused_data_get
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyMutex_Unlock
    - FT_ATOMIC_LOAD_CHAR_RELAXED
    - Decompressor_CAST
    - assert
    - PyMutex_Lock
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Decompressor_unused_data_get(PyObject *op, void *Py_UNUSED(closure))'
  - 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
    - PyMem_Free
    - assert
    - get_lzma_state
    - _lzma__encode_filter_properties_impl
    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: PyBytesWriter_Create
      Src: /src/cpython/Modules/_lzmamodule.c:1456,1
    - Dst: lzma_properties_encode
      Src: /src/cpython/Modules/_lzmamodule.c:1461,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_lzmamodule.c:1461,1
    - Dst: catch_lzma_error
      Src: /src/cpython/Modules/_lzmamodule.c:1462,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_lzmamodule.c:1466,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_lzmamodule.c:1469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    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:
    - lzma_properties_encode
    - lzma_properties_size
    - catch_lzma_error
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - PyBytesWriter_Finish
    - assert
    - PyBytesWriter_GetData
    - get_lzma_state
    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:
    - free
    - lzma_properties_decode
    - catch_lzma_error
    - build_filter_spec
    - assert
    - get_lzma_state
    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:
    - PyLong_FromLongLong
    - PyModule_Add
    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: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1573,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/cpython/Modules/_lzmamodule.c:1574,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/cpython/Modules/_lzmamodule.c:1576,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lzmamodule.c:1581,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_lzmamodule.c:1586,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lzmamodule.c:1592,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_lzmamodule.c:1596,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lzmamodule.c:1602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1607
    functionName: lzma_exec
    functionSourceFile: /src/cpython/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - ADD_INT_MACRO
    - PyErr_NewExceptionWithDoc
    - PyModule_AddType
    - PyType_FromModuleAndSpec
    - ADD_INT_PREFIX_MACRO
    - get_lzma_state
    - PyTuple_New
    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:1627,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1628,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1629,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1630,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lzmamodule.c:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1633
    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:1638,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1639,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1640,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1641,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lzmamodule.c:1642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1635
    functionDepth: 2
    functionLinenumber: 1635
    functionLinenumberEnd: 1644
    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:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1646
    functionDepth: 3
    functionLinenumber: 1646
    functionLinenumberEnd: 1650
    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:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1667
    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:107,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.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/selectmodule.c
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    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: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    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:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd2obj
    argTypes:
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    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:154,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/selectmodule.c:156,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/selectmodule.c:160,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:164,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/selectmodule.c:167,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/selectmodule.c:168,1
    - Dst: _PyIsSelectable_fd
      Src: /src/cpython/Modules/selectmodule.c:174,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:175,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/selectmodule.c:182,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:195,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:200,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - seq
    - set
    - fd2obj
    argTypes:
    - PyObject*
    - fd_set*
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 202
    functionName: seq2set
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - FD_ZERO
    - _PyIsSelectable_fd
    - PyErr_SetString
    - FD_SET
    - PyObject_AsFileDescriptor
    - Py_XDECREF
    - Py_DECREF
    - PySequence_Fast_GET_ITEM
    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:213,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:216,1
    - Dst: FD_ISSET
      Src: /src/cpython/Modules/selectmodule.c:223,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/selectmodule.c:227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - set
    - fd2obj
    argTypes:
    - fd_set*
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 237
    functionName: set2list
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - Py_DECREF
    - FD_ISSET
    - PyList_New
    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:306,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/selectmodule.c:308,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:309,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/selectmodule.c:316,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:319,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/selectmodule.c:327,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/selectmodule.c:328,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/selectmodule.c:329,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:331,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:332,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:333,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:334,1
    - Dst: seq2set
      Src: /src/cpython/Modules/selectmodule.c:344,1
    - Dst: seq2set
      Src: /src/cpython/Modules/selectmodule.c:346,1
    - Dst: seq2set
      Src: /src/cpython/Modules/selectmodule.c:348,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:356,1
    - Dst: select
      Src: /src/cpython/Modules/selectmodule.c:362,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:374,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:378,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/selectmodule.c:381,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/selectmodule.c:382,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/selectmodule.c:383,1
    - Dst: _PyTime_AsTimeval_clamp
      Src: /src/cpython/Modules/selectmodule.c:387,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/selectmodule.c:394,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/selectmodule.c:394,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:398,1
    - Dst: set2list
      Src: /src/cpython/Modules/selectmodule.c:406,1
    - Dst: set2list
      Src: /src/cpython/Modules/selectmodule.c:407,1
    - Dst: set2list
      Src: /src/cpython/Modules/selectmodule.c:408,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/selectmodule.c:409,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/selectmodule.c:412,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:414,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:415,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:416,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: 417
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 417
    functionName: select_select_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - _PyDeadline_Init
    - _PyTime_FromSecondsObject
    - PyErr_Occurred
    - PyErr_NoMemory
    - PyErr_SetExcFromWindowsErr
    - PyMem_Free
    - Py_XDECREF
    - PyMem_NEW
    - _PyDeadline_Get
    - PyErr_SetString
    - set2list
    - _PyTime_AsTimeval
    - select
    - FD_ZERO
    - PyErr_CheckSignals
    - _PyTime_AsTimeval_clamp
    - seq2set
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyTuple_Pack
    - PyErr_SetFromErrno
    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: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    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:458,1
    - Dst: PyMem_RESIZE
      Src: /src/cpython/Modules/selectmodule.c:459,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:462,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/selectmodule.c:467,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:468,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/selectmodule.c:470,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/selectmodule.c:471,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - pollObject*
    assertStmts:
    - condition: (i < self->ufd_len)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/cpython/Modules/selectmodule.c
    - condition: (i == self->ufd_len)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 477
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 477
    functionName: update_ufd_array
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RESIZE
    - PyErr_NoMemory
    - PyDict_Next
    - PyLong_AsLong
    - assert
    - PyDict_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int update_ufd_array(pollObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:501,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:506,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/selectmodule.c:509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 518
    functionName: select_poll_register_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromLong
    - PyDict_SetItem
    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:543,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/selectmodule.c:546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:548,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:554,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:559,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/selectmodule.c:562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 571
    functionName: select_poll_modify_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_SetItem
    - PyDict_Contains
    - Py_DECREF
    - PyErr_SetFromErrno
    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:591,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/selectmodule.c:595,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - pollObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 606
    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: 24
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromMillisecondsObject
      Src: /src/cpython/Modules/selectmodule.c:634,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/selectmodule.c:636,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:637,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/selectmodule.c:649,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:661,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:663,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:681,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:686,1
    - Dst: update_ufd_array
      Src: /src/cpython/Modules/selectmodule.c:693,1
    - Dst: ppoll
      Src: /src/cpython/Modules/selectmodule.c:704,1
    - Dst: poll
      Src: /src/cpython/Modules/selectmodule.c:706,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:714,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:720,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/selectmodule.c:726,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:730,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:732,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:742,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:748,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/selectmodule.c:760,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:763,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:765,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:768,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:776,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:779,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:786,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 100
    argCount: 2
    argNames:
    - self
    - timeout_obj
    argTypes:
    - pollObject*
    - PyObject*
    assertStmts:
    - condition: (ts_p == &ts)
      pos:
        line_end: 729
        line_start: 729
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 788
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 788
    functionName: select_poll_poll_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyDeadline_Init
    - assert
    - _PyTime_AsMilliseconds
    - ppoll
    - _PyTime_FromMillisecondsObject
    - PyList_New
    - _PyTime_AsTimespec
    - update_ufd_array
    - _PyDeadline_Get
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    - PyList_SET_ITEM
    - PyErr_CheckSignals
    - PyErr_ExceptionMatches
    - PyErr_Format
    - poll
    - PyErr_SetFromErrno
    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:794,1
    - Dst: get_select_state
      Src: /src/cpython/Modules/selectmodule.c:794,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/selectmodule.c:802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 808
    functionName: newPollObject
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_select_state
    - PyObject_New
    - PyDict_New
    linkageType: ''
    returnType: pollObject
    signature: 'pollObject *

      newPollObject(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pollObject_CAST
      Src: /src/cpython/Modules/selectmodule.c:813,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:814,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:816,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:818,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/selectmodule.c:819,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 821
    functionName: poll_dealloc
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pollObject_CAST
    - Py_XDECREF
    - PyMem_Free
    - Py_DECREF
    - PyObject_Free
    - Py_TYPE
    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: 836
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 836
    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:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 842
    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:853,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 872
    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:879,1
    - Dst: devpoll_flush
      Src: /src/cpython/Modules/selectmodule.c:886,1
    - Dst: devpoll_flush
      Src: /src/cpython/Modules/selectmodule.c:895,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: 900
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 900
    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:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - devpollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 922
    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:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - devpollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 944
    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:961,1
    - Dst: devpoll_flush
      Src: /src/cpython/Modules/selectmodule.c:967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - devpollObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 972
    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:999,1
    - Dst: _PyTime_FromMillisecondsObject
      Src: /src/cpython/Modules/selectmodule.c:1007,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/selectmodule.c:1009,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:1010,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:1017,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1019,1
    - Dst: devpoll_flush
      Src: /src/cpython/Modules/selectmodule.c:1024,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:1032,1
    - Dst: ioctl
      Src: /src/cpython/Modules/selectmodule.c:1039,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:1046,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:1050,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:1055,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1062,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:1067,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:1072,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:1073,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:1075,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:1076,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/selectmodule.c:1079,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:1082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1088,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 2
    argNames:
    - self
    - timeout_obj
    argTypes:
    - devpollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1090
    functionName: select_devpoll_poll_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - ioctl
    - PyList_SET_ITEM
    - PyLong_FromLong
    - Py_DECREF
    - _PyDeadline_Init
    - devpoll_flush
    - PyErr_CheckSignals
    - _PyDeadline_Get
    - PyErr_SetString
    - _PyTime_FromMillisecondsObject
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyList_New
    - devpoll_err_closed
    - Py_XDECREF
    - PyErr_SetFromErrno
    - _PyTime_AsMilliseconds
    - _PyTuple_FromPairSteal
    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:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1105
    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:1120,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1127
    functionName: select_devpoll_close_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - devpoll_internal_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_close_impl(devpollObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: devpollObject_CAST
      Src: /src/cpython/Modules/selectmodule.c:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1137
    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:1151,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:1152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1146
    functionDepth: 2
    functionLinenumber: 1146
    functionLinenumberEnd: 1153
    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:1175,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1177,1
    - Dst: _Py_open
      Src: /src/cpython/Modules/selectmodule.c:1181,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/selectmodule.c:1185,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1187,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:1188,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/selectmodule.c:1192,1
    - Dst: get_select_state
      Src: /src/cpython/Modules/selectmodule.c:1192,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1194,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:1195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1204
    functionName: newDevPollObject
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - close
    - PyMem_NEW
    - PyErr_NoMemory
    - _Py_open
    - getrlimit
    - PyMem_Free
    - PyErr_SetFromErrno
    - get_select_state
    - PyObject_New
    linkageType: ''
    returnType: devpollObject
    signature: 'devpollObject *

      newDevPollObject(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: devpollObject_CAST
      Src: /src/cpython/Modules/selectmodule.c:1209,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:1210,1
    - Dst: devpoll_internal_close
      Src: /src/cpython/Modules/selectmodule.c:1211,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:1212,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/selectmodule.c:1213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1215
    functionName: devpoll_dealloc
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_DECREF
    - PyObject_Free
    - devpoll_internal_close
    - devpollObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void devpoll_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newPollObject
      Src: /src/cpython/Modules/selectmodule.c:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1244
    functionDepth: 3
    functionLinenumber: 1244
    functionLinenumberEnd: 1249
    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:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1262
    functionDepth: 3
    functionLinenumber: 1262
    functionLinenumberEnd: 1267
    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:1285,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1289,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:1290,1
    - Dst: poll
      Src: /src/cpython/Modules/selectmodule.c:1291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1298
    functionName: select_have_broken_poll
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - poll
    - close
    - pipe
    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: 1321
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1321
    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:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1327
    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:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1342
    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:1348,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/selectmodule.c:1349,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:1350,1
    - Dst: epoll_alloc
      Src: /src/cpython/Modules/selectmodule.c:1351,1
    - Dst: epoll_create1
      Src: /src/cpython/Modules/selectmodule.c:1358,1
    - Dst: epoll_create
      Src: /src/cpython/Modules/selectmodule.c:1360,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1369,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/selectmodule.c:1374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - type
    - sizehint
    - fd
    argTypes:
    - PyTypeObject*
    - int
    - SOCKET
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 1347
        line_start: 1347
        source_file: /src/cpython/Modules/selectmodule.c
    - condition: (epoll_alloc != NULL)
      pos:
        line_end: 1349
        line_start: 1349
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 1381
      start: 1344
    functionDepth: 1
    functionLinenumber: 1344
    functionLinenumberEnd: 1381
    functionName: newPyEpoll_Object
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - epoll_create1
    - _Py_set_inheritable
    - epoll_alloc
    - epoll_create
    - assert
    - Py_DECREF
    - PyErr_SetFromErrno
    - PyType_GetSlot
    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:1408,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1414,1
    - Dst: newPyEpoll_Object
      Src: /src/cpython/Modules/selectmodule.c:1419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - type
    - sizehint
    - flags
    argTypes:
    - PyTypeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1420
    functionName: select_epoll_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - newPyEpoll_Object
    - PyErr_SetString
    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:1426,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:1427,1
    - Dst: pyepoll_internal_close
      Src: /src/cpython/Modules/selectmodule.c:1428,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/selectmodule.c:1429,1
    - Dst: epoll_free
      Src: /src/cpython/Modules/selectmodule.c:1430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1432
    functionName: pyepoll_dealloc
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pyepoll_internal_close
    - epoll_free
    - pyEpoll_Object_CAST
    - Py_DECREF
    - PyType_GetSlot
    - 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:1447,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1454
    functionName: select_epoll_close_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - pyepoll_internal_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_close_impl(pyEpoll_Object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pyEpoll_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:1460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1465
    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:1478,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:1479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1473
    functionDepth: 2
    functionLinenumber: 1473
    functionLinenumberEnd: 1480
    functionName: select_epoll_fileno_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - pyepoll_err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_fileno_impl(pyEpoll_Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newPyEpoll_Object
      Src: /src/cpython/Modules/selectmodule.c:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - fd
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1499
    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:1509,1
    - Dst: epoll_ctl
      Src: /src/cpython/Modules/selectmodule.c:1517,1
    - Dst: epoll_ctl
      Src: /src/cpython/Modules/selectmodule.c:1525,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1534,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: 1538
      start: 1502
    functionDepth: 2
    functionLinenumber: 1502
    functionLinenumberEnd: 1538
    functionName: pyepoll_internal_ctl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - epoll_ctl
    - pyepoll_err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyepoll_internal_ctl(int epfd, int op, int fd, unsigned int events)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_internal_ctl
      Src: /src/cpython/Modules/selectmodule.c:1559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pyEpoll_Object*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1554
    functionDepth: 3
    functionLinenumber: 1554
    functionLinenumberEnd: 1560
    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:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pyEpoll_Object*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1573
    functionDepth: 3
    functionLinenumber: 1573
    functionLinenumberEnd: 1579
    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:1594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - pyEpoll_Object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1590
    functionDepth: 3
    functionLinenumber: 1590
    functionLinenumberEnd: 1595
    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:1623,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/selectmodule.c:1628,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/selectmodule.c:1630,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:1631,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:1638,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1640,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:1655,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:1663,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/selectmodule.c:1669,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:1671,1
    - Dst: epoll_wait
      Src: /src/cpython/Modules/selectmodule.c:1678,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:1685,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:1689,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/selectmodule.c:1694,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:1700,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:1704,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/selectmodule.c:1710,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:1712,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:1715,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:1719,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 3
    argNames:
    - self
    - timeout_obj
    - maxevents
    argTypes:
    - pyEpoll_Object*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1612
    functionDepth: 2
    functionLinenumber: 1612
    functionLinenumberEnd: 1721
    functionName: select_epoll_poll_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyMem_New
    - _PyDeadline_Init
    - PyErr_NoMemory
    - _PyTime_FromSecondsObject
    - PyErr_CheckSignals
    - PyErr_SetString
    - _PyDeadline_Get
    - pyepoll_err_closed
    - Py_BuildValue
    - Py_CLEAR
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyList_New
    - epoll_wait
    - PyMem_Free
    - PyErr_SetFromErrno
    - _PyTime_AsMilliseconds
    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:1734,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/selectmodule.c:1736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1729
    functionDepth: 2
    functionLinenumber: 1729
    functionLinenumberEnd: 1737
    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:1754,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:1754,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/selectmodule.c:1755,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: 1756
      start: 1749
    functionDepth: 1
    functionLinenumber: 1749
    functionLinenumberEnd: 1756
    functionName: select_epoll___exit___impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _selectstate_by_type
    - Py_TYPE
    - PyObject_CallMethodObjArgs
    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: 1830
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1830
    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: 1831
      start: 1830
    functionDepth: 0
    functionLinenumber: 1830
    functionLinenumberEnd: 1831
    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: 1838
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1838
    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: 1919
      start: 1918
    functionDepth: 0
    functionLinenumber: 1918
    functionLinenumberEnd: 1919
    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:1933,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/selectmodule.c:1934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1930
    functionDepth: 1
    functionLinenumber: 1930
    functionLinenumberEnd: 1939
    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:1951,1
    - Dst: EV_SET
      Src: /src/cpython/Modules/selectmodule.c:1952,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/selectmodule.c:1954,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/selectmodule.c:1962,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/selectmodule.c:1963,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:1973,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/selectmodule.c:1979,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/selectmodule.c:1980,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1985
    functionName: kqueue_event_init
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - EV_SET
    - PyErr_SetString
    - PyLong_AsNativeBytes
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyArg_ParseTupleAndKeywords
    - PyIndex_Check
    - kqueue_event_Object_CAST
    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:1991,1
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:1992,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:1992,1
    - Dst: kqueue_event_Check
      Src: /src/cpython/Modules/selectmodule.c:1994,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:2000,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:2001,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:2002,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:2003,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:2004,1
    - Dst: CMP
      Src: /src/cpython/Modules/selectmodule.c:2005,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Modules/selectmodule.c:2009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - lhs
    - rhs
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1987
    functionDepth: 1
    functionLinenumber: 1987
    functionLinenumberEnd: 2010
    functionName: kqueue_event_richcompare
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - CMP
    - _selectstate_by_type
    - kqueue_event_Check
    - kqueue_event_Object_CAST
    - 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: 2000
      start: 1999
    functionDepth: 0
    functionLinenumber: 1999
    functionLinenumberEnd: 2000
    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:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2030
    functionDepth: 1
    functionLinenumber: 2030
    functionLinenumberEnd: 2035
    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:2039,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2046,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2049,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: 2045
        line_start: 2045
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2053
      start: 2037
    functionDepth: 2
    functionLinenumber: 2037
    functionLinenumberEnd: 2053
    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:2062,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2063,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/selectmodule.c:2067,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/selectmodule.c:2072,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/selectmodule.c:2076,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2077,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/selectmodule.c:2078,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/selectmodule.c:2082,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/selectmodule.c:2085,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/selectmodule.c:2089,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2090,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/selectmodule.c:2091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:2094,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2096,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2097,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2098,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2099,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state->kqueue_open_list == NULL)
      pos:
        line_end: 2062
        line_start: 2062
        source_file: /src/cpython/Modules/selectmodule.c
    - condition: (args != NULL)
      pos:
        line_end: 2076
        line_start: 2076
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2102
      start: 2060
    functionDepth: 2
    functionLinenumber: 2060
    functionLinenumberEnd: 2102
    functionName: kqueue_tracking_init
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyObject_Call
    - PyErr_WarnFormat
    - PyCFunction_New
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_XDECREF
    - get_select_state
    - PyImport_ImportModuleAttrString
    - PyTuple_New
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void kqueue_tracking_init(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2107,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/selectmodule.c:2108,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:2110,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: 2106
        line_start: 2106
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2117
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2117
    functionName: kqueue_tracking_add_lock_held
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - 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:2123,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2123,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/selectmodule.c:2124,1
    - Dst: kqueue_tracking_init
      Src: /src/cpython/Modules/selectmodule.c:2126,1
    - Dst: kqueue_tracking_add_lock_held
      Src: /src/cpython/Modules/selectmodule.c:2128,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/selectmodule.c:2129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - _selectstate*
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2119
    functionDepth: 3
    functionLinenumber: 2119
    functionLinenumberEnd: 2131
    functionName: kqueue_tracking_add
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - kqueue_tracking_init
    - kqueue_tracking_add_lock_held
    - PyType_GetModule
    - Py_TYPE
    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:2141,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - _selectstate*
    - kqueue_queue_Object*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 2147
        line_start: 2147
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2149
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2149
    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:2154,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/selectmodule.c:2154,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2154,1
    - Dst: kqueue_tracking_remove_lock_held
      Src: /src/cpython/Modules/selectmodule.c:2155,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/selectmodule.c:2156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - _selectstate*
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2151
    functionDepth: 2
    functionLinenumber: 2151
    functionLinenumberEnd: 2157
    functionName: kqueue_tracking_remove
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:2166,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2166,1
    - Dst: kqueue_tracking_remove
      Src: /src/cpython/Modules/selectmodule.c:2167,1
    - Dst: close
      Src: /src/cpython/Modules/selectmodule.c:2169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2159
    functionDepth: 3
    functionLinenumber: 2159
    functionLinenumberEnd: 2174
    functionName: kqueue_queue_internal_close
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _selectstate_by_type
    - close
    - kqueue_tracking_remove
    - Py_TYPE
    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:2180,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/selectmodule.c:2181,1
    - Dst: assert
      Src: /src/cpython/Modules/selectmodule.c:2182,1
    - Dst: queue_alloc
      Src: /src/cpython/Modules/selectmodule.c:2183,1
    - Dst: kqueue
      Src: /src/cpython/Modules/selectmodule.c:2190,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:2197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:2198,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/selectmodule.c:2203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:2204,1
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:2209,1
    - Dst: kqueue_tracking_add
      Src: /src/cpython/Modules/selectmodule.c:2210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/selectmodule.c:2211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - type
    - fd
    argTypes:
    - PyTypeObject*
    - SOCKET
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 2179
        line_start: 2179
        source_file: /src/cpython/Modules/selectmodule.c
    - condition: (queue_alloc != NULL)
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/cpython/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 2216
      start: 2176
    functionDepth: 4
    functionLinenumber: 2176
    functionLinenumberEnd: 2216
    functionName: newKqueue_Object
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - kqueue_tracking_add
    - kqueue
    - _Py_set_inheritable
    - _selectstate_by_type
    - queue_alloc
    - assert
    - Py_DECREF
    - PyErr_SetFromErrno
    - PyType_GetSlot
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newKqueue_Object(PyTypeObject *type, SOCKET fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newKqueue_Object
      Src: /src/cpython/Modules/selectmodule.c:2241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2237
    functionDepth: 5
    functionLinenumber: 2237
    functionLinenumberEnd: 2242
    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:2247,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/selectmodule.c:2248,1
    - Dst: kqueue_queue_internal_close
      Src: /src/cpython/Modules/selectmodule.c:2249,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/selectmodule.c:2250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2244
    functionDepth: 4
    functionLinenumber: 2244
    functionLinenumberEnd: 2251
    functionName: kqueue_queue_finalize
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    - kqueue_queue_internal_close
    - kqueue_queue_Object_CAST
    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:2266,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:2269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2262
    functionDepth: 4
    functionLinenumber: 2262
    functionLinenumberEnd: 2273
    functionName: select_kqueue_close_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - kqueue_queue_internal_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_close_impl(kqueue_queue_Object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_queue_Object_CAST
      Src: /src/cpython/Modules/selectmodule.c:2278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2275
    functionDepth: 1
    functionLinenumber: 2275
    functionLinenumberEnd: 2283
    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:2296,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/selectmodule.c:2297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2291
    functionDepth: 2
    functionLinenumber: 2291
    functionLinenumberEnd: 2298
    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:2316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - fd
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2310
    functionDepth: 5
    functionLinenumber: 2310
    functionLinenumberEnd: 2317
    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:2350,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2350,1
    - Dst: kqueue_queue_err_closed
      Src: /src/cpython/Modules/selectmodule.c:2353,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:2356,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/selectmodule.c:2366,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/selectmodule.c:2368,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/selectmodule.c:2374,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:2378,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/selectmodule.c:2386,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/selectmodule.c:2390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:2391,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/selectmodule.c:2395,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/selectmodule.c:2397,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:2399,1
    - Dst: _selectstate_by_type
      Src: /src/cpython/Modules/selectmodule.c:2402,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/selectmodule.c:2402,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:2404,1
    - Dst: kqueue_event_Check
      Src: /src/cpython/Modules/selectmodule.c:2405,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/selectmodule.c:2406,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2413,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/selectmodule.c:2418,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/selectmodule.c:2420,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/selectmodule.c:2426,1
    - Dst: kevent
      Src: /src/cpython/Modules/selectmodule.c:2432,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/selectmodule.c:2440,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/selectmodule.c:2444,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/selectmodule.c:2449,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/selectmodule.c:2456,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/selectmodule.c:2460,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/selectmodule.c:2468,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/selectmodule.c:2473,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2475,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2476,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2480,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/selectmodule.c:2481,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2482,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/selectmodule.c:2483,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: 2485
      start: 2335
    functionDepth: 2
    functionLinenumber: 2335
    functionLinenumberEnd: 2485
    functionName: select_kqueue_control_impl
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PySequence_Fast
    - _PyDeadline_Init
    - _PyTime_FromSecondsObject
    - _selectstate_by_type
    - kqueue_event_Check
    - Py_TYPE
    - PyObject_New
    - PyErr_NoMemory
    - kqueue_queue_err_closed
    - PyList_New
    - PyMem_Free
    - Py_XDECREF
    - _PyTime_AsTimespec
    - _PyDeadline_Get
    - PyErr_SetString
    - PyList_SET_ITEM
    - PySequence_Fast_GET_SIZE
    - kevent
    - PyErr_CheckSignals
    - Py_CLEAR
    - PyErr_Format
    - PyErr_SetFromErrno
    - PySequence_Fast_GET_ITEM
    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:2632,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2634,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2635,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2636,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2637,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2639,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/selectmodule.c:2640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2629
    functionDepth: 2
    functionLinenumber: 2629
    functionLinenumberEnd: 2644
    functionName: _select_traverse
    functionSourceFile: /src/cpython/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - get_select_state
    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:2649,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2651,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2652,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2653,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2654,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2656,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/selectmodule.c:2657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2646
    functionDepth: 2
    functionLinenumber: 2646
    functionLinenumberEnd: 2660
    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:2665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2662
    functionDepth: 3
    functionLinenumber: 2662
    functionLinenumberEnd: 2666
    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: 2686
      start: 2681
    functionDepth: 0
    functionLinenumber: 2681
    functionLinenumberEnd: 2686
    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: 2809
      start: 2803
    functionDepth: 0
    functionLinenumber: 2803
    functionLinenumberEnd: 2809
    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:2935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2936
    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:50,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    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: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    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:82,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_dbmmodule.c:88,1
    - Dst: dbm_open
      Src: /src/cpython/Modules/_dbmmodule.c:91,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_dbmmodule.c:92,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:93,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: 97
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: newdbmobject
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - dbm_open
    - PyErr_SetFromErrnoWithFilename
    - Py_DECREF
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newdbmobject(_dbm_state *state, const char *file, int flags, int mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:104,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_dbmmodule.c:105,1
    - Dst: dbm_close
      Src: /src/cpython/Modules/_dbmmodule.c:107,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:109,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_dbmmodule.c:110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: dbm_dealloc
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbmobject_CAST
    - PyTypeObject*::tp_free
    - dbm_close
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dbm_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:117,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:118,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:118,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:121,1
    - Dst: dbm_firstkey
      Src: /src/cpython/Modules/_dbmmodule.c:129,1
    - Dst: dbm_nextkey
      Src: /src/cpython/Modules/_dbmmodule.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 135
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 135
    functionName: dbm_length_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_nextkey
    - PyErr_SetString
    - dbmobject_CAST
    - assert
    - dbm_firstkey
    - PyType_GetModuleState
    - Py_TYPE
    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:141,1
    - Dst: dbm_length_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:142,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: dbm_length
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - dbm_length_lock_held
    - Py_END_CRITICAL_SECTION
    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:150,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:151,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:151,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:155,1
    - Dst: dbm_firstkey
      Src: /src/cpython/Modules/_dbmmodule.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: dbm_bool_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - dbmobject_CAST
    - assert
    - dbm_firstkey
    - PyType_GetModuleState
    - Py_TYPE
    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:183,1
    - Dst: dbm_bool_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:184,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: dbm_bool
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - dbm_bool_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int dbm_bool(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dbmobject_CAST
      Src: /src/cpython/Modules/_dbmmodule.c:194,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:195,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:195,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:196,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_dbmmodule.c:197,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:202,1
    - Dst: dbm_fetch
      Src: /src/cpython/Modules/_dbmmodule.c:203,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_dbmmodule.c:205,1
    - Dst: dbm_error
      Src: /src/cpython/Modules/_dbmmodule.c:208,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:209,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:210,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 214
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 214
    functionName: dbm_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_fetch
    - check_dbmobject_open
    - dbm_error
    - PyErr_SetObject
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - PyArg_Parse
    - dbmobject_CAST
    - dbm_clearerr
    - assert
    - PyType_GetModuleState
    - Py_TYPE
    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:220,1
    - Dst: dbm_subscript_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:221,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: dbm_subscript
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:231,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_dbmmodule.c:233,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:234,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:238,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:238,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:239,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:242,1
    - Dst: dbm_delete
      Src: /src/cpython/Modules/_dbmmodule.c:247,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:248,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_dbmmodule.c:252,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:255,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_dbmmodule.c:260,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:261,1
    - Dst: dbm_store
      Src: /src/cpython/Modules/_dbmmodule.c:266,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:267,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:268,1
    - Dst: dbm_error
      Src: /src/cpython/Modules/_dbmmodule.c:273,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:274,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 3
    argNames:
    - self
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 279
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 279
    functionName: dbm_ass_sub_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_error
    - dbm_delete
    - PyErr_SetObject
    - PyErr_SetString
    - PyArg_Parse
    - dbmobject_CAST
    - dbm_clearerr
    - dbm_store
    - assert
    - PyType_GetModuleState
    - Py_TYPE
    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:285,1
    - Dst: dbm_ass_sub_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:286,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 289
    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:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 307
    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:326,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:327,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:328,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_dbmmodule.c:329,1
    - Dst: dbm_firstkey
      Src: /src/cpython/Modules/_dbmmodule.c:333,1
    - Dst: dbm_nextkey
      Src: /src/cpython/Modules/_dbmmodule.c:334,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:337,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_dbmmodule.c:340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - dbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 348
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 348
    functionName: _dbm_dbm_keys_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - check_dbmobject_open
    - dbm_nextkey
    - PyBytes_FromStringAndSize
    - PyList_Append
    - PyList_New
    - assert
    - dbm_firstkey
    - Py_DECREF
    - PyType_GetModuleState
    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:353,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:357,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:357,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:358,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:360,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_dbmmodule.c:364,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_dbmmodule.c:365,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_dbmmodule.c:370,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_dbmmodule.c:371,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_dbmmodule.c:373,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_dbmmodule.c:377,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_dbmmodule.c:378,1
    - Dst: dbm_fetch
      Src: /src/cpython/Modules/_dbmmodule.c:380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 382
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 382
    functionName: dbm_contains_lock_held
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_fetch
    - PyBytes_AS_STRING
    - PyBytes_Check
    - PyErr_SetString
    - dbmobject_CAST
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyErr_Format
    - assert
    - PyBytes_GET_SIZE
    - PyType_GetModuleState
    - Py_TYPE
    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:388,1
    - Dst: dbm_contains_lock_held
      Src: /src/cpython/Modules/_dbmmodule.c:389,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 392
    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:411,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:412,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:415,1
    - Dst: dbm_fetch
      Src: /src/cpython/Modules/_dbmmodule.c:416,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:418,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_dbmmodule.c:421,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: 411
        line_start: 411
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 422
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 422
    functionName: _dbm_dbm_get_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_fetch
    - check_dbmobject_open
    - PyBytes_FromStringAndSize
    - assert
    - Py_NewRef
    - PyType_GetModuleState
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_dbmmodule.c:445,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:446,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:449,1
    - Dst: dbm_fetch
      Src: /src/cpython/Modules/_dbmmodule.c:450,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_dbmmodule.c:452,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_dbmmodule.c:455,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_dbmmodule.c:460,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:461,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_dbmmodule.c:466,1
    - Dst: dbm_store
      Src: /src/cpython/Modules/_dbmmodule.c:468,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:469,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    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: 445
        line_start: 445
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 475
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 475
    functionName: _dbm_dbm_setdefault_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - dbm_fetch
    - Py_INCREF
    - check_dbmobject_open
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - PyArg_Parse
    - dbm_clearerr
    - dbm_store
    - assert
    - Py_DECREF
    - PyType_GetModuleState
    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:490,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:491,1
    - Dst: check_dbmobject_open
      Src: /src/cpython/Modules/_dbmmodule.c:492,1
    - Dst: dbm_firstkey
      Src: /src/cpython/Modules/_dbmmodule.c:497,1
    - Dst: dbm_delete
      Src: /src/cpython/Modules/_dbmmodule.c:501,1
    - Dst: dbm_clearerr
      Src: /src/cpython/Modules/_dbmmodule.c:502,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - dbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 508
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 508
    functionName: _dbm_dbm_clear_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - check_dbmobject_open
    - dbm_delete
    - PyErr_SetString
    - dbm_clearerr
    - assert
    - dbm_firstkey
    - PyType_GetModuleState
    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:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 514
    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:520,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:521,1
    - Dst: _dbm_dbm_close_impl
      Src: /src/cpython/Modules/_dbmmodule.c:522,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_dbmmodule.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 525
    functionName: dbm__exit__
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _dbm_dbm_close_impl
    - dbmobject_CAST
    - Py_END_CRITICAL_SECTION
    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:591,1
    - Dst: assert
      Src: /src/cpython/Modules/_dbmmodule.c:592,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_dbmmodule.c:593,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:603,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_dbmmodule.c:606,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_dbmmodule.c:610,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_dbmmodule.c:616,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_dbmmodule.c:620,1
    - Dst: newdbmobject
      Src: /src/cpython/Modules/_dbmmodule.c:621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_dbmmodule.c:622,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: 591
        line_start: 591
        source_file: /src/cpython/Modules/_dbmmodule.c
    constantsTouched: []
    func_position:
      end: 624
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 624
    functionName: dbmopen_impl
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyBytes_AS_STRING
    - assert
    - PyErr_SetString
    - PyUnicode_FSConverter
    - Py_DECREF
    - get_dbm_state
    - newdbmobject
    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:634,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_dbmmodule.c:635,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_dbmmodule.c:640,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_dbmmodule.c:644,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_dbmmodule.c:647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 651
    functionName: _dbm_exec
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_AddStringConstant
    - PyType_FromModuleAndSpec
    - get_dbm_state
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int _dbm_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_dbm_state
      Src: /src/cpython/Modules/_dbmmodule.c:656,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_dbmmodule.c:657,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_dbmmodule.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 660
    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:665,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_dbmmodule.c:666,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_dbmmodule.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 669
    functionName: _dbm_module_clear
    functionSourceFile: /src/cpython/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_dbm_state
    linkageType: ''
    returnType: int
    signature: int _dbm_module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dbm_module_clear
      Src: /src/cpython/Modules/_dbmmodule.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 675
    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:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 700
    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
    - EXPORT_TYPE
    - _PyInterpreterState_GET
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 100
    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:
    - PyFloat_FromDouble
    - genrand_uint32
    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:
    - init_by_array
    - Py_ARRAY_LENGTH
    - PyTime_Time
    - getpid
    - GetCurrentProcessId
    - PyTime_Monotonic
    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:
    - PyLong_FromSize_t
    - init_by_array
    - _PyLong_NumBits
    - _randomstate_type
    - PyErr_Occurred
    - assert
    - Py_TYPE
    - random_seed_time_pid
    - PyErr_NoMemory
    - PyObject_Hash
    - PyLong_Check
    - Py_XDECREF
    - PyMem_Malloc
    - PyMem_Free
    - random_seed_urandom
    - PyLong_CheckExact
    - PyErr_Clear
    - _PyLong_AsByteArray
    - PyNumber_Absolute
    - PyObject_CallOneArg
    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:
    - PyLong_FromLong
    - PyLong_FromUnsignedLong
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    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:
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - PyErr_SetString
    - PyLong_AsLong
    - PyTuple_Check
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    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:
    - PyLong_FromLong
    - PyErr_NoMemory
    - _PyLong_FromByteArray
    - genrand_uint32
    - PyMem_Malloc
    - PyMem_Free
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getrandbits_impl(RandomObject *self, uint64_t k)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_seed
      Src: /src/cpython/Modules/_randommodule.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - seed
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: random_init_impl
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - random_seed
    linkageType: ''
    returnType: int
    signature: int random_init_impl(RandomObject *self, PyObject *seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_random_state
      Src: /src/cpython/Modules/_randommodule.c:607,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_randommodule.c:609,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_randommodule.c:614,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_randommodule.c:619,1
    - Dst: PyObject_Type
      Src: /src/cpython/Modules/_randommodule.c:624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_randommodule.c:625,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_randommodule.c:630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_randommodule.c:631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 636
    functionName: _random_exec
    functionSourceFile: /src/cpython/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - get_random_state
    - PyObject_Type
    - PyType_FromModuleAndSpec
    - PyObject_GetAttrString
    - Py_DECREF
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int _random_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_randommodule.c:649,1
    - Dst: get_random_state
      Src: /src/cpython/Modules/_randommodule.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 651
    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:656,1
    - Dst: get_random_state
      Src: /src/cpython/Modules/_randommodule.c:656,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_randommodule.c:657,1
    - Dst: get_random_state
      Src: /src/cpython/Modules/_randommodule.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 659
    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:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 665
    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:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 683
    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:
    - assert
    - PyType_GetModuleState
    - Py_TYPE
    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:
    - Py_CLEAR
    - get_curses_panel_state
    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_VISIT
    - Py_TYPE
    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_Format
    - PyErr_SetString
    - PyErr_Occurred
    - assert
    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:
    - _curses_panel_set_null_error
    - get_curses_panel_state
    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:
    - get_curses_panel_state_by_panel
    - _curses_panel_set_error
    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:
    - PyErr_Format
    - assert
    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:
    - curses_panel_notfound_error
    - find_po_impl
    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: assert
      Src: /src/cpython/Modules/_curses_panel.c:413,1
    - Dst: assert
      Src: /src/cpython/Modules/_curses_panel.c:415,1
    - Dst: assert
      Src: /src/cpython/Modules/_curses_panel.c:416,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_curses_panel.c:417,1
    - Dst: insert_lop
      Src: /src/cpython/Modules/_curses_panel.c:423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:425,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_curses_panel.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - state
    - pan
    - wo
    argTypes:
    - _curses_panel_state*
    - PANEL*
    - PyCursesWindowObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/cpython/Modules/_curses_panel.c
    - condition: (type != NULL)
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/cpython/Modules/_curses_panel.c
    - condition: (type->tp_alloc != NULL)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/cpython/Modules/_curses_panel.c
    constantsTouched: []
    func_position:
      end: 430
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 430
    functionName: PyCursesPanel_New
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - assert
    - insert_lop
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCursesPanel_New(_curses_panel_state *state, PANEL *pan,\n
      \                 PyCursesWindowObject *wo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesPanelObject_CAST
      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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 446
    functionName: PyCursesPanel_Clear
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - _PyCursesPanelObject_CAST
    - set_panel_userptr
    - panel_userptr
    - curses_panel_panel_set_error
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyCursesPanel_Clear(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_curses_panel.c:451,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_curses_panel.c:452,1
    - Dst: _PyCursesPanelObject_CAST
      Src: /src/cpython/Modules/_curses_panel.c:454,1
    - Dst: PyCursesPanel_Clear
      Src: /src/cpython/Modules/_curses_panel.c:455,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_curses_panel.c:456,1
    - Dst: del_panel
      Src: /src/cpython/Modules/_curses_panel.c:458,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_curses_panel.c:458,1
    - Dst: curses_panel_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:459,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_curses_panel.c:460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:463,1
    - Dst: remove_lop
      Src: /src/cpython/Modules/_curses_panel.c:464,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_curses_panel.c:465,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_curses_panel.c:466,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_curses_panel.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 448
    functionDepth: 5
    functionLinenumber: 448
    functionLinenumberEnd: 471
    functionName: PyCursesPanel_Dealloc
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - _PyCursesPanelObject_CAST
    - PyErr_SetString
    - del_panel
    - curses_panel_panel_set_error
    - PyTypeObject*::tp_free
    - PyErr_Occurred
    - remove_lop
    - PyObject_GC_UnTrack
    - PyCursesPanel_Clear
    - Py_DECREF
    - PyErr_FormatUnraisable
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyCursesPanel_Dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesPanelObject_CAST
      Src: /src/cpython/Modules/_curses_panel.c:476,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_curses_panel.c:477,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_curses_panel.c:477,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_curses_panel.c:478,1
    - Dst: panel_userptr
      Src: /src/cpython/Modules/_curses_panel.c:478,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_curses_panel.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 481
    functionName: PyCursesPanel_Traverse
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_userptr
    - Py_VISIT
    - Py_TYPE
    - _PyCursesPanelObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyCursesPanel_Traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_above
      Src: /src/cpython/Modules/_curses_panel.c:498,1
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:502,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_curses_panel.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 504
    functionName: _curses_panel_panel_above_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - find_po
    - 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:521,1
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:525,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_curses_panel.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 527
    functionName: _curses_panel_panel_below_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_below
    - Py_XNewRef
    - find_po
    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:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 543
    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:559,1
    - Dst: curses_panel_panel_check_err
      Src: /src/cpython/Modules/_curses_panel.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - y
    - x
    argTypes:
    - PyCursesPanelObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 555
    functionDepth: 5
    functionLinenumber: 555
    functionLinenumberEnd: 561
    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:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 574
    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:590,1
    - Dst: replace_panel
      Src: /src/cpython/Modules/_curses_panel.c:595,1
    - Dst: curses_panel_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:597,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_curses_panel.c:600,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_curses_panel.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - win
    argTypes:
    - PyCursesPanelObject*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 602
    functionName: _curses_panel_panel_replace_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - find_po
    - replace_panel
    - Py_SETREF
    - curses_panel_panel_set_error
    - Py_NewRef
    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:619,1
    - Dst: panel_userptr
      Src: /src/cpython/Modules/_curses_panel.c:620,1
    - Dst: set_panel_userptr
      Src: /src/cpython/Modules/_curses_panel.c:621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:624,1
    - Dst: curses_panel_panel_set_error
      Src: /src/cpython/Modules/_curses_panel.c:625,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_curses_panel.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 613
    functionDepth: 4
    functionLinenumber: 613
    functionLinenumberEnd: 630
    functionName: _curses_panel_panel_set_userptr_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - set_panel_userptr
    - panel_userptr
    - curses_panel_panel_set_error
    - Py_XDECREF
    - Py_DECREF
    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:643,1
    - Dst: curses_panel_panel_set_null_error
      Src: /src/cpython/Modules/_curses_panel.c:645,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_curses_panel.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 650
    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:712,1
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:716,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_curses_panel.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 718
    functionName: _curses_panel_bottom_panel_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - find_po
    - 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:733,1
    - Dst: curses_panel_set_null_error
      Src: /src/cpython/Modules/_curses_panel.c:735,1
    - Dst: get_curses_panel_state
      Src: /src/cpython/Modules/_curses_panel.c:738,1
    - Dst: PyCursesPanel_New
      Src: /src/cpython/Modules/_curses_panel.c:739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - win
    argTypes:
    - PyObject*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 740
    functionName: _curses_panel_new_panel_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - curses_panel_set_null_error
    - get_curses_panel_state
    - PyCursesPanel_New
    - 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:762,1
    - Dst: find_po
      Src: /src/cpython/Modules/_curses_panel.c:766,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_curses_panel.c:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 768
    functionName: _curses_panel_top_panel_impl
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_below
    - Py_XNewRef
    - find_po
    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:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 786
    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:802,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_curses_panel.c:804,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_curses_panel.c:810,1
    - Dst: import_curses
      Src: /src/cpython/Modules/_curses_panel.c:814,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_curses_panel.c:815,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_curses_panel.c:820,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_curses_panel.c:823,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_curses_panel.c:828,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_curses_panel.c:833,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_curses_panel.c:834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:835,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_curses_panel.c:838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_curses_panel.c:843,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 846
    functionName: _curses_panel_exec
    functionSourceFile: /src/cpython/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyUnicode_FromString
    - get_curses_panel_state
    - PyModule_GetDict
    - PyType_FromModuleAndSpec
    - PyDict_SetItemString
    - PyErr_Occurred
    - Py_DECREF
    - PyModule_AddObjectRef
    - import_curses
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int _curses_panel_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_curses_panel.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 873
    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: 3
    argNames:
    - (
    - save
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    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)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - save
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    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)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    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: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    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:94,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_ssl.c:96,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: Py_off_t_converter
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 3
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLong
    - PyLong_AsLongLong
    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:133,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ssl.c:142,1
    - Dst: ssl_errno
      Src: /src/cpython/Modules/_ssl.c:144,1
    - Dst: ssl_errno
      Src: /src/cpython/Modules/_ssl.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: _PySSLFixErrno
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - GetModuleHandleW
    - 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: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    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: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    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: 402
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 402
    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: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    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:416,1
    - Dst: SSL_get_error
      Src: /src/cpython/Modules/_ssl.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - failed
    - ssl
    - retcode
    argTypes:
    - int
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 423
    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: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    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: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: ERRSTR
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRSTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    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:488,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:489,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_ssl.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 493
    functionName: SSLError_str
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - Py_NewRef
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SSLError_str(PyObject *op)'
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:525,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:526,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:527,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_ssl.c:530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:531,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:532,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:535,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_ssl.c:538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:539,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:540,1
    - Dst: ERR_reason_error_string
      Src: /src/cpython/Modules/_ssl.c:544,1
    - Dst: SSL_get_verify_result
      Src: /src/cpython/Modules/_ssl.c:553,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:554,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl.c:561,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl.c:567,1
    - Dst: X509_verify_cert_error_string
      Src: /src/cpython/Modules/_ssl.c:573,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:575,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:577,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_ssl.c:589,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:594,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:598,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_ssl.c:602,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:607,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:612,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:618,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Modules/_ssl.c:622,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_ssl.c:625,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:631,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:631,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_ssl.c:635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:636,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ssl.c:642,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ssl.c:647,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ssl.c:652,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ssl.c:655,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_ssl.c:659,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:661,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:662,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:663,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_ssl.c:664,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 141
    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: 665
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 665
    functionName: fill_and_set_sslerror
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    - PyLong_FromLong
    - X509_verify_cert_error_string
    - Py_BuildValue
    - PyUnicodeWriter_Finish
    - PyErr_Occurred
    - PyDict_GetItemWithError
    - PyUnicode_FromString
    - PyErr_SetObject
    - PyUnicodeWriter_Format
    - ERR_GET_LIB
    - Py_XDECREF
    - PyUnicodeWriter_WriteASCII
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PyObject_CallObject
    - Py_DECREF
    - Py_NewRef
    - PyObject_SetAttr
    - ERR_GET_REASON
    - PyUnicode_FromFormat
    - SSL_get_verify_result
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:671,1
    - Dst: fill_and_set_sslerror
      Src: /src/cpython/Modules/_ssl.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sslsock
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 676
    functionName: set_eof_error
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - fill_and_set_sslerror
    - get_state_sock
    linkageType: ''
    returnType: void
    signature: void set_eof_error(PySSLSocket *sslsock)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:691,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:693,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_ssl.c:697,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:728,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:731,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:736,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:744,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:745,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:748,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:750,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:751,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:764,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:765,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:771,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:772,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:778,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:780,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:781,1
    - Dst: fill_and_set_sslerror
      Src: /src/cpython/Modules/_ssl.c:790,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:791,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_ssl.c:792,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 5
    argNames:
    - sslsock
    - err
    - exc
    - filename
    - lineno
    argTypes:
    - PySSLSocket*
    - _PySSLError
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (sslsock != NULL)
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 794
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 794
    functionName: PySSL_SetError
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - ERR_GET_REASON
    - ERR_peek_last_error
    - get_state_sock
    - _PyErr_ChainExceptions1
    - fill_and_set_sslerror
    - ERR_GET_LIB
    - assert
    - PyErr_SetFromErrno
    - ERR_clear_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPySSL_SetError(PySSLSocket *sslsock, _PySSLError err,
      PyObject *exc,\n               const char *filename, int lineno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_ssl.c:800,1
    - Dst: fill_and_set_sslerror
      Src: /src/cpython/Modules/_ssl.c:803,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:804,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: 806
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 806
    functionName: _setSSLError
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ERR_peek_last_error
    - fill_and_set_sslerror
    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:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - stacklevel
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 813
    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: 817
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 817
    functionName: PY_SSL_DEPRECATED
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_SSL_DEPRECATED(name, stacklevel, ret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl.c:829,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:831,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:831,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:840,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:840,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:841,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - obj
    - out_sock
    - filename
    - lineno
    argTypes:
    - PySSLSocket*
    - PySocketSockObject**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 845
    functionName: get_socket
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_sock
    - SSL_get_wbio
    - SSL_get_rbio
    - BIO_set_nbio
    - _setSSLError
    - PyWeakref_GetRef
    linkageType: ''
    returnType: int
    signature: "int get_socket(PySSLSocket *obj, PySocketSockObject **out_sock,\n
      \          const char *filename, int lineno)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:859,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:865,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:867,1
    - Dst: a2i_IPADDRESS
      Src: /src/cpython/Modules/_ssl.c:875,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:877,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_ssl.c:880,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/cpython/Modules/_ssl.c:888,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:889,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:889,1
    - Dst: SSL_get0_param
      Src: /src/cpython/Modules/_ssl.c:894,1
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/cpython/Modules/_ssl.c:896,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:897,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:898,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:898,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/cpython/Modules/_ssl.c:902,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:902,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:903,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:904,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:904,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/cpython/Modules/_ssl.c:912,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - self
    - server_hostname
    argTypes:
    - PySSLSocket*
    - char*
    assertStmts:
    - condition: (server_hostname)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 915
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 915
    functionName: _ssl_configure_hostname
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_tlsext_host_name
    - ASN1_OCTET_STRING_free
    - a2i_IPADDRESS
    - SSL_get0_param
    - X509_VERIFY_PARAM_set1_host
    - PyErr_SetString
    - get_state_sock
    - X509_VERIFY_PARAM_set1_ip
    - ASN1_STRING_get0_data
    - _setSSLError
    - strlen
    - assert
    - ASN1_STRING_length
    - PyUnicode_Decode
    - ERR_clear_error
    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:929,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:929,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:936,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:936,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_ssl.c:942,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:943,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:949,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:956,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl.c:958,1
    - Dst: SSL_new
      Src: /src/cpython/Modules/_ssl.c:959,1
    - Dst: PySSL_END_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl.c:960,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:962,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:963,1
    - Dst: SSL_set_session_id_context
      Src: /src/cpython/Modules/_ssl.c:970,1
    - Dst: SSL_get0_param
      Src: /src/cpython/Modules/_ssl.c:977,1
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:978,1
    - Dst: X509_VERIFY_PARAM_get_hostflags
      Src: /src/cpython/Modules/_ssl.c:980,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/cpython/Modules/_ssl.c:981,1
    - Dst: SSL_set_app_data
      Src: /src/cpython/Modules/_ssl.c:983,1
    - Dst: SSL_set_fd
      Src: /src/cpython/Modules/_ssl.c:985,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ssl.c:985,1
    - Dst: BIO_up_ref
      Src: /src/cpython/Modules/_ssl.c:990,1
    - Dst: BIO_up_ref
      Src: /src/cpython/Modules/_ssl.c:991,1
    - Dst: SSL_set_bio
      Src: /src/cpython/Modules/_ssl.c:992,1
    - Dst: SSL_set_mode
      Src: /src/cpython/Modules/_ssl.c:994,1
    - Dst: SSL_get_verify_mode
      Src: /src/cpython/Modules/_ssl.c:1003,1
    - Dst: SSL_set_verify
      Src: /src/cpython/Modules/_ssl.c:1006,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/cpython/Modules/_ssl.c:1010,1
    - Dst: _ssl_configure_hostname
      Src: /src/cpython/Modules/_ssl.c:1016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1017,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:1025,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:1025,1
    - Dst: BIO_set_nbio
      Src: /src/cpython/Modules/_ssl.c:1026,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:1026,1
    - Dst: SSL_set_connect_state
      Src: /src/cpython/Modules/_ssl.c:1031,1
    - Dst: SSL_set_accept_state
      Src: /src/cpython/Modules/_ssl.c:1033,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_ssl.c:1038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1040,1
    - Dst: _ssl__SSLSocket_owner_set
      Src: /src/cpython/Modules/_ssl.c:1045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1046,1
    - Dst: _ssl__SSLSocket_session_set
      Src: /src/cpython/Modules/_ssl.c:1051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1052,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_ssl.c:1057,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 87
    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: 1059
      start: 917
    functionDepth: 4
    functionLinenumber: 917
    functionLinenumberEnd: 1059
    functionName: newPySSLSocket
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get0_param
    - X509_VERIFY_PARAM_set_hostflags
    - X509_VERIFY_PARAM_get_hostflags
    - get_state_ctx
    - SSL_set_post_handshake_auth
    - BIO_set_nbio
    - PySSL_BEGIN_ALLOW_THREADS
    - PyObject_GC_New
    - SSL_CTX_get0_param
    - PySSL_END_ALLOW_THREADS
    - SSL_get_verify_mode
    - _ssl_configure_hostname
    - SSL_set_verify
    - ERR_clear_error
    - PyObject_GC_Track
    - BIO_up_ref
    - Py_SAFE_DOWNCAST
    - SSL_get_wbio
    - SSL_new
    - _setSSLError
    - SSL_set_fd
    - SSL_get_rbio
    - Py_DECREF
    - SSL_set_bio
    - Py_NewRef
    - SSL_set_mode
    - _ssl__SSLSocket_owner_set
    - SSL_set_accept_state
    - SSL_set_session_id_context
    - PyWeakref_NewRef
    - SSL_set_connect_state
    - _ssl__SSLSocket_session_set
    - 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: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/cpython/Modules/_ssl.c:1080,1
    - Dst: set_eof_error
      Src: /src/cpython/Modules/_ssl.c:1085,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:1089,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:1092,1
    - Dst: SSL_do_handshake
      Src: /src/cpython/Modules/_ssl.c:1099,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:1100,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl.c:1105,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_ssl.c:1110,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:1114,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:1117,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:1119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1125,1
    - Dst: ERRSTR
      Src: /src/cpython/Modules/_ssl.c:1126,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1129,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1129,1
    - Dst: ERRSTR
      Src: /src/cpython/Modules/_ssl.c:1130,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1133,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1133,1
    - Dst: ERRSTR
      Src: /src/cpython/Modules/_ssl.c:1134,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1141,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:1144,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_ssl.c:1146,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:1151,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1152,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts:
    - condition: (exc == NULL)
      pos:
        line_end: 1150
        line_start: 1150
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 1154
      start: 1068
    functionDepth: 4
    functionLinenumber: 1068
    functionLinenumberEnd: 1154
    functionName: _ssl__SSLSocket_do_handshake_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - GET_SOCKET_TIMEOUT
    - get_socket
    - _PyDeadline_Init
    - PySSL_SetError
    - assert
    - PyErr_CheckSignals
    - _PyDeadline_Get
    - PyErr_SetString
    - get_state_sock
    - ERRSTR
    - set_eof_error
    - PyErr_SetRaisedException
    - PySSL_select
    - Py_XDECREF
    - _PySSL_errno
    - PyErr_GetRaisedException
    - SSL_do_handshake
    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:1164,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1166,1
    - Dst: OBJ_obj2txt
      Src: /src/cpython/Modules/_ssl.c:1172,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ssl.c:1174,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:1176,1
    - Dst: OBJ_obj2txt
      Src: /src/cpython/Modules/_ssl.c:1179,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1181,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:1186,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1189,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:1194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - state
    - name
    - no_name
    argTypes:
    - _sslmodulestate*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1156
    functionDepth: 3
    functionLinenumber: 1156
    functionLinenumberEnd: 1197
    functionName: _asn1obj2py
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - OBJ_obj2txt
    - _setSSLError
    - PyMem_Free
    - PyMem_Malloc
    - Py_NewRef
    - PyUnicode_FromStringAndSize
    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:1205,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1208,1
    - Dst: ASN1_STRING_type
      Src: /src/cpython/Modules/_ssl.c:1212,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:1213,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:1214,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:1214,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/cpython/Modules/_ssl.c:1217,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1220,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:1223,1
    - Dst: OPENSSL_free
      Src: /src/cpython/Modules/_ssl.c:1224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - state
    - name
    - value
    argTypes:
    - _sslmodulestate*
    - ASN1_OBJECT*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1199
    functionDepth: 4
    functionLinenumber: 1199
    functionLinenumberEnd: 1227
    functionName: _create_tuple_for_attribute
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _asn1obj2py
    - ASN1_STRING_to_UTF8
    - Py_BuildValue
    - OPENSSL_free
    - ASN1_STRING_type
    - ASN1_STRING_get0_data
    - _setSSLError
    - Py_DECREF
    - ASN1_STRING_length
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_create_tuple_for_attribute(_sslmodulestate *state,\n
      \                           const ASN1_OBJECT *name, const ASN1_STRING *value)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_entry_count
      Src: /src/cpython/Modules/_ssl.c:1236,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1244,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1248,1
    - Dst: X509_NAME_get_entry
      Src: /src/cpython/Modules/_ssl.c:1256,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/cpython/Modules/_ssl.c:1260,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1264,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1268,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1272,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/cpython/Modules/_ssl.c:1277,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/cpython/Modules/_ssl.c:1280,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/cpython/Modules/_ssl.c:1281,1
    - Dst: _create_tuple_for_attribute
      Src: /src/cpython/Modules/_ssl.c:1282,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1292,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:1298,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1300,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1309,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1315,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1321,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1324,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - state
    - xname
    argTypes:
    - _sslmodulestate*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1229
    functionDepth: 5
    functionLinenumber: 1229
    functionLinenumberEnd: 1326
    functionName: _create_tuple_for_X509_NAME
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_ENTRY_get_object
    - _create_tuple_for_attribute
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_set
    - X509_NAME_ENTRY_get_data
    - PyList_AsTuple
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    - PyList_GET_SIZE
    - X509_NAME_entry_count
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname)'
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl.c:1351,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl.c:1351,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1353,1
    - Dst: X509_get_ext_d2i
      Src: /src/cpython/Modules/_ssl.c:1357,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1361,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/cpython/Modules/_ssl.c:1366,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/cpython/Modules/_ssl.c:1371,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1378,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1385,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1388,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/cpython/Modules/_ssl.c:1390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1392,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1395,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1403,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1408,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1412,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1421,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1424,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1425,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:1425,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:1426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1428,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1431,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1435,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1441,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1444,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/cpython/Modules/_ssl.c:1446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1448,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1449,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1452,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1457,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1460,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1467,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1473,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1476,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:1478,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:1479,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl.c:1480,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:1484,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:1485,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl.c:1486,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:1498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1502,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1505,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/_ssl.c:1518,1
    - Dst: BIO_reset
      Src: /src/cpython/Modules/_ssl.c:1525,1
    - Dst: GENERAL_NAME_print
      Src: /src/cpython/Modules/_ssl.c:1526,1
    - Dst: BIO_gets
      Src: /src/cpython/Modules/_ssl.c:1527,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1529,1
    - Dst: strchr
      Src: /src/cpython/Modules/_ssl.c:1532,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:1534,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:1539,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1544,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1547,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1551,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:1554,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1564,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/cpython/Modules/_ssl.c:1566,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1568,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1571,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1580,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1583,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 207
    argCount: 2
    argNames:
    - state
    - certificate
    argTypes:
    - _sslmodulestate*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1328
    functionDepth: 6
    functionLinenumber: 1328
    functionLinenumberEnd: 1587
    functionName: _get_peer_alt_names
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    - PyList_AsTuple
    - PyUnicode_FromStringAndSize
    - PyUnicode_FromString
    - BIO_reset
    - strchr
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - ASN1_STRING_length
    - BIO_s_mem
    - X509_get_ext_d2i
    - sk_GENERAL_NAME_value
    - PyErr_SetString
    - BIO_free
    - PyErr_WarnFormat
    - PyTuple_SET_ITEM
    - ASN1_STRING_get0_data
    - i2t_ASN1_OBJECT
    - _setSSLError
    - Py_DECREF
    - GENERAL_NAME_print
    - PyTuple_New
    - sk_GENERAL_NAME_pop_free
    - BIO_new
    - PyUnicode_FromFormat
    - PyErr_Format
    - sk_GENERAL_NAME_num
    - _create_tuple_for_X509_NAME
    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:1595,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/cpython/Modules/_ssl.c:1598,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/cpython/Modules/_ssl.c:1599,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1603,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/cpython/Modules/_ssl.c:1607,1
    - Dst: sk_ACCESS_DESCRIPTION_value
      Src: /src/cpython/Modules/_ssl.c:1608,1
    - Dst: OBJ_obj2nid
      Src: /src/cpython/Modules/_ssl.c:1611,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1616,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:1617,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:1618,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1623,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/cpython/Modules/_ssl.c:1628,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_ssl.c:1631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1632,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1637,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/cpython/Modules/_ssl.c:1642,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1643,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - certificate
    - nid
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1645
    functionName: _get_aia_uri
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_get_ext_d2i
    - AUTHORITY_INFO_ACCESS_free
    - sk_ACCESS_DESCRIPTION_num
    - PyList_Size
    - OBJ_obj2nid
    - sk_ACCESS_DESCRIPTION_value
    - ASN1_STRING_get0_data
    - PyList_AsTuple
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    - ASN1_STRING_length
    - PyUnicode_FromStringAndSize
    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:1649,1
    - Dst: X509_get_ext_d2i
      Src: /src/cpython/Modules/_ssl.c:1653,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:1658,1
    - Dst: sk_DIST_POINT_num
      Src: /src/cpython/Modules/_ssl.c:1662,1
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:1664,1
    - Dst: sk_DIST_POINT_value
      Src: /src/cpython/Modules/_ssl.c:1666,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/cpython/Modules/_ssl.c:1673,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/cpython/Modules/_ssl.c:1679,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1684,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/cpython/Modules/_ssl.c:1685,1
    - Dst: ASN1_STRING_length
      Src: /src/cpython/Modules/_ssl.c:1686,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:1690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1691,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:1698,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_ssl.c:1698,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1701,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/cpython/Modules/_ssl.c:1702,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - certificate
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1647
    functionDepth: 1
    functionLinenumber: 1647
    functionLinenumberEnd: 1704
    functionName: _get_crl_dp
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_get_ext_d2i
    - sk_GENERAL_NAME_value
    - sk_DIST_POINT_num
    - CRL_DIST_POINTS_free
    - ASN1_STRING_get0_data
    - PyList_AsTuple
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    - ASN1_STRING_length
    - sk_GENERAL_NAME_num
    - PyList_GET_SIZE
    - STACK_OF
    - sk_DIST_POINT_value
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_crl_dp(X509 *certificate)'
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ssl.c:1723,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/cpython/Modules/_ssl.c:1727,1
    - Dst: X509_get_subject_name
      Src: /src/cpython/Modules/_ssl.c:1729,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1736,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/cpython/Modules/_ssl.c:1738,1
    - Dst: X509_get_issuer_name
      Src: /src/cpython/Modules/_ssl.c:1740,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1747,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:1749,1
    - Dst: X509_get_version
      Src: /src/cpython/Modules/_ssl.c:1749,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1756,1
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl.c:1759,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl.c:1759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1761,1
    - Dst: BIO_reset
      Src: /src/cpython/Modules/_ssl.c:1765,1
    - Dst: X509_get_serialNumber
      Src: /src/cpython/Modules/_ssl.c:1766,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/cpython/Modules/_ssl.c:1768,1
    - Dst: BIO_gets
      Src: /src/cpython/Modules/_ssl.c:1769,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1771,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1774,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1778,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1781,1
    - Dst: BIO_reset
      Src: /src/cpython/Modules/_ssl.c:1783,1
    - Dst: X509_get0_notBefore
      Src: /src/cpython/Modules/_ssl.c:1784,1
    - Dst: ASN1_TIME_print
      Src: /src/cpython/Modules/_ssl.c:1785,1
    - Dst: BIO_gets
      Src: /src/cpython/Modules/_ssl.c:1786,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1788,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1791,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1798,1
    - Dst: BIO_reset
      Src: /src/cpython/Modules/_ssl.c:1800,1
    - Dst: X509_get0_notAfter
      Src: /src/cpython/Modules/_ssl.c:1801,1
    - Dst: ASN1_TIME_print
      Src: /src/cpython/Modules/_ssl.c:1802,1
    - Dst: BIO_gets
      Src: /src/cpython/Modules/_ssl.c:1803,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1805,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1808,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1815,1
    - Dst: _get_peer_alt_names
      Src: /src/cpython/Modules/_ssl.c:1819,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1828,1
    - Dst: _get_aia_uri
      Src: /src/cpython/Modules/_ssl.c:1832,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1837,1
    - Dst: _get_aia_uri
      Src: /src/cpython/Modules/_ssl.c:1843,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1847,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1848,1
    - Dst: _get_crl_dp
      Src: /src/cpython/Modules/_ssl.c:1855,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ssl.c:1859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:1860,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1866,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:1873,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 158
    argCount: 2
    argNames:
    - state
    - certificate
    argTypes:
    - _sslmodulestate*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1706
    functionDepth: 7
    functionLinenumber: 1706
    functionLinenumberEnd: 1875
    functionName: _decode_certificate
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - BIO_gets
    - _get_crl_dp
    - X509_get_serialNumber
    - X509_get0_notBefore
    - X509_get0_notAfter
    - X509_get_version
    - PyUnicode_FromStringAndSize
    - ASN1_TIME_print
    - BIO_reset
    - PyDict_SetItemString
    - X509_get_issuer_name
    - Py_XDECREF
    - BIO_s_mem
    - _get_aia_uri
    - i2a_ASN1_INTEGER
    - PyErr_SetString
    - BIO_free
    - _setSSLError
    - Py_DECREF
    - _get_peer_alt_names
    - PyDict_New
    - BIO_new
    - X509_get_subject_name
    - _create_tuple_for_X509_NAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decode_certificate(_sslmodulestate *state, X509 *certificate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/cpython/Modules/_ssl.c:1885,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:1887,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:1891,1
    - Dst: OPENSSL_free
      Src: /src/cpython/Modules/_ssl.c:1892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - state
    - certificate
    argTypes:
    - _sslmodulestate*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1877
    functionDepth: 3
    functionLinenumber: 1877
    functionLinenumberEnd: 1894
    functionName: _certificate_to_der
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - i2d_X509
    - OPENSSL_free
    - _setSSLError
    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:1913,1
    - Dst: BIO_new
      Src: /src/cpython/Modules/_ssl.c:1915,1
    - Dst: BIO_s_file
      Src: /src/cpython/Modules/_ssl.c:1915,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1916,1
    - Dst: BIO_read_filename
      Src: /src/cpython/Modules/_ssl.c:1921,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_ssl.c:1921,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1922,1
    - Dst: PEM_read_bio_X509
      Src: /src/cpython/Modules/_ssl.c:1927,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1929,1
    - Dst: _decode_certificate
      Src: /src/cpython/Modules/_ssl.c:1934,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl.c:1935,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:1938,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1906
    functionDepth: 8
    functionLinenumber: 1906
    functionLinenumberEnd: 1940
    functionName: _ssl__test_decode_cert_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_X509
    - PyErr_SetString
    - BIO_new
    - BIO_free
    - X509_free
    - BIO_s_file
    - PyBytes_AsString
    - BIO_read_filename
    - _decode_certificate
    - get_ssl_state
    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:1968,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:1969,1
    - Dst: SSL_get_peer_certificate
      Src: /src/cpython/Modules/_ssl.c:1973,1
    - Dst: _certificate_to_der
      Src: /src/cpython/Modules/_ssl.c:1979,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1979,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/cpython/Modules/_ssl.c:1981,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/cpython/Modules/_ssl.c:1981,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ssl.c:1983,1
    - Dst: _decode_certificate
      Src: /src/cpython/Modules/_ssl.c:1985,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:1985,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl.c:1987,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - binary_mode
    argTypes:
    - PySSLSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1960
    functionDepth: 8
    functionLinenumber: 1960
    functionLinenumberEnd: 1989
    functionName: _ssl__SSLSocket_getpeercert_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_verify_mode
    - _certificate_to_der
    - SSL_get_SSL_CTX
    - PyErr_SetString
    - get_state_sock
    - SSL_get_peer_certificate
    - X509_free
    - SSL_is_init_finished
    - _decode_certificate
    - PyDict_New
    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:2002,1
    - Dst: SSL_get0_verified_chain
      Src: /src/cpython/Modules/_ssl.c:2002,1
    - Dst: _PySSL_CertificateFromX509Stack
      Src: /src/cpython/Modules/_ssl.c:2006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1997
    functionDepth: 1
    functionLinenumber: 1997
    functionLinenumberEnd: 2007
    functionName: _ssl__SSLSocket_get_verified_chain_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get0_verified_chain
    - _PySSL_CertificateFromX509Stack
    - 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:2022,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/cpython/Modules/_ssl.c:2022,1
    - Dst: _PySSL_CertificateFromX509Stack
      Src: /src/cpython/Modules/_ssl.c:2026,1
    - Dst: SSL_get_peer_certificate
      Src: /src/cpython/Modules/_ssl.c:2033,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2036,1
    - Dst: _PySSL_CertificateFromX509
      Src: /src/cpython/Modules/_ssl.c:2039,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl.c:2041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2042,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_ssl.c:2046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2049,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2015
    functionDepth: 1
    functionLinenumber: 2015
    functionLinenumberEnd: 2054
    functionName: _ssl__SSLSocket_get_unverified_chain_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_peer_cert_chain
    - _PySSL_CertificateFromX509
    - SSL_get_peer_certificate
    - X509_free
    - PyList_Insert
    - Py_DECREF
    - _PySSL_CertificateFromX509Stack
    - STACK_OF
    - Py_NewRef
    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:2060,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/cpython/Modules/_ssl.c:2064,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2066,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2066,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:2068,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2071,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/cpython/Modules/_ssl.c:2074,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2076,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2076,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:2078,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2081,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:2084,1
    - Dst: SSL_CIPHER_get_bits
      Src: /src/cpython/Modules/_ssl.c:2084,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2087,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2092,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2056
    functionDepth: 1
    functionLinenumber: 2056
    functionLinenumberEnd: 2094
    functionName: cipher_to_tuple
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyLong_FromLong
    - SSL_CIPHER_get_bits
    - SSL_CIPHER_get_name
    - PyTuple_SET_ITEM
    - Py_DECREF
    - SSL_CIPHER_get_version
    - Py_NewRef
    - PyTuple_New
    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:2108,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/cpython/Modules/_ssl.c:2109,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/cpython/Modules/_ssl.c:2110,1
    - Dst: SSL_CIPHER_description
      Src: /src/cpython/Modules/_ssl.c:2111,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:2113,1
    - Dst: SSL_CIPHER_get_bits
      Src: /src/cpython/Modules/_ssl.c:2116,1
    - Dst: SSL_CIPHER_is_aead
      Src: /src/cpython/Modules/_ssl.c:2118,1
    - Dst: SSL_CIPHER_get_cipher_nid
      Src: /src/cpython/Modules/_ssl.c:2119,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:2120,1
    - Dst: SSL_CIPHER_get_digest_nid
      Src: /src/cpython/Modules/_ssl.c:2121,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:2122,1
    - Dst: SSL_CIPHER_get_kx_nid
      Src: /src/cpython/Modules/_ssl.c:2123,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:2124,1
    - Dst: SSL_CIPHER_get_auth_nid
      Src: /src/cpython/Modules/_ssl.c:2125,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:2126,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:2128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2144
    functionName: cipher_to_dict
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CIPHER_get_auth_nid
    - SSL_CIPHER_get_bits
    - SSL_CIPHER_get_digest_nid
    - SSL_CIPHER_get_name
    - SSL_CIPHER_get_cipher_nid
    - Py_BuildValue
    - SSL_CIPHER_description
    - OBJ_nid2ln
    - SSL_CIPHER_get_kx_nid
    - strlen
    - SSL_CIPHER_get_id
    - SSL_CIPHER_get_version
    - SSL_CIPHER_is_aead
    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:2155,1
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:2156,1
    - Dst: SSL_get_ciphers
      Src: /src/cpython/Modules/_ssl.c:2169,1
    - Dst: SSL_get_client_ciphers
      Src: /src/cpython/Modules/_ssl.c:2172,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:2176,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/cpython/Modules/_ssl.c:2176,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/cpython/Modules/_ssl.c:2180,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/cpython/Modules/_ssl.c:2181,1
    - Dst: sk_SSL_CIPHER_find
      Src: /src/cpython/Modules/_ssl.c:2182,1
    - Dst: cipher_to_tuple
      Src: /src/cpython/Modules/_ssl.c:2185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2187,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:2190,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_ssl.c:2192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2151
    functionDepth: 2
    functionLinenumber: 2151
    functionLinenumberEnd: 2194
    functionName: _ssl__SSLSocket_shared_ciphers_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - SSL_get_client_ciphers
    - sk_SSL_CIPHER_find
    - Py_SET_SIZE
    - sk_SSL_CIPHER_value
    - SSL_get_ciphers
    - sk_SSL_CIPHER_num
    - PyList_New
    - Py_DECREF
    - cipher_to_tuple
    - STACK_OF
    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:2209,1
    - Dst: cipher_to_tuple
      Src: /src/cpython/Modules/_ssl.c:2212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2201
    functionDepth: 2
    functionLinenumber: 2201
    functionLinenumberEnd: 2213
    functionName: _ssl__SSLSocket_cipher_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_current_cipher
    - cipher_to_tuple
    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:2230,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_ssl.c:2234,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2240
    functionName: _ssl__SSLSocket_group_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_DecodeFSDefault
    - SSL_get0_group_name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_group_impl(PySSLSocket *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_signature_name
      Src: /src/cpython/Modules/_ssl.c:2254,1
    - Dst: SSL_get0_peer_signature_name
      Src: /src/cpython/Modules/_ssl.c:2255,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:2259,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_ssl.c:2260,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - socket
    - self_socket_type
    argTypes:
    - PySSLSocket*
    - enum py_ssl_server_or_client
    assertStmts:
    - condition: (sigalg != NULL)
      pos:
        line_end: 2258
        line_start: 2258
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 2266
      start: 2242
    functionDepth: 1
    functionLinenumber: 2242
    functionLinenumberEnd: 2266
    functionName: ssl_socket_signame_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get0_peer_signature_name
    - SSL_get0_signature_name
    - PyErr_SetString
    - assert
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nssl_socket_signame_impl(PySSLSocket *socket,\n                        enum
      py_ssl_server_or_client self_socket_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_socket_signame_impl
      Src: /src/cpython/Modules/_ssl.c:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2273
    functionDepth: 2
    functionLinenumber: 2273
    functionLinenumberEnd: 2278
    functionName: _ssl__SSLSocket_client_sigalg_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ssl_socket_signame_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _ssl__SSLSocket_server_sigalg_impl(PySSLSocket *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_init_finished
      Src: /src/cpython/Modules/_ssl.c:2305,1
    - Dst: SSL_get_version
      Src: /src/cpython/Modules/_ssl.c:2309,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_ssl.c:2310,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:2312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2297
    functionDepth: 1
    functionLinenumber: 2297
    functionLinenumberEnd: 2313
    functionName: _ssl__SSLSocket_version_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_is_init_finished
    - PyUnicode_FromString
    - strcmp
    - SSL_get_version
    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:2327,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:2331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2332
    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:2350,1
    - Dst: COMP_get_type
      Src: /src/cpython/Modules/_ssl.c:2351,1
    - Dst: OBJ_nid2sn
      Src: /src/cpython/Modules/_ssl.c:2353,1
    - Dst: COMP_get_type
      Src: /src/cpython/Modules/_ssl.c:2353,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_ssl.c:2356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2358
    functionName: _ssl__SSLSocket_compression_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_current_compression
    - PyUnicode_DecodeFSDefault
    - OBJ_nid2sn
    - COMP_get_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_compression_impl(PySSLSocket *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2373
    functionDepth: 0
    functionLinenumber: 2373
    functionLinenumberEnd: 2378
    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:2390,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_ssl.c:2391,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2391,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/cpython/Modules/_ssl.c:2392,1
    - Dst: SSL_set_msg_callback
      Src: /src/cpython/Modules/_ssl.c:2394,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 2404
    functionName: _ssl__SSLSocket_context_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyErr_SetString
    - Py_SETREF
    - SSL_set_SSL_CTX
    - SSL_set_msg_callback
    - Py_NewRef
    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:2418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2414
    functionDepth: 1
    functionLinenumber: 2414
    functionLinenumberEnd: 2419
    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:2435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2429
    functionDepth: 0
    functionLinenumber: 2429
    functionLinenumberEnd: 2436
    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:2456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2448
    functionDepth: 1
    functionLinenumber: 2448
    functionLinenumberEnd: 2460
    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:2472,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_ssl.c:2472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2468
    functionDepth: 1
    functionLinenumber: 2468
    functionLinenumberEnd: 2476
    functionName: _ssl__SSLSocket_owner_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyWeakref_NewRef
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLSocket_owner_set_impl(PySSLSocket *self, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:2481,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:2481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2483
    functionName: PySSL_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    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:2488,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:2489,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:2490,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:2491,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:2492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2494
    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:2499,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:2500,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ssl.c:2501,1
    - Dst: SSL_set_shutdown
      Src: /src/cpython/Modules/_ssl.c:2513,1
    - Dst: SSL_get_shutdown
      Src: /src/cpython/Modules/_ssl.c:2513,1
    - Dst: SSL_free
      Src: /src/cpython/Modules/_ssl.c:2514,1
    - Dst: PySSL_clear
      Src: /src/cpython/Modules/_ssl.c:2516,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_ssl.c:2517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:2518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2496
    functionDepth: 2
    functionLinenumber: 2496
    functionLinenumberEnd: 2519
    functionName: PySSL_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_free
    - PySSL_clear
    - SSL_get_shutdown
    - SSL_set_shutdown
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PySSLSocket_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PySSL_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/_ssl.c:2560,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:2561,1
    - Dst: poll
      Src: /src/cpython/Modules/_ssl.c:2564,1
    - Dst: _PyIsSelectable_fd
      Src: /src/cpython/Modules/_ssl.c:2569,1
    - Dst: _PyTime_AsTimeval_clamp
      Src: /src/cpython/Modules/_ssl.c:2572,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/_ssl.c:2574,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/_ssl.c:2575,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ssl.c:2579,1
    - Dst: select
      Src: /src/cpython/Modules/_ssl.c:2581,1
    - Dst: select
      Src: /src/cpython/Modules/_ssl.c:2583,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: 2560
        line_start: 2560
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 2591
      start: 2526
    functionDepth: 1
    functionLinenumber: 2526
    functionLinenumberEnd: 2591
    functionName: PySSL_select
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 1
    functionsReached:
    - FD_ZERO
    - Py_SAFE_DOWNCAST
    - _PyIsSelectable_fd
    - FD_SET
    - _PyTime_AsTimeval_clamp
    - assert
    - select
    - poll
    - _PyTime_AsMilliseconds
    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:2605,1
    - Dst: SSL_get_wbio
      Src: /src/cpython/Modules/_ssl.c:2605,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2600
    functionDepth: 0
    functionLinenumber: 2600
    functionLinenumberEnd: 2612
    functionName: _ssl__SSLSocket_uses_ktls_for_send_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_ktls_send
    - Py_NewRef
    - SSL_get_wbio
    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:2626,1
    - Dst: SSL_get_rbio
      Src: /src/cpython/Modules/_ssl.c:2626,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:2629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2621
    functionDepth: 0
    functionLinenumber: 2621
    functionLinenumberEnd: 2633
    functionName: _ssl__SSLSocket_uses_ktls_for_recv_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_rbio
    - Py_NewRef
    - BIO_get_ktls_recv
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_uses_ktls_for_recv_impl(PySSLSocket *self)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/cpython/Modules/_ssl.c:2668,1
    - Dst: set_eof_error
      Src: /src/cpython/Modules/_ssl.c:2673,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:2677,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:2680,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2683,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2686,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2690,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2690,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2694,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2694,1
    - Dst: SSL_sendfile
      Src: /src/cpython/Modules/_ssl.c:2701,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:2702,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl.c:2706,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_ssl.c:2711,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:2716,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2721,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2724,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2732,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2737,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2737,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:2748,1
    - Dst: ERR_peek_error
      Src: /src/cpython/Modules/_ssl.c:2748,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:2753,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2753,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2758,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:2760,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_ssl.c:2763,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:2766,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2768,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_ssl.c:2770,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 5
    argNames:
    - self
    - fd
    - offset
    - size
    - flags
    argTypes:
    - PySSLSocket*
    - int
    - Py_off_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2655
    functionDepth: 4
    functionLinenumber: 2655
    functionLinenumberEnd: 2773
    functionName: _ssl__SSLSocket_sendfile_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _PyDeadline_Init
    - get_state_sock
    - PyErr_SetRaisedException
    - GET_SOCKET_TIMEOUT
    - _PyErr_ChainExceptions1
    - PySSL_select
    - Py_XDECREF
    - _PySSL_errno
    - _PyDeadline_Get
    - PyErr_SetString
    - SSL_sendfile
    - set_eof_error
    - ERR_peek_error
    - _setSSLError
    - PyErr_GetRaisedException
    - get_socket
    - PySSL_SetError
    - PyErr_CheckSignals
    - ERR_GET_REASON
    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:2800,1
    - Dst: set_eof_error
      Src: /src/cpython/Modules/_ssl.c:2805,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:2809,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:2812,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2815,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2821,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2821,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2825,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2825,1
    - Dst: SSL_write_ex
      Src: /src/cpython/Modules/_ssl.c:2832,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:2833,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl.c:2837,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_ssl.c:2842,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:2846,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2850,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:2852,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2858,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2862,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:2862,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2871,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:2873,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_ssl.c:2875,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:2878,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:2880,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2881,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 81
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - PySSLSocket*
    - Py_buffer*
    assertStmts:
    - condition: (exc == NULL)
      pos:
        line_end: 2879
        line_start: 2879
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 2883
      start: 2787
    functionDepth: 4
    functionLinenumber: 2787
    functionLinenumberEnd: 2883
    functionName: _ssl__SSLSocket_write_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - GET_SOCKET_TIMEOUT
    - get_socket
    - PyLong_FromSize_t
    - _PyDeadline_Init
    - PySSL_SetError
    - assert
    - PyErr_CheckSignals
    - _PyDeadline_Get
    - PyErr_SetString
    - get_state_sock
    - SSL_write_ex
    - set_eof_error
    - PyErr_SetRaisedException
    - PySSL_select
    - Py_XDECREF
    - _PySSL_errno
    - PyErr_GetRaisedException
    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:2901,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:2902,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:2907,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:2909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2893
    functionDepth: 3
    functionLinenumber: 2893
    functionLinenumberEnd: 2910
    functionName: _ssl__SSLSocket_pending_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _PySSL_errno
    - PyLong_FromLong
    - PySSL_SetError
    - SSL_pending
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_pending_impl(PySSLSocket *self)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2940,1
    - Dst: get_socket
      Src: /src/cpython/Modules/_ssl.c:2945,1
    - Dst: set_eof_error
      Src: /src/cpython/Modules/_ssl.c:2950,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:2956,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ssl.c:2957,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_ssl.c:2960,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_ssl.c:2964,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:2971,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:2982,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:2985,1
    - Dst: SSL_read_ex
      Src: /src/cpython/Modules/_ssl.c:2989,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:2990,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl.c:2994,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_ssl.c:2999,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:3003,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:3007,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:3009,1
    - Dst: SSL_get_shutdown
      Src: /src/cpython/Modules/_ssl.c:3011,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3020,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:3030,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_ssl.c:3035,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3041,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3042,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_ssl.c:3044,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:3047,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3051,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3052,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_ssl.c:3054,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 110
    argCount: 4
    argNames:
    - self
    - len
    - group_right_1
    - buffer
    argTypes:
    - PySSLSocket*
    - Py_ssize_t
    - int
    - Py_buffer*
    assertStmts:
    - condition: (exc == NULL)
      pos:
        line_end: 3040
        line_start: 3040
        source_file: /src/cpython/Modules/_ssl.c
    - condition: (exc == NULL)
      pos:
        line_end: 3050
        line_start: 3050
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3057
      start: 2924
    functionDepth: 4
    functionLinenumber: 2924
    functionLinenumberEnd: 3057
    functionName: _ssl__SSLSocket_read_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _PyDeadline_Init
    - PyErr_SetRaisedException
    - assert
    - GET_SOCKET_TIMEOUT
    - Py_XDECREF
    - PySSL_select
    - _PySSL_errno
    - SSL_read_ex
    - PyBytesWriter_Create
    - PyErr_SetString
    - _PyDeadline_Get
    - PyBytesWriter_Discard
    - set_eof_error
    - PyBytesWriter_GetData
    - PyErr_GetRaisedException
    - Py_GetConstant
    - get_socket
    - PySSL_SetError
    - SSL_get_shutdown
    - PyErr_CheckSignals
    - PyBytesWriter_FinishWithSize
    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:3078,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/cpython/Modules/_ssl.c:3082,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_ssl.c:3085,1
    - Dst: SSL_set_read_ahead
      Src: /src/cpython/Modules/_ssl.c:3099,1
    - Dst: SSL_shutdown
      Src: /src/cpython/Modules/_ssl.c:3100,1
    - Dst: _PySSL_errno
      Src: /src/cpython/Modules/_ssl.c:3101,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl.c:3105,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_ssl.c:3125,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:3130,1
    - Dst: PySSL_select
      Src: /src/cpython/Modules/_ssl.c:3132,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3138,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3141,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3146,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:3146,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3155,1
    - Dst: PySSL_SetError
      Src: /src/cpython/Modules/_ssl.c:3156,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3160,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_ssl.c:3161,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3171,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3172,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts:
    - condition: (exc == NULL)
      pos:
        line_end: 3170
        line_start: 3170
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3174
      start: 3066
    functionDepth: 4
    functionLinenumber: 3066
    functionLinenumberEnd: 3174
    functionName: _ssl__SSLSocket_shutdown_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - GET_SOCKET_TIMEOUT
    - get_socket
    - _PyDeadline_Init
    - PySSL_SetError
    - assert
    - _PyDeadline_Get
    - PyErr_SetString
    - get_state_sock
    - SSL_shutdown
    - PyErr_SetRaisedException
    - PySSL_select
    - Py_XDECREF
    - _PySSL_errno
    - PyErr_GetRaisedException
    - SSL_set_read_ahead
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/_ssl.c:3197,1
    - Dst: SSL_session_reused
      Src: /src/cpython/Modules/_ssl.c:3198,1
    - Dst: SSL_get_finished
      Src: /src/cpython/Modules/_ssl.c:3200,1
    - Dst: SSL_get_peer_finished
      Src: /src/cpython/Modules/_ssl.c:3204,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:3208,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:3220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - cb_type
    argTypes:
    - PySSLSocket*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3221
      start: 3189
    functionDepth: 1
    functionLinenumber: 3189
    functionLinenumberEnd: 3221
    functionName: _ssl__SSLSocket_get_channel_binding_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyBytes_FromStringAndSize
    - SSL_session_reused
    - SSL_get_peer_finished
    - PyErr_Format
    - SSL_get_finished
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLSocket_get_channel_binding_impl(PySSLSocket *self,\n
      \                                        const char *cb_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_verify_client_post_handshake
      Src: /src/cpython/Modules/_ssl.c:3235,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3237,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:3237,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3230
    functionDepth: 3
    functionLinenumber: 3230
    functionLinenumberEnd: 3246
    functionName: _ssl__SSLSocket_verify_client_post_handshake_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_verify_client_post_handshake
    - PyErr_SetString
    - get_state_sock
    - _setSSLError
    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:3265,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_ssl.c:3269,1
    - Dst: SSL_SESSION_free
      Src: /src/cpython/Modules/_ssl.c:3273,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3277,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:3278,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_ssl.c:3280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts:
    - condition: (self->ctx)
      pos:
        line_end: 3276
        line_start: 3276
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3282
      start: 3256
    functionDepth: 1
    functionLinenumber: 3256
    functionLinenumberEnd: 3282
    functionName: _ssl__SSLSocket_session_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - SSL_SESSION_free
    - SSL_get1_session
    - assert
    - Py_NewRef
    - PyObject_GC_Track
    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:3296,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:3296,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3297,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3303,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3308,1
    - Dst: SSL_is_init_finished
      Src: /src/cpython/Modules/_ssl.c:3312,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3313,1
    - Dst: SSL_set_session
      Src: /src/cpython/Modules/_ssl.c:3318,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3319,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl.c:3319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3290
    functionDepth: 3
    functionLinenumber: 3290
    functionLinenumberEnd: 3323
    functionName: _ssl__SSLSocket_session_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - Py_IS_TYPE
    - PyErr_SetString
    - get_state_sock
    - _setSSLError
    - 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:3337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3333
    functionDepth: 0
    functionLinenumber: 3333
    functionLinenumberEnd: 3339
    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:3412,1
    - Dst: SSL_CTX_set_verify
      Src: /src/cpython/Modules/_ssl.c:3420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PySSLContext*
    - enum py_ssl_cert_requirements
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3396
    functionDepth: 1
    functionLinenumber: 3396
    functionLinenumberEnd: 3422
    functionName: _set_verify_mode
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_verify
    - PyErr_SetString
    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:3445,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3447,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3455,1
    - Dst: SSLv3_method
      Src: /src/cpython/Modules/_ssl.c:3456,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3463,1
    - Dst: TLSv1_method
      Src: /src/cpython/Modules/_ssl.c:3464,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3471,1
    - Dst: TLSv1_1_method
      Src: /src/cpython/Modules/_ssl.c:3472,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3479,1
    - Dst: TLSv1_2_method
      Src: /src/cpython/Modules/_ssl.c:3480,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:3484,1
    - Dst: TLS_method
      Src: /src/cpython/Modules/_ssl.c:3485,1
    - Dst: TLS_client_method
      Src: /src/cpython/Modules/_ssl.c:3488,1
    - Dst: TLS_server_method
      Src: /src/cpython/Modules/_ssl.c:3491,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:3498,1
    - Dst: SSL_CTX_new
      Src: /src/cpython/Modules/_ssl.c:3509,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3514,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:3514,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3518,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ssl.c:3519,1
    - Dst: SSL_CTX_free
      Src: /src/cpython/Modules/_ssl.c:3521,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:3531,1
    - Dst: _set_verify_mode
      Src: /src/cpython/Modules/_ssl.c:3541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:3542,1
    - Dst: _set_verify_mode
      Src: /src/cpython/Modules/_ssl.c:3547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:3548,1
    - Dst: SSL_CTX_set_options
      Src: /src/cpython/Modules/_ssl.c:3572,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/cpython/Modules/_ssl.c:3581,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/cpython/Modules/_ssl.c:3585,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:3588,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3589,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3589,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/cpython/Modules/_ssl.c:3598,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:3600,1
    - Dst: SSL_CTX_set_mode
      Src: /src/cpython/Modules/_ssl.c:3613,1
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:3615,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/cpython/Modules/_ssl.c:3618,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/cpython/Modules/_ssl.c:3619,1
    - Dst: SSL_CTX_set_post_handshake_auth
      Src: /src/cpython/Modules/_ssl.c:3623,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3628,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:3629,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: 3517
        line_start: 3517
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3631
      start: 3432
    functionDepth: 3
    functionLinenumber: 3432
    functionLinenumberEnd: 3631
    functionName: _ssl__SSLContext_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - TLSv1_method
    - _set_verify_mode
    - X509_VERIFY_PARAM_set_hostflags
    - get_state_ctx
    - assert
    - TLSv1_1_method
    - get_ssl_state
    - SSL_CTX_free
    - SSL_CTX_get0_param
    - TLS_client_method
    - X509_VERIFY_PARAM_set_flags
    - Py_XDECREF
    - SSL_CTX_set_min_proto_version
    - ERR_clear_error
    - PyErr_SetString
    - TLSv1_2_method
    - SSLv3_method
    - SSL_CTX_new
    - TLS_method
    - SSL_CTX_set_post_handshake_auth
    - SSL_CTX_set_options
    - _setSSLError
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PY_SSL_DEPRECATED
    - TLS_server_method
    - SSL_CTX_set_mode
    - PyType_GetModuleByDef
    - SSL_CTX_set_cipher_list
    - PyErr_Format
    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:3636,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3637,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3638,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3639,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3641,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3642,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:3644,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:3644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3633
    functionDepth: 1
    functionLinenumber: 3633
    functionLinenumberEnd: 3646
    functionName: context_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PySSLContext_CAST
    - Py_TYPE
    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:3651,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3652,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3653,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3654,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3656,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3667
      start: 3648
    functionDepth: 1
    functionLinenumber: 3648
    functionLinenumberEnd: 3667
    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:3672,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:3673,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ssl.c:3675,1
    - Dst: context_clear
      Src: /src/cpython/Modules/_ssl.c:3676,1
    - Dst: SSL_CTX_free
      Src: /src/cpython/Modules/_ssl.c:3677,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/_ssl.c:3678,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ssl.c:3679,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:3680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3669
    functionDepth: 1
    functionLinenumber: 3669
    functionLinenumberEnd: 3681
    functionName: context_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    - PyMem_FREE
    - PyTypeObject*::tp_free
    - PySSLContext_CAST
    - PyObject_GC_UnTrack
    - Py_DECREF
    - context_clear
    - Py_TYPE
    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:3694,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:3699,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3700,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - cipherlist
    argTypes:
    - PySSLContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3690
    functionDepth: 1
    functionLinenumber: 3690
    functionLinenumberEnd: 3705
    functionName: _ssl__SSLContext_set_ciphers_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - PyErr_SetString
    - ERR_clear_error
    - get_state_ctx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ciphers_impl(PySSLContext *self, const char *cipherlist)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/cpython/Modules/_ssl.c:3719,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3720,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - ciphersuites
    argTypes:
    - PySSLContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3714
    functionDepth: 3
    functionLinenumber: 3714
    functionLinenumberEnd: 3724
    functionName: _ssl__SSLContext_set_ciphersuites_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ciphersuites
    - get_state_ctx
    - _setSSLError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_set_ciphersuites_impl(PySSLContext *self,\n
      \                                      const char *ciphersuites)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/cpython/Modules/_ssl.c:3736,1
    - Dst: SSL_new
      Src: /src/cpython/Modules/_ssl.c:3741,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3743,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3743,1
    - Dst: SSL_get_ciphers
      Src: /src/cpython/Modules/_ssl.c:3746,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:3748,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/cpython/Modules/_ssl.c:3748,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/cpython/Modules/_ssl.c:3753,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/cpython/Modules/_ssl.c:3754,1
    - Dst: cipher_to_dict
      Src: /src/cpython/Modules/_ssl.c:3755,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:3757,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:3760,1
    - Dst: SSL_free
      Src: /src/cpython/Modules/_ssl.c:3765,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3768
      start: 3731
    functionDepth: 3
    functionLinenumber: 3731
    functionLinenumberEnd: 3768
    functionName: _ssl__SSLContext_get_ciphers_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - cipher_to_dict
    - PyList_SET_ITEM
    - SSL_free
    - sk_SSL_CIPHER_value
    - SSL_get_ciphers
    - get_state_ctx
    - sk_SSL_CIPHER_num
    - Py_CLEAR
    - SSL_new
    - _setSSLError
    - PyList_New
    - STACK_OF
    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:3781,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3782,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - grouplist
    argTypes:
    - PySSLContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3777
    functionDepth: 3
    functionLinenumber: 3777
    functionLinenumberEnd: 3786
    functionName: _ssl__SSLContext_set_groups_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - _setSSLError
    - 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:3800,1
    - Dst: sk_OPENSSL_CSTRING_new_null
      Src: /src/cpython/Modules/_ssl.c:3807,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3808,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3808,1
    - Dst: SSL_CTX_get0_implemented_groups
      Src: /src/cpython/Modules/_ssl.c:3812,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3813,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3813,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/cpython/Modules/_ssl.c:3817,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:3818,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/cpython/Modules/_ssl.c:3825,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:3826,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_ssl.c:3831,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:3835,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/cpython/Modules/_ssl.c:3838,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:3841,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/cpython/Modules/_ssl.c:3842,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3845,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - self
    - include_aliases
    argTypes:
    - PySSLContext*
    - int
    assertStmts:
    - condition: (group != NULL)
      pos:
        line_end: 3825
        line_start: 3825
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3849
      start: 3795
    functionDepth: 3
    functionLinenumber: 3795
    functionLinenumberEnd: 3849
    functionName: _ssl__SSLContext_get_groups_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get0_implemented_groups
    - PyList_SET_ITEM
    - sk_OPENSSL_CSTRING_free
    - sk_OPENSSL_CSTRING_num
    - sk_OPENSSL_CSTRING_value
    - assert
    - PyErr_SetString
    - get_state_ctx
    - _setSSLError
    - sk_OPENSSL_CSTRING_new_null
    - PyList_New
    - Py_XDECREF
    - STACK_OF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_groups_impl(PySSLContext *self, int include_aliases)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3864,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3864,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/cpython/Modules/_ssl.c:3867,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3868,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - sigalgslist
    argTypes:
    - PySSLContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3858
    functionDepth: 3
    functionLinenumber: 3858
    functionLinenumberEnd: 3873
    functionName: _ssl__SSLContext_set_client_sigalgs_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set1_client_sigalgs_list
    - get_state_ctx
    - _setSSLError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_set_client_sigalgs_impl(PySSLContext
      *self,\n                                         const char *sigalgslist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/cpython/Modules/_ssl.c:3887,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:3888,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - sigalgslist
    argTypes:
    - PySSLContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3882
    functionDepth: 3
    functionLinenumber: 3882
    functionLinenumberEnd: 3892
    functionName: _ssl__SSLContext_set_server_sigalgs_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set1_sigalgs_list
    - get_state_ctx
    - _setSSLError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_set_server_sigalgs_impl(PySSLContext
      *self,\n                                         const char *sigalgslist)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_select_next_proto
      Src: /src/cpython/Modules/_ssl.c:3909,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: 3916
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 3916
    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:3925,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: 3928
      start: 3918
    functionDepth: 1
    functionLinenumber: 3918
    functionLinenumberEnd: 3928
    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:3943,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:3948,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ssl.c:3949,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:3951,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:3953,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/cpython/Modules/_ssl.c:3955,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:3956,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/cpython/Modules/_ssl.c:3958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - protos
    argTypes:
    - PySSLContext*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3961
      start: 3937
    functionDepth: 1
    functionLinenumber: 3937
    functionLinenumberEnd: 3961
    functionName: _ssl__SSLContext__set_alpn_protocols_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - SSL_CTX_set_alpn_protos
    - memcpy
    - PyMem_Free
    - PyErr_Format
    - SSL_CTX_set_alpn_select_cb
    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:3976,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:3979,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:3981,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:3983,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:3985,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:3985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3988
      start: 3969
    functionDepth: 1
    functionLinenumber: 3969
    functionLinenumberEnd: 3988
    functionName: _ssl__SSLContext_verify_mode_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_verify_mode
    - PyLong_FromLong
    - get_state_ctx
    - PyErr_SetString
    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:4001,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4004,1
    - Dst: _set_verify_mode
      Src: /src/cpython/Modules/_ssl.c:4009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4010
      start: 3996
    functionDepth: 2
    functionLinenumber: 3996
    functionLinenumberEnd: 4010
    functionName: _ssl__SSLContext_verify_mode_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _set_verify_mode
    - PyErr_SetString
    - PyArg_Parse
    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:4025,1
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/cpython/Modules/_ssl.c:4026,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_ssl.c:4027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4028
      start: 4018
    functionDepth: 0
    functionLinenumber: 4018
    functionLinenumberEnd: 4028
    functionName: _ssl__SSLContext_verify_flags_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get_flags
    - SSL_CTX_get0_param
    - 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:4043,1
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:4045,1
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/cpython/Modules/_ssl.c:4046,1
    - Dst: X509_VERIFY_PARAM_clear_flags
      Src: /src/cpython/Modules/_ssl.c:4050,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4051,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4051,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/cpython/Modules/_ssl.c:4056,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4057,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4057,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4036
    functionDepth: 3
    functionLinenumber: 4036
    functionLinenumberEnd: 4062
    functionName: _ssl__SSLContext_verify_flags_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get0_param
    - get_state_ctx
    - PyArg_Parse
    - X509_VERIFY_PARAM_set_flags
    - X509_VERIFY_PARAM_get_flags
    - _setSSLError
    - X509_VERIFY_PARAM_clear_flags
    linkageType: ''
    returnType: int
    signature: int _ssl__SSLContext_verify_flags_set_impl(PySSLContext *self, PyObject
      *value)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_ssl.c:4071,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4080,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:4091,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:4094,1
    - Dst: PY_SSL_DEPRECATED
      Src: /src/cpython/Modules/_ssl.c:4097,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:4106,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/cpython/Modules/_ssl.c:4123,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/cpython/Modules/_ssl.c:4137,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:4140,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 3
    argNames:
    - self
    - arg
    - what
    argTypes:
    - PySSLContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4145
      start: 4065
    functionDepth: 1
    functionLinenumber: 4065
    functionLinenumberEnd: 4145
    functionName: set_min_max_proto_version
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyArg_Parse
    - PyErr_Format
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_set_max_proto_version
    - 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:4157,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:4161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4153
    functionDepth: 0
    functionLinenumber: 4153
    functionLinenumberEnd: 4162
    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:4175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4176
      start: 4170
    functionDepth: 2
    functionLinenumber: 4170
    functionLinenumberEnd: 4176
    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:4188,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:4192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4193
      start: 4184
    functionDepth: 0
    functionLinenumber: 4184
    functionLinenumberEnd: 4193
    functionName: _ssl__SSLContext_maximum_version_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_max_proto_version
    - PyLong_FromLong
    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:4206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4207
      start: 4201
    functionDepth: 2
    functionLinenumber: 4201
    functionLinenumberEnd: 4207
    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:4223,1
    - Dst: SSL_CTX_get_num_tickets
      Src: /src/cpython/Modules/_ssl.c:4223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4228
      start: 4217
    functionDepth: 1
    functionLinenumber: 4217
    functionLinenumberEnd: 4228
    functionName: _ssl__SSLContext_num_tickets_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - SSL_CTX_get_num_tickets
    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:4241,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4244,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4248,1
    - Dst: SSL_CTX_set_num_tickets
      Src: /src/cpython/Modules/_ssl.c:4252,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4257
      start: 4236
    functionDepth: 1
    functionLinenumber: 4236
    functionLinenumberEnd: 4257
    functionName: _ssl__SSLContext_num_tickets_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyArg_Parse
    - 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:4271,1
    - Dst: SSL_CTX_get_security_level
      Src: /src/cpython/Modules/_ssl.c:4271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4273
      start: 4267
    functionDepth: 0
    functionLinenumber: 4267
    functionLinenumberEnd: 4273
    functionName: _ssl__SSLContext_security_level_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SSL_CTX_get_security_level
    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:4285,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_ssl.c:4286,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_ssl.c:4287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4288
      start: 4281
    functionDepth: 1
    functionLinenumber: 4281
    functionLinenumberEnd: 4288
    functionName: _ssl__SSLContext_options_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    - SSL_CTX_get_options
    - Py_BUILD_ASSERT
    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:4307,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_ssl.c:4310,1
    - Dst: SSL_CTX_get_options
      Src: /src/cpython/Modules/_ssl.c:4313,1
    - Dst: _ssl_deprecated
      Src: /src/cpython/Modules/_ssl.c:4318,1
    - Dst: SSL_CTX_clear_options
      Src: /src/cpython/Modules/_ssl.c:4324,1
    - Dst: SSL_CTX_set_options
      Src: /src/cpython/Modules/_ssl.c:4327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4330
      start: 4296
    functionDepth: 2
    functionLinenumber: 4296
    functionLinenumberEnd: 4330
    functionName: _ssl__SSLContext_options_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _ssl_deprecated
    - SSL_CTX_get_options
    - SSL_CTX_clear_options
    - PyArg_Parse
    - Py_BUILD_ASSERT
    - 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:4345,1
    - Dst: X509_VERIFY_PARAM_get_hostflags
      Src: /src/cpython/Modules/_ssl.c:4346,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_ssl.c:4347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4348
      start: 4338
    functionDepth: 0
    functionLinenumber: 4338
    functionLinenumberEnd: 4348
    functionName: _ssl__SSLContext__host_flags_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get_hostflags
    - SSL_CTX_get0_param
    - 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:4363,1
    - Dst: SSL_CTX_get0_param
      Src: /src/cpython/Modules/_ssl.c:4366,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/cpython/Modules/_ssl.c:4367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4356
    functionDepth: 1
    functionLinenumber: 4356
    functionLinenumberEnd: 4369
    functionName: _ssl__SSLContext__host_flags_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_hostflags
    - PyArg_Parse
    - SSL_CTX_get0_param
    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:4381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4382
      start: 4377
    functionDepth: 1
    functionLinenumber: 4377
    functionLinenumberEnd: 4382
    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:4395,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/cpython/Modules/_ssl.c:4397,1
    - Dst: _set_verify_mode
      Src: /src/cpython/Modules/_ssl.c:4401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4407
      start: 4390
    functionDepth: 2
    functionLinenumber: 4390
    functionLinenumberEnd: 4407
    functionName: _ssl__SSLContext_check_hostname_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_verify_mode
    - PyArg_Parse
    - _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:4412,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ssl.c:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4409
    functionDepth: 1
    functionLinenumber: 4409
    functionLinenumberEnd: 4418
    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:4424,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4426,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_ssl.c:4429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - op
    - arg
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4440
      start: 4421
    functionDepth: 1
    functionLinenumber: 4421
    functionLinenumberEnd: 4440
    functionName: set_post_handshake_auth
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - PySSLContext_CAST
    - PyObject_IsTrue
    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:4453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4449
    functionDepth: 0
    functionLinenumber: 4449
    functionLinenumberEnd: 4454
    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:4476,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_ssl.c:4477,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4481,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:4482,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ssl.c:4483,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4484,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:4485,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_ssl.c:4486,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4487,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:4488,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4490,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:4495,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:4500,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ssl.c:4501,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4503,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:4507,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4510,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4514,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: 4516
      start: 4464
    functionDepth: 1
    functionLinenumber: 4464
    functionLinenumberEnd: 4516
    functionName: _pwinfo_set
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8String
    - PyByteArray_GET_SIZE
    - memcpy
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyMem_Free
    - Py_XDECREF
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_AS_STRING
    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:4524,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ssl.c:4535,1
    - Dst: _pwinfo_set
      Src: /src/cpython/Modules/_ssl.c:4542,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:4546,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:4550,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_ssl.c:4555,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:4556,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4560,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_ssl.c:4561,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4564
      start: 4518
    functionDepth: 2
    functionLinenumber: 4518
    functionLinenumberEnd: 4564
    functionName: _password_callback
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _pwinfo_set
    - PyThreadState_Swap
    - Py_CLEAR
    - memcpy
    - PyErr_Format
    - PyObject_CallNoArgs
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _password_callback(char *buf, int size, int rwflag, void *userdata)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_default_passwd_cb
      Src: /src/cpython/Modules/_ssl.c:4573,1
    - Dst: SSL_CTX_get_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4574,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/cpython/Modules/_ssl.c:4576,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4577,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4579,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/cpython/Modules/_ssl.c:4580,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4581,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4582,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4585,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_ssl.c:4589,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4590,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4591,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4594,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4594,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4599,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/cpython/Modules/_ssl.c:4600,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4601,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4603,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4606,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_ssl.c:4610,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4611,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: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4620,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/cpython/Modules/_ssl.c:4621,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/cpython/Modules/_ssl.c:4622,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4624,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4624,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/cpython/Modules/_ssl.c:4629,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 4
    argNames:
    - self
    - pw_info
    - certfile_bytes
    - keyfile_bytes
    argTypes:
    - PySSLContext*
    - _PySSLPasswordInfo*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4632
      start: 4566
    functionDepth: 3
    functionLinenumber: 4566
    functionLinenumberEnd: 4632
    functionName: load_cert_chain_lock_held
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_check_private_key
    - SSL_CTX_get_default_passwd_cb_userdata
    - SSL_CTX_set_default_passwd_cb_userdata
    - PyErr_SetFromErrnoWithFilename
    - get_state_ctx
    - SSL_CTX_use_PrivateKey_file
    - PySSL_BEGIN_ALLOW_THREADS_S
    - SSL_CTX_set_default_passwd_cb
    - SSL_CTX_get_default_passwd_cb
    - PyBytes_AS_STRING
    - PySSL_END_ALLOW_THREADS_S
    - _setSSLError
    - SSL_CTX_use_certificate_chain_file
    - ERR_clear_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nload_cert_chain_lock_held(PySSLContext *self, _PySSLPasswordInfo
      *pw_info,\n                          PyObject *certfile_bytes, PyObject *keyfile_bytes)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4652,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4655,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4656,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4657,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4662,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4664,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl.c:4670,1
    - Dst: _pwinfo_set
      Src: /src/cpython/Modules/_ssl.c:4672,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_ssl.c:4678,1
    - Dst: load_cert_chain_lock_held
      Src: /src/cpython/Modules/_ssl.c:4679,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_ssl.c:4680,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:4683,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4684,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4685,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - self
    - certfile
    - keyfile
    - password
    argTypes:
    - PySSLContext*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4687
      start: 4642
    functionDepth: 4
    functionLinenumber: 4642
    functionLinenumberEnd: 4687
    functionName: _ssl__SSLContext_load_cert_chain_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - _pwinfo_set
    - PyCallable_Check
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyMem_Free
    - PyUnicode_FSConverter
    - Py_XDECREF
    - PyMutex_Lock
    - ERR_clear_error
    - load_cert_chain_lock_held
    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:4699,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4702,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4706,1
    - Dst: BIO_new_mem_buf
      Src: /src/cpython/Modules/_ssl.c:4711,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4713,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4713,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/cpython/Modules/_ssl.c:4717,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:4718,1
    - Dst: BIO_eof
      Src: /src/cpython/Modules/_ssl.c:4725,1
    - Dst: d2i_X509_bio
      Src: /src/cpython/Modules/_ssl.c:4729,1
    - Dst: PEM_read_bio_X509
      Src: /src/cpython/Modules/_ssl.c:4731,1
    - Dst: SSL_CTX_get_default_passwd_cb
      Src: /src/cpython/Modules/_ssl.c:4732,1
    - Dst: SSL_CTX_get_default_passwd_cb_userdata
      Src: /src/cpython/Modules/_ssl.c:4733,1
    - Dst: X509_STORE_add_cert
      Src: /src/cpython/Modules/_ssl.c:4739,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl.c:4740,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_ssl.c:4742,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:4743,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:4744,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4746,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_ssl.c:4754,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4762,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4762,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4766,1
    - Dst: ERR_GET_LIB
      Src: /src/cpython/Modules/_ssl.c:4769,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_ssl.c:4770,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4772,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4775,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4775,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:4781,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: 4698
        line_start: 4698
        source_file: /src/cpython/Modules/_ssl.c
    - condition: (store != NULL)
      pos:
        line_end: 4717
        line_start: 4717
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4783
      start: 4691
    functionDepth: 3
    functionLinenumber: 4691
    functionLinenumberEnd: 4783
    functionName: _add_ca_certs
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - PEM_read_bio_X509
    - BIO_eof
    - X509_STORE_add_cert
    - SSL_CTX_get_default_passwd_cb_userdata
    - PyErr_SetString
    - get_state_ctx
    - ERR_peek_last_error
    - ERR_GET_REASON
    - BIO_free
    - X509_free
    - BIO_new_mem_buf
    - d2i_X509_bio
    - _setSSLError
    - SSL_CTX_get_default_passwd_cb
    - assert
    - ERR_GET_LIB
    - SSL_CTX_get_cert_store
    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:4815,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4819,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4820,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4821,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ssl.c:4826,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4827,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4828,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ssl.c:4836,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_ssl.c:4837,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ssl.c:4839,1
    - Dst: _add_ca_certs
      Src: /src/cpython/Modules/_ssl.c:4844,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4845,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ssl.c:4846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:4848,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_ssl.c:4853,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_ssl.c:4855,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:4858,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_ssl.c:4858,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ssl.c:4860,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4861,1
    - Dst: _add_ca_certs
      Src: /src/cpython/Modules/_ssl.c:4866,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ssl.c:4867,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:4874,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4884,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:4886,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl.c:4887,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/cpython/Modules/_ssl.c:4888,1
    - Dst: PySSL_END_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl.c:4889,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_ssl.c:4892,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4893,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4896,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4896,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4906,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:4907,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: 4857
        line_start: 4857
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4913
      start: 4795
    functionDepth: 4
    functionLinenumber: 4795
    functionLinenumberEnd: 4913
    functionName: _ssl__SSLContext_load_verify_locations_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - assert
    - _add_ca_certs
    - PyBuffer_IsContiguous
    - PyObject_GetBuffer
    - PySSL_BEGIN_ALLOW_THREADS
    - PySSL_END_ALLOW_THREADS
    - PyUnicode_Check
    - PyUnicode_AsASCIIString
    - Py_XDECREF
    - PyBytes_AS_STRING
    - SSL_CTX_load_verify_locations
    - ERR_clear_error
    - PyObject_CheckBuffer
    - PyErr_SetString
    - _setSSLError
    - PyUnicode_FSConverter
    - Py_DECREF
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyErr_ExceptionMatches
    - PyErr_SetFromErrno
    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:4931,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_ssl.c:4936,1
    - Dst: PEM_read_DHparams
      Src: /src/cpython/Modules/_ssl.c:4942,1
    - Dst: fclose
      Src: /src/cpython/Modules/_ssl.c:4943,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_ssl.c:4948,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_ssl.c:4949,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4952,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4952,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/cpython/Modules/_ssl.c:4956,1
    - Dst: DH_free
      Src: /src/cpython/Modules/_ssl.c:4957,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:4958,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:4958,1
    - Dst: DH_free
      Src: /src/cpython/Modules/_ssl.c:4960,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - filepath
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4962
      start: 4923
    functionDepth: 3
    functionLinenumber: 4923
    functionLinenumberEnd: 4962
    functionName: _ssl__SSLContext_load_dh_params_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - fclose
    - SSL_CTX_set_tmp_dh
    - PyErr_SetString
    - get_state_ctx
    - DH_free
    - PEM_read_DHparams
    - _setSSLError
    - Py_fopen
    - PyErr_SetFromErrnoWithFilenameObject
    - ERR_clear_error
    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:4988,1
    - Dst: newPySSLSocket
      Src: /src/cpython/Modules/_ssl.c:4992,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:4997,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: 4999
      start: 4976
    functionDepth: 5
    functionLinenumber: 4976
    functionLinenumberEnd: 4999
    functionName: _ssl__SSLContext__wrap_socket_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - newPySSLSocket
    - PyArg_Parse
    - 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:5027,1
    - Dst: newPySSLSocket
      Src: /src/cpython/Modules/_ssl.c:5031,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:5035,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: 5037
      start: 5014
    functionDepth: 5
    functionLinenumber: 5014
    functionLinenumberEnd: 5037
    functionName: _ssl__SSLContext__wrap_bio_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - newPySSLSocket
    - PyArg_Parse
    - 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:5049,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5062,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5063,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5064,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5065,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5066,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5067,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5068,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5069,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5070,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5071,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5072,1
    - Dst: ADD_STATS
      Src: /src/cpython/Modules/_ssl.c:5073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5082
      start: 5044
    functionDepth: 1
    functionLinenumber: 5044
    functionLinenumberEnd: 5082
    functionName: _ssl__SSLContext_session_stats_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - ADD_STATS
    - 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: 5061
      start: 5053
    functionDepth: 0
    functionLinenumber: 5053
    functionLinenumberEnd: 5061
    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:5095,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5099,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5103
      start: 5089
    functionDepth: 3
    functionLinenumber: 5089
    functionLinenumberEnd: 5103
    functionName: _ssl__SSLContext_set_default_verify_paths_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_ctx
    - _setSSLError
    - SSL_CTX_set_default_verify_paths
    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:5119,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:5121,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ssl.c:5121,1
    - Dst: OBJ_sn2nid
      Src: /src/cpython/Modules/_ssl.c:5122,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:5122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5123,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:5125,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/cpython/Modules/_ssl.c:5130,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5132,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5132,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/cpython/Modules/_ssl.c:5135,1
    - Dst: EC_KEY_free
      Src: /src/cpython/Modules/_ssl.c:5136,1
    - Dst: SSL_CTX_set1_groups
      Src: /src/cpython/Modules/_ssl.c:5138,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5139,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(name_bytes))
      pos:
        line_end: 5120
        line_start: 5120
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 5144
      start: 5113
    functionDepth: 3
    functionLinenumber: 5113
    functionLinenumberEnd: 5144
    functionName: _ssl__SSLContext_set_ecdh_curve_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - SSL_CTX_set1_groups
    - PyBytes_Check
    - get_state_ctx
    - EC_KEY_free
    - OBJ_sn2nid
    - _setSSLError
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyUnicode_FSConverter
    - EC_KEY_new_by_curve_name
    - SSL_CTX_set_tmp_ecdh
    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:5156,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ssl.c:5157,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ssl.c:5159,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ssl.c:5160,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ssl.c:5161,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5164,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl.c:5168,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:5169,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl.c:5169,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5169,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl.c:5180,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl.c:5182,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5184,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ssl.c:5190,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_ssl.c:5197,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5199,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Modules/_ssl.c:5206,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5212,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5215,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ssl.c:5216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5221,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5224,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_ssl.c:5238,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:5239,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5252,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5253,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5257,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5258,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5261,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    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: 5168
        line_start: 5168
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 5263
      start: 5146
    functionDepth: 1
    functionLinenumber: 5146
    functionLinenumberEnd: 5263
    functionName: _servername_callback
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - Py_END_CRITICAL_SECTION
    - get_state_ctx
    - PyErr_Occurred
    - assert
    - Py_XNewRef
    - PyGILState_Ensure
    - PyLong_AsLong
    - Py_XDECREF
    - PyWeakref_GetRef
    - Py_IS_TYPE
    - PyGILState_Release
    - PyObject_CallFunctionObjArgs
    - PyBytes_FromString
    - Py_DECREF
    - Py_NewRef
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_FromEncodedObject
    - SSL_get_servername
    - PyErr_FormatUnraisable
    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:5288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5289
      start: 5280
    functionDepth: 0
    functionLinenumber: 5280
    functionLinenumberEnd: 5289
    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:5303,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl.c:5307,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/cpython/Modules/_ssl.c:5308,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:5309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5311,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ssl.c:5316,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5316,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/cpython/Modules/_ssl.c:5317,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/cpython/Modules/_ssl.c:5318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5321
      start: 5298
    functionDepth: 1
    functionLinenumber: 5298
    functionLinenumberEnd: 5321
    functionName: _ssl__SSLContext_sni_callback_set_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_tlsext_servername_callback
    - PyCallable_Check
    - Py_XSETREF
    - SSL_CTX_set_tlsext_servername_arg
    - PyErr_SetString
    - Py_CLEAR
    - Py_NewRef
    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:5327,1
    - Dst: X509_OBJECT_get_type
      Src: /src/cpython/Modules/_ssl.c:5331,1
    - Dst: X509_OBJECT_set1_X509
      Src: /src/cpython/Modules/_ssl.c:5333,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/cpython/Modules/_ssl.c:5333,1
    - Dst: X509_OBJECT_set1_X509_CRL
      Src: /src/cpython/Modules/_ssl.c:5337,1
    - Dst: X509_OBJECT_get0_X509_CRL
      Src: /src/cpython/Modules/_ssl.c:5338,1
    - Dst: X509_OBJECT_free
      Src: /src/cpython/Modules/_ssl.c:5347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5351
      start: 5324
    functionDepth: 0
    functionLinenumber: 5324
    functionLinenumberEnd: 5351
    functionName: x509_object_dup
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_free
    - X509_OBJECT_get_type
    - X509_OBJECT_get0_X509
    - X509_OBJECT_set1_X509
    - X509_OBJECT_set1_X509_CRL
    - X509_OBJECT_new
    - X509_OBJECT_get0_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:5356,1
    - Dst: X509_STORE_lock
      Src: /src/cpython/Modules/_ssl.c:5357,1
    - Dst: sk_X509_OBJECT_deep_copy
      Src: /src/cpython/Modules/_ssl.c:5360,1
    - Dst: X509_STORE_get0_objects
      Src: /src/cpython/Modules/_ssl.c:5360,1
    - Dst: X509_STORE_unlock
      Src: /src/cpython/Modules/_ssl.c:5362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - store
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5364
      start: 5353
    functionDepth: 0
    functionLinenumber: 5353
    functionLinenumberEnd: 5364
    functionName: X509_STORE_get1_objects
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_STORE_unlock
    - X509_STORE_lock
    - sk_X509_OBJECT_deep_copy
    - X509_STORE_get0_objects
    - 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:5385,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/cpython/Modules/_ssl.c:5389,1
    - Dst: X509_STORE_get1_objects
      Src: /src/cpython/Modules/_ssl.c:5390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5392,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/cpython/Modules/_ssl.c:5396,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/cpython/Modules/_ssl.c:5397,1
    - Dst: X509_OBJECT_get_type
      Src: /src/cpython/Modules/_ssl.c:5398,1
    - Dst: X509_check_ca
      Src: /src/cpython/Modules/_ssl.c:5401,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/cpython/Modules/_ssl.c:5401,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/cpython/Modules/_ssl.c:5413,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:5414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5416
      start: 5380
    functionDepth: 1
    functionLinenumber: 5380
    functionLinenumberEnd: 5416
    functionName: _ssl__SSLContext_cert_store_stats_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_pop_free
    - sk_X509_OBJECT_value
    - sk_X509_OBJECT_num
    - X509_STORE_get1_objects
    - X509_OBJECT_get_type
    - X509_check_ca
    - PyErr_SetString
    - Py_BuildValue
    - X509_OBJECT_get0_X509
    - SSL_CTX_get_cert_store
    - 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:5437,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ssl.c:5441,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/cpython/Modules/_ssl.c:5445,1
    - Dst: X509_STORE_get1_objects
      Src: /src/cpython/Modules/_ssl.c:5446,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5448,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/cpython/Modules/_ssl.c:5452,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/cpython/Modules/_ssl.c:5456,1
    - Dst: X509_OBJECT_get_type
      Src: /src/cpython/Modules/_ssl.c:5457,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/cpython/Modules/_ssl.c:5462,1
    - Dst: X509_check_ca
      Src: /src/cpython/Modules/_ssl.c:5463,1
    - Dst: _certificate_to_der
      Src: /src/cpython/Modules/_ssl.c:5467,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5467,1
    - Dst: _decode_certificate
      Src: /src/cpython/Modules/_ssl.c:5469,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5469,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_ssl.c:5474,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:5477,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/cpython/Modules/_ssl.c:5479,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/cpython/Modules/_ssl.c:5483,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5484,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5485,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - self
    - binary_form
    argTypes:
    - PySSLContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5487
      start: 5432
    functionDepth: 8
    functionLinenumber: 5432
    functionLinenumberEnd: 5487
    functionName: _ssl__SSLContext_get_ca_certs_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_pop_free
    - sk_X509_OBJECT_value
    - _certificate_to_der
    - X509_STORE_get1_objects
    - sk_X509_OBJECT_num
    - X509_OBJECT_get_type
    - X509_check_ca
    - PyErr_SetString
    - get_state_ctx
    - Py_CLEAR
    - X509_OBJECT_get0_X509
    - PyList_New
    - STACK_OF
    - PyList_Append
    - Py_XDECREF
    - SSL_CTX_get_cert_store
    - _decode_certificate
    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:5497,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl.c:5500,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_ssl.c:5510,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:5510,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5511,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ssl.c:5516,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ssl.c:5519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5520,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ssl.c:5530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5538,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:5541,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:5543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5547,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5549,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:5553,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5554,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5557,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: 5559
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5559
    functionName: psk_client_callback
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - PyGILState_Ensure
    - PyUnicode_DecodeUTF8
    - PyGILState_Release
    - PyObject_CallFunctionObjArgs
    - PyErr_FormatUnraisable
    - PyErr_Clear
    - memcpy
    - strlen
    - PyErr_Occurred
    - Py_DECREF
    - PyArg_ParseTuple
    - Py_NewRef
    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:5576,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5576,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl.c:5588,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5589,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5595,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ssl.c:5596,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/cpython/Modules/_ssl.c:5599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - self
    - callback
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5607
      start: 5569
    functionDepth: 3
    functionLinenumber: 5569
    functionLinenumberEnd: 5607
    functionName: _ssl__SSLContext_set_psk_client_callback_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyErr_SetString
    - get_state_ctx
    - SSL_CTX_set_psk_client_callback
    - _setSSLError
    - Py_XDECREF
    - 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:5615,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl.c:5618,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_ssl.c:5628,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ssl.c:5628,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:5629,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ssl.c:5634,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ssl.c:5637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5638,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_ssl.c:5646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5652,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ssl.c:5655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5657,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5659,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ssl.c:5663,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ssl.c:5664,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl.c:5667,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: 5669
      start: 5610
    functionDepth: 1
    functionLinenumber: 5610
    functionLinenumberEnd: 5669
    functionName: psk_server_callback
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - PyGILState_Ensure
    - PyUnicode_DecodeUTF8
    - PyGILState_Release
    - PyObject_CallFunctionObjArgs
    - PyErr_FormatUnraisable
    - PyErr_Clear
    - memcpy
    - strlen
    - PyErr_Occurred
    - Py_DECREF
    - PyBytes_AsStringAndSize
    - Py_NewRef
    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:5688,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl.c:5688,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl.c:5701,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5702,1
    - Dst: SSL_CTX_use_psk_identity_hint
      Src: /src/cpython/Modules/_ssl.c:5708,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5709,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:5713,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ssl.c:5714,1
    - Dst: SSL_CTX_set_psk_server_callback
      Src: /src/cpython/Modules/_ssl.c:5717,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - self
    - callback
    - identity_hint
    argTypes:
    - PySSLContext*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5725
      start: 5680
    functionDepth: 3
    functionLinenumber: 5680
    functionLinenumberEnd: 5725
    functionName: _ssl__SSLContext_set_psk_server_callback_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_use_psk_identity_hint
    - PyCallable_Check
    - PyErr_SetString
    - get_state_ctx
    - SSL_CTX_set_psk_server_callback
    - _setSSLError
    - Py_XDECREF
    - 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:5817,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl.c:5817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5819,1
    - Dst: BIO_set_retry_read
      Src: /src/cpython/Modules/_ssl.c:5825,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/cpython/Modules/_ssl.c:5826,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl.c:5828,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ssl.c:5829,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:5831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 5827
        line_start: 5827
        source_file: /src/cpython/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 5838
      start: 5810
    functionDepth: 1
    functionLinenumber: 5810
    functionLinenumberEnd: 5838
    functionName: _ssl_MemoryBIO_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - BIO_new
    - BIO_free
    - BIO_set_mem_eof_return
    - assert
    - BIO_s_mem
    - PyTypeObject*::tp_alloc
    - BIO_set_retry_read
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_impl(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSLMemoryBIO_CAST
      Src: /src/cpython/Modules/_ssl.c:5843,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:5844,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl.c:5845,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ssl.c:5846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:5847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5848
      start: 5840
    functionDepth: 1
    functionLinenumber: 5840
    functionLinenumberEnd: 5848
    functionName: memory_bio_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - PySSLMemoryBIO_CAST
    - PyTypeObject*::tp_free
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void memory_bio_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl_pending
      Src: /src/cpython/Modules/_ssl.c:5862,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_ssl.c:5863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5864
      start: 5858
    functionDepth: 1
    functionLinenumber: 5858
    functionLinenumberEnd: 5864
    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:5878,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_ssl.c:5879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5880
      start: 5874
    functionDepth: 1
    functionLinenumber: 5874
    functionLinenumberEnd: 5880
    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:5902,1
    - Dst: BIO_ctrl_pending
      Src: /src/cpython/Modules/_ssl.c:5902,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ssl.c:5907,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_ssl.c:5910,1
    - Dst: BIO_read
      Src: /src/cpython/Modules/_ssl.c:5915,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_ssl.c:5915,1
    - Dst: get_state_mbio
      Src: /src/cpython/Modules/_ssl.c:5917,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_ssl.c:5918,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5919,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_ssl.c:5923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - PySSLMemoryBIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5924
      start: 5896
    functionDepth: 3
    functionLinenumber: 5896
    functionLinenumberEnd: 5924
    functionName: _ssl_MemoryBIO_read_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - get_state_mbio
    - PyBytesWriter_GetData
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - Py_MIN
    - BIO_ctrl_pending
    - _setSSLError
    - PyBytesWriter_FinishWithSize
    - BIO_read
    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:5944,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_ssl.c:5950,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:5950,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:5953,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:5953,1
    - Dst: BIO_write
      Src: /src/cpython/Modules/_ssl.c:5958,1
    - Dst: get_state_mbio
      Src: /src/cpython/Modules/_ssl.c:5960,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl.c:5961,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:5965,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - PySSLMemoryBIO*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5966
      start: 5937
    functionDepth: 3
    functionLinenumber: 5937
    functionLinenumberEnd: 5966
    functionName: _ssl_MemoryBIO_write_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - get_state_mbio
    - PyLong_FromLong
    - PyErr_SetString
    - BIO_write
    - _setSSLError
    - PyErr_Format
    - PyType_GetModule
    - get_ssl_state
    - Py_TYPE
    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:5984,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/cpython/Modules/_ssl.c:5985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5988
      start: 5977
    functionDepth: 0
    functionLinenumber: 5977
    functionLinenumberEnd: 5988
    functionName: _ssl_MemoryBIO_write_eof_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_mem_eof_return
    - BIO_clear_retry_flags
    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:6025,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:6026,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ssl.c:6028,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6029,1
    - Dst: SSL_SESSION_free
      Src: /src/cpython/Modules/_ssl.c:6031,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_ssl.c:6033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6035
      start: 6022
    functionDepth: 1
    functionLinenumber: 6022
    functionLinenumberEnd: 6035
    functionName: PySSLSession_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - SSL_SESSION_free
    - 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:6041,1
    - Dst: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:6046,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl.c:6048,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl.c:6048,1
    - Dst: SSL_SESSION_get_id
      Src: /src/cpython/Modules/_ssl.c:6057,1
    - Dst: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:6057,1
    - Dst: SSL_SESSION_get_id
      Src: /src/cpython/Modules/_ssl.c:6059,1
    - Dst: PySSLSession_CAST
      Src: /src/cpython/Modules/_ssl.c:6059,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_ssl.c:6062,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Modules/_ssl.c:6090,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - left
    - right
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6093
      start: 6037
    functionDepth: 1
    functionLinenumber: 6037
    functionLinenumberEnd: 6093
    functionName: PySSLSession_richcompare
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - memcmp
    - SSL_SESSION_get_id
    - PyErr_BadInternalCall
    - 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:6098,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:6099,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:6100,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl.c:6100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6102
      start: 6095
    functionDepth: 1
    functionLinenumber: 6095
    functionLinenumberEnd: 6102
    functionName: PySSLSession_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PySSLSession_CAST
    - Py_TYPE
    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:6107,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6110
      start: 6104
    functionDepth: 1
    functionLinenumber: 6104
    functionLinenumberEnd: 6110
    functionName: PySSLSession_clear
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PySSLSession_CAST
    linkageType: ''
    returnType: int
    signature: int PySSLSession_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromTime_t
      Src: /src/cpython/Modules/_ssl.c:6126,1
    - Dst: SSL_SESSION_get_time_ex
      Src: /src/cpython/Modules/_ssl.c:6126,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:6128,1
    - Dst: SSL_SESSION_get_time
      Src: /src/cpython/Modules/_ssl.c:6128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6130
      start: 6121
    functionDepth: 1
    functionLinenumber: 6121
    functionLinenumberEnd: 6130
    functionName: _ssl_SSLSession_time_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_time
    - PyLong_FromLong
    - SSL_SESSION_get_time_ex
    - _PyLong_FromTime_t
    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:6144,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:6145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6140
    functionDepth: 0
    functionLinenumber: 6140
    functionLinenumberEnd: 6147
    functionName: _ssl_SSLSession_timeout_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SSL_SESSION_get_timeout
    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:6161,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_ssl.c:6162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6163
      start: 6157
    functionDepth: 0
    functionLinenumber: 6157
    functionLinenumberEnd: 6163
    functionName: _ssl_SSLSession_ticket_lifetime_hint_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_ticket_lifetime_hint
    - PyLong_FromUnsignedLong
    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:6180,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:6181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6182
      start: 6173
    functionDepth: 1
    functionLinenumber: 6173
    functionLinenumberEnd: 6182
    functionName: _ssl_SSLSession_id_get_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - SSL_SESSION_get_id
    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:6196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6198
      start: 6192
    functionDepth: 0
    functionLinenumber: 6192
    functionLinenumberEnd: 6198
    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:6252,1
    - Dst: RAND_add
      Src: /src/cpython/Modules/_ssl.c:6253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - module
    - view
    - entropy
    argTypes:
    - PyObject*
    - Py_buffer*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6258
      start: 6242
    functionDepth: 1
    functionLinenumber: 6242
    functionLinenumberEnd: 6258
    functionName: _ssl_RAND_add_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - RAND_add
    - Py_MIN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_add_impl(PyObject *module, Py_buffer *view, double entropy)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:6270,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:6274,1
    - Dst: RAND_bytes
      Src: /src/cpython/Modules/_ssl.c:6278,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:6278,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:6280,1
    - Dst: RAND_bytes
      Src: /src/cpython/Modules/_ssl.c:6283,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ssl.c:6283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6287,1
    - Dst: ERR_get_error
      Src: /src/cpython/Modules/_ssl.c:6289,1
    - Dst: ERR_reason_error_string
      Src: /src/cpython/Modules/_ssl.c:6290,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:6291,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_ssl.c:6293,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:6293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - module
    - len
    - pseudo
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6297
      start: 6260
    functionDepth: 1
    functionLinenumber: 6260
    functionLinenumberEnd: 6297
    functionName: PySSL_RAND
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    - PyErr_SetObject
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - RAND_bytes
    - Py_BuildValue
    - PyBytes_AS_STRING
    - Py_DECREF
    - ERR_get_error
    - get_ssl_state
    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:6312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6313
      start: 6308
    functionDepth: 2
    functionLinenumber: 6308
    functionLinenumberEnd: 6313
    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:6331,1
    - Dst: RAND_status
      Src: /src/cpython/Modules/_ssl.c:6331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6332
      start: 6327
    functionDepth: 1
    functionLinenumber: 6327
    functionLinenumberEnd: 6332
    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:6362,1
    - Dst: X509_get_default_cert_file_env
      Src: /src/cpython/Modules/_ssl.c:6362,1
    - Dst: CONVERT
      Src: /src/cpython/Modules/_ssl.c:6363,1
    - Dst: X509_get_default_cert_file
      Src: /src/cpython/Modules/_ssl.c:6363,1
    - Dst: CONVERT
      Src: /src/cpython/Modules/_ssl.c:6364,1
    - Dst: X509_get_default_cert_dir_env
      Src: /src/cpython/Modules/_ssl.c:6364,1
    - Dst: CONVERT
      Src: /src/cpython/Modules/_ssl.c:6365,1
    - Dst: X509_get_default_cert_dir
      Src: /src/cpython/Modules/_ssl.c:6365,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:6368,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6371,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6372,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6373,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6376
      start: 6344
    functionDepth: 1
    functionLinenumber: 6344
    functionLinenumberEnd: 6376
    functionName: _ssl_get_default_verify_paths_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_get_default_cert_file
    - X509_get_default_cert_dir
    - CONVERT
    - Py_BuildValue
    - Py_XDECREF
    - X509_get_default_cert_file_env
    - X509_get_default_cert_dir_env
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_get_default_verify_paths_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - info
    - ','
    - target
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6361
      start: 6353
    functionDepth: 0
    functionLinenumber: 6353
    functionLinenumberEnd: 6361
    functionName: CONVERT
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT(info, target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get1_builtin_sigalgs
      Src: /src/cpython/Modules/_ssl.c:6390,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:6391,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_ssl.c:6395,1
    - Dst: OPENSSL_free
      Src: /src/cpython/Modules/_ssl.c:6396,1
    - Dst: OPENSSL_free
      Src: /src/cpython/Modules/_ssl.c:6400,1
    - Dst: PyUnicode_Split
      Src: /src/cpython/Modules/_ssl.c:6401,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_ssl.c:6401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl.c:6405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6409
      start: 6382
    functionDepth: 1
    functionLinenumber: 6382
    functionLinenumberEnd: 6409
    functionName: _ssl_get_sigalgs_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    - SSL_get1_builtin_sigalgs
    - OPENSSL_free
    - _Py_LATIN1_CHR
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    - PyUnicode_Split
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_get_sigalgs_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/cpython/Modules/_ssl.c:6417,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:6419,1
    - Dst: OBJ_nid2sn
      Src: /src/cpython/Modules/_ssl.c:6422,1
    - Dst: OBJ_nid2ln
      Src: /src/cpython/Modules/_ssl.c:6423,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:6424,1
    - Dst: _asn1obj2py
      Src: /src/cpython/Modules/_ssl.c:6424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - state
    - obj
    argTypes:
    - _sslmodulestate*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6425
      start: 6411
    functionDepth: 4
    functionLinenumber: 6411
    functionLinenumberEnd: 6425
    functionName: asn1obj2py
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 2
    functionsReached:
    - OBJ_nid2sn
    - _asn1obj2py
    - OBJ_obj2nid
    - Py_BuildValue
    - OBJ_nid2ln
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      asn1obj2py(_sslmodulestate *state, ASN1_OBJECT *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/cpython/Modules/_ssl.c:6446,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:6448,1
    - Dst: asn1obj2py
      Src: /src/cpython/Modules/_ssl.c:6451,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:6451,1
    - Dst: ASN1_OBJECT_free
      Src: /src/cpython/Modules/_ssl.c:6452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - module
    - txt
    - name
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6454
      start: 6439
    functionDepth: 5
    functionLinenumber: 6439
    functionLinenumberEnd: 6454
    functionName: _ssl_txt2obj_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - OBJ_txt2obj
    - asn1obj2py
    - PyErr_Format
    - ASN1_OBJECT_free
    - get_ssl_state
    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:6473,1
    - Dst: OBJ_nid2obj
      Src: /src/cpython/Modules/_ssl.c:6476,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ssl.c:6478,1
    - Dst: asn1obj2py
      Src: /src/cpython/Modules/_ssl.c:6481,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:6481,1
    - Dst: ASN1_OBJECT_free
      Src: /src/cpython/Modules/_ssl.c:6482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - nid
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6484
      start: 6465
    functionDepth: 5
    functionLinenumber: 6465
    functionLinenumberEnd: 6484
    functionName: _ssl_nid2obj_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - asn1obj2py
    - PyErr_Format
    - ASN1_OBJECT_free
    - OBJ_nid2obj
    - get_ssl_state
    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:6495,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:6500,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:6506,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:6508,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:6510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - encodingType
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6512
      start: 6488
    functionDepth: 1
    functionLinenumber: 6488
    functionLinenumberEnd: 6512
    functionName: certEncodingType
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_NewRef
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      certEncodingType(DWORD encodingType)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CertGetEnhancedKeyUsage
      Src: /src/cpython/Modules/_ssl.c:6521,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6522,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6526,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ssl.c:6529,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:6531,1
    - Dst: CertGetEnhancedKeyUsage
      Src: /src/cpython/Modules/_ssl.c:6535,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:6536,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6537,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6541,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_ssl.c:6543,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:6551,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6553,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_ssl.c:6556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6557,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6559,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ssl.c:6565,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - pCertCtx
    - flags
    argTypes:
    - PCCERT_CONTEXT
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6567
      start: 6514
    functionDepth: 1
    functionLinenumber: 6514
    functionLinenumberEnd: 6567
    functionName: parseKeyUsage
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyUnicode_FromString
    - PyErr_NoMemory
    - PySet_Add
    - GetLastError
    - Py_CLEAR
    - PyMem_Free
    - PyMem_Malloc
    - Py_DECREF
    - PyFrozenSet_New
    - CertGetEnhancedKeyUsage
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parseKeyUsage(PCCERT_CONTEXT pCertCtx, DWORD flags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CertOpenStore
      Src: /src/cpython/Modules/_ssl.c:6590,1
    - Dst: CertOpenStore
      Src: /src/cpython/Modules/_ssl.c:6597,1
    - Dst: CertAddStoreToCollection
      Src: /src/cpython/Modules/_ssl.c:6602,1
    - Dst: CertCloseStore
      Src: /src/cpython/Modules/_ssl.c:6607,1
    - Dst: CertCloseStore
      Src: /src/cpython/Modules/_ssl.c:6611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - store_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6616
      start: 6569
    functionDepth: 0
    functionLinenumber: 6569
    functionLinenumberEnd: 6616
    functionName: ssl_collect_certificates
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - CertCloseStore
    - CertOpenStore
    - CertAddStoreToCollection
    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:6641,1
    - Dst: ssl_collect_certificates
      Src: /src/cpython/Modules/_ssl.c:6645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6647,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6648,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6648,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/cpython/Modules/_ssl.c:6651,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:6652,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6655,1
    - Dst: certEncodingType
      Src: /src/cpython/Modules/_ssl.c:6658,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6659,1
    - Dst: parseKeyUsage
      Src: /src/cpython/Modules/_ssl.c:6662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6664,1
    - Dst: parseKeyUsage
      Src: /src/cpython/Modules/_ssl.c:6665,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6668,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:6671,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6672,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6675,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6677,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6679,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_ssl.c:6681,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6682,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6683,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6686,1
    - Dst: CertFreeCertificateContext
      Src: /src/cpython/Modules/_ssl.c:6690,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6694,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6695,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6696,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6697,1
    - Dst: CertCloseStore
      Src: /src/cpython/Modules/_ssl.c:6702,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6704,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6705,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6705,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_ssl.c:6712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6713,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - module
    - store_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6716
      start: 6632
    functionDepth: 2
    functionLinenumber: 6632
    functionLinenumberEnd: 6716
    functionName: _ssl_enum_certificates_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PySet_Add
    - PySequence_List
    - PyBytes_FromStringAndSize
    - certEncodingType
    - CertCloseStore
    - CertEnumCertificatesInStore
    - parseKeyUsage
    - CertFreeCertificateContext
    - PySet_New
    - Py_CLEAR
    - PyTuple_SET_ITEM
    - Py_XDECREF
    - GetLastError
    - Py_DECREF
    - ssl_collect_certificates
    - PyTuple_New
    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:6740,1
    - Dst: ssl_collect_certificates
      Src: /src/cpython/Modules/_ssl.c:6744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6746,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6747,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6747,1
    - Dst: CertEnumCRLsInStore
      Src: /src/cpython/Modules/_ssl.c:6750,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ssl.c:6751,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6754,1
    - Dst: certEncodingType
      Src: /src/cpython/Modules/_ssl.c:6757,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6758,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ssl.c:6761,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6762,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6765,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ssl.c:6767,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_ssl.c:6770,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6771,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6772,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6775,1
    - Dst: CertFreeCRLContext
      Src: /src/cpython/Modules/_ssl.c:6779,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6783,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6784,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6785,1
    - Dst: CertCloseStore
      Src: /src/cpython/Modules/_ssl.c:6790,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6792,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ssl.c:6793,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ssl.c:6793,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_ssl.c:6799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:6800,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - module
    - store_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6803
      start: 6731
    functionDepth: 2
    functionLinenumber: 6731
    functionLinenumberEnd: 6803
    functionName: _ssl_enum_crls_impl
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PySet_Add
    - CertFreeCRLContext
    - CertEnumCRLsInStore
    - PyBytes_FromStringAndSize
    - certEncodingType
    - CertCloseStore
    - PySequence_List
    - PySet_New
    - Py_CLEAR
    - PyTuple_SET_ITEM
    - Py_XDECREF
    - GetLastError
    - Py_DECREF
    - ssl_collect_certificates
    - PyTuple_New
    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:6830,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_ssl.c:6840,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_ssl.c:6845,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_ssl.c:6850,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6854,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:6860,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6862,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6869,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6876,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6883,1
    - Dst: add_exception
      Src: /src/cpython/Modules/_ssl.c:6890,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl.c:6900,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6902
      start: 6827
    functionDepth: 1
    functionLinenumber: 6827
    functionLinenumberEnd: 6902
    functionName: sslmodule_init_exceptions
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyType_FromSpecWithBases
    - _PyTuple_FromPair
    - Py_CLEAR
    - add_exception
    - Py_XDECREF
    - PyModule_AddObjectRef
    - get_ssl_state
    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: 6839
      start: 6833
    functionDepth: 0
    functionLinenumber: 6833
    functionLinenumberEnd: 6839
    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:6907,1
    - Dst: PySocketModule_ImportModuleAndAPI
      Src: /src/cpython/Modules/_ssl.c:6908,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl.c:6913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6915
      start: 6904
    functionDepth: 1
    functionLinenumber: 6904
    functionLinenumberEnd: 6915
    functionName: sslmodule_init_socketapi
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PySocketModule_ImportModuleAndAPI
    - Py_NewRef
    - 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:6921,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:6922,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_ssl.c:6922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6923
      start: 6918
    functionDepth: 1
    functionLinenumber: 6918
    functionLinenumberEnd: 6923
    functionName: sslmodule_add_option
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    - PyLong_FromUnsignedLongLong
    - PyModule_Add
    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:6929,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6941,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6942,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6943,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6944,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6945,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6946,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6947,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6949,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6950,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6953,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6954,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6955,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6957,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6958,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6959,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6961,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6962,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6963,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:6966,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6977,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6978,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6979,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6980,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6981,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6982,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6983,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6984,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6985,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6986,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6987,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6988,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6989,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6990,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6991,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6992,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6993,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6994,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6995,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6996,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:6997,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:7000,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:7003,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:7006,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:7009,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:7012,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/cpython/Modules/_ssl.c:7015,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7022,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7024,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7025,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7026,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7027,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7029,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7032,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7035,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7041,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7042,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7043,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7044,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7045,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7046,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7048,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7050,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7052,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7054,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7055,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7056,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7059,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7062,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7066,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7070,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7074,1
    - Dst: ADD_OPTION
      Src: /src/cpython/Modules/_ssl.c:7078,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7084,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7088,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7092,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7096,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7100,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7104,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7109,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7110,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7113,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7114,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7115,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7116,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7117,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7118,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/_ssl.c:7119,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7129,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7130,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7131,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7132,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7133,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7135,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7138,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7140,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7144,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7146,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7150,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7152,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7156,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7158,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7162,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7164,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7168,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7170,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7174,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7176,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7180,1
    - Dst: addbool
      Src: /src/cpython/Modules/_ssl.c:7182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 114
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7189
      start: 6926
    functionDepth: 1
    functionLinenumber: 6926
    functionLinenumberEnd: 7189
    functionName: sslmodule_init_constants
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ADD_AD_CONSTANT
    - addbool
    - PyModule_AddStringConstant
    - ADD_OPTION
    - ADD_INT_CONST
    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: 6940
      start: 6935
    functionDepth: 0
    functionLinenumber: 6935
    functionLinenumberEnd: 6940
    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: 6976
      start: 6973
    functionDepth: 0
    functionLinenumber: 6973
    functionLinenumberEnd: 6976
    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: 7039
      start: 7038
    functionDepth: 0
    functionLinenumber: 7038
    functionLinenumberEnd: 7039
    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: 7128
      start: 7121
    functionDepth: 0
    functionLinenumber: 7121
    functionLinenumberEnd: 7128
    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:7194,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ssl.c:7200,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ssl.c:7203,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:7209,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:7213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7215,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ssl.c:7218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7220,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ssl.c:7230,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:7231,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ssl.c:7234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl.c:7237,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7242
      start: 7191
    functionDepth: 1
    functionLinenumber: 7191
    functionLinenumberEnd: 7242
    functionName: sslmodule_init_errorcodes
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyLong_FromLong
    - Py_BuildValue
    - PyDict_SetItem
    - Py_DECREF
    - get_ssl_state
    - PyDict_New
    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: 7259
      start: 7244
    functionDepth: 0
    functionLinenumber: 7244
    functionLinenumberEnd: 7259
    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:7272,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_ssl.c:7273,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:7274,1
    - Dst: parse_openssl_version
      Src: /src/cpython/Modules/_ssl.c:7277,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:7278,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:7279,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ssl.c:7282,1
    - Dst: OpenSSL_version
      Src: /src/cpython/Modules/_ssl.c:7282,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:7283,1
    - Dst: parse_openssl_version
      Src: /src/cpython/Modules/_ssl.c:7287,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ssl.c:7288,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_ssl.c:7289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7293
      start: 7261
    functionDepth: 1
    functionLinenumber: 7261
    functionLinenumberEnd: 7293
    functionName: sslmodule_init_versioninfo
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_BuildValue
    - OpenSSL_version_num
    - OpenSSL_version
    - PyModule_Add
    - parse_openssl_version
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_versioninfo(PyObject *m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7298,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7300,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7306,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7312,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7318,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_ssl.c:7324,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7330,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7332,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7334,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7336,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_ssl.c:7338,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7341
      start: 7295
    functionDepth: 1
    functionLinenumber: 7295
    functionLinenumberEnd: 7341
    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:7346,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:7347,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:7351,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:7355,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ssl.c:7359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7364
      start: 7343
    functionDepth: 1
    functionLinenumber: 7343
    functionLinenumberEnd: 7364
    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:7369,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_ssl.c:7370,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ssl.c:7372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7376
      start: 7366
    functionDepth: 1
    functionLinenumber: 7366
    functionLinenumberEnd: 7376
    functionName: sslmodule_init_lock
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyThread_allocate_lock
    - PyErr_NoMemory
    - get_ssl_state
    linkageType: ''
    returnType: int
    signature: int sslmodule_init_lock(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7396,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7398,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7399,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7400,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7401,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7402,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7403,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7404,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7405,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7406,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7407,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7408,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7409,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7410,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7411,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ssl.c:7412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7415
      start: 7393
    functionDepth: 1
    functionLinenumber: 7393
    functionLinenumberEnd: 7415
    functionName: sslmodule_traverse
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - get_ssl_state
    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:7420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7422,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7423,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7424,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7425,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7426,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7427,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7428,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7429,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7430,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7431,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7432,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7433,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7434,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7435,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7436,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7437,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7438,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7439,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl.c:7440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7442
      start: 7417
    functionDepth: 1
    functionLinenumber: 7417
    functionLinenumberEnd: 7442
    functionName: sslmodule_clear
    functionSourceFile: /src/cpython/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_ssl_state
    linkageType: ''
    returnType: int
    signature: int sslmodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslmodule_clear
      Src: /src/cpython/Modules/_ssl.c:7447,1
    - Dst: get_ssl_state
      Src: /src/cpython/Modules/_ssl.c:7448,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_ssl.c:7449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7450
      start: 7444
    functionDepth: 2
    functionLinenumber: 7444
    functionLinenumberEnd: 7450
    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:7467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7468
      start: 7464
    functionDepth: 1
    functionLinenumber: 7464
    functionLinenumberEnd: 7468
    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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    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:58,1
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.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/sha3module.c
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    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: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    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:94,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha3module.c:98,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha3module.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: newSHA3object
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    linkageType: ''
    returnType: SHA3object
    signature: 'SHA3object *

      newSHA3object(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Hash_SHA3_update
      Src: /src/cpython/Modules/sha3module.c:114,1
    - Dst: Hacl_Hash_SHA3_update
      Src: /src/cpython/Modules/sha3module.c:120,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: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    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:141,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/sha3module.c:146,1
    - Dst: newSHA3object
      Src: /src/cpython/Modules/sha3module.c:147,1
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.c:152,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:155,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:158,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:161,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:164,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:167,1
    - Dst: Hacl_Hash_SHA3_malloc
      Src: /src/cpython/Modules/sha3module.c:170,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/sha3module.c:173,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha3module.c:178,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/cpython/Modules/sha3module.c:183,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha3module.c:186,1
    - Dst: sha3_update
      Src: /src/cpython/Modules/sha3module.c:188,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha3module.c:192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha3module.c:198,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha3module.c:201,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: 151
        line_start: 151
        source_file: /src/cpython/Modules/sha3module.c
    constantsTouched: []
    func_position:
      end: 204
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 204
    functionName: py_sha3_new_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROR
    - PyErr_NoMemory
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyBuffer_Release
    - newSHA3object
    - PyErr_BadInternalCall
    - Hacl_Hash_SHA3_malloc
    - sha3_update
    - assert
    - _Py_hashlib_data_argument
    - Py_DECREF
    - _PyType_GetModuleState
    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:212,1
    - Dst: Hacl_Hash_SHA3_free
      Src: /src/cpython/Modules/sha3module.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 218
    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:223,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/sha3module.c:224,1
    - Dst: SHA3_clear
      Src: /src/cpython/Modules/sha3module.c:225,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/sha3module.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha3module.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: SHA3_dealloc
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - SHA3_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SHA3_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: newSHA3object
      Src: /src/cpython/Modules/sha3module.c:246,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha3module.c:249,1
    - Dst: Hacl_Hash_SHA3_copy
      Src: /src/cpython/Modules/sha3module.c:250,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha3module.c:253,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha3module.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - SHA3object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 257
    functionName: _sha3_sha3_224_copy_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - PyErr_NoMemory
    - Hacl_Hash_SHA3_copy
    - newSHA3object
    - HASHLIB_RELEASE_LOCK
    - Py_DECREF
    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:273,1
    - Dst: Hacl_Hash_SHA3_digest
      Src: /src/cpython/Modules/sha3module.c:274,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:275,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha3module.c:276,1
    - Dst: Hacl_Hash_SHA3_hash_len
      Src: /src/cpython/Modules/sha3module.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA3object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: _sha3_sha3_224_digest_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA3_digest
    - PyBytes_FromStringAndSize
    - Hacl_Hash_SHA3_hash_len
    - HASHLIB_RELEASE_LOCK
    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:292,1
    - Dst: Hacl_Hash_SHA3_digest
      Src: /src/cpython/Modules/sha3module.c:293,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:294,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha3module.c:295,1
    - Dst: Hacl_Hash_SHA3_hash_len
      Src: /src/cpython/Modules/sha3module.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA3object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: _sha3_sha3_224_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA3_digest
    - Hacl_Hash_SHA3_hash_len
    - 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:314,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/sha3module.c:315,1
    - Dst: sha3_update
      Src: /src/cpython/Modules/sha3module.c:317,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha3module.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - SHA3object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: _sha3_sha3_224_update_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - sha3_update
    - PyBuffer_Release
    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:336,1
    - Dst: Hacl_Hash_SHA3_block_len
      Src: /src/cpython/Modules/sha3module.c:337,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: SHA3_get_block_size
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHA3object_CAST
    - PyLong_FromLong
    - Hacl_Hash_SHA3_block_len
    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:345,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/sha3module.c:347,1
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.c:348,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:351,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:353,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/sha3module.c:355,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: PyErr_BadInternalCall
      Src: /src/cpython/Modules/sha3module.c:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/cpython/Modules/sha3module.c
    constantsTouched: []
    func_position:
      end: 366
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 366
    functionName: SHA3_get_name
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_BadInternalCall
    - assert
    - _PyType_GetModuleState
    - Py_TYPE
    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:373,1
    - Dst: Hacl_Hash_SHA3_is_shake
      Src: /src/cpython/Modules/sha3module.c:374,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:375,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:377,1
    - Dst: Hacl_Hash_SHA3_hash_len
      Src: /src/cpython/Modules/sha3module.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: SHA3_get_digest_size
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA3_hash_len
    - _SHA3object_CAST
    - PyLong_FromLong
    - Hacl_Hash_SHA3_is_shake
    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:384,1
    - Dst: Hacl_Hash_SHA3_block_len
      Src: /src/cpython/Modules/sha3module.c:385,1
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.c:386,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (rate <= 1600)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/cpython/Modules/sha3module.c
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: SHA3_get_capacity_bits
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHA3object_CAST
    - PyLong_FromLong
    - Hacl_Hash_SHA3_block_len
    - assert
    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:395,1
    - Dst: Hacl_Hash_SHA3_block_len
      Src: /src/cpython/Modules/sha3module.c:396,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha3module.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: SHA3_get_rate_bits
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHA3object_CAST
    - PyLong_FromLong
    - Hacl_Hash_SHA3_block_len
    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:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    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: 428
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 428
    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: 439
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 439
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/sha3module.c:475,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/sha3module.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - length
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/cpython/Modules/sha3module.c
    constantsTouched: []
    func_position:
      end: 486
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 486
    functionName: sha3_shake_check_digest_length
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int sha3_shake_check_digest_length(Py_ssize_t length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sha3_shake_check_digest_length
      Src: /src/cpython/Modules/sha3module.c:501,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/sha3module.c:511,1
    - Dst: CHECK_HACL_UINT32_T_LENGTH
      Src: /src/cpython/Modules/sha3module.c:513,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/sha3module.c:515,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/sha3module.c:519,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha3module.c:521,1
    - Dst: Hacl_Hash_SHA3_squeeze
      Src: /src/cpython/Modules/sha3module.c:522,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:523,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/sha3module.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - SHA3object*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 526
    functionName: _sha3_shake_128_digest_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - sha3_shake_check_digest_length
    - Py_GetConstant
    - HASHLIB_ACQUIRE_LOCK
    - PyBytesWriter_Create
    - HASHLIB_RELEASE_LOCK
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    - Hacl_Hash_SHA3_squeeze
    - CHECK_HACL_UINT32_T_LENGTH
    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:541,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/sha3module.c:547,1
    - Dst: CHECK_HACL_UINT32_T_LENGTH
      Src: /src/cpython/Modules/sha3module.c:549,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/sha3module.c:551,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha3module.c:553,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha3module.c:556,1
    - Dst: Hacl_Hash_SHA3_squeeze
      Src: /src/cpython/Modules/sha3module.c:557,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha3module.c:558,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha3module.c:560,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/sha3module.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - SHA3object*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 563
    functionName: _sha3_shake_128_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - sha3_shake_check_digest_length
    - Py_GetConstant
    - HASHLIB_ACQUIRE_LOCK
    - PyErr_NoMemory
    - HASHLIB_RELEASE_LOCK
    - _Py_strhex
    - PyMem_Free
    - PyMem_Malloc
    - Hacl_Hash_SHA3_squeeze
    - CHECK_HACL_UINT32_T_LENGTH
    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:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 569
    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:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 576
    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:618,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:619,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha3module.c:620,1
    - Dst: Py_VISIT
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 626
    functionName: _sha3_traverse
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - sha3_get_state
    - Py_VISIT
    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:631,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha3module.c:632,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha3module.c:633,1
    - Dst: Py_CLEAR
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 639
    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:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 645
    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:650,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:664,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:665,1
    - Dst: init_sha3type
      Src: /src/cpython/Modules/sha3module.c:666,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: PyModule_AddStringConstant
      Src: /src/cpython/Modules/sha3module.c:672,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/sha3module.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 680
    functionName: _sha3_exec
    functionSourceFile: /src/cpython/Modules/sha3module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - init_sha3type
    - 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: 663
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 663
    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:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 706
    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:125,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_tkinter.c:131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:133,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_tkinter.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:137,1
    - Dst: _Py_stat
      Src: /src/cpython/Modules/_tkinter.c:141,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_tkinter.c:150,1
    - Dst: _Py_stat
      Src: /src/cpython/Modules/_tkinter.c:155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 172
    functionName: _get_tcl_lib_path
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PySys_GetOptionalAttrString
    - _Py_stat
    - Py_DECREF
    - PyUnicode_Concat
    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: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    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: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    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:309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - app
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: check_tcl_appartment
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetCurrentThread
    - PyErr_SetString
    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: 323
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 323
    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:338,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_tkinter.c:340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: Tkinter_Error
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Tkapp_UnicodeResult
    - PyErr_SetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkinter_Error(TkappObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select
      Src: /src/cpython/Modules/_tkinter.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - milli
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 364
    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:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    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:395,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_tkinter.c:396,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_tkinter.c:401,1
    - Dst: memchr
      Src: /src/cpython/Modules/_tkinter.c:404,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:407,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:409,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_tkinter.c:423,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:425,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_tkinter.c:427,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:434,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_tkinter.c:437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:439,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/cpython/Modules/_tkinter.c:445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:446,1
    - Dst: assert
      Src: /src/cpython/Modules/_tkinter.c:462,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Modules/_tkinter.c:462,1
    - Dst: assert
      Src: /src/cpython/Modules/_tkinter.c:472,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Modules/_tkinter.c:472,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Modules/_tkinter.c:473,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_tkinter.c:476,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:477,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: 461
        line_start: 461
        source_file: /src/cpython/Modules/_tkinter.c
    - condition: (Py_UNICODE_IS_HIGH_SURROGATE(high))
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Modules/_tkinter.c
    constantsTouched: []
    func_position:
      end: 479
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 479
    functionName: unicodeFromTclStringAndSize
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyUnicode_KIND
    - assert
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - PyUnicode_DecodeUTF8
    - PyUnicode_FindChar
    - PyErr_Clear
    - PyUnicode_AsUCS4Copy
    - PyErr_ExceptionMatches
    - PyMem_Free
    - PyMem_Malloc
    - memchr
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PyUnicode_FromKindAndData
    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:484,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: unicodeFromTclString
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - strlen
    - unicodeFromTclStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      unicodeFromTclObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_Init
      Src: /src/cpython/Modules/_tkinter.c:532,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/_tkinter.c:533,1
    - Dst: Tcl_GetStringResult
      Src: /src/cpython/Modules/_tkinter.c:533,1
    - Dst: Tcl_GetVar
      Src: /src/cpython/Modules/_tkinter.c:537,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_tkinter.c:540,1
    - Dst: Tk_Init
      Src: /src/cpython/Modules/_tkinter.c:544,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Modules/_tkinter.c:545,1
    - Dst: Tcl_GetStringResult
      Src: /src/cpython/Modules/_tkinter.c:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - Tcl_Interp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 550
    functionName: Tcl_AppInit
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PySys_WriteStderr
    - Tcl_GetVar
    - Tk_Init
    - Tcl_Init
    - Tcl_GetStringResult
    linkageType: ''
    returnType: int
    signature: int Tcl_AppInit(Tcl_Interp *interp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_tkinter.c:571,1
    - Dst: Tcl_CreateInterp
      Src: /src/cpython/Modules/_tkinter.c:575,1
    - Dst: Tcl_GetVar2Ex
      Src: /src/cpython/Modules/_tkinter.c:580,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:583,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:591,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_tkinter.c:597,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:601,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:610,1
    - Dst: Tcl_GetBooleanFromObj
      Src: /src/cpython/Modules/_tkinter.c:611,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:613,1
    - Dst: Tcl_NewByteArrayObj
      Src: /src/cpython/Modules/_tkinter.c:616,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:618,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:620,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:625,1
    - Dst: Tcl_NewIntObj
      Src: /src/cpython/Modules/_tkinter.c:627,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:629,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:631,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:632,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:633,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:634,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:635,1
    - Dst: Tcl_GetObjType
      Src: /src/cpython/Modules/_tkinter.c:636,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:639,1
    - Dst: Tcl_SetVar2
      Src: /src/cpython/Modules/_tkinter.c:642,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:646,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:648,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:651,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:651,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:654,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_tkinter.c:658,1
    - Dst: Py_ISUPPER
      Src: /src/cpython/Modules/_tkinter.c:659,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Modules/_tkinter.c:660,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:661,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:662,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:665,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:677,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:679,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:682,1
    - Dst: strcat
      Src: /src/cpython/Modules/_tkinter.c:688,1
    - Dst: strcat
      Src: /src/cpython/Modules/_tkinter.c:691,1
    - Dst: strcat
      Src: /src/cpython/Modules/_tkinter.c:692,1
    - Dst: strcat
      Src: /src/cpython/Modules/_tkinter.c:693,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:696,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:697,1
    - Dst: GetEnvironmentVariableW
      Src: /src/cpython/Modules/_tkinter.c:706,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_tkinter.c:707,1
    - Dst: _get_tcl_lib_path
      Src: /src/cpython/Modules/_tkinter.c:708,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:709,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_tkinter.c:713,1
    - Dst: Tcl_SetVar
      Src: /src/cpython/Modules/_tkinter.c:717,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:721,1
    - Dst: Tcl_AppInit
      Src: /src/cpython/Modules/_tkinter.c:727,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:729,1
    - Dst: EnableEventHook
      Src: /src/cpython/Modules/_tkinter.c:733,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 106
    argCount: 7
    argNames:
    - screenName
    - className
    - interactive
    - wantobjects
    - wantTk
    - sync
    - use
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 736
    functionName: Tkapp_New
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - strcat
    - Tcl_NewByteArrayObj
    - Tcl_SetVar
    - Tcl_NewStringObj
    - Tcl_SetVar2
    - PyErr_Occurred
    - GetLastError
    - EnableEventHook
    - PyThread_free_lock
    - PyObject_New
    - PyErr_NoMemory
    - Tcl_GetObjType
    - Tcl_GetVar2Ex
    - strlen
    - PyMem_Malloc
    - PyMem_Free
    - GetEnvironmentVariableW
    - PyBytes_AS_STRING
    - strcpy
    - PyErr_SetString
    - Tcl_DecrRefCount
    - Py_ISUPPER
    - Tcl_GetCurrentThread
    - Py_DECREF
    - Py_TOLOWER
    - Tcl_AppInit
    - Tkinter_Error
    - Tcl_GetBooleanFromObj
    - Tcl_NewIntObj
    - PyUnicode_AsUTF8String
    - _get_tcl_lib_path
    - Tcl_DeleteCommand
    - Tcl_CreateInterp
    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:744,1
    - Dst: Tcl_ThreadQueueEvent
      Src: /src/cpython/Modules/_tkinter.c:745,1
    - Dst: Tcl_ThreadAlert
      Src: /src/cpython/Modules/_tkinter.c:746,1
    - Dst: Tcl_ConditionWait
      Src: /src/cpython/Modules/_tkinter.c:747,1
    - Dst: Tcl_MutexUnlock
      Src: /src/cpython/Modules/_tkinter.c:748,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: 750
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 750
    functionName: Tkapp_ThreadSend
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ThreadAlert
    - Tcl_MutexLock
    - Tcl_ThreadQueueEvent
    - Tcl_ConditionWait
    - Tcl_MutexUnlock
    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: 764
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 764
    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: 767
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 767
    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:772,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 779
    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:784,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:785,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:786,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:787,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_tkinter.c:788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 790
    functionName: PyTclObject_dealloc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_DecrRefCount
    - Py_XDECREF
    - PyTclObject_CAST
    - Py_DECREF
    - PyObject_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyTclObject_dealloc(PyObject *_self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:799,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:801,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 796
    functionDepth: 3
    functionLinenumber: 796
    functionLinenumberEnd: 806
    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:811,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:813,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 808
    functionDepth: 3
    functionLinenumber: 808
    functionLinenumberEnd: 817
    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:822,1
    - Dst: PyTclObject_str
      Src: /src/cpython/Modules/_tkinter.c:823,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 819
    functionDepth: 4
    functionLinenumber: 819
    functionLinenumberEnd: 830
    functionName: PyTclObject_repr
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTclObject_str
    - PyUnicode_FromFormat
    - PyTclObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_repr(PyObject *_self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_tkinter.c:839,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:844,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:844,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_tkinter.c:855,1
    - Dst: Tcl_GetString
      Src: /src/cpython/Modules/_tkinter.c:855,1
    - Dst: Tcl_GetString
      Src: /src/cpython/Modules/_tkinter.c:856,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Modules/_tkinter.c:858,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 859
    functionName: PyTclObject_richcompare
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - PyTclObject_Check
    - strcmp
    - PyErr_BadInternalCall
    - Tcl_GetString
    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:866,1
    - Dst: unicodeFromTclString
      Src: /src/cpython/Modules/_tkinter.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 868
    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: 906
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 906
    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:919,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_tkinter.c:919,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/_tkinter.c:920,1
    - Dst: _PyLong_Format
      Src: /src/cpython/Modules/_tkinter.c:921,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_tkinter.c:924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:926,1
    - Dst: mp_init
      Src: /src/cpython/Modules/_tkinter.c:930,1
    - Dst: mp_read_radix
      Src: /src/cpython/Modules/_tkinter.c:931,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:934,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:938,1
    - Dst: Tcl_NewBignumObj
      Src: /src/cpython/Modules/_tkinter.c:940,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:941,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:943,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(value))
      pos:
        line_end: 918
        line_start: 918
        source_file: /src/cpython/Modules/_tkinter.c
    constantsTouched: []
    func_position:
      end: 947
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 947
    functionName: asBignumObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - _PyLong_Format
    - PyErr_NoMemory
    - Tcl_NewBignumObj
    - mp_clear
    - mp_read_radix
    - _PyLong_IsNegative
    - PyUnicode_AsUTF8
    - PyLong_Check
    - mp_init
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj *

      asBignumObj(PyObject *value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:955,1
    - Dst: Tcl_NewListObj
      Src: /src/cpython/Modules/_tkinter.c:957,1
    - Dst: CHECK_SIZE
      Src: /src/cpython/Modules/_tkinter.c:959,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:960,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:964,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:966,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:970,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:970,1
    - Dst: Tcl_NewListObj
      Src: /src/cpython/Modules/_tkinter.c:976,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:979,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - value
    - wrapped
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 981
    functionName: TupleAsObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_SIZE
    - PyTuple_GET_ITEM
    - PyErr_NoMemory
    - PyErr_SetString
    - Tcl_NewListObj
    - AsObj
    - PyMem_Free
    - PyMem_Malloc
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj *

      TupleAsObj(PyObject *value, int wrapped)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_tkinter.c:988,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:989,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:990,1
    - Dst: Tcl_NewByteArrayObj
      Src: /src/cpython/Modules/_tkinter.c:993,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:993,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:994,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/_tkinter.c:997,1
    - Dst: Tcl_NewBooleanObj
      Src: /src/cpython/Modules/_tkinter.c:998,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_tkinter.c:998,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_tkinter.c:1000,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_tkinter.c:1004,1
    - Dst: Tcl_NewLongObj
      Src: /src/cpython/Modules/_tkinter.c:1006,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_tkinter.c:1010,1
    - Dst: Tcl_NewWideIntObj
      Src: /src/cpython/Modules/_tkinter.c:1016,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_tkinter.c:1018,1
    - Dst: asBignumObj
      Src: /src/cpython/Modules/_tkinter.c:1021,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_tkinter.c:1026,1
    - Dst: Tcl_NewDoubleObj
      Src: /src/cpython/Modules/_tkinter.c:1027,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_tkinter.c:1027,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:1029,1
    - Dst: TupleAsObj
      Src: /src/cpython/Modules/_tkinter.c:1030,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:1033,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_tkinter.c:1034,1
    - Dst: TupleAsObj
      Src: /src/cpython/Modules/_tkinter.c:1038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1039,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_tkinter.c:1043,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1044,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:1046,1
    - Dst: CHECK_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1048,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1049,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_tkinter.c:1052,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:1053,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_tkinter.c:1053,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1053,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:1055,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_tkinter.c:1055,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_tkinter.c:1062,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_tkinter.c:1065,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_tkinter.c:1068,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1074,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1075,1
    - Dst: Tcl_NewUnicodeObj
      Src: /src/cpython/Modules/_tkinter.c:1078,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:1078,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_tkinter.c:1081,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1085,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:1086,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:1086,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_tkinter.c:1095,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_tkinter.c:1096,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1106,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:1109,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:1109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1111,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:1115,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_tkinter.c:1120,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1124,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1127
    functionName: AsObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 2
    functionsReached:
    - PyLong_AsLongAndOverflow
    - _PyUnicode_AsUTF8String
    - PyUnicode_IS_ASCII
    - PyFloat_AS_DOUBLE
    - PyBytes_Check
    - Tcl_NewByteArrayObj
    - Tcl_NewStringObj
    - PyList_AsTuple
    - PyTuple_Check
    - Tcl_NewDoubleObj
    - TupleAsObj
    - Tcl_NewLongObj
    - CHECK_SIZE
    - PyTclObject_Check
    - PyUnicode_DATA
    - Tcl_NewBooleanObj
    - _PyUnicode_EncodeUTF16
    - PyObject_IsTrue
    - PyUnicode_Check
    - Py_UNREACHABLE
    - AsObj
    - strlen
    - PyBytes_AS_STRING
    - Tcl_NewWideIntObj
    - PyErr_SetString
    - PyFloat_Check
    - asBignumObj
    - PyLong_CheckExact
    - PyErr_Clear
    - PyList_Check
    - _PyUnicode_EncodeUTF32
    - Py_DECREF
    - _PyLong_AsByteArray
    - PyBytes_GET_SIZE
    - PyBool_Check
    - PyObject_Str
    - Py_SETREF
    - PyUnicode_GET_LENGTH
    - Tcl_NewUnicodeObj
    - PyObject_CallMethod
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj *

      AsObj(PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetBooleanFromObj
      Src: /src/cpython/Modules/_tkinter.c:1133,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1133,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1134,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_tkinter.c:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1136
    functionName: fromBoolean
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetBooleanFromObj
    - Tkapp_Interp
    - PyBool_FromLong
    - 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:1142,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1142,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_tkinter.c:1144,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/_tkinter.c:1145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1151
    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:1166,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1166,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1167,1
    - Dst: mp_unsigned_bin_size
      Src: /src/cpython/Modules/_tkinter.c:1169,1
    - Dst: mp_ubin_size
      Src: /src/cpython/Modules/_tkinter.c:1171,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:1173,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:1175,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1176,1
    - Dst: mp_to_unsigned_bin_n
      Src: /src/cpython/Modules/_tkinter.c:1179,1
    - Dst: mp_to_ubin
      Src: /src/cpython/Modules/_tkinter.c:1181,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:1184,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:1185,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1186,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/_tkinter.c:1188,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:1191,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Modules/_tkinter.c:1193,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_tkinter.c:1194,1
    - Dst: mp_clear
      Src: /src/cpython/Modules/_tkinter.c:1196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1198
    functionName: fromBignumObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetBignumFromObj
    - Tkinter_Error
    - PyNumber_Negative
    - mp_unsigned_bin_size
    - PyErr_NoMemory
    - mp_to_unsigned_bin_n
    - mp_clear
    - Py_SETREF
    - mp_ubin_size
    - _PyLong_FromByteArray
    - Tkapp_Interp
    - PyMem_Free
    - PyMem_Malloc
    - mp_to_ubin
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fromBignumObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1204,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:1207,1
    - Dst: fromBoolean
      Src: /src/cpython/Modules/_tkinter.c:1212,1
    - Dst: Tcl_GetByteArrayFromObj
      Src: /src/cpython/Modules/_tkinter.c:1217,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_tkinter.c:1218,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_tkinter.c:1222,1
    - Dst: fromWideIntObj
      Src: /src/cpython/Modules/_tkinter.c:1227,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:1228,1
    - Dst: Tcl_ResetResult
      Src: /src/cpython/Modules/_tkinter.c:1230,1
    - Dst: fromBignumObj
      Src: /src/cpython/Modules/_tkinter.c:1238,1
    - Dst: Tcl_ListObjLength
      Src: /src/cpython/Modules/_tkinter.c:1247,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1249,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:1250,1
    - Dst: Tcl_ListObjIndex
      Src: /src/cpython/Modules/_tkinter.c:1254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1256,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1257,1
    - Dst: FromObj
      Src: /src/cpython/Modules/_tkinter.c:1259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1261,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:1264,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:1273,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_tkinter.c:1277,1
    - Dst: fromBignumObj
      Src: /src/cpython/Modules/_tkinter.c:1280,1
    - Dst: newPyTclObject
      Src: /src/cpython/Modules/_tkinter.c:1283,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1284
    functionName: FromObj
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 6
    functionsReached:
    - strcmp
    - Tcl_ListObjIndex
    - PyBytes_FromStringAndSize
    - PyFloat_FromDouble
    - PyErr_Occurred
    - Tcl_ListObjLength
    - Tkapp_Interp
    - fromBignumObj
    - newPyTclObject
    - Tcl_ResetResult
    - PyTuple_SET_ITEM
    - Py_DECREF
    - fromBoolean
    - PyTuple_New
    - unicodeFromTclObj
    - Tkinter_Error
    - fromWideIntObj
    - FromObj
    - Tcl_GetByteArrayFromObj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FromObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1304,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:1306,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: 1307
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1307
    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:1320,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:1320,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1321,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1325,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1328,1
    - Dst: CHECK_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1331,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1332,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:1333,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_tkinter.c:1337,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1339,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:1346,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1351,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1358,1
    - Dst: Tkapp_CallDeallocArgs
      Src: /src/cpython/Modules/_tkinter.c:1364,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1312
    functionDepth: 3
    functionLinenumber: 1312
    functionLinenumberEnd: 1366
    functionName: Tkapp_CallArgs
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_SIZE
    - PySequence_Fast_GET_SIZE
    - PyErr_NoMemory
    - PyErr_SetString
    - PyList_Check
    - AsObj
    - PyTuple_Check
    - PyMem_Malloc
    - Tkapp_CallDeallocArgs
    - PySequence_Fast_GET_ITEM
    - Tcl_IncrRefCount
    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:1373,1
    - Dst: Tcl_GetObjResult
      Src: /src/cpython/Modules/_tkinter.c:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1370
    functionDepth: 3
    functionLinenumber: 1370
    functionLinenumberEnd: 1374
    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:1383,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1388,1
    - Dst: FromObj
      Src: /src/cpython/Modules/_tkinter.c:1389,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:1390,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:1392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1379
    functionDepth: 4
    functionLinenumber: 1379
    functionLinenumberEnd: 1395
    functionName: Tkapp_ObjectResult
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_DecrRefCount
    - Tcl_GetObjResult
    - FromObj
    - unicodeFromTclObj
    - Tcl_IncrRefCount
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_ObjectResult(TkappObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_tkinter.c:1404,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1413
    functionName: Tkapp_Trace
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallObject
    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: 1420
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1420
    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:1434,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_tkinter.c:1434,1
    - Dst: Tkapp_CallArgs
      Src: /src/cpython/Modules/_tkinter.c:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - evPtr
    - flags
    argTypes:
    - Tcl_Event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1425
    functionDepth: 4
    functionLinenumber: 1425
    functionLinenumberEnd: 1439
    functionName: Tkapp_CallProc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_CallArgs
    - PyTuple_Pack
    - Tkapp_Trace
    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:1489,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1493,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:1494,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:1495,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:1498,1
    - Dst: WaitForMainloop
      Src: /src/cpython/Modules/_tkinter.c:1504,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:1506,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1508,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:1518,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:1522,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_tkinter.c:1525,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:1528,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1532,1
    - Dst: Tkapp_CallArgs
      Src: /src/cpython/Modules/_tkinter.c:1535,1
    - Dst: Tcl_EvalObjv
      Src: /src/cpython/Modules/_tkinter.c:1541,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1546,1
    - Dst: Tkapp_ObjectResult
      Src: /src/cpython/Modules/_tkinter.c:1548,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - selfptr
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1482
    functionDepth: 5
    functionLinenumber: 1482
    functionLinenumberEnd: 1555
    functionName: Tkapp_Call
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ConditionFinalize
    - PyTuple_GET_ITEM
    - attemptckalloc
    - TkappObject_CAST
    - PyErr_NoMemory
    - PyErr_SetObject
    - TRACE
    - WaitForMainloop
    - Tkinter_Error
    - Tcl_GetCurrentThread
    - PyErr_SetRaisedException
    - PyTuple_Check
    - Tkapp_ThreadSend
    - PyTuple_GET_SIZE
    - Tcl_EvalObjv
    - Tkapp_ObjectResult
    - Tkapp_CallArgs
    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:1573,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:1574,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1576,1
    - Dst: Tcl_Eval
      Src: /src/cpython/Modules/_tkinter.c:1579,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1579,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1582,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/cpython/Modules/_tkinter.c:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - script
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1566
    functionDepth: 4
    functionLinenumber: 1566
    functionLinenumberEnd: 1587
    functionName: _tkinter_tkapp_eval_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_UnicodeResult
    - Tkinter_Error
    - Tkapp_Interp
    - CHECK_STRING_LENGTH
    - Tcl_Eval
    - TRACE
    - CHECK_TCL_APPARTMENT
    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:1604,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:1605,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1607,1
    - Dst: Tcl_EvalFile
      Src: /src/cpython/Modules/_tkinter.c:1610,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1610,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1613,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/cpython/Modules/_tkinter.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - fileName
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1597
    functionDepth: 4
    functionLinenumber: 1597
    functionLinenumberEnd: 1618
    functionName: _tkinter_tkapp_evalfile_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_UnicodeResult
    - Tkinter_Error
    - Tkapp_Interp
    - CHECK_STRING_LENGTH
    - Tcl_EvalFile
    - TRACE
    - CHECK_TCL_APPARTMENT
    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:1635,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:1636,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1638,1
    - Dst: Tcl_RecordAndEval
      Src: /src/cpython/Modules/_tkinter.c:1641,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1641,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1644,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/cpython/Modules/_tkinter.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - script
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1628
    functionDepth: 4
    functionLinenumber: 1628
    functionLinenumberEnd: 1649
    functionName: _tkinter_tkapp_record_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_UnicodeResult
    - Tkinter_Error
    - Tkapp_Interp
    - Tcl_RecordAndEval
    - CHECK_STRING_LENGTH
    - TRACE
    - CHECK_TCL_APPARTMENT
    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:1663,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - msg
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1671
    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:1706,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1707,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1708,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:1711,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:1712,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:1712,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1713,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_tkinter.c:1719,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_tkinter.c:1721,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1726,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:1729,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:1730,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:1736,1
    - Dst: Tcl_GetString
      Src: /src/cpython/Modules/_tkinter.c:1737,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_tkinter.c:1740,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:1742,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - in
    - _out
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1744
    functionName: varname_converter
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyTclObject_Check
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - Tcl_GetString
    - strlen
    - PyBytes_AS_STRING
    - PyErr_Format
    - PyBytes_GET_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int varname_converter(PyObject *in, void *_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarEvent*::func
      Src: /src/cpython/Modules/_tkinter.c:1750,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:1752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ev
    argTypes:
    - VarEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1755
    functionName: var_perform
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - VarEvent*::func
    linkageType: ''
    returnType: void
    signature: void var_perform(VarEvent *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_MutexLock
      Src: /src/cpython/Modules/_tkinter.c:1763,1
    - Dst: Tcl_ConditionNotify
      Src: /src/cpython/Modules/_tkinter.c:1764,1
    - Dst: Tcl_MutexUnlock
      Src: /src/cpython/Modules/_tkinter.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - evPtr
    - flags
    argTypes:
    - Tcl_Event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1757
    functionDepth: 0
    functionLinenumber: 1757
    functionLinenumberEnd: 1768
    functionName: var_proc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ConditionNotify
    - Tcl_MutexLock
    - Tcl_MutexUnlock
    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:1774,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:1775,1
    - Dst: WaitForMainloop
      Src: /src/cpython/Modules/_tkinter.c:1784,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:1787,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:1789,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:1800,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:1801,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_tkinter.c:1803,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:1803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:1804,1
    - Dst: func
      Src: /src/cpython/Modules/_tkinter.c:1810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - func
    - selfptr
    - args
    - flags
    argTypes:
    - EventFunc
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1771
    functionDepth: 2
    functionLinenumber: 1771
    functionLinenumberEnd: 1811
    functionName: var_invoke
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ConditionFinalize
    - attemptckalloc
    - TkappObject_CAST
    - PyErr_NoMemory
    - PyErr_SetObject
    - WaitForMainloop
    - Tcl_GetCurrentThread
    - func
    - Tkapp_ThreadSend
    - Py_DECREF
    - Py_TYPE
    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:1821,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_tkinter.c:1823,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1827,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1832,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1836,1
    - Dst: Tcl_SetVar2Ex
      Src: /src/cpython/Modules/_tkinter.c:1840,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1840,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:1846,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_tkinter.c:1851,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1854,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1855,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:1858,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1861,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:1862,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1866,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:1867,1
    - Dst: Tcl_SetVar2Ex
      Src: /src/cpython/Modules/_tkinter.c:1873,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1873,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:1878,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - flags
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1813
    functionDepth: 3
    functionLinenumber: 1813
    functionLinenumberEnd: 1879
    functionName: SetVar
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Tcl_SetVar2Ex
    - TRACE
    - PyUnicode_FromFormat
    - Tkapp_Interp
    - AsObj
    - CHECK_STRING_LENGTH
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - Py_NewRef
    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: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_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:1941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1938
    functionDepth: 3
    functionLinenumber: 1938
    functionLinenumberEnd: 1942
    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:1953,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1957,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:1958,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1963,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:1964,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1967,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1972,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:1973,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:1976,1
    - Dst: Tcl_UnsetVar2
      Src: /src/cpython/Modules/_tkinter.c:1982,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:1982,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:1985,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:1987,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - flags
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1946
    functionDepth: 2
    functionLinenumber: 1946
    functionLinenumberEnd: 1988
    functionName: UnsetVar
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkinter_Error
    - Tcl_UnsetVar2
    - PyUnicode_FromFormat
    - Tkapp_Interp
    - CHECK_STRING_LENGTH
    - PyArg_ParseTuple
    - TRACE
    - Py_NewRef
    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:1996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1993
    functionDepth: 3
    functionLinenumber: 1993
    functionLinenumberEnd: 1997
    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:2002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1999
    functionDepth: 3
    functionLinenumber: 1999
    functionLinenumberEnd: 2004
    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:2026,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2027,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:2030,1
    - Dst: Tcl_IncrRefCount
      Src: /src/cpython/Modules/_tkinter.c:2032,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_tkinter.c:2035,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2037,1
    - Dst: Tcl_NewStringObj
      Src: /src/cpython/Modules/_tkinter.c:2038,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2040,1
    - Dst: fromBignumObj
      Src: /src/cpython/Modules/_tkinter.c:2048,1
    - Dst: Tcl_DecrRefCount
      Src: /src/cpython/Modules/_tkinter.c:2049,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:2050,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2052,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2018
    functionDepth: 3
    functionLinenumber: 2018
    functionLinenumberEnd: 2053
    functionName: _tkinter_tkapp_getint_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyTclObject_Check
    - Tkinter_Error
    - Tcl_DecrRefCount
    - PyArg_Parse
    - Tcl_NewStringObj
    - PyLong_Check
    - CHECK_STRING_LENGTH
    - PyErr_Occurred
    - fromBignumObj
    - Py_NewRef
    - Tcl_IncrRefCount
    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:2070,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2071,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/_tkinter.c:2074,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Modules/_tkinter.c:2075,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:2078,1
    - Dst: Tcl_GetDoubleFromObj
      Src: /src/cpython/Modules/_tkinter.c:2079,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2079,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2082,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_tkinter.c:2083,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_tkinter.c:2086,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2088,1
    - Dst: Tcl_GetDouble
      Src: /src/cpython/Modules/_tkinter.c:2089,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2089,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2090,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_tkinter.c:2091,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2092
    functionName: _tkinter_tkapp_getdouble_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyTclObject_Check
    - Tkinter_Error
    - Tcl_GetDoubleFromObj
    - PyFloat_FromDouble
    - PyNumber_Check
    - PyArg_Parse
    - PyFloat_Check
    - Tcl_GetDouble
    - PyNumber_Float
    - Tkapp_Interp
    - CHECK_STRING_LENGTH
    - Py_NewRef
    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:2109,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2110,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/_tkinter.c:2110,1
    - Dst: PyTclObject_Check
      Src: /src/cpython/Modules/_tkinter.c:2113,1
    - Dst: Tcl_GetBooleanFromObj
      Src: /src/cpython/Modules/_tkinter.c:2114,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2114,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2117,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2118,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_tkinter.c:2121,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2123,1
    - Dst: Tcl_GetBoolean
      Src: /src/cpython/Modules/_tkinter.c:2124,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2124,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2125,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2102
    functionDepth: 2
    functionLinenumber: 2102
    functionLinenumberEnd: 2127
    functionName: _tkinter_tkapp_getboolean_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsZero
    - PyTclObject_Check
    - Tkinter_Error
    - Tcl_GetBooleanFromObj
    - PyArg_Parse
    - PyLong_Check
    - Tkapp_Interp
    - PyBool_FromLong
    - CHECK_STRING_LENGTH
    - Tcl_GetBoolean
    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:2144,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2145,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2147,1
    - Dst: Tcl_ExprString
      Src: /src/cpython/Modules/_tkinter.c:2150,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2150,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2153,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/cpython/Modules/_tkinter.c:2155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2137
    functionDepth: 4
    functionLinenumber: 2137
    functionLinenumberEnd: 2158
    functionName: _tkinter_tkapp_exprstring_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_UnicodeResult
    - Tkinter_Error
    - Tkapp_Interp
    - CHECK_STRING_LENGTH
    - Tcl_ExprString
    - TRACE
    - CHECK_TCL_APPARTMENT
    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:2176,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2177,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2179,1
    - Dst: Tcl_ExprLong
      Src: /src/cpython/Modules/_tkinter.c:2182,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2182,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2185,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2168
    functionDepth: 2
    functionLinenumber: 2168
    functionLinenumberEnd: 2190
    functionName: _tkinter_tkapp_exprlong_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Tkinter_Error
    - Tcl_ExprLong
    - Tkapp_Interp
    - CHECK_STRING_LENGTH
    - TRACE
    - 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:2208,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2209,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2211,1
    - Dst: Tcl_ExprDouble
      Src: /src/cpython/Modules/_tkinter.c:2214,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2214,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2217,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_tkinter.c:2219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2222
    functionName: _tkinter_tkapp_exprdouble_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ExprDouble
    - Tkinter_Error
    - PyFloat_FromDouble
    - Tkapp_Interp
    - CHECK_STRING_LENGTH
    - TRACE
    - CHECK_TCL_APPARTMENT
    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:2240,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2241,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2243,1
    - Dst: Tcl_ExprBoolean
      Src: /src/cpython/Modules/_tkinter.c:2246,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2246,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2249,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_tkinter.c:2251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2232
    functionDepth: 2
    functionLinenumber: 2232
    functionLinenumberEnd: 2254
    functionName: _tkinter_tkapp_exprboolean_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Tkinter_Error
    - Tcl_ExprBoolean
    - Tkapp_Interp
    - CHECK_STRING_LENGTH
    - TRACE
    - CHECK_TCL_APPARTMENT
    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:2275,1
    - Dst: Tcl_ListObjGetElements
      Src: /src/cpython/Modules/_tkinter.c:2278,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2278,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2281,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:2283,1
    - Dst: FromObj
      Src: /src/cpython/Modules/_tkinter.c:2286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2288,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:2291,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:2295,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2296,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:2298,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_tkinter.c:2299,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_tkinter.c:2302,1
    - Dst: strlen
      Src: /src/cpython/Modules/_tkinter.c:2305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2306,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2307,1
    - Dst: Tcl_SplitList
      Src: /src/cpython/Modules/_tkinter.c:2310,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2310,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2312,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2313,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:2316,1
    - Dst: unicodeFromTclString
      Src: /src/cpython/Modules/_tkinter.c:2320,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_tkinter.c:2322,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:2325,1
    - Dst: ckfree
      Src: /src/cpython/Modules/_tkinter.c:2329,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2330,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2266
    functionDepth: 4
    functionLinenumber: 2266
    functionLinenumberEnd: 2332
    functionName: _tkinter_tkapp_splitlist_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PySequence_Tuple
    - Tcl_SplitList
    - PyArg_Parse
    - Tcl_ListObjGetElements
    - PyTuple_Check
    - unicodeFromTclString
    - PyTclObject_Check
    - ckfree
    - Tkapp_Interp
    - strlen
    - PyMem_Free
    - PyErr_SetString
    - PyList_Check
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    - Tkinter_Error
    - Py_SETREF
    - FromObj
    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:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - Tcl_Interp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2343
    functionDepth: 1
    functionLinenumber: 2343
    functionLinenumberEnd: 2350
    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:2368,1
    - Dst: PythonCmd_Error
      Src: /src/cpython/Modules/_tkinter.c:2369,1
    - Dst: FromObj
      Src: /src/cpython/Modules/_tkinter.c:2372,1
    - Dst: unicodeFromTclObj
      Src: /src/cpython/Modules/_tkinter.c:2373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2375,1
    - Dst: PythonCmd_Error
      Src: /src/cpython/Modules/_tkinter.c:2376,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:2378,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_tkinter.c:2381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2382,1
    - Dst: PythonCmd_Error
      Src: /src/cpython/Modules/_tkinter.c:2385,1
    - Dst: AsObj
      Src: /src/cpython/Modules/_tkinter.c:2387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2389,1
    - Dst: PythonCmd_Error
      Src: /src/cpython/Modules/_tkinter.c:2390,1
    - Dst: Tcl_SetObjResult
      Src: /src/cpython/Modules/_tkinter.c:2392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2393,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: 2398
      start: 2355
    functionDepth: 4
    functionLinenumber: 2355
    functionLinenumberEnd: 2398
    functionName: PythonCmd
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Tcl_SetObjResult
    - PythonCmd_Error
    - PyObject_Call
    - PyTuple_SET_ITEM
    - AsObj
    - Py_DECREF
    - FromObj
    - unicodeFromTclObj
    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:2408,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2409,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/cpython/Modules/_tkinter.c:2433,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:2437,1
    - Dst: Tcl_MutexLock
      Src: /src/cpython/Modules/_tkinter.c:2438,1
    - Dst: Tcl_ConditionNotify
      Src: /src/cpython/Modules/_tkinter.c:2439,1
    - Dst: Tcl_MutexUnlock
      Src: /src/cpython/Modules/_tkinter.c:2440,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2461,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2463,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2467,1
    - Dst: WaitForMainloop
      Src: /src/cpython/Modules/_tkinter.c:2468,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2471,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_tkinter.c:2473,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2475,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_tkinter.c:2476,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2478,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2479,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:2483,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2485,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2486,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:2496,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:2497,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/cpython/Modules/_tkinter.c:2502,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2508,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2509,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:2532,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2534,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2536,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:2541,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2543,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:2552,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:2554,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:2559,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2563,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_tkinter.c:2587,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_tkinter.c:2589,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_tkinter.c:2590,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2607,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2608,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2609,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_tkinter.c:2626,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2629,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2631,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2653,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_tkinter.c:2655,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2658,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2659,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2663,1
    - Dst: NewFHCD
      Src: /src/cpython/Modules/_tkinter.c:2665,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2690,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_tkinter.c:2692,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2696,1
    - Dst: DeleteFHCD
      Src: /src/cpython/Modules/_tkinter.c:2698,1
    - Dst: Tcl_DeleteTimerHandler
      Src: /src/cpython/Modules/_tkinter.c:2737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2743,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_tkinter.c:2753,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2758,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2761,1
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2767,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:2769,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2771,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_tkinter.c:2773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2774,1
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2780,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:2781,1
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2791,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_tkinter.c:2802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2804,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2811,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2832,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2833,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2837,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2839,1
    - Dst: Tktt_New
      Src: /src/cpython/Modules/_tkinter.c:2841,1
    - Dst: Tcl_CreateTimerHandler
      Src: /src/cpython/Modules/_tkinter.c:2843,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_tkinter.c:2865,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2867,1
    - Dst: Tk_GetNumMainWindows
      Src: /src/cpython/Modules/_tkinter.c:2871,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2880,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_tkinter.c:2885,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2887,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_tkinter.c:2889,1
    - Dst: Sleep
      Src: /src/cpython/Modules/_tkinter.c:2891,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_tkinter.c:2895,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2907,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2929,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_tkinter.c:2954,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2954,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2965,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2970,1
    - Dst: Tcl_Eval
      Src: /src/cpython/Modules/_tkinter.c:2972,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2972,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2977,1
    - Dst: Tcl_GetStringResult
      Src: /src/cpython/Modules/_tkinter.c:2979,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2979,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_tkinter.c:2985,1
    - Dst: Tk_Init
      Src: /src/cpython/Modules/_tkinter.c:2986,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2987,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 223
    argCount: 1
    argNames:
    - clientData
    argTypes:
    - ClientData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2401
    functionDepth: 2
    functionLinenumber: 2401
    functionLinenumberEnd: 2992
    functionName: PythonCmdDelete
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - strcmp
    - Tktt_New
    - PyErr_SetRaisedException
    - Py_XNewRef
    - PyObject_New
    - Py_TYPE
    - PyLong_FromVoidPtr
    - Sleep
    - PyErr_NoMemory
    - PyCallable_Check
    - Tcl_DoOneEvent
    - Tkapp_ThreadSend
    - Tkapp_Interp
    - PyObject_AsFileDescriptor
    - PyMem_Free
    - Py_XDECREF
    - NewFHCD
    - PyObject_CallNoArgs
    - Tk_GetNumMainWindows
    - Tcl_Eval
    - PyObject_Free
    - Tcl_GetStringResult
    - Tcl_ConditionFinalize
    - Py_INCREF
    - PyMem_NEW
    - Tcl_DeleteTimerHandler
    - WaitForMainloop
    - PyThreadState_Get
    - PyErr_SetString
    - PyObject_CallFunction
    - Tcl_ConditionNotify
    - Tcl_GetCurrentThread
    - Tk_Init
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_NewRef
    - CHECK_TCL_APPARTMENT
    - TkttObject_CAST
    - attemptckalloc
    - DeleteFHCD
    - Tcl_CreateTimerHandler
    - PyThread_acquire_lock
    - Tcl_CreateObjCommand
    - PyErr_CheckSignals
    - Tkinter_Error
    - PyUnicode_FromFormat
    - PyThread_release_lock
    - CHECK_STRING_LENGTH
    - Tcl_MutexLock
    - Tcl_DeleteCommand
    - TRACE
    - Tcl_MutexUnlock
    linkageType: ''
    returnType: void
    signature: void PythonCmdDelete(ClientData clientData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_CreateObjCommand
      Src: /src/cpython/Modules/_tkinter.c:2433,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:2437,1
    - Dst: Tcl_MutexLock
      Src: /src/cpython/Modules/_tkinter.c:2438,1
    - Dst: Tcl_ConditionNotify
      Src: /src/cpython/Modules/_tkinter.c:2439,1
    - Dst: Tcl_MutexUnlock
      Src: /src/cpython/Modules/_tkinter.c:2440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - evPtr
    - flags
    argTypes:
    - Tcl_Event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2428
    functionDepth: 0
    functionLinenumber: 2428
    functionLinenumberEnd: 2442
    functionName: Tkapp_CommandProc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_CreateObjCommand
    - Tcl_ConditionNotify
    - Tcl_MutexLock
    - Tcl_DeleteCommand
    - Tcl_MutexUnlock
    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:2461,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2463,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2467,1
    - Dst: WaitForMainloop
      Src: /src/cpython/Modules/_tkinter.c:2468,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2471,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_tkinter.c:2473,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2475,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_tkinter.c:2476,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2478,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2479,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:2483,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2485,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2486,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:2496,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:2497,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/cpython/Modules/_tkinter.c:2502,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2508,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - self
    - name
    - func
    argTypes:
    - TkappObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2453
    functionDepth: 2
    functionLinenumber: 2453
    functionLinenumberEnd: 2514
    functionName: _tkinter_tkapp_createcommand_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ConditionFinalize
    - Py_INCREF
    - attemptckalloc
    - PyMem_NEW
    - PyErr_NoMemory
    - PyCallable_Check
    - WaitForMainloop
    - Tcl_CreateObjCommand
    - PyErr_SetString
    - Tcl_GetCurrentThread
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - PyMem_Free
    - Tkapp_ThreadSend
    - TRACE
    - Py_NewRef
    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:2532,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2534,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/cpython/Modules/_tkinter.c:2536,1
    - Dst: attemptckalloc
      Src: /src/cpython/Modules/_tkinter.c:2541,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_tkinter.c:2543,1
    - Dst: Tkapp_ThreadSend
      Src: /src/cpython/Modules/_tkinter.c:2552,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/cpython/Modules/_tkinter.c:2554,1
    - Dst: Tcl_DeleteCommand
      Src: /src/cpython/Modules/_tkinter.c:2559,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2526
    functionDepth: 1
    functionLinenumber: 2526
    functionLinenumberEnd: 2567
    functionName: _tkinter_tkapp_deletecommand_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ConditionFinalize
    - Tcl_DeleteCommand
    - attemptckalloc
    - PyErr_NoMemory
    - PyErr_SetString
    - Tcl_GetCurrentThread
    - CHECK_STRING_LENGTH
    - Tkapp_ThreadSend
    - TRACE
    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:2587,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_tkinter.c:2589,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_tkinter.c:2590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - func
    - file
    - id
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2583
    functionDepth: 1
    functionLinenumber: 2583
    functionLinenumberEnd: 2596
    functionName: NewFHCD
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Py_XNewRef
    - PyMem_NEW
    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:2607,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2608,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:2609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2598
    functionDepth: 1
    functionLinenumber: 2598
    functionLinenumberEnd: 2614
    functionName: DeleteFHCD
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void DeleteFHCD(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_tkinter.c:2626,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2629,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - clientData
    - mask
    argTypes:
    - ClientData
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2616
    functionDepth: 1
    functionLinenumber: 2616
    functionLinenumberEnd: 2633
    functionName: FileHandler
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - Py_XDECREF
    - PyObject_CallFunction
    linkageType: ''
    returnType: void
    signature: void FileHandler(ClientData clientData, int mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2653,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_tkinter.c:2655,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2658,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2659,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2663,1
    - Dst: NewFHCD
      Src: /src/cpython/Modules/_tkinter.c:2665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - self
    - file
    - mask
    - func
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2645
    functionDepth: 2
    functionLinenumber: 2645
    functionLinenumberEnd: 2674
    functionName: _tkinter_tkapp_createfilehandler_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyErr_SetString
    - PyObject_AsFileDescriptor
    - NewFHCD
    - 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:2690,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_tkinter.c:2692,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2696,1
    - Dst: DeleteFHCD
      Src: /src/cpython/Modules/_tkinter.c:2698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2684
    functionDepth: 2
    functionLinenumber: 2684
    functionLinenumberEnd: 2705
    functionName: _tkinter_tkapp_deletefilehandler_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - DeleteFHCD
    - TRACE
    - PyObject_AsFileDescriptor
    - CHECK_TCL_APPARTMENT
    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: 2714
      start: 2712
    functionDepth: 0
    functionLinenumber: 2712
    functionLinenumberEnd: 2714
    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: 2722
      start: 2721
    functionDepth: 0
    functionLinenumber: 2721
    functionLinenumberEnd: 2722
    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:2737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkttObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2728
    functionDepth: 0
    functionLinenumber: 2728
    functionLinenumberEnd: 2746
    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:2753,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2758,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:2761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2748
    functionDepth: 1
    functionLinenumber: 2748
    functionLinenumberEnd: 2762
    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:2767,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:2769,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:2771,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_tkinter.c:2773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2764
    functionDepth: 1
    functionLinenumber: 2764
    functionLinenumberEnd: 2775
    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:2780,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_tkinter.c:2781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2777
    functionDepth: 1
    functionLinenumber: 2777
    functionLinenumberEnd: 2784
    functionName: Tktt_Repr
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - TkttObject_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tktt_Repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TkttObject_CAST
      Src: /src/cpython/Modules/_tkinter.c:2791,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_tkinter.c:2802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2804,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:2811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - clientData
    argTypes:
    - ClientData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2788
    functionDepth: 1
    functionLinenumber: 2788
    functionLinenumberEnd: 2814
    functionName: TimerHandler
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyErr_GetRaisedException
    - TkttObject_CAST
    - PyObject_CallNoArgs
    linkageType: ''
    returnType: void
    signature: void TimerHandler(ClientData clientData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_tkinter.c:2832,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:2833,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2837,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_tkinter.c:2839,1
    - Dst: Tktt_New
      Src: /src/cpython/Modules/_tkinter.c:2841,1
    - Dst: Tcl_CreateTimerHandler
      Src: /src/cpython/Modules/_tkinter.c:2843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - milliseconds
    - func
    argTypes:
    - TkappObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2825
    functionDepth: 2
    functionLinenumber: 2825
    functionLinenumberEnd: 2848
    functionName: _tkinter_tkapp_createtimerhandler_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_CreateTimerHandler
    - PyCallable_Check
    - PyErr_SetString
    - Tktt_New
    - TRACE
    - 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:2865,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2867,1
    - Dst: Tk_GetNumMainWindows
      Src: /src/cpython/Modules/_tkinter.c:2871,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2880,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_tkinter.c:2885,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:2887,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_tkinter.c:2889,1
    - Dst: Sleep
      Src: /src/cpython/Modules/_tkinter.c:2891,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_tkinter.c:2895,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:2907,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - self
    - threshold
    argTypes:
    - TkappObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2861
    functionDepth: 1
    functionLinenumber: 2861
    functionLinenumberEnd: 2912
    functionName: _tkinter_tkapp_mainloop_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Sleep
    - PyThread_acquire_lock
    - PyThreadState_Get
    - PyErr_CheckSignals
    - Tcl_DoOneEvent
    - PyThread_release_lock
    - PyErr_SetRaisedException
    - Tk_GetNumMainWindows
    - CHECK_TCL_APPARTMENT
    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:2929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - TkappObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2922
    functionDepth: 0
    functionLinenumber: 2922
    functionLinenumberEnd: 2932
    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: 2944
      start: 2938
    functionDepth: 0
    functionLinenumber: 2938
    functionLinenumberEnd: 2944
    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:2954,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2955
    functionName: _tkinter_tkapp_interpaddr_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_Interp
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_interpaddr_impl(TkappObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2965,1
    - Dst: CHECK_TCL_APPARTMENT
      Src: /src/cpython/Modules/_tkinter.c:2970,1
    - Dst: Tcl_Eval
      Src: /src/cpython/Modules/_tkinter.c:2972,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2972,1
    - Dst: Tkinter_Error
      Src: /src/cpython/Modules/_tkinter.c:2977,1
    - Dst: Tcl_GetStringResult
      Src: /src/cpython/Modules/_tkinter.c:2979,1
    - Dst: Tkapp_Interp
      Src: /src/cpython/Modules/_tkinter.c:2979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2980
      start: 2961
    functionDepth: 2
    functionLinenumber: 2961
    functionLinenumberEnd: 2980
    functionName: _tkinter_tkapp_loadtk_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkinter_Error
    - Tkapp_Interp
    - Tcl_Eval
    - Tcl_GetStringResult
    - 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:2997,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_tkinter.c:2999,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_tkinter.c:3003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3007
      start: 2994
    functionDepth: 1
    functionLinenumber: 2994
    functionLinenumberEnd: 3007
    functionName: Tkapp_WantObjects
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    - TkappObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_WantObjects(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_tkinter.c:3026,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_tkinter.c:3028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 3018
    functionDepth: 1
    functionLinenumber: 3018
    functionLinenumberEnd: 3030
    functionName: _tkinter_tkapp_settrace_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_INCREF
    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:3046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 3038
    functionDepth: 1
    functionLinenumber: 3038
    functionLinenumberEnd: 3048
    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: 3062
      start: 3055
    functionDepth: 0
    functionLinenumber: 3055
    functionLinenumberEnd: 3062
    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:3070,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_tkinter.c:3071,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_tkinter.c:3077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3078,1
    - Dst: DisableEventHook
      Src: /src/cpython/Modules/_tkinter.c:3079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3067
    functionDepth: 1
    functionLinenumber: 3067
    functionLinenumberEnd: 3080
    functionName: Tkapp_Dealloc
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - DisableEventHook
    - TkappObject_CAST
    - Py_DECREF
    - PyObject_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Tkapp_Dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Modules/_tkinter.c:3105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - size
    argTypes:
    - FlattenContext*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3092
    functionDepth: 1
    functionLinenumber: 3092
    functionLinenumberEnd: 3106
    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:3116,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:3119,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:3119,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_tkinter.c:3120,1
    - Dst: _bump
      Src: /src/cpython/Modules/_tkinter.c:3123,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:3127,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_tkinter.c:3128,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_tkinter.c:3128,1
    - Dst: _flatten1
      Src: /src/cpython/Modules/_tkinter.c:3129,1
    - Dst: _bump
      Src: /src/cpython/Modules/_tkinter.c:3133,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_tkinter.c:3135,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_tkinter.c:3136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:3140,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - context
    - item
    - depth
    argTypes:
    - FlattenContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3108
    functionDepth: 2
    functionLinenumber: 3108
    functionLinenumberEnd: 3144
    functionName: _flatten1
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - _flatten1
    - PySequence_Fast_GET_SIZE
    - PyErr_SetString
    - Py_NewRef
    - PyList_Check
    - PyTuple_SET_ITEM
    - PyTuple_Check
    - PySequence_Fast_GET_ITEM
    - _bump
    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:3160,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:3164,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_tkinter.c:3166,1
    - Dst: _flatten1
      Src: /src/cpython/Modules/_tkinter.c:3172,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:3173,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Modules/_tkinter.c:3177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - module
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3154
    functionDepth: 3
    functionLinenumber: 3154
    functionLinenumberEnd: 3181
    functionName: _tkinter__flatten
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - _flatten1
    - _PyTuple_Resize
    - PySequence_Size
    - Py_XDECREF
    - PyTuple_New
    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:3210,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:3211,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:3212,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/cpython/Modules/_tkinter.c:3213,1
    - Dst: Tkapp_New
      Src: /src/cpython/Modules/_tkinter.c:3215,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: 3218
      start: 3201
    functionDepth: 3
    functionLinenumber: 3201
    functionLinenumberEnd: 3218
    functionName: _tkinter_create_impl
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_New
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_tkinter_create_impl(PyObject *module, const char *screenName,\n
      \                    const char *baseName, const char *className,\n                     int
      interactive, int wantobjects, int wantTk, int sync,\n                     const
      char *use)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_tkinter.c:3238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - new_val
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3244
      start: 3233
    functionDepth: 1
    functionLinenumber: 3233
    functionLinenumberEnd: 3244
    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: 3258
      start: 3253
    functionDepth: 0
    functionLinenumber: 3253
    functionLinenumberEnd: 3258
    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: 3363
      start: 3359
    functionDepth: 0
    functionLinenumber: 3359
    functionLinenumberEnd: 3363
    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:3374,1
    - Dst: fileno
      Src: /src/cpython/Modules/_tkinter.c:3378,1
    - Dst: Tcl_CreateFileHandler
      Src: /src/cpython/Modules/_tkinter.c:3379,1
    - Dst: _kbhit
      Src: /src/cpython/Modules/_tkinter.c:3384,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_tkinter.c:3390,1
    - Dst: Tcl_DoOneEvent
      Src: /src/cpython/Modules/_tkinter.c:3393,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_tkinter.c:3396,1
    - Dst: Sleep
      Src: /src/cpython/Modules/_tkinter.c:3398,1
    - Dst: Tcl_DeleteFileHandler
      Src: /src/cpython/Modules/_tkinter.c:3405,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_tkinter.c:3409,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_tkinter.c:3411,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/_tkinter.c:3413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3368
    functionDepth: 1
    functionLinenumber: 3368
    functionLinenumberEnd: 3415
    functionName: EventHook
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 2
    functionsReached:
    - fileno
    - PyErr_Print
    - Sleep
    - PyThread_acquire_lock
    - _kbhit
    - Tcl_DoOneEvent
    - PyThread_release_lock
    - Tcl_DeleteFileHandler
    - PyErr_SetRaisedException
    - Tcl_CreateFileHandler
    - PyEval_SaveThread
    - PyEval_RestoreThread
    linkageType: ''
    returnType: int
    signature: int EventHook(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_tkinter.c:3424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3428
      start: 3419
    functionDepth: 1
    functionLinenumber: 3419
    functionLinenumberEnd: 3428
    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:3434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3430
    functionDepth: 0
    functionLinenumber: 3430
    functionLinenumberEnd: 3438
    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:3443,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_tkinter.c:3444,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_tkinter.c:3445,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_tkinter.c:3446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - Py_UNUSED(mod)
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3448
      start: 3440
    functionDepth: 1
    functionLinenumber: 3440
    functionLinenumberEnd: 3448
    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:3453,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_tkinter.c:3454,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_tkinter.c:3455,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_tkinter.c:3456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - Py_UNUSED(module)
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3458
      start: 3450
    functionDepth: 1
    functionLinenumber: 3450
    functionLinenumberEnd: 3458
    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:3463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3464
      start: 3460
    functionDepth: 0
    functionLinenumber: 3460
    functionLinenumberEnd: 3464
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - module_clear
    linkageType: ''
    returnType: void
    signature: void module_free(void *mod)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyABIInfo_VAR
      Src: /src/cpython/Modules/_tkinter.c:3479,1
    - Dst: PyABIInfo_Check
      Src: /src/cpython/Modules/_tkinter.c:3480,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_tkinter.c:3486,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_tkinter.c:3490,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_tkinter.c:3494,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_tkinter.c:3497,1
    - Dst: PyModule_AddObjectRef
      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:3503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3504,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3508,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3512,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3516,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3520,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3524,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3528,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3532,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_tkinter.c:3535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3536,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_tkinter.c:3539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3540,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_tkinter.c:3543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3544,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_tkinter.c:3548,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_tkinter.c:3549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3550,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_tkinter.c:3554,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_tkinter.c:3555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3556,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_tkinter.c:3560,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_tkinter.c:3561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3562,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Modules/_tkinter.c:3569,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_tkinter.c:3570,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/_tkinter.c:3571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3572,1
    - Dst: GetEnvironmentVariableW
      Src: /src/cpython/Modules/_tkinter.c:3580,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_tkinter.c:3582,1
    - Dst: _get_tcl_lib_path
      Src: /src/cpython/Modules/_tkinter.c:3583,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:3584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3586,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_tkinter.c:3590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3593,1
    - Dst: SetEnvironmentVariableW
      Src: /src/cpython/Modules/_tkinter.c:3596,1
    - Dst: Tcl_FindExecutable
      Src: /src/cpython/Modules/_tkinter.c:3601,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:3601,1
    - Dst: SetEnvironmentVariableW
      Src: /src/cpython/Modules/_tkinter.c:3604,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_tkinter.c:3605,1
    - Dst: Tcl_FindExecutable
      Src: /src/cpython/Modules/_tkinter.c:3608,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_tkinter.c:3608,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:3611,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_tkinter.c:3614,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_tkinter.c:3617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_tkinter.c:3618,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3623
      start: 3476
    functionDepth: 2
    functionLinenumber: 3476
    functionLinenumberEnd: 3623
    functionName: PyInit__tkinter
    functionSourceFile: /src/cpython/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyABIInfo_VAR
    - PyUnstable_Module_SetGIL
    - PyUnicode_EncodeFSDefault
    - PyErr_Occurred
    - GetLastError
    - PyModule_AddObjectRef
    - SetEnvironmentVariableW
    - PyThread_allocate_lock
    - PyErr_NewException
    - PySys_GetOptionalAttrString
    - PyUnicode_Check
    - PyMem_Free
    - GetEnvironmentVariableW
    - PyBytes_AS_STRING
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - PyType_FromSpec
    - PyModule_AddIntConstant
    - Tcl_FindExecutable
    - PyModule_AddStringConstant
    - PyABIInfo_Check
    - _get_tcl_lib_path
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__tkinter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_Register
      Src: /src/cpython/Modules/_codecsmodule.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - search_function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    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:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - search_function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - encoding
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    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:132,1
    - Dst: PyCodec_Encode
      Src: /src/cpython/Modules/_codecsmodule.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: _codecs_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetDefaultEncoding
    - PyCodec_Encode
    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:159,1
    - Dst: PyCodec_Decode
      Src: /src/cpython/Modules/_codecsmodule.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: _codecs_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetDefaultEncoding
    - PyCodec_Decode
    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:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - decoded
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 174
    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:189,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 192
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_codecsmodule.c:206,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_codecsmodule.c:208,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_codecsmodule.c:214,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_codecsmodule.c:218,1
    - Dst: assert
      Src: /src/cpython/Modules/_codecsmodule.c:222,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_codecsmodule.c:222,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_codecsmodule.c:224,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/_codecsmodule.c:248,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts:
    - condition: (newsize - (p - (char*)PyBytesWriter_GetData(writer)) >= 4)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Modules/_codecsmodule.c
    constantsTouched: []
    func_position:
      end: 250
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 250
    functionName: _codecs_escape_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - codec_tuple
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - assert
    - PyBytesWriter_GetData
    - PyBytes_GET_SIZE
    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:267,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:270,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: 271
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: _codecs_utf_7_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUTF7Stateful
    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:287,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:290,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: 291
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 291
    functionName: _codecs_utf_8_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_8_decode_impl(PyObject *module, Py_buffer
      *data,\n                          const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/cpython/Modules/_codecsmodule.c:309,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:312,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: 313
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 313
    functionName: _codecs_utf_16_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_decode_impl(PyObject *module, Py_buffer
      *data,\n                           const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/cpython/Modules/_codecsmodule.c:331,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:334,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: 335
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 335
    functionName: _codecs_utf_16_le_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_le_decode_impl(PyObject *module, Py_buffer
      *data,\n                              const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/cpython/Modules/_codecsmodule.c:353,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:356,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: 357
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: _codecs_utf_16_be_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_be_decode_impl(PyObject *module, Py_buffer
      *data,\n                              const char *errors, int final)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/cpython/Modules/_codecsmodule.c:383,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_codecsmodule.c:388,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: 389
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: _codecs_utf_16_ex_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16Stateful
    - Py_BuildValue
    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:407,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:410,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: 411
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 411
    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:429,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:432,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: 433
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 433
    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:451,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:454,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: 455
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 455
    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:479,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_codecsmodule.c:484,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: 485
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 485
    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:501,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:504,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: 505
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 505
    functionName: _codecs_unicode_escape_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_DecodeUnicodeEscapeStateful
    - codec_tuple
    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:521,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:524,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: 525
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: _codecs_raw_unicode_escape_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - _PyUnicode_DecodeRawUnicodeEscapeStateful
    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:539,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: _codecs_latin_1_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeLatin1
    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:555,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: _codecs_ascii_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeASCII
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_ascii_decode_impl(PyObject *module, Py_buffer
      *data,\n                          const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeCharmap
      Src: /src/cpython/Modules/_codecsmodule.c:577,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:578,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: 579
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 579
    functionName: _codecs_charmap_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeCharmap
    - codec_tuple
    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:597,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:599,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: 600
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 600
    functionName: _codecs_mbcs_decode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeMBCSStateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_mbcs_decode_impl(PyObject *module, Py_buffer *data,\n
      \                        const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeCodePageStateful
      Src: /src/cpython/Modules/_codecsmodule.c:616,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:618,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: 619
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 619
    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:636,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:640,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: 641
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 641
    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:659,1
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: _codecs_readbuffer_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_readbuffer_encode_impl(PyObject *module, Py_buffer
      *data,\n                               const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:675,1
    - Dst: _PyUnicode_EncodeUTF7
      Src: /src/cpython/Modules/_codecsmodule.c:675,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 677
    functionName: _codecs_utf_7_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF7
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_7_encode_impl(PyObject *module, PyObject *str,\n
      \                         const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:691,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_codecsmodule.c:691,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 693
    functionName: _codecs_utf_8_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsUTF8String
    - PyUnicode_GET_LENGTH
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_8_encode_impl(PyObject *module, PyObject *str,\n
      \                         const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:715,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_codecsmodule.c:715,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 717
    functionName: _codecs_utf_16_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_encode_impl(PyObject *module, PyObject
      *str,\n                           const char *errors, int byteorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:731,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_codecsmodule.c:731,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 733
    functionName: _codecs_utf_16_le_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_le_encode_impl(PyObject *module, PyObject
      *str,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:747,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_codecsmodule.c:747,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: _codecs_utf_16_be_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_be_encode_impl(PyObject *module, PyObject
      *str,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:771,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_codecsmodule.c:771,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: _codecs_utf_32_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF32
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_encode_impl(PyObject *module, PyObject
      *str,\n                           const char *errors, int byteorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:787,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_codecsmodule.c:787,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 789
    functionName: _codecs_utf_32_le_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF32
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_le_encode_impl(PyObject *module, PyObject
      *str,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:803,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_codecsmodule.c:803,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 805
    functionName: _codecs_utf_32_be_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF32
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_be_encode_impl(PyObject *module, PyObject
      *str,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:819,1
    - Dst: PyUnicode_AsUnicodeEscapeString
      Src: /src/cpython/Modules/_codecsmodule.c:819,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 821
    functionName: _codecs_unicode_escape_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - codec_tuple
    - 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:835,1
    - Dst: PyUnicode_AsRawUnicodeEscapeString
      Src: /src/cpython/Modules/_codecsmodule.c:835,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 837
    functionName: _codecs_raw_unicode_escape_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_AsRawUnicodeEscapeString
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_raw_unicode_escape_encode_impl(PyObject *module,
      PyObject *str,\n                                       const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:851,1
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_codecsmodule.c:851,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 853
    functionName: _codecs_latin_1_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsLatin1String
    - PyUnicode_GET_LENGTH
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_latin_1_encode_impl(PyObject *module, PyObject
      *str,\n                            const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:867,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_codecsmodule.c:867,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 869
    functionName: _codecs_ascii_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_AsASCIIString
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_ascii_encode_impl(PyObject *module, PyObject *str,\n
      \                         const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:887,1
    - Dst: _PyUnicode_EncodeCharmap
      Src: /src/cpython/Modules/_codecsmodule.c:887,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - mapping
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 889
    functionName: _codecs_charmap_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeCharmap
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_charmap_encode_impl(PyObject *module, PyObject
      *str,\n                            const char *errors, PyObject *mapping)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_BuildEncodingMap
      Src: /src/cpython/Modules/_codecsmodule.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - map
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 902
    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:917,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/cpython/Modules/_codecsmodule.c:917,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 919
    functionName: _codecs_mbcs_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_EncodeCodePage
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      _codecs_oem_encode_impl(PyObject *module, PyObject *str, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/cpython/Modules/_codecsmodule.c:949,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/cpython/Modules/_codecsmodule.c:949,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_codecsmodule.c:950,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: 951
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 951
    functionName: _codecs_code_page_encode_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_EncodeCodePage
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_code_page_encode_impl(PyObject *module, int code_page,
      PyObject *str,\n                              const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_RegisterError
      Src: /src/cpython/Modules/_codecsmodule.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - errors
    - handler
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 979
    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:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1003
    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:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1021
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_codecsmodule.c:1039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_codecsmodule.c:1045,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_codecsmodule.c:1049,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_codecsmodule.c:1051,1
    - Dst: _Py_normalize_encoding
      Src: /src/cpython/Modules/_codecsmodule.c:1054,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_codecsmodule.c:1055,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_codecsmodule.c:1059,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_codecsmodule.c:1060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - module
    - encoding
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1062
    functionName: _codecs__normalize_encoding_impl
    functionSourceFile: /src/cpython/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_NoMemory
    - _Py_normalize_encoding
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs__normalize_encoding_impl(PyObject *module, PyObject *encoding)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_codecsmodule.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1140
    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_IsNone
    - Py_NewRef
    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_IsNone
    - Py_NewRef
    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:
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - PyErr_SetString
    - PyUnicode_Check
    - PyBuffer_Release
    - PyBool_FromLong
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - _tscmp
    - PyObject_GetBuffer
    - PyObject_CheckBuffer
    - Py_TYPE
    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:
    - _PyArg_CheckPositional
    - PyVectorcall_NARGS
    - PyObject_Vectorcall
    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:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_NewRef
    - PyLong_CheckExact
    - PyErr_Clear
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - _PyType_GetModuleState
    - PyArg_UnpackTuple
    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:
    - Py_CLEAR
    - itemgetterobject_CAST
    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
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:
    - Py_VISIT
    - itemgetterobject_CAST
    - Py_TYPE
    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:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - itemgetterobject_CAST
    - itemgetter_call_impl
    - assert
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - 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:
    - _PyArg_CheckPositional
    - itemgetterobject_CAST
    - itemgetter_call_impl
    - _PyArg_NoKwnames
    - PyVectorcall_NARGS
    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:
    - PyTuple_GET_ITEM
    - PyObject_GetItem
    - PyTuple_SET_ITEM
    - PyTuple_Check
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - Py_NewRef
    - PyTuple_New
    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
    - itemgetterobject_CAST
    - PyUnicode_FromFormat
    - Py_ReprEnter
    - 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_FromPair
      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_FromPair
    - 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:
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    - PyObject_GC_New
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_Check
    - PyUnicode_Substring
    - _PyType_GetModuleState
    - PyObject_GC_Track
    - Py_INCREF
    - PyUnicode_READ
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - Py_DECREF
    - _PyUnicode_InternMortal
    - PyTuple_New
    - _PyInterpreterState_GET
    - PyUnicode_GET_LENGTH
    - _PyArg_NoKeywords
    - PyArg_UnpackTuple
    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:
    - attrgetter_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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_VISIT
    - attrgetterobject_CAST
    - Py_TYPE
    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:
    - PyTuple_GET_ITEM
    - Py_INCREF
    - PyObject_GetAttr
    - Py_DECREF
    - PyTuple_GET_SIZE
    - 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_CheckPositional
    - PyTuple_GET_ITEM
    - attrgetter_call_impl
    - attrgetterobject_CAST
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:
    - _PyArg_CheckPositional
    - attrgetter_call_impl
    - _PyArg_NoKwnames
    - attrgetterobject_CAST
    - PyVectorcall_NARGS
    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_Check(ag->attr))
      pos:
        line_end: 1465
        line_start: 1465
        source_file: /src/cpython/Modules/_operator.c
    - condition: (PyTuple_GET_SIZE(ag->attr) == nattrs)
      pos:
        line_end: 1466
        line_start: 1466
        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:
    - PyTuple_GET_ITEM
    - dotted_getattr
    - PyTuple_SET_ITEM
    - PyTuple_Check
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    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:
    - PyUnicode_FromString
    - PyTuple_CheckExact
    - Py_NewRef
    - PyUnicode_Join
    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:
    - PyTuple_GET_ITEM
    - dotjoinattr
    - PyTuple_SET_ITEM
    - Py_XDECREF
    - Py_DECREF
    - PyTuple_New
    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:
    - PyTuple_GET_ITEM
    - Py_ReprLeave
    - dotjoinattr
    - PyUnicode_FromFormat
    - Py_ReprEnter
    - attrgetter_args
    - attrgetterobject_CAST
    - Py_XDECREF
    - Py_DECREF
    - 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:
    - Py_TYPE
    - Py_BuildValue
    - attrgetterobject_CAST
    - attrgetter_args
    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:
    - _PyArg_CheckPositional
    - PyObject_VectorcallMethod
    - methodcallerobject_CAST
    - _PyArg_NoKwnames
    - memcpy
    - assert
    - _PyTuple_ITEMS
    - PyTuple_GET_SIZE
    - PyVectorcall_NARGS
    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:
    - PyDict_Values
    - PySequence_Concat
    - PySequence_Tuple
    - PyDict_Size
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    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:
    - PyObject_GC_New
    - PyTuple_GET_ITEM
    - Py_INCREF
    - PyObject_GC_Track
    - PyDict_Size
    - PyErr_SetString
    - PyUnicode_Check
    - _PyInterpreterState_GET
    - _PyUnicode_InternMortal
    - Py_DECREF
    - PyTuple_GetSlice
    - PyTuple_GET_SIZE
    - Py_XNewRef
    - _PyType_GetModuleState
    - _methodcaller_initialize_vectorcall
    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:
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - methodcaller_clear
    - 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:
    - methodcallerobject_CAST
    - Py_VISIT
    - Py_TYPE
    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_CheckPositional
    - PyTuple_GET_ITEM
    - methodcallerobject_CAST
    - PyObject_GetAttr
    - PyObject_Call
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_DECREF
    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:
    - Py_ReprLeave
    - PyTuple_GET_ITEM
    - PyUnicode_FromString
    - PyTuple_New
    - methodcallerobject_CAST
    - PyErr_SetString
    - PyUnicode_FromFormat
    - Py_ReprEnter
    - PyDict_Next
    - PyObject_Repr
    - PyUnicode_Join
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_TYPE
    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:
    - PyObject_VectorcallDict
    - PyTuple_GET_ITEM
    - methodcallerobject_CAST
    - Py_BuildValue
    - PyImport_ImportModuleAttrString
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - 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
    - PyType_FromModuleAndSpec
    - get_operator_state
    linkageType: ''
    returnType: int
    signature: int operator_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_operator_state
      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
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_operator.c:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1991
    functionDepth: 2
    functionLinenumber: 1991
    functionLinenumberEnd: 1999
    functionName: operator_traverse
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - get_operator_state
    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:2004,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:2005,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:2006,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_operator.c:2007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2001
    functionDepth: 2
    functionLinenumber: 2001
    functionLinenumberEnd: 2009
    functionName: operator_clear
    functionSourceFile: /src/cpython/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_operator_state
    linkageType: ''
    returnType: int
    signature: int operator_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operator_clear
      Src: /src/cpython/Modules/_operator.c:2014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2011
    functionDepth: 3
    functionLinenumber: 2011
    functionLinenumberEnd: 2015
    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:2032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2029
    functionDepth: 1
    functionLinenumber: 2029
    functionLinenumberEnd: 2033
    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: 9336
      start: 9327
    functionDepth: 0
    functionLinenumber: 9327
    functionLinenumberEnd: 9336
    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: 9348
      start: 9338
    functionDepth: 0
    functionLinenumber: 9338
    functionLinenumberEnd: 9348
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathintegermodule.c:35,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathintegermodule.c:35,1
    - Dst: _PyLong_GCD
      Src: /src/cpython/Modules/mathintegermodule.c:37,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathintegermodule.c:41,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathintegermodule.c:44,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:49,1
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Modules/mathintegermodule.c:49,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/mathintegermodule.c:53,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/mathintegermodule.c:55,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:57,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:63,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:66,1
    - Dst: _PyLong_GCD
      Src: /src/cpython/Modules/mathintegermodule.c:66,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:67,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: 73
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 73
    functionName: math_integer_gcd_impl
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_GetOne
    - Py_SETREF
    - PyLong_CheckExact
    - _PyLong_GCD
    - _PyNumber_Index
    - PyNumber_Absolute
    - Py_DECREF
    - PyNumber_Index
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_integer_gcd_impl(PyObject *module, PyObject * const
      *args,\n                      Py_ssize_t args_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/mathintegermodule.c:81,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/mathintegermodule.c:81,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathintegermodule.c:82,1
    - Dst: _PyLong_GCD
      Src: /src/cpython/Modules/mathintegermodule.c:84,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/mathintegermodule.c:88,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:89,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathintegermodule.c:93,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:94,1
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Modules/mathintegermodule.c:98,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 101
    functionName: long_lcm
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_IsZero
    - PyNumber_Multiply
    - PyNumber_FloorDivide
    - _PyLong_GCD
    - Py_DECREF
    - PyNumber_Absolute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_lcm(PyObject *a, PyObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathintegermodule.c:121,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathintegermodule.c:123,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:128,1
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Modules/mathintegermodule.c:128,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/mathintegermodule.c:132,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathintegermodule.c:134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:142,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:145,1
    - Dst: long_lcm
      Src: /src/cpython/Modules/mathintegermodule.c:145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:146,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: 152
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 152
    functionName: math_integer_lcm_impl
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_SETREF
    - long_lcm
    - _PyLong_GetZero
    - Py_DECREF
    - PyNumber_Absolute
    - PyNumber_Index
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_integer_lcm_impl(PyObject *module, PyObject * const
      *args,\n                      Py_ssize_t args_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: _approximate_isqrt
    functionSourceFile: /src/cpython/Modules/mathintegermodule.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/mathintegermodule.c:363,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathintegermodule.c:368,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathintegermodule.c:369,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/mathintegermodule.c:374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:375,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathintegermodule.c:376,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Modules/mathintegermodule.c:380,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:381,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:382,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:382,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/mathintegermodule.c:389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:390,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:391,1
    - Dst: _approximate_isqrt
      Src: /src/cpython/Modules/mathintegermodule.c:394,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/mathintegermodule.c:396,1
    - Dst: _PyLong_Rshift
      Src: /src/cpython/Modules/mathintegermodule.c:410,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/mathintegermodule.c:414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:415,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:416,1
    - Dst: _approximate_isqrt
      Src: /src/cpython/Modules/mathintegermodule.c:419,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/mathintegermodule.c:420,1
    - Dst: _PyLong_Rshift
      Src: /src/cpython/Modules/mathintegermodule.c:432,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:436,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/mathintegermodule.c:436,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:442,1
    - Dst: _PyLong_Lshift
      Src: /src/cpython/Modules/mathintegermodule.c:442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:444,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:447,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/mathintegermodule.c:447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:448,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathintegermodule.c:458,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/mathintegermodule.c:462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:463,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:469,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/mathintegermodule.c:469,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/mathintegermodule.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:471,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathintegermodule.c:475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:476,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 2
    argNames:
    - module
    - n
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (c > 0)
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/cpython/Modules/mathintegermodule.c
    constantsTouched: []
    func_position:
      end: 478
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 478
    functionName: math_integer_isqrt
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_IsZero
    - _PyLong_NumBits
    - PyNumber_Subtract
    - PyErr_Occurred
    - assert
    - PyLong_FromUnsignedLong
    - _PyLong_GetOne
    - PyNumber_Add
    - _approximate_isqrt
    - _PyLong_IsNegative
    - Py_XDECREF
    - _PyNumber_Index
    - _PyLong_Rshift
    - PyErr_SetString
    - PyNumber_FloorDivide
    - Py_DECREF
    - PyObject_RichCompareBool
    - Py_SETREF
    - PyLong_AsUnsignedLongLong
    - _PyLong_Lshift
    - PyNumber_Multiply
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_integer_isqrt(PyObject *module, PyObject *n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 490
    functionName: count_set_bits
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long count_set_bits(unsigned long n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/mathintegermodule.c:593,1
    - Dst: factorial_partial_product
      Src: /src/cpython/Modules/mathintegermodule.c:598,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Modules/mathintegermodule.c:599,1
    - Dst: factorial_partial_product
      Src: /src/cpython/Modules/mathintegermodule.c:602,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathintegermodule.c:605,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathintegermodule.c:608,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathintegermodule.c:609,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: 611
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 611
    functionName: factorial_partial_product
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 1
    functionsReached:
    - _Py_bit_length
    - factorial_partial_product
    - PyNumber_Multiply
    - Py_XDECREF
    - PyLong_FromUnsignedLong
    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/mathintegermodule.c:622,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/mathintegermodule.c:625,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Modules/mathintegermodule.c:628,1
    - Dst: factorial_partial_product
      Src: /src/cpython/Modules/mathintegermodule.c:638,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Modules/mathintegermodule.c:638,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathintegermodule.c:642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:643,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:646,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathintegermodule.c:651,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:661,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 663
    functionName: factorial_odd_part
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _Py_bit_length
    - Py_SETREF
    - factorial_partial_product
    - PyNumber_Multiply
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      factorial_odd_part(unsigned long n)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathintegermodule.c:695,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:696,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathintegermodule.c:700,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathintegermodule.c:706,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/mathintegermodule.c:712,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/mathintegermodule.c:713,1
    - Dst: factorial_odd_part
      Src: /src/cpython/Modules/mathintegermodule.c:717,1
    - Dst: count_set_bits
      Src: /src/cpython/Modules/mathintegermodule.c:720,1
    - Dst: _PyLong_Lshift
      Src: /src/cpython/Modules/mathintegermodule.c:721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:722,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 724
    functionName: math_integer_factorial
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - count_set_bits
    - Py_ARRAY_LENGTH
    - PyErr_SetString
    - _PyLong_Lshift
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - factorial_odd_part
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_integer_factorial(PyObject *module, PyObject *arg)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:853,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/mathintegermodule.c:868,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathintegermodule.c:885,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/mathintegermodule.c:895,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathintegermodule.c:902,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/mathintegermodule.c:913,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathintegermodule.c:920,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathintegermodule.c:929,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathintegermodule.c:940,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathintegermodule.c:944,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:948,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathintegermodule.c:948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:949,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathintegermodule.c:951,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:955,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/mathintegermodule.c:955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:961,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: 852
        line_start: 852
        source_file: /src/cpython/Modules/mathintegermodule.c
    constantsTouched: []
    func_position:
      end: 963
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 963
    functionName: perm_comb_small
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 1
    functionsReached:
    - perm_comb_small
    - Py_ARRAY_LENGTH
    - Py_SETREF
    - PyNumber_Multiply
    - PyNumber_FloorDivide
    - PyLong_FromUnsignedLongLong
    - assert
    - Py_DECREF
    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/mathintegermodule.c:973,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/mathintegermodule.c:976,1
    - Dst: perm_comb
      Src: /src/cpython/Modules/mathintegermodule.c:983,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/mathintegermodule.c:987,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/mathintegermodule.c:991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:992,1
    - Dst: perm_comb
      Src: /src/cpython/Modules/mathintegermodule.c:996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:997,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:1001,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathintegermodule.c:1001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1002,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathintegermodule.c:1004,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:1008,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/mathintegermodule.c:1008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1014,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - n
    - k
    - iscomb
    argTypes:
    - PyObject*
    - unsigned long long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 1016
    functionName: perm_comb
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - perm_comb_small
    - Py_SETREF
    - perm_comb
    - PyNumber_Subtract
    - PyNumber_Multiply
    - PyNumber_FloorDivide
    - PyLong_FromUnsignedLongLong
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      perm_comb(PyObject *n, unsigned long long k, int iscomb)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: math_integer_factorial
      Src: /src/cpython/Modules/mathintegermodule.c:1046,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathintegermodule.c:1048,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathintegermodule.c:1052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1054,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1057,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathintegermodule.c:1057,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathintegermodule.c:1057,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathintegermodule.c:1059,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathintegermodule.c:1060,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathintegermodule.c:1064,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathintegermodule.c:1065,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/mathintegermodule.c:1070,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathintegermodule.c:1073,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathintegermodule.c:1079,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1080,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:1080,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathintegermodule.c:1082,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1087,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathintegermodule.c:1089,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1090,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:1090,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1092,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathintegermodule.c:1093,1
    - Dst: perm_comb
      Src: /src/cpython/Modules/mathintegermodule.c:1097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1107,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 3
    argNames:
    - module
    - n
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 1089
        line_start: 1089
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (ni >= 0)
      pos:
        line_end: 1091
        line_start: 1091
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 1079
        line_start: 1079
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (PyLong_CheckExact(n) && PyLong_CheckExact(k))
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (ki >= 0)
      pos:
        line_end: 1086
        line_start: 1086
        source_file: /src/cpython/Modules/mathintegermodule.c
    constantsTouched: []
    func_position:
      end: 1109
      start: 1037
    functionDepth: 4
    functionLinenumber: 1037
    functionLinenumberEnd: 1109
    functionName: math_integer_perm_impl
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyLong_FromLong
    - perm_comb_small
    - PyErr_SetString
    - PyLong_AsLongLongAndOverflow
    - _PyLong_IsNegative
    - perm_comb
    - math_integer_factorial
    - PyLong_CheckExact
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_Format
    - PyNumber_Index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_integer_perm_impl(PyObject *module, PyObject *n, PyObject *k)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathintegermodule.c:1139,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathintegermodule.c:1143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1145,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1148,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathintegermodule.c:1148,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathintegermodule.c:1148,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathintegermodule.c:1150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathintegermodule.c:1151,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathintegermodule.c:1155,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathintegermodule.c:1156,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathintegermodule.c:1161,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1162,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:1162,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1164,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathintegermodule.c:1165,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:1166,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathintegermodule.c:1168,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1171,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/mathintegermodule.c:1173,1
    - Dst: perm_comb_small
      Src: /src/cpython/Modules/mathintegermodule.c:1175,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Modules/mathintegermodule.c:1183,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1187,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/mathintegermodule.c:1187,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathintegermodule.c:1188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1189,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathintegermodule.c:1190,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/mathintegermodule.c:1193,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathintegermodule.c:1195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1198,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/mathintegermodule.c:1204,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1205,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathintegermodule.c:1205,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathintegermodule.c:1207,1
    - Dst: assert
      Src: /src/cpython/Modules/mathintegermodule.c:1212,1
    - Dst: perm_comb
      Src: /src/cpython/Modules/mathintegermodule.c:1215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1224,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: 1165
        line_start: 1165
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (ki >= 0)
      pos:
        line_end: 1211
        line_start: 1211
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (ki >= 0)
      pos:
        line_end: 1170
        line_start: 1170
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 1204
        line_start: 1204
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (PyLong_CheckExact(n) && PyLong_CheckExact(k))
      pos:
        line_end: 1147
        line_start: 1147
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (overflow >= 0 && !PyErr_Occurred())
      pos:
        line_end: 1161
        line_start: 1161
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (ni >= 0)
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/cpython/Modules/mathintegermodule.c
    - condition: (PyLong_Check(temp))
      pos:
        line_end: 1186
        line_start: 1186
        source_file: /src/cpython/Modules/mathintegermodule.c
    constantsTouched: []
    func_position:
      end: 1226
      start: 1131
    functionDepth: 3
    functionLinenumber: 1131
    functionLinenumberEnd: 1226
    functionName: math_integer_comb_impl
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyObject_RichCompareBool
    - perm_comb_small
    - PyErr_SetString
    - PyLong_AsLongLongAndOverflow
    - Py_SETREF
    - _PyLong_IsNegative
    - perm_comb
    - Py_MIN
    - PyLong_CheckExact
    - PyNumber_Subtract
    - PyLong_Check
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_Format
    - PyNumber_Index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_integer_comb_impl(PyObject *module, PyObject *n, PyObject *k)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/mathintegermodule.c:1245,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/mathintegermodule.c:1249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1250,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/mathintegermodule.c:1254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1256,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/mathintegermodule.c:1259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathintegermodule.c:1266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1268
    functionName: math_integer_exec
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyObject_SetAttrString
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int math_integer_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/mathintegermodule.c:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1294
    functionName: PyInit__math_integer
    functionSourceFile: /src/cpython/Modules/mathintegermodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__math_integer(void)
  - 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: 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: 46
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: ADJUST_INDICES
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_INDICES(start, end, len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 97
    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:
    - Dst: _PyModule_GetState
      Src: /src/cpython/Modules/unicodedata.c:107,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.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/unicodedata.c
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: get_unicodedata_state
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetState
    - assert
    linkageType: ''
    returnType: unicodedatastate
    signature: 'unicodedatastate *

      get_unicodedata_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: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    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: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    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: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    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:143,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/unicodedata.c:149,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: 151
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: new_previous_version
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    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:180,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:181,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/cpython/Modules/unicodedata.c:194,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:197,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:202,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/unicodedata.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 206
    functionName: unicodedata_UCD_decimal_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - UCD_Check
    - get_old_record
    - PyErr_SetString
    - Py_NewRef
    - Py_UNICODE_TODECIMAL
    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:229,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:232,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:236,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/unicodedata.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 240
    functionName: unicodedata_UCD_digit_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_UNICODE_TODIGIT
    - PyLong_FromLong
    - Py_NewRef
    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:266,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:267,1
    - Dst: Py_UNICODE_TONUMERIC
      Src: /src/cpython/Modules/unicodedata.c:280,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:283,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:287,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/unicodedata.c:290,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 291
    functionName: unicodedata_UCD_numeric_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - UCD_Check
    - get_old_record
    - PyErr_SetString
    - Py_UNICODE_TONUMERIC
    - PyFloat_FromDouble
    - Py_NewRef
    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:310,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:311,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:312,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: unicodedata_UCD_category_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _getrecord_ex
    - UCD_Check
    - get_old_record
    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:338,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:339,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:340,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 347
    functionName: unicodedata_UCD_bidirectional_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _getrecord_ex
    - UCD_Check
    - get_old_record
    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:368,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:369,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: unicodedata_UCD_combining_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getrecord_ex
    - UCD_Check
    - get_old_record
    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:397,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:398,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 406
    functionName: unicodedata_UCD_mirrored_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getrecord_ex
    - UCD_Check
    - get_old_record
    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:425,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:426,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:427,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 434
    functionName: unicodedata_UCD_east_asian_width_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _getrecord_ex
    - UCD_Check
    - get_old_record
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_east_asian_width_impl(PyObject *self, int chr)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:472,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:473,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/unicodedata.c:475,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/unicodedata.c:487,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/unicodedata.c:491,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:494,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:516,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:516,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:519,1
    - Dst: memcpy
      Src: /src/cpython/Modules/unicodedata.c:520,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:525,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/unicodedata.c:526,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:528,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/unicodedata.c:530,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (prefix_index < Py_ARRAY_LENGTH(decomp_prefix))
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/cpython/Modules/unicodedata.c
    - condition: (i < sizeof(decomp))
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/cpython/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 531
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 531
    functionName: unicodedata_UCD_decomposition_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicode_FromString
    - UCD_Check
    - get_old_record
    - Py_ARRAY_LENGTH
    - memcpy
    - strlen
    - assert
    - PyOS_snprintf
    - PyUnicode_FromStringAndSize
    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:540,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:541,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: 557
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 557
    functionName: get_decomp_record
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - UCD_Check
    - get_old_record
    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:574,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/unicodedata.c:585,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/unicodedata.c:587,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:591,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:592,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:595,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/unicodedata.c:604,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:606,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/unicodedata.c:607,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:630,1
    - Dst: normalization
      Src: /src/cpython/Modules/unicodedata.c:631,1
    - Dst: get_decomp_record
      Src: /src/cpython/Modules/unicodedata.c:639,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/unicodedata.c:657,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:659,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:663,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:664,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:668,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:668,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:669,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:670,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:670,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:678,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/unicodedata.c:679,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:680,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Modules/unicodedata.c:681,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:685,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:685,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:689,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:689,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 89
    argCount: 3
    argNames:
    - self
    - input
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 692
    functionName: nfd_nfkd
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - get_decomp_record
    - _getrecord_ex
    - UCD_Check
    - PyUnicode_KIND
    - PyErr_NoMemory
    - PyMem_NEW
    - PyUnicode_DATA
    - PyUnicode_READ
    - PyMem_Realloc
    - PyUnicode_GET_LENGTH
    - PyMem_Free
    - PyUnicode_FromKindAndData
    - normalization
    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: 708
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 708
    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:723,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:727,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:728,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:729,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/unicodedata.c:734,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/unicodedata.c:736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:737,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:756,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:759,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:760,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:765,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:769,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:770,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:773,1
    - Dst: find_nfc_index
      Src: /src/cpython/Modules/unicodedata.c:781,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:791,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:793,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:794,1
    - Dst: find_nfc_index
      Src: /src/cpython/Modules/unicodedata.c:804,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:826,1
    - Dst: find_nfc_index
      Src: /src/cpython/Modules/unicodedata.c:829,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:842,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/unicodedata.c:843,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/unicodedata.c:845,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 92
    argCount: 3
    argNames:
    - self
    - input
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (cskipped < 20)
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/cpython/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 847
      start: 710
    functionDepth: 3
    functionLinenumber: 710
    functionLinenumberEnd: 847
    functionName: nfc_nfkc
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getrecord_ex
    - PyMem_NEW
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyErr_NoMemory
    - PyUnicode_READ
    - PyUnicode_GET_LENGTH
    - PyMem_Free
    - assert
    - Py_DECREF
    - PyUnicode_FromKindAndData
    - find_nfc_index
    - nfd_nfkd
    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:870,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/unicodedata.c:874,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:889,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:890,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:891,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:893,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:894,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: 915
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 915
    functionName: is_normalized_quickcheck
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getrecord_ex
    - UCD_Check
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - PyUnicode_READ
    - 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:936,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:949,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:952,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:956,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:959,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:963,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:967,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Modules/unicodedata.c:974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:975,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:982,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - self
    - form
    - input
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 931
    functionDepth: 2
    functionLinenumber: 931
    functionLinenumberEnd: 983
    functionName: unicodedata_UCD_is_normalized_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - is_normalized_quickcheck
    - PyUnicode_Compare
    - PyUnicode_CompareWithASCIIString
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - Py_NewRef
    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:1004,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:1007,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:1010,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:1011,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:1013,1
    - Dst: nfc_nfkc
      Src: /src/cpython/Modules/unicodedata.c:1015,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:1017,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:1018,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:1020,1
    - Dst: nfc_nfkc
      Src: /src/cpython/Modules/unicodedata.c:1022,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:1024,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:1025,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:1027,1
    - Dst: nfd_nfkd
      Src: /src/cpython/Modules/unicodedata.c:1029,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/unicodedata.c:1031,1
    - Dst: is_normalized_quickcheck
      Src: /src/cpython/Modules/unicodedata.c:1032,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/unicodedata.c:1034,1
    - Dst: nfd_nfkd
      Src: /src/cpython/Modules/unicodedata.c:1036,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:1038,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - self
    - form
    - input
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 999
    functionDepth: 4
    functionLinenumber: 999
    functionLinenumberEnd: 1040
    functionName: unicodedata_UCD_normalize_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_FromObject
    - is_normalized_quickcheck
    - PyUnicode_CompareWithASCIIString
    - PyUnicode_GET_LENGTH
    - nfc_nfkc
    - nfd_nfkd
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_normalize_impl(PyObject *self, PyObject
      *form,\n                               PyObject *input)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:1085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - code
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1094
    functionName: find_prefix_id
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: int
    signature: int find_prefix_id(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: 1099
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1099
    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: 1101
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1101
    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: 1120
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1120
    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:1132,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: 1140
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1140
    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:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - node_offset
    - final
    argTypes:
    - unsigned int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1161
    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:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node_offset
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    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:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node_offset
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1177
    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:1225,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: 1241
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1241
    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:1251,1
    - Dst: _dawg_decode_edge
      Src: /src/cpython/Modules/unicodedata.c:1257,1
    - Dst: _dawg_match_edge
      Src: /src/cpython/Modules/unicodedata.c:1265,1
    - Dst: _dawg_node_descendant_count
      Src: /src/cpython/Modules/unicodedata.c:1279,1
    - Dst: _dawg_node_is_final
      Src: /src/cpython/Modules/unicodedata.c:1283,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - name
    - namelen
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1287
    functionName: _lookup_dawg_packed
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _dawg_decode_node
    - _dawg_node_descendant_count
    - _dawg_decode_edge
    - _dawg_node_is_final
    - _dawg_match_edge
    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:1296,1
    - Dst: _dawg_decode_edge
      Src: /src/cpython/Modules/unicodedata.c:1313,1
    - Dst: _dawg_node_descendant_count
      Src: /src/cpython/Modules/unicodedata.c:1322,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - buffer
    - buflen
    - pos
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1340
    functionName: _inverse_dawg_lookup
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _dawg_node_descendant_count
    - _dawg_decode_node
    - _dawg_decode_edge
    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:1356,1
    - Dst: IS_NAMED_SEQ
      Src: /src/cpython/Modules/unicodedata.c:1356,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:1359,1
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1362,1
    - Dst: IS_NAMED_SEQ
      Src: /src/cpython/Modules/unicodedata.c:1362,1
    - Dst: get_old_record
      Src: /src/cpython/Modules/unicodedata.c:1364,1
    - Dst: find_prefix_id
      Src: /src/cpython/Modules/unicodedata.c:1371,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:1373,1
    - Dst: strcpy
      Src: /src/cpython/Modules/unicodedata.c:1383,1
    - Dst: strcpy
      Src: /src/cpython/Modules/unicodedata.c:1385,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1386,1
    - Dst: strcpy
      Src: /src/cpython/Modules/unicodedata.c:1387,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1388,1
    - Dst: strcpy
      Src: /src/cpython/Modules/unicodedata.c:1389,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1390,1
    - Dst: snprintf
      Src: /src/cpython/Modules/unicodedata.c:1397,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:1410,1
    - Dst: _inverse_dawg_lookup
      Src: /src/cpython/Modules/unicodedata.c:1411,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/unicodedata.c:1411,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 5
    argNames:
    - self
    - code
    - buffer
    - buflen
    - with_alias_and_seq
    argTypes:
    - PyObject*
    - Py_UCS4
    - char*
    - int
    - int
    assertStmts:
    - condition: (SBase <= code && code < SBase+SCount)
      pos:
        line_end: 1372
        line_start: 1372
        source_file: /src/cpython/Modules/unicodedata.c
    - condition: (buflen >= 0)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/cpython/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 1412
      start: 1343
    functionDepth: 3
    functionLinenumber: 1343
    functionLinenumberEnd: 1412
    functionName: _getucname
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - find_prefix_id
    - UCD_Check
    - get_old_record
    - strcpy
    - snprintf
    - Py_SAFE_DOWNCAST
    - strlen
    - assert
    - IS_ALIAS
    - _inverse_dawg_lookup
    - IS_NAMED_SEQ
    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:1419,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: 1421
      start: 1414
    functionDepth: 4
    functionLinenumber: 1414
    functionLinenumberEnd: 1421
    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:1430,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1430,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/unicodedata.c:1433,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: 1441
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1441
    functionName: find_syllable
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - strlen
    - PyOS_strnicmp
    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:1447,1
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - code
    - with_named_seq
    argTypes:
    - Py_UCS4*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1454
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOUPPER
      Src: /src/cpython/Modules/unicodedata.c:1468,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - name
    - namelen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1484
    functionName: parse_hex_code
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_TOUPPER
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 parse_hex_code(const char *name, int namelen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:1495,1
    - Dst: strlen
      Src: /src/cpython/Modules/unicodedata.c:1497,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/unicodedata.c:1498,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:1505,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/unicodedata.c:1505,1
    - Dst: find_syllable
      Src: /src/cpython/Modules/unicodedata.c:1508,1
    - Dst: find_syllable
      Src: /src/cpython/Modules/unicodedata.c:1510,1
    - Dst: find_syllable
      Src: /src/cpython/Modules/unicodedata.c:1512,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:1522,1
    - Dst: parse_hex_code
      Src: /src/cpython/Modules/unicodedata.c:1523,1
    - Dst: find_prefix_id
      Src: /src/cpython/Modules/unicodedata.c:1524,1
    - Dst: assert
      Src: /src/cpython/Modules/unicodedata.c:1531,1
    - Dst: _lookup_dawg_packed
      Src: /src/cpython/Modules/unicodedata.c:1532,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/unicodedata.c:1532,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - name
    - namelen
    - code
    argTypes:
    - char*
    - int
    - Py_UCS4*
    assertStmts:
    - condition: (PyOS_strnicmp(name, "HANGUL SYLLABLE ", 16) == 0)
      pos:
        line_end: 1504
        line_start: 1504
        source_file: /src/cpython/Modules/unicodedata.c
    - condition: (namelen >= 0)
      pos:
        line_end: 1530
        line_start: 1530
        source_file: /src/cpython/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 1538
      start: 1486
    functionDepth: 3
    functionLinenumber: 1486
    functionLinenumberEnd: 1538
    functionName: _getcode
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - find_prefix_id
    - find_syllable
    - Py_SAFE_DOWNCAST
    - Py_ARRAY_LENGTH
    - PyOS_strnicmp
    - parse_hex_code
    - strlen
    - assert
    - _lookup_dawg_packed
    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:1545,1
    - Dst: _check_alias_and_seq
      Src: /src/cpython/Modules/unicodedata.c:1548,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: 1549
      start: 1541
    functionDepth: 4
    functionLinenumber: 1541
    functionLinenumberEnd: 1549
    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_New
      Src: /src/cpython/Modules/unicodedata.c:1560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1551
    functionDepth: 1
    functionLinenumber: 1551
    functionLinenumberEnd: 1561
    functionName: unicodedata_create_capi
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyCapsule_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

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

      unicodedata_UCD_name_impl(PyObject *self, int chr, PyObject *default_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/unicodedata.c:1615,1
    - Dst: _PyUnicode_IsXidStart
      Src: /src/cpython/Modules/unicodedata.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1611
    functionDepth: 1
    functionLinenumber: 1611
    functionLinenumberEnd: 1616
    functionName: unicodedata_isxidstart_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_IsXidStart
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_isxidstart_impl(PyObject *module, int chr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/unicodedata.c:1632,1
    - Dst: _PyUnicode_IsXidContinue
      Src: /src/cpython/Modules/unicodedata.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1633
    functionName: unicodedata_isxidcontinue_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _PyUnicode_IsXidContinue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_isxidcontinue_impl(PyObject *module, int chr)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/unicodedata.c:1656,1
    - Dst: _getcode
      Src: /src/cpython/Modules/unicodedata.c:1660,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/unicodedata.c:1661,1
    - Dst: UCD_Check
      Src: /src/cpython/Modules/unicodedata.c:1664,1
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1666,1
    - Dst: IS_NAMED_SEQ
      Src: /src/cpython/Modules/unicodedata.c:1666,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/unicodedata.c:1667,1
    - Dst: IS_NAMED_SEQ
      Src: /src/cpython/Modules/unicodedata.c:1673,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/unicodedata.c:1675,1
    - Dst: IS_ALIAS
      Src: /src/cpython/Modules/unicodedata.c:1679,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/unicodedata.c:1682,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: 1683
      start: 1648
    functionDepth: 4
    functionLinenumber: 1648
    functionLinenumberEnd: 1683
    functionName: unicodedata_UCD_lookup_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - UCD_Check
    - PyErr_SetString
    - PyUnicode_FromOrdinal
    - PyErr_Format
    - _getcode
    - PyUnicode_FromKindAndData
    - IS_ALIAS
    - IS_NAMED_SEQ
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_lookup_impl(PyObject *self, const char
      *name,\n                            Py_ssize_t name_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - state
    - gcb
    - ext_pict
    argTypes:
    - enum ExtPictState
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1734
    functionName: update_ext_pict_state
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum ExtPictState
    signature: enum ExtPictState update_ext_pict_state(enum ExtPictState state, int
      gcb, bool ext_pict)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - state
    - incb
    argTypes:
    - enum InCBState
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1736
    functionDepth: 0
    functionLinenumber: 1736
    functionLinenumberEnd: 1751
    functionName: update_incb_state
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum InCBState
    signature: enum InCBState update_incb_state(enum InCBState state, int incb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - flag
    - gcb
    argTypes:
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1753
    functionDepth: 0
    functionLinenumber: 1753
    functionLinenumberEnd: 1762
    functionName: update_ri_flag
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool update_ri_flag(bool flag, int gcb)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 38
    argCount: 5
    argNames:
    - prev_gcb
    - curr_gcb
    - ep_state
    - ri_flag
    - incb_state
    argTypes:
    - int
    - int
    - enum ExtPictState
    - bool
    - enum InCBState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1764
    functionDepth: 0
    functionLinenumber: 1764
    functionLinenumberEnd: 1845
    functionName: grapheme_break
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool grapheme_break(int prev_gcb, int curr_gcb, enum ExtPictState
      ep_state,\n               bool ri_flag, enum InCBState incb_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - iter
    - str
    - start
    - end
    argTypes:
    - _PyGraphemeBreak*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1858
    functionName: _Py_InitGraphemeBreak
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _Py_InitGraphemeBreak(_PyGraphemeBreak *iter, PyObject *str,\n
      \                     Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/unicodedata.c:1867,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/unicodedata.c:1868,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/unicodedata.c:1870,1
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:1871,1
    - Dst: update_ext_pict_state
      Src: /src/cpython/Modules/unicodedata.c:1873,1
    - Dst: update_ri_flag
      Src: /src/cpython/Modules/unicodedata.c:1874,1
    - Dst: update_incb_state
      Src: /src/cpython/Modules/unicodedata.c:1875,1
    - Dst: grapheme_break
      Src: /src/cpython/Modules/unicodedata.c:1879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - iter
    argTypes:
    - _PyGraphemeBreak*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1860
    functionDepth: 1
    functionLinenumber: 1860
    functionLinenumberEnd: 1889
    functionName: _Py_NextGraphemeBreak
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getrecord_ex
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - update_ri_flag
    - grapheme_break
    - update_incb_state
    - update_ext_pict_state
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_NextGraphemeBreak(_PyGraphemeBreak *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/unicodedata.c:1904,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/unicodedata.c:1905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:1906,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/unicodedata.c:1907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:1908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1901
    functionDepth: 0
    functionLinenumber: 1901
    functionLinenumberEnd: 1909
    functionName: Segment_dealloc
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Segment_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/unicodedata.c:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1911
    functionDepth: 1
    functionLinenumber: 1911
    functionLinenumberEnd: 1916
    functionName: Segment_traverse
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Segment_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/unicodedata.c:1922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1918
    functionDepth: 1
    functionLinenumber: 1918
    functionLinenumberEnd: 1923
    functionName: Segment_str
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Substring
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Segment_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/unicodedata.c:1929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1930
    functionName: Segment_repr
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Segment_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/unicodedata.c:1972,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/unicodedata.c:1973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:1974,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/unicodedata.c:1975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:1976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1969
    functionDepth: 0
    functionLinenumber: 1969
    functionLinenumberEnd: 1977
    functionName: GBI_dealloc
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void GBI_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/unicodedata.c:1982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1979
    functionDepth: 1
    functionLinenumber: 1979
    functionLinenumberEnd: 1984
    functionName: GBI_traverse
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int GBI_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NextGraphemeBreak
      Src: /src/cpython/Modules/unicodedata.c:1991,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/unicodedata.c:1996,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/unicodedata.c:1996,1
    - Dst: get_unicodedata_state
      Src: /src/cpython/Modules/unicodedata.c:1997,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/unicodedata.c:1998,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/unicodedata.c:2003,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/unicodedata.c:2006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1986
    functionDepth: 2
    functionLinenumber: 1986
    functionLinenumberEnd: 2008
    functionName: GBI_iternext
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _Py_NextGraphemeBreak
    - get_unicodedata_state
    - PyType_GetModule
    - Py_NewRef
    - Py_TYPE
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      GBI_iternext(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_unicodedata_state
      Src: /src/cpython/Modules/unicodedata.c:2050,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/unicodedata.c:2051,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/unicodedata.c:2057,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Modules/unicodedata.c:2058,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/unicodedata.c:2059,1
    - Dst: _Py_InitGraphemeBreak
      Src: /src/cpython/Modules/unicodedata.c:2060,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/unicodedata.c:2061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - module
    - unistr
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2045
    functionDepth: 2
    functionLinenumber: 2045
    functionLinenumberEnd: 2063
    functionName: unicodedata_iter_graphemes_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_INCREF
    - _Py_InitGraphemeBreak
    - get_unicodedata_state
    - PyUnicode_GET_LENGTH
    - ADJUST_INDICES
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_iter_graphemes_impl(PyObject *module, PyObject
      *unistr,\n                                Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:2090,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:2095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2096
    functionName: unicodedata_block_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_block_impl(PyObject *module, int chr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:2112,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:2113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2107
    functionDepth: 1
    functionLinenumber: 2107
    functionLinenumberEnd: 2114
    functionName: unicodedata_grapheme_cluster_break_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _getrecord_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_grapheme_cluster_break_impl(PyObject *module, int chr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:2130,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/unicodedata.c:2131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2132
    functionName: unicodedata_indic_conjunct_break_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _getrecord_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_indic_conjunct_break_impl(PyObject *module, int chr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/cpython/Modules/unicodedata.c:2149,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/unicodedata.c:2150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2144
    functionDepth: 1
    functionLinenumber: 2144
    functionLinenumberEnd: 2151
    functionName: unicodedata_extended_pictographic_impl
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getrecord_ex
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_extended_pictographic_impl(PyObject *module, int chr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/unicodedata.c:2191,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/unicodedata.c:2192,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/unicodedata.c:2193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:2194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2188
    functionDepth: 0
    functionLinenumber: 2188
    functionLinenumberEnd: 2195
    functionName: ucd_dealloc
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ucd_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicodedata_state
      Src: /src/cpython/Modules/unicodedata.c:2227,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/unicodedata.c:2228,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/unicodedata.c:2229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2224
    functionDepth: 2
    functionLinenumber: 2224
    functionLinenumberEnd: 2231
    functionName: unicodedata_traverse
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - get_unicodedata_state
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int unicodedata_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicodedata_state
      Src: /src/cpython/Modules/unicodedata.c:2236,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/unicodedata.c:2237,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/unicodedata.c:2238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2233
    functionDepth: 2
    functionLinenumber: 2233
    functionLinenumberEnd: 2240
    functionName: unicodedata_clear
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - get_unicodedata_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int unicodedata_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicodedata_clear
      Src: /src/cpython/Modules/unicodedata.c:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2242
    functionDepth: 3
    functionLinenumber: 2242
    functionLinenumberEnd: 2246
    functionName: unicodedata_free
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - unicodedata_clear
    linkageType: ''
    returnType: void
    signature: void unicodedata_free(void *module)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_unicodedata_state
      Src: /src/cpython/Modules/unicodedata.c:2251,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/unicodedata.c:2253,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/unicodedata.c:2259,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/unicodedata.c:2265,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/unicodedata.c:2269,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/unicodedata.c:2274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:2275,1
    - Dst: new_previous_version
      Src: /src/cpython/Modules/unicodedata.c:2281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/unicodedata.c:2283,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/unicodedata.c:2284,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/unicodedata.c:2289,1
    - Dst: unicodedata_create_capi
      Src: /src/cpython/Modules/unicodedata.c:2289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2248
    functionDepth: 2
    functionLinenumber: 2248
    functionLinenumberEnd: 2293
    functionName: unicodedata_exec
    functionSourceFile: /src/cpython/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - get_unicodedata_state
    - PyType_FromModuleAndSpec
    - new_previous_version
    - PyModule_Add
    - Py_DECREF
    - unicodedata_create_capi
    - PyType_FromSpec
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int unicodedata_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/unicodedata.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2315
    functionDepth: 1
    functionLinenumber: 2315
    functionLinenumberEnd: 2319
    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:
    - strcmp
    - Tcl_GetVar
    - TkImaging_Init
    - Tk_MainWindow
    - Tk_Init
    - Tcl_Init
    - Tcl_StaticPackage
    linkageType: ''
    returnType: int
    signature: int Tcl_AppInit(Tcl_Interp *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:99,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:99,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts:
    - condition: (fabs(a) >= fabs(b))
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    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: 113
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 113
    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:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    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: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    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:156,1
    - Dst: dl_split
      Src: /src/cpython/Modules/mathmodule.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 163
    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:175,1
    - Dst: dl_sum
      Src: /src/cpython/Modules/mathmodule.c:176,1
    - Dst: dl_sum
      Src: /src/cpython/Modules/mathmodule.c:177,1
    - Dst: dl_sum
      Src: /src/cpython/Modules/mathmodule.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - total
    argTypes:
    - double
    - double
    - TripleLength
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 180
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - total
    argTypes:
    - TripleLength
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    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: 221
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 221
    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:228,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:228,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:229,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:229,1
    - Dst: round
      Src: /src/cpython/Modules/mathmodule.c:230,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:231,1
    - Dst: sin
      Src: /src/cpython/Modules/mathmodule.c:234,1
    - Dst: cos
      Src: /src/cpython/Modules/mathmodule.c:237,1
    - Dst: sin
      Src: /src/cpython/Modules/mathmodule.c:242,1
    - Dst: cos
      Src: /src/cpython/Modules/mathmodule.c:245,1
    - Dst: sin
      Src: /src/cpython/Modules/mathmodule.c:248,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/mathmodule.c:251,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: (isfinite(x))
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (0 <= n && n <= 4)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 254
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 254
    functionName: m_sinpi
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fmod
    - copysign
    - fabs
    - sin
    - round
    - isfinite
    - Py_UNREACHABLE
    - cos
    - assert
    linkageType: ''
    returnType: double
    signature: double m_sinpi(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: (x > 0.0)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 378
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 378
    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:387,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:388,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:398,1
    - Dst: floor
      Src: /src/cpython/Modules/mathmodule.c:402,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:410,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:415,1
    - Dst: m_sinpi
      Src: /src/cpython/Modules/mathmodule.c:425,1
    - Dst: m_sinpi
      Src: /src/cpython/Modules/mathmodule.c:449,1
    - Dst: exp
      Src: /src/cpython/Modules/mathmodule.c:449,1
    - Dst: lanczos_sum
      Src: /src/cpython/Modules/mathmodule.c:449,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:452,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:455,1
    - Dst: lanczos_sum
      Src: /src/cpython/Modules/mathmodule.c:461,1
    - Dst: exp
      Src: /src/cpython/Modules/mathmodule.c:461,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:464,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:467,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:472,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 475
    functionName: m_tgamma
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - floor
    - copysign
    - fabs
    - exp
    - isinf
    - isfinite
    - pow
    - m_sinpi
    - isnan
    - lanczos_sum
    linkageType: ''
    returnType: double
    signature: double m_tgamma(double x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:489,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:490,1
    - Dst: floor
      Src: /src/cpython/Modules/mathmodule.c:497,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:507,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:510,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:516,1
    - Dst: lanczos_sum
      Src: /src/cpython/Modules/mathmodule.c:516,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:517,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:520,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:520,1
    - Dst: m_sinpi
      Src: /src/cpython/Modules/mathmodule.c:520,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:520,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:521,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 524
    functionName: m_lgamma
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - floor
    - log
    - fabs
    - isinf
    - isfinite
    - m_sinpi
    - isnan
    - lanczos_sum
    linkageType: ''
    returnType: double
    signature: double m_lgamma(double x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:534,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:534,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:541,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:542,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:543,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:600,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:601,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:603,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:607,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:610,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:613,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:616,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:616,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts:
    - condition: (m == c)
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (isinf(y))
      pos:
        line_end: 615
        line_start: 615
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 618
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 618
    functionName: m_remainder
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fmod
    - copysign
    - fabs
    - isinf
    - isfinite
    - isnan
    - assert
    linkageType: ''
    returnType: double
    signature: double m_remainder(double x, double y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:631,1
    - Dst: log
      Src: /src/cpython/Modules/mathmodule.c:633,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:640,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 648
    functionName: m_log
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - isnan
    - log
    - isfinite
    linkageType: ''
    returnType: double
    signature: double m_log(double x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:663,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:664,1
    - Dst: log2
      Src: /src/cpython/Modules/mathmodule.c:675,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 685
    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:690,1
    - Dst: log10
      Src: /src/cpython/Modules/mathmodule.c:692,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:699,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 707
    functionName: m_log10
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - isnan
    - log10
    - isfinite
    linkageType: ''
    returnType: double
    signature: double m_log10(double x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:718,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:721,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:745,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:748,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mathmodule.c:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - x
    - raise_edom
    argTypes:
    - double
    - int
    assertStmts:
    - condition: (errno)
      pos:
        line_end: 717
        line_start: 717
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 755
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 755
    functionName: is_error
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - fabs
    - PyErr_SetString
    - 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:792,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:793,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:797,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:797,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:799,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:799,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:801,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:807,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:807,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:811,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Modules/mathmodule.c:815,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:817,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:818,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:822,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - arg
    - can_overflow
    - err_msg
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 825
    functionName: math_1
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_SetString
    - PyFloat_FromDouble
    - PyOS_double_to_string
    - isinf
    - isfinite
    - isnan
    - PyErr_Occurred
    - is_error
    - PyErr_Format
    - PyMem_Free
    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:835,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:836,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:840,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:842,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:842,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Modules/mathmodule.c:843,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:845,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:846,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 852
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 852
    functionName: math_1a
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - assert
    - PyFloat_FromDouble
    - PyOS_double_to_string
    - PyErr_Occurred
    - is_error
    - PyErr_Format
    - PyMem_Free
    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:886,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:888,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:889,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:892,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:893,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:898,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:899,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:899,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:904,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:905,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:905,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:910,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:913,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - args
    - nargs
    - funcname
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 914
    functionName: math_2
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_FromDouble
    - isinf
    - isfinite
    - isnan
    - PyErr_Occurred
    - is_error
    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: 921
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 921
    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: 927
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 927
    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: 933
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 933
    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: 939
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 939
    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: 945
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 945
    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:996,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:997,1
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Modules/mathmodule.c:1000,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/mathmodule.c:1000,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1004,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:1007,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1008,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1012,1
    - Dst: ceil
      Src: /src/cpython/Modules/mathmodule.c:1012,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1013
    functionName: math_ceil
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - ceil
    - PyFloat_AS_DOUBLE
    - PyFloat_AsDouble
    - PyLong_FromDouble
    - _PyObject_MaybeCallSpecialNoArgs
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_ceil(PyObject *module, PyObject *number)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:1065,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:1066,1
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Modules/mathmodule.c:1069,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/mathmodule.c:1069,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1073,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:1076,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1077,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1081,1
    - Dst: floor
      Src: /src/cpython/Modules/mathmodule.c:1081,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1082
    functionName: math_floor
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - floor
    - PyFloat_AS_DOUBLE
    - PyFloat_AsDouble
    - PyLong_FromDouble
    - _PyObject_MaybeCallSpecialNoArgs
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_floor(PyObject *module, PyObject *number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmax
      Src: /src/cpython/Modules/mathmodule.c:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1099
    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:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1116
    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:1151,1
    - Dst: signbit
      Src: /src/cpython/Modules/mathmodule.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1152
    functionName: math_signbit_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - signbit
    - PyBool_FromLong
    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:1223,1
    - Dst: memcpy
      Src: /src/cpython/Modules/mathmodule.c:1225,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/mathmodule.c:1228,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1231,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: 1237
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1237
    functionName: _fsum_realloc
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyErr_SetString
    - memcpy
    - 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:1290,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1295,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1296,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/mathmodule.c:1299,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1301,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:1305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1306,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1311,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1311,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1324,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1329,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1330,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:1334,1
    - Dst: _fsum_realloc
      Src: /src/cpython/Modules/mathmodule.c:1340,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1349,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1352,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1364,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1364,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1364,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1388,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:1390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1394,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 90
    argCount: 2
    argNames:
    - module
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (fabs(y) < fabs(x))
      pos:
        line_end: 1363
        line_start: 1363
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: "((m == NUM_PARTIALS && p == ps) ||\n               (m >  NUM_PARTIALS
        && p != NULL))"
      pos:
        line_end: 1296
        line_start: 1295
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (0 <= n && n <= m)
      pos:
        line_end: 1294
        line_start: 1294
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 1396
      start: 1280
    functionDepth: 2
    functionLinenumber: 1280
    functionLinenumberEnd: 1396
    functionName: math_fsum
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - PyErr_SetString
    - ASSIGN_DOUBLE
    - PyFloat_FromDouble
    - isinf
    - isfinite
    - PyObject_GetIter
    - _fsum_realloc
    - isnan
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyMem_Free
    - PyIter_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fsum(PyObject *module, PyObject *seq)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:1416,1
    - Dst: tp_as_number::nb_int
      Src: /src/cpython/Modules/mathmodule.c:1417,1
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Modules/mathmodule.c:1420,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/mathmodule.c:1420,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1424,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:1425,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mathmodule.c:1427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1430
    functionName: math_trunc
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - tp_as_number::nb_int
    - _PyObject_MaybeCallSpecialNoArgs
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyErr_Format
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_trunc(PyObject *module, PyObject *x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1452,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:1452,1
    - Dst: frexp
      Src: /src/cpython/Modules/mathmodule.c:1456,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/mathmodule.c:1458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1459
    functionName: math_frexp_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - isnan
    - isinf
    - frexp
    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:1482,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:1485,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1486,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1492,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1497,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:1503,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:1507,1
    - Dst: ldexp
      Src: /src/cpython/Modules/mathmodule.c:1511,1
    - Dst: frexp
      Src: /src/cpython/Modules/mathmodule.c:1518,1
    - Dst: ldexp
      Src: /src/cpython/Modules/mathmodule.c:1522,1
    - Dst: ldexp
      Src: /src/cpython/Modules/mathmodule.c:1530,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:1533,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:1537,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1539,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - module
    - x
    - i
    argTypes:
    - PyObject*
    - double
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1474
    functionDepth: 2
    functionLinenumber: 1474
    functionLinenumberEnd: 1540
    functionName: math_ldexp_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - frexp
    - copysign
    - PyErr_SetString
    - PyFloat_FromDouble
    - isinf
    - isfinite
    - PyLong_Check
    - PyErr_Occurred
    - is_error
    - ldexp
    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:1561,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/mathmodule.c:1562,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:1562,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1563,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/mathmodule.c:1564,1
    - Dst: modf
      Src: /src/cpython/Modules/mathmodule.c:1567,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/mathmodule.c:1568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1569
    functionName: math_modf_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - modf
    - copysign
    - isinf
    - Py_BuildValue
    - isnan
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_modf_impl(PyObject *module, double x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Modules/mathmodule.c:1589,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1590,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:1595,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1596,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:1597,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:1601,1
    - Dst: _PyLong_Frexp
      Src: /src/cpython/Modules/mathmodule.c:1602,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:1603,1
    - Dst: fma
      Src: /src/cpython/Modules/mathmodule.c:1605,1
    - Dst: func
      Src: /src/cpython/Modules/mathmodule.c:1605,1
    - Dst: func
      Src: /src/cpython/Modules/mathmodule.c:1605,1
    - Dst: func
      Src: /src/cpython/Modules/mathmodule.c:1609,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1602
        line_start: 1602
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 1611
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1611
    functionName: loghelper_int
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsPositive
    - assert
    - PyErr_SetString
    - PyLong_AsDouble
    - PyFloat_FromDouble
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - _PyLong_Frexp
    - func
    - fma
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      loghelper_int(PyObject* arg, double (*func)(double))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/mathmodule.c:1617,1
    - Dst: loghelper_int
      Src: /src/cpython/Modules/mathmodule.c:1618,1
    - Dst: math_1
      Src: /src/cpython/Modules/mathmodule.c:1621,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:1623,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/mathmodule.c:1624,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:1629,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:1630,1
    - Dst: loghelper_int
      Src: /src/cpython/Modules/mathmodule.c:1634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1613
    functionDepth: 3
    functionLinenumber: 1613
    functionLinenumberEnd: 1638
    functionName: loghelper
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - math_1
    - PyLong_Check
    - PyErr_Clear
    - loghelper_int
    - PyErr_ExceptionMatches
    - _PyNumber_Index
    - Py_DECREF
    - PyIndex_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      loghelper(PyObject* arg, double (*func)(double))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/mathmodule.c:1649,1
    - Dst: loghelper
      Src: /src/cpython/Modules/mathmodule.c:1652,1
    - Dst: loghelper
      Src: /src/cpython/Modules/mathmodule.c:1656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1658,1
    - Dst: PyNumber_TrueDivide
      Src: /src/cpython/Modules/mathmodule.c:1662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1643
    functionDepth: 4
    functionLinenumber: 1643
    functionLinenumberEnd: 1666
    functionName: math_log
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyArg_CheckPositional
    - loghelper
    - PyNumber_TrueDivide
    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:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1682
    functionDepth: 4
    functionLinenumber: 1682
    functionLinenumberEnd: 1687
    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:1703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1699
    functionDepth: 4
    functionLinenumber: 1699
    functionLinenumberEnd: 1704
    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:1724,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1727,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1728,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1732,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1733,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1733,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1733,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1735,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1739,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1739,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1739,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1741,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1745,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - module
    - x
    - y
    - z
    argTypes:
    - PyObject*
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1746
    functionName: math_fma_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyErr_SetString
    - isfinite
    - isnan
    - fma
    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:1767,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1767,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1768,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:1770,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:1777,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1780,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1781,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:1781,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:1786,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:1789,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1761
    functionDepth: 2
    functionLinenumber: 1761
    functionLinenumberEnd: 1790
    functionName: math_fmod_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fmod
    - copysign
    - PyFloat_FromDouble
    - isinf
    - isfinite
    - isnan
    - is_error
    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:1903,1
    - Dst: frexp
      Src: /src/cpython/Modules/mathmodule.c:1912,1
    - Dst: vector_norm
      Src: /src/cpython/Modules/mathmodule.c:1918,1
    - Dst: ldexp
      Src: /src/cpython/Modules/mathmodule.c:1920,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1921,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1922,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1925,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:1925,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1925,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1927,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:1927,1
    - Dst: dl_mul
      Src: /src/cpython/Modules/mathmodule.c:1928,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:1929,1
    - Dst: dl_fast_sum
      Src: /src/cpython/Modules/mathmodule.c:1930,1
    - Dst: sqrt
      Src: /src/cpython/Modules/mathmodule.c:1935,1
    - Dst: dl_mul
      Src: /src/cpython/Modules/mathmodule.c:1936,1
    - Dst: dl_fast_sum
      Src: /src/cpython/Modules/mathmodule.c:1937,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: 1920
        line_start: 1920
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (max * scale < 1.0)
      pos:
        line_end: 1921
        line_start: 1921
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (isfinite(x) && fabs(x) <= max)
      pos:
        line_end: 1924
        line_start: 1924
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (fabs(x) < 1.0)
      pos:
        line_end: 1926
        line_start: 1926
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (pr.hi <= 1.0)
      pos:
        line_end: 1928
        line_start: 1928
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 1944
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1944
    functionName: vector_norm
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 1
    functionsReached:
    - frexp
    - dl_fast_sum
    - sqrt
    - fabs
    - isinf
    - isfinite
    - assert
    - vector_norm
    - dl_mul
    - ldexp
    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:1976,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/mathmodule.c:1977,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/mathmodule.c:1983,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/mathmodule.c:1984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:1987,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/mathmodule.c:1994,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/mathmodule.c:1995,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:1997,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/mathmodule.c:2002,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/mathmodule.c:2004,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/mathmodule.c:2009,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2010,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/mathmodule.c:2011,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2012,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2013,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2015,1
    - Dst: vector_norm
      Src: /src/cpython/Modules/mathmodule.c:2020,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:2022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2028,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2030,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:2034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2040,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 3
    argNames:
    - module
    - p
    - q
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 1964
    functionDepth: 2
    functionLinenumber: 1964
    functionLinenumberEnd: 2043
    functionName: math_dist_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - vector_norm
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyErr_NoMemory
    - fabs
    - PyErr_SetString
    - ASSIGN_DOUBLE
    - PyFloat_FromDouble
    - isnan
    - PyTuple_Check
    - PyMem_Malloc
    - Py_DECREF
    - PyMem_Free
    - PyTuple_GET_SIZE
    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:2078,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/mathmodule.c:2080,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2085,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2086,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2088,1
    - Dst: vector_norm
      Src: /src/cpython/Modules/mathmodule.c:2093,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:2095,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2097,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mathmodule.c:2101,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: 2104
      start: 2064
    functionDepth: 2
    functionLinenumber: 2064
    functionLinenumberEnd: 2104
    functionName: math_hypot_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - fabs
    - PyFloat_FromDouble
    - ASSIGN_DOUBLE
    - isnan
    - PyMem_Free
    - PyMem_Malloc
    - vector_norm
    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: 2117
      start: 2113
    functionDepth: 0
    functionLinenumber: 2113
    functionLinenumberEnd: 2117
    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:2149,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/mathmodule.c:2153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2155,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:2158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2161,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mathmodule.c:2164,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mathmodule.c:2165,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2169,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2170,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2171,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2172,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2174,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2175,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2176,1
    - Dst: p_next
      Src: /src/cpython/Modules/mathmodule.c:2178,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2180,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:2181,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2184,1
    - Dst: q_next
      Src: /src/cpython/Modules/mathmodule.c:2188,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2190,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:2191,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2194,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mathmodule.c:2199,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2206,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2206,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2210,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2214,1
    - Dst: _check_long_mult_overflow
      Src: /src/cpython/Modules/mathmodule.c:2218,1
    - Dst: long_add_would_overflow
      Src: /src/cpython/Modules/mathmodule.c:2222,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2227,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2228,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:2236,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/mathmodule.c:2240,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2244,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2246,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2256,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2257,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2259,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2260,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2261,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/mathmodule.c:2261,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2266,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:2267,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2268,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2269,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2272,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/mathmodule.c:2272,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2273,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/mathmodule.c:2274,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2275,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2276,1
    - Dst: tl_fma
      Src: /src/cpython/Modules/mathmodule.c:2282,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2283,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2286,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2287,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2296,1
    - Dst: tl_to_d
      Src: /src/cpython/Modules/mathmodule.c:2296,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/mathmodule.c:2300,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2304,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2306,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2312,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2313,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:2317,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/mathmodule.c:2321,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2325,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2327,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2328,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/mathmodule.c:2329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2340,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:2341,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:2342,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:2343,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/mathmodule.c:2344,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 195
    argCount: 3
    argNames:
    - module
    - p
    - q
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (q_i == NULL)
      pos:
        line_end: 2169
        line_start: 2169
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (!int_total_in_use)
      pos:
        line_end: 2311
        line_start: 2311
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (p_i == NULL)
      pos:
        line_end: 2168
        line_start: 2168
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (new_total == NULL)
      pos:
        line_end: 2171
        line_start: 2171
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (term_i == NULL)
      pos:
        line_end: 2170
        line_start: 2170
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (!flt_total_in_use)
      pos:
        line_end: 2312
        line_start: 2312
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (q_it != NULL)
      pos:
        line_end: 2174
        line_start: 2174
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (p_it != NULL)
      pos:
        line_end: 2173
        line_start: 2173
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (total != NULL)
      pos:
        line_end: 2175
        line_start: 2175
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 2346
      start: 2136
    functionDepth: 2
    functionLinenumber: 2136
    functionLinenumberEnd: 2346
    functionName: math_sumprod_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyLong_FromLong
    - PyFloat_AS_DOUBLE
    - PyFloat_FromDouble
    - PyObject_GetIter
    - PyErr_Occurred
    - q_next
    - assert
    - Py_TYPE
    - tl_to_d
    - p_next
    - PyNumber_Add
    - isfinite
    - tl_fma
    - PyFloat_CheckExact
    - Py_XDECREF
    - long_add_would_overflow
    - _check_long_mult_overflow
    - PyLong_AsDouble
    - PyLong_CheckExact
    - PyErr_Clear
    - Py_DECREF
    - PyBool_Check
    - Py_SETREF
    - Py_CLEAR
    - PyNumber_Multiply
    - PyErr_ExceptionMatches
    - PyErr_Format
    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:2375,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2375,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2377,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2379,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2381,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2382,1
    - Dst: fmod
      Src: /src/cpython/Modules/mathmodule.c:2382,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2382,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2384,1
    - Dst: copysign
      Src: /src/cpython/Modules/mathmodule.c:2388,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2391,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2391,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2392,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2394,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2396,1
    - Dst: pow
      Src: /src/cpython/Modules/mathmodule.c:2406,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2409,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2410,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2418,1
    - Dst: is_error
      Src: /src/cpython/Modules/mathmodule.c:2427,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2430,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts:
    - condition: (isinf(y))
      pos:
        line_end: 2390
        line_start: 2390
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 2431
      start: 2365
    functionDepth: 2
    functionLinenumber: 2365
    functionLinenumberEnd: 2431
    functionName: math_pow_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fmod
    - is_error
    - copysign
    - fabs
    - PyFloat_FromDouble
    - isinf
    - isfinite
    - pow
    - isnan
    - 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:2450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2451
    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:2467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2468
    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:2484,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2480
    functionDepth: 1
    functionLinenumber: 2480
    functionLinenumberEnd: 2485
    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:2501,1
    - Dst: isnormal
      Src: /src/cpython/Modules/mathmodule.c:2501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2497
    functionDepth: 1
    functionLinenumber: 2497
    functionLinenumberEnd: 2502
    functionName: math_isnormal_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - isnormal
    - PyBool_FromLong
    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:2519,1
    - Dst: issubnormal
      Src: /src/cpython/Modules/mathmodule.c:2519,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mathmodule.c:2521,1
    - Dst: isfinite
      Src: /src/cpython/Modules/mathmodule.c:2521,1
    - Dst: isnormal
      Src: /src/cpython/Modules/mathmodule.c:2521,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2514
    functionDepth: 1
    functionLinenumber: 2514
    functionLinenumberEnd: 2523
    functionName: math_issubnormal_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - issubnormal
    - isnormal
    - PyBool_FromLong
    - isfinite
    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:2539,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2535
    functionDepth: 1
    functionLinenumber: 2535
    functionLinenumberEnd: 2540
    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:2557,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2553
    functionDepth: 1
    functionLinenumber: 2553
    functionLinenumberEnd: 2558
    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:2595,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2614,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2614,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2622,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2624,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2625,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: 2627
      start: 2586
    functionDepth: 1
    functionLinenumber: 2586
    functionLinenumberEnd: 2627
    functionName: math_isclose_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - PyErr_SetString
    - isinf
    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: 2677
      start: 2629
    functionDepth: 0
    functionLinenumber: 2629
    functionLinenumberEnd: 2677
    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:2703,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/mathmodule.c:2709,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/mathmodule.c:2711,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2717,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2719,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2722,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/mathmodule.c:2727,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2729,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2730,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:2733,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2735,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2736,1
    - Dst: _check_long_mult_overflow
      Src: /src/cpython/Modules/mathmodule.c:2737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2740,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mathmodule.c:2746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2749,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:2752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2757,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2767,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2768,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2769,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/mathmodule.c:2771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2773,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2774,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2777,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2779,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/mathmodule.c:2780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2781,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2784,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/mathmodule.c:2787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2790,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2797,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:2800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2805,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/mathmodule.c:2814,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2817,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/mathmodule.c:2818,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/mathmodule.c:2822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2829,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 102
    argCount: 3
    argNames:
    - module
    - iterable
    - start
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2696
    functionDepth: 1
    functionLinenumber: 2696
    functionLinenumberEnd: 2831
    functionName: math_prod_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - Py_INCREF
    - PyLong_FromLong
    - PyFloat_AS_DOUBLE
    - _PyLong_GetOne
    - PyFloat_FromDouble
    - Py_SETREF
    - PyObject_GetIter
    - PyLong_CheckExact
    - PyNumber_Multiply
    - PyFloat_CheckExact
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - _check_long_mult_overflow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2860,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2862,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2863,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2865,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2866,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2871,1
    - Dst: nextafter
      Src: /src/cpython/Modules/mathmodule.c:2871,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/mathmodule.c:2873,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2877,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/mathmodule.c:2877,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/mathmodule.c:2878,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mathmodule.c:2879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2881,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/mathmodule.c:2885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:2889,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mathmodule.c:2895,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/mathmodule.c:2896,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/mathmodule.c:2897,1
    - Dst: assert
      Src: /src/cpython/Modules/mathmodule.c:2905,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2909,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2911,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2912,1
    - Dst: isnan
      Src: /src/cpython/Modules/mathmodule.c:2914,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2915,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2925,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2938,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2943,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2946,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2952,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2954,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2959,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:2961,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 4
    argNames:
    - module
    - x
    - y
    - steps
    argTypes:
    - PyObject*
    - double
    - double
    - PyObject*
    assertStmts:
    - condition: (PyLong_CheckExact(steps))
      pos:
        line_end: 2876
        line_start: 2876
        source_file: /src/cpython/Modules/mathmodule.c
    - condition: (usteps_ull <= UINT64_MAX)
      pos:
        line_end: 2904
        line_start: 2904
        source_file: /src/cpython/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 2964
      start: 2852
    functionDepth: 1
    functionLinenumber: 2852
    functionLinenumberEnd: 2964
    functionName: math_nextafter_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyErr_SetString
    - _PyLong_IsNegative
    - nextafter
    - PyLong_CheckExact
    - PyLong_AsUnsignedLongLong
    - PyErr_Clear
    - isnan
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_ExceptionMatches
    - PyNumber_Index
    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:2980,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:2983,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2984,1
    - Dst: nextafter
      Src: /src/cpython/Modules/mathmodule.c:2988,1
    - Dst: isinf
      Src: /src/cpython/Modules/mathmodule.c:2989,1
    - Dst: nextafter
      Src: /src/cpython/Modules/mathmodule.c:2991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2995
    functionName: math_ulp_impl
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - isnan
    - isinf
    - nextafter
    linkageType: ''
    returnType: double
    signature: double math_ulp_impl(PyObject *module, double x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:3001,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3001,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:3004,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3004,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:3008,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3008,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:3011,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3011,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:3014,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/mathmodule.c:3014,1
    - Dst: fabs
      Src: /src/cpython/Modules/mathmodule.c:3014,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/mathmodule.c:3018,1
    - Dst: IMPORT_FROM_INTMATH
      Src: /src/cpython/Modules/mathmodule.c:3030,1
    - Dst: IMPORT_FROM_INTMATH
      Src: /src/cpython/Modules/mathmodule.c:3031,1
    - Dst: IMPORT_FROM_INTMATH
      Src: /src/cpython/Modules/mathmodule.c:3032,1
    - Dst: IMPORT_FROM_INTMATH
      Src: /src/cpython/Modules/mathmodule.c:3033,1
    - Dst: IMPORT_FROM_INTMATH
      Src: /src/cpython/Modules/mathmodule.c:3034,1
    - Dst: IMPORT_FROM_INTMATH
      Src: /src/cpython/Modules/mathmodule.c:3035,1
    - Dst: _PyImport_SetModuleString
      Src: /src/cpython/Modules/mathmodule.c:3036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mathmodule.c:3037,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/mathmodule.c:3040,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3044
      start: 2997
    functionDepth: 1
    functionLinenumber: 2997
    functionLinenumberEnd: 3044
    functionName: math_exec
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - _PyImport_SetModuleString
    - fabs
    - PyFloat_FromDouble
    - PyModule_Add
    - Py_DECREF
    - IMPORT_FROM_INTMATH
    linkageType: ''
    returnType: int
    signature: int math_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: 3029
      start: 3022
    functionDepth: 0
    functionLinenumber: 3022
    functionLinenumberEnd: 3029
    functionName: IMPORT_FROM_INTMATH
    functionSourceFile: /src/cpython/Modules/mathmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPORT_FROM_INTMATH(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/mathmodule.c:3130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3127
    functionDepth: 1
    functionLinenumber: 3127
    functionLinenumberEnd: 3131
    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:
    - PyUnicode_FromWideChar
    - _Py_abspath
    - PyErr_SetString
    - _Py_normpath
    - PyMem_RawFree
    - PyMem_Free
    - PyArg_ParseTuple
    - 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:
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - Py_GetConstant
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - PyArg_ParseTuple
    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
    - PyUnicode_AsWideCharString
    - PyMem_Free
    - PyArg_ParseTuple
    - Py_XNewRef
    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:
    - wcsicmp
    - PyMem_Free
    - PyArg_ParseTuple
    - PyUnicode_AsWideCharString
    - Py_NewRef
    - wcscmp
    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:
    - S_ISDIR
    - Py_XNewRef
    - _Py_wstat
    - GetFileAttributesW
    - PyMem_Free
    - PyArg_ParseTuple
    - 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:
    - S_ISREG
    - Py_XNewRef
    - _Py_wstat
    - GetFileAttributesW
    - PyMem_Free
    - PyArg_ParseTuple
    - 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:
    - S_ISREG
    - Py_XNewRef
    - _Py_wstat
    - GetFileAttributesW
    - PyMem_Free
    - PyArg_ParseTuple
    - PyUnicode_AsWideCharString
    - CompareStringOrdinal
    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_GetConstant
    - PyUnicode_FromWideChar
    - PyTuple_GET_ITEM
    - PyErr_NoMemory
    - PyErr_SetString
    - wcscpy
    - _Py_normpath
    - PyUnicode_Check
    - _Py_isabs
    - memset
    - _Py_add_relfile
    - PyTuple_Check
    - PyMem_Malloc
    - PyMem_Free
    - PyTuple_GET_SIZE
    - PyUnicode_AsWideCharString
    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:
    - fread
    - wcschr
    - PyErr_NoMemory
    - PyMem_RawFree
    - PyList_New
    - PyMem_Free
    - PyList_Append
    - PyMem_Malloc
    - PyArg_ParseTuple
    - Py_XDECREF
    - _Py_DecodeUTF8_surrogateescape
    - PyUnicode_FromWideChar
    - PyErr_SetString
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - _Py_wfopen
    - fclose
    - Py_CLEAR
    - PyErr_SetFromErrno
    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:
    - GetFinalPathNameByHandleW
    - _Py_wreadlink
    - S_ISLNK
    - _Py_join_relfile
    - _Py_wrealpath
    - _Py_isabs
    - GetLastError
    - CompareStringOrdinal
    - PyErr_SetFromWindowsErr
    - PyErr_NoMemory
    - Py_EncodeLocale
    - _Py_normpath
    - PyMem_RawFree
    - PyMem_Free
    - _PyMem_RawWcsdup
    - PyArg_ParseTuple
    - PyUnicode_FromWideChar
    - Py_ARRAY_LENGTH
    - PyErr_SetString
    - GetFileAttributesW
    - CloseHandle
    - CreateFileW
    - wcsncmp
    - PyUnicode_AsWideCharString
    - Py_NewRef
    - lstat
    - PyErr_SetFromErrno
    - wcsrchr
    - wcslen
    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:
    - PyArg_ParseTuple
    - fprintf
    - PyUnicode_AsUTF8
    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:
    - Py_DECREF
    - PyDict_SetItemString
    - PyCFunction_NewEx
    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:
    - PyUnicode_FromWideChar
    - PyDict_SetItemString
    - Py_DECREF
    - Py_NewRef
    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:
    - PyUnicode_FromWideChar
    - PyMem_RawFree
    - PyDict_SetItemString
    - Py_DecodeLocale
    - Py_DECREF
    - Py_NewRef
    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:
    - PyUnicode_FromWideChar
    - _wputenv_s
    - unsetenv
    - getenv
    - strncmp
    - _wgetenv
    - PyMem_RawFree
    - PyDict_SetItemString
    - PyErr_Clear
    - strlen
    - assert
    - Py_DecodeLocale
    - Py_DECREF
    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:
    - PyMem_RawFree
    - PyMem_RawMalloc
    - wchar_to_dict
    - GetModuleFileNameW
    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:
    - winmodule_to_dict
    - PyMem_RawFree
    - PyDict_SetItemString
    - PyMem_RawMalloc
    - _NSGetExecutablePath
    - decode_to_dict
    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:
    - PyDict_SetItemString
    - winmodule_to_dict
    - decode_to_dict
    - dladdr
    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:
    - PyImport_ImportModule
    - _PyStatus_OK
    - wchar_to_dict
    - _PyThreadState_GET
    - int_to_dict
    - PyStatus_Error
    - _PyStatus_EXCEPTION
    - PyDict_SetItemString
    - PyErr_FormatUnraisable
    - Py_XDECREF
    - library_to_dict
    - funcs_to_dict
    - _PyConfig_AsDict
    - PyErr_Clear
    - PyEval_GetBuiltins
    - Py_DECREF
    - _Py_Get_Getpath_CodeObject
    - PyDict_New
    - PyEval_EvalCode
    - PyCode_Check
    - PyStatus_NoMemory
    - env_to_dict
    - _PyPathConfig_GetGlobalModuleSearchPath
    - progname_to_dict
    - _PyConfig_FromDict
    - _PyPathConfig_ReadGlobal
    - decode_to_dict
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    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:50,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/_interpretersmodule.c:54,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:55,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: _get_current_module
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - PyImport_GetModule
    - 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:67,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    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:85,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_interpretersmodule.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: is_notshareable_raised
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyXIData_GetNotShareableErrorType
    - _PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int is_notshareable_raised(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_UnwrapNotShareableError
      Src: /src/cpython/Modules/_interpretersmodule.c:92,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tstate
    - failure
    argTypes:
    - PyThreadState*
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: unwrap_not_shareable
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyXI_UnwrapNotShareableError
    - _PyErr_Clear
    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:143,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_interpretersmodule.c:145,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Modules/_interpretersmodule.c:152,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:154,1
    - Dst: PyObject_Init
      Src: /src/cpython/Modules/_interpretersmodule.c:157,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: 142
        line_start: 142
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 164
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 164
    functionName: xibufferview_from_buffer
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Init
    - PyObject_Malloc
    - PyMem_RawFree
    - 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:172,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:175,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:176,1
    - Dst: _PyBuffer_ReleaseInInterpreterAndRawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:179,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:183,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_interpretersmodule.c:188,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_interpretersmodule.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 197
    functionName: xibufferview_dealloc
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpID
    - PyMem_RawFree
    - PyErr_Clear
    - PyTypeObject*::tp_free
    - Py_DECREF
    - _PyBuffer_ReleaseInInterpreterAndRawFree
    - 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: 211
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 211
    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:240,1
    - Dst: _PyXIData_DATA
      Src: /src/cpython/Modules/_interpretersmodule.c:240,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:241,1
    - Dst: _PyXIData_OBJ
      Src: /src/cpython/Modules/_interpretersmodule.c:241,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:242,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpretersmodule.c:242,1
    - Dst: _PyXIData_DATA
      Src: /src/cpython/Modules/_interpretersmodule.c:243,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:244,1
    - Dst: _get_current_xibufferview_type
      Src: /src/cpython/Modules/_interpretersmodule.c:246,1
    - Dst: xibufferview_from_buffer
      Src: /src/cpython/Modules/_interpretersmodule.c:251,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Modules/_interpretersmodule.c:252,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_interpretersmodule.c:256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (_PyXIData_DATA(data) != NULL)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (_PyXIData_OBJ(data) == NULL)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (_PyXIData_INTERPID(data) >= 0)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!view->used)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 263
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 263
    functionName: _memoryview_from_xid
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_xibufferview_type
    - _PyXIData_OBJ
    - xibufferview_from_buffer
    - _PyXIData_DATA
    - _PyXIData_INTERPID
    - assert
    - Py_DECREF
    - PyMemoryView_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _memoryview_from_xid(_PyXIData_t *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_interpretersmodule.c:270,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 273
    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:278,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_interpretersmodule.c:285,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_interpretersmodule.c:286,1
    - Dst: _PyXIData_Init
      Src: /src/cpython/Modules/_interpretersmodule.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tstate
    - obj
    - data
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 294
    functionName: _pybuffer_shared
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyMem_RawMalloc
    - PyObject_GetBuffer
    - _PyXIData_Init
    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:300,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_interpretersmodule.c:301,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_interpretersmodule.c:306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:307,1
    - Dst: ensure_xid_class
      Src: /src/cpython/Modules/_interpretersmodule.c:313,1
    - Dst: GETDATA
      Src: /src/cpython/Modules/_interpretersmodule.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mod
    - p_state
    argTypes:
    - PyObject*
    - PyTypeObject**
    assertStmts:
    - condition: (*p_state == NULL)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 319
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 319
    functionName: register_memoryview_xid
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddType
    - PyType_FromModuleAndSpec
    - assert
    - Py_DECREF
    - GETDATA
    - ensure_xid_class
    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:335,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_interpretersmodule.c:336,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (state != NULL)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 339
    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:344,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_interpretersmodule.c:346,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: _get_current_module_state
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - get_module_state
    - PyImport_ImportModule
    - _get_current_module
    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:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - visit
    - arg
    argTypes:
    - module_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 363
    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:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 372
    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:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 383
    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:392,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:393,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:398,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:401,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_interpretersmodule.c:404,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - PyInterpreterConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 413
    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:419,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:423,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_interpretersmodule.c:424,1
    - Dst: init_named_config
      Src: /src/cpython/Modules/_interpretersmodule.c:428,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_interpretersmodule.c:433,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:435,1
    - Dst: _PyInterpreterConfig_InitFromDict
      Src: /src/cpython/Modules/_interpretersmodule.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - configobj
    - config
    argTypes:
    - PyObject*
    - PyInterpreterConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 445
    functionName: config_from_object
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - init_named_config
    - _PyInterpreterConfig_InitFromDict
    - PyErr_Format
    - PyObject_GetAttrString
    - Py_DECREF
    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:463,1
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:466,1
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - call
    argTypes:
    - struct interp_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 472
    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:479,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:480,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:481,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:483,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:484,1
    - Dst: _PyFunction_GetXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:488,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:489,1
    - Dst: _PyPickle_GetXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:490,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:494,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:502,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:502,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_interpretersmodule.c:503,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:504,1
    - Dst: _interp_call_clear
      Src: /src/cpython/Modules/_interpretersmodule.c:507,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:518,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:518,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_interpretersmodule.c:519,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:520,1
    - Dst: _interp_call_clear
      Src: /src/cpython/Modules/_interpretersmodule.c:523,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->kwargs == NULL)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (call->args == NULL)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (call->func == NULL)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (PyDict_Check(kwargs))
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 530
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 530
    functionName: _interp_call_pack
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - _interp_call_clear
    - _PyObject_GetXIData
    - PyCallable_Check
    - _PyFunction_GetXIData
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - PyDict_Check
    - PyTuple_Check
    - assert
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _PyPickle_GetXIData
    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:535,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:538,1
    - Dst: strlen
      Src: /src/cpython/Modules/_interpretersmodule.c:538,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:539,1
    - Dst: _PyXIData_FormatNotShareableError
      Src: /src/cpython/Modules/_interpretersmodule.c:540,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:541,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Modules/_interpretersmodule.c:542,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:543,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: 537
        line_start: 537
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 544
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 544
    functionName: wrap_notshareable
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - is_notshareable_raised
    - _PyXIData_FormatNotShareableError
    - PyException_SetCause
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - strlen
    - assert
    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:550,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpretersmodule.c:553,1
    - Dst: wrap_notshareable
      Src: /src/cpython/Modules/_interpretersmodule.c:555,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_interpretersmodule.c:561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:563,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpretersmodule.c:568,1
    - Dst: wrap_notshareable
      Src: /src/cpython/Modules/_interpretersmodule.c:570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:571,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:574,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:574,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_interpretersmodule.c:579,1
    - Dst: wrap_notshareable
      Src: /src/cpython/Modules/_interpretersmodule.c:581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:583,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:586,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:586,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: 573
        line_start: 573
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (PyDict_Check(kwargs))
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 592
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 592
    functionName: _interp_call_unpack
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Get
    - wrap_notshareable
    - PyDict_Check
    - PyTuple_Check
    - assert
    - Py_DECREF
    - _PyXIData_NewObject
    - PyTuple_New
    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:598,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_interpretersmodule.c:599,1
    - Dst: _interp_call_unpack
      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: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:606,1
    - Dst: _PyXI_InitFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:607,1
    - Dst: unwrap_not_shareable
      Src: /src/cpython/Modules/_interpretersmodule.c:608,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:611,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:611,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_interpretersmodule.c:614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:615,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:616,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:617,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: 597
        line_start: 597
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (args == NULL)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (func == NULL)
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (kwargs == NULL)
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 623
      start: 594
    functionDepth: 4
    functionLinenumber: 594
    functionLinenumberEnd: 623
    functionName: _make_call
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - unwrap_not_shareable
    - _interp_call_unpack
    - _PyXI_InitFailure
    - _PyErr_Occurred
    - PyObject_Call
    - _PyThreadState_GET
    - Py_XDECREF
    - assert
    - Py_DECREF
    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:628,1
    - Dst: _PyXI_InitFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:630,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Modules/_interpretersmodule.c:633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:634,1
    - Dst: _PyXI_InitFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:636,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:640,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: 638
        line_start: 638
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 642
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 642
    functionName: _run_script
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyXI_InitFailure
    - assert
    - Py_DECREF
    - _PyXIData_NewObject
    - PyEval_EvalCode
    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:652,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_interpretersmodule.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runres
    argTypes:
    - struct run_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 654
    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:661,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:661,1
    - Dst: _PyXI_NewFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:663,1
    - Dst: _PyXI_NewSession
      Src: /src/cpython/Modules/_interpretersmodule.c:667,1
    - Dst: _PyXI_FreeFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:669,1
    - Dst: _PyXI_Enter
      Src: /src/cpython/Modules/_interpretersmodule.c:675,1
    - Dst: _PyXI_FreeSession
      Src: /src/cpython/Modules/_interpretersmodule.c:678,1
    - Dst: _PyXI_FreeFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:679,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:680,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:686,1
    - Dst: _PyXI_GetMainNamespace
      Src: /src/cpython/Modules/_interpretersmodule.c:687,1
    - Dst: _run_script
      Src: /src/cpython/Modules/_interpretersmodule.c:691,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:694,1
    - Dst: _make_call
      Src: /src/cpython/Modules/_interpretersmodule.c:696,1
    - Dst: _PyXI_Preserve
      Src: /src/cpython/Modules/_interpretersmodule.c:698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:699,1
    - Dst: _PyXI_Exit
      Src: /src/cpython/Modules/_interpretersmodule.c:709,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:710,1
    - Dst: _PyXI_FreeSession
      Src: /src/cpython/Modules/_interpretersmodule.c:711,1
    - Dst: _PyXI_FreeFailure
      Src: /src/cpython/Modules/_interpretersmodule.c:712,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:715,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:717,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:720,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_interpretersmodule.c:721,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:725,1
    - Dst: _PyXI_GetPreserved
      Src: /src/cpython/Modules/_interpretersmodule.c:726,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:727,1
    - Dst: _PyXI_ClearResult
      Src: /src/cpython/Modules/_interpretersmodule.c:731,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: (call == NULL)
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (res == 0 || exitres != 0)
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (result.excinfo == NULL)
      pos:
        line_end: 724
        line_start: 724
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 660
        line_start: 660
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (result.excinfo == NULL)
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (res < 0)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (result.excinfo != NULL)
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (call != NULL)
      pos:
        line_end: 693
        line_start: 693
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 733
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 733
    functionName: _run_in_interpreter
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyXI_FreeFailure
    - _PyXI_NewSession
    - _run_script
    - _PyXI_Preserve
    - _PyXI_Exit
    - _PyXI_GetMainNamespace
    - _make_call
    - _PyErr_Occurred
    - _PyXI_Enter
    - _PyXI_FreeSession
    - _PyXI_GetPreserved
    - _PyXI_ClearResult
    - assert
    - Py_DECREF
    - Py_NewRef
    - _PyXI_NewFailure
    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:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 742
    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:750,1
    - Dst: look_up_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:753,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:759,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:761,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:765,1
    - Dst: get_whence
      Src: /src/cpython/Modules/_interpretersmodule.c:771,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:773,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:777,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - idobj
    - restricted
    - reqready
    - op
    argTypes:
    - PyObject*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 784
    functionName: resolve_interp
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - get_whence
    - look_up_interp
    - PyInterpreterState_Get
    - PyErr_Format
    - _PyInterpreterState_IsReady
    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:790,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_interpretersmodule.c:794,1
    - Dst: get_whence
      Src: /src/cpython/Modules/_interpretersmodule.c:795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:797,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_interpretersmodule.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 801
    functionName: get_summary
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - get_whence
    - PyLong_FromLong
    - _PyInterpreterState_GetIDObject
    - Py_DECREF
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_summary(PyInterpreterState *interp)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_interpretersmodule.c:809,1
    - Dst: init_named_config
      Src: /src/cpython/Modules/_interpretersmodule.c:816,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_interpretersmodule.c:820,1
    - Dst: _PyInterpreterConfig_UpdateFromDict
      Src: /src/cpython/Modules/_interpretersmodule.c:821,1
    - Dst: _PyInterpreterConfig_AsDict
      Src: /src/cpython/Modules/_interpretersmodule.c:826,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Modules/_interpretersmodule.c:831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:832,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 834
    functionName: interp_new_config
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterConfig_AsDict
    - init_named_config
    - _PyInterpreterConfig_UpdateFromDict
    - _PyNamespace_New
    - PyArg_ParseTuple
    - PyDict_GET_SIZE
    - Py_DECREF
    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:872,1
    - Dst: _PyXI_NewInterpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:878,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_interpretersmodule.c:881,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:882,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpretersmodule.c:883,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_interpretersmodule.c:884,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:887,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:887,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Modules/_interpretersmodule.c:889,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:891,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Modules/_interpretersmodule.c:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - module
    - configobj
    - reqrefs
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (_PyInterpreterState_IsReady(interp))
      pos:
        line_end: 886
        line_start: 886
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 901
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 901
    functionName: _interpreters_create_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetIDObject
    - PyErr_SetString
    - _PyErr_ChainExceptions1
    - PyErr_GetRaisedException
    - _PyInterpreterState_IsReady
    - assert
    - _PyInterpreterState_RequireIDRef
    - config_from_object
    - _PyXI_EndInterpreter
    - _PyXI_NewInterpreter
    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:923,1
    - Dst: _get_current_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpretersmodule.c:934,1
    - Dst: is_running_main
      Src: /src/cpython/Modules/_interpretersmodule.c:942,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_interpretersmodule.c:943,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - id
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 951
    functionName: _interpreters_destroy_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - resolve_interp
    - PyErr_SetString
    - _get_current_interp
    - PyErr_Format
    - _PyXI_EndInterpreter
    - 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:966,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Modules/_interpretersmodule.c:971,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:973,1
    - Dst: get_summary
      Src: /src/cpython/Modules/_interpretersmodule.c:974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:976,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_interpretersmodule.c:981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_interpretersmodule.c:984,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Modules/_interpretersmodule.c:988,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - module
    - reqready
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 962
    functionDepth: 3
    functionLinenumber: 962
    functionLinenumberEnd: 992
    functionName: _interpreters_list_all_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - get_summary
    - PyInterpreterState_Next
    - PyInterpreterState_Head
    - PyList_New
    - _PyInterpreterState_IsReady
    - PyList_Insert
    - Py_DECREF
    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:1005,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1009,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:1009,1
    - Dst: get_summary
      Src: /src/cpython/Modules/_interpretersmodule.c:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_IsReady(interp))
      pos:
        line_end: 1008
        line_start: 1008
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1011
      start: 1001
    functionDepth: 3
    functionLinenumber: 1001
    functionLinenumberEnd: 1011
    functionName: _interpreters_get_current_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _get_current_interp
    - get_summary
    - _PyInterpreterState_IsReady
    - 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:1024,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1025,1
    - Dst: _PyInterpreterState_IsReady
      Src: /src/cpython/Modules/_interpretersmodule.c:1025,1
    - Dst: get_summary
      Src: /src/cpython/Modules/_interpretersmodule.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_IsReady(interp))
      pos:
        line_end: 1024
        line_start: 1024
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1027
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1027
    functionName: _interpreters_get_main_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    - get_summary
    - _PyInterpreterState_IsReady
    - 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:1048,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_interpretersmodule.c:1054,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpretersmodule.c:1059,1
    - Dst: _PyXI_NewSession
      Src: /src/cpython/Modules/_interpretersmodule.c:1064,1
    - Dst: _PyXI_Enter
      Src: /src/cpython/Modules/_interpretersmodule.c:1070,1
    - Dst: _PyXI_FreeSession
      Src: /src/cpython/Modules/_interpretersmodule.c:1071,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1076,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1076,1
    - Dst: _PyXI_Exit
      Src: /src/cpython/Modules/_interpretersmodule.c:1077,1
    - Dst: _PyXI_FreeSession
      Src: /src/cpython/Modules/_interpretersmodule.c:1078,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1079,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1082,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_interpretersmodule.c:1083,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: 1075
        line_start: 1075
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (res == 0)
      pos:
        line_end: 1078
        line_start: 1078
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1089
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1089
    functionName: _interpreters_set___main___attrs_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyXI_NewSession
    - _PyXI_Exit
    - resolve_interp
    - PyDict_Size
    - PyErr_SetString
    - _PyXI_Enter
    - _PyXI_FreeSession
    - PyErr_Occurred
    - assert
    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:1095,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1097,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1097,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1100,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - runres
    argTypes:
    - struct run_result*
    assertStmts:
    - condition: (runres->result == NULL)
      pos:
        line_end: 1094
        line_start: 1094
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1099
        line_start: 1099
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1102
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1102
    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:1133,1
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1136,1
    - Dst: _PyCode_GetScriptXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:1144,1
    - Dst: unwrap_not_shareable
      Src: /src/cpython/Modules/_interpretersmodule.c:1145,1
    - Dst: _run_in_interpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:1150,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpretersmodule.c:1152,1
    - Dst: _handle_script_error
      Src: /src/cpython/Modules/_interpretersmodule.c:1154,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1156,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: 1155
        line_start: 1155
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1158
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1158
    functionName: _interpreters_exec_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - resolve_interp
    - unwrap_not_shareable
    - _handle_script_error
    - _PyThreadState_GET
    - _run_in_interpreter
    - _PyCode_GetScriptXIData
    - assert
    - _PyXIData_Release
    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:1180,1
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1183,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1188,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1188,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_interpretersmodule.c:1189,1
    - Dst: _PyCode_GetScriptXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:1194,1
    - Dst: unwrap_not_shareable
      Src: /src/cpython/Modules/_interpretersmodule.c:1195,1
    - Dst: _run_in_interpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:1200,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpretersmodule.c:1202,1
    - Dst: _handle_script_error
      Src: /src/cpython/Modules/_interpretersmodule.c:1204,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1206,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: 1205
        line_start: 1205
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1209
      start: 1173
    functionDepth: 3
    functionLinenumber: 1173
    functionLinenumberEnd: 1209
    functionName: _interpreters_run_string_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyFunction_Check
    - resolve_interp
    - unwrap_not_shareable
    - _handle_script_error
    - _PyArg_BadArgument
    - _PyThreadState_GET
    - _run_in_interpreter
    - _PyCode_GetScriptXIData
    - assert
    - _PyXIData_Release
    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:1234,1
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1237,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1245,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_interpretersmodule.c:1246,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_interpretersmodule.c:1248,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_interpretersmodule.c:1252,1
    - Dst: _PyCode_GetScriptXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:1257,1
    - Dst: unwrap_not_shareable
      Src: /src/cpython/Modules/_interpretersmodule.c:1258,1
    - Dst: _run_in_interpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:1263,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_interpretersmodule.c:1265,1
    - Dst: _handle_script_error
      Src: /src/cpython/Modules/_interpretersmodule.c:1267,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1269,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: 1268
        line_start: 1268
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1272
      start: 1228
    functionDepth: 3
    functionLinenumber: 1228
    functionLinenumberEnd: 1272
    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
    - _handle_script_error
    - _PyArg_BadArgument
    - _PyThreadState_GET
    - _run_in_interpreter
    - _PyCode_GetScriptXIData
    - assert
    - _PyXIData_Release
    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:1295,1
    - Dst: resolve_interp
      Src: /src/cpython/Modules/_interpretersmodule.c:1298,1
    - Dst: _interp_call_pack
      Src: /src/cpython/Modules/_interpretersmodule.c:1304,1
    - Dst: _run_in_interpreter
      Src: /src/cpython/Modules/_interpretersmodule.c:1310,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1312,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1312,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1315,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_interpretersmodule.c:1315,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1317,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_interpretersmodule.c:1318,1
    - Dst: _interp_call_clear
      Src: /src/cpython/Modules/_interpretersmodule.c:1323,1
    - Dst: _run_result_clear
      Src: /src/cpython/Modules/_interpretersmodule.c:1324,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: 1311
        line_start: 1311
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/cpython/Modules/_interpretersmodule.c
    - condition: (runres.result == NULL || runres.excinfo == NULL)
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1326
      start: 1289
    functionDepth: 3
    functionLinenumber: 1289
    functionLinenumberEnd: 1326
    functionName: _interpreters_call_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _interp_call_clear
    - resolve_interp
    - _interp_call_pack
    - _PyErr_Occurred
    - Py_BuildValue
    - _run_result_clear
    - _PyThreadState_GET
    - _run_in_interpreter
    - 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:1341,1
    - Dst: _PyObject_CheckXIData
      Src: /src/cpython/Modules/_interpretersmodule.c:1342,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_interpretersmodule.c:1345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1347
    functionName: _interpreters_is_shareable_impl
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CheckXIData
    - _PyThreadState_GET
    - PyErr_Clear
    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:1365,1
    - Dst: is_running_main
      Src: /src/cpython/Modules/_interpretersmodule.c:1370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - id
    - restricted
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1359
    functionDepth: 3
    functionLinenumber: 1359
    functionLinenumberEnd: 1374
    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:
    - resolve_interp
    - _PyInterpreterConfig_AsDict
    - _PyInterpreterConfig_InitFromState
    - _PyNamespace_New
    - Py_DECREF
    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
    - PyLong_FromLong
    - look_up_interp
    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_IDIncref
    - resolve_interp
    - _PyInterpreterState_RequireIDRef
    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:
    - _PyXI_ExcInfoAsObject
    - _PyXI_FreeExcInfo
    - _PyXI_FormatExcInfo
    - _PyXI_NewExcInfo
    - Py_CLEAR
    - _PyErr_ChainExceptions1
    - PyObject_SetAttrString
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_GetRaisedException
    - 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:
    - get_module_state
    - register_memoryview_xid
    - ADD_WHENCE
    - _PyThreadState_GET
    - _PyXIData_GetNotShareableErrorType
    - PyModule_AddType
    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:1647,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1648,1
    - Dst: traverse_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1647
        line_start: 1647
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1650
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1650
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - traverse_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:1655,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1656,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1655
        line_start: 1655
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1658
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1658
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 6
    functionsReached:
    - get_module_state
    - clear_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:1663,1
    - Dst: assert
      Src: /src/cpython/Modules/_interpretersmodule.c:1664,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_interpretersmodule.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1663
        line_start: 1663
        source_file: /src/cpython/Modules/_interpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1666
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1666
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_interpretersmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - clear_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:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1684
    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_SetString
    - PyLong_AsLong
    - PyCompile_OpcodeStackEffectWithJump
    - PyErr_Occurred
    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:
    - OPCODE_HAS_ARG
    - IS_VALID_OPCODE
    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_BLOCK_PUSH_OPCODE
    - IS_VALID_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:
    - ADD_NB_OP
    - PyList_GET_ITEM
    - PyList_New
    - PyErr_Format
    - Py_DECREF
    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:
    - Py_DECREF
    - PyList_SET_ITEM
    - PyList_New
    - _PyCompile_GetUnaryIntrinsicName
    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:
    - Py_DECREF
    - PyList_SET_ITEM
    - _PyCompile_GetBinaryIntrinsicName
    - PyList_New
    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:
    - Py_DECREF
    - PyList_SET_ITEM
    - PyList_New
    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:
    - PyCode_Check
    - _Py_GetExecutor
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_get_executor_impl(PyObject *module, PyObject *code, int offset)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_opcode.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 427
    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: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__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_gitversion
    - PyOS_snprintf
    - _Py_gitidentifier
    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:
    - PyLong_FromLong
    - PyStructSequence_New
    - doubletime
    - PyErr_SetString
    - getrusage
    - PyFloat_FromDouble
    - get_resource_state
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetFromErrno
    - PyStructSequence_SetItem
    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:
    - PyErr_WarnEx
    - PyErr_SetString
    - PyLong_AsNativeBytes
    - assert
    - Py_DECREF
    - PyLong_IsNegative
    - PyNumber_Index
    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:
    - PyTuple_Size
    - PySequence_Tuple
    - PyErr_SetString
    - PyTuple_GetItem
    - Py_DECREF
    - 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:
    - PyErr_SetString
    - getrlimit
    - rlimit2py
    - PyErr_SetFromErrno
    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:
    - PySys_Audit
    - PyErr_SetString
    - py2rlimit
    - PyErr_SetFromErrno
    - setrlimit
    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:
    - PySys_Audit
    - PyErr_SetString
    - py2rlimit
    - rlimit2py
    - PyErr_SetFromErrno
    - 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:
    - PyStructSequence_NewType
    - get_resource_state
    - rlim2py
    - PyModule_Add
    - PyModule_AddObjectRef
    - PyModule_AddType
    - ADD_INT
    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:572,1
    - Dst: get_resource_state
      Src: /src/cpython/Modules/resource.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 574
    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:578,1
    - Dst: get_resource_state
      Src: /src/cpython/Modules/resource.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: resourcemodule_clear
    functionSourceFile: /src/cpython/Modules/resource.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_resource_state
    linkageType: ''
    returnType: int
    signature: int resourcemodule_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resourcemodule_clear
      Src: /src/cpython/Modules/resource.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 585
    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:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 602
    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:354,1
    - Dst: GetVersionEx
      Src: /src/cpython/Modules/socketmodule.c:360,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:361,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:366,1
    - Dst: VER_SET_CONDITION
      Src: /src/cpython/Modules/socketmodule.c:373,1
    - Dst: VER_SET_CONDITION
      Src: /src/cpython/Modules/socketmodule.c:374,1
    - Dst: VER_SET_CONDITION
      Src: /src/cpython/Modules/socketmodule.c:375,1
    - Dst: VerifyVersionInfo
      Src: /src/cpython/Modules/socketmodule.c:383,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/socketmodule.c:399,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 406
    functionName: remove_unusable_flags
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - VER_SET_CONDITION
    - PyModule_GetDict
    - memset
    - GetVersionEx
    - VerifyVersionInfo
    - PyDict_PopString
    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: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    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: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    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: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    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: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    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: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    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: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    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: 485
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 485
    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: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    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: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    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: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    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: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    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: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    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: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    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: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    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:570,1
    - Dst: _Py_atomic_store_long_relaxed
      Src: /src/cpython/Modules/socketmodule.c:572,1
    - Dst: _Py_atomic_store_llong_relaxed
      Src: /src/cpython/Modules/socketmodule.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - PySocketSockObject*
    - SOCKET_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 578
    functionName: set_sock_fd
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_int_relaxed
    - _Py_atomic_store_llong_relaxed
    - _Py_atomic_store_long_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:584,1
    - Dst: _Py_atomic_load_long_relaxed
      Src: /src/cpython/Modules/socketmodule.c:586,1
    - Dst: _Py_atomic_load_llong_relaxed
      Src: /src/cpython/Modules/socketmodule.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - PySocketSockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 592
    functionName: get_sock_fd
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_llong_relaxed
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_load_long_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: 595
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 595
    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:599,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 602
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 602
    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:609,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:610,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: find_module_state_by_def
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyType_GetModuleByDef
    - assert
    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: 633
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 633
    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: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 680
    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: 685
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 685
    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: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 696
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 704
    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: 712
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 712
    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: 715
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 715
    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: 720
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 720
    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: 725
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 725
    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:736,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:741,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 745
    functionName: set_error
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 6
    functionsReached:
    - WSAGetLastError
    - PyErr_SetFromErrno
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_error(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:755,1
    - Dst: hstrerror
      Src: /src/cpython/Modules/socketmodule.c:755,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:757,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/socketmodule.c:760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - h_error
    argTypes:
    - socket_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 765
    functionName: set_herror
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetObject
    - hstrerror
    - Py_BuildValue
    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:778,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:782,1
    - Dst: gai_strerror
      Src: /src/cpython/Modules/socketmodule.c:782,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:784,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/socketmodule.c:787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - error
    argTypes:
    - socket_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 792
    functionName: set_gaierror
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - gai_strerror
    - Py_BuildValue
    - set_error
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_gaierror(socket_state *state, int error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:813,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:813,1
    - Dst: fcntl
      Src: /src/cpython/Modules/socketmodule.c:816,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:816,1
    - Dst: fcntl
      Src: /src/cpython/Modules/socketmodule.c:824,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:824,1
    - Dst: ioctlsocket
      Src: /src/cpython/Modules/socketmodule.c:829,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:829,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:840,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:842,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/socketmodule.c:842,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 2
    argNames:
    - s
    - block
    argTypes:
    - PySocketSockObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 844
    functionName: internal_setblocking
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - ioctl
    - WSAGetLastError
    - fcntl
    - get_sock_fd
    - ioctlsocket
    - PyErr_SetExcFromWindowsErr
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int internal_setblocking(PySocketSockObject *s, int block)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Modules/socketmodule.c:863,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:866,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:869,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:875,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/socketmodule.c:886,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:901,1
    - Dst: poll
      Src: /src/cpython/Modules/socketmodule.c:904,1
    - Dst: _PyTime_AsTimeval_clamp
      Src: /src/cpython/Modules/socketmodule.c:908,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/socketmodule.c:914,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/socketmodule.c:915,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:915,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/socketmodule.c:916,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/socketmodule.c:922,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:922,1
    - Dst: select
      Src: /src/cpython/Modules/socketmodule.c:928,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/socketmodule.c:928,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:928,1
    - Dst: select
      Src: /src/cpython/Modules/socketmodule.c:931,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/socketmodule.c:931,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:931,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: 865
        line_start: 865
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (INT_MIN <= ms && ms <= INT_MAX)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 941
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 941
    functionName: internal_select
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - FD_ZERO
    - get_sock_fd
    - Py_SAFE_DOWNCAST
    - FD_SET
    - _PyTime_AsTimeval_clamp
    - assert
    - _Py_AssertHoldsTstate
    - select
    - poll
    - _PyTime_AsMilliseconds
    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:977,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/socketmodule.c:990,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/socketmodule.c:994,1
    - Dst: internal_select
      Src: /src/cpython/Modules/socketmodule.c:999,1
    - Dst: internal_select
      Src: /src/cpython/Modules/socketmodule.c:1006,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:1013,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/socketmodule.c:1015,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:1026,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1034,1
    - Dst: sock_func
      Src: /src/cpython/Modules/socketmodule.c:1045,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:1058,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/socketmodule.c:1062,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:1072,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:1072,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:1085,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: 1089
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 1089
    functionName: sock_call_ex
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sock_func
    - _PyDeadline_Init
    - PyErr_CheckSignals
    - _PyDeadline_Get
    - PyErr_SetString
    - 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: 1053
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1053
    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:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - writing
    - data
    argTypes:
    - PySocketSockObject*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1098
    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:1107,1
    - Dst: _Py_atomic_load_int64_relaxed
      Src: /src/cpython/Modules/socketmodule.c:1134,1
    - Dst: internal_setblocking
      Src: /src/cpython/Modules/socketmodule.c:1136,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: 1143
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1143
    functionName: init_sockobject
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_sock_fd
    - internal_setblocking
    - _Py_atomic_load_int64_relaxed
    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:1157,1
    - Dst: init_sockobject
      Src: /src/cpython/Modules/socketmodule.c:1161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1162,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: 1166
      start: 1152
    functionDepth: 3
    functionLinenumber: 1152
    functionLinenumberEnd: 1166
    functionName: new_sockobject
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - init_sockobject
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    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:1191,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1194,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1199,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:1207,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1220,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1221,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1226,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1227,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:1233,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1234,1
    - Dst: strcmp
      Src: /src/cpython/Modules/socketmodule.c:1239,1
    - Dst: strcmp
      Src: /src/cpython/Modules/socketmodule.c:1240,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1243,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1248,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1262,1
    - Dst: inet_pton
      Src: /src/cpython/Modules/socketmodule.c:1263,1
    - Dst: strchr
      Src: /src/cpython/Modules/socketmodule.c:1275,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1277,1
    - Dst: inet_pton
      Src: /src/cpython/Modules/socketmodule.c:1278,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1291,1
    - Dst: inet_addr
      Src: /src/cpython/Modules/socketmodule.c:1292,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1303,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1306,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1312,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:1318,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:1323,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:1324,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1333,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: 1336
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1336
    functionName: setipaddr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - getaddrinfo
    - set_gaierror
    - strcmp
    - PyErr_SetString
    - inet_pton
    - inet_addr
    - strchr
    - memset
    - memcpy
    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:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1209
    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:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1315
    functionDepth: 2
    functionLinenumber: 1315
    functionLinenumberEnd: 1320
    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:1345,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:1346,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:1349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1350
    functionName: make_ipv4_addr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetFromErrno
    - inet_ntop
    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:1359,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:1360,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:1363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1364
    functionName: make_ipv6_addr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetFromErrno
    - inet_ntop
    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:1379,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - name
    - bdaddr
    argTypes:
    - char*
    - bdaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1404
    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:1421,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/socketmodule.c:1425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bdaddr
    argTypes:
    - bdaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1429
    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:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1436
    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:1457,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1460,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:1460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1461,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:1473,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/socketmodule.c:1479,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1488,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1496,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1504,1
    - Dst: make_ipv6_addr
      Src: /src/cpython/Modules/socketmodule.c:1512,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1515,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:1517,1
    - Dst: ntohl
      Src: /src/cpython/Modules/socketmodule.c:1518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1520,1
    - Dst: makebdaddr
      Src: /src/cpython/Modules/socketmodule.c:1534,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1534,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1538,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1539,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1541,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1542,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1543,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1547,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1548,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1550,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1551,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1555,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1559,1
    - Dst: makebdaddr
      Src: /src/cpython/Modules/socketmodule.c:1569,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1569,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1572,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1575,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1586,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1587,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1587,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1590,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1591,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1592,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1596,1
    - Dst: strnlen
      Src: /src/cpython/Modules/socketmodule.c:1597,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1597,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:1598,1
    - Dst: makebdaddr
      Src: /src/cpython/Modules/socketmodule.c:1600,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1600,1
    - Dst: makebdaddr
      Src: /src/cpython/Modules/socketmodule.c:1609,1
    - Dst: _BT_SCO_MEMB
      Src: /src/cpython/Modules/socketmodule.c:1609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1614,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:1629,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1632,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:1634,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1647,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1654,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1661,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1668,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:1684,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1692,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1701,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1710,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1723,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1727,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1737,1
    - Dst: strnlen
      Src: /src/cpython/Modules/socketmodule.c:1739,1
    - Dst: strnlen
      Src: /src/cpython/Modules/socketmodule.c:1742,1
    - Dst: UuidToStringW
      Src: /src/cpython/Modules/socketmodule.c:1755,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: UuidToStringW
      Src: /src/cpython/Modules/socketmodule.c:1764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1766,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:1767,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/socketmodule.c:1770,1
    - Dst: RpcStringFreeW
      Src: /src/cpython/Modules/socketmodule.c:1771,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:1772,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1774,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:1783,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: 1771
        line_start: 1771
        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: 1789
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1789
    functionName: makesockaddr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    - assert
    - _BT_HCI_MEMB
    - PyUnicode_DecodeFSDefault
    - PyUnicode_FromStringAndSize
    - _BT_SCO_MEMB
    - ntohl
    - makebdaddr
    - _BT_L2_MEMB
    - PyErr_SetFromWindowsErr
    - RpcStringFreeW
    - make_ipv6_addr
    - UuidToStringW
    - _BT_RC_MEMB
    - strnlen
    - ioctl
    - PyUnicode_FromWideChar
    - PyErr_SetString
    - Py_DECREF
    - ntohs
    - make_ipv4_addr
    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:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct maybe_idna*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1803
    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:1812,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:1817,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/socketmodule.c:1818,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/socketmodule.c:1819,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/socketmodule.c:1821,1
    - Dst: PyByteArray_AsString
      Src: /src/cpython/Modules/socketmodule.c:1822,1
    - Dst: PyByteArray_Size
      Src: /src/cpython/Modules/socketmodule.c:1823,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:1825,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Modules/socketmodule.c:1826,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/socketmodule.c:1827,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/socketmodule.c:1828,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/socketmodule.c:1831,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1833,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:1836,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:1836,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:1838,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:1839,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:1843,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:1844,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:1847,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:1848,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1849,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyBytes_Check(obj2))
      pos:
        line_end: 1835
        line_start: 1835
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 1853
      start: 1805
    functionDepth: 2
    functionLinenumber: 1805
    functionLinenumberEnd: 1853
    functionName: idna_converter
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - assert
    - Py_TYPE
    - PyUnicode_DATA
    - PyUnicode_Check
    - PyByteArray_AsString
    - PyUnicode_IS_COMPACT_ASCII
    - strlen
    - idna_cleanup
    - PyBytes_AS_STRING
    - PyUnicode_AsEncodedString
    - PyErr_SetString
    - PyByteArray_Size
    - PyBytes_AsString
    - PyBytes_GET_SIZE
    - PyBytes_Size
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyByteArray_Check
    linkageType: ''
    returnType: int
    signature: int idna_converter(PyObject *obj, void *arg)
  - BBCount: 110
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:1874,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Modules/socketmodule.c:1875,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/socketmodule.c:1879,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:1880,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1881,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:1884,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1887,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1894,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:1906,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:1916,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:1920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:1921,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1931,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:1932,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:1933,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:1936,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:1939,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1959,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:1960,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:1961,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:1965,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:1968,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:1983,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:1984,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:1985,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:1989,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:1992,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2019,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2020,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2023,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2026,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:2031,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:2031,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/socketmodule.c:2032,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2033,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2039,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:2040,1
    - Dst: idna_cleanup
      Src: /src/cpython/Modules/socketmodule.c:2042,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2046,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:2052,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2064,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2065,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2068,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2071,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:2077,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:2077,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/socketmodule.c:2078,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2079,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2085,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:2086,1
    - Dst: idna_cleanup
      Src: /src/cpython/Modules/socketmodule.c:2088,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2092,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2098,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:2104,1
    - Dst: htonl
      Src: /src/cpython/Modules/socketmodule.c:2105,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2122,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2123,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2128,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2132,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2136,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2139,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2141,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2146,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2147,1
    - Dst: setbdaddr
      Src: /src/cpython/Modules/socketmodule.c:2149,1
    - Dst: _BT_L2_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2149,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2160,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2161,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2169,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2171,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2175,1
    - Dst: setbdaddr
      Src: /src/cpython/Modules/socketmodule.c:2177,1
    - Dst: _BT_RC_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2177,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2187,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2188,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/socketmodule.c:2192,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2193,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2197,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2198,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2202,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2203,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2206,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2207,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:2212,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2212,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2213,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2217,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2217,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2218,1
    - Dst: setbdaddr
      Src: /src/cpython/Modules/socketmodule.c:2220,1
    - Dst: _BT_HCI_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2220,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2234,1
    - Dst: _BT_SCO_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2235,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:2237,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2238,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:2242,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2243,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2248,1
    - Dst: setbdaddr
      Src: /src/cpython/Modules/socketmodule.c:2252,1
    - Dst: _BT_SCO_MEMB
      Src: /src/cpython/Modules/socketmodule.c:2252,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2260,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2277,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2281,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2287,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:2293,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:2293,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/socketmodule.c:2294,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2295,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2300,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2302,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2302,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:2303,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:2304,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2308,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:2310,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2314,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:2317,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2321,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:2323,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:2328,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:2334,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2345,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2346,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2349,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2353,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2362,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2380,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2408,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2410,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2413,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2416,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:2424,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2429,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:2429,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2431,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2431,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:2432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2433,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2447,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2461,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2463,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:2469,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2474,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:2474,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2476,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2476,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:2477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2494,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2509,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2511,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:2518,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2523,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:2523,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2525,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2525,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:2526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2527,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2544,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2549,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2562,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:2566,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:2570,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:2575,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2578,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2581,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:2581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:2583,1
    - Dst: ioctl
      Src: /src/cpython/Modules/socketmodule.c:2585,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:2585,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2586,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2593,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2595,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2606,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2618,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2621,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2622,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2624,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2627,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:2637,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2638,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2641,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:2642,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2643,1
    - Dst: strncpy
      Src: /src/cpython/Modules/socketmodule.c:2646,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:2663,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:2666,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2667,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:2669,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:2672,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/socketmodule.c:2679,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2681,1
    - Dst: UuidFromStringW
      Src: /src/cpython/Modules/socketmodule.c:2686,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:2687,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2689,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/socketmodule.c:2695,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2697,1
    - Dst: UuidFromStringW
      Src: /src/cpython/Modules/socketmodule.c:2702,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:2703,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2705,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2715,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:2726,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: (PyErr_Occurred())
      pos:
        line_end: 2292
        line_start: 2292
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (path.len >= 0)
      pos:
        line_end: 1883
        line_start: 1883
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2030
        line_start: 2030
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2076
        line_start: 2076
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 2730
      start: 1860
    functionDepth: 4
    functionLinenumber: 1860
    functionLinenumberEnd: 2730
    functionName: getsockaddrarg
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - htons
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - PyArg_Parse
    - PySocketSockObject*::errorhandler
    - memcpy
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - _BT_HCI_MEMB
    - Py_TYPE
    - _BT_SCO_MEMB
    - _BT_L2_MEMB
    - strncpy
    - PyUnicode_Check
    - _BT_RC_MEMB
    - setipaddr
    - strlen
    - idna_cleanup
    - PyArg_ParseTuple
    - setbdaddr
    - PyBytes_AS_STRING
    - PyMem_Free
    - PyIndex_Check
    - ioctl
    - UuidFromStringW
    - Py_INCREF
    - PyErr_SetString
    - htonl
    - Py_DECREF
    - PyBytes_GET_SIZE
    - PyUnicode_AsWideCharString
    - get_sock_fd
    - PyBuffer_Release
    - memset
    - PyErr_ExceptionMatches
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int getsockaddrarg(PySocketSockObject *s, PyObject *args,\n               sock_addr_t
      *addrbuf, int *len_ret, const char *caller)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2826,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2867,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:2890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 2
    argNames:
    - s
    - len_ret
    argTypes:
    - PySocketSockObject*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2738
    functionDepth: 1
    functionLinenumber: 2738
    functionLinenumberEnd: 2894
    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:2913,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:2915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - length
    - result
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2908
    functionDepth: 0
    functionLinenumber: 2908
    functionLinenumberEnd: 2920
    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:2932,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:2934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - length
    - result
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2925
    functionDepth: 0
    functionLinenumber: 2925
    functionLinenumberEnd: 2939
    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: 2981
      start: 2945
    functionDepth: 0
    functionLinenumber: 2945
    functionLinenumberEnd: 2981
    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:2993,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: 3000
      start: 2987
    functionDepth: 0
    functionLinenumber: 2987
    functionLinenumberEnd: 3000
    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:3014,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:3014,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:3015,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:3017,1
    - Dst: get_cmsg_data_space
      Src: /src/cpython/Modules/socketmodule.c:3018,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: 3026
      start: 3009
    functionDepth: 1
    functionLinenumber: 3009
    functionLinenumberEnd: 3026
    functionName: get_cmsg_data_len
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_cmsg_data_space
    - cmsg_min_space
    - CMSG_LEN
    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:3042,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3055,1
    - Dst: accept4
      Src: /src/cpython/Modules/socketmodule.c:3056,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3056,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3058,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3060,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3063,1
    - Dst: accept
      Src: /src/cpython/Modules/socketmodule.c:3064,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3064,1
    - Dst: accept
      Src: /src/cpython/Modules/socketmodule.c:3066,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3066,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3038
    functionDepth: 1
    functionLinenumber: 3038
    functionLinenumberEnd: 3074
    functionName: sock_accept_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - SAS2SA
    - accept4
    - _Py_atomic_store_int_relaxed
    - accept
    - _Py_atomic_load_int_relaxed
    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:3081,1
    - Dst: getsockaddrlen
      Src: /src/cpython/Modules/socketmodule.c:3090,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:3092,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:3094,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:3095,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:3101,1
    - Dst: SetHandleInformation
      Src: /src/cpython/Modules/socketmodule.c:3110,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:3111,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:3112,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:3119,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/socketmodule.c:3122,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:3123,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/socketmodule.c:3129,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:3131,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:3135,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3135,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3135,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/socketmodule.c:3140,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:3143,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:3144,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3146
      start: 3078
    functionDepth: 4
    functionLinenumber: 3078
    functionLinenumberEnd: 3146
    functionName: sock_accept
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - _PySocketSockObject_CAST
    - _Py_set_inheritable
    - get_sock_fd
    - makesockaddr
    - SAS2SA
    - select_error
    - IS_SELECTABLE
    - PyLong_FromSocket_t
    - getsockaddrlen
    - memset
    - SOCKETCLOSE
    - Py_XDECREF
    - _PyTuple_FromPairSteal
    - _Py_atomic_load_int_relaxed
    - sock_call
    - SetHandleInformation
    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:3167,1
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3171,1
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/socketmodule.c:3172,1
    - Dst: internal_setblocking
      Src: /src/cpython/Modules/socketmodule.c:3173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3162
    functionDepth: 2
    functionLinenumber: 3162
    functionLinenumberEnd: 3177
    functionName: sock_setblocking
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - internal_setblocking
    - PyObject_IsTrue
    - _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:3193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3190
    functionDepth: 1
    functionLinenumber: 3190
    functionLinenumberEnd: 3200
    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:3220,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/socketmodule.c:3224,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3229,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/socketmodule.c:3234,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/cpython/Modules/socketmodule.c:3237,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - timeout
    - timeout_obj
    argTypes:
    - PyTime_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3208
    functionDepth: 1
    functionLinenumber: 3208
    functionLinenumberEnd: 3247
    functionName: socket_parse_timeout
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - _PyTime_FromSecondsObject
    - PyErr_SetString
    - _PyTime_AsTimeval
    - _PyTime_AsMilliseconds
    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:3260,1
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3263,1
    - Dst: internal_setblocking
      Src: /src/cpython/Modules/socketmodule.c:3288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3255
    functionDepth: 2
    functionLinenumber: 3255
    functionLinenumberEnd: 3292
    functionName: sock_settimeout
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - socket_parse_timeout
    - internal_setblocking
    - _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:3307,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/socketmodule.c:3312,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/socketmodule.c:3313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3304
    functionDepth: 1
    functionLinenumber: 3304
    functionLinenumberEnd: 3315
    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:3320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3317
    functionDepth: 2
    functionLinenumber: 3317
    functionLinenumberEnd: 3321
    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:3326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3327
      start: 3323
    functionDepth: 2
    functionLinenumber: 3323
    functionLinenumberEnd: 3327
    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:3348,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:3359,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/socketmodule.c:3365,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3367,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3372,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/socketmodule.c:3380,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3381,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:3387,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3391,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3391,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/socketmodule.c:3398,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:3399,1
    - Dst: WSAIoctl
      Src: /src/cpython/Modules/socketmodule.c:3405,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3405,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3413,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3413,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:3420,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3421,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3421,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/socketmodule.c:3427,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:3428,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:3433,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3434,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3439,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3439,1
    - Dst: setsockopt
      Src: /src/cpython/Modules/socketmodule.c:3442,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3442,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:3444,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:3448,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3455,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: 3419
        line_start: 3419
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 3459
      start: 3345
    functionDepth: 1
    functionLinenumber: 3345
    functionLinenumberEnd: 3459
    functionName: sock_setsockopt
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - _PySocketSockObject_CAST
    - get_sock_fd
    - setsockopt
    - PyArg_Parse
    - PySocketSockObject*::errorhandler
    - PyBuffer_Release
    - WSAIoctl
    - PyErr_Format
    - assert
    - PyArg_ParseTuple
    - PyIndex_Check
    - PyObject_CheckBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_setsockopt(PyObject *self, PyObject *args)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3479,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:3488,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_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:3501,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:3506,1
    - Dst: getsockopt
      Src: /src/cpython/Modules/socketmodule.c:3510,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3510,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3513,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:3514,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3518,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:3524,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/socketmodule.c:3528,1
    - Dst: getsockopt
      Src: /src/cpython/Modules/socketmodule.c:3532,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3532,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/socketmodule.c:3533,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/socketmodule.c:3535,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3536,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/socketmodule.c:3538,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3476
    functionDepth: 1
    functionLinenumber: 3476
    functionLinenumberEnd: 3539
    functionName: sock_getsockopt
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PySocketSockObject_CAST
    - PyBytesWriter_GetData
    - get_sock_fd
    - PyBytesWriter_Create
    - PyErr_SetString
    - PySocketSockObject*::errorhandler
    - getsockopt
    - PyBytesWriter_Discard
    - PyBytesWriter_FinishWithSize
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getsockopt(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3555,1
    - Dst: getsockaddrarg
      Src: /src/cpython/Modules/socketmodule.c:3561,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:3565,1
    - Dst: bind
      Src: /src/cpython/Modules/socketmodule.c:3570,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3570,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3570,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - addro
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3552
    functionDepth: 5
    functionLinenumber: 3552
    functionLinenumberEnd: 3575
    functionName: sock_bind
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - get_sock_fd
    - PySys_Audit
    - SAS2SA
    - getsockaddrarg
    - PySocketSockObject*::errorhandler
    - bind
    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:3606,1
    - Dst: set_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3608,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:3615,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - PySocketSockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3624
      start: 3599
    functionDepth: 1
    functionLinenumber: 3599
    functionLinenumberEnd: 3624
    functionName: _socket_socket_close_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - set_sock_fd
    - SOCKETCLOSE
    - PySocketSockObject*::errorhandler
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _socket_socket_close_impl(PySocketSockObject *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3629,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3630,1
    - Dst: set_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3631,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/socketmodule.c:3632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3633
      start: 3626
    functionDepth: 1
    functionLinenumber: 3626
    functionLinenumberEnd: 3633
    functionName: sock_detach
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - set_sock_fd
    - PyLong_FromSocket_t
    - _PySocketSockObject_CAST
    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:3649,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3649,1
    - Dst: SET_SOCK_ERROR
      Src: /src/cpython/Modules/socketmodule.c:3658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(data)
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3643
    functionDepth: 1
    functionLinenumber: 3643
    functionLinenumberEnd: 3662
    functionName: sock_connect_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - getsockopt
    - SET_SOCK_ERROR
    linkageType: ''
    returnType: int
    signature: int sock_connect_impl(PySocketSockObject *s, void* Py_UNUSED(data))
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/cpython/Modules/socketmodule.c:3683,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3683,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:3695,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/socketmodule.c:3696,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:3709,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:3713,1
    - Dst: SET_SOCK_ERROR
      Src: /src/cpython/Modules/socketmodule.c:3719,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3720,1
    - Dst: sock_call_ex
      Src: /src/cpython/Modules/socketmodule.c:3729,1
    - Dst: sock_call_ex
      Src: /src/cpython/Modules/socketmodule.c:3735,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: 3740
      start: 3676
    functionDepth: 3
    functionLinenumber: 3676
    functionLinenumberEnd: 3740
    functionName: internal_connect
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - PyErr_CheckSignals
    - sock_call_ex
    - PySocketSockObject*::errorhandler
    - IS_SELECTABLE
    - connect
    - CHECK_ERRNO
    - SET_SOCK_ERROR
    linkageType: ''
    returnType: int
    signature: "int internal_connect(PySocketSockObject *s, struct sockaddr *addr,
      int addrlen,\n                 int raise)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3747,1
    - Dst: getsockaddrarg
      Src: /src/cpython/Modules/socketmodule.c:3753,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:3757,1
    - Dst: internal_connect
      Src: /src/cpython/Modules/socketmodule.c:3761,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3761,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:3763,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:3763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - addro
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3762
        line_start: 3762
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 3768
      start: 3744
    functionDepth: 5
    functionLinenumber: 3744
    functionLinenumberEnd: 3768
    functionName: sock_connect
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - PySys_Audit
    - internal_connect
    - getsockaddrarg
    - SAS2SA
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_connect(PyObject *self, PyObject *addro)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3782,1
    - Dst: getsockaddrarg
      Src: /src/cpython/Modules/socketmodule.c:3788,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:3792,1
    - Dst: internal_connect
      Src: /src/cpython/Modules/socketmodule.c:3796,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3796,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:3797,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:3801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - addro
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3779
    functionDepth: 5
    functionLinenumber: 3779
    functionLinenumberEnd: 3802
    functionName: sock_connect_ex
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PySocketSockObject_CAST
    - PySys_Audit
    - internal_connect
    - getsockaddrarg
    - SAS2SA
    - PyErr_Occurred
    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:3817,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/socketmodule.c:3818,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3819
      start: 3814
    functionDepth: 1
    functionLinenumber: 3814
    functionLinenumberEnd: 3819
    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:3833,1
    - Dst: getsockaddrlen
      Src: /src/cpython/Modules/socketmodule.c:3839,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:3841,1
    - Dst: getsockname
      Src: /src/cpython/Modules/socketmodule.c:3843,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3843,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3843,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3846,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:3847,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3847,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3849
      start: 3830
    functionDepth: 3
    functionLinenumber: 3830
    functionLinenumberEnd: 3849
    functionName: sock_getsockname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - get_sock_fd
    - makesockaddr
    - SAS2SA
    - PySocketSockObject*::errorhandler
    - getsockaddrlen
    - memset
    - getsockname
    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:3867,1
    - Dst: getsockaddrlen
      Src: /src/cpython/Modules/socketmodule.c:3873,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:3875,1
    - Dst: getpeername
      Src: /src/cpython/Modules/socketmodule.c:3877,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3877,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3877,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3880,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:3881,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3881,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:3881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3883
      start: 3864
    functionDepth: 3
    functionLinenumber: 3864
    functionLinenumberEnd: 3883
    functionName: sock_getpeername
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - get_sock_fd
    - makesockaddr
    - SAS2SA
    - getpeername
    - PySocketSockObject*::errorhandler
    - getsockaddrlen
    - memset
    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:3900,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/socketmodule.c:3903,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:3906,1
    - Dst: listen
      Src: /src/cpython/Modules/socketmodule.c:3914,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3914,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:3917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3919
      start: 3897
    functionDepth: 1
    functionLinenumber: 3897
    functionLinenumberEnd: 3919
    functionName: sock_listen
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - listen
    - get_sock_fd
    - PySocketSockObject*::errorhandler
    - Py_MIN
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_listen(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/cpython/Modules/socketmodule.c:3945,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3945,1
    - Dst: recv
      Src: /src/cpython/Modules/socketmodule.c:3947,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:3947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3950
      start: 3937
    functionDepth: 1
    functionLinenumber: 3937
    functionLinenumberEnd: 3950
    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:3967,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:3968,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:3979,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: 3983
      start: 3962
    functionDepth: 4
    functionLinenumber: 3962
    functionLinenumberEnd: 3983
    functionName: sock_recv_guts
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sock_call
    - select_error
    - IS_SELECTABLE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sock_recv_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t
      len, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:3991,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:3996,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4000,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/socketmodule.c:4006,1
    - Dst: sock_recv_guts
      Src: /src/cpython/Modules/socketmodule.c:4012,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/socketmodule.c:4012,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/socketmodule.c:4016,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/socketmodule.c:4020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 3988
    functionDepth: 5
    functionLinenumber: 3988
    functionLinenumberEnd: 4021
    functionName: sock_recv
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - PyBytesWriter_GetData
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - sock_recv_guts
    - PyBytesWriter_FinishWithSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recv(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4038,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/socketmodule.c:4046,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4053,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4054,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4065,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4066,1
    - Dst: sock_recv_guts
      Src: /src/cpython/Modules/socketmodule.c:4072,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4075,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4079,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:4082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4083
      start: 4034
    functionDepth: 5
    functionLinenumber: 4034
    functionLinenumberEnd: 4083
    functionName: sock_recv_into
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - PyErr_SetString
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - sock_recv_guts
    - PyArg_ParseTupleAndKeywords
    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:4109,1
    - Dst: recvfrom
      Src: /src/cpython/Modules/socketmodule.c:4114,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4114,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4115,1
    - Dst: recvfrom
      Src: /src/cpython/Modules/socketmodule.c:4117,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4117,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4121
      start: 4104
    functionDepth: 1
    functionLinenumber: 4104
    functionLinenumberEnd: 4121
    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:4145,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:4148,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4149,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:4158,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:4161,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4161,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4161,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: 4167
      start: 4135
    functionDepth: 4
    functionLinenumber: 4135
    functionLinenumberEnd: 4167
    functionName: sock_recvfrom_guts
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - makesockaddr
    - SAS2SA
    - select_error
    - IS_SELECTABLE
    - getsockaddrlen
    - sock_call
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4174,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4180,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4184,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/socketmodule.c:4189,1
    - Dst: sock_recvfrom_guts
      Src: /src/cpython/Modules/socketmodule.c:4194,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/socketmodule.c:4194,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/socketmodule.c:4197,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/socketmodule.c:4201,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/socketmodule.c:4206,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4211
      start: 4171
    functionDepth: 5
    functionLinenumber: 4171
    functionLinenumberEnd: 4211
    functionName: sock_recvfrom
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - PyBytesWriter_GetData
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - Py_XDECREF
    - PyBytesWriter_FinishWithSize
    - PyArg_ParseTuple
    - sock_recvfrom_guts
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvfrom(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4225,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/socketmodule.c:4234,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4242,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4243,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4252,1
    - Dst: sock_recvfrom_guts
      Src: /src/cpython/Modules/socketmodule.c:4257,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4259,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4261,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4265,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:4268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4269
      start: 4221
    functionDepth: 5
    functionLinenumber: 4221
    functionLinenumberEnd: 4269
    functionName: sock_recvfrom_into
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - PyErr_SetString
    - PyBuffer_Release
    - Py_BuildValue
    - Py_XDECREF
    - PyArg_ParseTupleAndKeywords
    - sock_recvfrom_guts
    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:4291,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4293
      start: 4286
    functionDepth: 1
    functionLinenumber: 4286
    functionLinenumberEnd: 4293
    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:4326,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:4328,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4329,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4332,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/socketmodule.c:4336,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:4337,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:4340,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4341,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4345,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:4354,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:4358,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/cpython/Modules/socketmodule.c:4362,1
    - Dst: CMSG_NXTHDR
      Src: /src/cpython/Modules/socketmodule.c:4363,1
    - Dst: get_cmsg_data_len
      Src: /src/cpython/Modules/socketmodule.c:4367,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/socketmodule.c:4369,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4377,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:4381,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:4381,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:4383,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:4387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:4388,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:4396,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:4400,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4400,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4400,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4408,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:4409,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/cpython/Modules/socketmodule.c:4415,1
    - Dst: CMSG_NXTHDR
      Src: /src/cpython/Modules/socketmodule.c:4416,1
    - Dst: get_cmsg_data_len
      Src: /src/cpython/Modules/socketmodule.c:4417,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:4426,1
    - Dst: close
      Src: /src/cpython/Modules/socketmodule.c:4428,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: 4435
      start: 4305
    functionDepth: 4
    functionLinenumber: 4305
    functionLinenumberEnd: 4435
    functionName: sock_recvmsg_guts
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - CMSG_NXTHDR
    - CMSG_DATA
    - PyBytes_FromStringAndSize
    - select_error
    - IS_SELECTABLE
    - Py_BuildValue
    - close
    - PyErr_NoMemory
    - makesockaddr
    - getsockaddrlen
    - CMSG_FIRSTHDR
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - PyMem_Malloc
    - PyMem_Free
    - PyErr_WarnEx
    - PyErr_SetString
    - Py_DECREF
    - sock_call
    - get_cmsg_data_len
    - get_sock_fd
    - SAS2SA
    - memset
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/socketmodule.c:4442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - received
    - data
    argTypes:
    - ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4445
      start: 4438
    functionDepth: 1
    functionLinenumber: 4438
    functionLinenumberEnd: 4445
    functionName: makeval_recvmsg
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_FinishWithSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makeval_recvmsg(ssize_t received, void *data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4454,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4458,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/socketmodule.c:4462,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/socketmodule.c:4467,1
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:4474,1
    - Dst: sock_recvmsg_guts
      Src: /src/cpython/Modules/socketmodule.c:4475,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/socketmodule.c:4477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4479
      start: 4449
    functionDepth: 5
    functionLinenumber: 4449
    functionLinenumberEnd: 4479
    functionName: sock_recvmsg
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - PyBytesWriter_GetData
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyArg_ParseTuple
    - 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:4514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - received
    - data
    argTypes:
    - ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4515
      start: 4511
    functionDepth: 1
    functionLinenumber: 4511
    functionLinenumberEnd: 4515
    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:4522,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4531,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/socketmodule.c:4535,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:4539,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4541,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:4547,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:4548,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:4549,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/socketmodule.c:4553,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/socketmodule.c:4553,1
    - Dst: sock_recvmsg_guts
      Src: /src/cpython/Modules/socketmodule.c:4562,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4566,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:4567,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:4568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:4569,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4519
    functionDepth: 5
    functionLinenumber: 4519
    functionLinenumberEnd: 4571
    functionName: sock_recvmsg_into
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - _PySocketSockObject_CAST
    - PyErr_NoMemory
    - PyErr_SetString
    - PyArg_Parse
    - PyBuffer_Release
    - PyMem_Free
    - PyArg_ParseTuple
    - sock_recvmsg_guts
    - Py_DECREF
    - PySequence_Fast_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvmsg_into(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/cpython/Modules/socketmodule.c:4623,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4623,1
    - Dst: send
      Src: /src/cpython/Modules/socketmodule.c:4625,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4628
      start: 4615
    functionDepth: 1
    functionLinenumber: 4615
    functionLinenumberEnd: 4628
    functionName: sock_send_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - send
    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:4651,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4652,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:4657,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:4661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - pbuf
    - flags
    argTypes:
    - PySocketSockObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4662
      start: 4644
    functionDepth: 4
    functionLinenumber: 4644
    functionLinenumberEnd: 4662
    functionName: _socket_socket_send_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - sock_call
    - select_error
    - IS_SELECTABLE
    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:4698,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4699,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/socketmodule.c:4706,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/socketmodule.c:4710,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4714,1
    - Dst: sock_call_ex
      Src: /src/cpython/Modules/socketmodule.c:4722,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:4725,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/socketmodule.c:4733,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/socketmodule.c:4737,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: 4724
        line_start: 4724
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 4741
      start: 4680
    functionDepth: 3
    functionLinenumber: 4680
    functionLinenumberEnd: 4741
    functionName: _socket_socket_sendall_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyDeadline_Init
    - sock_call_ex
    - _PyDeadline_Get
    - PyErr_SetString
    - PyErr_CheckSignals
    - select_error
    - IS_SELECTABLE
    - assert
    - Py_NewRef
    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:4762,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4762,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4763,1
    - Dst: sendto
      Src: /src/cpython/Modules/socketmodule.c:4765,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4765,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:4766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4769
      start: 4754
    functionDepth: 1
    functionLinenumber: 4754
    functionLinenumberEnd: 4769
    functionName: sock_sendto_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - sendto
    - 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:4776,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/socketmodule.c:4786,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4789,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:4794,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:4800,1
    - Dst: IS_SELECTABLE
      Src: /src/cpython/Modules/socketmodule.c:4806,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4807,1
    - Dst: select_error
      Src: /src/cpython/Modules/socketmodule.c:4808,1
    - Dst: getsockaddrarg
      Src: /src/cpython/Modules/socketmodule.c:4811,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4812,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:4816,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4817,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:4826,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4827,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:4830,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:4832,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4833
      start: 4773
    functionDepth: 5
    functionLinenumber: 4773
    functionLinenumberEnd: 4833
    functionName: sock_sendto
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - _PySocketSockObject_CAST
    - PySys_Audit
    - getsockaddrarg
    - select_error
    - IS_SELECTABLE
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - PyErr_Format
    - PyArg_ParseTuple
    - sock_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_sendto(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/socketmodule.c:4864,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:4871,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:4873,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:4879,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:4881,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:4886,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:4888,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/socketmodule.c:4893,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/socketmodule.c:4893,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:4903,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: 4905
      start: 4852
    functionDepth: 1
    functionLinenumber: 4852
    functionLinenumberEnd: 4905
    functionName: sock_sendmsg_iovec
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - PyErr_NoMemory
    - PySequence_Fast_GET_ITEM
    - PyErr_SetString
    - Py_XDECREF
    - PyObject_GetBuffer
    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:4912,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:4912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4914
      start: 4907
    functionDepth: 1
    functionLinenumber: 4907
    functionLinenumberEnd: 4914
    functionName: sock_sendmsg_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sendmsg
    - get_sock_fd
    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:5134,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5162,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/socketmodule.c:5167,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:5175,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/socketmodule.c:5179,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5183,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/socketmodule.c:5189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:5190,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5194,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:5200,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:5202,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:5205,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/socketmodule.c:5208,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:5210,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:5213,1
    - Dst: sock_sendmsg_iovec
      Src: /src/cpython/Modules/socketmodule.c:5221,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/cpython/Modules/socketmodule.c:5227,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5229,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:5235,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:5236,1
    - Dst: CMSG_NXTHDR
      Src: /src/cpython/Modules/socketmodule.c:5241,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5243,1
    - Dst: CMSG_SPACE
      Src: /src/cpython/Modules/socketmodule.c:5249,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:5250,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:5252,1
    - Dst: CMSG_NXTHDR
      Src: /src/cpython/Modules/socketmodule.c:5257,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5259,1
    - Dst: CMSG_LEN
      Src: /src/cpython/Modules/socketmodule.c:5265,1
    - Dst: CMSG_DATA
      Src: /src/cpython/Modules/socketmodule.c:5266,1
    - Dst: sock_call
      Src: /src/cpython/Modules/socketmodule.c:5272,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/socketmodule.c:5276,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5279,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:5281,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5283,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:5285,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5287,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 108
    argCount: 3
    argNames:
    - s
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5289
      start: 5131
    functionDepth: 4
    functionLinenumber: 5131
    functionLinenumberEnd: 5289
    functionName: sock_sendmsg_afalg
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - CMSG_NXTHDR
    - CMSG_DATA
    - memcpy
    - PyErr_Occurred
    - PyArg_ParseTupleAndKeywords
    - CMSG_SPACE
    - PyErr_NoMemory
    - CMSG_LEN
    - CMSG_FIRSTHDR
    - PyLong_FromSsize_t
    - PyMem_Free
    - PyMem_Malloc
    - sock_sendmsg_iovec
    - _PySocketSockObject_CAST
    - PyErr_SetString
    - sock_call
    - PyLong_AsInt
    - PyBuffer_Release
    - memset
    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:5304,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/socketmodule.c:5309,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:5310,1
    - Dst: shutdown
      Src: /src/cpython/Modules/socketmodule.c:5313,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5313,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/cpython/Modules/socketmodule.c:5316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5318
      start: 5301
    functionDepth: 1
    functionLinenumber: 5301
    functionLinenumberEnd: 5318
    functionName: sock_shutdown
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - PyLong_AsInt
    - get_sock_fd
    - PySocketSockObject*::errorhandler
    - PyErr_Occurred
    - shutdown
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_shutdown(PyObject *self, PyObject *arg)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:5331,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5337,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5343,1
    - Dst: WSAIoctl
      Src: /src/cpython/Modules/socketmodule.c:5345,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5345,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5347,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:5349,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5352,1
    - Dst: WSAIoctl
      Src: /src/cpython/Modules/socketmodule.c:5355,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5355,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5357,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:5359,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5363,1
    - Dst: WSAIoctl
      Src: /src/cpython/Modules/socketmodule.c:5365,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5365,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5367,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:5369,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:5372,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5375
      start: 5328
    functionDepth: 1
    functionLinenumber: 5328
    functionLinenumberEnd: 5375
    functionName: sock_ioctl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - get_sock_fd
    - set_error
    - WSAIoctl
    - PyErr_Format
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_ioctl(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:5389,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5395,1
    - Dst: WSADuplicateSocketW
      Src: /src/cpython/Modules/socketmodule.c:5399,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5399,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5402,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:5403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5404
      start: 5386
    functionDepth: 1
    functionLinenumber: 5386
    functionLinenumberEnd: 5404
    functionName: sock_share
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PySocketSockObject_CAST
    - get_sock_fd
    - PyBytes_FromStringAndSize
    - WSADuplicateSocketW
    - set_error
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_share(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/socketmodule.c:5553,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/socketmodule.c:5556,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/socketmodule.c:5557,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/socketmodule.c:5558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:5559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5560
      start: 5550
    functionDepth: 1
    functionLinenumber: 5550
    functionLinenumberEnd: 5560
    functionName: sock_dealloc
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void sock_dealloc(PyObject *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySocketSockObject_CAST
      Src: /src/cpython/Modules/socketmodule.c:5566,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5570,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5574,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:5578,1
    - Dst: get_sock_fd
      Src: /src/cpython/Modules/socketmodule.c:5585,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/socketmodule.c:5586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5591
      start: 5563
    functionDepth: 1
    functionLinenumber: 5563
    functionLinenumberEnd: 5591
    functionName: sock_repr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_sock_fd
    - PyUnicode_FromFormat
    - 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:5601,1
    - Dst: tp_alloc
      Src: /src/cpython/Modules/socketmodule.c:5601,1
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/socketmodule.c:5604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5611
      start: 5596
    functionDepth: 1
    functionLinenumber: 5596
    functionLinenumberEnd: 5611
    functionName: sock_new
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - type::type
    - tp_alloc
    - _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: 5625
      start: 5620
    functionDepth: 0
    functionLinenumber: 5620
    functionLinenumberEnd: 5625
    functionName: socket
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 7
    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:5876,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/socketmodule.c:5885,1
    - Dst: GetComputerNameExW
      Src: /src/cpython/Modules/socketmodule.c:5889,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/socketmodule.c:5890,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/socketmodule.c:5892,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:5893,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/socketmodule.c:5896,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/socketmodule.c:5900,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/socketmodule.c:5902,1
    - Dst: GetComputerNameExW
      Src: /src/cpython/Modules/socketmodule.c:5905,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:5909,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5910,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/socketmodule.c:5914,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:5915,1
    - Dst: gethostname
      Src: /src/cpython/Modules/socketmodule.c:5921,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5924,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/socketmodule.c:5926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5928
      start: 5873
    functionDepth: 1
    functionLinenumber: 5873
    functionLinenumberEnd: 5928
    functionName: socket_gethostname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_GetConstant
    - PyMem_New
    - PyErr_SetFromWindowsErr
    - PyErr_NoMemory
    - PySys_Audit
    - Py_ARRAY_LENGTH
    - PyMem_Free
    - GetLastError
    - set_error
    - GetComputerNameExW
    - gethostname
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostname(PyObject *self, PyObject *unused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5954,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/socketmodule.c:5955,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5956,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:5962,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/socketmodule.c:5966,1
    - Dst: sethostname
      Src: /src/cpython/Modules/socketmodule.c:5968,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:5969,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:5972,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:5974,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5976
      start: 5941
    functionDepth: 1
    functionLinenumber: 5941
    functionLinenumberEnd: 5976
    functionName: socket_sethostname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sethostname
    - PySys_Audit
    - set_error
    - PyBuffer_Release
    - PyErr_Clear
    - PyArg_ParseTuple
    - Py_DECREF
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_sethostname(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:5990,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:5992,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:5995,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:5996,1
    - Dst: make_ipv4_addr
      Src: /src/cpython/Modules/socketmodule.c:6001,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:6003,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6005
      start: 5983
    functionDepth: 4
    functionLinenumber: 5983
    functionLinenumberEnd: 6005
    functionName: socket_gethostbyname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PySys_Audit
    - setipaddr
    - PyMem_Free
    - PyArg_ParseTuple
    - make_ipv4_addr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyname(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeMBCS
      Src: /src/cpython/Modules/socketmodule.c:6021,1
    - Dst: strlen
      Src: /src/cpython/Modules/socketmodule.c:6021,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:6024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6026
      start: 6015
    functionDepth: 1
    functionLinenumber: 6015
    functionLinenumberEnd: 6026
    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:6043,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:6050,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:6070,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:6073,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6082,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:6086,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:6090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:6091,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6102,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6112,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6117,1
    - Dst: make_ipv4_addr
      Src: /src/cpython/Modules/socketmodule.c:6118,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6121,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6129,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6134,1
    - Dst: make_ipv6_addr
      Src: /src/cpython/Modules/socketmodule.c:6135,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6138,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6144,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:6152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:6153,1
    - Dst: sock_decode_hostname
      Src: /src/cpython/Modules/socketmodule.c:6159,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:6162,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:6165,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:6166,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: 6168
      start: 6030
    functionDepth: 2
    functionLinenumber: 6030
    functionLinenumberEnd: 6168
    functionName: gethost_common
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_herror
    - PyUnicode_FromString
    - make_ipv6_addr
    - sock_decode_hostname
    - PyErr_SetString
    - Py_BuildValue
    - memset
    - PyList_New
    - memcpy
    - PyList_Append
    - Py_DECREF
    - Py_XDECREF
    - PyErr_SetFromErrno
    - make_ipv4_addr
    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:6197,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6199,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:6202,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:6203,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6203,1
    - Dst: gethostbyname_r
      Src: /src/cpython/Modules/socketmodule.c:6209,1
    - Dst: gethostbyname_r
      Src: /src/cpython/Modules/socketmodule.c:6212,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6214,1
    - Dst: gethostbyname_r
      Src: /src/cpython/Modules/socketmodule.c:6215,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/socketmodule.c:6220,1
    - Dst: gethostbyname
      Src: /src/cpython/Modules/socketmodule.c:6224,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6232,1
    - Dst: gethost_common
      Src: /src/cpython/Modules/socketmodule.c:6233,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6233,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/socketmodule.c:6236,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:6239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6241
      start: 6175
    functionDepth: 4
    functionLinenumber: 6175
    functionLinenumberEnd: 6241
    functionName: socket_gethostbyname_ex
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - gethostbyname
    - PyThread_acquire_lock
    - PySys_Audit
    - SAS2SA
    - gethost_common
    - PyThread_release_lock
    - setipaddr
    - memset
    - PyMem_Free
    - PyArg_ParseTuple
    - gethostbyname_r
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyname_ex(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6258,1
    - Dst: _Py_ALIGNED_DEF
      Src: /src/cpython/Modules/socketmodule.c:6271,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6283,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6285,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:6289,1
    - Dst: setipaddr
      Src: /src/cpython/Modules/socketmodule.c:6290,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6308,1
    - Dst: gethostbyaddr_r
      Src: /src/cpython/Modules/socketmodule.c:6314,1
    - Dst: gethostbyaddr_r
      Src: /src/cpython/Modules/socketmodule.c:6318,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6321,1
    - Dst: gethostbyaddr_r
      Src: /src/cpython/Modules/socketmodule.c:6322,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/socketmodule.c:6327,1
    - Dst: gethostbyaddr
      Src: /src/cpython/Modules/socketmodule.c:6331,1
    - Dst: gethost_common
      Src: /src/cpython/Modules/socketmodule.c:6335,1
    - Dst: SAS2SA
      Src: /src/cpython/Modules/socketmodule.c:6335,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/socketmodule.c:6337,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/socketmodule.c:6340,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6342
      start: 6254
    functionDepth: 4
    functionLinenumber: 6254
    functionLinenumberEnd: 6342
    functionName: socket_gethostbyaddr
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - _Py_ALIGNED_DEF
    - PyThread_acquire_lock
    - PySys_Audit
    - SAS2SA
    - PyErr_SetString
    - gethost_common
    - PyThread_release_lock
    - setipaddr
    - memset
    - gethostbyaddr
    - PyMem_Free
    - PyArg_ParseTuple
    - gethostbyaddr_r
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyaddr(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6362,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6365,1
    - Dst: getservbyname
      Src: /src/cpython/Modules/socketmodule.c:6370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6373,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:6376,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:6376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6377
      start: 6357
    functionDepth: 1
    functionLinenumber: 6357
    functionLinenumberEnd: 6377
    functionName: socket_getservbyname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PySys_Audit
    - PyErr_SetString
    - PyArg_ParseTuple
    - ntohs
    - getservbyname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getservbyname(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6399,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6402,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6408,1
    - Dst: getservbyport
      Src: /src/cpython/Modules/socketmodule.c:6413,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:6413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6416,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:6419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6420
      start: 6393
    functionDepth: 1
    functionLinenumber: 6393
    functionLinenumberEnd: 6420
    functionName: socket_getservbyport
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - getservbyport
    - htons
    - PyUnicode_FromString
    - PySys_Audit
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getservbyport(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6441,1
    - Dst: getprotobyname
      Src: /src/cpython/Modules/socketmodule.c:6444,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6447,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/socketmodule.c:6450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6451
      start: 6436
    functionDepth: 1
    functionLinenumber: 6436
    functionLinenumberEnd: 6451
    functionName: socket_getprotobyname
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - getprotobyname
    - PyErr_SetString
    - PyLong_FromLong
    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:6465,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:6466,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:6469,1
    - Dst: CHECK_ERRNO
      Src: /src/cpython/Modules/socketmodule.c:6473,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:6474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - fdobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6477
      start: 6459
    functionDepth: 1
    functionLinenumber: 6459
    functionLinenumberEnd: 6477
    functionName: socket_close
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsSocket_t
    - PyErr_Occurred
    - set_error
    - CHECK_ERRNO
    - SOCKETCLOSE
    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:6497,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/socketmodule.c:6498,1
    - Dst: WSADuplicateSocketW
      Src: /src/cpython/Modules/socketmodule.c:6503,1
    - Dst: GetCurrentProcessId
      Src: /src/cpython/Modules/socketmodule.c:6503,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:6504,1
    - Dst: WSASocketW
      Src: /src/cpython/Modules/socketmodule.c:6506,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:6510,1
    - Dst: SetHandleInformation
      Src: /src/cpython/Modules/socketmodule.c:6513,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:6514,1
    - Dst: closesocket
      Src: /src/cpython/Modules/socketmodule.c:6515,1
    - Dst: _Py_dup
      Src: /src/cpython/Modules/socketmodule.c:6520,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/socketmodule.c:6526,1
    - Dst: SOCKETCLOSE
      Src: /src/cpython/Modules/socketmodule.c:6528,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - fdobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6531
      start: 6488
    functionDepth: 1
    functionLinenumber: 6488
    functionLinenumberEnd: 6531
    functionName: socket_dup
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - WSADuplicateSocketW
    - _Py_dup
    - PyLong_AsSocket_t
    - PyLong_FromSocket_t
    - PyErr_Occurred
    - closesocket
    - set_error
    - SetHandleInformation
    - GetCurrentProcessId
    - SOCKETCLOSE
    - WSASocketW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_dup(PyObject *self, PyObject *fdobj)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:6553,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6566,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:6573,1
    - Dst: socketpair
      Src: /src/cpython/Modules/socketmodule.c:6574,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:6575,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:6577,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/socketmodule.c:6581,1
    - Dst: socketpair
      Src: /src/cpython/Modules/socketmodule.c:6582,1
    - Dst: socketpair
      Src: /src/cpython/Modules/socketmodule.c:6589,1
    - Dst: set_error
      Src: /src/cpython/Modules/socketmodule.c:6594,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/socketmodule.c:6596,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/socketmodule.c:6598,1
    - Dst: new_sockobject
      Src: /src/cpython/Modules/socketmodule.c:6601,1
    - Dst: new_sockobject
      Src: /src/cpython/Modules/socketmodule.c:6604,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/socketmodule.c:6607,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:6614,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:6615,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6617
      start: 6547
    functionDepth: 4
    functionLinenumber: 6547
    functionLinenumberEnd: 6617
    functionName: socket_socketpair
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - _Py_set_inheritable
    - set_error
    - _Py_atomic_store_int_relaxed
    - new_sockobject
    - Py_XDECREF
    - socketpair
    - PyArg_ParseTuple
    - _Py_atomic_load_int_relaxed
    - SOCKETCLOSE
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_socketpair(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:6642,1
    - Dst: ntohs
      Src: /src/cpython/Modules/socketmodule.c:6642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6643
      start: 6638
    functionDepth: 0
    functionLinenumber: 6638
    functionLinenumberEnd: 6643
    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:6658,1
    - Dst: ntohl
      Src: /src/cpython/Modules/socketmodule.c:6658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6659
      start: 6654
    functionDepth: 0
    functionLinenumber: 6654
    functionLinenumberEnd: 6659
    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:6674,1
    - Dst: htons
      Src: /src/cpython/Modules/socketmodule.c:6674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6675
      start: 6670
    functionDepth: 0
    functionLinenumber: 6670
    functionLinenumberEnd: 6675
    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:6690,1
    - Dst: htonl
      Src: /src/cpython/Modules/socketmodule.c:6690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6691
      start: 6686
    functionDepth: 0
    functionLinenumber: 6686
    functionLinenumberEnd: 6691
    functionName: _socket_htonl_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - htonl
    - PyLong_FromUnsignedLong
    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:6784,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6786,1
    - Dst: memcpy
      Src: /src/cpython/Modules/socketmodule.c:6790,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - packed_ip
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6797
      start: 6777
    functionDepth: 1
    functionLinenumber: 6777
    functionLinenumberEnd: 6797
    functionName: _socket_inet_ntoa_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - memcpy
    - 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:6815,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6819,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6825,1
    - Dst: inet_pton
      Src: /src/cpython/Modules/socketmodule.c:6831,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:6833,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6836,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:6840,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/socketmodule.c:6844,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6848,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6851
      start: 6808
    functionDepth: 1
    functionLinenumber: 6808
    functionLinenumberEnd: 6851
    functionName: socket_inet_pton
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - inet_pton
    - Py_MAX
    - PyArg_ParseTuple
    - 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:6865,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:6870,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6876,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6878,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6884,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6886,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/socketmodule.c:6891,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6893,1
    - Dst: inet_ntop
      Src: /src/cpython/Modules/socketmodule.c:6898,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:6900,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6901,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/socketmodule.c:6904,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/socketmodule.c:6905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6907
      start: 6858
    functionDepth: 1
    functionLinenumber: 6858
    functionLinenumberEnd: 6907
    functionName: socket_inet_ntop
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - inet_ntop
    - PyErr_SetString
    - PyBuffer_Release
    - Py_MAX
    - PyErr_Format
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    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:6933,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:6940,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/socketmodule.c:6941,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:6944,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:6944,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:6945,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:6946,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/socketmodule.c:6947,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6949,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/socketmodule.c:6953,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Modules/socketmodule.c:6954,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:6957,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/socketmodule.c:6957,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/socketmodule.c:6958,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/socketmodule.c:6958,1
    - Dst: assert
      Src: /src/cpython/Modules/socketmodule.c:6961,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:6961,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/socketmodule.c:6962,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/socketmodule.c:6965,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/socketmodule.c:6966,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/socketmodule.c:6969,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/socketmodule.c:6970,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:6974,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:6987,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:6992,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:6998,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7002,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7003,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:7007,1
    - Dst: makesockaddr
      Src: /src/cpython/Modules/socketmodule.c:7013,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:7016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7020,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:7024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7028,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7030,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7031,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:7033,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7036,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7037,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7038,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:7040,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 104
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(idna))
      pos:
        line_end: 6943
        line_start: 6943
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyLong_CheckExact(pstr))
      pos:
        line_end: 6956
        line_start: 6956
        source_file: /src/cpython/Modules/socketmodule.c
    - condition: (PyUnicode_Check(pstr))
      pos:
        line_end: 6960
        line_start: 6960
        source_file: /src/cpython/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 7042
      start: 6915
    functionDepth: 3
    functionLinenumber: 6915
    functionLinenumberEnd: 7042
    functionName: socket_getaddrinfo
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - set_gaierror
    - PyBytes_Check
    - Py_BuildValue
    - PyArg_ParseTupleAndKeywords
    - assert
    - get_module_state
    - PySys_Audit
    - makesockaddr
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - PyList_New
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyList_Append
    - PyIndex_Check
    - PyNumber_Index
    - PyUnicode_AsEncodedString
    - PyErr_SetString
    - PyLong_CheckExact
    - PyBytes_AsString
    - Py_DECREF
    - getaddrinfo
    - PyObject_Str
    - Py_SETREF
    - memset
    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:7002,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7005
      start: 6999
    functionDepth: 2
    functionLinenumber: 6999
    functionLinenumberEnd: 7005
    functionName: if
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - set_gaierror
    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:7070,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/socketmodule.c:7072,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7073,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/socketmodule.c:7077,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7083,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/socketmodule.c:7088,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/socketmodule.c:7092,1
    - Dst: memset
      Src: /src/cpython/Modules/socketmodule.c:7093,1
    - Dst: getaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:7098,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7102,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7103,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7107,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/socketmodule.c:7114,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/socketmodule.c:7115,1
    - Dst: htonl
      Src: /src/cpython/Modules/socketmodule.c:7126,1
    - Dst: getnameinfo
      Src: /src/cpython/Modules/socketmodule.c:7133,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7137,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7138,1
    - Dst: sock_decode_hostname
      Src: /src/cpython/Modules/socketmodule.c:7142,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:7145,1
    - Dst: freeaddrinfo
      Src: /src/cpython/Modules/socketmodule.c:7149,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7151
      start: 7055
    functionDepth: 3
    functionLinenumber: 7055
    functionLinenumberEnd: 7151
    functionName: socket_getnameinfo
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - get_module_state
    - getaddrinfo
    - set_gaierror
    - getnameinfo
    - PySys_Audit
    - sock_decode_hostname
    - PyErr_SetString
    - Py_BuildValue
    - memset
    - htonl
    - PyTuple_Check
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyOS_snprintf
    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:7102,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7105
      start: 7099
    functionDepth: 2
    functionLinenumber: 7099
    functionLinenumberEnd: 7105
    functionName: if
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - set_gaierror
    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:7137,1
    - Dst: set_gaierror
      Src: /src/cpython/Modules/socketmodule.c:7138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7140
      start: 7135
    functionDepth: 2
    functionLinenumber: 7135
    functionLinenumberEnd: 7140
    functionName: if
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - set_gaierror
    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:7164,1
    - Dst: _Py_atomic_load_int64_relaxed
      Src: /src/cpython/Modules/socketmodule.c:7165,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/socketmodule.c:7170,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/socketmodule.c:7171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7173
      start: 7161
    functionDepth: 1
    functionLinenumber: 7161
    functionLinenumberEnd: 7173
    functionName: socket_getdefaulttimeout
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyTime_AsSecondsDouble
    - PyFloat_FromDouble
    - _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:7187,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/socketmodule.c:7190,1
    - Dst: _Py_atomic_store_int64_relaxed
      Src: /src/cpython/Modules/socketmodule.c:7191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7194
      start: 7182
    functionDepth: 2
    functionLinenumber: 7182
    functionLinenumberEnd: 7194
    functionName: socket_setdefaulttimeout
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_int64_relaxed
    - get_module_state
    - socket_parse_timeout
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_setdefaulttimeout(PyObject *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/socketmodule.c:7209,1
    - Dst: GetIfTable2Ex
      Src: /src/cpython/Modules/socketmodule.c:7216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7217,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:7219,1
    - Dst: ConvertInterfaceLuidToNameW
      Src: /src/cpython/Modules/socketmodule.c:7224,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/socketmodule.c:7225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7226,1
    - Dst: FreeMibTable
      Src: /src/cpython/Modules/socketmodule.c:7227,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/socketmodule.c:7229,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:7231,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:7232,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7234,1
    - Dst: FreeMibTable
      Src: /src/cpython/Modules/socketmodule.c:7235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7238,1
    - Dst: FreeMibTable
      Src: /src/cpython/Modules/socketmodule.c:7240,1
    - Dst: if_nameindex
      Src: /src/cpython/Modules/socketmodule.c:7246,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:7248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7249,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/socketmodule.c:7254,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/socketmodule.c:7255,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/socketmodule.c:7260,1
    - Dst: __msan_unpoison
      Src: /src/cpython/Modules/socketmodule.c:7266,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/socketmodule.c:7270,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/socketmodule.c:7273,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/socketmodule.c:7274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7275,1
    - Dst: if_freenameindex
      Src: /src/cpython/Modules/socketmodule.c:7276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/socketmodule.c:7279,1
    - Dst: if_freenameindex
      Src: /src/cpython/Modules/socketmodule.c:7282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7285
      start: 7206
    functionDepth: 1
    functionLinenumber: 7206
    functionLinenumberEnd: 7285
    functionName: socket_if_nameindex
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - ConvertInterfaceLuidToNameW
    - Py_ARRAY_LENGTH
    - if_freenameindex
    - Py_BuildValue
    - PyErr_SetFromErrno
    - if_nameindex
    - PyList_New
    - FreeMibTable
    - PyList_Append
    - Py_DECREF
    - Py_XDECREF
    - GetIfTable2Ex
    - __msan_unpoison
    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: PyErr_SetFromErrno
      Src: /src/cpython/Modules/socketmodule.c:7313,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:7317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - oname
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7318
      start: 7300
    functionDepth: 1
    functionLinenumber: 7300
    functionLinenumberEnd: 7318
    functionName: _socket_if_nametoindex_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - if_nametoindex
    - PyErr_SetFromErrno
    - PyLong_FromUnsignedLong
    - 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: 7
    argCount: 2
    argNames:
    - module
    - index
    argTypes:
    - PyObject*
    - NET_IFINDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7342
      start: 7330
    functionDepth: 1
    functionLinenumber: 7330
    functionLinenumberEnd: 7342
    functionName: _socket_if_indextoname_impl
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - if_indextoname
    - PyErr_SetFromErrno
    - PyUnicode_DecodeFSDefault
    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:
    - PyArg_ParseTuple
    - get_CMSG_LEN
    - PyLong_FromSize_t
    - PyErr_Format
    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:
    - PyArg_ParseTuple
    - PyLong_FromSize_t
    - PyErr_SetString
    - get_CMSG_SPACE
    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:
    - WSAStartup
    - PyErr_SetString
    - PyErr_Format
    - Py_AtExit
    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:
    - Py_VISIT
    - PyCapsule_GetPointer
    - assert
    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:
    - Py_CLEAR
    - PyCapsule_GetPointer
    - assert
    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_DECREF
    - PyMem_Free
    - Py_XDECREF
    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:
    - sock_capi_free
    - PyCapsule_GetPointer
    - assert
    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:8317,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8322,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8324,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:8338,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:8355,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:8404,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8409,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8412,1
    - Dst: ADD_INT_CONST
      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_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8432,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8434,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8437,1
    - Dst: ADD_INT_CONST
      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:8445,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8446,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8449,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:8453,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8454,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8455,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8457,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8460,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8464,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8466,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8468,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_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8478,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:8490,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8491,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8492,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:8503,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8504,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8505,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8508,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:8519,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8520,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8521,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8524,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8525,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:8529,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8530,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:8538,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:8545,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8546,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8548,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8549,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8550,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8552,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8553,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8554,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8555,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8556,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8557,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8558,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8559,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8560,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8561,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8562,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8564,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8567,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8568,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8569,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8570,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8571,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8572,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8573,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8575,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8576,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_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8595,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8598,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8601,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8604,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8606,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8609,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8612,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8614,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8617,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8620,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8623,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8626,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8629,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8632,1
    - Dst: ADD_INT_CONST
      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_CONST
      Src: /src/cpython/Modules/socketmodule.c:8645,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8648,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8652,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8656,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8659,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8662,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8665,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8668,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8671,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8674,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8677,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8680,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8683,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8686,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8689,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8692,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8695,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8698,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8701,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8704,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8707,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8710,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8713,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8716,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8719,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8722,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8726,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8728,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8731,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8735,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8736,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8737,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8738,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8739,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8740,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8741,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8742,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8746,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8751,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8753,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8756,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8758,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8763,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8765,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8768,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8770,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8773,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8775,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8778,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8780,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8783,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8786,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8789,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8791,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8794,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:8796,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8801,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8804,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8807,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8810,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8813,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8816,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8819,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8822,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8825,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8828,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8831,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8834,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8837,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8840,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8843,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8846,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8849,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8852,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8855,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8858,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8861,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8864,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8867,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:8887,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8890,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8893,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8896,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8899,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8902,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8906,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8910,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8913,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8916,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8919,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8922,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8925,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8928,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8931,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8934,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8937,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8940,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8943,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8946,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8949,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8952,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8955,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8958,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8961,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8964,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8967,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8970,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8973,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:8991,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8994,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:8997,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9000,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9003,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9006,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9009,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9012,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9015,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9021,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9024,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9027,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9030,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9033,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9036,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9039,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9042,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9045,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9048,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9051,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9054,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9057,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:9103,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9106,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9109,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9112,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9115,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9118,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9121,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9124,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9127,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9130,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9133,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9136,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9141,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9144,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9147,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9150,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9153,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9156,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9159,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9162,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9165,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9168,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9171,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9174,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9177,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9180,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9183,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9186,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9189,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9192,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9195,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9198,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9201,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9204,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9207,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9210,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9213,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9216,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9219,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9222,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9225,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9228,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9231,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9234,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9237,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9242,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9244,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9246,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9249,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9251,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9253,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9256,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9258,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/socketmodule.c:9260,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/socketmodule.c:9276,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/socketmodule.c:9277,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/socketmodule.c:9277,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9282,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9283,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9284,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9286,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/socketmodule.c:9289,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/socketmodule.c:9295,1
    - Dst: remove_unusable_flags
      Src: /src/cpython/Modules/socketmodule.c:9300,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 701
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9313
      start: 7614
    functionDepth: 2
    functionLinenumber: 7614
    functionLinenumberEnd: 9313
    functionName: socket_exec
    functionSourceFile: /src/cpython/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - os_init
    - PyModule_Add
    - _PYTIME_FROMSECONDS
    - PyModule_AddObjectRef
    - PyLong_FromUnsignedLong
    - PyThread_allocate_lock
    - get_module_state
    - remove_unusable_flags
    - ADD_STR_CONST
    - ADD_INT_MACRO
    - sock_capi_free
    - PyCapsule_New
    - _IO
    - _PyCapsule_SetTraverse
    - ADD_INT_CONST
    - sock_get_api
    - PyModule_AddType
    - _Py_atomic_store_int64_relaxed
    - PyType_FromMetaclass
    - Py_ARRAY_LENGTH
    - ADD_EXC
    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:9326,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/socketmodule.c:9327,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/socketmodule.c:9328,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/socketmodule.c:9329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9331
      start: 9323
    functionDepth: 1
    functionLinenumber: 9323
    functionLinenumberEnd: 9331
    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:9336,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:9337,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:9338,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/socketmodule.c:9339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9341
      start: 9333
    functionDepth: 1
    functionLinenumber: 9333
    functionLinenumberEnd: 9341
    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:9346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9347
      start: 9343
    functionDepth: 2
    functionLinenumber: 9343
    functionLinenumberEnd: 9347
    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:9364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9365
      start: 9361
    functionDepth: 1
    functionLinenumber: 9361
    functionLinenumberEnd: 9365
    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:
    - _PyType_GetModuleState
    - assert
    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:
    - get_module_state
    - PyType_GetModuleByDef
    - assert
    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
    - assert
    - Py_DECREF
    - newblock
    - PyTypeObject*::tp_alloc
    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
    - PyErr_SetString
    - MARK_END
    - Py_SIZE
    - freeblock
    - assert
    - CHECK_NOT_END
    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->leftindex == deque->rightindex+1)
      pos:
        line_end: 316
        line_start: 316
        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
    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
    - PyErr_SetString
    - MARK_END
    - Py_SIZE
    - freeblock
    - assert
    - CHECK_NOT_END
    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: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:346,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:350,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:353,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:356,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:356,1
    - Dst: NEEDS_TRIM
      Src: /src/cpython/Modules/_collectionsmodule.c:359,1
    - Dst: deque_popleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - deque
    - item
    - maxlen
    argTypes:
    - dequeobject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 366
    functionName: deque_append_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - NEEDS_TRIM
    - MARK_END
    - CHECK_END
    - Py_SIZE
    - Py_DECREF
    - newblock
    - deque_popleft_impl
    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:383,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 386
    functionName: deque_append_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_append_lock_held
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_append_impl(dequeobject *deque, PyObject *item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:395,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:399,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:402,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:405,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:405,1
    - Dst: NEEDS_TRIM
      Src: /src/cpython/Modules/_collectionsmodule.c:408,1
    - Dst: deque_pop_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - deque
    - item
    - maxlen
    argTypes:
    - dequeobject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 415
    functionName: deque_appendleft_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_pop_impl
    - Py_SET_SIZE
    - NEEDS_TRIM
    - MARK_END
    - CHECK_END
    - Py_SIZE
    - Py_DECREF
    - 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:432,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 4
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: deque_appendleft_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_appendleft_lock_held
    - Py_NewRef
    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:440,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_collectionsmodule.c:441,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_collectionsmodule.c:442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: finalize_iterator
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      finalize_iterator(PyObject *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:460,1
    - Dst: iternext
      Src: /src/cpython/Modules/_collectionsmodule.c:461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:462,1
    - Dst: finalize_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 465
    functionName: consume_iterator
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - finalize_iterator
    - Py_TYPE
    - iternext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      consume_iterator(PyObject *it)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_collectionsmodule.c:489,1
    - Dst: deque_extend
      Src: /src/cpython/Modules/_collectionsmodule.c:492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:493,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:497,1
    - Dst: consume_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:502,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:505,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:506,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:507,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:512,1
    - Dst: iternext
      Src: /src/cpython/Modules/_collectionsmodule.c:513,1
    - Dst: deque_append_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:516,1
    - Dst: finalize_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - deque
    - iterable
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 506
        line_start: 506
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 521
      start: 478
    functionDepth: 4
    functionLinenumber: 478
    functionLinenumberEnd: 521
    functionName: deque_extend_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_append_lock_held
    - consume_iterator
    - PySequence_List
    - Py_SIZE
    - iternext
    - PyObject_GetIter
    - finalize_iterator
    - assert
    - Py_DECREF
    - deque_extend
    - Py_TYPE
    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:545,1
    - Dst: deque_extendleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:549,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:553,1
    - Dst: consume_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:558,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:561,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:562,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:563,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:568,1
    - Dst: iternext
      Src: /src/cpython/Modules/_collectionsmodule.c:569,1
    - Dst: deque_appendleft_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:571,1
    - Dst: finalize_iterator
      Src: /src/cpython/Modules/_collectionsmodule.c:575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - deque
    - iterable
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 562
        line_start: 562
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 576
      start: 534
    functionDepth: 4
    functionLinenumber: 534
    functionLinenumberEnd: 576
    functionName: deque_extendleft_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 1
    functionsReached:
    - consume_iterator
    - PySequence_List
    - Py_SIZE
    - iternext
    - PyObject_GetIter
    - deque_extendleft_impl
    - finalize_iterator
    - deque_appendleft_lock_held
    - assert
    - Py_DECREF
    - Py_TYPE
    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:581,1
    - Dst: deque_extend
      Src: /src/cpython/Modules/_collectionsmodule.c:585,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_collectionsmodule.c:588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 591
    functionName: deque_inplace_concat
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - deque_extend
    - dequeobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_inplace_concat(PyObject *self, PyObject *other)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find_module_state_by_def
      Src: /src/cpython/Modules/_collectionsmodule.c:608,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:608,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:609,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:611,1
    - Dst: deque_new
      Src: /src/cpython/Modules/_collectionsmodule.c:613,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:627,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:628,1
    - Dst: deque_append_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:634,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:636,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_collectionsmodule.c:649,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:649,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_collectionsmodule.c:652,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:652,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_collectionsmodule.c:654,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_collectionsmodule.c:655,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:657,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:658,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts:
    - condition: (new_deque->leftblock == new_deque->rightblock)
      pos:
        line_end: 626
        line_start: 626
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (new_deque->leftindex == new_deque->rightindex + 1)
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 662
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 662
    functionName: deque_copy_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_append_lock_held
    - PyObject_TypeCheck
    - find_module_state_by_def
    - Py_IS_TYPE
    - Py_SIZE
    - PyObject_CallFunction
    - PyErr_Format
    - assert
    - Py_DECREF
    - deque_new
    - Py_NewRef
    - Py_TYPE
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_copy_impl(dequeobject *deque)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deque_copy_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 671
    functionDepth: 5
    functionLinenumber: 671
    functionLinenumberEnd: 676
    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:684,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:684,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_collectionsmodule.c:685,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_collectionsmodule.c:688,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:690,1
    - Dst: deque_copy_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:695,1
    - Dst: deque_extend_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - deque
    - other
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 678
    functionDepth: 5
    functionLinenumber: 678
    functionLinenumberEnd: 708
    functionName: deque_concat_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_copy_impl
    - find_module_state_by_def
    - deque_extend_impl
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    - PyObject_IsInstance
    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:713,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:715,1
    - Dst: deque_concat_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:716,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 710
    functionDepth: 6
    functionLinenumber: 710
    functionLinenumberEnd: 719
    functionName: deque_concat
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_concat_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - dequeobject_CAST
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_concat(PyObject *self, PyObject *other)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:731,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:733,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:749,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_collectionsmodule.c:751,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:756,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:761,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:762,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:763,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:781,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:791,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:793,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:794,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:798,1
    - Dst: deque_pop_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:799,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:801,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (item != NULL)
      pos:
        line_end: 799
        line_start: 799
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 804
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 804
    functionName: deque_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_pop_impl
    - Py_SET_SIZE
    - MARK_END
    - CHECK_END
    - Py_SIZE
    - freeblock
    - PyErr_Clear
    - assert
    - Py_DECREF
    - newblock
    - CHECK_NOT_END
    - dequeobject_CAST
    linkageType: ''
    returnType: int
    signature: int deque_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deque_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 815
    functionDepth: 4
    functionLinenumber: 815
    functionLinenumberEnd: 821
    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:830,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:832,1
    - Dst: deque_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:836,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:837,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:850,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:852,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:852,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:856,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:859,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:868,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:871,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:871,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:872,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_collectionsmodule.c:876,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_collectionsmodule.c:879,1
    - Dst: deque_extend_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:893,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_collectionsmodule.c:895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:896,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 2
    argNames:
    - deque
    - n
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 823
    functionDepth: 5
    functionLinenumber: 823
    functionLinenumberEnd: 898
    functionName: deque_inplace_repeat_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_extend_impl
    - Py_INCREF
    - PyErr_NoMemory
    - Py_SET_SIZE
    - PySequence_List
    - CHECK_END
    - MARK_END
    - Py_SIZE
    - deque_clear
    - Py_DECREF
    - newblock
    - Py_NewRef
    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:903,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:905,1
    - Dst: deque_inplace_repeat_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:906,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 900
    functionDepth: 6
    functionLinenumber: 900
    functionLinenumberEnd: 909
    functionName: deque_inplace_repeat
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_inplace_repeat_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - dequeobject_CAST
    - Py_END_CRITICAL_SECTION
    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:914,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:918,1
    - Dst: deque_copy_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:919,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:920,1
    - Dst: deque_inplace_repeat_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:925,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 911
    functionDepth: 6
    functionLinenumber: 911
    functionLinenumberEnd: 928
    functionName: deque_repeat
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_copy_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - deque_inplace_repeat_lock_held
    - Py_DECREF
    - 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:963,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:975,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:976,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:982,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:987,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:990,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:994,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1003,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1014,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1015,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1017,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1019,1
    - Dst: newblock
      Src: /src/cpython/Modules/_collectionsmodule.c:1026,1
    - Dst: CHECK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1031,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1034,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1038,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1047,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1058,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1059,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1061,1
    - Dst: MARK_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1063,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:1070,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 105
    argCount: 2
    argNames:
    - deque
    - n
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts:
    - condition: (len > 1)
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (m > 0 && m <= len)
      pos:
        line_end: 1046
        line_start: 1046
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (-halflen <= n && n <= halflen)
      pos:
        line_end: 975
        line_start: 975
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (m > 0 && m <= len)
      pos:
        line_end: 1002
        line_start: 1002
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (b == NULL)
      pos:
        line_end: 1014
        line_start: 1014
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (b == NULL)
      pos:
        line_end: 1058
        line_start: 1058
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (leftindex > 0)
      pos:
        line_end: 993
        line_start: 993
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (leftblock != rightblock)
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (rightindex < BLOCKLEN - 1)
      pos:
        line_end: 1037
        line_start: 1037
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (leftblock != rightblock)
      pos:
        line_end: 1057
        line_start: 1057
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1077
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 1077
    functionName: _deque_rotate
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - MARK_END
    - CHECK_END
    - Py_SIZE
    - freeblock
    - assert
    - newblock
    - CHECK_NOT_END
    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:1095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - deque
    - n
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1098
    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:1117,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1122,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1123,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts:
    - condition: (leftblock != rightblock || leftindex < rightindex)
      pos:
        line_end: 1121
        line_start: 1121
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1146
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1146
    functionName: deque_reverse_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_NOT_END
    - Py_SIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_reverse_impl(dequeobject *deque)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1165,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1172,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1173,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1181,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - deque
    - v
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1194
    functionName: deque_count_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    - PyLong_FromSsize_t
    - Py_DECREF
    - CHECK_NOT_END
    - Py_NewRef
    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:1201,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1207,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1208,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1210,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - deque
    - v
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1226
    functionName: deque_contains_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    - Py_DECREF
    - CHECK_NOT_END
    - Py_NewRef
    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:1231,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1233,1
    - Dst: deque_contains_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:1234,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1237
    functionName: deque_contains
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - dequeobject_CAST
    - deque_contains_lock_held
    linkageType: ''
    returnType: int
    signature: int deque_contains(PyObject *self, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyVarObject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1242,1
    - Dst: FT_ATOMIC_LOAD_SSIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1244
    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:1275,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1280,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1284,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1285,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1288,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1288,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1303,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1304,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1306,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1308,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1312,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1322,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: 1287
        line_start: 1287
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1324
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1324
    functionName: deque_index_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    - PyLong_FromSsize_t
    - assert
    - Py_DECREF
    - CHECK_NOT_END
    - Py_NewRef
    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:1350,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1353,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1354,1
    - Dst: deque_append_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1358,1
    - Dst: deque_appendleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1360,1
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1361,1
    - Dst: deque_append_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1364,1
    - Dst: deque_appendleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1369,1
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - deque
    - index
    - value
    argTypes:
    - dequeobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1346
    functionDepth: 5
    functionLinenumber: 1346
    functionLinenumberEnd: 1373
    functionName: deque_insert_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_append_impl
    - PyErr_SetString
    - Py_SIZE
    - deque_appendleft_impl
    - _deque_rotate
    - Py_DECREF
    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: 1381
      start: 1375
    functionDepth: 0
    functionLinenumber: 1375
    functionLinenumberEnd: 1381
    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:1390,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1391,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1398,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1405,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1411,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1419,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - deque
    - i
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1420
    functionName: deque_item_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_NewRef
    - valid_index
    - Py_SIZE
    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:1425,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1427,1
    - Dst: deque_item_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:1428,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1422
    functionDepth: 2
    functionLinenumber: 1422
    functionLinenumberEnd: 1431
    functionName: deque_item
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - dequeobject_CAST
    - deque_item_lock_held
    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:1439,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1439,1
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1440,1
    - Dst: deque_popleft_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1442,1
    - Dst: _deque_rotate
      Src: /src/cpython/Modules/_collectionsmodule.c:1443,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1445,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: 1438
        line_start: 1438
        source_file: /src/cpython/Modules/_collectionsmodule.c
    - condition: (item != NULL)
      pos:
        line_end: 1443
        line_start: 1443
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1447
      start: 1433
    functionDepth: 3
    functionLinenumber: 1433
    functionLinenumberEnd: 1447
    functionName: deque_del_item
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _deque_rotate
    - assert
    - Py_DECREF
    - deque_popleft_impl
    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:1466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1471,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1473,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1492,1
    - Dst: deque_del_item
      Src: /src/cpython/Modules/_collectionsmodule.c:1495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - deque
    - value
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1460
    functionDepth: 4
    functionLinenumber: 1460
    functionLinenumberEnd: 1500
    functionName: deque_remove_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_del_item
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    - Py_DECREF
    - Py_NewRef
    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:1506,1
    - Dst: valid_index
      Src: /src/cpython/Modules/_collectionsmodule.c:1508,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1509,1
    - Dst: deque_del_item
      Src: /src/cpython/Modules/_collectionsmodule.c:1513,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1524,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1530,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1530,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - deque
    - i
    - v
    argTypes:
    - dequeobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1502
    functionDepth: 4
    functionLinenumber: 1502
    functionLinenumberEnd: 1532
    functionName: deque_ass_item_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_del_item
    - valid_index
    - PyErr_SetString
    - Py_SETREF
    - Py_SIZE
    - Py_NewRef
    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:1537,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1539,1
    - Dst: deque_ass_item_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:1540,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1534
    functionDepth: 5
    functionLinenumber: 1534
    functionLinenumberEnd: 1543
    functionName: deque_ass_item
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_ass_item_lock_held
    - dequeobject_CAST
    - Py_END_CRITICAL_SECTION
    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:1548,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1549,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_collectionsmodule.c:1552,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_collectionsmodule.c:1553,1
    - Dst: deque_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:1555,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1556,1
    - Dst: freeblock
      Src: /src/cpython/Modules/_collectionsmodule.c:1557,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_collectionsmodule.c:1562,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_collectionsmodule.c:1564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock != NULL)
      pos:
        line_end: 1555
        line_start: 1555
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1566
      start: 1545
    functionDepth: 4
    functionLinenumber: 1545
    functionLinenumberEnd: 1566
    functionName: deque_dealloc
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - deque_clear
    - freeblock
    - PyTypeObject*::tp_free
    - PyMem_Free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - dequeobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void deque_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1571,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1572,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1572,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1583,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1593
    functionName: deque_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - dequeobject_CAST
    - Py_TYPE
    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:1609,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:1614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1616,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_collectionsmodule.c:1623,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1623,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_collectionsmodule.c:1626,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1628
    functionName: deque___reduce___impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyObject_GetIter
    - _PyObject_GetState
    - Py_DECREF
    - 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:1638,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_collectionsmodule.c:1642,1
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_collectionsmodule.c:1645,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_collectionsmodule.c:1647,1
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1650,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_collectionsmodule.c:1652,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_collectionsmodule.c:1653,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1653,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_collectionsmodule.c:1656,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_collectionsmodule.c:1657,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1657,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_collectionsmodule.c:1658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - deque
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1661
    functionName: deque_repr
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_ReprLeave
    - PySequence_List
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - _PyType_Name
    - Py_DECREF
    - dequeobject_CAST
    - Py_TYPE
    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:1670,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1670,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_collectionsmodule.c:1671,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_collectionsmodule.c:1672,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1677,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1678,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:1693,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:1696,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_collectionsmodule.c:1700,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:1701,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_collectionsmodule.c:1703,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1706,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_collectionsmodule.c:1708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1709,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1714,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1719,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1720,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:1721,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1733,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1734,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1740
    functionName: deque_richcompare
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - find_module_state_by_def
    - PyObject_RichCompareBool
    - Py_SIZE
    - PyObject_GetIter
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - PyIter_Next
    - 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:1760,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:1761,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1764,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1769,1
    - Dst: deque_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:1770,1
    - Dst: deque_extend_impl
      Src: /src/cpython/Modules/_collectionsmodule.c:1772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1775,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - deque
    - iterable
    - maxlenobj
    argTypes:
    - dequeobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1754
    functionDepth: 5
    functionLinenumber: 1754
    functionLinenumberEnd: 1778
    functionName: deque_init_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_extend_impl
    - PyErr_SetString
    - Py_SIZE
    - deque_clear
    - PyErr_Occurred
    - Py_DECREF
    - 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:1793,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1793,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1795,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1796,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1796,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1799,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: 1796
        line_start: 1795
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1800
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1800
    functionName: deque___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - Py_SIZE
    - _PyObject_SIZE
    - assert
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque___sizeof___impl(dequeobject *deque)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dequeobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1805,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:1808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1802
    functionDepth: 1
    functionLinenumber: 1802
    functionLinenumberEnd: 1809
    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:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1821
    functionDepth: 1
    functionLinenumber: 1821
    functionLinenumberEnd: 1826
    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: 1918
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1918
    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:1923,1
    - Dst: find_module_state_by_def
      Src: /src/cpython/Modules/_collectionsmodule.c:1925,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1925,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_collectionsmodule.c:1926,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1929,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1932,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:1934,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:1935,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_collectionsmodule.c:1936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1938
    functionName: deque_iter
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - find_module_state_by_def
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_NewRef
    - Py_SIZE
    - dequeobject_CAST
    - Py_TYPE
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_iter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dequeiterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:1943,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1944,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1944,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1947
    functionName: dequeiter_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - dequeiterobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:1952,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1955
    functionName: dequeiter_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - dequeiterobject_CAST
    linkageType: ''
    returnType: int
    signature: int dequeiter_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:1961,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_collectionsmodule.c:1962,1
    - Dst: dequeiter_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:1963,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_collectionsmodule.c:1964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dio
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1957
    functionDepth: 2
    functionLinenumber: 1957
    functionLinenumberEnd: 1966
    functionName: dequeiter_dealloc
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - dequeiter_clear
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dequeiter_dealloc(PyObject *dio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:1975,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:1981,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:1988,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:1992,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: 1981
        line_start: 1980
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1993
      start: 1968
    functionDepth: 1
    functionLinenumber: 1968
    functionLinenumberEnd: 1993
    functionName: dequeiter_next_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_NOT_END
    - PyErr_SetString
    - Py_NewRef
    - 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:1999,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2003,1
    - Dst: dequeiter_next_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:2004,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1995
    functionDepth: 2
    functionLinenumber: 1995
    functionLinenumberEnd: 2008
    functionName: dequeiter_next
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - dequeiterobject_CAST
    - dequeiter_next_lock_held
    - Py_END_CRITICAL_SECTION2
    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:2016,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_collectionsmodule.c:2017,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:2019,1
    - Dst: deque_iter
      Src: /src/cpython/Modules/_collectionsmodule.c:2021,1
    - Dst: dequeiter_next
      Src: /src/cpython/Modules/_collectionsmodule.c:2026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2036,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: 2018
        line_start: 2018
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 2043
      start: 2010
    functionDepth: 3
    functionLinenumber: 2010
    functionLinenumberEnd: 2043
    functionName: dequeiter_new
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_iter
    - get_module_state_by_cls
    - dequeiter_next
    - assert
    - PyArg_ParseTuple
    - Py_DECREF
    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:2048,1
    - Dst: FT_ATOMIC_LOAD_SSIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2049,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_collectionsmodule.c:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2051
    functionName: dequeiter_len
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE
    - dequeiterobject_CAST
    - PyLong_FromSsize_t
    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:2058,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2059,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2064,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2065,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2067,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_collectionsmodule.c:2068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2069
    functionName: dequeiter_reduce
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - dequeiterobject_CAST
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_SIZE
    - Py_BuildValue
    - 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:2103,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2103,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_collectionsmodule.c:2105,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:2108,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2111,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2113,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_collectionsmodule.c:2114,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_collectionsmodule.c:2115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2099
    functionDepth: 1
    functionLinenumber: 2099
    functionLinenumberEnd: 2117
    functionName: deque_reviter
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - find_module_state_by_def
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_SIZE
    - Py_NewRef
    - Py_TYPE
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_reviter(dequeobject *deque)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2128,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:2132,1
    - Dst: CHECK_NOT_END
      Src: /src/cpython/Modules/_collectionsmodule.c:2139,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2143,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: 2132
        line_start: 2131
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 2144
      start: 2119
    functionDepth: 1
    functionLinenumber: 2119
    functionLinenumberEnd: 2144
    functionName: dequereviter_next_lock_held
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_NOT_END
    - PyErr_SetString
    - Py_NewRef
    - 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:2150,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2154,1
    - Dst: dequereviter_next_lock_held
      Src: /src/cpython/Modules/_collectionsmodule.c:2155,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_collectionsmodule.c:2156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2146
    functionDepth: 2
    functionLinenumber: 2146
    functionLinenumberEnd: 2158
    functionName: dequereviter_next
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - dequeiterobject_CAST
    - dequereviter_next_lock_held
    - Py_END_CRITICAL_SECTION2
    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:2166,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_collectionsmodule.c:2167,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:2169,1
    - Dst: deque_reviter
      Src: /src/cpython/Modules/_collectionsmodule.c:2171,1
    - Dst: dequereviter_next
      Src: /src/cpython/Modules/_collectionsmodule.c:2176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2186,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: 2168
        line_start: 2168
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 2193
      start: 2160
    functionDepth: 3
    functionLinenumber: 2160
    functionLinenumberEnd: 2193
    functionName: dequereviter_new
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - assert
    - get_module_state_by_cls
    - deque_reviter
    - PyArg_ParseTuple
    - dequereviter_next
    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: 2223
      start: 2222
    functionDepth: 0
    functionLinenumber: 2222
    functionLinenumberEnd: 2223
    functionName: defdictobject_CAST
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: defdictobject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2236,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_collectionsmodule.c:2242,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_collectionsmodule.c:2244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2245,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_collectionsmodule.c:2248,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2256
    functionName: defdict_missing
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetDefaultRef
    - PyErr_SetObject
    - defdictobject_CAST
    - PyTuple_Pack
    - Py_DECREF
    - _PyObject_CallNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_missing(PyObject *op, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2261,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_collectionsmodule.c:2262,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2258
    functionDepth: 1
    functionLinenumber: 2258
    functionLinenumberEnd: 2264
    functionName: new_defdict
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    - defdictobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_defdict(PyObject *op, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_defdict
      Src: /src/cpython/Modules/_collectionsmodule.c:2275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2268
    functionDepth: 2
    functionLinenumber: 2268
    functionLinenumberEnd: 2276
    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:2307,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_collectionsmodule.c:2310,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_collectionsmodule.c:2312,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_collectionsmodule.c:2315,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2317,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:2320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2323,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_collectionsmodule.c:2326,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2278
    functionDepth: 1
    functionLinenumber: 2278
    functionLinenumberEnd: 2332
    functionName: defdict_reduce
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - defdictobject_CAST
    - PyObject_GetIter
    - PyTuple_Pack
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyTuple_New
    - _Py_ID
    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:2358,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2360,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_collectionsmodule.c:2361,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2362,1
    - Dst: tp_dealloc
      Src: /src/cpython/Modules/_collectionsmodule.c:2363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2355
    functionDepth: 1
    functionLinenumber: 2355
    functionLinenumberEnd: 2365
    functionName: defdict_dealloc
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - defdictobject_CAST
    - Py_CLEAR
    - PyObject_GC_UnTrack
    - tp_dealloc
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void defdict_dealloc(PyObject *op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2370,1
    - Dst: tp_repr
      Src: /src/cpython/Modules/_collectionsmodule.c:2374,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_collectionsmodule.c:2378,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_collectionsmodule.c:2381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2384,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_collectionsmodule.c:2387,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_collectionsmodule.c:2390,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_collectionsmodule.c:2391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2395,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_collectionsmodule.c:2398,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_collectionsmodule.c:2399,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2367
    functionDepth: 1
    functionLinenumber: 2367
    functionLinenumberEnd: 2404
    functionName: defdict_repr
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tp_repr
    - PyUnicode_FromString
    - Py_ReprLeave
    - defdictobject_CAST
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - PyObject_Repr
    - Py_DECREF
    - _PyType_Name
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_repr(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_collectionsmodule.c:2411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2411,1
    - Dst: assert
      Src: /src/cpython/Modules/_collectionsmodule.c:2420,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_collectionsmodule.c:2420,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2420,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2424,1
    - Dst: new_defdict
      Src: /src/cpython/Modules/_collectionsmodule.c:2429,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_collectionsmodule.c:2433,1
    - Dst: right::right
      Src: /src/cpython/Modules/_collectionsmodule.c:2433,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: 2419
        line_start: 2419
        source_file: /src/cpython/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 2438
      start: 2406
    functionDepth: 2
    functionLinenumber: 2406
    functionLinenumberEnd: 2438
    functionName: defdict_or
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - right::right
    - new_defdict
    - PyDict_Check
    - assert
    - PyType_GetBaseByToken
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_or(PyObject* left, PyObject* right)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defdictobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2443,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2444,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2444,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2445,1
    - Dst: tp_traverse
      Src: /src/cpython/Modules/_collectionsmodule.c:2446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2440
    functionDepth: 1
    functionLinenumber: 2440
    functionLinenumberEnd: 2447
    functionName: defdict_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tp_traverse
    - defdictobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2452,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2453,1
    - Dst: tp_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2455
    functionName: defdict_tp_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - defdictobject_CAST
    - 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:2460,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2465,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_collectionsmodule.c:2466,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2468,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_collectionsmodule.c:2470,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2471,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2472,1
    - Dst: PySequence_GetSlice
      Src: /src/cpython/Modules/_collectionsmodule.c:2477,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2481,1
    - Dst: tp_init
      Src: /src/cpython/Modules/_collectionsmodule.c:2482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2483,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2484,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2457
    functionDepth: 1
    functionLinenumber: 2457
    functionLinenumberEnd: 2486
    functionName: defdict_init
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyCallable_Check
    - Py_XNewRef
    - defdictobject_CAST
    - PyErr_SetString
    - tp_init
    - PyTuple_Check
    - Py_XDECREF
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PySequence_GetSlice
    - PyTuple_New
    linkageType: ''
    returnType: int
    signature: int defdict_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ADDR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2499
    functionDepth: 0
    functionLinenumber: 2499
    functionLinenumberEnd: 2500
    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:2551,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_collectionsmodule.c:2553,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2560,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2560,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2560,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Modules/_collectionsmodule.c:2561,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2561,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2562,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2562,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2562,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Modules/_collectionsmodule.c:2563,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2563,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2567,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_collectionsmodule.c:2582,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Modules/_collectionsmodule.c:2586,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Modules/_collectionsmodule.c:2591,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:2593,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/cpython/Modules/_collectionsmodule.c:2595,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2601,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_collectionsmodule.c:2602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2603,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/cpython/Modules/_collectionsmodule.c:2606,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2608,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2610,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_collectionsmodule.c:2614,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_collectionsmodule.c:2614,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_collectionsmodule.c:2618,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_collectionsmodule.c:2620,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_collectionsmodule.c:2623,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2627,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_collectionsmodule.c:2629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2631,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_collectionsmodule.c:2634,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2637,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2642,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2644,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2645,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2646,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2647,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_collectionsmodule.c:2648,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 77
    argCount: 3
    argNames:
    - module
    - mapping
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2651
    functionName: _collections__count_elements_impl
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - _PyType_LookupRef
    - _PyObject_HashFast
    - PyObject_GetIter
    - PyErr_Occurred
    - PyIter_Next
    - Py_TYPE
    - _PyDict_SetItem_KnownHash
    - _PyLong_GetOne
    - PyNumber_Add
    - Py_XDECREF
    - Py_INCREF
    - PyObject_CallFunctionObjArgs
    - _PyLong_GetZero
    - Py_DECREF
    - _PyDict_GetItem_KnownHash
    - Py_NewRef
    - PyObject_SetItem
    - _PyType_Lookup
    - PyObject_GetAttr
    - Py_CLEAR
    - PyDict_Check
    - _Py_ID
    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: 2662
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2662
    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:2677,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - index
    - doc
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2672
    functionDepth: 0
    functionLinenumber: 2672
    functionLinenumberEnd: 2684
    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:2689,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2693,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_collectionsmodule.c:2695,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2697,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_collectionsmodule.c:2699,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2703,1
    - Dst: valid_index
      Src: /src/cpython/Modules/_collectionsmodule.c:2707,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_collectionsmodule.c:2707,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2708,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_collectionsmodule.c:2712,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_collectionsmodule.c:2713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2686
    functionDepth: 1
    functionLinenumber: 2686
    functionLinenumberEnd: 2714
    functionName: tuplegetter_descr_get
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - valid_index
    - PyErr_SetString
    - PyErr_Format
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - tuplegetterobject_CAST
    - Py_NewRef
    - 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:2720,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_collectionsmodule.c:2722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2716
    functionDepth: 1
    functionLinenumber: 2716
    functionLinenumberEnd: 2725
    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:2730,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2731,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2731,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2727
    functionDepth: 1
    functionLinenumber: 2727
    functionLinenumberEnd: 2734
    functionName: tuplegetter_traverse
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tuplegetterobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2739,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2736
    functionDepth: 1
    functionLinenumber: 2736
    functionLinenumberEnd: 2742
    functionName: tuplegetter_clear
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - tuplegetterobject_CAST
    linkageType: ''
    returnType: int
    signature: int tuplegetter_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2747,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_collectionsmodule.c:2748,1
    - Dst: tuplegetter_clear
      Src: /src/cpython/Modules/_collectionsmodule.c:2749,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_collectionsmodule.c:2750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_collectionsmodule.c:2751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2744
    functionDepth: 2
    functionLinenumber: 2744
    functionLinenumberEnd: 2752
    functionName: tuplegetter_dealloc
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tuplegetter_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void tuplegetter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tuplegetterobject_CAST
      Src: /src/cpython/Modules/_collectionsmodule.c:2757,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_collectionsmodule.c:2758,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2754
    functionDepth: 1
    functionLinenumber: 2754
    functionLinenumberEnd: 2760
    functionName: tuplegetter_reduce
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tuplegetterobject_CAST
    - Py_TYPE
    - Py_BuildValue
    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:2765,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_collectionsmodule.c:2766,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_collectionsmodule.c:2767,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2762
    functionDepth: 1
    functionLinenumber: 2762
    functionLinenumberEnd: 2769
    functionName: tuplegetter_repr
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - tuplegetterobject_CAST
    - PyUnicode_FromFormat
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_collectionsmodule.c:2809,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2810,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2811,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2812,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2813,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_collectionsmodule.c:2814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2806
    functionDepth: 1
    functionLinenumber: 2806
    functionLinenumberEnd: 2816
    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:2821,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2822,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2823,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2824,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2825,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_collectionsmodule.c:2826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2818
    functionDepth: 1
    functionLinenumber: 2818
    functionLinenumberEnd: 2828
    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:2833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2834
      start: 2830
    functionDepth: 2
    functionLinenumber: 2830
    functionLinenumberEnd: 2834
    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: 2857
      start: 2847
    functionDepth: 0
    functionLinenumber: 2847
    functionLinenumberEnd: 2857
    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:2860,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2861,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2862,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2863,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2864,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_collectionsmodule.c:2865,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_collectionsmodule.c:2867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2858
    functionDepth: 1
    functionLinenumber: 2858
    functionLinenumberEnd: 2872
    functionName: collections_exec
    functionSourceFile: /src/cpython/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - ADD_TYPE
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int collections_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_collectionsmodule.c:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2896
    functionDepth: 1
    functionLinenumber: 2896
    functionLinenumberEnd: 2900
    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:
    - PyErr_Format
    - get_testerror
    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:
    - PyErr_Format
    - get_testerror
    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: pycompilestringexflags
      Src: /src/cpython/Modules/_testcapimodule.c:230,1
    - Dst: Py_CompileStringExFlags
      Src: /src/cpython/Modules/_testcapimodule.c:238,1
    - Dst: test_lazy_hash_inheritance
      Src: /src/cpython/Modules/_testcapimodule.c:242,1
    - Dst: Py_UNUSED
      Src: /src/cpython/Modules/_testcapimodule.c:242,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapimodule.c:256,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:258,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:259,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:260,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:266,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:269,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_testcapimodule.c:273,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:274,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:275,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:276,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:279,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:284,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:287,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:292,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:299,1
    - Dst: return_none
      Src: /src/cpython/Modules/_testcapimodule.c:305,1
    - Dst: raise_error
      Src: /src/cpython/Modules/_testcapimodule.c:311,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapimodule.c:357,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:362,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:367,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:368,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:369,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:369,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:375,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:376,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:377,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:378,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:378,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:382,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:383,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:384,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:389,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 391
    functionName: CHECK_SIZEOF
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached:
    - test_lazy_hash_inheritance
    - Py_BuildValue
    - get_testerror
    - PyErr_Occurred
    - PyObject_New
    - PyObject_Hash
    - return_none
    - pycompilestringexflags
    - PyList_New
    - Py_UNUSED
    - Py_INCREF
    - PyErr_SetString
    - Py_CompileStringExFlags
    - Py_REFCNT
    - PyErr_Clear
    - PyBytes_AsString
    - Py_DECREF
    - PyVarObject_HEAD_INIT
    - Py_CompileString
    - PyErr_Format
    - raise_error
    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*\npycompilestringexflags(PyObject *self, PyObject *args) {\n    const
      char *the_string, *filename;\n    int start, flags;\n    if (!PyArg_ParseTuple(args,
      \"ysii\", &the_string, &filename, &start, &flags)) {\n        return NULL;\n
      \   }\n    PyCompilerFlags cf = _PyCompilerFlags_INIT;\n    cf.cf_flags = flags;\n
      \   return Py_CompileStringExFlags(the_string, filename, start, &cf, -1);\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:398,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:402,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:403,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:408,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:411,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:416,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:418,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:420,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:422,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:424,1
    - Dst: test_buildvalue_N_error
      Src: /src/cpython/Modules/_testcapimodule.c:426,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 430
    functionName: test_buildvalue_N
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_BuildValue
    - Py_REFCNT
    - raiseTestError
    - PyList_New
    - Py_DECREF
    - test_buildvalue_N_error
    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:435,1
    - Dst: Py_IsTrue
      Src: /src/cpython/Modules/_testcapimodule.c:439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:440,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:443,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:445,1
    - Dst: Py_IsFalse
      Src: /src/cpython/Modules/_testcapimodule.c:449,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:450,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 456
    functionName: test_buildvalue_p
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_IsFalse
    - Py_IsTrue
    - Py_BuildValue
    - raiseTestError
    - Py_DECREF
    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: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_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: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: 1
    functionLinenumber: 464
    functionLinenumberEnd: 468
    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:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 474
    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:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 486
    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:502,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:503,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:505,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - callable
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 508
    functionName: _make_call
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyGILState_Ensure
    - PyObject_CallNoArgs
    - PyGILState_Release
    linkageType: ''
    returnType: int
    signature: int _make_call(void *callable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _make_call
      Src: /src/cpython/Modules/_testcapimodule.c:516,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - callable
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 518
    functionName: _make_call_from_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - _make_call
    linkageType: ''
    returnType: void
    signature: void _make_call_from_thread(void *callable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:526,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_testcapimodule.c:529,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapimodule.c:530,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapimodule.c:534,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:536,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:537,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testcapimodule.c:540,1
    - Dst: _make_call
      Src: /src/cpython/Modules/_testcapimodule.c:542,1
    - Dst: _make_call
      Src: /src/cpython/Modules/_testcapimodule.c:545,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:546,1
    - Dst: _make_call
      Src: /src/cpython/Modules/_testcapimodule.c:555,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:556,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 566
    functionName: test_thread_state
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyErr_NoMemory
    - PyCallable_Check
    - _make_call
    - PyErr_Format
    - PyThread_start_new_thread
    - PyArg_ParseTuple
    - PyThread_free_lock
    - PyThread_allocate_lock
    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:571,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 574
    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:580,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:581,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: wait_for_lock
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached:
    - PyThread_release_lock
    - PyThread_free_lock
    - PyThread_acquire_lock
    linkageType: ''
    returnType: void
    signature: void wait_for_lock(void *unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:593,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapimodule.c:596,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:598,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:599,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testcapimodule.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 602
    functionName: spawn_pthread_waiter
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyErr_NoMemory
    - PyErr_SetString
    - PyThread_start_new_thread
    - PyThread_allocate_lock
    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:608,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: end_spawned_pthread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyErr_SetString
    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:621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:622,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: _pending_callback
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallNoArgs
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _pending_callback(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testcapimodule.c:639,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:648,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/_testcapimodule.c:653,1
    - Dst: Py_AddPendingCall
      Src: /src/cpython/Modules/_testcapimodule.c:661,1
    - Dst: Py_AddPendingCall
      Src: /src/cpython/Modules/_testcapimodule.c:665,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Modules/_testcapimodule.c:672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:676,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapimodule.c:679,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - arg
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 680
    functionName: pending_threadfunc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_AddPendingCall
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - PyEval_RestoreThread
    - PyEval_SaveThread
    - PyLong_FromUnsignedLong
    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:694,1
    - Dst: PyCapsule_GetDestructor
      Src: /src/cpython/Modules/_testcapimodule.c:696,1
    - Dst: PyCapsule_GetName
      Src: /src/cpython/Modules/_testcapimodule.c:698,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 703
    functionName: capsule_destructor
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCapsule_GetContext
    - PyCapsule_GetDestructor
    - PyCapsule_GetName
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void capsule_destructor(PyObject *o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: KNOWN_CAPSULE
      Src: /src/cpython/Modules/_testcapimodule.c:719,1
    - Dst: KNOWN_CAPSULE
      Src: /src/cpython/Modules/_testcapimodule.c:720,1
    - Dst: KNOWN_CAPSULE
      Src: /src/cpython/Modules/_testcapimodule.c:721,1
    - Dst: KNOWN_CAPSULE
      Src: /src/cpython/Modules/_testcapimodule.c:722,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_testcapimodule.c:744,1
    - Dst: PyCapsule_SetContext
      Src: /src/cpython/Modules/_testcapimodule.c:745,1
    - Dst: capsule_destructor
      Src: /src/cpython/Modules/_testcapimodule.c:746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:748,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_testcapimodule.c:751,1
    - Dst: PyCapsule_SetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:752,1
    - Dst: PyCapsule_SetName
      Src: /src/cpython/Modules/_testcapimodule.c:753,1
    - Dst: PyCapsule_SetDestructor
      Src: /src/cpython/Modules/_testcapimodule.c:754,1
    - Dst: PyCapsule_SetContext
      Src: /src/cpython/Modules/_testcapimodule.c:755,1
    - Dst: capsule_destructor
      Src: /src/cpython/Modules/_testcapimodule.c:756,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:759,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:760,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:761,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:763,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:766,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:769,1
    - Dst: PyCapsule_SetDestructor
      Src: /src/cpython/Modules/_testcapimodule.c:773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:774,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:776,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testcapimodule.c:793,1
    - Dst: PyCapsule_Import
      Src: /src/cpython/Modules/_testcapimodule.c:795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:797,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:798,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapimodule.c:800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:802,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:809,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:810,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:815,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:817,1
    - Dst: FAIL
      Src: /src/cpython/Modules/_testcapimodule.c:820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:825,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:828,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:833,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 837
    functionName: test_capsule
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyCapsule_SetDestructor
    - FAIL
    - PyCapsule_GetPointer
    - PyCapsule_SetContext
    - PyCapsule_New
    - PyCapsule_SetName
    - raiseTestError
    - PyErr_Clear
    - PyCapsule_SetPointer
    - PyErr_Occurred
    - PyCapsule_Import
    - Py_DECREF
    - PyObject_GetAttrString
    - KNOWN_CAPSULE
    - capsule_destructor
    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: 732
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 732
    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: 792
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 792
    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:849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - test
    - s
    - e
    argTypes:
    - int
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 850
    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:861,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:865,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:867,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:868,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:872,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:876,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:878,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:879,1
    - Dst: malloc
      Src: /src/cpython/Modules/_testcapimodule.c:883,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:885,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:886,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:892,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:895,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:896,1
    - Dst: free
      Src: /src/cpython/Modules/_testcapimodule.c:897,1
    - Dst: malloc
      Src: /src/cpython/Modules/_testcapimodule.c:901,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:903,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:904,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:910,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:913,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:914,1
    - Dst: free
      Src: /src/cpython/Modules/_testcapimodule.c:915,1
    - Dst: malloc
      Src: /src/cpython/Modules/_testcapimodule.c:918,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:920,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:921,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:927,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:930,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:931,1
    - Dst: free
      Src: /src/cpython/Modules/_testcapimodule.c:932,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:935,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:936,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_testcapimodule.c:938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:939,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:942,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:943,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:946,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:949,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_testcapimodule.c:951,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:952,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_testcapimodule.c:954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:955,1
    - Dst: print_delta
      Src: /src/cpython/Modules/_testcapimodule.c:956,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 83
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 959
    functionName: profile_int
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - malloc
    - gettimeofday
    - PyLong_FromLong
    - free
    - PyErr_NoMemory
    - PyNumber_Add
    - print_delta
    - Py_XDECREF
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      profile_int(PyObject *self, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:968,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (str1)
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 971
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 971
    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:977,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:984,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:985,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 990
    functionName: argparsing
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - PyLong_FromSsize_t
    - PyErr_Clear
    - PyArg_ParseTuple
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      argparsing(PyObject *o, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1000,1
    - Dst: PyCode_NewEmpty
      Src: /src/cpython/Modules/_testcapimodule.c:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1005
    functionName: code_newempty
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyCode_NewEmpty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_newempty(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_testcapimodule.c:1011,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_testcapimodule.c:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1014
    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:1025,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_testcapimodule.c:1030,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_testcapimodule.c:1033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1034
    functionName: buffer_fill_info
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyBuffer_FillInfo
    - PyMemoryView_FromBuffer
    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:1060,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1064,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:1064,1
    - Dst: PyBuffer_FromContiguous
      Src: /src/cpython/Modules/_testcapimodule.c:1073,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1077,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:1077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1036
    functionDepth: 3
    functionLinenumber: 1036
    functionLinenumberEnd: 1084
    functionName: test_from_contiguous
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBuffer_FromContiguous
    - get_testerror
    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:1096,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1097,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:1097,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:1098,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_testcapimodule.c:1103,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:1109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1110,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testcapimodule.c:1115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1116,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1117,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:1117,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:1118,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1125,1
    - Dst: get_testerror
      Src: /src/cpython/Modules/_testcapimodule.c:1125,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1128
    functionName: test_pep3118_obsolete_write_locks
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_Clear
    - PyBuffer_FillInfo
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - PyObject_GetBuffer
    - Py_DECREF
    - get_testerror
    - PyTypeObject*::tp_alloc
    - PyImport_ImportModuleAttrString
    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:1137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1141
    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:1149,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:1154,1
    - Dst: PyBuffer_SizeFromFormat
      Src: /src/cpython/Modules/_testcapimodule.c:1154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1155
    functionName: test_PyBuffer_SizeFromFormat
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyBuffer_SizeFromFormat
    - RETURN_SIZE
    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: 1170
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1170
    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:1176,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/_testcapimodule.c:1178,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1179,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1185,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1186,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:1188,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/_testcapimodule.c:1192,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1198,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1199,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1206
    functionName: test_current_tstate_matches
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Get
    - PyThreadState_Swap
    - PyErr_SetString
    - Py_NewInterpreter
    - PyGILState_GetThisThreadState
    - Py_EndInterpreter
    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:1218,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:1222,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1224,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1226,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1231,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1232,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/cpython/Modules/_testcapimodule.c:1235,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1236,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:1238,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:1240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1241
    functionName: run_in_subinterp
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyRun_SimpleStringFlags
    - PyLong_FromLong
    - PyThreadState_Get
    - PyThreadState_Swap
    - PyErr_SetString
    - Py_NewInterpreter
    - PyArg_ParseTuple
    - Py_EndInterpreter
    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:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1249
    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:1274,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1278,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1278,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1279,1
    - Dst: PyType_FastSubclass
      Src: /src/cpython/Modules/_testcapimodule.c:1279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(structseq_type))
      pos:
        line_end: 1277
        line_start: 1277
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyType_FastSubclass(structseq_type, Py_TPFLAGS_TUPLE_SUBCLASS))
      pos:
        line_end: 1278
        line_start: 1278
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1283
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1283
    functionName: test_structseq_newtype_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyType_FastSubclass
    - PyType_Check
    - PyStructSequence_NewType
    - assert
    - Py_DECREF
    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:1295,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1296,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1297,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1297,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1298,1
    - Dst: PyType_FastSubclass
      Src: /src/cpython/Modules/_testcapimodule.c:1298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (structseq_type != NULL)
      pos:
        line_end: 1295
        line_start: 1295
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyType_Check(structseq_type))
      pos:
        line_end: 1296
        line_start: 1296
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyType_FastSubclass(structseq_type, Py_TPFLAGS_TUPLE_SUBCLASS))
      pos:
        line_end: 1297
        line_start: 1297
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1302
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1302
    functionName: test_structseq_newtype_null_descr_doc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyType_FastSubclass
    - PyType_Check
    - PyStructSequence_NewType
    - assert
    - Py_DECREF
    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:1317,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:1320,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:1322,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapimodule.c:1323,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_testcapimodule.c:1326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1329,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:1333,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1336
    functionName: temporary_c_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - PyGILState_Ensure
    - PyGILState_Release
    - PyThread_release_lock
    - Py_CLEAR
    - PyObject_CallNoArgs
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void temporary_c_thread(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1347,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1352,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1353,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1356,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:1360,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1362,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1363,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testcapimodule.c:1365,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1367,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1368,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1369,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1373,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1374,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1382,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:1385,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapimodule.c:1388,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1390,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1394,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1398
    functionName: call_in_temporary_c_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyErr_SetString
    - PyThread_release_lock
    - Py_CLEAR
    - PyThread_free_lock
    - PyThread_start_new_thread
    - PyArg_ParseTuple
    - Py_NewRef
    - PyThread_allocate_lock
    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:1405,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1408,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapimodule.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1413
    functionName: join_temporary_c_thread
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThread_free_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:1425,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1429,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1431,1
    - Dst: PyMarshal_WriteLongToFile
      Src: /src/cpython/Modules/_testcapimodule.c:1435,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1436,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1436,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1435
        line_start: 1435
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1440
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1440
    functionName: pymarshal_write_long_to_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - fclose
    - Py_fopen
    - PyMarshal_WriteLongToFile
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    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:1450,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1454,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1456,1
    - Dst: PyMarshal_WriteObjectToFile
      Src: /src/cpython/Modules/_testcapimodule.c:1460,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1461,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1461,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1460
        line_start: 1460
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1465
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1465
    functionName: pymarshal_write_object_to_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - fclose
    - Py_fopen
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    - PyMarshal_WriteObjectToFile
    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:1475,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1478,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1480,1
    - Dst: PyMarshal_ReadShortFromFile
      Src: /src/cpython/Modules/_testcapimodule.c:1484,1
    - Dst: ftell
      Src: /src/cpython/Modules/_testcapimodule.c:1485,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1487,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1488,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1491
    functionName: pymarshal_read_short_from_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - ftell
    - fclose
    - Py_fopen
    - Py_BuildValue
    - PyErr_Occurred
    - PyMarshal_ReadShortFromFile
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    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:1500,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1503,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1505,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Modules/_testcapimodule.c:1509,1
    - Dst: ftell
      Src: /src/cpython/Modules/_testcapimodule.c:1510,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1512,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:1513,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1516
    functionName: pymarshal_read_long_from_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - ftell
    - fclose
    - Py_fopen
    - Py_BuildValue
    - PyErr_Occurred
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    - PyMarshal_ReadLongFromFile
    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:1522,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1525,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1527,1
    - Dst: PyMarshal_ReadLastObjectFromFile
      Src: /src/cpython/Modules/_testcapimodule.c:1531,1
    - Dst: ftell
      Src: /src/cpython/Modules/_testcapimodule.c:1532,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1534,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1539
    functionName: pymarshal_read_last_object_from_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - ftell
    - fclose
    - Py_fopen
    - Py_BuildValue
    - PyArg_ParseTuple
    - PyMarshal_ReadLastObjectFromFile
    - PyErr_SetFromErrno
    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:1545,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_testcapimodule.c:1548,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapimodule.c:1550,1
    - Dst: PyMarshal_ReadObjectFromFile
      Src: /src/cpython/Modules/_testcapimodule.c:1554,1
    - Dst: ftell
      Src: /src/cpython/Modules/_testcapimodule.c:1555,1
    - Dst: fclose
      Src: /src/cpython/Modules/_testcapimodule.c:1557,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1562
    functionName: pymarshal_read_object_from_file
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - ftell
    - fclose
    - PyMarshal_ReadObjectFromFile
    - Py_fopen
    - Py_BuildValue
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    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:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1571
    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:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1580
    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:1586,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1590,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_testcapimodule.c:1591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1592
    functionName: getitem_with_error
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyObject_GetItem
    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:1600,1
    - Dst: raise
      Src: /src/cpython/Modules/_testcapimodule.c:1613,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_testcapimodule.c:1614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1615
    functionName: raise_SIGINT_then_send_None
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyObject_CallMethod
    - raise
    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:1622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1618
    functionDepth: 1
    functionLinenumber: 1618
    functionLinenumberEnd: 1623
    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:1631,1
    - Dst: W_STOPCODE
      Src: /src/cpython/Modules/_testcapimodule.c:1634,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:1635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1636
    functionName: py_w_stopcode
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    - W_STOPCODE
    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:1644,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1645,1
    - Dst: PyThread_tss_create
      Src: /src/cpython/Modules/_testcapimodule.c:1649,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1650,1
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Modules/_testcapimodule.c:1653,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1654,1
    - Dst: PyThread_tss_create
      Src: /src/cpython/Modules/_testcapimodule.c:1658,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1659,1
    - Dst: CHECK_TSS_API
      Src: /src/cpython/Modules/_testcapimodule.c:1673,1
    - Dst: PyThread_tss_set
      Src: /src/cpython/Modules/_testcapimodule.c:1673,1
    - Dst: CHECK_TSS_API
      Src: /src/cpython/Modules/_testcapimodule.c:1674,1
    - Dst: PyThread_tss_get
      Src: /src/cpython/Modules/_testcapimodule.c:1674,1
    - Dst: PyThread_tss_delete
      Src: /src/cpython/Modules/_testcapimodule.c:1676,1
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Modules/_testcapimodule.c:1677,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1678,1
    - Dst: PyThread_tss_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:1683,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1685,1
    - Dst: PyThread_tss_is_created
      Src: /src/cpython/Modules/_testcapimodule.c:1688,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testcapimodule.c:1689,1
    - Dst: PyThread_tss_free
      Src: /src/cpython/Modules/_testcapimodule.c:1693,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1696
    functionName: test_pythread_tss_key_state
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_is_created
    - CHECK_TSS_API
    - PyThread_tss_create
    - PyErr_SetString
    - PyThread_tss_set
    - raiseTestError
    - PyThread_tss_free
    - PyThread_tss_alloc
    - PyThread_tss_get
    - PyThread_tss_delete
    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: 1672
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1672
    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:1707,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:1711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1715,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_testcapimodule.c:1717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1703
    functionDepth: 1
    functionLinenumber: 1703
    functionLinenumberEnd: 1718
    functionName: bad_get
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyObject_Repr
    - Py_DECREF
    - PyObject_CallNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bad_get(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:1735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1736
    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:1741,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1742
    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:1747,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1747,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1744
    functionDepth: 1
    functionLinenumber: 1744
    functionLinenumberEnd: 1748
    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:1753,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1754
    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:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1760
    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:1765,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:1770,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapimodule.c:1771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - args
    - nargs
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1774
    functionName: _fastcall_to_tuple
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - Py_INCREF
    - 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:1779,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1780,1
    - Dst: _fastcall_to_tuple
      Src: /src/cpython/Modules/_testcapimodule.c:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1776
    functionDepth: 2
    functionLinenumber: 1776
    functionLinenumberEnd: 1782
    functionName: meth_fastcall
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _null_to_none
    - _fastcall_to_tuple
    - Py_BuildValue
    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:1788,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1792,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testcapimodule.c:1794,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:1796,1
    - Dst: _null_to_none
      Src: /src/cpython/Modules/_testcapimodule.c:1796,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: 1791
        line_start: 1791
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1797
      start: 1784
    functionDepth: 2
    functionLinenumber: 1784
    functionLinenumberEnd: 1797
    functionName: meth_fastcall_keywords
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Vectorcall
    - Py_BuildValue
    - _null_to_none
    - _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:1806,1
    - Dst: PyCFunction_Call
      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: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1810
    functionName: test_pycfunction_call
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyCFunction_Call
    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:1817,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Modules/_testcapimodule.c:1821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1822
    functionName: pynumber_tobase
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyNumber_ToBase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pynumber_tobase(PyObject *module, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapimodule.c:1843,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1846,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1846,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1849,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapimodule.c:1855,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:1859,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:1861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1863,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: 1845
        line_start: 1845
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1867
      start: 1839
    functionDepth: 1
    functionLinenumber: 1839
    functionLinenumberEnd: 1867
    functionName: get_basic_static_type
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - PyTuple_Pack
    - assert
    - PyArg_ParseTuple
    - Py_DECREF
    - PyType_Ready
    - Py_NewRef
    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:1875,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1876,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:1879,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1880,1
    - Dst: PyThreadState_GetUnchecked
      Src: /src/cpython/Modules/_testcapimodule.c:1883,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1884,1
    - Dst: PyThreadState_EnterTracing
      Src: /src/cpython/Modules/_testcapimodule.c:1887,1
    - Dst: PyThreadState_LeaveTracing
      Src: /src/cpython/Modules/_testcapimodule.c:1888,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Modules/_testcapimodule.c:1891,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1894,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1895,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1895,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:1899,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1900,1
    - Dst: PyThreadState_GetFrame
      Src: /src/cpython/Modules/_testcapimodule.c:1903,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1904,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1905,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testcapimodule.c:1905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:1906,1
    - Dst: PyThreadState_GetID
      Src: /src/cpython/Modules/_testcapimodule.c:1909,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:1910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1875
        line_start: 1875
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (interp != NULL)
      pos:
        line_end: 1899
        line_start: 1899
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (frame != NULL)
      pos:
        line_end: 1903
        line_start: 1903
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (tstate2 == tstate)
      pos:
        line_end: 1879
        line_start: 1879
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (dict != NULL)
      pos:
        line_end: 1893
        line_start: 1893
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (id >= 1)
      pos:
        line_end: 1909
        line_start: 1909
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (tstate3 == tstate)
      pos:
        line_end: 1883
        line_start: 1883
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyFrame_Check(frame))
      pos:
        line_end: 1904
        line_start: 1904
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 1894
        line_start: 1894
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 1913
      start: 1871
    functionDepth: 1
    functionLinenumber: 1871
    functionLinenumberEnd: 1913
    functionName: test_tstate_capi
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_GetFrame
    - PyFrame_Check
    - assert
    - PyThreadState_Get
    - PyThreadState_GetInterpreter
    - PyDict_Check
    - PyThreadState_EnterTracing
    - Py_DECREF
    - PyThreadState_GetDict
    - PyThreadState_LeaveTracing
    - PyThreadState_GetID
    - PyThreadState_GetUnchecked
    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:1918,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:1919,1
    - Dst: PyGen_GetCode
      Src: /src/cpython/Modules/_testcapimodule.c:1922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - gen
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1915
    functionDepth: 1
    functionLinenumber: 1915
    functionLinenumberEnd: 1923
    functionName: gen_get_code
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyGen_GetCode
    - PyErr_SetString
    - PyGen_Check
    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:1940,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1954,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1955,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1956,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1957,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapimodule.c:1958,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapimodule.c:1963,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testcapimodule.c:1964,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_testcapimodule.c:1969,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_testcapimodule.c:1971,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:1973,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_testcapimodule.c:1979,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapimodule.c:1990,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_testcapimodule.c:1991,1
    - Dst: PyEval_EvalCodeEx
      Src: /src/cpython/Modules/_testcapimodule.c:1994,1
    - Dst: PyMem_DEL
      Src: /src/cpython/Modules/_testcapimodule.c:2010,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - mod
    - pos_args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 2014
    functionName: eval_eval_code_ex
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_Size
    - PyDict_Size
    - PyMem_NEW
    - PyErr_NoMemory
    - PyEval_EvalCodeEx
    - PyDict_Next
    - NULLABLE
    - PyArg_ParseTuple
    - PyMem_DEL
    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:2019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2026
    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:2031,1
    - Dst: PyCode_GetCode
      Src: /src/cpython/Modules/_testcapimodule.c:2037,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2041,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_testcapimodule.c:2041,1
    - Dst: PyObject_Length
      Src: /src/cpython/Modules/_testcapimodule.c:2042,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2047,1
    - Dst: PyCode_GetVarnames
      Src: /src/cpython/Modules/_testcapimodule.c:2051,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapimodule.c:2055,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2057,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:2060,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2065,1
    - Dst: PyCode_GetCellvars
      Src: /src/cpython/Modules/_testcapimodule.c:2069,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapimodule.c:2073,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2075,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:2078,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2083,1
    - Dst: PyCode_GetFreevars
      Src: /src/cpython/Modules/_testcapimodule.c:2087,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testcapimodule.c:2091,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2093,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:2096,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2106,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: 2040
        line_start: 2040
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2108
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2108
    functionName: test_code_api
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCode_NewEmpty
    - PyCode_GetFreevars
    - PyCode_GetVarnames
    - PyErr_SetString
    - PyCode_GetCellvars
    - PyBytes_CheckExact
    - PyObject_Length
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - PyCode_GetCode
    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:2113,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2113,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:2118,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/cpython/Modules/_testcapimodule.c:2122,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:2123,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapimodule.c:2127,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapimodule.c:2131,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapimodule.c:2132,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2137,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2138,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2139,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: 2112
        line_start: 2112
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2141
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2141
    functionName: record_func
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyFrame_GetLineNumber
    - PyList_Append
    - PyList_Check
    - PyTuple_SET_ITEM
    - PyTuple_Pack
    - Py_XDECREF
    - 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:2147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2148,1
    - Dst: PyEval_SetTrace
      Src: /src/cpython/Modules/_testcapimodule.c:2151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2153
    functionName: settrace_to_record
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyEval_SetTrace
    - PyList_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      settrace_to_record(PyObject *self, PyObject *list)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2158,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2158,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testcapimodule.c:2161,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapimodule.c:2164,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2167,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: 2157
        line_start: 2157
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2169
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2169
    functionName: error_func
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_SetString
    - PyList_Check
    - PyList_Append
    - PyList_GET_SIZE
    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:2174,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2175,1
    - Dst: PyEval_SetTrace
      Src: /src/cpython/Modules/_testcapimodule.c:2178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2171
    functionDepth: 1
    functionLinenumber: 2171
    functionLinenumberEnd: 2180
    functionName: settrace_to_error
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyEval_SetTrace
    - PyList_Check
    - PyErr_SetString
    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:2192,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2196,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_testcapimodule.c:2196,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2197,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_testcapimodule.c:2197,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2198,1
    - Dst: Py_ABS
      Src: /src/cpython/Modules/_testcapimodule.c:2198,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2201,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapimodule.c:2201,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_testcapimodule.c:2201,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2205,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapimodule.c:2205,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2209,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/_testcapimodule.c:2209,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2213,1
    - Dst: _Py_IS_TYPE_SIGNED
      Src: /src/cpython/Modules/_testcapimodule.c:2213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_MIN(5, 11) == 5)
      pos:
        line_end: 2195
        line_start: 2195
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_MAX(5, 11) == 11)
      pos:
        line_end: 2196
        line_start: 2196
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_ABS(-5) == 5)
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (strcmp(Py_STRINGIFY(123), "123") == 0)
      pos:
        line_end: 2200
        line_start: 2200
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_CHARMASK(c) == 7)
      pos:
        line_end: 2208
        line_start: 2208
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_ARRAY_LENGTH(array) == 3)
      pos:
        line_end: 2204
        line_start: 2204
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!_Py_IS_TYPE_SIGNED(unsigned int))
      pos:
        line_end: 2212
        line_start: 2212
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2216
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2216
    functionName: test_macros
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _Py_IS_TYPE_SIGNED
    - strcmp
    - Py_ARRAY_LENGTH
    - Py_MAX
    - Py_CHARMASK
    - Py_MIN
    - Py_BUILD_ASSERT
    - assert
    - Py_STRINGIFY
    - Py_ABS
    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:2226,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:2231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2232,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:2236,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:2239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2241,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2246,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2246,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2247,1
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Modules/_testcapimodule.c:2247,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2248,1
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Modules/_testcapimodule.c:2248,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2249,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:2249,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2253,1
    - Dst: PyWeakref_GetRef
      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:2255,1
    - Dst: PyWeakref_IsDead
      Src: /src/cpython/Modules/_testcapimodule.c:2255,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2256,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:2256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2257,1
    - Dst: PyWeakref_GetObject
      Src: /src/cpython/Modules/_testcapimodule.c:2260,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2261,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2264,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapimodule.c:2264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2265,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2267,1
    - Dst: PyWeakref_IsDead
      Src: /src/cpython/Modules/_testcapimodule.c:2267,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2271,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_testcapimodule.c:2271,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2272,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2276,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2276,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2277,1
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Modules/_testcapimodule.c:2277,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2278,1
    - Dst: PyWeakref_CheckRefExact
      Src: /src/cpython/Modules/_testcapimodule.c:2278,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2281,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:2281,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2283,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_testcapimodule.c:2283,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2284,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2284,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2285,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2286,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2289,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapimodule.c:2289,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2290,1
    - Dst: PyWeakref_IsDead
      Src: /src/cpython/Modules/_testcapimodule.c:2290,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2291,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2291,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2292,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2295,1
    - Dst: PyWeakref_GetObject
      Src: /src/cpython/Modules/_testcapimodule.c:2295,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2296,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2296,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2297,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2301,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_testcapimodule.c:2301,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2302,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2302,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2303,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2304,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2307,1
    - Dst: PyWeakref_IsDead
      Src: /src/cpython/Modules/_testcapimodule.c:2307,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2308,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2308,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2309,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2312,1
    - Dst: PyWeakref_GetObject
      Src: /src/cpython/Modules/_testcapimodule.c:2312,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2313,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testcapimodule.c:2313,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyWeakref_CheckRefExact(weakref))
      pos:
        line_end: 2246
        line_start: 2246
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyWeakref_IsDead(weakref))
      pos:
        line_end: 2254
        line_start: 2254
        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) == (refcnt + 1))
      pos:
        line_end: 2255
        line_start: 2255
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == obj)
      pos:
        line_end: 2260
        line_start: 2260
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 2263
        line_start: 2263
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_IsDead(weakref))
      pos:
        line_end: 2266
        line_start: 2266
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2288
        line_start: 2288
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == NULL)
      pos:
        line_end: 2302
        line_start: 2302
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_SystemError))
      pos:
        line_end: 2312
        line_start: 2312
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_IsDead(NULL) == -1)
      pos:
        line_end: 2306
        line_start: 2306
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (Py_REFCNT(obj) == refcnt)
      pos:
        line_end: 2248
        line_start: 2248
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == NULL)
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_TypeError))
      pos:
        line_end: 2283
        line_start: 2283
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_SystemError))
      pos:
        line_end: 2295
        line_start: 2295
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_CheckRefExact(weakref))
      pos:
        line_end: 2247
        line_start: 2247
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetRef(weakref, &ref) == 0)
      pos:
        line_end: 2270
        line_start: 2270
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2280
        line_start: 2280
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_TypeError))
      pos:
        line_end: 2290
        line_start: 2290
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ref == NULL)
      pos:
        line_end: 2285
        line_start: 2285
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_SystemError))
      pos:
        line_end: 2307
        line_start: 2307
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetObject(invalid_weakref) == NULL)
      pos:
        line_end: 2294
        line_start: 2294
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_Check(weakref))
      pos:
        line_end: 2245
        line_start: 2245
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetRef(weakref, &ref) == 1)
      pos:
        line_end: 2252
        line_start: 2252
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyWeakref_Check(invalid_weakref))
      pos:
        line_end: 2275
        line_start: 2275
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyWeakref_CheckRefExact(invalid_weakref))
      pos:
        line_end: 2276
        line_start: 2276
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyWeakref_CheckRefExact(invalid_weakref))
      pos:
        line_end: 2277
        line_start: 2277
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyErr_ExceptionMatches(PyExc_SystemError))
      pos:
        line_end: 2301
        line_start: 2301
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetObject(NULL) == NULL)
      pos:
        line_end: 2311
        line_start: 2311
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetRef(NULL, &ref) == -1)
      pos:
        line_end: 2300
        line_start: 2300
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_GetRef(invalid_weakref, &ref) == -1)
      pos:
        line_end: 2282
        line_start: 2282
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyWeakref_IsDead(invalid_weakref) == -1)
      pos:
        line_end: 2289
        line_start: 2289
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2319
      start: 2218
    functionDepth: 1
    functionLinenumber: 2218
    functionLinenumberEnd: 2319
    functionName: test_weakref_capi
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyWeakref_IsDead
    - PyWeakref_CheckRefExact
    - PyWeakref_GetObject
    - PyObject_CallFunction
    - Py_REFCNT
    - PyWeakref_NewRef
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyObject_CallNoArgs
    - assert
    - Py_DECREF
    - PyErr_Occurred
    - PyWeakref_Check
    - PyWeakref_GetRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_weakref_capi(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2330,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapimodule.c:2330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    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: 2329
        line_start: 2329
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2346
      start: 2328
    functionDepth: 1
    functionLinenumber: 2328
    functionLinenumberEnd: 2346
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyRefTracer_GetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2353,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2358,1
    - Dst: PyRefTracer_GetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2364,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2365,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2366,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapimodule.c:2371,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testcapimodule.c:2375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2383,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2386,1
    - Dst: PyRefTracer_GetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2389,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2397,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2404,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2408,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2411,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2414,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2348
    functionDepth: 1
    functionLinenumber: 2348
    functionLinenumberEnd: 2416
    functionName: test_reftracer
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyRefTracer_SetTracer
    - PyErr_SetString
    - PyRefTracer_GetTracer
    - PyList_New
    - Py_DECREF
    - 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:2421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2425
    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:2430,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testcapimodule.c:2431,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testcapimodule.c:2433,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testcapimodule.c:2434,1
    - Dst: Py_BEGIN_CRITICAL_SECTION_MUTEX
      Src: /src/cpython/Modules/_testcapimodule.c:2439,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testcapimodule.c:2440,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2_MUTEX
      Src: /src/cpython/Modules/_testcapimodule.c:2442,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testcapimodule.c:2443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2427
    functionDepth: 0
    functionLinenumber: 2427
    functionLinenumberEnd: 2447
    functionName: test_critical_sections
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION2_MUTEX
    - Py_BEGIN_CRITICAL_SECTION_MUTEX
    - Py_END_CRITICAL_SECTION2
    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:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Py_UNUSED(arg)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2452
    functionDepth: 1
    functionLinenumber: 2452
    functionLinenumberEnd: 2455
    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:2467,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapimodule.c:2469,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testcapimodule.c:2471,1
    - Dst: pthread_cleanup_pop
      Src: /src/cpython/Modules/_testcapimodule.c:2473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2462
    functionDepth: 1
    functionLinenumber: 2462
    functionLinenumberEnd: 2476
    functionName: finalize_thread_hang
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - pthread_cleanup_push
    - pthread_cleanup_pop
    - PyObject_CallNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      finalize_thread_hang(PyObject *self, PyObject *callback)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2490,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2490,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2491,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (PyThreadState_Get() == at_data->tstate)
      pos:
        line_end: 2489
        line_start: 2489
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyInterpreterState_Get() == at_data->interp)
      pos:
        line_end: 2490
        line_start: 2490
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2493
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2493
    functionName: atexit_callback
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Get
    - PyInterpreterState_Get
    - assert
    linkageType: ''
    returnType: void
    signature: void atexit_callback(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2498,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2499,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2502,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2503,1
    - Dst: PyUnstable_AtExit
      Src: /src/cpython/Modules/_testcapimodule.c:2508,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2510,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2511,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2512,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2517,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2518,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2495
    functionDepth: 1
    functionLinenumber: 2495
    functionLinenumberEnd: 2525
    functionName: test_atexit
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Get
    - PyThreadState_Swap
    - PyUnstable_AtExit
    - PyInterpreterState_Get
    - PyErr_SetString
    - Py_NewInterpreter
    - Py_EndInterpreter
    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:2530,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2532,1
    - Dst: PyLong_AsInt32
      Src: /src/cpython/Modules/_testcapimodule.c:2536,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testcapimodule.c:2540,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapimodule.c:2541,1
    - Dst: PyLong_FromInt32
      Src: /src/cpython/Modules/_testcapimodule.c:2544,1
    - Dst: PyCode_Addr2Line
      Src: /src/cpython/Modules/_testcapimodule.c:2544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - nargsf
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2527
    functionDepth: 1
    functionLinenumber: 2527
    functionLinenumberEnd: 2545
    functionName: code_offset_to_line
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyLong_FromInt32
    - _PyVectorcall_NARGS
    - PyCode_Addr2Line
    - PyLong_AsInt32
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_offset_to_line(PyObject* self, PyObject* const* args, Py_ssize_t nargsf)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Modules/_testcapimodule.c:2553,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:2553,1
    - Dst: printf
      Src: /src/cpython/Modules/_testcapimodule.c:2556,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:2556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - event
    - counter_data
    argTypes:
    - PyObject*
    - PyRefTracerEvent
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2548
    functionDepth: 0
    functionLinenumber: 2548
    functionLinenumberEnd: 2562
    functionName: _reftrace_printer
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - printf
    - Py_TYPE
    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:2569,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Modules/_testcapimodule.c:2572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ob
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2565
    functionDepth: 1
    functionLinenumber: 2565
    functionLinenumberEnd: 2575
    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: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_testcapimodule.c:2585,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:2586,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_testcapimodule.c:2587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2582
    functionDepth: 1
    functionLinenumber: 2582
    functionLinenumberEnd: 2589
    functionName: ManagedWeakrefNoGC_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ManagedWeakrefNoGC_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapimodule.c:2606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2603
    functionDepth: 1
    functionLinenumber: 2603
    functionLinenumberEnd: 2607
    functionName: create_managed_weakref_nogc_type
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyType_FromSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_managed_weakref_nogc_type(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2612,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2613,1
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2615,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2616,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2619,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (guard_2 != NULL)
      pos:
        line_end: 2615
        line_start: 2615
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (guard != NULL)
      pos:
        line_end: 2612
        line_start: 2612
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2621
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2621
    functionName: test_interp_guards_common
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterGuard_FromCurrent
    - PyInterpreterGuard_Close
    - assert
    linkageType: ''
    returnType: void
    signature: void test_interp_guards_common(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_interp_guards_common
      Src: /src/cpython/Modules/_testcapimodule.c:2627,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2630,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2631,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2634,1
    - Dst: test_interp_guards_common
      Src: /src/cpython/Modules/_testcapimodule.c:2635,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2636,1
    - Dst: Py_NewInterpreterFromConfig
      Src: /src/cpython/Modules/_testcapimodule.c:2645,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2646,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_testcapimodule.c:2646,1
    - Dst: test_interp_guards_common
      Src: /src/cpython/Modules/_testcapimodule.c:2648,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2649,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (interp_tstate != NULL)
      pos:
        line_end: 2633
        line_start: 2633
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (!PyStatus_Exception(status))
      pos:
        line_end: 2645
        line_start: 2645
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2652
      start: 2623
    functionDepth: 2
    functionLinenumber: 2623
    functionLinenumberEnd: 2652
    functionName: test_interpreter_guards
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_NewInterpreterFromConfig
    - PyStatus_Exception
    - PyThreadState_Swap
    - Py_NewInterpreter
    - test_interp_guards_common
    - assert
    - Py_EndInterpreter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_interpreter_guards(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2657,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2658,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2660,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2661,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/_testcapimodule.c:2661,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2666,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2667,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2670,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2670,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2671,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2674,1
    - Dst: PyThreadState_GetUnchecked
      Src: /src/cpython/Modules/_testcapimodule.c:2674,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2680,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2681,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2682,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2682,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2686,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2686,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2687,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2690,1
    - Dst: PyThreadState_GetUnchecked
      Src: /src/cpython/Modules/_testcapimodule.c:2690,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2691,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyGILState_GetThisThreadState() == save_tstate)
      pos:
        line_end: 2660
        line_start: 2660
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == save_tstate)
      pos:
        line_end: 2681
        line_start: 2681
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == save_tstate)
      pos:
        line_end: 2685
        line_start: 2685
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_GetUnchecked() == NULL)
      pos:
        line_end: 2689
        line_start: 2689
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (guard != NULL)
      pos:
        line_end: 2657
        line_start: 2657
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (tokens[i] != NULL)
      pos:
        line_end: 2666
        line_start: 2666
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == save_tstate)
      pos:
        line_end: 2669
        line_start: 2669
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_GetUnchecked() == NULL)
      pos:
        line_end: 2673
        line_start: 2673
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (tokens[i] != NULL)
      pos:
        line_end: 2680
        line_start: 2680
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2694
      start: 2654
    functionDepth: 1
    functionLinenumber: 2654
    functionLinenumberEnd: 2694
    functionName: test_thread_state_ensure_nested
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterGuard_FromCurrent
    - PyThreadState_Swap
    - PyThreadState_Get
    - PyInterpreterGuard_Close
    - assert
    - PyGILState_GetThisThreadState
    - PyThreadState_Release
    - PyThreadState_Ensure
    - PyThreadState_GetUnchecked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state_ensure_nested(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2699,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2700,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2701,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2702,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2717,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2718,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2720,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2721,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2722,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/_testcapimodule.c:2722,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2725,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2726,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2727,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2727,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2729,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2732,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2733,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2733,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2734,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/_testcapimodule.c:2734,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2736,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2737,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2739,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyGILState_GetThisThreadState() == ensured_tstate)
      pos:
        line_end: 2721
        line_start: 2721
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == interp_tstate)
      pos:
        line_end: 2732
        line_start: 2732
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyGILState_GetThisThreadState() == interp_tstate)
      pos:
        line_end: 2733
        line_start: 2733
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (interp_tstate != NULL)
      pos:
        line_end: 2701
        line_start: 2701
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (token != NULL)
      pos:
        line_end: 2717
        line_start: 2717
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (ensured_tstate != save_tstate)
      pos:
        line_end: 2720
        line_start: 2720
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == ensured_tstate)
      pos:
        line_end: 2726
        line_start: 2726
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (other_token != NULL)
      pos:
        line_end: 2725
        line_start: 2725
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2742
      start: 2696
    functionDepth: 1
    functionLinenumber: 2696
    functionLinenumberEnd: 2742
    functionName: test_thread_state_ensure_crossinterp
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterGuard_FromCurrent
    - PyThreadState_Swap
    - PyThreadState_Get
    - Py_NewInterpreter
    - PyInterpreterGuard_Close
    - assert
    - PyGILState_GetThisThreadState
    - PyThreadState_Release
    - PyThreadState_Ensure
    - Py_EndInterpreter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state_ensure_crossinterp(PyObject *self, PyObject *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2747,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2748,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2750,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:2751,1
    - Dst: PyInterpreterView_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2754,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2756,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2757,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapimodule.c:2758,1
    - Dst: PyInterpreterGuard_FromView
      Src: /src/cpython/Modules/_testcapimodule.c:2762,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2763,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2767,1
    - Dst: PyInterpreterGuard_FromView
      Src: /src/cpython/Modules/_testcapimodule.c:2768,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2769,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (guard == NULL)
      pos:
        line_end: 2768
        line_start: 2768
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2773
      start: 2744
    functionDepth: 1
    functionLinenumber: 2744
    functionLinenumberEnd: 2773
    functionName: test_interp_view_after_shutdown
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterView_FromCurrent
    - PyErr_NoMemory
    - PyThreadState_Swap
    - Py_NewInterpreter
    - PyInterpreterGuard_FromView
    - PyInterpreterGuard_Close
    - assert
    - Py_EndInterpreter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_interp_view_after_shutdown(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2780,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2781,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2782,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2783,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2783,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2783,1
    - Dst: PyInterpreterView_FromMain
      Src: /src/cpython/Modules/_testcapimodule.c:2785,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2786,1
    - Dst: PyInterpreterView_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2788,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2789,1
    - Dst: PyThreadState_EnsureFromView
      Src: /src/cpython/Modules/_testcapimodule.c:2792,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2793,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2794,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2794,1
    - Dst: PyThreadState_EnsureFromView
      Src: /src/cpython/Modules/_testcapimodule.c:2797,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2798,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2798,1
    - Dst: PyThreadState_EnsureFromView
      Src: /src/cpython/Modules/_testcapimodule.c:2802,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2803,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2804,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2804,1
    - Dst: PyInterpreterState_Main
      Src: /src/cpython/Modules/_testcapimodule.c:2804,1
    - Dst: PyThreadState_EnsureFromView
      Src: /src/cpython/Modules/_testcapimodule.c:2807,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2808,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2808,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2808,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2809,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2809,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2810,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2811,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2815,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2815,1
    - Dst: PyThreadState_EnsureFromView
      Src: /src/cpython/Modules/_testcapimodule.c:2816,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2817,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2817,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2818,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2819,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2820,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2821,1
    - Dst: PyThreadState_GetUnchecked
      Src: /src/cpython/Modules/_testcapimodule.c:2821,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2824,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2824,1
    - Dst: PyInterpreterView_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2825,1
    - Dst: PyInterpreterView_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2826,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testcapimodule.c:2827,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyThreadState_Get() == interp_tstate)
      pos:
        line_end: 2797
        line_start: 2797
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() != interp_tstate)
      pos:
        line_end: 2808
        line_start: 2808
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == interp_tstate)
      pos:
        line_end: 2823
        line_start: 2823
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == interp_tstate)
      pos:
        line_end: 2816
        line_start: 2816
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_GetUnchecked() == NULL)
      pos:
        line_end: 2820
        line_start: 2820
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (main_token == (PyThreadStateToken*)interp_tstate)
      pos:
        line_end: 2802
        line_start: 2802
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == interp_tstate)
      pos:
        line_end: 2814
        line_start: 2814
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyInterpreterState_Get() == PyThreadState_GetInterpreter(interp_tstate))
      pos:
        line_end: 2782
        line_start: 2782
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (main_view != NULL)
      pos:
        line_end: 2785
        line_start: 2785
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (view != NULL)
      pos:
        line_end: 2788
        line_start: 2788
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyInterpreterState_Get() == PyThreadState_GetInterpreter(interp_tstate))
      pos:
        line_end: 2807
        line_start: 2807
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (interp_tstate != NULL)
      pos:
        line_end: 2781
        line_start: 2781
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == interp_tstate)
      pos:
        line_end: 2793
        line_start: 2793
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (token != NULL)
      pos:
        line_end: 2792
        line_start: 2792
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyInterpreterState_Get() == PyInterpreterState_Main())
      pos:
        line_end: 2803
        line_start: 2803
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2831
      start: 2775
    functionDepth: 1
    functionLinenumber: 2775
    functionLinenumberEnd: 2831
    functionName: test_thread_state_ensure_view
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterView_FromCurrent
    - PyInterpreterView_FromMain
    - PyInterpreterView_Close
    - PyThreadState_Swap
    - PyInterpreterState_Get
    - PyThreadState_Get
    - PyInterpreterState_Main
    - Py_NewInterpreter
    - PyThreadState_GetInterpreter
    - assert
    - PyThreadState_EnsureFromView
    - PyThreadState_Release
    - Py_EndInterpreter
    - PyThreadState_GetUnchecked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state_ensure_view(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2836,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2837,1
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2839,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2840,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2842,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2843,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2845,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2845,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2847,1
    - Dst: PyThreadState_GetUnchecked
      Src: /src/cpython/Modules/_testcapimodule.c:2849,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2850,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (before != NULL)
      pos:
        line_end: 2836
        line_start: 2836
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (guard != NULL)
      pos:
        line_end: 2839
        line_start: 2839
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (token != NULL)
      pos:
        line_end: 2842
        line_start: 2842
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == before)
      pos:
        line_end: 2844
        line_start: 2844
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (after != NULL)
      pos:
        line_end: 2849
        line_start: 2849
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2854
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2854
    functionName: test_thread_state_ensure_detachment
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterGuard_FromCurrent
    - PyThreadState_Get
    - PyInterpreterGuard_Close
    - assert
    - PyThreadState_Release
    - PyThreadState_Ensure
    - PyThreadState_GetUnchecked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state_ensure_detachment(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2859,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Modules/_testcapimodule.c:2860,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2862,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2863,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2863,1
    - Dst: PyThreadState_GetUnchecked
      Src: /src/cpython/Modules/_testcapimodule.c:2866,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2867,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2868,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2868,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2869,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2870,1
    - Dst: PyThreadState_GetUnchecked
      Src: /src/cpython/Modules/_testcapimodule.c:2870,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2872,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2874,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2875,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2875,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyThreadState_Get() == gilstate)
      pos:
        line_end: 2862
        line_start: 2862
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == gilstate)
      pos:
        line_end: 2867
        line_start: 2867
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_GetUnchecked() == NULL)
      pos:
        line_end: 2869
        line_start: 2869
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (PyThreadState_Get() == gilstate)
      pos:
        line_end: 2874
        line_start: 2874
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2880
      start: 2856
    functionDepth: 1
    functionLinenumber: 2856
    functionLinenumberEnd: 2880
    functionName: test_thread_state_ensure_detached_gilstate
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyInterpreterGuard_FromCurrent
    - PyThreadState_Get
    - PyInterpreterGuard_Close
    - assert
    - PyGILState_GetThisThreadState
    - PyThreadState_Release
    - PyThreadState_Ensure
    - PyThreadState_GetUnchecked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state_ensure_detached_gilstate(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2887,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testcapimodule.c:2888,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2889,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2890,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (capsule != NULL)
      pos:
        line_end: 2886
        line_start: 2886
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (token != NULL)
      pos:
        line_end: 2889
        line_start: 2889
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2892
      start: 2884
    functionDepth: 1
    functionLinenumber: 2884
    functionLinenumberEnd: 2892
    functionName: tstate_ensure_capsule_destructor
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Release
    - PyThreadState_Ensure
    - PyCapsule_GetPointer
    - assert
    linkageType: ''
    returnType: void
    signature: void tstate_ensure_capsule_destructor(PyObject *capsule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2897,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2898,1
    - Dst: PyThreadState_New
      Src: /src/cpython/Modules/_testcapimodule.c:2903,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testcapimodule.c:2903,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2904,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2906,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2907,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Modules/_testcapimodule.c:2910,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2911,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_testcapimodule.c:2914,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2915,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Modules/_testcapimodule.c:2919,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2920,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testcapimodule.c:2921,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:2923,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testcapimodule.c:2925,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_testcapimodule.c:2928,1
    - Dst: PyThreadState_DeleteCurrent
      Src: /src/cpython/Modules/_testcapimodule.c:2929,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testcapimodule.c:2931,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testcapimodule.c:2932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (capsule != NULL)
      pos:
        line_end: 2914
        line_start: 2914
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (guard != NULL)
      pos:
        line_end: 2897
        line_start: 2897
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (token != NULL)
      pos:
        line_end: 2910
        line_start: 2910
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (fresh_tstate != NULL)
      pos:
        line_end: 2903
        line_start: 2903
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (save_tstate != NULL)
      pos:
        line_end: 2906
        line_start: 2906
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (res == 0)
      pos:
        line_end: 2921
        line_start: 2921
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (dict != NULL)
      pos:
        line_end: 2919
        line_start: 2919
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2935
      start: 2894
    functionDepth: 1
    functionLinenumber: 2894
    functionLinenumberEnd: 2935
    functionName: test_thread_state_release_with_destructor
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Clear
    - PyInterpreterGuard_FromCurrent
    - PyThreadState_DeleteCurrent
    - PyInterpreterState_Get
    - PyThreadState_Swap
    - PyCapsule_New
    - PyDict_SetItemString
    - PyThreadState_New
    - PyThreadState_Release
    - assert
    - Py_DECREF
    - PyInterpreterGuard_Close
    - PyThreadState_GetDict
    - PyThreadState_Ensure
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state_release_with_destructor(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ALIGNED
      Src: /src/cpython/Modules/_testcapimodule.c:2942,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2946,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2948,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapimodule.c:2948,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2949,1
    - Dst: Py_LL
      Src: /src/cpython/Modules/_testcapimodule.c:2949,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2950,1
    - Dst: Py_LL
      Src: /src/cpython/Modules/_testcapimodule.c:2950,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2951,1
    - Dst: Py_ULL
      Src: /src/cpython/Modules/_testcapimodule.c:2951,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2952,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2953,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2954,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2955,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2956,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2957,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2958,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2959,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2960,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2961,1
    - Dst: Py_MEMCPY
      Src: /src/cpython/Modules/_testcapimodule.c:2962,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapimodule.c:2963,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapimodule.c:2963,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2964,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2966,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testcapimodule.c:2968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (strcmp(PY_FORMAT_SIZE_T, "z") == 0)
      pos:
        line_end: 2947
        line_start: 2947
        source_file: /src/cpython/Modules/_testcapimodule.c
    - condition: (strcmp(buf, "abc") == 0)
      pos:
        line_end: 2962
        line_start: 2962
        source_file: /src/cpython/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2971
      start: 2938
    functionDepth: 1
    functionLinenumber: 2938
    functionLinenumberEnd: 2971
    functionName: test_soft_deprecated_macros
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - Py_ALIGNED
    - Py_ULL
    - Py_BUILD_ASSERT
    - assert
    - Py_LL
    - Py_MEMCPY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_soft_deprecated_macros(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapimodule.c:3090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3087
    functionDepth: 1
    functionLinenumber: 3087
    functionLinenumberEnd: 3091
    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:3096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3093
    functionDepth: 1
    functionLinenumber: 3093
    functionLinenumberEnd: 3097
    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:3102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3103
      start: 3099
    functionDepth: 0
    functionLinenumber: 3099
    functionLinenumberEnd: 3103
    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:3193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - other
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3194
      start: 3190
    functionDepth: 1
    functionLinenumber: 3190
    functionLinenumberEnd: 3194
    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: 3214
      start: 3213
    functionDepth: 0
    functionLinenumber: 3213
    functionLinenumberEnd: 3214
    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:3221,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:3224,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:3229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3215
    functionDepth: 1
    functionLinenumber: 3215
    functionLinenumberEnd: 3232
    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:3238,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapimodule.c:3239,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3235
    functionDepth: 1
    functionLinenumber: 3235
    functionLinenumberEnd: 3241
    functionName: awaitObject_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - awaitObject_CAST
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void awaitObject_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: awaitObject_CAST
      Src: /src/cpython/Modules/_testcapimodule.c:3247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:3248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3244
    functionDepth: 1
    functionLinenumber: 3244
    functionLinenumberEnd: 3249
    functionName: awaitObject_await
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - awaitObject_CAST
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      awaitObject_await(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_new
      Src: /src/cpython/Modules/_testcapimodule.c:3313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3310
    functionDepth: 0
    functionLinenumber: 3310
    functionLinenumberEnd: 3316
    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:3325,1
    - Dst: tp_dealloc
      Src: /src/cpython/Modules/_testcapimodule.c:3328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3329
      start: 3318
    functionDepth: 1
    functionLinenumber: 3318
    functionLinenumberEnd: 3329
    functionName: MyList_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - tp_dealloc
    linkageType: ''
    returnType: void
    signature: void MyList_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapimodule.c:3383,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3379
    functionDepth: 1
    functionLinenumber: 3379
    functionLinenumberEnd: 3385
    functionName: generic_alias_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void generic_alias_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapimodule.c:3391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(bases)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3387
    functionDepth: 1
    functionLinenumber: 3387
    functionLinenumberEnd: 3392
    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:3412,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:3416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3418
      start: 3409
    functionDepth: 1
    functionLinenumber: 3409
    functionLinenumberEnd: 3418
    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:3427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3428
      start: 3424
    functionDepth: 2
    functionLinenumber: 3424
    functionLinenumberEnd: 3428
    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:3522,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:3525,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3517
    functionDepth: 1
    functionLinenumber: 3517
    functionLinenumberEnd: 3532
    functionName: ContainerNoGC_new
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTypeObject*::tp_alloc
    - 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:3538,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3540
      start: 3534
    functionDepth: 0
    functionLinenumber: 3534
    functionLinenumberEnd: 3540
    functionName: ContainerNoGC_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ContainerNoGC_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapimodule.c:3569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3571
      start: 3565
    functionDepth: 1
    functionLinenumber: 3565
    functionLinenumberEnd: 3571
    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:3577,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3578,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3579,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3573
    functionDepth: 0
    functionLinenumber: 3573
    functionLinenumberEnd: 3582
    functionName: ManualHeapType_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ManualHeapType_dealloc(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tp_alloc
      Src: /src/cpython/Modules/_testcapimodule.c:3589,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapimodule.c:3601,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3603,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapimodule.c:3606,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapimodule.c:3608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3612
      start: 3584
    functionDepth: 1
    functionLinenumber: 3584
    functionLinenumberEnd: 3612
    functionName: create_manual_heap_type
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - tp_alloc
    - PyUnicode_FromString
    - Py_DECREF
    - PyType_Ready
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_manual_heap_type(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapimodule.c:3619,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3619,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Modules/_testcapimodule.c:3620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3621
      start: 3618
    functionDepth: 1
    functionLinenumber: 3618
    functionLinenumberEnd: 3621
    functionName: ManagedDict_traverse
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - 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:3624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3626
      start: 3623
    functionDepth: 1
    functionLinenumber: 3623
    functionLinenumberEnd: 3626
    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:3652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3653
      start: 3649
    functionDepth: 1
    functionLinenumber: 3649
    functionLinenumberEnd: 3653
    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: 61
    BranchProfiles: []
    Callsites:
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/_testcapimodule.c:3658,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3659,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3662,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3664,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3665,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3666,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3669,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3670,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3672,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3674,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3675,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3678,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3680,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3681,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3683,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3685,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3686,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3688,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3690,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3691,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3693,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3695,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3696,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3698,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3700,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3701,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3703,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3705,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3706,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3708,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3708,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3709,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3709,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3710,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3710,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3711,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3711,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3712,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3712,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3713,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3713,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3714,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3714,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3715,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3715,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3716,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapimodule.c:3716,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3717,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3717,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3718,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapimodule.c:3718,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3719,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapimodule.c:3719,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3720,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapimodule.c:3720,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3721,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapimodule.c:3721,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3722,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapimodule.c:3722,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3723,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testcapimodule.c:3723,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3724,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testcapimodule.c:3724,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3725,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testcapimodule.c:3725,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3726,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testcapimodule.c:3726,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3727,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3727,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3728,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3728,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3729,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3729,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3730,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3730,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3731,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3731,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3732,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3732,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3733,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapimodule.c:3733,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3734,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testcapimodule.c:3734,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3735,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3736,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testcapimodule.c:3738,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3739,1
    - Dst: PyLong_FromInt32
      Src: /src/cpython/Modules/_testcapimodule.c:3739,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3740,1
    - Dst: PyLong_FromInt32
      Src: /src/cpython/Modules/_testcapimodule.c:3740,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3741,1
    - Dst: PyLong_FromUInt32
      Src: /src/cpython/Modules/_testcapimodule.c:3741,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3742,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_testcapimodule.c:3742,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3743,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_testcapimodule.c:3743,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3744,1
    - Dst: PyLong_FromUInt64
      Src: /src/cpython/Modules/_testcapimodule.c:3744,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapimodule.c:3747,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapimodule.c:3752,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapimodule.c:3756,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapimodule.c:3759,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapimodule.c:3762,1
    - Dst: get_testcapi_state
      Src: /src/cpython/Modules/_testcapimodule.c:3766,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_testcapimodule.c:3767,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3768,1
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapimodule.c:3770,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapimodule.c:3773,1
    - Dst: PyModule_AddObject
      Src: /src/cpython/Modules/_testcapimodule.c:3774,1
    - Dst: create_manual_heap_type
      Src: /src/cpython/Modules/_testcapimodule.c:3778,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapimodule.c:3782,1
    - Dst: create_managed_dict_type
      Src: /src/cpython/Modules/_testcapimodule.c:3786,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapimodule.c:3790,1
    - Dst: _PyTestCapi_Init_Vectorcall
      Src: /src/cpython/Modules/_testcapimodule.c:3795,1
    - Dst: _PyTestCapi_Init_Heaptype
      Src: /src/cpython/Modules/_testcapimodule.c:3798,1
    - Dst: _PyTestCapi_Init_Abstract
      Src: /src/cpython/Modules/_testcapimodule.c:3801,1
    - Dst: _PyTestCapi_Init_Bytes
      Src: /src/cpython/Modules/_testcapimodule.c:3804,1
    - Dst: _PyTestCapi_Init_Unicode
      Src: /src/cpython/Modules/_testcapimodule.c:3807,1
    - Dst: _PyTestCapi_Init_GetArgs
      Src: /src/cpython/Modules/_testcapimodule.c:3810,1
    - Dst: _PyTestCapi_Init_DateTime
      Src: /src/cpython/Modules/_testcapimodule.c:3813,1
    - Dst: _PyTestCapi_Init_Docstring
      Src: /src/cpython/Modules/_testcapimodule.c:3816,1
    - Dst: _PyTestCapi_Init_Mem
      Src: /src/cpython/Modules/_testcapimodule.c:3819,1
    - Dst: _PyTestCapi_Init_Watchers
      Src: /src/cpython/Modules/_testcapimodule.c:3822,1
    - Dst: _PyTestCapi_Init_Long
      Src: /src/cpython/Modules/_testcapimodule.c:3825,1
    - Dst: _PyTestCapi_Init_Float
      Src: /src/cpython/Modules/_testcapimodule.c:3828,1
    - Dst: _PyTestCapi_Init_Complex
      Src: /src/cpython/Modules/_testcapimodule.c:3831,1
    - Dst: _PyTestCapi_Init_Numbers
      Src: /src/cpython/Modules/_testcapimodule.c:3834,1
    - Dst: _PyTestCapi_Init_Dict
      Src: /src/cpython/Modules/_testcapimodule.c:3837,1
    - Dst: _PyTestCapi_Init_Set
      Src: /src/cpython/Modules/_testcapimodule.c:3840,1
    - Dst: _PyTestCapi_Init_List
      Src: /src/cpython/Modules/_testcapimodule.c:3843,1
    - Dst: _PyTestCapi_Init_Tuple
      Src: /src/cpython/Modules/_testcapimodule.c:3846,1
    - Dst: _PyTestCapi_Init_Structmember
      Src: /src/cpython/Modules/_testcapimodule.c:3849,1
    - Dst: _PyTestCapi_Init_Exceptions
      Src: /src/cpython/Modules/_testcapimodule.c:3852,1
    - Dst: _PyTestCapi_Init_Code
      Src: /src/cpython/Modules/_testcapimodule.c:3855,1
    - Dst: _PyTestCapi_Init_Buffer
      Src: /src/cpython/Modules/_testcapimodule.c:3858,1
    - Dst: _PyTestCapi_Init_File
      Src: /src/cpython/Modules/_testcapimodule.c:3861,1
    - Dst: _PyTestCapi_Init_Codec
      Src: /src/cpython/Modules/_testcapimodule.c:3864,1
    - Dst: _PyTestCapi_Init_Immortal
      Src: /src/cpython/Modules/_testcapimodule.c:3867,1
    - Dst: _PyTestCapi_Init_GC
      Src: /src/cpython/Modules/_testcapimodule.c:3870,1
    - Dst: _PyTestCapi_Init_PyAtomic
      Src: /src/cpython/Modules/_testcapimodule.c:3873,1
    - Dst: _PyTestCapi_Init_Run
      Src: /src/cpython/Modules/_testcapimodule.c:3876,1
    - Dst: _PyTestCapi_Init_Hash
      Src: /src/cpython/Modules/_testcapimodule.c:3879,1
    - Dst: _PyTestCapi_Init_Time
      Src: /src/cpython/Modules/_testcapimodule.c:3882,1
    - Dst: _PyTestCapi_Init_Modsupport
      Src: /src/cpython/Modules/_testcapimodule.c:3885,1
    - Dst: _PyTestCapi_Init_Monitoring
      Src: /src/cpython/Modules/_testcapimodule.c:3888,1
    - Dst: _PyTestCapi_Init_Object
      Src: /src/cpython/Modules/_testcapimodule.c:3891,1
    - Dst: _PyTestCapi_Init_Config
      Src: /src/cpython/Modules/_testcapimodule.c:3894,1
    - Dst: _PyTestCapi_Init_Import
      Src: /src/cpython/Modules/_testcapimodule.c:3897,1
    - Dst: _PyTestCapi_Init_Frame
      Src: /src/cpython/Modules/_testcapimodule.c:3900,1
    - Dst: _PyTestCapi_Init_Type
      Src: /src/cpython/Modules/_testcapimodule.c:3903,1
    - Dst: _PyTestCapi_Init_Function
      Src: /src/cpython/Modules/_testcapimodule.c:3906,1
    - Dst: _PyTestCapi_Init_Module
      Src: /src/cpython/Modules/_testcapimodule.c:3909,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 232
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3914
      start: 3655
    functionDepth: 2
    functionLinenumber: 3655
    functionLinenumberEnd: 3914
    functionName: _testcapi_exec
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyTestCapi_Init_Modsupport
    - PyLong_FromSize_t
    - _PyTestCapi_Init_Time
    - PyLong_FromLong
    - _PyTestCapi_Init_Function
    - PyFloat_FromDouble
    - _PyTestCapi_Init_Object
    - _PyTestCapi_Init_Heaptype
    - PyLong_FromUInt64
    - _PyTestCapi_Init_GetArgs
    - _PyTestCapi_Init_Structmember
    - PyModule_Add
    - _PyTestCapi_Init_Abstract
    - _PyTestCapi_Init_Docstring
    - PyModule_AddObjectRef
    - PyLong_FromUnsignedLong
    - create_managed_dict_type
    - PyErr_NewException
    - _PyTestCapi_Init_Mem
    - Py_SET_TYPE
    - _PyTestCapi_Init_Long
    - _PyTestCapi_Init_Codec
    - _PyTestCapi_Init_Exceptions
    - PyLong_FromLongLong
    - PyModule_AddObject
    - _PyTestCapi_Init_Dict
    - PyLong_FromInt64
    - PyLong_FromSsize_t
    - _PyTestCapi_Init_Complex
    - _PyTestCapi_Init_GC
    - _PyTestCapi_Init_Hash
    - _PyTestCapi_Init_Import
    - _PyTestCapi_Init_Unicode
    - _PyTestCapi_Init_Code
    - _PyTestCapi_Init_File
    - _PyTestCapi_Init_PyAtomic
    - Py_INCREF
    - PyModule_AddIntMacro
    - create_manual_heap_type
    - _PyTestCapi_Init_Config
    - _PyTestCapi_Init_Module
    - _PyTestCapi_Init_Vectorcall
    - _PyTestCapi_Init_Type
    - _PyTestCapi_Init_Watchers
    - _PyTestCapi_Init_Tuple
    - _PyTestCapi_Init_Float
    - PyLong_FromUInt32
    - PyModule_AddIntConstant
    - PyLong_FromInt32
    - _PyTestCapi_Init_Immortal
    - _PyTestCapi_Init_Bytes
    - _PyTestCapi_Init_Buffer
    - _PyTestCapi_Init_DateTime
    - _PyTestCapi_Init_Numbers
    - _PyTestCapi_Init_Monitoring
    - PyLong_FromUnsignedLongLong
    - _PyTestCapi_Init_Set
    - get_testcapi_state
    - _PyTestCapi_Init_Frame
    - PyType_Ready
    - _PyTestCapi_Init_Run
    - _PyTestCapi_Init_List
    linkageType: ''
    returnType: int
    signature: int _testcapi_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testcapimodule.c:3937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3934
    functionDepth: 1
    functionLinenumber: 3934
    functionLinenumberEnd: 3938
    functionName: PyInit__testcapi
    functionSourceFile: /src/cpython/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    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:190,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:192,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:192,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:194,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:194,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:195,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:195,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:195,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:200,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:203,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:204,1
    - Dst: asinh
      Src: /src/cpython/Modules/cmathmodule.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 209
    functionName: cmath_acos_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - atan2
    - log
    - copysign
    - fabs
    - cmath_sqrt_impl
    - asinh
    - SPECIAL_VALUE
    - hypot
    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:234,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:236,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:236,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:238,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:238,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:239,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:243,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:246,1
    - Dst: asinh
      Src: /src/cpython/Modules/cmathmodule.c:247,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 252
    functionName: cmath_acosh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - atan2
    - log
    - fabs
    - cmath_sqrt_impl
    - asinh
    - SPECIAL_VALUE
    - hypot
    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:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 272
    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:297,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:299,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:299,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:301,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:301,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:301,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:304,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:304,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:304,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:307,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:307,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:311,1
    - Dst: cmath_sqrt_impl
      Src: /src/cpython/Modules/cmathmodule.c:314,1
    - Dst: asinh
      Src: /src/cpython/Modules/cmathmodule.c:315,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 320
    functionName: cmath_asinh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - atan2
    - log
    - copysign
    - fabs
    - cmath_sqrt_impl
    - asinh
    - SPECIAL_VALUE
    - hypot
    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:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 341
    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:367,1
    - Dst: _Py_c_neg
      Src: /src/cpython/Modules/cmathmodule.c:371,1
    - Dst: cmath_atanh_impl
      Src: /src/cpython/Modules/cmathmodule.c:371,1
    - Dst: _Py_c_neg
      Src: /src/cpython/Modules/cmathmodule.c:371,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:374,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:381,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:383,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:392,1
    - Dst: sqrt
      Src: /src/cpython/Modules/cmathmodule.c:392,1
    - Dst: sqrt
      Src: /src/cpython/Modules/cmathmodule.c:392,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:392,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:393,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:393,1
    - Dst: m_log1p
      Src: /src/cpython/Modules/cmathmodule.c:397,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 402
    functionName: cmath_atanh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 2
    functionsReached:
    - cmath_atanh_impl
    - atan2
    - log
    - sqrt
    - copysign
    - fabs
    - m_log1p
    - SPECIAL_VALUE
    - _Py_c_neg
    - hypot
    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:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 421
    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:449,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:449,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:450,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:450,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:453,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:453,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:454,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:454,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:457,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:457,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:458,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:458,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:462,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:463,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:467,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:467,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:474,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:477,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:478,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:478,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:479,1
    - Dst: sinh
      Src: /src/cpython/Modules/cmathmodule.c:479,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:481,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:481,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:482,1
    - Dst: sinh
      Src: /src/cpython/Modules/cmathmodule.c:482,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:485,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:485,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 490
    functionName: cmath_cosh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - sinh
    - special_type
    - cosh
    - copysign
    - fabs
    - sin
    - isinf
    - isfinite
    - cos
    - isnan
    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:518,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:518,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:519,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:519,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:522,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:522,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:523,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:523,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:526,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:526,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:527,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:527,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:531,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:532,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:536,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:537,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:538,1
    - Dst: exp
      Src: /src/cpython/Modules/cmathmodule.c:546,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:547,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:548,1
    - Dst: exp
      Src: /src/cpython/Modules/cmathmodule.c:550,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:551,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:552,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:555,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:555,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 560
    functionName: cmath_exp_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - special_type
    - copysign
    - exp
    - sin
    - isinf
    - isfinite
    - cos
    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:606,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:608,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:609,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:612,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:612,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:616,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:616,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:616,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:617,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:622,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:627,1
    - Dst: m_log1p
      Src: /src/cpython/Modules/cmathmodule.c:631,1
    - Dst: log
      Src: /src/cpython/Modules/cmathmodule.c:633,1
    - Dst: atan2
      Src: /src/cpython/Modules/cmathmodule.c:636,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - z
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 639
    functionName: c_log
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - atan2
    - log
    - hypot
    - fabs
    - m_log1p
    - SPECIAL_VALUE
    - ldexp
    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:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 661
    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:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 682
    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:711,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:711,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:712,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:712,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:715,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:715,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:716,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:716,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:719,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:719,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:720,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:720,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:724,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:725,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:729,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:729,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:736,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:737,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:738,1
    - Dst: sinh
      Src: /src/cpython/Modules/cmathmodule.c:738,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:739,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:739,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:741,1
    - Dst: sinh
      Src: /src/cpython/Modules/cmathmodule.c:741,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:742,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:742,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:745,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:745,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 750
    functionName: cmath_sinh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - sinh
    - special_type
    - cosh
    - copysign
    - fabs
    - sin
    - isinf
    - isfinite
    - cos
    - isnan
    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:804,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:812,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:813,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:817,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:818,1
    - Dst: sqrt
      Src: /src/cpython/Modules/cmathmodule.c:818,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:818,1
    - Dst: ldexp
      Src: /src/cpython/Modules/cmathmodule.c:818,1
    - Dst: sqrt
      Src: /src/cpython/Modules/cmathmodule.c:822,1
    - Dst: hypot
      Src: /src/cpython/Modules/cmathmodule.c:822,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:828,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:831,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 835
    functionName: cmath_sqrt_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 3
    functionsReached:
    - ldexp
    - sqrt
    - copysign
    - fabs
    - SPECIAL_VALUE
    - hypot
    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:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 856
    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:897,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:897,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:898,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:898,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:902,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:903,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:903,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:907,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:908,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:908,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:912,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:913,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:917,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:917,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:925,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:926,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:927,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:927,1
    - Dst: exp
      Src: /src/cpython/Modules/cmathmodule.c:927,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:927,1
    - Dst: tanh
      Src: /src/cpython/Modules/cmathmodule.c:929,1
    - Dst: tan
      Src: /src/cpython/Modules/cmathmodule.c:930,1
    - Dst: cosh
      Src: /src/cpython/Modules/cmathmodule.c:931,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 939
    functionName: cmath_tanh_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - special_type
    - cosh
    - copysign
    - fabs
    - exp
    - sin
    - isinf
    - isfinite
    - cos
    - tan
    - tanh
    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:962,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/cmathmodule.c:964,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cmathmodule.c:965,1
    - Dst: c_log
      Src: /src/cpython/Modules/cmathmodule.c:968,1
    - Dst: _Py_c_quot
      Src: /src/cpython/Modules/cmathmodule.c:969,1
    - Dst: math_error
      Src: /src/cpython/Modules/cmathmodule.c:972,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/cmathmodule.c:973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - module
    - x
    - y_obj
    argTypes:
    - PyObject*
    - Py_complex
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 974
    functionName: cmath_log_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - math_error
    - c_log
    - PyComplex_FromCComplex
    - _Py_c_quot
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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:983,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cmathmodule.c:985,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/cmathmodule.c:987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 989
    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:1008,1
    - Dst: math_error
      Src: /src/cpython/Modules/cmathmodule.c:1010,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1013
    functionName: cmath_phase_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - atan2
    - PyFloat_FromDouble
    - math_error
    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:1033,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/cmathmodule.c:1034,1
    - Dst: math_error
      Src: /src/cpython/Modules/cmathmodule.c:1036,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/cmathmodule.c:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1039
    functionName: cmath_polar_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - atan2
    - Py_BuildValue
    - math_error
    - _Py_c_abs
    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:1080,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:1080,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1084,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:1084,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:1087,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:1087,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:1088,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:1088,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:1091,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:1091,1
    - Dst: copysign
      Src: /src/cpython/Modules/cmathmodule.c:1092,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:1092,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:1096,1
    - Dst: special_type
      Src: /src/cpython/Modules/cmathmodule.c:1097,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:1101,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1101,1
    - Dst: cos
      Src: /src/cpython/Modules/cmathmodule.c:1114,1
    - Dst: sin
      Src: /src/cpython/Modules/cmathmodule.c:1115,1
    - Dst: math_error
      Src: /src/cpython/Modules/cmathmodule.c:1120,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/cmathmodule.c:1122,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - module
    - r
    - phi
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1123
    functionName: cmath_rect_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - special_type
    - math_error
    - copysign
    - sin
    - isinf
    - isfinite
    - cos
    - PyComplex_FromCComplex
    - isnan
    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:1136,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:1136,1
    - Dst: isfinite
      Src: /src/cpython/Modules/cmathmodule.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1137
    functionName: cmath_isfinite_impl
    functionSourceFile: /src/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:1149,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:1149,1
    - Dst: isnan
      Src: /src/cpython/Modules/cmathmodule.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1150
    functionName: cmath_isnan_impl
    functionSourceFile: /src/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:1162,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1162,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1163
    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:1199,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1218,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1218,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1218,1
    - Dst: isinf
      Src: /src/cpython/Modules/cmathmodule.c:1218,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: _Py_c_diff
      Src: /src/cpython/Modules/cmathmodule.c:1226,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/cmathmodule.c:1228,1
    - Dst: _Py_c_abs
      Src: /src/cpython/Modules/cmathmodule.c:1229,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: 1231
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1231
    functionName: cmath_isclose_impl
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _Py_c_diff
    - isinf
    - _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:1267,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1267,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1270,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1270,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1274,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1277,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/cmathmodule.c:1282,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:1285,1
    - Dst: fabs
      Src: /src/cpython/Modules/cmathmodule.c:1288,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/cmathmodule.c:1289,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Modules/cmathmodule.c:1289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1264
    functionDepth: 1
    functionLinenumber: 1264
    functionLinenumberEnd: 1294
    functionName: cmath_exec
    functionSourceFile: /src/cpython/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromCComplex
    - fabs
    - PyFloat_FromDouble
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int cmath_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/cmathmodule.c:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1317
    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:
    - PyErr_NoMemory
    - assert
    - _Py_EnsureTstateNotNULL
    - _PyThreadState_GET
    - _PyAtExit_UnlockCallbacks
    - PyMem_Malloc
    - _PyAtExit_LockCallbacks
    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:
    - _PyStatus_OK
    - PyList_New
    - _PyStatus_NO_MEMORY
    - 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:
    - Py_CLEAR
    - atexit_cleanup
    - exitfunc
    - PyMem_Free
    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: atexit_cleanup
      Src: /src/cpython/Modules/atexitmodule.c:115,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:119,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:122,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:123,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/atexitmodule.c:123,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: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:127,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/atexitmodule.c:129,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/atexitmodule.c:133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:141,1
    - Dst: atexit_cleanup
      Src: /src/cpython/Modules/atexitmodule.c:142,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:144,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/atexitmodule.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    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: (state->callbacks != NULL)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/cpython/Modules/atexitmodule.c
    constantsTouched: []
    func_position:
      end: 145
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 145
    functionName: atexit_callfuncs
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_cleanup
    - PyTuple_GET_ITEM
    - PyList_GetSlice
    - PyList_GET_ITEM
    - PyObject_Call
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GET_SIZE
    - PyTuple_CheckExact
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void atexit_callfuncs(struct atexit_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atexit_callfuncs
      Src: /src/cpython/Modules/atexitmodule.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: _PyAtExit_Call
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_callfuncs
    linkageType: ''
    returnType: void
    signature: void _PyAtExit_Call(PyInterpreterState *interp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/atexitmodule.c:176,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:181,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/atexitmodule.c:182,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/atexitmodule.c:183,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/atexitmodule.c:187,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:187,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/atexitmodule.c:197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:198,1
    - Dst: get_atexit_state
      Src: /src/cpython/Modules/atexitmodule.c:204,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/atexitmodule.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:211,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/atexitmodule.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 214
    functionName: atexit_register
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyCallable_Check
    - PyErr_SetString
    - get_atexit_state
    - PyTuple_Pack
    - PyList_Insert
    - Py_DECREF
    - PyTuple_GetSlice
    - PyTuple_GET_SIZE
    - Py_NewRef
    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:227,1
    - Dst: atexit_callfuncs
      Src: /src/cpython/Modules/atexitmodule.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: atexit_run_exitfuncs
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_callfuncs
    - get_atexit_state
    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:241,1
    - Dst: get_atexit_state
      Src: /src/cpython/Modules/atexitmodule.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: atexit_clear
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_cleanup
    - get_atexit_state
    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:254,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:255,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:256,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/atexitmodule.c:256,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/atexitmodule.c:257,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:257,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: 255
        line_start: 255
        source_file: /src/cpython/Modules/atexitmodule.c
    - condition: (state->callbacks != NULL)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/cpython/Modules/atexitmodule.c
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: atexit_ncallbacks
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - get_atexit_state
    - assert
    - PyList_CheckExact
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_ncallbacks(PyObject *module, PyObject *Py_UNUSED(dummy))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:263,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/atexitmodule.c:264,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:264,1
    - Dst: assert
      Src: /src/cpython/Modules/atexitmodule.c:265,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/atexitmodule.c:265,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:266,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/atexitmodule.c:267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:269,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:276,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/atexitmodule.c:277,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/atexitmodule.c:279,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/atexitmodule.c:281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/atexitmodule.c:290,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:291,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/atexitmodule.c:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - callbacks
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/cpython/Modules/atexitmodule.c
    constantsTouched: []
    func_position:
      end: 297
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 297
    functionName: atexit_unregister_locked
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyObject_RichCompareBool
    - PyList_GET_ITEM
    - Py_MIN
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    - PyTuple_CheckExact
    - Py_NewRef
    - PyList_SetSlice
    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:311,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/atexitmodule.c:313,1
    - Dst: atexit_unregister_locked
      Src: /src/cpython/Modules/atexitmodule.c:314,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/atexitmodule.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: atexit_unregister
    functionSourceFile: /src/cpython/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - get_atexit_state
    - atexit_unregister_locked
    - Py_END_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:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    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:
    - PyErr_NoMemory
    - PyGILState_Ensure
    - PyErr_SetString
    - PyGILState_Release
    - PyErr_Format
    - assert
    - PyGILState_GetThisThreadState
    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_Streaming_HMAC_malloc_
    - _hacl_convert_errno
    - 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
    - Py_CHECK_HACL_UINT32_T_LENGTH
    - _hacl_hmac_state_update_once
    - 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:
    - PyUnicode_AsUTF8
    - PyObject_CallMethodNoArgs
    - Py_DECREF
    - find_hash_info_by_utf8name
    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:
    - find_hash_info_by_name
    - PyUnicode_Check
    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
    - PyErr_Format
    - assert
    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:
    - narrow_hmac_hash_kind
    - assert_is_static_hmac_hash_kind
    - Py_NewRef
    - 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_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: Py_DECREF
      Src: /src/cpython/Modules/hmacmodule.c:799,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    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: 801
      start: 742
    functionDepth: 5
    functionLinenumber: 742
    functionLinenumberEnd: 801
    functionName: _hmac_new_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROR
    - _hacl_hmac_state_update
    - PyErr_SetString
    - HASHLIB_INIT_MUTEX
    - hmac_set_hinfo
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - find_hash_info
    - PyBuffer_Release
    - assert
    - Py_DECREF
    - get_hmacmodule_state
    - PyObject_New
    - hmac_new_initial_state
    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:809,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/hmacmodule.c:810,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:811,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:813,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:815,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:817,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - out
    - src
    argTypes:
    - HMACObject*
    - HMACObject*
    assertStmts:
    - condition: (src->name != NULL)
      pos:
        line_end: 808
        line_start: 808
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->digest_size <= Py_hmac_hash_max_digest_size)
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->block_size <= Py_hmac_hash_max_block_size)
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->kind != Py_hmac_kind_hash_unknown)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->api.compute != NULL)
      pos:
        line_end: 816
        line_start: 816
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (src->api.compute_py != NULL)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 820
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 820
    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:832,1
    - Dst: Hacl_Streaming_HMAC_copy
      Src: /src/cpython/Modules/hmacmodule.c:833,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - src
    argTypes:
    - HMACObject*
    - HMACObject*
    assertStmts:
    - condition: (src->state != NULL)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 839
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 839
    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:853,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/hmacmodule.c:854,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/hmacmodule.c:859,1
    - Dst: hmac_copy_hinfo
      Src: /src/cpython/Modules/hmacmodule.c:861,1
    - Dst: hmac_copy_state
      Src: /src/cpython/Modules/hmacmodule.c:863,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/hmacmodule.c:864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/hmacmodule.c:867,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/hmacmodule.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - HMACObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 873
    functionName: _hmac_HMAC_copy_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - get_hmacmodule_state_by_cls
    - hmac_copy_state
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_INIT_MUTEX
    - HASHLIB_RELEASE_LOCK
    - Py_DECREF
    - hmac_copy_hinfo
    - PyObject_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:889,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/hmacmodule.c:890,1
    - Dst: _hacl_hmac_state_update
      Src: /src/cpython/Modules/hmacmodule.c:892,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - msgobj
    argTypes:
    - HMACObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 883
    functionDepth: 4
    functionLinenumber: 883
    functionLinenumberEnd: 896
    functionName: _hmac_HMAC_update_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - _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:911,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/hmacmodule.c:913,1
    - Dst: Hacl_Streaming_HMAC_digest
      Src: /src/cpython/Modules/hmacmodule.c:914,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/hmacmodule.c:915,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:916,1
    - Dst: _hacl_convert_errno
      Src: /src/cpython/Modules/hmacmodule.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - digest
    argTypes:
    - HMACObject*
    - uint8_t*
    assertStmts:
    - condition: (digest != NULL)
      pos:
        line_end: 910
        line_start: 910
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: "(\n        rc == Hacl_Streaming_Types_Success ||\n        rc ==
        Hacl_Streaming_Types_OutOfMemory\n    )"
      pos:
        line_end: 918
        line_start: 915
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 921
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 921
    functionName: hmac_digest_compute_locked
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - _hacl_convert_errno
    - HASHLIB_RELEASE_LOCK
    - assert
    - Hacl_Streaming_HMAC_digest
    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:935,1
    - Dst: hmac_digest_compute_locked
      Src: /src/cpython/Modules/hmacmodule.c:937,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/hmacmodule.c:940,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: 934
        line_start: 934
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 941
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 941
    functionName: _hmac_HMAC_digest_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - hmac_digest_compute_locked
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_HMAC_digest_impl(HMACObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:959,1
    - Dst: hmac_digest_compute_locked
      Src: /src/cpython/Modules/hmacmodule.c:961,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/hmacmodule.c:964,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: 958
        line_start: 958
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 965
      start: 955
    functionDepth: 3
    functionLinenumber: 955
    functionLinenumberEnd: 965
    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:976,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/hmacmodule.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACObject*
    assertStmts:
    - condition: (self->name != NULL)
      pos:
        line_end: 975
        line_start: 975
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 978
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 978
    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:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 990
    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:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1002
    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:1007,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1008,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/hmacmodule.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->name != NULL)
      pos:
        line_end: 1007
        line_start: 1007
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1010
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1010
    functionName: HMACObject_repr
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - HMACObject_CAST
    - PyUnicode_FromFormat
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      HMACObject_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMACObject_CAST
      Src: /src/cpython/Modules/hmacmodule.c:1015,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1016,1
    - Dst: _hacl_hmac_state_free
      Src: /src/cpython/Modules/hmacmodule.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1020
    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:1025,1
    - Dst: HMACObject_clear
      Src: /src/cpython/Modules/hmacmodule.c:1026,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/hmacmodule.c:1027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/hmacmodule.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1022
    functionDepth: 3
    functionLinenumber: 1022
    functionLinenumberEnd: 1029
    functionName: HMACObject_dealloc
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - HMACObject_clear
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void HMACObject_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_hmacmodule_state
      Src: /src/cpython/Modules/hmacmodule.c:1080,1
    - Dst: find_hash_info
      Src: /src/cpython/Modules/hmacmodule.c:1081,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1085,1
    - Dst: py_hmac_hinfo*::api::compute_py
      Src: /src/cpython/Modules/hmacmodule.c:1086,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: 1084
        line_start: 1084
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1087
      start: 1075
    functionDepth: 5
    functionLinenumber: 1075
    functionLinenumberEnd: 1087
    functionName: _hmac_compute_digest_impl
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - get_hmacmodule_state
    - py_hmac_hinfo*::api::compute_py
    - find_hash_info
    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:1102,1
    - Dst: has_uint32_t_buffer_length
      Src: /src/cpython/Modules/hmacmodule.c:1105,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:1106,1
    - Dst: set_invalid_key_length_error
      Src: /src/cpython/Modules/hmacmodule.c:1107,1
    - Dst: _Py_hashlib_get_buffer_view
      Src: /src/cpython/Modules/hmacmodule.c:1110,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:1111,1
    - Dst: has_uint32_t_buffer_length
      Src: /src/cpython/Modules/hmacmodule.c:1114,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:1115,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/hmacmodule.c:1116,1
    - Dst: set_invalid_msg_length_error
      Src: /src/cpython/Modules/hmacmodule.c:1117,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: 1121
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1121
    functionName: hmac_get_buffer_views
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - set_invalid_key_length_error
    - PyBuffer_Release
    - _Py_hashlib_get_buffer_view
    - set_invalid_msg_length_error
    - 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: 1145
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1145
    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:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1160
    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:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1176
    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:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1192
    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:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1208
    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:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1224
    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:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1240
    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:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1256
    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:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1272
    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:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1288
    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:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1304
    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:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1320
    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:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - key
    - msg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1336
    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:1367,1
    - Dst: strlen
      Src: /src/cpython/Modules/hmacmodule.c:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1368
    functionName: py_hmac_hinfo_ht_hash
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - Py_HashBuffer
    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:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1374
    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: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1381,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/hmacmodule.c:1382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hinfo
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1384
    functionName: py_hmac_hinfo_ht_free
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyMem_Free
    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:1401,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/hmacmodule.c:1404,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1405,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/hmacmodule.c:1405,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:1406,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: 1404
        line_start: 1404
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1410
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1410
    functionName: py_hmac_hinfo_ht_add
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _Py_hashtable_set
    - PyErr_Occurred
    - assert
    - _Py_hashtable_get_entry
    linkageType: ''
    returnType: int
    signature: int py_hmac_hinfo_ht_add(_Py_hashtable_t *table, const void *key, void
      *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/hmacmodule.c:1419,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1428,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/hmacmodule.c:1428,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:1429,1
    - Dst: assert_is_static_hmac_hash_kind
      Src: /src/cpython/Modules/hmacmodule.c:1442,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/hmacmodule.c:1444,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/hmacmodule.c:1446,1
    - Dst: memcpy
      Src: /src/cpython/Modules/hmacmodule.c:1450,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1451,1
    - Dst: Py_HMAC_HINFO_LINK
      Src: /src/cpython/Modules/hmacmodule.c:1468,1
    - Dst: Py_HMAC_HINFO_LINK
      Src: /src/cpython/Modules/hmacmodule.c:1469,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1471,1
    - Dst: assert
      Src: /src/cpython/Modules/hmacmodule.c:1472,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/hmacmodule.c:1473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1427
        line_start: 1427
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (value->display_name == NULL)
      pos:
        line_end: 1450
        line_start: 1450
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (value->refcnt > 0)
      pos:
        line_end: 1470
        line_start: 1470
        source_file: /src/cpython/Modules/hmacmodule.c
    - condition: (value->display_name == NULL)
      pos:
        line_end: 1471
        line_start: 1471
        source_file: /src/cpython/Modules/hmacmodule.c
    constantsTouched: []
    func_position:
      end: 1482
      start: 1416
    functionDepth: 2
    functionLinenumber: 1416
    functionLinenumberEnd: 1482
    functionName: py_hmac_hinfo_ht_new
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyMem_Malloc
    - PyErr_NoMemory
    - Py_HMAC_HINFO_LINK
    - assert_is_static_hmac_hash_kind
    - memcpy
    - PyErr_Occurred
    - assert
    - _Py_hashtable_new_full
    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: 1458
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1458
    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:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1493
    functionDepth: 3
    functionLinenumber: 1493
    functionLinenumberEnd: 1499
    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:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - state
    argTypes:
    - PyObject*
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1517
    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: 1514
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1514
    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:1522,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/hmacmodule.c:1528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - state
    argTypes:
    - PyObject*
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1532
    functionName: hmacmodule_init_hmac_type
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - PyType_FromModuleAndSpec
    - PyModule_AddType
    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:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1547
    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: 1544
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1544
    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:1558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - state
    argTypes:
    - PyObject*
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1561
    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: 1558
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1558
    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:1569,1
    - Dst: __cpuid_count
      Src: /src/cpython/Modules/hmacmodule.c:1570,1
    - Dst: __cpuidex
      Src: /src/cpython/Modules/hmacmodule.c:1573,1
    - Dst: __cpuidex
      Src: /src/cpython/Modules/hmacmodule.c:1577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - hmacmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1635
    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:1640,1
    - Dst: hmacmodule_init_hash_info_table
      Src: /src/cpython/Modules/hmacmodule.c:1641,1
    - Dst: hmacmodule_init_exceptions
      Src: /src/cpython/Modules/hmacmodule.c:1644,1
    - Dst: hmacmodule_init_hmac_type
      Src: /src/cpython/Modules/hmacmodule.c:1647,1
    - Dst: hmacmodule_init_strings
      Src: /src/cpython/Modules/hmacmodule.c:1650,1
    - Dst: hmacmodule_init_globals
      Src: /src/cpython/Modules/hmacmodule.c:1653,1
    - Dst: hmacmodule_init_cpu_features
      Src: /src/cpython/Modules/hmacmodule.c:1656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1637
    functionDepth: 4
    functionLinenumber: 1637
    functionLinenumberEnd: 1658
    functionName: hmacmodule_exec
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - hmacmodule_init_exceptions
    - hmacmodule_init_cpu_features
    - hmacmodule_init_hash_info_table
    - hmacmodule_init_globals
    - hmacmodule_init_hmac_type
    - get_hmacmodule_state
    - hmacmodule_init_strings
    linkageType: ''
    returnType: int
    signature: int hmacmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1663,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/hmacmodule.c:1663,1
    - Dst: get_hmacmodule_state
      Src: /src/cpython/Modules/hmacmodule.c:1664,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1665,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1666,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/hmacmodule.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1669
    functionName: hmacmodule_traverse
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - get_hmacmodule_state
    - Py_VISIT
    - Py_TYPE
    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:1674,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/hmacmodule.c:1676,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1679,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1680,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/hmacmodule.c:1681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1671
    functionDepth: 2
    functionLinenumber: 1671
    functionLinenumberEnd: 1683
    functionName: hmacmodule_clear
    functionSourceFile: /src/cpython/Modules/hmacmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_hmacmodule_state
    - _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:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1685
    functionDepth: 3
    functionLinenumber: 1685
    functionLinenumberEnd: 1689
    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:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1710
    functionDepth: 1
    functionLinenumber: 1710
    functionLinenumberEnd: 1714
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    - _spamlistobject_CAST
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    - _spamlistobject_CAST
    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:
    - PyTuple_SET_ITEM
    - Py_NewRef
    - 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:
    - PyLong_FromLong
    - _spamlistobject_CAST
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    - _spamdictobject_CAST
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    - _spamdictobject_CAST
    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:
    - PyFloat_FromDouble
    - PyObject_GetAttr
    - clock
    - PyArg_ParseTuple
    - Py_DECREF
    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:
    - PyModule_AddObjectRef
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int xxsubtype_exec(PyObject* m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/xxsubtype.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    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:34,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    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: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    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: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    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: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    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:115,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:116,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_struct.c:118,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_struct.c:119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:124,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_struct.c:130,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:132,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - state
    - v
    argTypes:
    - _structmodulestate*
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Modules/_struct.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: get_pylong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - PyLong_Check
    - assert
    - _PyNumber_Index
    - PyIndex_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_pylong(_structmodulestate *state, PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/cpython/Modules/_struct.c:144,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:147,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:147,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_struct.c:148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:149,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:150,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: 146
        line_start: 146
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: get_long
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_pylong
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - assert
    - Py_DECREF
    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:165,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:168,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:168,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_struct.c:169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:170,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:171,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: 167
        line_start: 167
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: get_ulong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - get_pylong
    - PyLong_Check
    - PyErr_Occurred
    - assert
    - Py_DECREF
    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:185,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:188,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:188,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_struct.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:190,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:191,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: 187
        line_start: 187
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 196
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 196
    functionName: get_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongLong
    - get_pylong
    - PyLong_Check
    - PyErr_Occurred
    - assert
    - Py_DECREF
    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:205,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:208,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:208,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_struct.c:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:210,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:211,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: 207
        line_start: 207
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 216
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 216
    functionName: get_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_pylong
    - PyLong_Check
    - PyLong_AsUnsignedLongLong
    - PyErr_Occurred
    - assert
    - Py_DECREF
    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:225,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:228,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:228,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_struct.c:229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:230,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:231,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: 227
        line_start: 227
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 236
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 236
    functionName: get_ssize_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_pylong
    - PyLong_Check
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyLong_AsSsize_t
    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:245,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:248,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:248,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Modules/_struct.c:249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:250,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:251,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: 247
        line_start: 247
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: get_size_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_AsSize_t
    - get_pylong
    - PyLong_Check
    - PyErr_Occurred
    - assert
    - Py_DECREF
    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: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    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:268,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:269,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: unpack_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack2
    - PyFloat_FromDouble
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunpack_halffloat(const char *p,  /* start of 2-byte string
      */\n                 int le)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_struct.c:281,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:282,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:283,1
    - Dst: PyFloat_Pack2
      Src: /src/cpython/Modules/_struct.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - le
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: pack_halffloat
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack2
    - PyErr_SetString
    - PyErr_Occurred
    - PyFloat_AsDouble
    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:296,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:297,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: unpack_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyFloat_Unpack4
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunpack_float(const char *p,  /* start of 4-byte string
      */\n         int le)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_struct.c:308,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:309,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: unpack_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack8
    - PyFloat_FromDouble
    - PyErr_Occurred
    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:327,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:329,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:335,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: 326
        line_start: 326
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 343
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 343
    functionName: _range_error
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - assert
    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:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 370
    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:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 376
    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:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 382
    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:388,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: nu_short
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    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:396,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: nu_ushort
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    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:404,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: nu_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    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:412,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_struct.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 414
    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:420,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: nu_long
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    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:428,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_struct.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 430
    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:436,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_struct.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: nu_ssize_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - memcpy
    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:444,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_struct.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 446
    functionName: nu_size_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - memcpy
    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:452,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_struct.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 454
    functionName: nu_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - memcpy
    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:460,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_struct.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 462
    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:468,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_struct.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: nu_bool
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcmp
    - PyBool_FromLong
    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:476,1
    - Dst: unpack_halffloat
      Src: /src/cpython/Modules/_struct.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 480
    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:486,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 488
    functionName: nu_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - memcpy
    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:494,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_struct.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: nu_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - memcpy
    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:503,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 505
    functionName: nu_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - memcpy
    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:512,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 514
    functionName: nu_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - memcpy
    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:520,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_struct.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 522
    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:528,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:529,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:530,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 539
    functionName: np_byte
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    - PyErr_ExceptionMatches
    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:545,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:546,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:547,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 556
    functionName: np_ubyte
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    - PyErr_ExceptionMatches
    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:561,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_struct.c:561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:562,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 568
    functionName: np_char
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyErr_SetString
    - PyBytes_Size
    - 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:575,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:576,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:577,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:582,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 587
    functionName: np_short
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    - PyErr_ExceptionMatches
    - memcpy
    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:594,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:595,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:596,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:601,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 606
    functionName: np_ushort
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    - PyErr_ExceptionMatches
    - memcpy
    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:613,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:614,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:615,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:621,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 626
    functionName: np_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    - PyErr_ExceptionMatches
    - memcpy
    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:633,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:634,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:635,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:642,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 646
    functionName: np_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_ulong
    - PyErr_ExceptionMatches
    - memcpy
    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:652,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:653,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:654,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 660
    functionName: np_long
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    - PyErr_ExceptionMatches
    - memcpy
    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:666,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:667,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:668,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 674
    functionName: np_ulong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_ulong
    - PyErr_ExceptionMatches
    - memcpy
    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:680,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:681,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:682,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 688
    functionName: np_ssize_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_ssize_t
    - PyErr_ExceptionMatches
    - memcpy
    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:694,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:695,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:696,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: np_size_t
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_size_t
    - PyErr_ExceptionMatches
    - memcpy
    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:708,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:709,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:710,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 720
    functionName: np_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_longlong
    - memcpy
    - PyErr_ExceptionMatches
    - 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:726,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:727,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:728,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 737
    functionName: np_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_ExceptionMatches
    - PyErr_Format
    - get_ulonglong
    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:745,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 751
    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:757,1
    - Dst: pack_halffloat
      Src: /src/cpython/Modules/_struct.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 761
    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:766,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:767,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:768,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 773
    functionName: np_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFloat_Pack4
    - PyErr_Occurred
    - PyFloat_AsDouble
    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:778,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:779,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:780,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 786
    functionName: np_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - memcpy
    - PyErr_Occurred
    - PyFloat_AsDouble
    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:792,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:795,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:796,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 802
    functionName: np_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_SetString
    - memcpy
    - PyErr_Occurred
    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:808,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:811,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:812,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 818
    functionName: np_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_SetString
    - memcpy
    - PyErr_Occurred
    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:825,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:828,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:828,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_struct.c:829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:830,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:831,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:833,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: 827
        line_start: 827
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 835
      start: 820
    functionDepth: 2
    functionLinenumber: 820
    functionLinenumberEnd: 835
    functionName: np_void_p
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_pylong
    - PyLong_Check
    - memcpy
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyLong_AsVoidPtr
    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:874,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:882,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: 873
        line_start: 873
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 883
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 883
    functionName: bu_short
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    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:891,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:899,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: 890
        line_start: 890
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 900
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 900
    functionName: bu_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    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:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 912
    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:920,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_struct.c:928,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: 919
        line_start: 919
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 930
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 930
    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:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 942
    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:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 948
    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:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 954
    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:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 960
    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:965,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:966,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_struct.c:969,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:970,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:973,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 974
    functionName: bu_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - PyFloat_Unpack4
    - PyErr_Occurred
    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:981,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:982,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_struct.c:985,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:986,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 990
    functionName: bu_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack8
    - PyComplex_FromDoubles
    - PyErr_Occurred
    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:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 996
    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:1004,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:1005,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1006,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1013,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1016,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 998
    functionDepth: 3
    functionLinenumber: 998
    functionLinenumberEnd: 1024
    functionName: bp_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    - PyErr_ExceptionMatches
    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:1032,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:1033,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1034,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1043,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1026
    functionDepth: 3
    functionLinenumber: 1026
    functionLinenumberEnd: 1050
    functionName: bp_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_ulong
    - PyErr_ExceptionMatches
    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:1056,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_struct.c:1059,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1065,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1075
    functionName: bp_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_AsByteArray
    - PyErr_Format
    - 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:1081,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_struct.c:1084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1090,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1077
    functionDepth: 2
    functionLinenumber: 1077
    functionLinenumberEnd: 1099
    functionName: bp_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_AsByteArray
    - PyErr_Format
    - 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:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1101
    functionDepth: 2
    functionLinenumber: 1101
    functionLinenumberEnd: 1105
    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:1110,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1111,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1112,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1117
    functionName: bp_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFloat_Pack4
    - PyErr_Occurred
    - PyFloat_AsDouble
    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:1122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1123,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1124,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1129
    functionName: bp_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack8
    - PyErr_SetString
    - PyErr_Occurred
    - PyFloat_AsDouble
    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:1134,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1135,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1136,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1140,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1144
    functionName: bp_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_SetString
    - PyErr_Occurred
    - 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:1149,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1151,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1155,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1159
    functionName: bp_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack8
    - PyComplex_AsCComplex
    - PyErr_SetString
    - PyErr_Occurred
    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:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1170
    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:1206,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:1214,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: 1205
        line_start: 1205
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1215
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1215
    functionName: lu_short
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    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:1223,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_struct.c:1231,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: 1222
        line_start: 1222
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1232
      start: 1217
    functionDepth: 0
    functionLinenumber: 1217
    functionLinenumberEnd: 1232
    functionName: lu_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    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:1243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1244
    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:1252,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_struct.c:1260,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: 1251
        line_start: 1251
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1262
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1262
    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:1273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1264
    functionDepth: 1
    functionLinenumber: 1264
    functionLinenumberEnd: 1274
    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:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1280
    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:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1286
    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:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1292
    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:1297,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1298,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_struct.c:1301,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1302,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:1305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1306
    functionName: lu_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - PyFloat_Unpack4
    - PyErr_Occurred
    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:1313,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1314,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_struct.c:1317,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1318,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_struct.c:1321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - state
    - p
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1322
    functionName: lu_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack8
    - PyComplex_FromDoubles
    - PyErr_Occurred
    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:1330,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:1331,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1332,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1339,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1324
    functionDepth: 3
    functionLinenumber: 1324
    functionLinenumberEnd: 1350
    functionName: lp_int
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    - PyErr_ExceptionMatches
    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:1358,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:1359,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1360,1
    - Dst: RANGE_ERROR
      Src: /src/cpython/Modules/_struct.c:1369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1352
    functionDepth: 3
    functionLinenumber: 1352
    functionLinenumberEnd: 1376
    functionName: lp_uint
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_ulong
    - PyErr_ExceptionMatches
    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:1382,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_struct.c:1385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1391,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1401
    functionName: lp_longlong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_AsByteArray
    - PyErr_Format
    - 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:1407,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_struct.c:1410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1416,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1403
    functionDepth: 2
    functionLinenumber: 1403
    functionLinenumberEnd: 1425
    functionName: lp_ulonglong
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_AsByteArray
    - PyErr_Format
    - 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:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1427
    functionDepth: 2
    functionLinenumber: 1427
    functionLinenumberEnd: 1431
    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:1436,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1437,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1438,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1443
    functionName: lp_float
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFloat_Pack4
    - PyErr_Occurred
    - PyFloat_AsDouble
    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:1448,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1449,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1450,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1455
    functionName: lp_double
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack8
    - PyErr_SetString
    - PyErr_Occurred
    - PyFloat_AsDouble
    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:1460,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1461,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1462,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1466,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_struct.c:1469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1471
    functionName: lp_float_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_SetString
    - PyErr_Occurred
    - 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:1476,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_struct.c:1477,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1478,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1482,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_struct.c:1485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - state
    - p
    - v
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1486
    functionName: lp_double_complex
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack8
    - PyComplex_AsCComplex
    - PyErr_SetString
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int lp_double_complex(_structmodulestate *state, char *p, PyObject
      *v, const formatdef *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/_struct.c:1535,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_struct.c:1545,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - Py_UNUSED(arg)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1518
    functionDepth: 0
    functionLinenumber: 1518
    functionLinenumberEnd: 1557
    functionName: init_endian_tables
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int init_endian_tables(void *Py_UNUSED(arg))
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - pfmt
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1583
    functionName: whichtable
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: formatdef
    signature: 'formatdef *

      whichtable(const char **pfmt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - e
    - s
    argTypes:
    - formatdef*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1598
    functionName: format_equal
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int format_equal(const formatdef *e, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_equal
      Src: /src/cpython/Modules/_struct.c:1607,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - state
    - s
    - f
    argTypes:
    - _structmodulestate*
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1613
    functionName: getentry
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - format_equal
    linkageType: ''
    returnType: formatdef
    signature: 'formatdef *

      getentry(_structmodulestate *state, const char *s, const formatdef *f)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format_equal
      Src: /src/cpython/Modules/_struct.c:1623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - size
    - s
    - e
    argTypes:
    - Py_ssize_t
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1618
    functionDepth: 1
    functionLinenumber: 1618
    functionLinenumberEnd: 1632
    functionName: align
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - format_equal
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t align(Py_ssize_t size, const char *s, const formatdef *e)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:1653,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_struct.c:1655,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1656,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_struct.c:1659,1
    - Dst: strlen
      Src: /src/cpython/Modules/_struct.c:1660,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_struct.c:1660,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1661,1
    - Dst: whichtable
      Src: /src/cpython/Modules/_struct.c:1666,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Modules/_struct.c:1673,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1687,1
    - Dst: getentry
      Src: /src/cpython/Modules/_struct.c:1696,1
    - Dst: align
      Src: /src/cpython/Modules/_struct.c:1722,1
    - Dst: strlen
      Src: /src/cpython/Modules/_struct.c:1725,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_struct.c:1735,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_struct.c:1739,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_struct.c:1741,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Modules/_struct.c:1748,1
    - Dst: getentry
      Src: /src/cpython/Modules/_struct.c:1759,1
    - Dst: align
      Src: /src/cpython/Modules/_struct.c:1760,1
    - Dst: strlen
      Src: /src/cpython/Modules/_struct.c:1761,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_struct.c:1788,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_struct.c:1792,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_struct.c:1792,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:1797,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 131
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1640
    functionDepth: 2
    functionLinenumber: 1640
    functionLinenumberEnd: 1800
    functionName: prepare_s
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - getentry
    - PyUnicode_1BYTE_DATA
    - PyUnicode_IS_ASCII
    - PyErr_NoMemory
    - whichtable
    - Py_XSETREF
    - PyErr_SetString
    - get_struct_state_structinst
    - Py_ISSPACE
    - align
    - PyUnicode_GET_LENGTH
    - strlen
    - PyMem_Malloc
    - PyMem_Free
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int prepare_s(PyStructObject *self, PyObject *format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_struct.c:1807,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Modules/_struct.c:1808,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_struct.c:1810,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_struct.c:1811,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:1811,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1812,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:1815,1
    - Dst: prepare_s
      Src: /src/cpython/Modules/_struct.c:1823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1804
    functionDepth: 3
    functionLinenumber: 1804
    functionLinenumberEnd: 1829
    functionName: set_format
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - prepare_s
    - PyUnicode_FromObject
    - PyUnicode_Check
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyUnicode_DecodeASCII
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int set_format(PyStructObject *self, PyObject *format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_struct.c:1847,1
    - Dst: set_format
      Src: /src/cpython/Modules/_struct.c:1856,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - type
    - format
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1843
    functionDepth: 4
    functionLinenumber: 1843
    functionLinenumberEnd: 1861
    functionName: Struct_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_format
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_impl(PyTypeObject *type, PyObject *format)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Struct
      Src: /src/cpython/Modules/_struct.c:1872,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1876,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1876,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_struct.c:1877,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_struct.c:1877,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1879,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1879,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Modules/_struct.c:1880,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1885,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1885,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/_struct.c:1887,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_struct.c:1890,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_struct.c:1895,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_struct.c:1898,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_struct.c:1904,1
    - Dst: set_format
      Src: /src/cpython/Modules/_struct.c:1913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1918,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_struct.c:1921,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:1922,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Modules/_struct.c:1923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:1931,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_struct.c:1933,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1867
    functionDepth: 4
    functionLinenumber: 1867
    functionLinenumberEnd: 1935
    functionName: s_new
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 2
    functionsReached:
    - PyDict_GetItemStringRef
    - PyTuple_GET_ITEM
    - Struct
    - PyErr_WarnEx
    - PyErr_WarnFormat
    - set_format
    - Py_CLEAR
    - PyErr_GetRaisedException
    - Py_XDECREF
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_struct.c:1940,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_struct.c:1941,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_struct.c:1942,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_struct.c:1942,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_struct.c:1943,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_struct.c:1944,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_struct.c:1944,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_struct.c:1946,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:1947,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_struct.c:1948,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:1948,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - s
    - format
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1951
    functionName: same_format
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_IS_ASCII
    - memcmp
    - PyBytes_Check
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: bool
    signature: bool same_format(PyStructObject *s, PyObject *format)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: set_format
      Src: /src/cpython/Modules/_struct.c:1969,1
    - Dst: same_format
      Src: /src/cpython/Modules/_struct.c:1973,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_struct.c:1979,1
    - Dst: set_format
      Src: /src/cpython/Modules/_struct.c:1982,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1964
    functionDepth: 4
    functionLinenumber: 1964
    functionLinenumberEnd: 1988
    functionName: Struct___init___impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - set_format
    - same_format
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int Struct___init___impl(PyStructObject *self, PyObject *format)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:1994,1
    - Dst: Struct___init__
      Src: /src/cpython/Modules/_struct.c:2003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 2004
    functionName: s_init
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 6
    functionsReached:
    - Struct___init__
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int s_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2009,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2012
    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:2017,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2018,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:2018,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2014
    functionDepth: 1
    functionLinenumber: 2014
    functionLinenumberEnd: 2021
    functionName: s_traverse
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyStructObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2026,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:2027,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_struct.c:2028,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_struct.c:2029,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_struct.c:2031,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_struct.c:2033,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_struct.c:2034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2023
    functionDepth: 1
    functionLinenumber: 2023
    functionLinenumberEnd: 2036
    functionName: s_dealloc
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyMem_Free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - PyStructObject_CAST
    - Py_XDECREF
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void s_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_struct.c:2043,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_struct.c:2053,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_struct.c:2054,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_struct.c:2055,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_struct.c:2066,1
    - Dst: formatdef*::unpack
      Src: /src/cpython/Modules/_struct.c:2068,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_struct.c:2072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2079,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - soself
    - startfrom
    - state
    argTypes:
    - PyStructObject*
    - char*
    - _structmodulestate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2081
    functionName: s_unpack_internal
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyBytes_FromStringAndSize
    - PyTuple_SET_ITEM
    - formatdef*::unpack
    - Py_DECREF
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ns_unpack_internal(PyStructObject *soself, const char *startfrom,\n
      \                 _structmodulestate *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 2083
    functionDepth: 0
    functionLinenumber: 2083
    functionLinenumberEnd: 2091
    functionName: ENSURE_STRUCT_IS_READY
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_STRUCT_IS_READY(self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:2109,1
    - Dst: ENSURE_STRUCT_IS_READY
      Src: /src/cpython/Modules/_struct.c:2110,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2112,1
    - Dst: s_unpack_internal
      Src: /src/cpython/Modules/_struct.c:2117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyStructObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2105
    functionDepth: 2
    functionLinenumber: 2105
    functionLinenumberEnd: 2118
    functionName: Struct_unpack_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - get_struct_state_structinst
    - ENSURE_STRUCT_IS_READY
    - s_unpack_internal
    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:2139,1
    - Dst: ENSURE_STRUCT_IS_READY
      Src: /src/cpython/Modules/_struct.c:2140,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2144,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2152,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2162,1
    - Dst: s_unpack_internal
      Src: /src/cpython/Modules/_struct.c:2172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - buffer
    - offset
    argTypes:
    - PyStructObject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2134
    functionDepth: 2
    functionLinenumber: 2134
    functionLinenumberEnd: 2173
    functionName: Struct_unpack_from_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - get_struct_state_structinst
    - ENSURE_STRUCT_IS_READY
    - s_unpack_internal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nStruct_unpack_from_impl(PyStructObject *self, Py_buffer
      *buffer,\n                        Py_ssize_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2187
    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:2191,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:2193,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_struct.c:2194,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_struct.c:2195,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2196,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_struct.c:2197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2188
    functionDepth: 1
    functionLinenumber: 2188
    functionLinenumberEnd: 2199
    functionName: unpackiter_dealloc
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpackiterobject_CAST
    - PyBuffer_Release
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void unpackiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpackiterobject_CAST
      Src: /src/cpython/Modules/_struct.c:2204,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2205,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:2205,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2206,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2201
    functionDepth: 1
    functionLinenumber: 2201
    functionLinenumberEnd: 2209
    functionName: unpackiter_traverse
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - unpackiterobject_CAST
    - Py_TYPE
    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:2215,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_struct.c:2222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2211
    functionDepth: 1
    functionLinenumber: 2211
    functionLinenumberEnd: 2223
    functionName: unpackiter_len
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - unpackiterobject_CAST
    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:2233,1
    - Dst: get_struct_state_iterinst
      Src: /src/cpython/Modules/_struct.c:2234,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2241,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_struct.c:2242,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2245,1
    - Dst: s_unpack_internal
      Src: /src/cpython/Modules/_struct.c:2246,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: 2244
        line_start: 2244
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 2251
      start: 2230
    functionDepth: 2
    functionLinenumber: 2230
    functionLinenumberEnd: 2251
    functionName: unpackiter_iternext
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpackiterobject_CAST
    - PyBuffer_Release
    - Py_CLEAR
    - s_unpack_internal
    - 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:2289,1
    - Dst: ENSURE_STRUCT_IS_READY
      Src: /src/cpython/Modules/_struct.c:2291,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2294,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Modules/_struct.c:2299,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_struct.c:2303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2304,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_struct.c:2312,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_struct.c:2315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2285
    functionDepth: 1
    functionLinenumber: 2285
    functionLinenumberEnd: 2318
    functionName: Struct_iter_unpack_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_struct_state_structinst
    - ENSURE_STRUCT_IS_READY
    - PyType_GenericAlloc
    - PyErr_Format
    - Py_DECREF
    - PyObject_GetBuffer
    - Py_NewRef
    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:2340,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_struct.c:2348,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_struct.c:2352,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_struct.c:2353,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:2354,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2359,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2360,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2363,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2364,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:2369,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_struct.c:2370,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_struct.c:2374,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_struct.c:2375,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:2376,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2381,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2382,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2385,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_struct.c:2386,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_struct.c:2395,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_struct.c:2398,1
    - Dst: formatdef*::pack
      Src: /src/cpython/Modules/_struct.c:2400,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_struct.c:2401,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_struct.c:2401,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_struct.c:2402,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 4
    argNames:
    - soself
    - args
    - buf
    - state
    argTypes:
    - PyStructObject*
    - PyObject**
    - char*
    - _structmodulestate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2413
    functionName: s_pack_internal
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - formatdef*::pack
    - strcmp
    - Py_SAFE_DOWNCAST
    - PyBytes_Check
    - PyErr_SetString
    - PyLong_Check
    - PyByteArray_GET_SIZE
    - memset
    - memcpy
    - PyErr_ExceptionMatches
    - PyBytes_AS_STRING
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: "int s_pack_internal(PyStructObject *soself, PyObject *const *args,\n
      \               char* buf, _structmodulestate *state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:2433,1
    - Dst: ENSURE_STRUCT_IS_READY
      Src: /src/cpython/Modules/_struct.c:2436,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2438,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_struct.c:2444,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_struct.c:2448,1
    - Dst: s_pack_internal
      Src: /src/cpython/Modules/_struct.c:2451,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_struct.c:2452,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_struct.c:2456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - values
    - values_length
    argTypes:
    - PyStructObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2428
    functionDepth: 2
    functionLinenumber: 2428
    functionLinenumberEnd: 2457
    functionName: Struct_pack_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - get_struct_state_structinst
    - ENSURE_STRUCT_IS_READY
    - PyBytesWriter_Discard
    - PyErr_Format
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_GetData
    - s_pack_internal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nStruct_pack_impl(PyStructObject *self, PyObject * const
      *values,\n                 Py_ssize_t values_length)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state_structinst
      Src: /src/cpython/Modules/_struct.c:2481,1
    - Dst: ENSURE_STRUCT_IS_READY
      Src: /src/cpython/Modules/_struct.c:2483,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2485,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2495,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2504,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2516,1
    - Dst: assert
      Src: /src/cpython/Modules/_struct.c:2517,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_struct.c:2519,1
    - Dst: s_pack_internal
      Src: /src/cpython/Modules/_struct.c:2531,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - self
    - buffer
    - offset
    - values
    - values_length
    argTypes:
    - PyStructObject*
    - Py_buffer*
    - Py_ssize_t
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (offset >= 0)
      pos:
        line_end: 2515
        line_start: 2515
        source_file: /src/cpython/Modules/_struct.c
    - condition: (self->s_size >= 0)
      pos:
        line_end: 2516
        line_start: 2516
        source_file: /src/cpython/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 2536
      start: 2475
    functionDepth: 2
    functionLinenumber: 2475
    functionLinenumberEnd: 2536
    functionName: Struct_pack_into_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_struct_state_structinst
    - ENSURE_STRUCT_IS_READY
    - PyErr_Format
    - assert
    - s_pack_internal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nStruct_pack_into_impl(PyStructObject *self, Py_buffer
      *buffer,\n                      Py_ssize_t offset, PyObject * const *values,\n
      \                     Py_ssize_t values_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_STRUCT_IS_READY
      Src: /src/cpython/Modules/_struct.c:2546,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_struct.c:2547,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:2547,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_struct.c:2551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyStructObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2542
    functionDepth: 1
    functionLinenumber: 2542
    functionLinenumberEnd: 2552
    functionName: Struct___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyLong_FromSize_t
    - ENSURE_STRUCT_IS_READY
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct___sizeof___impl(PyStructObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2557,1
    - Dst: ENSURE_STRUCT_IS_READY
      Src: /src/cpython/Modules/_struct.c:2558,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_struct.c:2559,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_struct.c:2559,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_struct.c:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2560
    functionName: s_repr
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - ENSURE_STRUCT_IS_READY
    - _PyType_Name
    - PyStructObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_repr(PyObject *op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state
      Src: /src/cpython/Modules/_struct.c:2616,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_struct.c:2619,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_struct.c:2623,1
    - Dst: PyStructObject_CAST
      Src: /src/cpython/Modules/_struct.c:2627,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_struct.c:2631,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_struct.c:2633,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Modules/_struct.c:2634,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_struct.c:2636,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_struct.c:2637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - module
    - fmt
    - ptr
    argTypes:
    - PyObject*
    - PyObject*
    - PyStructObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2612
    functionDepth: 2
    functionLinenumber: 2612
    functionLinenumberEnd: 2642
    functionName: cache_struct_converter
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyDict_Clear
    - Py_SETREF
    - PyDict_SetItem
    - PyErr_Clear
    - PyStructObject_CAST
    - get_struct_state
    - PyDict_GetItemRef
    - PyObject_CallOneArg
    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:2654,1
    - Dst: get_struct_state
      Src: /src/cpython/Modules/_struct.c:2654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2650
    functionDepth: 2
    functionLinenumber: 2650
    functionLinenumberEnd: 2656
    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: 2673
      start: 2668
    functionDepth: 0
    functionLinenumber: 2668
    functionLinenumberEnd: 2673
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_pack_impl
      Src: /src/cpython/Modules/_struct.c:2693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - s_object
    - values
    - values_length
    argTypes:
    - PyObject*
    - PyStructObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2688
    functionDepth: 3
    functionLinenumber: 2688
    functionLinenumberEnd: 2694
    functionName: pack_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - Struct_pack_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npack_impl(PyObject *module, PyStructObject *s_object,\n
      \         PyObject * const *values, Py_ssize_t values_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_pack_into_impl
      Src: /src/cpython/Modules/_struct.c:2719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - module
    - s_object
    - buffer
    - offset
    - values
    - values_length
    argTypes:
    - PyObject*
    - PyStructObject*
    - Py_buffer*
    - Py_ssize_t
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2713
    functionDepth: 3
    functionLinenumber: 2713
    functionLinenumberEnd: 2721
    functionName: pack_into_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - Struct_pack_into_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npack_into_impl(PyObject *module, PyStructObject *s_object,
      Py_buffer *buffer,\n               Py_ssize_t offset, PyObject * const *values,\n
      \              Py_ssize_t values_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_unpack_impl
      Src: /src/cpython/Modules/_struct.c:2741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - s_object
    - buffer
    argTypes:
    - PyObject*
    - PyStructObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2737
    functionDepth: 3
    functionLinenumber: 2737
    functionLinenumberEnd: 2742
    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:2764,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: 2765
      start: 2759
    functionDepth: 3
    functionLinenumber: 2759
    functionLinenumberEnd: 2765
    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_impl
      Src: /src/cpython/Modules/_struct.c:2786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - s_object
    - buffer
    argTypes:
    - PyObject*
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2781
    functionDepth: 2
    functionLinenumber: 2781
    functionLinenumberEnd: 2787
    functionName: iter_unpack_impl
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - Struct_iter_unpack_impl
    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:2836,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2838,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2839,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2840,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_struct.c:2841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2833
    functionDepth: 2
    functionLinenumber: 2833
    functionLinenumberEnd: 2844
    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:2849,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2851,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2852,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2853,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_struct.c:2854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2846
    functionDepth: 2
    functionLinenumber: 2846
    functionLinenumberEnd: 2857
    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:2862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2859
    functionDepth: 3
    functionLinenumber: 2859
    functionLinenumberEnd: 2863
    functionName: _structmodule_free
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - _structmodule_clear
    linkageType: ''
    returnType: void
    signature: void _structmodule_free(void *module)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_struct_state
      Src: /src/cpython/Modules/_struct.c:2868,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_struct.c:2870,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_struct.c:2875,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_struct.c:2880,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_struct.c:2884,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_struct.c:2891,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_struct.c:2894,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_struct.c:2898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2865
    functionDepth: 2
    functionLinenumber: 2865
    functionLinenumberEnd: 2903
    functionName: _structmodule_exec
    functionSourceFile: /src/cpython/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - _PyOnceFlag_CallOnce
    - PyType_FromModuleAndSpec
    - get_struct_state
    - PyModule_AddObjectRef
    - PyModule_AddType
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int _structmodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_struct.c:2928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2925
    functionDepth: 1
    functionLinenumber: 2925
    functionLinenumberEnd: 2929
    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: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    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:55,1
    - Dst: assert
      Src: /src/cpython/Modules/md5module.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Modules/md5module.c
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    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:75,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/md5module.c:79,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/md5module.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - MD5State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: newMD5object
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    linkageType: ''
    returnType: MD5object
    signature: 'MD5object *

      newMD5object(MD5State * st)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _MD5object_CAST
      Src: /src/cpython/Modules/md5module.c:89,1
    - Dst: Hacl_Hash_MD5_free
      Src: /src/cpython/Modules/md5module.c:91,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/md5module.c:94,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/md5module.c:95,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/md5module.c:96,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/md5module.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: MD5_dealloc
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Hacl_Hash_MD5_free
    - PyObject_GC_UnTrack
    - _MD5object_CAST
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void MD5_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/md5module.c:115,1
    - Dst: newMD5object
      Src: /src/cpython/Modules/md5module.c:118,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/md5module.c:122,1
    - Dst: Hacl_Hash_MD5_copy
      Src: /src/cpython/Modules/md5module.c:123,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/md5module.c:124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/md5module.c:126,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/md5module.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - MD5object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: MD5Type_copy_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - PyErr_NoMemory
    - Hacl_Hash_MD5_copy
    - newMD5object
    - HASHLIB_RELEASE_LOCK
    - Py_DECREF
    - PyType_GetModuleState
    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:143,1
    - Dst: Hacl_Hash_MD5_digest
      Src: /src/cpython/Modules/md5module.c:144,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/md5module.c:145,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/md5module.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MD5object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: MD5Type_digest_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - HASHLIB_RELEASE_LOCK
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_MD5_digest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_digest_impl(MD5object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/md5module.c:160,1
    - Dst: Hacl_Hash_MD5_digest
      Src: /src/cpython/Modules/md5module.c:161,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/md5module.c:162,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/md5module.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MD5object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: MD5Type_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_RELEASE_LOCK
    - HASHLIB_ACQUIRE_LOCK
    - _Py_strhex
    - Hacl_Hash_MD5_digest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_hexdigest_impl(MD5object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/md5module.c:174,1
    - Dst: Hacl_Hash_MD5_update
      Src: /src/cpython/Modules/md5module.c:177,1
    - Dst: Hacl_Hash_MD5_update
      Src: /src/cpython/Modules/md5module.c:183,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: 173
        line_start: 173
        source_file: /src/cpython/Modules/md5module.c
    constantsTouched: []
    func_position:
      end: 184
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 184
    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:200,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/md5module.c:201,1
    - Dst: update
      Src: /src/cpython/Modules/md5module.c:203,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/md5module.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - MD5object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: MD5Type_update_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - update
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    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:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    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:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    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:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    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:277,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/md5module.c:285,1
    - Dst: md5_get_state
      Src: /src/cpython/Modules/md5module.c:288,1
    - Dst: newMD5object::newMD5object
      Src: /src/cpython/Modules/md5module.c:289,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/md5module.c:291,1
    - Dst: Hacl_Hash_MD5_malloc
      Src: /src/cpython/Modules/md5module.c:296,1
    - Dst: hash_state::hash_state
      Src: /src/cpython/Modules/md5module.c:297,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/md5module.c:300,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/md5module.c:302,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/md5module.c:308,1
    - Dst: update
      Src: /src/cpython/Modules/md5module.c:310,1
    - Dst: hash_state::hash_state
      Src: /src/cpython/Modules/md5module.c:310,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/md5module.c:312,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: 316
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 316
    functionName: _md5_md5_impl
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_MD5_malloc
    - PyErr_NoMemory
    - md5_get_state
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - update
    - _Py_hashlib_data_argument
    - newMD5object::newMD5object
    - hash_state::hash_state
    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:329,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/md5module.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 332
    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:337,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/md5module.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 340
    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:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 346
    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:352,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/md5module.c:354,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/md5module.c:357,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/md5module.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 365
    functionName: md5_exec
    functionSourceFile: /src/cpython/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - md5_get_state
    - PyType_FromModuleAndSpec
    - PyModule_AddObjectRef
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int md5_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/md5module.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: 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: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    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: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    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: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    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: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    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: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    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: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    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: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    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: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    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: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    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: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    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: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    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: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    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: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    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: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    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: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    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: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    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: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    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: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    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: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    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: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    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: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    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: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    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: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    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: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    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: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    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: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    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:121,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    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:134,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_datetimemodule.c:139,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_datetimemodule.c:144,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:148,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:154,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 156
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 156
    functionName: get_current_module
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 5
    functionsReached:
    - Py_CLEAR
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - PyWeakref_GetRef
    - 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:163,1
    - Dst: get_current_module
      Src: /src/cpython/Modules/_datetimemodule.c:164,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:167,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_datetimemodule.c:172,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_datetimemodule.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - p_mod
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 180
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 180
    functionName: _get_current_state
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyImport_ImportModule
    - PyInterpreterState_Get
    - get_current_module
    - PyErr_Occurred
    - 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: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    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: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    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:190,1
    - Dst: PyInterpreterState_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:191,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:195,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_datetimemodule.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - interp
    - mod
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: set_current_module
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyWeakref_NewRef
    - assert
    - Py_DECREF
    - 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:207,1
    - Dst: PyInterpreterState_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:209,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_datetimemodule.c:216,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_datetimemodule.c:221,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:224,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_datetimemodule.c:235,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_datetimemodule.c:242,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_datetimemodule.c:245,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - interp
    - expected
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 246
    functionName: clear_current_module
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyDict_GetItemRef
    - PyErr_SetRaisedException
    - Py_XDECREF
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    - PyWeakref_GetRef
    - 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: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    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: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    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: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    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: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    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: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    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: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    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: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    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: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    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: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    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: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    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: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    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: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    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: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    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: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    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: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    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: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    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: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    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: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    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: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    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: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    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: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    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:369,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - x
    - y
    - r
    argTypes:
    - int
    - int
    - int*
    assertStmts:
    - condition: (y > 0)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= *r && *r < y)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 378
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 378
    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:389,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:392,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - m
    - n
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 396
    functionName: divide_nearest
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_ITEM
    - _PyLong_DivmodNear
    - Py_NewRef
    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: 427
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 427
    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:433,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:434,1
    - Dst: is_leap
      Src: /src/cpython/Modules/_datetimemodule.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (month >= 1)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (month <= 12)
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 439
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 439
    functionName: days_in_month
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - is_leap
    - assert
    linkageType: ''
    returnType: int
    signature: int days_in_month(int year, int month)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:447,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:448,1
    - Dst: is_leap
      Src: /src/cpython/Modules/_datetimemodule.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (month >= 1)
      pos:
        line_end: 446
        line_start: 446
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (month <= 12)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 453
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 453
    functionName: days_before_month
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - is_leap
    - assert
    linkageType: ''
    returnType: int
    signature: int days_before_month(int year, int month)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts:
    - condition: (year >= 1)
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 468
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 468
    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:505,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:534,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:546,1
    - Dst: is_leap
      Src: /src/cpython/Modules/_datetimemodule.c:546,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:552,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:555,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:556,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:556,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: 504
        line_start: 504
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (leapyear == is_leap(*year))
      pos:
        line_end: 545
        line_start: 545
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (n == 0)
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= n)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (n < days_in_month(*year, *month))
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 559
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 559
    functionName: ord_to_ymd
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_in_month
    - is_leap
    - assert
    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:565,1
    - Dst: days_before_month
      Src: /src/cpython/Modules/_datetimemodule.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 566
    functionName: ymd_to_ord
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_before_year
    - days_before_month
    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:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 573
    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:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 590
    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:604,1
    - Dst: is_leap
      Src: /src/cpython/Modules/_datetimemodule.c:605,1
    - Dst: iso_week1_monday
      Src: /src/cpython/Modules/_datetimemodule.c:620,1
    - Dst: ord_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:624,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: 626
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 626
    functionName: iso_to_ymd
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - weekday
    - is_leap
    - iso_week1_monday
    - ord_to_ymd
    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:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - days
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 645
    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:655,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:660,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:664,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 672
    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:681,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:685,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:689,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:693,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:698,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: 703
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 703
    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:718,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:719,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:721,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:723,1
    - Dst: SIGNED_ADD_OVERFLOWED
      Src: /src/cpython/Modules/_datetimemodule.c:723,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - hi
    - lo
    - factor
    argTypes:
    - int*
    - int*
    - int
    assertStmts:
    - condition: (factor > 0)
      pos:
        line_end: 717
        line_start: 717
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (lo != hi)
      pos:
        line_end: 718
        line_start: 718
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (! SIGNED_ADD_OVERFLOWED(new_hi, *hi, num_hi))
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= *lo && *lo < factor)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 727
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 727
    functionName: normalize_pair
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - divmod
    - SIGNED_ADD_OVERFLOWED
    - 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:739,1
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:746,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:752,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:753,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - d
    - s
    - us
    argTypes:
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (0 <= *us && *us < 1000000)
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= *s && *s < 24*3600)
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 754
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 754
    functionName: normalize_d_s_us
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - normalize_pair
    - assert
    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:771,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:778,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:787,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:804,1
    - Dst: ord_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:809,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:814,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:815,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:819,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: 770
        line_start: 770
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (*m > 0)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (*d > 0)
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 823
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 823
    functionName: normalize_y_m_d
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_in_month
    - ord_to_ymd
    - PyErr_SetString
    - ymd_to_ord
    - 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:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 829
    functionDepth: 4
    functionLinenumber: 829
    functionLinenumberEnd: 833
    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:843,1
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:844,1
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:845,1
    - Dst: normalize_pair
      Src: /src/cpython/Modules/_datetimemodule.c:846,1
    - Dst: normalize_date
      Src: /src/cpython/Modules/_datetimemodule.c:847,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: 848
      start: 838
    functionDepth: 5
    functionLinenumber: 838
    functionLinenumberEnd: 848
    functionName: normalize_datetime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - normalize_pair
    - normalize_date
    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:875,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_datetimemodule.c:877,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Modules/_datetimemodule.c:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - aware
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 881
    functionName: time_alloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - _PyObject_Init
    - 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:887,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_datetimemodule.c:889,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Modules/_datetimemodule.c:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - aware
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 893
    functionName: datetime_alloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - _PyObject_Init
    - 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:905,1
    - Dst: SET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:906,1
    - Dst: SET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:907,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: 908
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 908
    functionName: set_date_fields
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - SET_MONTH
    - SET_YEAR
    - 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: 917
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 917
    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: 932
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 932
    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:948,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:964,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:969,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:975,1
    - Dst: iso_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:983,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:991,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:999,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: 968
        line_start: 968
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1004
      start: 934
    functionDepth: 4
    functionLinenumber: 934
    functionLinenumberEnd: 1004
    functionName: parse_isoformat_date
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    - iso_to_ymd
    - parse_digits
    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:1019,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_datetimemodule.c:1057,1
    - Dst: is_digit
      Src: /src/cpython/Modules/_datetimemodule.c:1070,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: 1076
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1076
    functionName: parse_hh_mm_ss_ff
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - is_digit
    - parse_digits
    linkageType: ''
    returnType: int
    signature: "int parse_hh_mm_ss_ff(const char *tstr, const char *tstr_end, int
      *hour,\n                  int *minute, int *second, int *microsecond)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_hh_mm_ss_ff
      Src: /src/cpython/Modules/_datetimemodule.c:1103,1
    - Dst: parse_hh_mm_ss_ff
      Src: /src/cpython/Modules/_datetimemodule.c:1135,1
    - Dst: check_time_args
      Src: /src/cpython/Modules/_datetimemodule.c:1139,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: 1147
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1147
    functionName: parse_isoformat_time
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - parse_hh_mm_ss_ff
    - check_time_args
    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:1159,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1163,1
    - Dst: set_date_fields
      Src: /src/cpython/Modules/_datetimemodule.c:1165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - year
    - month
    - day
    - type
    argTypes:
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1154
    functionDepth: 3
    functionLinenumber: 1154
    functionLinenumberEnd: 1167
    functionName: new_date_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - set_date_fields
    - PyTypeObject*::tp_alloc
    - check_date_args
    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: 1171
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1171
    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:1182,1
    - Dst: new_date_ex
      Src: /src/cpython/Modules/_datetimemodule.c:1183,1
    - Dst: DATETIME_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1185,1
    - Dst: new_datetime_ex
      Src: /src/cpython/Modules/_datetimemodule.c:1186,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_datetimemodule.c:1189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - year
    - month
    - day
    - cls
    argTypes:
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1177
    functionDepth: 4
    functionLinenumber: 1177
    functionLinenumberEnd: 1193
    functionName: new_date_subclass_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_TYPE
    - PyObject_CallFunction
    - new_datetime_ex
    - new_date_ex
    - DATETIME_TYPE
    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:1203,1
    - Dst: check_time_args
      Src: /src/cpython/Modules/_datetimemodule.c:1206,1
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:1209,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1213,1
    - Dst: set_date_fields
      Src: /src/cpython/Modules/_datetimemodule.c:1216,1
    - Dst: DATE_SET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:1217,1
    - Dst: DATE_SET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:1218,1
    - Dst: DATE_SET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1219,1
    - Dst: DATE_SET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1220,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1222,1
    - Dst: DATE_SET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:1224,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: 1227
      start: 1196
    functionDepth: 3
    functionLinenumber: 1196
    functionLinenumberEnd: 1227
    functionName: new_datetime_ex2
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_SET_FOLD
    - DATE_SET_MINUTE
    - DATE_SET_SECOND
    - set_date_fields
    - DATE_SET_HOUR
    - check_tzinfo_subclass
    - check_time_args
    - check_date_args
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - 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:1233,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: 1235
      start: 1229
    functionDepth: 4
    functionLinenumber: 1229
    functionLinenumberEnd: 1235
    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: 1239
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1239
    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:1246,1
    - Dst: Py_VaBuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:1247,1
    - Dst: va_end
      Src: /src/cpython/Modules/_datetimemodule.c:1248,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_datetimemodule.c:1253,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:1257,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_datetimemodule.c:1261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1262,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_datetimemodule.c:1267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1269,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - cls
    - fold
    - format
    argTypes:
    - PyTypeObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1272
    functionName: call_subclass_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_VaBuildValue
    - va_start
    - PyObject_Call
    - PyDict_SetItemString
    - va_end
    - Py_XDECREF
    - Py_DECREF
    - PyDict_New
    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:1280,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:1282,1
    - Dst: call_subclass_fold
      Src: /src/cpython/Modules/_datetimemodule.c:1287,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: 1292
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1292
    functionName: new_datetime_subclass_fold_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATETIME_TYPE
    - call_subclass_fold
    - 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:1298,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: 1301
      start: 1294
    functionDepth: 3
    functionLinenumber: 1294
    functionLinenumberEnd: 1301
    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:1311,1
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:1314,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1318,1
    - Dst: TIME_SET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:1322,1
    - Dst: TIME_SET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:1323,1
    - Dst: TIME_SET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1324,1
    - Dst: TIME_SET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1325,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1327,1
    - Dst: TIME_SET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:1329,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: 1332
      start: 1304
    functionDepth: 2
    functionLinenumber: 1304
    functionLinenumberEnd: 1332
    functionName: new_time_ex2
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_SET_FOLD
    - TIME_SET_HOUR
    - check_tzinfo_subclass
    - TIME_SET_SECOND
    - check_time_args
    - TIME_SET_MICROSECOND
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - TIME_SET_MINUTE
    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:1338,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: 1339
      start: 1334
    functionDepth: 3
    functionLinenumber: 1334
    functionLinenumberEnd: 1339
    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: 1343
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1343
    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:1349,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:1351,1
    - Dst: call_subclass_fold
      Src: /src/cpython/Modules/_datetimemodule.c:1355,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: 1360
      start: 1344
    functionDepth: 2
    functionLinenumber: 1344
    functionLinenumberEnd: 1360
    functionName: new_time_subclass_fold_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_subclass_fold
    - TIME_TYPE
    - 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:1377,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1378,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1379,1
    - Dst: check_delta_day_range
      Src: /src/cpython/Modules/_datetimemodule.c:1381,1
    - Dst: look_up_delta
      Src: /src/cpython/Modules/_datetimemodule.c:1384,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1388,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1388,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1390,1
    - Dst: SET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1393,1
    - Dst: SET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1394,1
    - Dst: SET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1395,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: 1378
        line_start: 1378
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (0 <= seconds && seconds < 24*3600)
      pos:
        line_end: 1377
        line_start: 1377
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1387
        line_start: 1387
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1398
      start: 1370
    functionDepth: 3
    functionLinenumber: 1370
    functionLinenumberEnd: 1398
    functionName: new_delta_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - normalize_d_s_us
    - SET_TD_SECONDS
    - look_up_delta
    - SET_TD_MICROSECONDS
    - PyErr_Occurred
    - assert
    - check_delta_day_range
    - PyTypeObject*::tp_alloc
    - SET_TD_DAYS
    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: 1402
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1402
    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:1421,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1423,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1424,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1424,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1425,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1425,1
    - Dst: look_up_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:1427,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1431,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1431,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:1433,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1437,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - offset
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (offset != NULL)
      pos:
        line_end: 1422
        line_start: 1422
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyDelta_Check(offset))
      pos:
        line_end: 1423
        line_start: 1423
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (name == NULL || PyUnicode_Check(name))
      pos:
        line_end: 1424
        line_start: 1424
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1430
        line_start: 1430
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1440
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1440
    functionName: create_timezone
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIMEZONE_TYPE
    - Py_XNewRef
    - PyUnicode_Check
    - PyErr_Occurred
    - assert
    - look_up_timezone
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_timezone(PyObject *offset, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1448,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1449,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1449,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1450,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1450,1
    - Dst: delta_bool
      Src: /src/cpython/Modules/_datetimemodule.c:1452,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1453,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:1453,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1455,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1456,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1457,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1458,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1458,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1459,1
    - Dst: create_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:1465,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - offset
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (offset != NULL)
      pos:
        line_end: 1447
        line_start: 1447
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyDelta_Check(offset))
      pos:
        line_end: 1448
        line_start: 1448
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (name == NULL || PyUnicode_Check(name))
      pos:
        line_end: 1449
        line_start: 1449
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1466
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1466
    functionName: new_timezone
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_bool
    - CONST_UTC
    - PyUnicode_Check
    - create_timezone
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    - PyErr_Format
    - assert
    - GET_TD_SECONDS
    - Py_NewRef
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_timezone(PyObject *offset, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTZInfo_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1478,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1480,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1485
    functionName: check_tzinfo_subclass
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 2
    functionsReached:
    - PyTZInfo_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int check_tzinfo_subclass(PyObject *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1496,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:1496,1
    - Dst: PyTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1498,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:1498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1502
    functionName: get_tzinfo_member
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_Check
    - PyDateTime_Check
    - HASTZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tzinfo_member(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1516,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1517,1
    - Dst: PyTZInfo_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1517,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1518,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_datetimemodule.c:1522,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1525,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1526,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1527,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1528,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1529,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1529,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1533,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1538,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1542,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - tzinfo
    - name
    - tzinfoarg
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (tzinfo != NULL)
      pos:
        line_end: 1515
        line_start: 1515
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1517
        line_start: 1517
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyTZInfo_Check(tzinfo) || tzinfo == Py_None)
      pos:
        line_end: 1516
        line_start: 1516
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1547
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1547
    functionName: call_tzinfo_method
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTZInfo_Check
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    - PyErr_Format
    - assert
    - Py_DECREF
    - GET_TD_SECONDS
    - PyObject_CallMethod
    - PyDelta_Check
    - Py_TYPE
    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:1560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1557
    functionDepth: 2
    functionLinenumber: 1557
    functionLinenumberEnd: 1561
    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:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1571
    functionDepth: 2
    functionLinenumber: 1571
    functionLinenumberEnd: 1575
    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:1587,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1588,1
    - Dst: check_tzinfo_subclass
      Src: /src/cpython/Modules/_datetimemodule.c:1588,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1589,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:1594,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:1594,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1599,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:1600,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:1602,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:1603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tzinfo != NULL)
      pos:
        line_end: 1586
        line_start: 1586
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1588
        line_start: 1588
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (check_tzinfo_subclass(tzinfo) >= 0)
      pos:
        line_end: 1587
        line_start: 1587
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1607
      start: 1583
    functionDepth: 2
    functionLinenumber: 1583
    functionLinenumberEnd: 1607
    functionName: call_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - Py_SETREF
    - PyUnicode_Check
    - check_tzinfo_subclass
    - PyErr_Format
    - assert
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_tzname(PyObject *tzinfo, PyObject *tzinfoarg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1619,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1619,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1620,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1624,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:1624,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1624,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_datetimemodule.c:1625,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1626,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:1629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - repr
    - tzinfo
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(repr))
      pos:
        line_end: 1618
        line_start: 1618
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (tzinfo)
      pos:
        line_end: 1619
        line_start: 1619
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_READ_CHAR(repr, PyUnicode_GET_LENGTH(repr)-1) == ')')
      pos:
        line_end: 1623
        line_start: 1623
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1632
      start: 1614
    functionDepth: 1
    functionLinenumber: 1614
    functionLinenumberEnd: 1632
    functionName: append_keyword_tzinfo
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_FromFormat
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      append_keyword_tzinfo(PyObject *repr, PyObject *tzinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1644,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1644,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1648,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:1648,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1648,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_datetimemodule.c:1649,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1650,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:1653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - repr
    - fold
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyUnicode_Check(repr))
      pos:
        line_end: 1643
        line_start: 1643
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_READ_CHAR(repr, PyUnicode_GET_LENGTH(repr)-1) == ')')
      pos:
        line_end: 1647
        line_start: 1647
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1656
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1656
    functionName: append_keyword_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_FromFormat
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    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:1665,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:1665,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:1668,1
    - Dst: new_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:1672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1673,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:1676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - rv
    - tzoffset
    - tz_useconds
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1680
    functionName: tzinfo_from_isoformat_results
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_timezone
    - new_delta
    - CONST_UTC
    - Py_DECREF
    - Py_NewRef
    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:1697,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:1697,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:1697,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:1697,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:1699,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:1700,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:1701,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - date
    - hours
    - minutes
    - seconds
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1703
    functionName: format_ctime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_DAY
    - GET_YEAR
    - PyUnicode_FromFormat
    - GET_MONTH
    - weekday
    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:1725,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:1727,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1731,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:1736,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:1738,1
    - Dst: delta_negative
      Src: /src/cpython/Modules/_datetimemodule.c:1738,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1746,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:1747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1748,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:1749,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:1750,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1752,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1757,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1761,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: 1724
        line_start: 1724
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1763
      start: 1717
    functionDepth: 3
    functionLinenumber: 1717
    functionLinenumberEnd: 1763
    functionName: format_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_utcoffset
    - divmod
    - Py_SETREF
    - GET_TD_MICROSECONDS
    - delta_negative
    - GET_TD_DAYS
    - assert
    - Py_DECREF
    - GET_TD_SECONDS
    - PyOS_snprintf
    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:1777,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:1778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1781
    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:1787,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_datetimemodule.c:1790,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1793,1
    - Dst: format_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:1794,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:1801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - object
    - sep
    - tzinfoarg
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1792
        line_start: 1792
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1802
      start: 1783
    functionDepth: 4
    functionLinenumber: 1783
    functionLinenumberEnd: 1802
    functionName: make_somezreplacement
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - get_tzinfo_member
    - format_utcoffset
    - assert
    - PyUnicode_FromStringAndSize
    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:1808,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_datetimemodule.c:1809,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1816,1
    - Dst: call_tzname
      Src: /src/cpython/Modules/_datetimemodule.c:1817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1821,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1825,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1830,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_datetimemodule.c:1831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1832,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1835,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:1836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1843,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - object
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1815
        line_start: 1815
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_Check(temp))
      pos:
        line_end: 1824
        line_start: 1824
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1845
      start: 1804
    functionDepth: 3
    functionLinenumber: 1804
    functionLinenumberEnd: 1845
    functionName: make_Zreplacement
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - call_tzname
    - get_tzinfo_member
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - Py_DECREF
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_Zreplacement(PyObject *object, PyObject *tzinfoarg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1851,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1852,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1852,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1853,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1854,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:1854,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1856,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:1858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1847
    functionDepth: 1
    functionLinenumber: 1847
    functionLinenumberEnd: 1859
    functionName: make_freplacement
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyTime_Check
    - TIME_GET_MICROSECOND
    - DATE_GET_MICROSECOND
    - sprintf
    - PyDateTime_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_freplacement(PyObject *object)'
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1879,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1880,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:1880,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_datetimemodule.c:1882,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_datetimemodule.c:1892,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:1897,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_datetimemodule.c:1902,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:1904,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1904,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:1912,1
    - Dst: make_somezreplacement
      Src: /src/cpython/Modules/_datetimemodule.c:1919,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:1925,1
    - Dst: make_somezreplacement
      Src: /src/cpython/Modules/_datetimemodule.c:1929,1
    - Dst: make_Zreplacement
      Src: /src/cpython/Modules/_datetimemodule.c:1938,1
    - Dst: make_freplacement
      Src: /src/cpython/Modules/_datetimemodule.c:1948,1
    - Dst: normalize_century
      Src: /src/cpython/Modules/_datetimemodule.c:1954,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:1958,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_datetimemodule.c:1962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1963,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1964,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_datetimemodule.c:1973,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Modules/_datetimemodule.c:1978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1979,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_datetimemodule.c:1983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:1984,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:1985,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_datetimemodule.c:1992,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_datetimemodule.c:1998,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Modules/_datetimemodule.c:2002,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2011,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2012,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2012,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_datetimemodule.c:2013,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_datetimemodule.c:2017,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_datetimemodule.c:2024,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:2025,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_datetimemodule.c:2028,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_datetimemodule.c:2031,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_datetimemodule.c:2036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2038,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: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2044,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2045,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_datetimemodule.c:2049,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 146
    argCount: 4
    argNames:
    - object
    - format
    - timetuple
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(format))
      pos:
        line_end: 1879
        line_start: 1879
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1903
        line_start: 1903
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (replacement != NULL)
      pos:
        line_end: 2010
        line_start: 2010
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (PyUnicode_Check(replacement))
      pos:
        line_end: 2011
        line_start: 2011
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (object && format && timetuple)
      pos:
        line_end: 1878
        line_start: 1878
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2051
      start: 1868
    functionDepth: 5
    functionLinenumber: 1868
    functionLinenumberEnd: 2051
    functionName: wrap_strftime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - normalize_century
    - PyNumber_Long
    - PyUnicodeWriter_Finish
    - PyErr_Occurred
    - assert
    - PyUnicodeWriter_WriteStr
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_FindChar
    - PyUnicodeWriter_WriteSubstring
    - PyLong_AsLong
    - PyUnicodeWriter_WriteUTF8
    - Py_XDECREF
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PySequence_GetItem
    - make_freplacement
    - PyObject_CallFunction
    - PyObject_CallFunctionObjArgs
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyOS_snprintf
    - Py_NewRef
    - make_somezreplacement
    - PyUnicode_GET_LENGTH
    - make_Zreplacement
    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:2063,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:2066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2059
    functionDepth: 1
    functionLinenumber: 2059
    functionLinenumberEnd: 2070
    functionName: time_time
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyObject_CallNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_time(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_datetimemodule.c:2081,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_datetimemodule.c:2086,1
    - Dst: weekday
      Src: /src/cpython/Modules/_datetimemodule.c:2089,1
    - Dst: days_before_month
      Src: /src/cpython/Modules/_datetimemodule.c:2090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2092,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: 2094
      start: 2075
    functionDepth: 2
    functionLinenumber: 2075
    functionLinenumberEnd: 2094
    functionName: build_struct_time
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - days_before_month
    - Py_DECREF
    - weekday
    - PyImport_ImportModuleAttrString
    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:2106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - diff
    - op
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2107
    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:2132,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2134,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2134,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2137,1
    - Dst: CONST_SEC_PER_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:2137,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2140,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2143,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2143,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2150,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2154,1
    - Dst: CONST_US_PER_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:2154,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2157,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2160,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2160,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2163,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2164,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_datetimemodule.c:2164,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2167,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2168,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2169,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2170,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts:
    - condition: (result == NULL || PyLong_CheckExact(result))
      pos:
        line_end: 2163
        line_start: 2163
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2172
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2172
    functionName: delta_to_microseconds
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_CURRENT_STATE
    - PyNumber_Add
    - CONST_SEC_PER_DAY
    - Py_SETREF
    - GET_TD_MICROSECONDS
    - PyNumber_Multiply
    - PyLong_CheckExact
    - GET_TD_DAYS
    - CONST_US_PER_SECOND
    - assert
    - Py_DECREF
    - GET_TD_SECONDS
    - Py_XDECREF
    - RELEASE_CURRENT_STATE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_to_microseconds(PyDateTime_Delta *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2177,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2179,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:2180,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:2182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2183,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:2186,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:2187,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:2189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2195
    functionName: checked_divmod
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Divmod
    - PyErr_Format
    - PyTuple_Check
    - Py_DECREF
    - PyTuple_GET_SIZE
    - 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:2211,1
    - Dst: checked_divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2213,1
    - Dst: CONST_US_PER_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:2213,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2218,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_datetimemodule.c:2219,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:2221,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:2228,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2229,1
    - Dst: checked_divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2231,1
    - Dst: CONST_SEC_PER_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:2231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2234,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2236,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_datetimemodule.c:2237,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:2239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:2246,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2246,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_datetimemodule.c:2247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:2248,1
    - Dst: new_delta_ex
      Src: /src/cpython/Modules/_datetimemodule.c:2251,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2254,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2255,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2256,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:2260,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 2
    argNames:
    - pyus
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2199
    functionDepth: 4
    functionLinenumber: 2199
    functionLinenumberEnd: 2263
    functionName: microseconds_to_delta_ex
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta_ex
    - PyTuple_GET_ITEM
    - GET_CURRENT_STATE
    - PyLong_AsInt
    - PyErr_SetString
    - CONST_SEC_PER_DAY
    - checked_divmod
    - CONST_US_PER_SECOND
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - RELEASE_CURRENT_STATE
    - Py_NewRef
    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: 2267
      start: 2265
    functionDepth: 0
    functionLinenumber: 2265
    functionLinenumberEnd: 2267
    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:2275,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2280,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - intobj
    - delta
    argTypes:
    - PyObject*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2268
    functionDepth: 2
    functionLinenumber: 2268
    functionLinenumberEnd: 2287
    functionName: multiply_int_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyNumber_Multiply
    - delta_to_microseconds
    - microseconds_to_delta
    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:2294,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2294,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:2295,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:2295,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2299,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:2300,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:2303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2304,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_datetimemodule.c:2307,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:2308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - floatobj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (floatobj && PyFloat_Check(floatobj))
      pos:
        line_end: 2293
        line_start: 2293
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2314
      start: 2289
    functionDepth: 1
    functionLinenumber: 2289
    functionLinenumberEnd: 2314
    functionName: get_float_as_integer_ratio
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - PyErr_SetString
    - PyFloat_Check
    - PyTuple_Check
    - assert
    - PyErr_Format
    - PyObject_CallMethodNoArgs
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    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:2324,1
    - Dst: get_float_as_integer_ratio
      Src: /src/cpython/Modules/_datetimemodule.c:2327,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2331,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2331,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2332,1
    - Dst: divide_nearest
      Src: /src/cpython/Modules/_datetimemodule.c:2335,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2336,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2340,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2342,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - delta
    - floatobj
    - op
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2317
    functionDepth: 2
    functionLinenumber: 2317
    functionLinenumberEnd: 2346
    functionName: multiply_truedivide_timedelta_float
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - get_float_as_integer_ratio
    - PyTuple_GET_ITEM
    - microseconds_to_delta
    - divide_nearest
    - Py_SETREF
    - PyNumber_Multiply
    - delta_to_microseconds
    - Py_XDECREF
    - Py_DECREF
    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:2355,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/_datetimemodule.c:2359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2360,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - delta
    - intobj
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2348
    functionDepth: 2
    functionLinenumber: 2348
    functionLinenumberEnd: 2367
    functionName: divide_timedelta_int
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - delta_to_microseconds
    - microseconds_to_delta
    - 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:2376,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2382,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Modules/_datetimemodule.c:2386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyDateTime_Delta*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2369
    functionDepth: 2
    functionLinenumber: 2369
    functionLinenumberEnd: 2390
    functionName: divide_timedelta_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - delta_to_microseconds
    - 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:2399,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2405,1
    - Dst: PyNumber_TrueDivide
      Src: /src/cpython/Modules/_datetimemodule.c:2409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyDateTime_Delta*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2392
    functionDepth: 2
    functionLinenumber: 2392
    functionLinenumberEnd: 2413
    functionName: truedivide_timedelta_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - delta_to_microseconds
    - 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:2420,1
    - Dst: divide_nearest
      Src: /src/cpython/Modules/_datetimemodule.c:2423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2424,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - delta
    - i
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2415
    functionDepth: 2
    functionLinenumber: 2415
    functionLinenumberEnd: 2431
    functionName: truedivide_timedelta_int
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - delta_to_microseconds
    - microseconds_to_delta
    - 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:2438,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2438,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2443,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2443,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2444,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2444,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2445,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2446,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2447,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2433
    functionDepth: 1
    functionLinenumber: 2433
    functionLinenumberEnd: 2453
    functionName: delta_add
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - new_delta
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_add(PyObject *left, PyObject *right)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2458,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2458,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2459,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2462
    functionName: delta_negative
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_TD_SECONDS
    - new_delta
    - 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:2470,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2470,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2471,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2464
    functionDepth: 1
    functionLinenumber: 2464
    functionLinenumberEnd: 2474
    functionName: delta_positive
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_SECONDS
    - new_delta
    - 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:2481,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2481,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2482,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2482,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2484,1
    - Dst: delta_negative
      Src: /src/cpython/Modules/_datetimemodule.c:2485,1
    - Dst: delta_positive
      Src: /src/cpython/Modules/_datetimemodule.c:2487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (GET_TD_MICROSECONDS(self) >= 0)
      pos:
        line_end: 2480
        line_start: 2480
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (GET_TD_SECONDS(self) >= 0)
      pos:
        line_end: 2481
        line_start: 2481
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2490
      start: 2476
    functionDepth: 2
    functionLinenumber: 2476
    functionLinenumberEnd: 2490
    functionName: delta_abs
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_positive
    - GET_TD_MICROSECONDS
    - delta_negative
    - GET_TD_DAYS
    - assert
    - GET_TD_SECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_abs(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2497,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2497,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2502,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2502,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2503,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2503,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2504,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2505,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2506,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2492
    functionDepth: 1
    functionLinenumber: 2492
    functionLinenumberEnd: 2512
    functionName: delta_subtract
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - new_delta
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    - GET_TD_SECONDS
    - PyDelta_Check
    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:2517,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2517,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2519,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2519,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2521,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2514
    functionDepth: 1
    functionLinenumber: 2514
    functionLinenumberEnd: 2525
    functionName: delta_cmp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_SECONDS
    - GET_TD_DAYS
    - 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:2530,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:2531,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:2532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2527
    functionDepth: 2
    functionLinenumber: 2527
    functionLinenumberEnd: 2537
    functionName: delta_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_cmp
    - diff_to_bool
    - 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:2544,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:2545,1
    - Dst: delta_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:2547,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_datetimemodule.c:2549,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:2550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2555
    functionName: delta_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_getstate
    - PyObject_Hash
    - PyDelta_CAST
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    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:2562,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2564,1
    - Dst: multiply_int_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:2565,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2567,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/cpython/Modules/_datetimemodule.c:2568,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2571,1
    - Dst: multiply_int_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:2572,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2574,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/cpython/Modules/_datetimemodule.c:2575,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2557
    functionDepth: 3
    functionLinenumber: 2557
    functionLinenumberEnd: 2581
    functionName: delta_multiply
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - multiply_int_timedelta
    - multiply_truedivide_timedelta_float
    - Py_INCREF
    - PyFloat_Check
    - 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:2588,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2590,1
    - Dst: divide_timedelta_int
      Src: /src/cpython/Modules/_datetimemodule.c:2591,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2594,1
    - Dst: divide_timedelta_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:2595,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2583
    functionDepth: 3
    functionLinenumber: 2583
    functionLinenumberEnd: 2603
    functionName: delta_divide
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - divide_timedelta_int
    - PyLong_Check
    - divide_timedelta_timedelta
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_divide(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2610,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2611,1
    - Dst: truedivide_timedelta_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:2612,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2615,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/cpython/Modules/_datetimemodule.c:2616,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2618,1
    - Dst: truedivide_timedelta_int
      Src: /src/cpython/Modules/_datetimemodule.c:2619,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:2624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2605
    functionDepth: 3
    functionLinenumber: 2605
    functionLinenumberEnd: 2626
    functionName: delta_truedivide
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - multiply_truedivide_timedelta_float
    - Py_INCREF
    - truedivide_timedelta_timedelta
    - PyFloat_Check
    - PyLong_Check
    - truedivide_timedelta_int
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_truedivide(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2636,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2636,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2639,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2645,1
    - Dst: PyNumber_Remainder
      Src: /src/cpython/Modules/_datetimemodule.c:2649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2651,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2628
    functionDepth: 2
    functionLinenumber: 2628
    functionLinenumberEnd: 2661
    functionName: delta_remainder
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - microseconds_to_delta
    - delta_to_microseconds
    - PyNumber_Remainder
    - Py_DECREF
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_remainder(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2672,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2672,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2675,1
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:2679,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2681,1
    - Dst: checked_divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2686,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2687,1
    - Dst: microseconds_to_delta
      Src: /src/cpython/Modules/_datetimemodule.c:2691,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2693,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_datetimemodule.c:2696,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:2696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2663
    functionDepth: 2
    functionLinenumber: 2663
    functionLinenumberEnd: 2700
    functionName: delta_divmod
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - microseconds_to_delta
    - checked_divmod
    - _PyTuple_FromPair
    - delta_to_microseconds
    - Py_DECREF
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_divmod(PyObject *left, PyObject *right)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2718,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2720,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2721,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2725,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_datetimemodule.c:2729,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_datetimemodule.c:2744,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:2745,1
    - Dst: modf
      Src: /src/cpython/Modules/_datetimemodule.c:2747,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:2748,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Modules/_datetimemodule.c:2752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2753,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2757,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2758,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:2768,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_datetimemodule.c:2768,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Modules/_datetimemodule.c:2769,1
    - Dst: modf
      Src: /src/cpython/Modules/_datetimemodule.c:2772,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:2773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2775,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2781,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:2786,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:2788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 5
    argNames:
    - tag
    - sofar
    - num
    - factor
    - leftover
    argTypes:
    - char*
    - PyObject*
    - PyObject*
    - PyObject*
    - double*
    assertStmts:
    - condition: (PyLong_CheckExact(factor))
      pos:
        line_end: 2767
        line_start: 2767
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (num != NULL)
      pos:
        line_end: 2717
        line_start: 2717
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2790
      start: 2711
    functionDepth: 1
    functionLinenumber: 2711
    functionLinenumberEnd: 2790
    functionName: accum
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - modf
    - PyLong_FromDouble
    - PyNumber_Add
    - PyLong_AsDouble
    - PyFloat_Check
    - PyLong_Check
    - PyNumber_Multiply
    - PyLong_CheckExact
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_Format
    - Py_TYPE
    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:2819,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2825,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2836,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_datetimemodule.c:2836,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2840,1
    - Dst: CONST_US_PER_MS
      Src: /src/cpython/Modules/_datetimemodule.c:2840,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2844,1
    - Dst: CONST_US_PER_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:2844,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2848,1
    - Dst: CONST_US_PER_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:2848,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2852,1
    - Dst: CONST_US_PER_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:2852,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2856,1
    - Dst: CONST_US_PER_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:2856,1
    - Dst: accum
      Src: /src/cpython/Modules/_datetimemodule.c:2860,1
    - Dst: CONST_US_PER_WEEK
      Src: /src/cpython/Modules/_datetimemodule.c:2860,1
    - Dst: round
      Src: /src/cpython/Modules/_datetimemodule.c:2865,1
    - Dst: fabs
      Src: /src/cpython/Modules/_datetimemodule.c:2869,1
    - Dst: PyNumber_And
      Src: /src/cpython/Modules/_datetimemodule.c:2875,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_datetimemodule.c:2875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2877,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_datetimemodule.c:2880,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2883,1
    - Dst: round
      Src: /src/cpython/Modules/_datetimemodule.c:2886,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:2889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2892,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_datetimemodule.c:2895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2896,1
    - Dst: microseconds_to_delta_ex
      Src: /src/cpython/Modules/_datetimemodule.c:2900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2901,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:2904,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: 2908
      start: 2810
    functionDepth: 5
    functionLinenumber: 2810
    functionLinenumberEnd: 2908
    functionName: delta_new_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - microseconds_to_delta_ex
    - GET_CURRENT_STATE
    - _PyLong_GetOne
    - fabs
    - CONST_US_PER_MS
    - PyNumber_Add
    - PyObject_IsTrue
    - CONST_US_PER_WEEK
    - round
    - CONST_US_PER_SECOND
    - accum
    - CONST_US_PER_MINUTE
    - CONST_US_PER_DAY
    - CONST_US_PER_HOUR
    - PyNumber_And
    - Py_DECREF
    - 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:2913,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2914,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2910
    functionDepth: 1
    functionLinenumber: 2910
    functionLinenumberEnd: 2916
    functionName: delta_bool
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_TD_SECONDS
    - GET_TD_DAYS
    - 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:2921,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2929,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2930,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2930,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:2930,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2937,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2938,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2938,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2939,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2946,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2947,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2947,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2948,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:2954,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:2955,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:2955,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2961,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:2961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:2963,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2918
    functionDepth: 1
    functionLinenumber: 2918
    functionLinenumberEnd: 2965
    functionName: delta_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicode_FromString
    - Py_SETREF
    - PyUnicode_FromFormat
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - GET_TD_SECONDS
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2970,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:2971,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2972,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:2973,1
    - Dst: GET_TD_DAYS
      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:2982,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2987,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:2990,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2967
    functionDepth: 1
    functionLinenumber: 2967
    functionLinenumberEnd: 2994
    functionName: delta_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - divmod
    - PyUnicode_FromFormat
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    - GET_TD_SECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:3002,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:3002,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:3003,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2999
    functionDepth: 1
    functionLinenumber: 2999
    functionLinenumberEnd: 3005
    functionName: delta_getstate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_getstate(PyDateTime_Delta *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/cpython/Modules/_datetimemodule.c:3013,1
    - Dst: PyDelta_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3013,1
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:3018,1
    - Dst: PyNumber_TrueDivide
      Src: /src/cpython/Modules/_datetimemodule.c:3020,1
    - Dst: CONST_US_PER_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:3020,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:3022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 3007
    functionDepth: 2
    functionLinenumber: 3007
    functionLinenumberEnd: 3025
    functionName: delta_total_seconds
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_CURRENT_STATE
    - PyDelta_CAST
    - delta_to_microseconds
    - CONST_US_PER_SECOND
    - Py_DECREF
    - RELEASE_CURRENT_STATE
    - PyNumber_TrueDivide
    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:3030,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:3031,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3031,1
    - Dst: delta_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:3031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 3027
    functionDepth: 2
    functionLinenumber: 3027
    functionLinenumberEnd: 3032
    functionName: delta_reduce
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDelta_CAST
    - delta_getstate
    - Py_TYPE
    - Py_BuildValue
    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: 3035
      start: 3034
    functionDepth: 0
    functionLinenumber: 3034
    functionLinenumberEnd: 3035
    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:3148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - days
    - seconds
    - microseconds
    - type
    argTypes:
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3144
    functionDepth: 0
    functionLinenumber: 3144
    functionLinenumberEnd: 3153
    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:3165,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3166,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3167
      start: 3162
    functionDepth: 1
    functionLinenumber: 3162
    functionLinenumberEnd: 3167
    functionName: date_year
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDate_CAST
    - PyLong_FromLong
    - GET_YEAR
    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:3172,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3173,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3169
    functionDepth: 1
    functionLinenumber: 3169
    functionLinenumberEnd: 3174
    functionName: date_month
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDate_CAST
    - PyLong_FromLong
    - GET_MONTH
    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:3179,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3180,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3176
    functionDepth: 1
    functionLinenumber: 3176
    functionLinenumberEnd: 3181
    functionName: date_day
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_DAY
    - PyDate_CAST
    - PyLong_FromLong
    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:3197,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:3199,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_datetimemodule.c:3200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - state
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 3192
    functionDepth: 1
    functionLinenumber: 3192
    functionLinenumberEnd: 3204
    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:3210,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3211,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3212,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:3213,1
    - Dst: MONTH_IS_SANE
      Src: /src/cpython/Modules/_datetimemodule.c:3214,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:3214,1
    - Dst: date_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:3216,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3219,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:3220,1
    - Dst: MONTH_IS_SANE
      Src: /src/cpython/Modules/_datetimemodule.c:3221,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:3221,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_datetimemodule.c:3223,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_datetimemodule.c:3225,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:3227,1
    - Dst: date_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:3234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3235,1
    - Dst: datetime_date
      Src: /src/cpython/Modules/_datetimemodule.c:3241,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3242
      start: 3206
    functionDepth: 2
    functionLinenumber: 3206
    functionLinenumberEnd: 3242
    functionName: date_new
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - datetime_date
    - PyUnicode_READ_CHAR
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyBytes_GET_SIZE
    - PyUnicode_AsLatin1String
    - PyUnicode_GET_LENGTH
    - PyErr_ExceptionMatches
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyTuple_GET_SIZE
    - MONTH_IS_SANE
    - 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:3259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - year
    - month
    - day
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3260
      start: 3255
    functionDepth: 4
    functionLinenumber: 3255
    functionLinenumberEnd: 3260
    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:3268,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/_datetimemodule.c:3271,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cls
    - obj
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3278
      start: 3262
    functionDepth: 5
    functionLinenumber: 3262
    functionLinenumberEnd: 3278
    functionName: date_fromtimestamp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_localtime
    - _PyTime_ObjectToTime_t
    - new_date_subclass_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_fromtimestamp(PyTypeObject *cls, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/cpython/Modules/_datetimemodule.c:3302,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/_datetimemodule.c:3304,1
    - Dst: new_date_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3308,1
    - Dst: time_time
      Src: /src/cpython/Modules/_datetimemodule.c:3314,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:3322,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3294
    functionDepth: 4
    functionLinenumber: 3294
    functionLinenumberEnd: 3325
    functionName: datetime_date_today_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - time
    - _PyTime_localtime
    - _Py_ID
    - new_date_ex
    - Py_DECREF
    - time_time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_today_impl(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: date_fromtimestamp
      Src: /src/cpython/Modules/_datetimemodule.c:3344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - timestamp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3345
      start: 3340
    functionDepth: 6
    functionLinenumber: 3340
    functionLinenumberEnd: 3345
    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:3357,1
    - Dst: date_fromtimestamp
      Src: /src/cpython/Modules/_datetimemodule.c:3358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3351
    functionDepth: 6
    functionLinenumber: 3351
    functionLinenumberEnd: 3362
    functionName: datetime_date_fromtimestamp_capi
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - date_fromtimestamp
    - PyArg_UnpackTuple
    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:3386,1
    - Dst: ord_to_ymd
      Src: /src/cpython/Modules/_datetimemodule.c:3389,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - ordinal
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3391
      start: 3377
    functionDepth: 5
    functionLinenumber: 3377
    functionLinenumberEnd: 3391
    functionName: datetime_date_fromordinal_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - ord_to_ymd
    - 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:3409,1
    - Dst: parse_isoformat_date
      Src: /src/cpython/Modules/_datetimemodule.c:3418,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3428,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:3431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3403
    functionDepth: 5
    functionLinenumber: 3403
    functionLinenumberEnd: 3433
    functionName: datetime_date_fromisoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - parse_isoformat_date
    - new_date_subclass_ex
    - PyErr_Format
    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:3455,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:3458,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:3464,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:3469,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - type
    - year
    - week
    - day
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3475
      start: 3449
    functionDepth: 5
    functionLinenumber: 3449
    functionLinenumberEnd: 3475
    functionName: datetime_date_fromisocalendar_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - new_date_subclass_ex
    - iso_to_ymd
    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:3499,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3499,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_datetimemodule.c:3503,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - string
    - format
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3508
      start: 3492
    functionDepth: 1
    functionLinenumber: 3492
    functionLinenumberEnd: 3508
    functionName: datetime_date_strptime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - PyImport_Import
    - _Py_ID
    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:3522,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3523,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:3524,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3526,1
    - Dst: normalize_date
      Src: /src/cpython/Modules/_datetimemodule.c:3528,1
    - Dst: new_date_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:3529,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - date
    - delta
    - negate
    argTypes:
    - PyDateTime_Date*
    - PyDateTime_Delta*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3531
      start: 3518
    functionDepth: 5
    functionLinenumber: 3518
    functionLinenumberEnd: 3531
    functionName: add_date_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_DAY
    - normalize_date
    - GET_YEAR
    - new_date_subclass_ex
    - GET_TD_DAYS
    - GET_MONTH
    - Py_TYPE
    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:3536,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3536,1
    - Dst: PyDate_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3539,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3541,1
    - Dst: add_date_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:3543,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3551,1
    - Dst: add_date_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:3553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3558
      start: 3533
    functionDepth: 6
    functionLinenumber: 3533
    functionLinenumberEnd: 3558
    functionName: date_add
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDelta_Check
    - add_date_timedelta
    - PyDate_Check
    - PyDateTime_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_add(PyObject *left, PyObject *right)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3563,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3563,1
    - Dst: PyDate_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3566,1
    - Dst: PyDate_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3567,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:3569,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3569,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3570,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3571,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:3572,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3572,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3573,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3574,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:3575,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3577,1
    - Dst: add_date_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:3579,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3585
      start: 3560
    functionDepth: 6
    functionLinenumber: 3560
    functionLinenumberEnd: 3585
    functionName: date_subtract
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDate_Check
    - GET_DAY
    - new_delta
    - ymd_to_ord
    - GET_YEAR
    - add_date_timedelta
    - PyDelta_Check
    - GET_MONTH
    - 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:3593,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:3594,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3595,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3596,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3596,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3590
    functionDepth: 1
    functionLinenumber: 3590
    functionLinenumberEnd: 3597
    functionName: date_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_DAY
    - PyDate_CAST
    - GET_YEAR
    - PyUnicode_FromFormat
    - GET_MONTH
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3602,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:3603,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3604,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3604,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3599
    functionDepth: 1
    functionLinenumber: 3599
    functionLinenumberEnd: 3605
    functionName: date_isoformat
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_DAY
    - PyDate_CAST
    - GET_YEAR
    - PyUnicode_FromFormat
    - GET_MONTH
    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:3611,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3612
      start: 3608
    functionDepth: 1
    functionLinenumber: 3608
    functionLinenumberEnd: 3612
    functionName: date_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_ctime
      Src: /src/cpython/Modules/_datetimemodule.c:3618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3619
      start: 3615
    functionDepth: 2
    functionLinenumber: 3615
    functionLinenumberEnd: 3619
    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:3645,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3645,1
    - Dst: wrap_strftime
      Src: /src/cpython/Modules/_datetimemodule.c:3648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3651
      start: 3635
    functionDepth: 6
    functionLinenumber: 3635
    functionLinenumberEnd: 3651
    functionName: datetime_date_strftime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - wrap_strftime
    - _Py_ID
    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:3668,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_datetimemodule.c:3669,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:3671,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:3671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3672
      start: 3663
    functionDepth: 1
    functionLinenumber: 3663
    functionLinenumberEnd: 3672
    functionName: datetime_date___format___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - _Py_ID
    - PyUnicode_GetLength
    - PyObject_CallMethodOneArg
    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:3679,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3679,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3679,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3679,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3682
      start: 3676
    functionDepth: 1
    functionLinenumber: 3676
    functionLinenumberEnd: 3682
    functionName: date_isoweekday
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_DAY
    - GET_YEAR
    - GET_MONTH
    - weekday
    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:3697,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:3701,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_datetimemodule.c:3705,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:3710,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3712
      start: 3694
    functionDepth: 1
    functionLinenumber: 3694
    functionLinenumberEnd: 3712
    functionName: iso_calendar_date_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - PyUnicode_FromFormat
    - 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:3718,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3720,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3721,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3726
      start: 3714
    functionDepth: 1
    functionLinenumber: 3714
    functionLinenumberEnd: 3726
    functionName: iso_calendar_date_reduce
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_BuildValue
    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:3731,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:3735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3736
      start: 3728
    functionDepth: 1
    functionLinenumber: 3728
    functionLinenumberEnd: 3736
    functionName: iso_calendar_date_year
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - Py_NewRef
    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:3741,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:3745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3746
      start: 3738
    functionDepth: 1
    functionLinenumber: 3738
    functionLinenumberEnd: 3746
    functionName: iso_calendar_date_week
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - Py_NewRef
    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:3751,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:3755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3756
      start: 3748
    functionDepth: 1
    functionLinenumber: 3748
    functionLinenumberEnd: 3756
    functionName: iso_calendar_date_weekday
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - Py_NewRef
    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:3774,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3774,1
    - Dst: tp_traverse
      Src: /src/cpython/Modules/_datetimemodule.c:3775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3776
      start: 3771
    functionDepth: 1
    functionLinenumber: 3771
    functionLinenumberEnd: 3776
    functionName: iso_calendar_date_traverse
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tp_traverse
    - Py_VISIT
    - Py_TYPE
    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:3781,1
    - Dst: tp_dealloc
      Src: /src/cpython/Modules/_datetimemodule.c:3782,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3784
      start: 3778
    functionDepth: 0
    functionLinenumber: 3778
    functionLinenumberEnd: 3784
    functionName: iso_calendar_date_dealloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - tp_dealloc
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void iso_calendar_date_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:3821,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3828,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3831,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3835,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3838,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3840,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:3842,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:3845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - type
    - year
    - week
    - weekday
    argTypes:
    - PyTypeObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3848
      start: 3814
    functionDepth: 1
    functionLinenumber: 3814
    functionLinenumberEnd: 3848
    functionName: iso_calendar_date_new_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyLong_FromLong
    - PyTypeObject*::tp_alloc
    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:3853,1
    - Dst: iso_week1_monday
      Src: /src/cpython/Modules/_datetimemodule.c:3854,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:3855,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3855,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3855,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:3859,1
    - Dst: iso_week1_monday
      Src: /src/cpython/Modules/_datetimemodule.c:3862,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:3863,1
    - Dst: iso_week1_monday
      Src: /src/cpython/Modules/_datetimemodule.c:3865,1
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:3871,1
    - Dst: iso_calendar_date_new_impl
      Src: /src/cpython/Modules/_datetimemodule.c:3873,1
    - Dst: ISOCALENDAR_DATE_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3873,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:3875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3880
      start: 3850
    functionDepth: 2
    functionLinenumber: 3850
    functionLinenumberEnd: 3880
    functionName: date_isocalendar
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ISOCALENDAR_DATE_TYPE
    - GET_DAY
    - divmod
    - GET_CURRENT_STATE
    - ymd_to_ord
    - GET_YEAR
    - iso_calendar_date_new_impl
    - GET_MONTH
    - RELEASE_CURRENT_STATE
    - iso_week1_monday
    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:3895,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:3895,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:3896,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:3899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3903
      start: 3884
    functionDepth: 2
    functionLinenumber: 3884
    functionLinenumberEnd: 3903
    functionName: date_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - memcmp
    - PyDate_Check
    - PyDateTime_Check
    - diff_to_bool
    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:3908,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3908,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3909,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3905
    functionDepth: 3
    functionLinenumber: 3905
    functionLinenumberEnd: 3912
    functionName: date_timetuple
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - build_struct_time
    - GET_MONTH
    - GET_DAY
    - GET_YEAR
    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:3929,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3929,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: 3930
      start: 3924
    functionDepth: 5
    functionLinenumber: 3924
    functionLinenumberEnd: 3930
    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:3935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3936
      start: 3932
    functionDepth: 1
    functionLinenumber: 3932
    functionLinenumberEnd: 3936
    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:3944,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:3945,1
    - Dst: generic_hash
      Src: /src/cpython/Modules/_datetimemodule.c:3947,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:3949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3953
      start: 3941
    functionDepth: 2
    functionLinenumber: 3941
    functionLinenumberEnd: 3953
    functionName: date_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - generic_hash
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyDate_CAST
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    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:3958,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:3958,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3958,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3958,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3960
      start: 3955
    functionDepth: 0
    functionLinenumber: 3955
    functionLinenumberEnd: 3960
    functionName: date_toordinal
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_DAY
    - ymd_to_ord
    - GET_YEAR
    - GET_MONTH
    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:3965,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:3965,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:3965,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:3965,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:3966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3962
    functionDepth: 1
    functionLinenumber: 3962
    functionLinenumberEnd: 3967
    functionName: date_weekday
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_DAY
    - GET_YEAR
    - GET_MONTH
    - weekday
    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:3976,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:3978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Date*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3979
      start: 3972
    functionDepth: 1
    functionLinenumber: 3972
    functionLinenumberEnd: 3979
    functionName: date_getstate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_getstate(PyDateTime_Date *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:3984,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:3985,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:3985,1
    - Dst: date_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:3985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3986
      start: 3981
    functionDepth: 2
    functionLinenumber: 3981
    functionLinenumberEnd: 3986
    functionName: date_reduce
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDate_CAST
    - date_getstate
    - Py_TYPE
    - Py_BuildValue
    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:4114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - methodname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4111
    functionDepth: 1
    functionLinenumber: 4111
    functionLinenumberEnd: 4118
    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:4125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(dt)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4126
      start: 4122
    functionDepth: 2
    functionLinenumber: 4122
    functionLinenumberEnd: 4126
    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:4131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(dt)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4132
      start: 4128
    functionDepth: 2
    functionLinenumber: 4128
    functionLinenumberEnd: 4132
    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:4137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(dt)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4138
      start: 4134
    functionDepth: 2
    functionLinenumber: 4134
    functionLinenumberEnd: 4138
    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:4154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4155,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4159,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4160,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:4165,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4169,1
    - Dst: datetime_dst
      Src: /src/cpython/Modules/_datetimemodule.c:4174,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4178,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:4183,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:4186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4190,1
    - Dst: call_dst
      Src: /src/cpython/Modules/_datetimemodule.c:4191,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4191,1
    - Dst: delta_bool
      Src: /src/cpython/Modules/_datetimemodule.c:4196,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:4197,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:4197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4204,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4208,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4213,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4214,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4215,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4216,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4218
      start: 4147
    functionDepth: 3
    functionLinenumber: 4147
    functionLinenumberEnd: 4218
    functionName: tzinfo_fromutc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_bool
    - delta_subtract
    - call_dst
    - datetime_dst
    - PyErr_SetString
    - Py_SETREF
    - Py_XDECREF
    - Py_DECREF
    - datetime_utcoffset
    - add_datetime_timedelta
    - PyDateTime_Check
    - GET_DT_TZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_fromutc(PyObject *self, PyObject *dt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_datetimemodule.c:4231,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4231,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:4235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4236,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_datetimemodule.c:4239,1
    - Dst: _PyObject_GetState
      Src: /src/cpython/Modules/_datetimemodule.c:4245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4247,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_datetimemodule.c:4251,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4252
      start: 4225
    functionDepth: 1
    functionLinenumber: 4225
    functionLinenumberEnd: 4252
    functionName: tzinfo_reduce
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GetOptionalAttr
    - Py_BuildValue
    - _PyObject_GetState
    - PyObject_CallNoArgs
    - Py_DECREF
    - PyTuple_New
    - _Py_ID
    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:4335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - offset
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4331
    functionDepth: 3
    functionLinenumber: 4331
    functionLinenumberEnd: 4336
    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:4341,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:4342,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:4343,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4338
    functionDepth: 1
    functionLinenumber: 4338
    functionLinenumberEnd: 4345
    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:4352,1
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4355,1
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4356,1
    - Dst: delta_richcompare
      Src: /src/cpython/Modules/_datetimemodule.c:4357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4358
      start: 4347
    functionDepth: 3
    functionLinenumber: 4347
    functionLinenumberEnd: 4358
    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:4363,1
    - Dst: delta_hash
      Src: /src/cpython/Modules/_datetimemodule.c:4364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4365
      start: 4360
    functionDepth: 2
    functionLinenumber: 4360
    functionLinenumberEnd: 4365
    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:4374,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:4376,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dt
    - meth
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4379
      start: 4371
    functionDepth: 1
    functionLinenumber: 4371
    functionLinenumberEnd: 4379
    functionName: _timezone_check_argument
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyDateTime_Check
    - Py_TYPE
    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:4386,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4387,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:4389,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4390,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4394,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4398
      start: 4381
    functionDepth: 1
    functionLinenumber: 4381
    functionLinenumberEnd: 4398
    functionName: timezone_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - PyUnicode_FromFormat
    - CONST_UTC
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_repr(PyObject *op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4403,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4409,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:4411,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:4412,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4413,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4414,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:4416,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:4419,1
    - Dst: delta_negative
      Src: /src/cpython/Modules/_datetimemodule.c:4421,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4427,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4430,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:4431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4432,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:4433,1
    - Dst: divmod
      Src: /src/cpython/Modules/_datetimemodule.c:4434,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4436,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4441,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4444,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4445
      start: 4400
    functionDepth: 2
    functionLinenumber: 4400
    functionLinenumberEnd: 4445
    functionName: timezone_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - PyUnicode_FromString
    - divmod
    - CONST_UTC
    - PyUnicode_FromFormat
    - GET_TD_MICROSECONDS
    - delta_negative
    - GET_TD_DAYS
    - Py_DECREF
    - GET_TD_SECONDS
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_str(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _timezone_check_argument
      Src: /src/cpython/Modules/_datetimemodule.c:4450,1
    - Dst: timezone_str
      Src: /src/cpython/Modules/_datetimemodule.c:4453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4447
    functionDepth: 3
    functionLinenumber: 4447
    functionLinenumberEnd: 4454
    functionName: timezone_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - timezone_str
    - _timezone_check_argument
    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:4459,1
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4462,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4464
      start: 4456
    functionDepth: 2
    functionLinenumber: 4456
    functionLinenumberEnd: 4464
    functionName: timezone_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - Py_NewRef
    - _timezone_check_argument
    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:4469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4473
      start: 4466
    functionDepth: 2
    functionLinenumber: 4466
    functionLinenumberEnd: 4473
    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:4478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4479,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4485,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4486,1
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4490,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:4491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4475
    functionDepth: 1
    functionLinenumber: 4475
    functionLinenumberEnd: 4492
    functionName: timezone_fromutc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - PyErr_SetString
    - add_datetime_timedelta
    - PyDateTime_Check
    - HASTZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_fromutc(PyObject *op, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTimeZone_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4497,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:4499,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_datetimemodule.c:4500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4494
    functionDepth: 1
    functionLinenumber: 4494
    functionLinenumberEnd: 4501
    functionName: timezone_getinitargs
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTimeZone_CAST
    - PyTuple_Pack
    - _PyTuple_FromPair
    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:4575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4578
      start: 4571
    functionDepth: 1
    functionLinenumber: 4571
    functionLinenumberEnd: 4578
    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:4591,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4592,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4593
      start: 4588
    functionDepth: 1
    functionLinenumber: 4588
    functionLinenumberEnd: 4593
    functionName: time_hour
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - PyTime_CAST
    - PyLong_FromLong
    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:4598,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4599,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4600
      start: 4595
    functionDepth: 1
    functionLinenumber: 4595
    functionLinenumberEnd: 4600
    functionName: time_minute
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_CAST
    - PyLong_FromLong
    - TIME_GET_MINUTE
    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:4606,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4607,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4608
      start: 4603
    functionDepth: 1
    functionLinenumber: 4603
    functionLinenumberEnd: 4608
    functionName: py_time_second
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_CAST
    - PyLong_FromLong
    - TIME_GET_SECOND
    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:4613,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4614,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4615
      start: 4610
    functionDepth: 1
    functionLinenumber: 4610
    functionLinenumberEnd: 4615
    functionName: time_microsecond
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_CAST
    - PyLong_FromLong
    - TIME_GET_MICROSECOND
    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:4620,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4621,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4623
      start: 4617
    functionDepth: 1
    functionLinenumber: 4617
    functionLinenumberEnd: 4623
    functionName: time_tzinfo
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_CAST
    - Py_NewRef
    - HASTZINFO
    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:4628,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:4629,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:4629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4630
      start: 4625
    functionDepth: 1
    functionLinenumber: 4625
    functionLinenumberEnd: 4630
    functionName: time_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_FOLD
    - PyTime_CAST
    - PyLong_FromLong
    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:4652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4653,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:4657,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:4659,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_datetimemodule.c:4661,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:4665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - type
    - state
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4676
      start: 4646
    functionDepth: 2
    functionLinenumber: 4646
    functionLinenumberEnd: 4676
    functionName: time_from_pickle
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - check_tzinfo_subclass
    - memcpy
    - PyBytes_AS_STRING
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:4682,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:4682,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:4683,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:4685,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:4686,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4688,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:4689,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:4690,1
    - Dst: time_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:4692,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:4695,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:4696,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:4697,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_datetimemodule.c:4699,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_datetimemodule.c:4701,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:4703,1
    - Dst: time_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:4710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4711,1
    - Dst: datetime_time
      Src: /src/cpython/Modules/_datetimemodule.c:4717,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4678
    functionDepth: 3
    functionLinenumber: 4678
    functionLinenumberEnd: 4718
    functionName: time_new
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_from_pickle
    - PyTuple_GET_ITEM
    - PyUnicode_READ_CHAR
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsLatin1String
    - PyUnicode_GET_LENGTH
    - PyErr_ExceptionMatches
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyBytes_GET_SIZE
    - 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:4743,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: 4744
      start: 4738
    functionDepth: 3
    functionLinenumber: 4738
    functionLinenumberEnd: 4744
    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:4768,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4768,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_datetimemodule.c:4772,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - string
    - format
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4777
      start: 4761
    functionDepth: 1
    functionLinenumber: 4761
    functionLinenumberEnd: 4777
    functionName: datetime_time_strptime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - PyImport_Import
    - _Py_ID
    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:4786,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4787,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4788,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4791
      start: 4783
    functionDepth: 1
    functionLinenumber: 4783
    functionLinenumberEnd: 4791
    functionName: time_dealloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyTime_CAST
    - Py_XDECREF
    - HASTZINFO
    linkageType: ''
    returnType: void
    signature: void time_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:4800,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:4801,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4798
    functionDepth: 3
    functionLinenumber: 4798
    functionLinenumberEnd: 4802
    functionName: time_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_utcoffset
    - PyTime_CAST
    - GET_TIME_TZINFO
    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:4806,1
    - Dst: call_dst
      Src: /src/cpython/Modules/_datetimemodule.c:4807,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4808
      start: 4804
    functionDepth: 3
    functionLinenumber: 4804
    functionLinenumberEnd: 4808
    functionName: time_dst
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_dst
    - PyTime_CAST
    - GET_TIME_TZINFO
    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:4812,1
    - Dst: call_tzname
      Src: /src/cpython/Modules/_datetimemodule.c:4813,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4814
      start: 4810
    functionDepth: 3
    functionLinenumber: 4810
    functionLinenumberEnd: 4814
    functionName: time_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTime_CAST
    - call_tzname
    - GET_TIME_TZINFO
    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:4823,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:4824,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4825,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4826,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4827,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4828,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:4829,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4833,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4836,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4839,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4840,1
    - Dst: append_keyword_tzinfo
      Src: /src/cpython/Modules/_datetimemodule.c:4841,1
    - Dst: append_keyword_fold
      Src: /src/cpython/Modules/_datetimemodule.c:4843,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4845
      start: 4820
    functionDepth: 2
    functionLinenumber: 4820
    functionLinenumberEnd: 4845
    functionName: time_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - append_keyword_fold
    - TIME_GET_FOLD
    - HASTZINFO
    - TIME_GET_MINUTE
    - PyUnicode_FromFormat
    - TIME_GET_MICROSECOND
    - append_keyword_tzinfo
    - PyTime_CAST
    - Py_TYPE
    - TIME_GET_SECOND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_datetimemodule.c:4850,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4847
    functionDepth: 1
    functionLinenumber: 4847
    functionLinenumberEnd: 4851
    functionName: time_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_str(PyObject *op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4875,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:4885,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:4896,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:4897,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:4907,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:4908,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:4912,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4913,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4913,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4914,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:4917,1
    - Dst: format_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:4921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4923,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_datetimemodule.c:4926,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:4926,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - self
    - timespec
    argTypes:
    - PyDateTime_Time*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4928
      start: 4868
    functionDepth: 4
    functionLinenumber: 4868
    functionLinenumberEnd: 4928
    functionName: datetime_time_isoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - PyUnicode_FromString
    - strcmp
    - HASTZINFO
    - Py_ARRAY_LENGTH
    - TIME_GET_MINUTE
    - PyUnicode_FromFormat
    - format_utcoffset
    - TIME_GET_MICROSECOND
    - PyErr_Format
    - Py_DECREF
    - PyUnicode_AppendAndDel
    - TIME_GET_SECOND
    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:4955,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:4957,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:4958,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:4959,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:4963,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_datetimemodule.c:4963,1
    - Dst: wrap_strftime
      Src: /src/cpython/Modules/_datetimemodule.c:4964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:4966,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: 4962
        line_start: 4962
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 4968
      start: 4944
    functionDepth: 6
    functionLinenumber: 4944
    functionLinenumberEnd: 4968
    functionName: datetime_time_strftime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - PyTuple_Size
    - wrap_strftime
    - TIME_GET_MINUTE
    - Py_BuildValue
    - assert
    - Py_DECREF
    - TIME_GET_SECOND
    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:4985,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_datetimemodule.c:4986,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:4988,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:4988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4989
      start: 4980
    functionDepth: 1
    functionLinenumber: 4980
    functionLinenumberEnd: 4989
    functionName: datetime_time___format___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - _Py_ID
    - PyUnicode_GetLength
    - PyObject_CallMethodOneArg
    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:5002,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5005,1
    - Dst: GET_TIME_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5005,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:5006,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:5009,1
    - Dst: time_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:5011,1
    - Dst: time_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:5014,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:5022,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:5022,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:5023,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:5024,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:5027,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:5032,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5033,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5034,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5035,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:5036,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:5037,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5038,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5039,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5040,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:5041,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:5042,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5045,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5046,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:5047,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5050,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5053,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:5056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5061,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5062,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (offset1 != offset2)
      pos:
        line_end: 5031
        line_start: 5031
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5064
      start: 4995
    functionDepth: 4
    functionLinenumber: 4995
    functionLinenumberEnd: 5064
    functionName: time_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - PyTime_Check
    - delta_cmp
    - memcmp
    - PyErr_SetString
    - TIME_GET_MINUTE
    - diff_to_bool
    - GET_TIME_TZINFO
    - GET_TD_SECONDS
    - TIME_GET_MICROSECOND
    - GET_TD_DAYS
    - Py_XDECREF
    - assert
    - Py_DECREF
    - time_utcoffset
    - Py_NewRef
    - PyDelta_Check
    - TIME_GET_SECOND
    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:5069,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:5070,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:5073,1
    - Dst: new_time_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:5074,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5074,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5075,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5076,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5077,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5078,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5079,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5084,1
    - Dst: time_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:5086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5087,1
    - Dst: generic_hash
      Src: /src/cpython/Modules/_datetimemodule.c:5094,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:5096,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:5100,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5100,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5101,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5102,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5103,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5104,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:5105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5107,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:5110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5113,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_datetimemodule.c:5116,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:5117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (HASTZINFO(self))
      pos:
        line_end: 5099
        line_start: 5099
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5123
      start: 5066
    functionDepth: 4
    functionLinenumber: 5066
    functionLinenumberEnd: 5123
    functionName: time_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - assert
    - Py_TYPE
    - new_delta
    - PyObject_Hash
    - TIME_GET_MICROSECOND
    - PyTime_CAST
    - TIME_GET_SECOND
    - TIME_GET_MINUTE
    - Py_DECREF
    - time_utcoffset
    - new_time_ex2
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_NewRef
    - TIME_GET_FOLD
    - delta_subtract
    - generic_hash
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - HASTZINFO
    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:5145,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5146,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: 5147
      start: 5139
    functionDepth: 3
    functionLinenumber: 5139
    functionLinenumberEnd: 5147
    functionName: datetime_time_replace_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_time_subclass_fold_ex
    - Py_TYPE
    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:5164,1
    - Dst: parse_isoformat_time
      Src: /src/cpython/Modules/_datetimemodule.c:5180,1
    - Dst: tzinfo_from_isoformat_results
      Src: /src/cpython/Modules/_datetimemodule.c:5199,1
    - Dst: TIME_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5207,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:5208,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_datetimemodule.c:5210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5214,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:5218,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:5222,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5227
      start: 5159
    functionDepth: 4
    functionLinenumber: 5159
    functionLinenumberEnd: 5227
    functionName: datetime_time_fromisoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tzinfo_from_isoformat_results
    - PyErr_SetString
    - PyObject_CallFunction
    - PyUnicode_AsUTF8AndSize
    - TIME_TYPE
    - PyErr_Format
    - parse_isoformat_time
    - Py_DECREF
    - new_time
    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:5243,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:5246,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:5248,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5249,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:5250,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_datetimemodule.c:5252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_Time*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5256
      start: 5237
    functionDepth: 1
    functionLinenumber: 5237
    functionLinenumberEnd: 5256
    functionName: time_getstate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_FOLD
    - PyBytes_FromStringAndSize
    - _PyTuple_FromPair
    - PyTuple_Pack
    - PyBytes_AS_STRING
    - Py_DECREF
    - HASTZINFO
    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:5269,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5269,1
    - Dst: time_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:5269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_Time*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5270
      start: 5265
    functionDepth: 2
    functionLinenumber: 5265
    functionLinenumberEnd: 5270
    functionName: datetime_time___reduce_ex___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_getstate
    - Py_TYPE
    - Py_BuildValue
    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:5280,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:5280,1
    - Dst: time_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:5280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5281
      start: 5276
    functionDepth: 2
    functionLinenumber: 5276
    functionLinenumberEnd: 5281
    functionName: datetime_time___reduce___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_getstate
    - Py_TYPE
    - Py_BuildValue
    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:5369,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5370,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5371
      start: 5366
    functionDepth: 1
    functionLinenumber: 5366
    functionLinenumberEnd: 5371
    functionName: datetime_hour
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_CAST
    - PyLong_FromLong
    - DATE_GET_HOUR
    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:5376,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5377,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5378
      start: 5373
    functionDepth: 1
    functionLinenumber: 5373
    functionLinenumberEnd: 5378
    functionName: datetime_minute
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_CAST
    - PyLong_FromLong
    - DATE_GET_MINUTE
    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:5383,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5384,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5385
      start: 5380
    functionDepth: 1
    functionLinenumber: 5380
    functionLinenumberEnd: 5385
    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:5390,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5391,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5392
      start: 5387
    functionDepth: 1
    functionLinenumber: 5387
    functionLinenumberEnd: 5392
    functionName: datetime_microsecond
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_CAST
    - PyLong_FromLong
    - DATE_GET_MICROSECOND
    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:5397,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:5398,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5400
      start: 5394
    functionDepth: 1
    functionLinenumber: 5394
    functionLinenumberEnd: 5400
    functionName: datetime_tzinfo
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_CAST
    - Py_NewRef
    - HASTZINFO
    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:5405,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:5406,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:5406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5407
      start: 5402
    functionDepth: 1
    functionLinenumber: 5402
    functionLinenumberEnd: 5407
    functionName: datetime_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_CAST
    - PyLong_FromLong
    - DATE_GET_FOLD
    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:5429,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:5430,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_datetimemodule.c:5434,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:5436,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_datetimemodule.c:5438,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - type
    - state
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5453
      start: 5423
    functionDepth: 2
    functionLinenumber: 5423
    functionLinenumberEnd: 5453
    functionName: datetime_from_pickle
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - check_tzinfo_subclass
    - memcpy
    - PyBytes_AS_STRING
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:5459,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:5459,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:5460,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:5462,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_datetimemodule.c:5463,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_datetimemodule.c:5465,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_datetimemodule.c:5466,1
    - Dst: MONTH_IS_SANE
      Src: /src/cpython/Modules/_datetimemodule.c:5467,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:5467,1
    - Dst: datetime_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:5469,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_datetimemodule.c:5472,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:5473,1
    - Dst: MONTH_IS_SANE
      Src: /src/cpython/Modules/_datetimemodule.c:5474,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_datetimemodule.c:5474,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_datetimemodule.c:5476,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_datetimemodule.c:5478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:5480,1
    - Dst: datetime_from_pickle
      Src: /src/cpython/Modules/_datetimemodule.c:5487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5488,1
    - Dst: datetime_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:5494,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5495
      start: 5455
    functionDepth: 3
    functionLinenumber: 5455
    functionLinenumberEnd: 5495
    functionName: datetime_new
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_datetime
    - PyTuple_GET_ITEM
    - PyUnicode_READ_CHAR
    - datetime_from_pickle
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyBytes_GET_SIZE
    - PyUnicode_AsLatin1String
    - PyUnicode_GET_LENGTH
    - PyErr_ExceptionMatches
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyTuple_GET_SIZE
    - MONTH_IS_SANE
    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:5524,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: 5527
      start: 5518
    functionDepth: 4
    functionLinenumber: 5518
    functionLinenumberEnd: 5527
    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:5547,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:5552,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: 5554
      start: 5539
    functionDepth: 1
    functionLinenumber: 5539
    functionLinenumberEnd: 5554
    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:5564,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/_datetimemodule.c:5568,1
    - Dst: utc_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:5570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - u
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5576
      start: 5556
    functionDepth: 2
    functionLinenumber: 5556
    functionLinenumberEnd: 5576
    functionName: local
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_localtime
    - utc_to_seconds
    - PyErr_SetString
    linkageType: ''
    returnType: long long
    signature: long long local(long long u)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/cpython/Modules/_datetimemodule.c:5589,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_datetimemodule.c:5603,1
    - Dst: utc_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:5609,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:5611,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:5616,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:5621,1
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/cpython/Modules/_datetimemodule.c:5628,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - cls
    - f
    - timet
    - us
    - tzinfo
    argTypes:
    - PyTypeObject*
    - TM_FUNC
    - time_t
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5630
      start: 5582
    functionDepth: 3
    functionLinenumber: 5582
    functionLinenumberEnd: 5630
    functionName: datetime_from_timet_and_us
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - utc_to_seconds
    - Py_MIN
    - PyErr_Occurred
    - local
    - f
    - new_datetime_subclass_fold_ex
    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:5646,1
    - Dst: datetime_from_timet_and_us
      Src: /src/cpython/Modules/_datetimemodule.c:5650,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: 5651
      start: 5639
    functionDepth: 4
    functionLinenumber: 5639
    functionLinenumberEnd: 5651
    functionName: datetime_from_timestamp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_from_timet_and_us
    - _PyTime_ObjectToTimeval
    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:5661,1
    - Dst: _PyTime_AsTimevalTime_t
      Src: /src/cpython/Modules/_datetimemodule.c:5668,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:5671,1
    - Dst: datetime_from_timet_and_us
      Src: /src/cpython/Modules/_datetimemodule.c:5673,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: 5670
        line_start: 5670
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5674
      start: 5657
    functionDepth: 4
    functionLinenumber: 5657
    functionLinenumberEnd: 5674
    functionName: datetime_best_possible
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_from_timet_and_us
    - _PyTime_AsTimevalTime_t
    - PyTime_Time
    - assert
    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:5698,1
    - Dst: datetime_best_possible
      Src: /src/cpython/Modules/_datetimemodule.c:5701,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:5707,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:5707,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - type
    - tz
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5712
      start: 5689
    functionDepth: 5
    functionLinenumber: 5689
    functionLinenumberEnd: 5712
    functionName: datetime_datetime_now_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - check_tzinfo_subclass
    - Py_DECREF
    - datetime_best_possible
    - _Py_ID
    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:5728,1
    - Dst: datetime_best_possible
      Src: /src/cpython/Modules/_datetimemodule.c:5735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5736
      start: 5724
    functionDepth: 5
    functionLinenumber: 5724
    functionLinenumberEnd: 5736
    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:5757,1
    - Dst: datetime_from_timestamp
      Src: /src/cpython/Modules/_datetimemodule.c:5760,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:5767,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:5767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - type
    - timestamp
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5772
      start: 5751
    functionDepth: 5
    functionLinenumber: 5751
    functionLinenumberEnd: 5772
    functionName: datetime_datetime_fromtimestamp_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - datetime_from_timestamp
    - check_tzinfo_subclass
    - Py_DECREF
    - _Py_ID
    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:5782,1
    - Dst: datetime_datetime_fromtimestamp_impl
      Src: /src/cpython/Modules/_datetimemodule.c:5785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cls
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5787
      start: 5775
    functionDepth: 6
    functionLinenumber: 5775
    functionLinenumberEnd: 5787
    functionName: datetime_datetime_fromtimestamp_capi
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_datetime_fromtimestamp_impl
    - PyArg_ParseTupleAndKeywords
    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:5804,1
    - Dst: datetime_from_timestamp
      Src: /src/cpython/Modules/_datetimemodule.c:5812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - timestamp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5813
      start: 5799
    functionDepth: 5
    functionLinenumber: 5799
    functionLinenumberEnd: 5813
    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:5837,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:5837,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_datetimemodule.c:5841,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:5842,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - string
    - format
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5846
      start: 5830
    functionDepth: 1
    functionLinenumber: 5830
    functionLinenumberEnd: 5846
    functionName: datetime_datetime_strptime_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - PyImport_Import
    - _Py_ID
    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:5865,1
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/cpython/Modules/_datetimemodule.c:5870,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:5870,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:5871,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:5872,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:5873,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:5874,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5875,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:5876,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:5878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - type
    - date
    - time
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5880
      start: 5859
    functionDepth: 3
    functionLinenumber: 5859
    functionLinenumberEnd: 5880
    functionName: datetime_datetime_combine_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - TIME_GET_SECOND
    - TIME_GET_FOLD
    - GET_DAY
    - TIME_GET_MINUTE
    - GET_YEAR
    - TIME_GET_MICROSECOND
    - GET_MONTH
    - new_datetime_subclass_fold_ex
    - HASTZINFO
    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:5885,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_datetimemodule.c:5896,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_datetimemodule.c:5897,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Modules/_datetimemodule.c:5914,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_datetimemodule.c:5914,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:5921,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Modules/_datetimemodule.c:5924,1
    - Dst: PyUnicode_WriteChar
      Src: /src/cpython/Modules/_datetimemodule.c:5929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:5930,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - dtstr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5935
      start: 5882
    functionDepth: 1
    functionLinenumber: 5882
    functionLinenumberEnd: 5935
    functionName: _sanitize_isoformat_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_Copy
    - PyUnicode_WriteChar
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_READ
    - PyUnicode_GetLength
    - Py_UNICODE_IS_SURROGATE
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sanitize_isoformat_str(PyObject *dtstr)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_digit
      Src: /src/cpython/Modules/_datetimemodule.c:5987,1
    - Dst: is_digit
      Src: /src/cpython/Modules/_datetimemodule.c:6015,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - dtstr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6035
      start: 5938
    functionDepth: 1
    functionLinenumber: 5938
    functionLinenumberEnd: 6035
    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:6056,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_datetimemodule.c:6062,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_datetimemodule.c:6065,1
    - Dst: _find_isoformat_datetime_separator
      Src: /src/cpython/Modules/_datetimemodule.c:6074,1
    - Dst: parse_isoformat_date
      Src: /src/cpython/Modules/_datetimemodule.c:6085,1
    - Dst: parse_isoformat_time
      Src: /src/cpython/Modules/_datetimemodule.c:6108,1
    - Dst: tzinfo_from_isoformat_results
      Src: /src/cpython/Modules/_datetimemodule.c:6118,1
    - Dst: days_in_month
      Src: /src/cpython/Modules/_datetimemodule.c:6124,1
    - Dst: new_datetime_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:6143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:6151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6153,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:6157,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6160,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6163
      start: 6047
    functionDepth: 5
    functionLinenumber: 6047
    functionLinenumberEnd: 6163
    functionName: datetime_datetime_fromisoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _sanitize_isoformat_str
    - days_in_month
    - _find_isoformat_datetime_separator
    - tzinfo_from_isoformat_results
    - parse_isoformat_date
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - new_datetime_subclass_ex
    - PyErr_ExceptionMatches
    - PyErr_Format
    - parse_isoformat_time
    - Py_DECREF
    - Py_XDECREF
    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:6172,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6173,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6174,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6177
      start: 6169
    functionDepth: 1
    functionLinenumber: 6169
    functionLinenumberEnd: 6177
    functionName: datetime_dealloc
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyDateTime_CAST
    - Py_XDECREF
    - HASTZINFO
    linkageType: ''
    returnType: void
    signature: void datetime_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6186,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6187,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6184
    functionDepth: 3
    functionLinenumber: 6184
    functionLinenumberEnd: 6188
    functionName: datetime_utcoffset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_utcoffset
    - PyDateTime_CAST
    - GET_DT_TZINFO
    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:6192,1
    - Dst: call_dst
      Src: /src/cpython/Modules/_datetimemodule.c:6193,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6194
      start: 6190
    functionDepth: 3
    functionLinenumber: 6190
    functionLinenumberEnd: 6194
    functionName: datetime_dst
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_dst
    - PyDateTime_CAST
    - GET_DT_TZINFO
    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:6198,1
    - Dst: call_tzname
      Src: /src/cpython/Modules/_datetimemodule.c:6199,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6196
    functionDepth: 3
    functionLinenumber: 6196
    functionLinenumberEnd: 6200
    functionName: datetime_tzname
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_CAST
    - call_tzname
    - GET_DT_TZINFO
    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:6216,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6217,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6218,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:6218,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6219,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6220,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6221,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:6221,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6222,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:6223,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:6225,1
    - Dst: normalize_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:6226,1
    - Dst: new_datetime_subclass_ex
      Src: /src/cpython/Modules/_datetimemodule.c:6231,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6233,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6234,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: 6224
        line_start: 6224
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6235
      start: 6209
    functionDepth: 6
    functionLinenumber: 6209
    functionLinenumberEnd: 6235
    functionName: add_datetime_timedelta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 2
    functionsReached:
    - DATE_GET_SECOND
    - Py_TYPE
    - GET_DAY
    - normalize_datetime
    - DATE_GET_HOUR
    - GET_YEAR
    - GET_TD_MICROSECONDS
    - new_datetime_subclass_ex
    - DATE_GET_MICROSECOND
    - GET_TD_DAYS
    - assert
    - GET_TD_SECONDS
    - GET_MONTH
    - DATE_GET_MINUTE
    - HASTZINFO
    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:6240,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6242,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6244,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6249,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6256
      start: 6237
    functionDepth: 7
    functionLinenumber: 6237
    functionLinenumberEnd: 6256
    functionName: datetime_add
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDelta_Check
    - add_datetime_timedelta
    - PyDateTime_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:6263,1
    - Dst: PyDateTime_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6265,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6270,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6270,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6271,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6272,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6275,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6280,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:6284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6288,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:6293,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6302,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:6303,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6303,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6304,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6305,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:6306,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6306,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6307,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6308,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6313,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6314,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6315,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6316,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6317,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6318,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6319,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6320,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:6321,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:6326,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6327,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6330,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6332,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:6340,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6342
      start: 6258
    functionDepth: 7
    functionLinenumber: 6258
    functionLinenumberEnd: 6342
    functionName: datetime_subtract
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - DATE_GET_HOUR
    - GET_YEAR
    - DATE_GET_MICROSECOND
    - new_delta
    - GET_MONTH
    - add_datetime_timedelta
    - PyDateTime_Check
    - Py_INCREF
    - PyErr_SetString
    - Py_DECREF
    - Py_NewRef
    - DATE_GET_MINUTE
    - PyDelta_Check
    - delta_cmp
    - delta_subtract
    - GET_DAY
    - ymd_to_ord
    - Py_SETREF
    - datetime_utcoffset
    - GET_DT_TZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_subtract(PyObject *left, PyObject *right)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_CAST
      Src: /src/cpython/Modules/_datetimemodule.c:6349,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6350,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6353,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:6354,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6357,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6357,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6357,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6358,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6358,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6359,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6360,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6362,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:6363,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6366,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6366,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6366,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6367,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6367,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6368,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:6371,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6374,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6374,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6374,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6375,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6375,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6377,1
    - Dst: append_keyword_fold
      Src: /src/cpython/Modules/_datetimemodule.c:6378,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6378,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6379,1
    - Dst: append_keyword_tzinfo
      Src: /src/cpython/Modules/_datetimemodule.c:6381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6382
      start: 6346
    functionDepth: 2
    functionLinenumber: 6346
    functionLinenumberEnd: 6382
    functionName: datetime_repr
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - append_keyword_fold
    - DATE_GET_FOLD
    - GET_DAY
    - DATE_GET_HOUR
    - GET_YEAR
    - PyUnicode_FromFormat
    - PyDateTime_CAST
    - DATE_GET_MICROSECOND
    - append_keyword_tzinfo
    - GET_MONTH
    - DATE_GET_MINUTE
    - Py_TYPE
    - HASTZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:6387,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:6391,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:6391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6384
    functionDepth: 1
    functionLinenumber: 6384
    functionLinenumberEnd: 6394
    functionName: datetime_str
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyUnicode_FromString
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_str(PyObject *op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6426,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:6436,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:6447,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_datetimemodule.c:6448,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:6457,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:6458,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_datetimemodule.c:6462,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6463,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6463,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6464,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6465,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6465,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6466,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6469,1
    - Dst: format_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6474,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_datetimemodule.c:6477,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_datetimemodule.c:6477,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - self
    - sep
    - timespec
    argTypes:
    - PyDateTime_DateTime*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6479
      start: 6418
    functionDepth: 4
    functionLinenumber: 6418
    functionLinenumberEnd: 6479
    functionName: datetime_datetime_isoformat_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - PyUnicode_AppendAndDel
    - PyUnicode_FromString
    - strcmp
    - GET_DAY
    - Py_ARRAY_LENGTH
    - DATE_GET_HOUR
    - GET_YEAR
    - PyUnicode_FromFormat
    - format_utcoffset
    - DATE_GET_MICROSECOND
    - PyErr_Format
    - Py_DECREF
    - GET_MONTH
    - DATE_GET_MINUTE
    - HASTZINFO
    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:6484,1
    - Dst: format_ctime
      Src: /src/cpython/Modules/_datetimemodule.c:6485,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6486,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6487,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6489
      start: 6481
    functionDepth: 2
    functionLinenumber: 6481
    functionLinenumberEnd: 6489
    functionName: datetime_ctime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - DATE_GET_HOUR
    - PyDateTime_CAST
    - format_ctime
    - 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:6496,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6496,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6497,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6498,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6499,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6500,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6501,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6502,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6503,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6505,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dt
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6507
      start: 6493
    functionDepth: 4
    functionLinenumber: 6493
    functionLinenumberEnd: 6507
    functionName: flip_fold
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - Py_TYPE
    - DATE_GET_FOLD
    - GET_DAY
    - DATE_GET_HOUR
    - GET_YEAR
    - DATE_GET_MICROSECOND
    - new_datetime_ex2
    - GET_MONTH
    - DATE_GET_MINUTE
    - HASTZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flip_fold(PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flip_fold
      Src: /src/cpython/Modules/_datetimemodule.c:6514,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dt
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6520
      start: 6509
    functionDepth: 5
    functionLinenumber: 6509
    functionLinenumberEnd: 6520
    functionName: get_flip_fold_offset
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - flip_fold
    - 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:6535,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:6539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6544,1
    - Dst: get_flip_fold_offset
      Src: /src/cpython/Modules/_datetimemodule.c:6546,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:6550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6553,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: 6555
      start: 6528
    functionDepth: 6
    functionLinenumber: 6528
    functionLinenumberEnd: 6555
    functionName: pep495_eq_exception
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_flip_fold_offset
    - delta_cmp
    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:6564,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6568,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6568,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:6569,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:6572,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6574,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6577,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6585,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6585,1
    - Dst: delta_cmp
      Src: /src/cpython/Modules/_datetimemodule.c:6586,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_datetimemodule.c:6587,1
    - Dst: pep495_eq_exception
      Src: /src/cpython/Modules/_datetimemodule.c:6591,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:6597,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:6602,1
    - Dst: datetime_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6603,1
    - Dst: GET_TD_DAYS
      Src: /src/cpython/Modules/_datetimemodule.c:6606,1
    - Dst: GET_TD_SECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:6608,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/cpython/Modules/_datetimemodule.c:6609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6610,1
    - Dst: pep495_eq_exception
      Src: /src/cpython/Modules/_datetimemodule.c:6612,1
    - Dst: diff_to_bool
      Src: /src/cpython/Modules/_datetimemodule.c:6618,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6621,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6624,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_datetimemodule.c:6627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6632,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6633,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (offset1 != offset2)
      pos:
        line_end: 6601
        line_start: 6601
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6635
      start: 6557
    functionDepth: 8
    functionLinenumber: 6557
    functionLinenumberEnd: 6635
    functionName: datetime_richcompare
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_cmp
    - memcmp
    - datetime_subtract
    - PyErr_SetString
    - diff_to_bool
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    - pep495_eq_exception
    - GET_TD_DAYS
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyDelta_Check
    - datetime_utcoffset
    - Py_NewRef
    - PyDateTime_Check
    - GET_DT_TZINFO
    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:6640,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:6641,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6644,1
    - Dst: new_datetime_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:6645,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6645,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6646,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6647,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6648,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6649,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6650,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6651,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6652,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6653,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6658,1
    - Dst: datetime_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6661,1
    - Dst: generic_hash
      Src: /src/cpython/Modules/_datetimemodule.c:6668,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:6670,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:6675,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6675,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_datetimemodule.c:6676,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6676,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6677,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6678,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6679,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6680,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6681,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:6682,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6686,1
    - Dst: delta_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6692,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_datetimemodule.c:6695,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/_datetimemodule.c:6696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6699,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (HASTZINFO(self))
      pos:
        line_end: 6674
        line_start: 6674
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6702
      start: 6637
    functionDepth: 4
    functionLinenumber: 6637
    functionLinenumberEnd: 6702
    functionName: datetime_hash
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - DATE_GET_HOUR
    - GET_YEAR
    - DATE_GET_MICROSECOND
    - assert
    - Py_TYPE
    - new_delta
    - PyObject_Hash
    - GET_MONTH
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_NewRef
    - DATE_GET_MINUTE
    - DATE_GET_FOLD
    - GET_DAY
    - delta_subtract
    - ymd_to_ord
    - generic_hash
    - PyDateTime_CAST
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - new_datetime_ex2
    - datetime_utcoffset
    - HASTZINFO
    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:6728,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6730,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: 6731
      start: 6721
    functionDepth: 3
    functionLinenumber: 6721
    functionLinenumberEnd: 6731
    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:6742,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:6746,1
    - Dst: strftime
      Src: /src/cpython/Modules/_datetimemodule.c:6752,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:6754,1
    - Dst: _PyTime_gmtime
      Src: /src/cpython/Modules/_datetimemodule.c:6763,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:6765,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6772,1
    - Dst: datetime_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6777,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/_datetimemodule.c:6784,1
    - Dst: new_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:6788,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6789,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - timestamp
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6793
      start: 6733
    functionDepth: 8
    functionLinenumber: 6733
    functionLinenumberEnd: 6793
    functionName: local_timezone_from_timestamp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - new_timezone
    - _PyTime_gmtime
    - new_delta
    - datetime_subtract
    - new_datetime
    - _PyTime_localtime
    - strftime
    - Py_XDECREF
    - Py_DECREF
    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:6804,1
    - Dst: datetime_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:6806,1
    - Dst: CONST_EPOCH
      Src: /src/cpython/Modules/_datetimemodule.c:6806,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:6807,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:6811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6813,1
    - Dst: divide_timedelta_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6819,1
    - Dst: _PyLong_AsTime_t
      Src: /src/cpython/Modules/_datetimemodule.c:6822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6823,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:6824,1
    - Dst: local_timezone_from_timestamp
      Src: /src/cpython/Modules/_datetimemodule.c:6826,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - utc_time
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6827
      start: 6795
    functionDepth: 9
    functionLinenumber: 6795
    functionLinenumberEnd: 6827
    functionName: local_timezone
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_CURRENT_STATE
    - new_delta
    - datetime_subtract
    - _PyLong_AsTime_t
    - CONST_EPOCH
    - PyErr_Occurred
    - local_timezone_from_timestamp
    - Py_DECREF
    - RELEASE_CURRENT_STATE
    - divide_timedelta_timedelta
    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:6838,1
    - Dst: local_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:6839,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6839,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6840,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6841,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6842,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6843,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6844,1
    - Dst: local_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:6848,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6848,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6849,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6850,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6851,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6852,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6853,1
    - Dst: local_timezone_from_timestamp
      Src: /src/cpython/Modules/_datetimemodule.c:6863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - local_dt
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6864
      start: 6833
    functionDepth: 9
    functionLinenumber: 6833
    functionLinenumberEnd: 6864
    functionName: local_timezone_from_local
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - DATE_GET_FOLD
    - GET_DAY
    - DATE_GET_HOUR
    - GET_YEAR
    - local_timezone_from_timestamp
    - local_to_seconds
    - GET_MONTH
    - 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:6884,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6887,1
    - Dst: local_timezone_from_local
      Src: /src/cpython/Modules/_datetimemodule.c:6889,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6898,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6899,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:6903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6908,1
    - Dst: PyDelta_Check
      Src: /src/cpython/Modules/_datetimemodule.c:6911,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_datetimemodule.c:6912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6914,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:6918,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6920,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6925,1
    - Dst: new_datetime_ex2
      Src: /src/cpython/Modules/_datetimemodule.c:6928,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6928,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6929,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6930,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6931,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6932,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6933,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6934,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:6935,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:6936,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:6937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6938,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:6944,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:6944,1
    - Dst: CONST_UTC
      Src: /src/cpython/Modules/_datetimemodule.c:6944,1
    - Dst: local_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:6949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6951,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_datetimemodule.c:6956,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_datetimemodule.c:6957,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_datetimemodule.c:6961,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_datetimemodule.c:6961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6962,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - self
    - tzinfo
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6965
      start: 6874
    functionDepth: 10
    functionLinenumber: 6874
    functionLinenumberEnd: 6965
    functionName: datetime_datetime_astimezone_impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - PyObject_CallMethodOneArg
    - DATE_GET_HOUR
    - GET_YEAR
    - DATE_GET_MICROSECOND
    - local_timezone_from_local
    - Py_TYPE
    - CONST_UTC
    - GET_MONTH
    - add_datetime_timedelta
    - Py_INCREF
    - check_tzinfo_subclass
    - _Py_ID
    - Py_DECREF
    - Py_NewRef
    - DATE_GET_MINUTE
    - PyDelta_Check
    - call_utcoffset
    - DATE_GET_FOLD
    - GET_DAY
    - Py_SETREF
    - local_timezone
    - PyErr_Format
    - new_datetime_ex2
    - HASTZINFO
    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:6970,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:6973,1
    - Dst: call_dst
      Src: /src/cpython/Modules/_datetimemodule.c:6976,1
    - Dst: delta_bool
      Src: /src/cpython/Modules/_datetimemodule.c:6981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:6982,1
    - Dst: build_struct_time
      Src: /src/cpython/Modules/_datetimemodule.c:6984,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:6984,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:6985,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:6986,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:6987,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:6988,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:6989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6991
      start: 6967
    functionDepth: 3
    functionLinenumber: 6967
    functionLinenumberEnd: 6991
    functionName: datetime_timetuple
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - delta_bool
    - GET_DAY
    - call_dst
    - DATE_GET_HOUR
    - GET_YEAR
    - build_struct_time
    - PyDateTime_CAST
    - Py_DECREF
    - GET_MONTH
    - DATE_GET_MINUTE
    - HASTZINFO
    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:6998,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:7000,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:7005,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:7016,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7025,1
    - Dst: local
      Src: /src/cpython/Modules/_datetimemodule.c:7028,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_datetimemodule.c:7037,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_datetimemodule.c:7037,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: 7024
        line_start: 7024
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 7038
      start: 6993
    functionDepth: 3
    functionLinenumber: 6993
    functionLinenumberEnd: 7038
    functionName: local_to_seconds
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - utc_to_seconds
    - Py_MAX
    - Py_MIN
    - 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:7046,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:7049,1
    - Dst: GET_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:7051,1
    - Dst: datetime_subtract
      Src: /src/cpython/Modules/_datetimemodule.c:7054,1
    - Dst: CONST_EPOCH
      Src: /src/cpython/Modules/_datetimemodule.c:7054,1
    - Dst: RELEASE_CURRENT_STATE
      Src: /src/cpython/Modules/_datetimemodule.c:7055,1
    - Dst: delta_total_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:7058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7059,1
    - Dst: local_to_seconds
      Src: /src/cpython/Modules/_datetimemodule.c:7063,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7063,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:7064,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:7065,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:7066,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:7067,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7068,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:7069,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:7072,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7076
      start: 7043
    functionDepth: 8
    functionLinenumber: 7043
    functionLinenumberEnd: 7076
    functionName: datetime_timestamp
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - DATE_GET_FOLD
    - GET_CURRENT_STATE
    - GET_DAY
    - datetime_subtract
    - DATE_GET_HOUR
    - GET_YEAR
    - PyFloat_FromDouble
    - CONST_EPOCH
    - PyDateTime_CAST
    - DATE_GET_MICROSECOND
    - delta_total_seconds
    - Py_DECREF
    - GET_MONTH
    - RELEASE_CURRENT_STATE
    - local_to_seconds
    - DATE_GET_MINUTE
    - HASTZINFO
    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:7081,1
    - Dst: new_date
      Src: /src/cpython/Modules/_datetimemodule.c:7082,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7082,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:7083,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:7084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7085
      start: 7078
    functionDepth: 1
    functionLinenumber: 7078
    functionLinenumberEnd: 7085
    functionName: datetime_getdate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_DAY
    - GET_YEAR
    - PyDateTime_CAST
    - new_date
    - GET_MONTH
    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:7090,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:7091,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:7091,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:7092,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7093,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7094,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:7096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7097
      start: 7087
    functionDepth: 1
    functionLinenumber: 7087
    functionLinenumberEnd: 7097
    functionName: datetime_gettime
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - DATE_GET_FOLD
    - DATE_GET_HOUR
    - PyDateTime_CAST
    - DATE_GET_MICROSECOND
    - new_time
    - 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:7102,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:7103,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:7103,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:7104,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7105,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7106,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:7107,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:7108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7109
      start: 7099
    functionDepth: 1
    functionLinenumber: 7099
    functionLinenumberEnd: 7109
    functionName: datetime_gettimetz
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - DATE_GET_FOLD
    - DATE_GET_HOUR
    - PyDateTime_CAST
    - DATE_GET_MICROSECOND
    - new_time
    - DATE_GET_MINUTE
    - GET_DT_TZINFO
    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:7117,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:7119,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7121,1
    - Dst: call_utcoffset
      Src: /src/cpython/Modules/_datetimemodule.c:7125,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7129,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7130,1
    - Dst: add_datetime_timedelta
      Src: /src/cpython/Modules/_datetimemodule.c:7133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7135,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7140,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/_datetimemodule.c:7141,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/_datetimemodule.c:7142,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/_datetimemodule.c:7143,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/_datetimemodule.c:7144,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/_datetimemodule.c:7145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7147,1
    - Dst: build_struct_time
      Src: /src/cpython/Modules/_datetimemodule.c:7148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7149
      start: 7111
    functionDepth: 7
    functionLinenumber: 7111
    functionLinenumberEnd: 7149
    functionName: datetime_utctimetuple
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_utcoffset
    - DATE_GET_SECOND
    - GET_DAY
    - add_datetime_timedelta
    - DATE_GET_HOUR
    - GET_YEAR
    - build_struct_time
    - PyDateTime_CAST
    - Py_DECREF
    - GET_MONTH
    - Py_NewRef
    - DATE_GET_MINUTE
    - GET_DT_TZINFO
    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:7164,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/_datetimemodule.c:7167,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_datetimemodule.c:7169,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/_datetimemodule.c:7170,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_datetimemodule.c:7171,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_datetimemodule.c:7173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_DateTime*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7177
      start: 7158
    functionDepth: 1
    functionLinenumber: 7158
    functionLinenumberEnd: 7177
    functionName: datetime_getstate
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_FOLD
    - PyBytes_FromStringAndSize
    - _PyTuple_FromPair
    - PyTuple_Pack
    - PyBytes_AS_STRING
    - Py_DECREF
    - HASTZINFO
    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:7190,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:7190,1
    - Dst: datetime_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:7191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_DateTime*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7192
      start: 7186
    functionDepth: 2
    functionLinenumber: 7186
    functionLinenumberEnd: 7192
    functionName: datetime_datetime___reduce_ex___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_getstate
    - Py_TYPE
    - Py_BuildValue
    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:7202,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_datetimemodule.c:7202,1
    - Dst: datetime_getstate
      Src: /src/cpython/Modules/_datetimemodule.c:7203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7204
      start: 7198
    functionDepth: 2
    functionLinenumber: 7198
    functionLinenumberEnd: 7204
    functionName: datetime_datetime___reduce___impl
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_getstate
    - Py_TYPE
    - Py_BuildValue
    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: 7368
      start: 7364
    functionDepth: 0
    functionLinenumber: 7364
    functionLinenumberEnd: 7368
    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:7373,1
    - Dst: create_timezone
      Src: /src/cpython/Modules/_datetimemodule.c:7377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - days
    - sec
    - ms
    - normalize
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7380
      start: 7370
    functionDepth: 2
    functionLinenumber: 7370
    functionLinenumberEnd: 7380
    functionName: create_timezone_from_delta
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - new_delta
    - create_timezone
    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:7401,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7405,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_datetimemodule.c:7406,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7409,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7410,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7411,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7412,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7413,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7414,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7415,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_datetimemodule.c:7416,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:7421,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:7425,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:7429,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_datetimemodule.c:7433,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:7441,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:7445,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Modules/_datetimemodule.c:7449,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:7455,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: 7404
        line_start: 7404
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 7462
      start: 7387
    functionDepth: 1
    functionLinenumber: 7387
    functionLinenumberEnd: 7462
    functionName: init_state
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 3
    functionsReached:
    - get_module_state
    - PyLong_FromLong
    - PyLong_FromDouble
    - new_datetime
    - ADD_TYPE
    - assert
    - Py_NewRef
    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: 7400
      start: 7391
    functionDepth: 0
    functionLinenumber: 7391
    functionLinenumberEnd: 7400
    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:7468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - st
    - visit
    - arg
    argTypes:
    - datetime_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7471
      start: 7464
    functionDepth: 1
    functionLinenumber: 7464
    functionLinenumberEnd: 7471
    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:7476,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7477,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7478,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7479,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7480,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7481,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7482,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7483,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_datetimemodule.c:7484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - st
    argTypes:
    - datetime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7486
      start: 7473
    functionDepth: 1
    functionLinenumber: 7473
    functionLinenumberEnd: 7486
    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:7494,1
    - Dst: _PyStaticType_InitForExtension
      Src: /src/cpython/Modules/_datetimemodule.c:7496,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Modules/_datetimemodule.c:7497,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7516,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7517,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7517,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7518,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7518,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7519,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7520,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7523,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7524,1
    - Dst: new_date
      Src: /src/cpython/Modules/_datetimemodule.c:7524,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7525,1
    - Dst: new_date
      Src: /src/cpython/Modules/_datetimemodule.c:7525,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7526,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7526,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7529,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7530,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:7530,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7531,1
    - Dst: new_time
      Src: /src/cpython/Modules/_datetimemodule.c:7531,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7532,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7532,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7535,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7536,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:7537,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7538,1
    - Dst: new_datetime
      Src: /src/cpython/Modules/_datetimemodule.c:7538,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7540,1
    - Dst: new_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7540,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Modules/_datetimemodule.c:7543,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_datetimemodule.c:7544,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7553,1
    - Dst: create_timezone_from_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7553,1
    - Dst: DATETIME_ADD_MACRO
      Src: /src/cpython/Modules/_datetimemodule.c:7556,1
    - Dst: create_timezone_from_delta
      Src: /src/cpython/Modules/_datetimemodule.c:7557,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Modules/_datetimemodule.c:7561,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Modules/_datetimemodule.c:7564,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7565
      start: 7489
    functionDepth: 3
    functionLinenumber: 7489
    functionLinenumberEnd: 7565
    functionName: _PyDateTime_InitTypes
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - Py_ARRAY_LENGTH
    - new_delta
    - new_datetime
    - _PyStatus_NO_MEMORY
    - _PyType_GetDict
    - PyDict_SetItemString
    - create_timezone_from_delta
    - new_date
    - _PyStatus_ERR
    - new_time
    - DATETIME_ADD_MACRO
    - _PyStaticType_InitForExtension
    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: 7514
      start: 7501
    functionDepth: 0
    functionLinenumber: 7501
    functionLinenumberEnd: 7514
    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:7581,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_datetimemodule.c:7583,1
    - Dst: get_current_module
      Src: /src/cpython/Modules/_datetimemodule.c:7584,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_datetimemodule.c:7585,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7586,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_datetimemodule.c:7591,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_datetimemodule.c:7593,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7594,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_datetimemodule.c:7595,1
    - Dst: init_state
      Src: /src/cpython/Modules/_datetimemodule.c:7600,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_datetimemodule.c:7605,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_datetimemodule.c:7608,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_datetimemodule.c:7611,1
    - Dst: get_datetime_capi
      Src: /src/cpython/Modules/_datetimemodule.c:7616,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_datetimemodule.c:7620,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_datetimemodule.c:7622,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7630,1
    - Dst: days_before_year
      Src: /src/cpython/Modules/_datetimemodule.c:7630,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7636,1
    - Dst: days_before_year
      Src: /src/cpython/Modules/_datetimemodule.c:7636,1
    - Dst: assert
      Src: /src/cpython/Modules/_datetimemodule.c:7642,1
    - Dst: days_before_year
      Src: /src/cpython/Modules/_datetimemodule.c:7642,1
    - Dst: set_current_module
      Src: /src/cpython/Modules/_datetimemodule.c:7644,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_datetimemodule.c:7652,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_datetimemodule.c:7655,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (DI400Y == days_before_year(400+1))
      pos:
        line_end: 7635
        line_start: 7635
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (DI4Y == days_before_year(4+1))
      pos:
        line_end: 7629
        line_start: 7629
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (DI100Y == days_before_year(100+1))
      pos:
        line_end: 7641
        line_start: 7641
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (old_module == NULL)
      pos:
        line_end: 7585
        line_start: 7585
        source_file: /src/cpython/Modules/_datetimemodule.c
    - condition: (name != NULL)
      pos:
        line_end: 7593
        line_start: 7593
        source_file: /src/cpython/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 7657
      start: 7577
    functionDepth: 2
    functionLinenumber: 7577
    functionLinenumberEnd: 7657
    functionName: _datetime_exec
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - days_before_year
    - get_datetime_capi
    - PyModule_AddIntMacro
    - PyInterpreterState_Get
    - Py_ARRAY_LENGTH
    - get_current_module
    - PyCapsule_New
    - set_current_module
    - init_state
    - PyErr_Occurred
    - assert
    - _PyType_Name
    - clear_state
    - PyModule_AddObjectRef
    - Py_XDECREF
    - 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:7670,1
    - Dst: traverse_state
      Src: /src/cpython/Modules/_datetimemodule.c:7671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7673
      start: 7667
    functionDepth: 2
    functionLinenumber: 7667
    functionLinenumberEnd: 7673
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - traverse_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/_datetimemodule.c:7678,1
    - Dst: clear_state
      Src: /src/cpython/Modules/_datetimemodule.c:7679,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_datetimemodule.c:7681,1
    - Dst: clear_current_module
      Src: /src/cpython/Modules/_datetimemodule.c:7682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7688
      start: 7675
    functionDepth: 2
    functionLinenumber: 7675
    functionLinenumberEnd: 7688
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_datetimemodule.c
    functionUses: 9
    functionsReached:
    - get_module_state
    - PyInterpreterState_Get
    - clear_state
    - clear_current_module
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_clear
      Src: /src/cpython/Modules/_datetimemodule.c:7693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7694
      start: 7690
    functionDepth: 0
    functionLinenumber: 7690
    functionLinenumberEnd: 7694
    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:7711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7712
      start: 7708
    functionDepth: 1
    functionLinenumber: 7708
    functionLinenumberEnd: 7712
    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:
    - Py_DECREF
    - PyUnicode_FromString
    - PyLong_FromLong
    - PyDict_SetItem
    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:
    - add_errcode
    - PyModule_GetDict
    - PyDict_SetItemString
    - Py_DECREF
    - 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: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    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: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    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: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    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:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - PY_EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    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: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    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:219,1
    - Dst: strlen
      Src: /src/cpython/Modules/_hashopenssl.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: py_hashentry_t_hash_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - strlen
    - Py_HashBuffer
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    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:232,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:236,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - entry
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 241
    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:245,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_hashopenssl.c:257,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hashopenssl.c:261,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_hashopenssl.c:263,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:264,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_hashopenssl.c:270,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_hashopenssl.c:280,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 282
    functionName: py_hashentry_table_new
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_set
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - _Py_hashtable_new_full
    - _Py_hashtable_destroy
    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:305,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 308
    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: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    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: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    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:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 351
    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:365,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:366,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:368,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:371,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:374,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_hashopenssl.c:377,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: 364
        line_start: 364
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (exc_text != NULL)
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 379
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 379
    functionName: set_exception_with_ssl_errinfo
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyErr_Format
    - assert
    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:386,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:387,1
    - Dst: ERR_lib_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:390,1
    - Dst: ERR_func_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:395,1
    - Dst: py_wrapper_ERR_reason_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:397,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:400,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:403,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:406,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: 385
        line_start: 385
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (errcode != 0)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 408
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 408
    functionName: set_ssl_exception_from_errcode
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - ERR_lib_error_string
    - ERR_func_error_string
    - PyErr_Format
    - assert
    - py_wrapper_ERR_reason_error_string
    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:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - errcode
    - default_exc_type
    argTypes:
    - unsigned long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 424
    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:436,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:437,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:439,1
    - Dst: set_ssl_exception_from_errcode
      Src: /src/cpython/Modules/_hashopenssl.c:440,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:443,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: 435
        line_start: 435
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: raise_ssl_error
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - PyErr_SetString
    - ERR_peek_last_error
    - assert
    - set_ssl_exception_from_errcode
    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:451,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:452,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:454,1
    - Dst: set_ssl_exception_from_errcode
      Src: /src/cpython/Modules/_hashopenssl.c:455,1
    - Dst: va_start
      Src: /src/cpython/Modules/_hashopenssl.c:459,1
    - Dst: PyErr_FormatV
      Src: /src/cpython/Modules/_hashopenssl.c:460,1
    - Dst: va_end
      Src: /src/cpython/Modules/_hashopenssl.c:461,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: 450
        line_start: 450
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 463
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 463
    functionName: raise_ssl_error_f
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ERR_peek_last_error
    - va_start
    - va_end
    - assert
    - PyErr_FormatV
    - set_ssl_exception_from_errcode
    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:469,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:471,1
    - Dst: get_smart_ssl_exception_type
      Src: /src/cpython/Modules/_hashopenssl.c:472,1
    - Dst: set_ssl_exception_from_errcode
      Src: /src/cpython/Modules/_hashopenssl.c:473,1
    - Dst: va_start
      Src: /src/cpython/Modules/_hashopenssl.c:477,1
    - Dst: PyErr_FormatV
      Src: /src/cpython/Modules/_hashopenssl.c:478,1
    - Dst: va_end
      Src: /src/cpython/Modules/_hashopenssl.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - exc_type
    - fallback_format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 481
    functionName: raise_smart_ssl_error_f
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ERR_peek_last_error
    - va_start
    - va_end
    - get_smart_ssl_exception_type
    - PyErr_FormatV
    - set_ssl_exception_from_errcode
    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:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 491
    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:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 499
    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:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 507
    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:517,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_hashopenssl.c:518,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:520,1
    - Dst: ERR_lib_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:522,1
    - Dst: set_exception_with_ssl_errinfo
      Src: /src/cpython/Modules/_hashopenssl.c:523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:524,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:529,1
    - Dst: ERR_lib_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:531,1
    - Dst: ERR_reason_error_string
      Src: /src/cpython/Modules/_hashopenssl.c:532,1
    - Dst: set_exception_with_ssl_errinfo
      Src: /src/cpython/Modules/_hashopenssl.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:534,1
    - Dst: raise_ssl_error_f
      Src: /src/cpython/Modules/_hashopenssl.c:539,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:542,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:542,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: 541
        line_start: 541
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 543
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 543
    functionName: raise_unsupported_algorithm_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    - raise_ssl_error_f
    - ERR_GET_REASON
    - ERR_peek_last_error
    - ERR_lib_error_string
    - PyUnicode_FromFormat
    - set_exception_with_ssl_errinfo
    - PyErr_Occurred
    - assert
    - Py_DECREF
    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:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - digestmod
    argTypes:
    - _hashlibstate*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 557
    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:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - name
    argTypes:
    - _hashlibstate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 567
    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: 597
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 597
    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:607,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:615,1
    - Dst: ERR_GET_REASON
      Src: /src/cpython/Modules/_hashopenssl.c:616,1
    - Dst: OBJ_nid2sn
      Src: /src/cpython/Modules/_hashopenssl.c:620,1
    - Dst: raise_ssl_error_f
      Src: /src/cpython/Modules/_hashopenssl.c:628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 630
    functionName: get_asn1_utf8name_by_nid
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - raise_ssl_error_f
    - ERR_GET_REASON
    - ERR_peek_last_error
    - OBJ_nid2ln
    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:640,1
    - Dst: get_asn1_utf8name_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 4
    functionLinenumber: 637
    functionLinenumberEnd: 642
    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: get_hashentry_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:653,1
    - Dst: get_asn1_utf8name_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 650
    functionDepth: 4
    functionLinenumber: 650
    functionLinenumberEnd: 655
    functionName: get_openssl_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_openssl_utf8name_by_nid(int nid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:662,1
    - Dst: get_hashlib_utf8name_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:663,1
    - Dst: EVP_MD_nid
      Src: /src/cpython/Modules/_hashopenssl.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts:
    - condition: (md != NULL)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 664
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 664
    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:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - py_ht
    argTypes:
    - Py_hash_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 684
    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:696,1
    - Dst: disable_fips_property
      Src: /src/cpython/Modules/_hashopenssl.c:699,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Modules/_hashopenssl.c:700,1
    - Dst: PY_EVP_MD_fetch
      Src: /src/cpython/Modules/_hashopenssl.c:702,1
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Modules/_hashopenssl.c:705,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Modules/_hashopenssl.c:712,1
    - Dst: PY_EVP_MD_fetch
      Src: /src/cpython/Modules/_hashopenssl.c:714,1
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Modules/_hashopenssl.c:717,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:724,1
    - Dst: PY_EVP_MD_up_ref
      Src: /src/cpython/Modules/_hashopenssl.c:726,1
    - Dst: disable_fips_property
      Src: /src/cpython/Modules/_hashopenssl.c:731,1
    - Dst: PY_EVP_MD_fetch
      Src: /src/cpython/Modules/_hashopenssl.c:733,1
    - Dst: raise_unsupported_str_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:736,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: 723
        line_start: 723
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 740
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 740
    functionName: get_openssl_evp_md_by_utf8name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PY_EVP_MD_up_ref
    - PY_EVP_MD_fetch
    - raise_unsupported_str_algorithm_error
    - _Py_hashtable_get
    - assert
    - _Py_atomic_exchange_ptr
    - disable_fips_property
    - FT_ATOMIC_LOAD_PTR_RELAXED
    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:756,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_hashopenssl.c:757,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:761,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_hashopenssl.c:762,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_hashopenssl.c:763,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:766,1
    - Dst: raise_unsupported_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:767,1
    - Dst: get_openssl_evp_md_by_utf8name
      Src: /src/cpython/Modules/_hashopenssl.c:771,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: 760
        line_start: 760
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 772
      start: 752
    functionDepth: 6
    functionLinenumber: 752
    functionLinenumberEnd: 772
    functionName: get_openssl_evp_md
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_openssl_evp_md_by_utf8name
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - raise_unsupported_algorithm_error
    - PyErr_Occurred
    - assert
    - PyDict_GetItemWithError
    linkageType: ''
    returnType: PY_EVP_MD
    signature: 'PY_EVP_MD *

      get_openssl_evp_md(_hashlibstate *state, PyObject *digestmod, Py_hash_type py_ht)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_openssl_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:788,1
    - Dst: EVP_MD_nid
      Src: /src/cpython/Modules/_hashopenssl.c:795,1
    - Dst: get_openssl_utf8name_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:796,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:801,1
    - Dst: raise_unsupported_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:802,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - state
    - digestmod
    - py_ht
    - evp_md
    argTypes:
    - _hashlibstate*
    - PyObject*
    - Py_hash_type
    - EVP_MD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 783
    functionDepth: 7
    functionLinenumber: 783
    functionLinenumberEnd: 812
    functionName: get_openssl_digest_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PY_EVP_MD_free
    - get_openssl_evp_md
    - get_openssl_utf8name_by_nid
    - raise_unsupported_algorithm_error
    - EVP_MD_nid
    linkageType: ''
    returnType: char
    signature: "char *\nget_openssl_digest_name(_hashlibstate *state,\n                        PyObject
      *digestmod, Py_hash_type py_ht,\n                        EVP_MD **evp_md)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:821,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_hashopenssl.c:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 827
    functionName: py_wrapper_EVP_MD_CTX_new
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - PyErr_NoMemory
    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:834,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/_hashopenssl.c:838,1
    - Dst: py_wrapper_EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:840,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 847
    functionName: new_hash_object
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - py_wrapper_EVP_MD_CTX_new
    - HASHLIB_INIT_MUTEX
    - 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:858,1
    - Dst: EVP_DigestUpdate
      Src: /src/cpython/Modules/_hashopenssl.c:859,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:860,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - vp
    - len
    argTypes:
    - HASHobject*
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 849
    functionDepth: 4
    functionLinenumber: 849
    functionLinenumberEnd: 867
    functionName: _hashlib_HASH_hash
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    - 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:874,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:875,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:876,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_hashopenssl.c:877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 879
    functionName: _hashlib_HASH_dealloc
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - Py_DECREF
    - HASHobject_CAST
    - PyObject_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:885,1
    - Dst: EVP_MD_CTX_copy
      Src: /src/cpython/Modules/_hashopenssl.c:886,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:887,1
    - Dst: notify_smart_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:889,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - new_ctx_p
    argTypes:
    - HASHobject*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 881
    functionDepth: 4
    functionLinenumber: 881
    functionLinenumberEnd: 893
    functionName: _hashlib_HASH_copy_locked
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - HASHLIB_RELEASE_LOCK
    - notify_smart_ssl_error_occurred_in
    - Py_STRINGIFY
    - 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:909,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:909,1
    - Dst: _hashlib_HASH_copy_locked
      Src: /src/cpython/Modules/_hashopenssl.c:912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - HASHobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 903
    functionDepth: 5
    functionLinenumber: 903
    functionLinenumberEnd: 917
    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:922,1
    - Dst: _hashlib_HASH_copy_locked
      Src: /src/cpython/Modules/_hashopenssl.c:926,1
    - Dst: EVP_MD_CTX_size
      Src: /src/cpython/Modules/_hashopenssl.c:929,1
    - Dst: EVP_DigestFinal
      Src: /src/cpython/Modules/_hashopenssl.c:930,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:931,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:931,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:934,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:938,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - digest
    argTypes:
    - HASHobject*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 919
    functionDepth: 5
    functionLinenumber: 919
    functionLinenumberEnd: 940
    functionName: _hashlib_HASH_digest_compute
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal
    - EVP_MD_CTX_free
    - EVP_MD_CTX_size
    - py_wrapper_EVP_MD_CTX_new
    - _hashlib_HASH_copy_locked
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    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:953,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HASHobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 948
    functionDepth: 6
    functionLinenumber: 948
    functionLinenumberEnd: 955
    functionName: _hashlib_HASH_digest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _hashlib_HASH_digest_compute
    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:968,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/_hashopenssl.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HASHobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 963
    functionDepth: 6
    functionLinenumber: 963
    functionLinenumberEnd: 970
    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:987,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/_hashopenssl.c:988,1
    - Dst: _hashlib_HASH_hash
      Src: /src/cpython/Modules/_hashopenssl.c:990,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - HASHobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 981
    functionDepth: 5
    functionLinenumber: 981
    functionLinenumberEnd: 994
    functionName: _hashlib_HASH_update_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - _hashlib_HASH_hash
    - PyBuffer_Release
    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:1007,1
    - Dst: EVP_MD_CTX_block_size
      Src: /src/cpython/Modules/_hashopenssl.c:1008,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1009,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (block_size > 0)
      pos:
        line_end: 1008
        line_start: 1008
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1011
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1011
    functionName: _hashlib_HASH_get_blocksize
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_block_size
    - HASHobject_CAST
    - PyLong_FromLong
    - assert
    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:1016,1
    - Dst: EVP_MD_CTX_size
      Src: /src/cpython/Modules/_hashopenssl.c:1017,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1018,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 1017
        line_start: 1017
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1020
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1020
    functionName: _hashlib_HASH_get_digestsize
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHobject_CAST
    - PyLong_FromLong
    - EVP_MD_CTX_size
    - assert
    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:1025,1
    - Dst: PY_EVP_MD_CTX_md
      Src: /src/cpython/Modules/_hashopenssl.c:1026,1
    - Dst: notify_ssl_error_occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1028,1
    - Dst: get_hashlib_utf8name_by_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:1031,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1032,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1032,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_hashopenssl.c:1033,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: 1031
        line_start: 1031
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1034
      start: 1022
    functionDepth: 6
    functionLinenumber: 1022
    functionLinenumberEnd: 1034
    functionName: _hashlib_HASH_get_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - notify_ssl_error_occurred
    - PyUnicode_FromString
    - get_hashlib_utf8name_by_evp_md
    - PyErr_Occurred
    - assert
    - HASHobject_CAST
    - PY_EVP_MD_CTX_md
    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:1047,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:1051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1044
    functionDepth: 7
    functionLinenumber: 1044
    functionLinenumberEnd: 1055
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_hashopenssl.c:1113,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_hashopenssl.c:1116,1
    - Dst: py_wrapper_EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:1121,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_hashopenssl.c:1123,1
    - Dst: _hashlib_HASH_copy_locked
      Src: /src/cpython/Modules/_hashopenssl.c:1127,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/cpython/Modules/_hashopenssl.c:1130,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_hashopenssl.c:1131,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1134,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1134,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1138,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_hashopenssl.c:1139,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_hashopenssl.c:1142,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - HASHobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1106
    functionDepth: 5
    functionLinenumber: 1106
    functionLinenumberEnd: 1145
    functionName: _hashlib_HASHXOF_digest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - EVP_MD_CTX_free
    - PyBytesWriter_GetData
    - PyBytesWriter_Create
    - py_wrapper_EVP_MD_CTX_new
    - PyBytesWriter_Discard
    - EVP_DigestFinalXOF
    - PyBytesWriter_Finish
    - _hashlib_HASH_copy_locked
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASHXOF_digest_impl(HASHobject *self, Py_ssize_t length)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_hashopenssl.c:1164,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_hashopenssl.c:1167,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_hashopenssl.c:1169,1
    - Dst: py_wrapper_EVP_MD_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:1173,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:1175,1
    - Dst: _hashlib_HASH_copy_locked
      Src: /src/cpython/Modules/_hashopenssl.c:1180,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/cpython/Modules/_hashopenssl.c:1183,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1184,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1184,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1188,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/_hashopenssl.c:1190,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:1191,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_hashopenssl.c:1195,1
    - Dst: EVP_MD_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - HASHobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1155
    functionDepth: 5
    functionLinenumber: 1155
    functionLinenumberEnd: 1198
    functionName: _hashlib_HASHXOF_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - EVP_MD_CTX_free
    - PyErr_NoMemory
    - py_wrapper_EVP_MD_CTX_new
    - EVP_DigestFinalXOF
    - PyMem_Free
    - PyMem_Malloc
    - _hashlib_HASH_copy_locked
    - _Py_strhex
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    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:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1212
    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:1269,1
    - Dst: get_openssl_evp_md_by_utf8name
      Src: /src/cpython/Modules/_hashopenssl.c:1273,1
    - Dst: PY_EVP_MD_xof
      Src: /src/cpython/Modules/_hashopenssl.c:1278,1
    - Dst: new_hash_object
      Src: /src/cpython/Modules/_hashopenssl.c:1279,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/cpython/Modules/_hashopenssl.c:1288,1
    - Dst: EVP_DigestInit_ex
      Src: /src/cpython/Modules/_hashopenssl.c:1292,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1294,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1294,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:1295,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/_hashopenssl.c:1302,1
    - Dst: _hashlib_HASH_hash
      Src: /src/cpython/Modules/_hashopenssl.c:1304,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1307,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1307,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:1308,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:1315,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:1318,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: 1306
        line_start: 1306
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1322
      start: 1259
    functionDepth: 6
    functionLinenumber: 1259
    functionLinenumberEnd: 1322
    functionName: _hashlib_HASH
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PY_EVP_MD_free
    - EVP_DigestInit_ex
    - notify_ssl_error_occurred_in
    - get_openssl_evp_md_by_utf8name
    - EVP_MD_CTX_set_flags
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyBuffer_Release
    - new_hash_object
    - Py_CLEAR
    - _hashlib_HASH_hash
    - assert
    - PyErr_Occurred
    - PY_EVP_MD_xof
    - Py_STRINGIFY
    - GET_BUFFER_VIEW_OR_ERROUT
    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: 1329
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1329
    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:1355,1
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:1358,1
    - Dst: _hashlib_HASH
      Src: /src/cpython/Modules/_hashopenssl.c:1359,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: 1360
      start: 1349
    functionDepth: 7
    functionLinenumber: 1349
    functionLinenumberEnd: 1360
    functionName: _hashlib_HASH_new_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _Py_hashlib_data_argument
    - get_hashlib_state
    - _hashlib_HASH
    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:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1381
    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:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1402
    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:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1423
    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:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1444
    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:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1465
    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:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1486
    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:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1509
    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:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1529
    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:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1543
    functionDepth: 1
    functionLinenumber: 1543
    functionLinenumberEnd: 1549
    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:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1563
    functionDepth: 1
    functionLinenumber: 1563
    functionLinenumberEnd: 1569
    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:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1592
    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:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - usedforsecurity
    - string
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1613
    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:1637,1
    - Dst: get_openssl_evp_md_by_utf8name
      Src: /src/cpython/Modules/_hashopenssl.c:1642,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1649,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1655,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1661,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1666,1
    - Dst: EVP_MD_size
      Src: /src/cpython/Modules/_hashopenssl.c:1672,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_hashopenssl.c:1674,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1675,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1680,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1686,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_hashopenssl.c:1691,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/cpython/Modules/_hashopenssl.c:1697,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_hashopenssl.c:1700,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_hashopenssl.c:1704,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1705,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1705,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_hashopenssl.c:1708,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:1712,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 6
    argNames:
    - module
    - hash_name
    - password
    - salt
    - iterations
    - dklen_obj
    argTypes:
    - PyObject*
    - char*
    - Py_buffer*
    - Py_buffer*
    - long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1631
    functionDepth: 6
    functionLinenumber: 1631
    functionLinenumberEnd: 1715
    functionName: pbkdf2_hmac_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PKCS5_PBKDF2_HMAC
    - PY_EVP_MD_free
    - get_hashlib_state
    - EVP_MD_size
    - get_openssl_evp_md_by_utf8name
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyLong_AsLong
    - PyErr_Occurred
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    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:1761,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1766,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1771,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:1776,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:1783,1
    - Dst: EVP_PBE_scrypt
      Src: /src/cpython/Modules/_hashopenssl.c:1790,1
    - Dst: notify_ssl_error_occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1793,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_hashopenssl.c:1798,1
    - Dst: EVP_PBE_scrypt
      Src: /src/cpython/Modules/_hashopenssl.c:1804,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_hashopenssl.c:1808,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_hashopenssl.c:1813,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1814,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1814,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_hashopenssl.c:1817,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    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: 1818
      start: 1752
    functionDepth: 4
    functionLinenumber: 1752
    functionLinenumberEnd: 1818
    functionName: _hashlib_scrypt_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - notify_ssl_error_occurred
    - EVP_PBE_scrypt
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyErr_Format
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - DIGEST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1840
    functionName: HASHLIB_HMAC_OSSL_PARAMS
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHLIB_HMAC_OSSL_PARAMS(DIGEST)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:1859,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1872,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:1877,1
    - Dst: get_openssl_digest_name
      Src: /src/cpython/Modules/_hashopenssl.c:1883,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1885,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1888,1
    - Dst: PY_EVP_MD_xof
      Src: /src/cpython/Modules/_hashopenssl.c:1889,1
    - Dst: EVP_Q_mac
      Src: /src/cpython/Modules/_hashopenssl.c:1892,1
    - Dst: HASHLIB_HMAC_OSSL_PARAMS
      Src: /src/cpython/Modules/_hashopenssl.c:1894,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1901,1
    - Dst: get_openssl_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:1903,1
    - Dst: PY_EVP_MD_xof
      Src: /src/cpython/Modules/_hashopenssl.c:1907,1
    - Dst: HMAC
      Src: /src/cpython/Modules/_hashopenssl.c:1910,1
    - Dst: raise_unsupported_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:1922,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1926,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1926,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1928,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1928,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:1933,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - module
    - key
    - msg
    - digest
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    - PyObject*
    assertStmts:
    - condition: (md_len < (size_t)PY_SSIZE_T_MAX)
      pos:
        line_end: 1900
        line_start: 1900
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (evp == NULL)
      pos:
        line_end: 1884
        line_start: 1884
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (evp != NULL)
      pos:
        line_end: 1887
        line_start: 1887
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1934
      start: 1854
    functionDepth: 8
    functionLinenumber: 1854
    functionLinenumberEnd: 1934
    functionName: _hashlib_hmac_singleshot_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_Q_mac
    - get_hashlib_state
    - notify_ssl_error_occurred_in
    - HMAC
    - HASHLIB_HMAC_OSSL_PARAMS
    - get_openssl_evp_md
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - get_openssl_digest_name
    - raise_unsupported_algorithm_error
    - assert
    - PY_EVP_MD_xof
    - Py_STRINGIFY
    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:1943,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_hashopenssl.c:1945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1949
    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: assert
      Src: /src/cpython/Modules/_hashopenssl.c:1958,1
    - Dst: HMAC_CTX_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:1959,1
    - Dst: notify_ssl_error_occurred
      Src: /src/cpython/Modules/_hashopenssl.c:1961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts:
    - condition: (self->ctx != NULL)
      pos:
        line_end: 1957
        line_start: 1957
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1964
      start: 1955
    functionDepth: 4
    functionLinenumber: 1955
    functionLinenumberEnd: 1964
    functionName: _hashlib_hmac_get_md
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HMAC_CTX_get_md
    - notify_ssl_error_occurred
    - assert
    linkageType: ''
    returnType: EVP_MD
    signature: 'EVP_MD *

      _hashlib_hmac_get_md(HMACobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_utf8name_by_nid
      Src: /src/cpython/Modules/_hashopenssl.c:1971,1
    - Dst: _hashlib_hmac_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:1973,1
    - Dst: get_hashlib_utf8name_by_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:1974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1967
    functionDepth: 6
    functionLinenumber: 1967
    functionLinenumberEnd: 1976
    functionName: hashlib_HMAC_get_hashlib_digest_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_utf8name_by_evp_md
    - get_hashlib_utf8name_by_nid
    - _hashlib_hmac_get_md
    linkageType: ''
    returnType: char
    signature: 'char *

      hashlib_HMAC_get_hashlib_digest_name(HMACobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PY_HMAC_update
      Src: /src/cpython/Modules/_hashopenssl.c:1981,1
    - Dst: notify_smart_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:1982,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:1982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - v
    argTypes:
    - PY_HMAC_CTX_TYPE*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1978
    functionDepth: 4
    functionLinenumber: 1978
    functionLinenumberEnd: 1986
    functionName: hashlib_openssl_HMAC_update_once
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - notify_smart_ssl_error_occurred_in
    - Py_STRINGIFY
    - PY_HMAC_update
    linkageType: ''
    returnType: int
    signature: int hashlib_openssl_HMAC_update_once(PY_HMAC_CTX_TYPE *ctx, const Py_buffer
      *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PY_HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:1994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - PY_HMAC_CTX_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1989
    functionDepth: 0
    functionLinenumber: 1989
    functionLinenumberEnd: 1996
    functionName: hashlib_openssl_HMAC_CTX_free
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PY_HMAC_CTX_free
    linkageType: ''
    returnType: void
    signature: void hashlib_openssl_HMAC_CTX_free(PY_HMAC_CTX_TYPE *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:2003,1
    - Dst: EVP_MAC_CTX_dup
      Src: /src/cpython/Modules/_hashopenssl.c:2004,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:2005,1
    - Dst: notify_smart_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2007,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2007,1
    - Dst: py_openssl_wrapper_HMAC_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:2012,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:2016,1
    - Dst: HMAC_CTX_copy
      Src: /src/cpython/Modules/_hashopenssl.c:2017,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/_hashopenssl.c:2018,1
    - Dst: notify_smart_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2020,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2020,1
    - Dst: hashlib_openssl_HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2027,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1998
    functionDepth: 4
    functionLinenumber: 1998
    functionLinenumberEnd: 2029
    functionName: hashlib_openssl_HMAC_ctx_copy_with_lock
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - hashlib_openssl_HMAC_CTX_free
    - EVP_MAC_CTX_dup
    - HASHLIB_RELEASE_LOCK
    - py_openssl_wrapper_HMAC_CTX_new
    - HMAC_CTX_copy
    - notify_smart_ssl_error_occurred_in
    - Py_STRINGIFY
    linkageType: ''
    returnType: PY_HMAC_CTX_TYPE
    signature: 'PY_HMAC_CTX_TYPE *

      hashlib_openssl_HMAC_ctx_copy_with_lock(HMACobject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2061,1
    - Dst: get_openssl_digest_name
      Src: /src/cpython/Modules/_hashopenssl.c:2062,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2063,1
    - Dst: EVP_MD_nid
      Src: /src/cpython/Modules/_hashopenssl.c:2068,1
    - Dst: PY_EVP_MD_xof
      Src: /src/cpython/Modules/_hashopenssl.c:2069,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:2070,1
    - Dst: EVP_MAC_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:2077,1
    - Dst: notify_smart_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2080,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2080,1
    - Dst: EVP_MAC_init
      Src: /src/cpython/Modules/_hashopenssl.c:2084,1
    - Dst: HASHLIB_HMAC_OSSL_PARAMS
      Src: /src/cpython/Modules/_hashopenssl.c:2088,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2091,1
    - Dst: get_openssl_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:2092,1
    - Dst: PY_EVP_MD_xof
      Src: /src/cpython/Modules/_hashopenssl.c:2096,1
    - Dst: py_openssl_wrapper_HMAC_CTX_new
      Src: /src/cpython/Modules/_hashopenssl.c:2098,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:2100,1
    - Dst: HMAC_Init_ex
      Src: /src/cpython/Modules/_hashopenssl.c:2104,1
    - Dst: PY_EVP_MD_free
      Src: /src/cpython/Modules/_hashopenssl.c:2105,1
    - Dst: hashlib_openssl_HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2108,1
    - Dst: raise_unsupported_algorithm_error
      Src: /src/cpython/Modules/_hashopenssl.c:2111,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2115,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2115,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2117,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2117,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - state
    - key
    - digestmod
    - nid
    argTypes:
    - _hashlibstate*
    - Py_buffer*
    - PyObject*
    - int*
    assertStmts:
    - condition: (nid != NULL)
      pos:
        line_end: 2060
        line_start: 2060
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (nid == NULL)
      pos:
        line_end: 2090
        line_start: 2090
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: ((digest == NULL && md == NULL) || (digest != NULL && md != NULL))
      pos:
        line_end: 2062
        line_start: 2062
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2123
      start: 2031
    functionDepth: 8
    functionLinenumber: 2031
    functionLinenumberEnd: 2123
    functionName: hashlib_HMAC_CTX_new_from_digestmod
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PY_EVP_MD_free
    - notify_ssl_error_occurred_in
    - HASHLIB_HMAC_OSSL_PARAMS
    - get_openssl_evp_md
    - EVP_MAC_CTX_new
    - hashlib_openssl_HMAC_CTX_free
    - get_openssl_digest_name
    - py_openssl_wrapper_HMAC_CTX_new
    - raise_unsupported_algorithm_error
    - assert
    - PY_EVP_MD_xof
    - notify_smart_ssl_error_occurred_in
    - Py_STRINGIFY
    - HMAC_Init_ex
    - EVP_MD_nid
    - EVP_MAC_init
    linkageType: ''
    returnType: PY_HMAC_CTX_TYPE
    signature: "PY_HMAC_CTX_TYPE *\nhashlib_HMAC_CTX_new_from_digestmod(_hashlibstate
      *state,\n                                    Py_buffer *key, PyObject *digestmod,\n
      \                                   int *nid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2148,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2154,1
    - Dst: hashlib_HMAC_CTX_new_from_digestmod
      Src: /src/cpython/Modules/_hashopenssl.c:2160,1
    - Dst: hashlib_HMAC_CTX_new_from_digestmod
      Src: /src/cpython/Modules/_hashopenssl.c:2162,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2166,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_hashopenssl.c:2170,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2178,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/_hashopenssl.c:2181,1
    - Dst: _hmac_update
      Src: /src/cpython/Modules/_hashopenssl.c:2185,1
    - Dst: hashlib_openssl_HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2192,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - module
    - key
    - msg_obj
    - digestmod
    argTypes:
    - PyObject*
    - Py_buffer*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2165
        line_start: 2165
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (nid != NID_undef)
      pos:
        line_end: 2177
        line_start: 2177
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2195
      start: 2135
    functionDepth: 9
    functionLinenumber: 2135
    functionLinenumberEnd: 2195
    functionName: _hashlib_hmac_new_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_state
    - hashlib_openssl_HMAC_CTX_free
    - hashlib_HMAC_CTX_new_from_digestmod
    - PyErr_SetString
    - HASHLIB_INIT_MUTEX
    - _hmac_update
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_hmac_new_impl(PyObject *module, Py_buffer *key,
      PyObject *msg_obj,\n                       PyObject *digestmod)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2208,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2210,1
    - Dst: EVP_MAC_CTX_get_mac_size
      Src: /src/cpython/Modules/_hashopenssl.c:2211,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2212,1
    - Dst: _hashlib_hmac_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:2214,1
    - Dst: EVP_MD_size
      Src: /src/cpython/Modules/_hashopenssl.c:2218,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2220,1
    - Dst: raise_ssl_error
      Src: /src/cpython/Modules/_hashopenssl.c:2222,1
    - Dst: raise_ssl_error
      Src: /src/cpython/Modules/_hashopenssl.c:2228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts:
    - condition: (EVP_MAX_MD_SIZE < INT_MAX)
      pos:
        line_end: 2207
        line_start: 2207
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (self->ctx != NULL)
      pos:
        line_end: 2209
        line_start: 2209
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (digest_size <= (size_t)EVP_MAX_MD_SIZE)
      pos:
        line_end: 2211
        line_start: 2211
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (digest_size <= (int)EVP_MAX_MD_SIZE)
      pos:
        line_end: 2219
        line_start: 2219
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2232
      start: 2205
    functionDepth: 5
    functionLinenumber: 2205
    functionLinenumberEnd: 2232
    functionName: _hashlib_hmac_digest_size
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - raise_ssl_error
    - EVP_MD_size
    - assert
    - _hashlib_hmac_get_md
    - EVP_MAC_CTX_get_mac_size
    linkageType: ''
    returnType: int
    signature: int _hashlib_hmac_digest_size(HMACobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/cpython/Modules/_hashopenssl.c:2239,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/_hashopenssl.c:2240,1
    - Dst: hashlib_openssl_HMAC_update_once
      Src: /src/cpython/Modules/_hashopenssl.c:2242,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - HMACobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2234
    functionDepth: 5
    functionLinenumber: 2234
    functionLinenumberEnd: 2246
    functionName: _hmac_update
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 1
    functionsReached:
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROR
    - hashlib_openssl_HMAC_update_once
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int _hmac_update(HMACobject *self, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashlib_openssl_HMAC_ctx_copy_with_lock
      Src: /src/cpython/Modules/_hashopenssl.c:2259,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_hashopenssl.c:2263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:2263,1
    - Dst: PY_HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2265,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/_hashopenssl.c:2272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2254
    functionDepth: 5
    functionLinenumber: 2254
    functionLinenumberEnd: 2274
    functionName: _hashlib_HMAC_copy_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HASHLIB_INIT_MUTEX
    - hashlib_openssl_HMAC_ctx_copy_with_lock
    - PY_HMAC_CTX_free
    - PyObject_New
    - 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:2279,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:2280,1
    - Dst: PY_HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2282,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_hashopenssl.c:2285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2276
    functionDepth: 1
    functionLinenumber: 2276
    functionLinenumberEnd: 2287
    functionName: _hmac_dealloc
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HMACobject_CAST
    - PY_HMAC_CTX_free
    - Py_DECREF
    - PyObject_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:2292,1
    - Dst: hashlib_HMAC_get_hashlib_digest_name
      Src: /src/cpython/Modules/_hashopenssl.c:2293,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2295,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2295,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2294
        line_start: 2294
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2299
      start: 2289
    functionDepth: 7
    functionLinenumber: 2289
    functionLinenumberEnd: 2299
    functionName: _hmac_repr
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - hashlib_HMAC_get_hashlib_digest_name
    - HMACobject_CAST
    - PyUnicode_FromFormat
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hmac_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _hmac_update
      Src: /src/cpython/Modules/_hashopenssl.c:2312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - msg
    argTypes:
    - HMACobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2308
    functionDepth: 6
    functionLinenumber: 2308
    functionLinenumberEnd: 2316
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _hashlib_hmac_digest_size
      Src: /src/cpython/Modules/_hashopenssl.c:2329,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2330,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2332,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2332,1
    - Dst: hashlib_openssl_HMAC_ctx_copy_with_lock
      Src: /src/cpython/Modules/_hashopenssl.c:2335,1
    - Dst: EVP_MAC_final
      Src: /src/cpython/Modules/_hashopenssl.c:2340,1
    - Dst: HMAC_Final
      Src: /src/cpython/Modules/_hashopenssl.c:2342,1
    - Dst: PY_HMAC_CTX_free
      Src: /src/cpython/Modules/_hashopenssl.c:2344,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2347,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2347,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2349,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - buf
    argTypes:
    - HMACobject*
    - unsigned char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2331
        line_start: 2331
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (digest_size <= EVP_MAX_MD_SIZE)
      pos:
        line_end: 2329
        line_start: 2329
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2354
      start: 2326
    functionDepth: 6
    functionLinenumber: 2326
    functionLinenumberEnd: 2354
    functionName: _hmac_digest
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - HMAC_Final
    - _hashlib_hmac_digest_size
    - hashlib_openssl_HMAC_ctx_copy_with_lock
    - PyErr_Occurred
    - assert
    - PY_HMAC_CTX_free
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    - EVP_MAC_final
    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:2366,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_hashopenssl.c:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2361
    functionDepth: 7
    functionLinenumber: 2361
    functionLinenumberEnd: 2368
    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:2385,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/_hashopenssl.c:2386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - HMACobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2380
    functionDepth: 7
    functionLinenumber: 2380
    functionLinenumberEnd: 2387
    functionName: _hashlib_HMAC_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _hmac_digest
    - _Py_strhex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HMAC_hexdigest_impl(HMACobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMACobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:2392,1
    - Dst: _hashlib_hmac_digest_size
      Src: /src/cpython/Modules/_hashopenssl.c:2393,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:2394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2389
    functionDepth: 6
    functionLinenumber: 2389
    functionLinenumberEnd: 2395
    functionName: _hashlib_hmac_get_digest_size
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - HMACobject_CAST
    - _hashlib_hmac_digest_size
    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:2400,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2402,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_hashopenssl.c:2403,1
    - Dst: EVP_MAC_CTX_get_block_size
      Src: /src/cpython/Modules/_hashopenssl.c:2403,1
    - Dst: _hashlib_hmac_get_md
      Src: /src/cpython/Modules/_hashopenssl.c:2405,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:2406,1
    - Dst: EVP_MD_block_size
      Src: /src/cpython/Modules/_hashopenssl.c:2406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (self->ctx != NULL)
      pos:
        line_end: 2401
        line_start: 2401
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2408
      start: 2397
    functionDepth: 5
    functionLinenumber: 2397
    functionLinenumberEnd: 2408
    functionName: _hashlib_hmac_get_block_size
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - PyLong_FromLong
    - HMACobject_CAST
    - assert
    - _hashlib_hmac_get_md
    - EVP_MD_block_size
    - EVP_MAC_CTX_get_block_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_hmac_get_block_size(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMACobject_CAST
      Src: /src/cpython/Modules/_hashopenssl.c:2413,1
    - Dst: hashlib_HMAC_get_hashlib_digest_name
      Src: /src/cpython/Modules/_hashopenssl.c:2414,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2416,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2416,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_hashopenssl.c:2419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2415
        line_start: 2415
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2420
      start: 2410
    functionDepth: 7
    functionLinenumber: 2410
    functionLinenumberEnd: 2420
    functionName: _hashlib_hmac_get_name
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - hashlib_HMAC_get_hashlib_digest_name
    - HMACobject_CAST
    - PyUnicode_FromFormat
    - PyErr_Occurred
    - 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:2489,1
    - Dst: EVP_MD_nid
      Src: /src/cpython/Modules/_hashopenssl.c:2491,1
    - Dst: get_hashlib_utf8name_by_evp_md
      Src: /src/cpython/Modules/_hashopenssl.c:2495,1
    - Dst: assert
      Src: /src/cpython/Modules/_hashopenssl.c:2496,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_hashopenssl.c:2496,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_hashopenssl.c:2497,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_hashopenssl.c:2501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2504,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: 2488
        line_start: 2488
        source_file: /src/cpython/Modules/_hashopenssl.c
    - condition: (name != NULL || PyErr_Occurred())
      pos:
        line_end: 2495
        line_start: 2495
        source_file: /src/cpython/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 2506
      start: 2482
    functionDepth: 6
    functionLinenumber: 2482
    functionLinenumberEnd: 2506
    functionName: _openssl_hash_name_mapper
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PySet_Add
    - get_hashlib_utf8name_by_evp_md
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - EVP_MD_nid
    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:2514,1
    - Dst: EVP_MD_do_all_provided
      Src: /src/cpython/Modules/_hashopenssl.c:2523,1
    - Dst: EVP_MD_do_all
      Src: /src/cpython/Modules/_hashopenssl.c:2525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2529,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_hashopenssl.c:2533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2510
    functionDepth: 1
    functionLinenumber: 2510
    functionLinenumberEnd: 2534
    functionName: hashlib_md_meth_names
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_do_all_provided
    - EVP_MD_do_all
    - PyModule_Add
    - Py_DECREF
    - PyFrozenSet_New
    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:2555,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:2557,1
    - Dst: FIPS_mode
      Src: /src/cpython/Modules/_hashopenssl.c:2558,1
    - Dst: ERR_peek_last_error
      Src: /src/cpython/Modules/_hashopenssl.c:2559,1
    - Dst: notify_ssl_error_occurred_in
      Src: /src/cpython/Modules/_hashopenssl.c:2564,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_hashopenssl.c:2564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2549
    functionDepth: 4
    functionLinenumber: 2549
    functionLinenumberEnd: 2569
    functionName: _hashlib_get_fips_mode_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - FIPS_mode
    - EVP_default_properties_is_fips_enabled
    - ERR_peek_last_error
    - notify_ssl_error_occurred_in
    - Py_STRINGIFY
    - ERR_clear_error
    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:2589,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: 2592
      start: 2572
    functionDepth: 0
    functionLinenumber: 2572
    functionLinenumberEnd: 2592
    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:2623,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_hashopenssl.c:2623,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_hashopenssl.c:2624,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_hashopenssl.c:2624,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2625,1
    - Dst: _tscmp
      Src: /src/cpython/Modules/_hashopenssl.c:2631,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_hashopenssl.c:2631,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_hashopenssl.c:2632,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_hashopenssl.c:2633,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_hashopenssl.c:2634,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:2641,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:2641,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_hashopenssl.c:2642,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:2645,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_hashopenssl.c:2645,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:2649,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2653,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2655,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_hashopenssl.c:2659,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2660,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2664,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2666,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2667,1
    - Dst: _tscmp
      Src: /src/cpython/Modules/_hashopenssl.c:2671,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2676,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_hashopenssl.c:2677,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_hashopenssl.c:2680,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2616
    functionDepth: 1
    functionLinenumber: 2616
    functionLinenumberEnd: 2681
    functionName: _hashlib_compare_digest_impl
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - PyErr_SetString
    - PyUnicode_Check
    - PyBuffer_Release
    - PyBool_FromLong
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - _tscmp
    - PyObject_GetBuffer
    - PyObject_CheckBuffer
    - Py_TYPE
    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:2714,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2715,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2716,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2718,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2720,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_hashopenssl.c:2721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2711
    functionDepth: 2
    functionLinenumber: 2711
    functionLinenumberEnd: 2723
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2728,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2729,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2730,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2732,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2734,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_hashopenssl.c:2735,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_hashopenssl.c:2738,1
    - Dst: EVP_MAC_free
      Src: /src/cpython/Modules/_hashopenssl.c:2743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2725
    functionDepth: 2
    functionLinenumber: 2725
    functionLinenumberEnd: 2749
    functionName: hashlib_clear
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_free
    - Py_CLEAR
    - get_hashlib_state
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: int
    signature: int hashlib_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashlib_clear
      Src: /src/cpython/Modules/_hashopenssl.c:2754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2751
    functionDepth: 3
    functionLinenumber: 2751
    functionLinenumberEnd: 2755
    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:2761,1
    - Dst: py_hashentry_table_new
      Src: /src/cpython/Modules/_hashopenssl.c:2763,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_hashopenssl.c:2765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2758
    functionDepth: 2
    functionLinenumber: 2758
    functionLinenumberEnd: 2769
    functionName: hashlib_init_hashtable
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_state
    - py_hashentry_table_new
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int hashlib_init_hashtable(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2774,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_hashopenssl.c:2776,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_hashopenssl.c:2780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2771
    functionDepth: 2
    functionLinenumber: 2771
    functionLinenumberEnd: 2784
    functionName: hashlib_init_HASH_type
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_state
    - PyType_FromSpec
    - PyModule_AddType
    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:2790,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_hashopenssl.c:2796,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_hashopenssl.c:2802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2786
    functionDepth: 2
    functionLinenumber: 2786
    functionLinenumberEnd: 2807
    functionName: hashlib_init_HASHXOF_type
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_state
    - PyType_FromSpecWithBases
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int hashlib_init_HASHXOF_type(PyObject *module)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2812,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_hashopenssl.c:2814,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_hashopenssl.c:2818,1
    - Dst: EVP_MAC_fetch
      Src: /src/cpython/Modules/_hashopenssl.c:2822,1
    - Dst: ERR_clear_error
      Src: /src/cpython/Modules/_hashopenssl.c:2824,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_hashopenssl.c:2825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2809
    functionDepth: 2
    functionLinenumber: 2809
    functionLinenumberEnd: 2831
    functionName: hashlib_init_hmactype
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_state
    - PyErr_SetString
    - EVP_MAC_fetch
    - ERR_clear_error
    - PyType_FromSpec
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int hashlib_init_hmactype(PyObject *module)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2842,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_hashopenssl.c:2844,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_hashopenssl.c:2849,1
    - Dst: strncmp
      Src: /src/cpython/Modules/_hashopenssl.c:2855,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_hashopenssl.c:2858,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_hashopenssl.c:2862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2864,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_hashopenssl.c:2867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2868,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_hashopenssl.c:2869,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_hashopenssl.c:2875,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Modules/_hashopenssl.c:2876,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2833
    functionDepth: 2
    functionLinenumber: 2833
    functionLinenumberEnd: 2877
    functionName: hashlib_init_constructors
    functionSourceFile: /src/cpython/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - get_hashlib_state
    - PyUnicode_FromString
    - strncmp
    - PyDict_SetItem
    - PyModule_GetDef
    - PyObject_GetAttrString
    - PyModule_Add
    - Py_DECREF
    - PyDictProxy_New
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int hashlib_init_constructors(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hashlib_state
      Src: /src/cpython/Modules/_hashopenssl.c:2882,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_hashopenssl.c:2883,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_hashopenssl.c:2888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2879
    functionDepth: 2
    functionLinenumber: 2879
    functionLinenumberEnd: 2893
    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:2898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2895
    functionDepth: 1
    functionLinenumber: 2895
    functionLinenumberEnd: 2904
    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:2936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2933
    functionDepth: 1
    functionLinenumber: 2933
    functionLinenumberEnd: 2937
    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:
    - fabs
    - PyErr_SetString
    - log
    - sqrt
    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_VISIT
    - XxoObject_CAST
    - Py_TYPE
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    - PyUnicode_Check
    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:
    - PyObject_GenericGetAttr
    - XxoObject_CAST
    - PyErr_Occurred
    - Py_NewRef
    - PyDict_GetItemWithError
    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
    - XxoObject_CAST
    - PyDict_SetItemString
    - PyErr_ExceptionMatches
    - PyDict_DelItemString
    - PyDict_New
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:
    - PyArg_ParseTuple
    - newXxoObject
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyErr_NewException
    - Py_INCREF
    - PyModule_AddObject
    - Py_DECREF
    - PyType_FromSpec
    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:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: ssizeargfunc
    signature: ssizeargfunc get_sq_item(PyObject *s)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_bisectmodule.c:61,1
    - Dst: get_sq_item
      Src: /src/cpython/Modules/_bisectmodule.c:65,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:69,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:72,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:79,1
    - Dst: sq_item
      Src: /src/cpython/Modules/_bisectmodule.c:81,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:82,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_bisectmodule.c:82,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_bisectmodule.c:87,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_bisectmodule.c:91,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:98,1
    - Dst: compare
      Src: /src/cpython/Modules/_bisectmodule.c:100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:117,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_bisectmodule.c:119,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_bisectmodule.c:122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:123,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_bisectmodule.c:128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:133,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:139,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:142,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_bisectmodule.c:143,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    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: 78
        line_start: 78
        source_file: /src/cpython/Modules/_bisectmodule.c
    - condition: ((PyErr_Occurred() == NULL) ^ (litem == NULL))
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/cpython/Modules/_bisectmodule.c
    constantsTouched: []
    func_position:
      end: 145
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 145
    functionName: internal_bisect_right
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - sq_item
    - PyObject_RichCompareBool
    - Py_IS_TYPE
    - Py_SETREF
    - PyObject_IsTrue
    - get_sq_item
    - compare
    - PySequence_Size
    - assert
    - Py_EnterRecursiveCall
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - Py_LeaveRecursiveCall
    - Py_TYPE
    - PyObject_CallOneArg
    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:174,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: 175
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 175
    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:206,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_bisectmodule.c:208,1
    - Dst: internal_bisect_right
      Src: /src/cpython/Modules/_bisectmodule.c:212,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:213,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_bisectmodule.c:217,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_bisectmodule.c:218,1
    - Dst: get_bisect_state
      Src: /src/cpython/Modules/_bisectmodule.c:222,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_bisectmodule.c:223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:226,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: 230
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 230
    functionName: _bisect_insort_right_impl
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - internal_bisect_right
    - get_bisect_state
    - PyList_Insert
    - _PyObject_CallMethod
    - Py_DECREF
    - PyList_CheckExact
    - PyObject_CallOneArg
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_bisectmodule.c:241,1
    - Dst: get_sq_item
      Src: /src/cpython/Modules/_bisectmodule.c:245,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:249,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:252,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:259,1
    - Dst: sq_item
      Src: /src/cpython/Modules/_bisectmodule.c:261,1
    - Dst: assert
      Src: /src/cpython/Modules/_bisectmodule.c:262,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_bisectmodule.c:262,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_bisectmodule.c:267,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_bisectmodule.c:271,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_bisectmodule.c:278,1
    - Dst: compare
      Src: /src/cpython/Modules/_bisectmodule.c:280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:297,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_bisectmodule.c:299,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_bisectmodule.c:302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:303,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_bisectmodule.c:308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:313,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:319,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_bisectmodule.c:322,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_bisectmodule.c:323,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    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: 258
        line_start: 258
        source_file: /src/cpython/Modules/_bisectmodule.c
    - condition: ((PyErr_Occurred() == NULL) ^ (litem == NULL))
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/cpython/Modules/_bisectmodule.c
    constantsTouched: []
    func_position:
      end: 325
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 325
    functionName: internal_bisect_left
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - sq_item
    - PyObject_RichCompareBool
    - Py_IS_TYPE
    - Py_SETREF
    - PyObject_IsTrue
    - get_sq_item
    - compare
    - PySequence_Size
    - assert
    - Py_EnterRecursiveCall
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - Py_LeaveRecursiveCall
    - Py_TYPE
    - PyObject_CallOneArg
    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:355,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: 356
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 356
    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:388,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_bisectmodule.c:390,1
    - Dst: internal_bisect_left
      Src: /src/cpython/Modules/_bisectmodule.c:394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:395,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_bisectmodule.c:399,1
    - Dst: PyList_Insert
      Src: /src/cpython/Modules/_bisectmodule.c:400,1
    - Dst: get_bisect_state
      Src: /src/cpython/Modules/_bisectmodule.c:403,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_bisectmodule.c:404,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_bisectmodule.c:407,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: 411
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 411
    functionName: _bisect_insort_left_impl
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - get_bisect_state
    - PyList_Insert
    - _PyObject_CallMethod
    - Py_DECREF
    - internal_bisect_left
    - PyList_CheckExact
    - PyObject_CallOneArg
    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:432,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_bisectmodule.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: bisect_clear
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_bisect_state
    linkageType: ''
    returnType: int
    signature: int bisect_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bisect_clear
      Src: /src/cpython/Modules/_bisectmodule.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 441
    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:446,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_bisectmodule.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 452
    functionName: bisect_modexec
    functionSourceFile: /src/cpython/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    - get_bisect_state
    linkageType: ''
    returnType: int
    signature: int bisect_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_bisectmodule.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 477
    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: PyLong_AsInt64
      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:
    - _PyTime_FromSecondsObject
    - PyLong_AsInt64
    - Py_DECREF
    - _PyObject_CallNoArgs
    - PyErr_FormatUnraisable
    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:
    - PyTime_PerfCounterRaw
    - CallExternalTimer
    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:
    - PyModule_GetNameObject
    - PyUnicode_FromString
    - _PyType_LookupRef
    - PyUnicode_Check
    - PyModule_Check
    - _PyUnicode_EqualToASCIIString
    - PyUnicode_FromFormat
    - PyObject_Repr
    - PyErr_Clear
    - PyCFunction_Check
    - Py_DECREF
    - Py_NewRef
    - Py_TYPE
    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:
    - RotatingTree_Add
    - PyErr_Clear
    - PyMem_Free
    - PyMem_Malloc
    - normalizeUserObj
    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:
    - Py_DECREF
    - RotatingTree_Enum
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int freeEntry(rotating_node_t *header, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Enum
      Src: /src/cpython/Modules/_lsprof.c:292,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:298,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 306
    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:319,1
    - Dst: newSubEntry
      Src: /src/cpython/Modules/_lsprof.c:321,1
    - Dst: call_timer
      Src: /src/cpython/Modules/_lsprof.c:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - pObj
    - self
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerContext*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 326
    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:331,1
    - Dst: getSubEntry
      Src: /src/cpython/Modules/_lsprof.c:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - pObj
    - self
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerContext*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 355
    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:372,1
    - Dst: getEntry
      Src: /src/cpython/Modules/_lsprof.c:374,1
    - Dst: newProfilerEntry
      Src: /src/cpython/Modules/_lsprof.c:376,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_lsprof.c:388,1
    - Dst: initContext
      Src: /src/cpython/Modules/_lsprof.c:394,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_lsprof.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - key
    - userObj
    argTypes:
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 398
    functionName: ptrace_enter_call
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - initContext
    - PyErr_SetRaisedException
    - PyMem_Malloc
    - PyErr_GetRaisedException
    - getEntry
    - newProfilerEntry
    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:411,1
    - Dst: Stop
      Src: /src/cpython/Modules/_lsprof.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 400
    functionDepth: 4
    functionLinenumber: 400
    functionLinenumberEnd: 421
    functionName: ptrace_leave_call
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - getEntry
    - Stop
    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:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 433
    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:484,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_lsprof.c:493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - node
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 496
    functionName: statsForSubEntry
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_Append
    - PyObject_CallFunction
    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:508,1
    - Dst: RotatingTree_Enum
      Src: /src/cpython/Modules/_lsprof.c:511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:513,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_lsprof.c:518,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_lsprof.c:521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:529,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_lsprof.c:532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - node
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 535
    functionName: statsForEntry
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - RotatingTree_Enum
    - Py_NewRef
    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:573,1
    - Dst: pending_exception
      Src: /src/cpython/Modules/_lsprof.c:574,1
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/_lsprof.c:578,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_lsprof.c:585,1
    - Dst: RotatingTree_Enum
      Src: /src/cpython/Modules/_lsprof.c:588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:590,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ProfilerObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 594
    functionName: _lsprof_Profiler_getstats_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - pending_exception
    - PyList_New
    - Py_DECREF
    - RotatingTree_Enum
    - _PyType_GetModuleState
    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: 604
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 604
    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: 615
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 615
    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:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - code
    - instruction_offset
    argTypes:
    - ProfilerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 627
    functionDepth: 5
    functionLinenumber: 627
    functionLinenumberEnd: 635
    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:654,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: 657
      start: 648
    functionDepth: 5
    functionLinenumber: 648
    functionLinenumberEnd: 657
    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:677,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: 680
      start: 670
    functionDepth: 5
    functionLinenumber: 670
    functionLinenumberEnd: 680
    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:685,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_lsprof.c:686,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:689,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:697,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:698,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_lsprof.c:700,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Modules/_lsprof.c:703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - callable
    - self_arg
    - missing
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 709
    functionName: get_cfunc_from_callable
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_Clear
    - PyCFunction_Check
    - Py_DECREF
    - 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:730,1
    - Dst: ptrace_enter_call
      Src: /src/cpython/Modules/_lsprof.c:733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:736,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: 740
      start: 723
    functionDepth: 5
    functionLinenumber: 723
    functionLinenumberEnd: 740
    functionName: _lsprof_Profiler__ccall_callback_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - get_cfunc_from_callable
    - Py_DECREF
    - ptrace_enter_call
    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:762,1
    - Dst: ptrace_leave_call
      Src: /src/cpython/Modules/_lsprof.c:765,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:767,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: 771
      start: 754
    functionDepth: 5
    functionLinenumber: 754
    functionLinenumberEnd: 771
    functionName: _lsprof_Profiler__creturn_callback_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - get_cfunc_from_callable
    - ptrace_leave_call
    - Py_DECREF
    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:811,1
    - Dst: setBuiltins
      Src: /src/cpython/Modules/_lsprof.c:811,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:815,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:820,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_lsprof.c:824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:827,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:831,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:842,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:859,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - self
    - subcalls
    - builtins
    argTypes:
    - ProfilerObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 861
    functionName: _lsprof_Profiler_enable_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - setBuiltins
    - setSubcalls
    - PyErr_Format
    - PyObject_GetAttrString
    - Py_DECREF
    - PyObject_CallMethod
    - PySys_GetAttrString
    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:870,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_lsprof.c:874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 863
    functionDepth: 4
    functionLinenumber: 863
    functionLinenumberEnd: 877
    functionName: flush_unmatched
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Stop
    linkageType: ''
    returnType: void
    signature: void flush_unmatched(ProfilerObject *pObj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lsprof.c:892,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:898,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:911,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:919,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_lsprof.c:921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:928,1
    - Dst: flush_unmatched
      Src: /src/cpython/Modules/_lsprof.c:931,1
    - Dst: pending_exception
      Src: /src/cpython/Modules/_lsprof.c:934,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 887
    functionDepth: 5
    functionLinenumber: 887
    functionLinenumberEnd: 938
    functionName: _lsprof_Profiler_disable_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - flush_unmatched
    - PyErr_SetString
    - pending_exception
    - Py_DECREF
    - PyObject_CallMethod
    - PySys_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_disable_impl(ProfilerObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_lsprof.c:952,1
    - Dst: clearEntries
      Src: /src/cpython/Modules/_lsprof.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 958
    functionName: _lsprof_Profiler_clear_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - clearEntries
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_clear_impl(ProfilerObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ProfilerObject_CAST
      Src: /src/cpython/Modules/_lsprof.c:963,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:964,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:964,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:965,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 969
    functionName: profiler_traverse
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ProfilerObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:974,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_lsprof.c:975,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_lsprof.c:977,1
    - Dst: _PyEval_SetProfile
      Src: /src/cpython/Modules/_lsprof.c:978,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_lsprof.c:979,1
    - Dst: flush_unmatched
      Src: /src/cpython/Modules/_lsprof.c:984,1
    - Dst: clearEntries
      Src: /src/cpython/Modules/_lsprof.c:985,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_lsprof.c:986,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_lsprof.c:987,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_lsprof.c:988,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_lsprof.c:989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 971
    functionDepth: 5
    functionLinenumber: 971
    functionLinenumberEnd: 991
    functionName: profiler_dealloc
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ProfilerObject_CAST
    - Py_DECREF
    - _PyThreadState_GET
    - clearEntries
    - PyTypeObject*::tp_free
    - _PyEval_SetProfile
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - flush_unmatched
    - PyErr_FormatUnraisable
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void profiler_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setSubcalls
      Src: /src/cpython/Modules/_lsprof.c:1014,1
    - Dst: setBuiltins
      Src: /src/cpython/Modules/_lsprof.c:1014,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_lsprof.c:1018,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_lsprof.c:1018,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:1021,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_lsprof.c:1025,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_lsprof.c:1025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:1027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_lsprof.c:1030,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: 1032
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1032
    functionName: profiler_init_impl
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - setBuiltins
    - setSubcalls
    - Py_XSETREF
    - PyObject_GetAttrString
    - Py_DECREF
    - PySys_GetAttrString
    - Py_XNewRef
    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:1071,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:1072,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:1073,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_lsprof.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1068
    functionDepth: 2
    functionLinenumber: 1068
    functionLinenumberEnd: 1076
    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:1081,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lsprof.c:1082,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lsprof.c:1083,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_lsprof.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1086
    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:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1092
    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:1097,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_lsprof.c:1099,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lsprof.c:1105,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_lsprof.c:1109,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lsprof.c:1113,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_lsprof.c:1117,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_lsprof.c:1121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1126
    functionName: _lsprof_exec
    functionSourceFile: /src/cpython/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyType_FromModuleAndSpec
    - PyModule_GetState
    - PyModule_AddType
    - PyStructSequence_NewType
    linkageType: ''
    returnType: int
    signature: int _lsprof_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_lsprof.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1152
    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:
    - PyObject_Free
    - XxoObject_CAST
    - Py_XDECREF
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyObject_GenericGetAttr
    - XxoObject_CAST
    - PyErr_Occurred
    - Py_NewRef
    - PyDict_GetItemWithError
    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
    - XxoObject_CAST
    - PyDict_SetItemString
    - PyErr_ExceptionMatches
    - PyDict_DelItemString
    - PyDict_New
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:
    - PyArg_ParseTuple
    - newXxoObject
    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_SetItem
    - PyList_GetItem
    - PyLong_FromLong
    - PyArg_ParseTuple
    - printf
    - Py_NewRef
    - PyObject_Print
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyErr_NewException
    - Py_DECREF
    - PyType_Ready
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int xx_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/xxmodule.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    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:25,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_suggestions.c:26,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_suggestions.c:31,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_suggestions.c:33,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_suggestions.c:34,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_suggestions.c:35,1
    - Dst: _Py_CalculateSuggestions
      Src: /src/cpython/Modules/_suggestions.c:40,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_suggestions.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - candidates
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 45
    functionName: _suggestions__generate_suggestions_impl
    functionSourceFile: /src/cpython/Modules/_suggestions.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _Py_CalculateSuggestions
    - PyList_GET_ITEM
    - PyUnicode_Check
    - PyErr_Occurred
    - PyList_Size
    - PyList_CheckExact
    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:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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:
    - KEY_LOWER_THAN
    - randombits
    linkageType: ''
    returnType: rotating_node_t
    signature: 'rotating_node_t *

      RotatingTree_Get(rotating_node_t **root, void *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Enum
      Src: /src/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:
    - getservbyport
    - inet_ntop
    - strcpy
    - freehostent
    - IN_MULTICAST
    - strchr
    - IN_EXPERIMENTAL
    - gethostbyaddr
    - getipnodebyaddr
    - strlen
    - ntohs
    - sprintf
    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:
    - PyBool_Check
    - Py_INCREF
    - PyErr_WarnEx
    - PyLong_AsInt
    - PyErr_SetString
    - PySys_GetAttr
    - PyLong_Check
    - _PyFile_Flush
    - PyLong_AsLong
    - PyErr_Clear
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:206,1
    - Dst: PyUnstable_DumpTracebackThreads
      Src: /src/cpython/Modules/faulthandler.c:209,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:213,1
    - Dst: PyUnstable_DumpTraceback
      Src: /src/cpython/Modules/faulthandler.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - fd
    - all_threads
    - interp
    - max_threads
    argTypes:
    - int
    - int
    - PyInterpreterState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 221
    functionName: faulthandler_dump_traceback
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyGILState_GetThisThreadState
    - PyUnstable_DumpTraceback
    - PUTS
    - PyUnstable_DumpTracebackThreads
    linkageType: ''
    returnType: void
    signature: "void faulthandler_dump_traceback(int fd, int all_threads,\n                            PyInterpreterState
      *interp,\n                            Py_ssize_t max_threads)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:235,1
    - Dst: _Py_DumpStack
      Src: /src/cpython/Modules/faulthandler.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 240
    functionName: faulthandler_dump_c_stack
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _Py_DumpStack
    - PUTS
    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:266,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/faulthandler.c:270,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:272,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/faulthandler.c:277,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/faulthandler.c:280,1
    - Dst: PyUnstable_DumpTracebackThreads
      Src: /src/cpython/Modules/faulthandler.c:281,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/faulthandler.c:282,1
    - Dst: PyUnstable_DumpTraceback
      Src: /src/cpython/Modules/faulthandler.c:285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:288,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:289,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:293,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/faulthandler.c:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - module
    - file
    - all_threads
    - max_threads
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 299
    functionName: faulthandler_dump_traceback_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - PyErr_CheckSignals
    - faulthandler_get_fileno
    - PyErr_SetString
    - PyUnstable_DumpTracebackThreads
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - PyUnstable_DumpTraceback
    - Py_XDECREF
    - get_thread_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_dump_traceback_py_impl(PyObject *module,
      PyObject *file,\n                                    int all_threads, Py_ssize_t
      max_threads)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:314,1
    - Dst: _Py_DumpStack
      Src: /src/cpython/Modules/faulthandler.c:319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:320,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/faulthandler.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 327
    functionName: faulthandler_dump_c_stack_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - _Py_DumpStack
    - faulthandler_get_fileno
    - Py_XDECREF
    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:336,1
    - Dst: signal
      Src: /src/cpython/Modules/faulthandler.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handler
    argTypes:
    - fault_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 340
    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:352,1
    - Dst: _PyEval_IsGILEnabled
      Src: /src/cpython/Modules/faulthandler.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 362
    functionName: deduce_all_threads
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyGILState_GetThisThreadState
    - _PyEval_IsGILEnabled
    linkageType: ''
    returnType: int
    signature: int deduce_all_threads(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/cpython/Modules/faulthandler.c:402,1
    - Dst: PUTS
      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: snprintf
      Src: /src/cpython/Modules/faulthandler.c:411,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:412,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:413,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:414,1
    - Dst: faulthandler_dump_traceback
      Src: /src/cpython/Modules/faulthandler.c:417,1
    - Dst: deduce_all_threads
      Src: /src/cpython/Modules/faulthandler.c:417,1
    - Dst: faulthandler_dump_c_stack
      Src: /src/cpython/Modules/faulthandler.c:420,1
    - Dst: _Py_DumpExtensionModules
      Src: /src/cpython/Modules/faulthandler.c:422,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:434,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 435
    functionName: faulthandler_fatal_error
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _Py_DumpExtensionModules
    - faulthandler_dump_traceback
    - faulthandler_disable_fatal_handler
    - faulthandler_dump_c_stack
    - deduce_all_threads
    - raise
    - PUTS
    - snprintf
    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: 453
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 453
    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:461,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:466,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:470,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:471,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:472,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:473,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:474,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:475,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:476,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:478,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Modules/faulthandler.c:479,1
    - Dst: PUTS
      Src: /src/cpython/Modules/faulthandler.c:481,1
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/cpython/Modules/faulthandler.c:488,1
    - Dst: faulthandler_dump_traceback
      Src: /src/cpython/Modules/faulthandler.c:494,1
    - Dst: deduce_all_threads
      Src: /src/cpython/Modules/faulthandler.c:494,1
    - Dst: faulthandler_dump_c_stack
      Src: /src/cpython/Modules/faulthandler.c:497,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - exc_info
    argTypes:
    - struct _EXCEPTION_POINTERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 501
    functionName: faulthandler_exc_handler
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_disable_fatal_handler
    - faulthandler_dump_traceback
    - faulthandler_ignore_exception
    - faulthandler_dump_c_stack
    - _Py_DumpHexadecimal
    - deduce_all_threads
    - PUTS
    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:514,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:516,1
    - Dst: sigaltstack
      Src: /src/cpython/Modules/faulthandler.c:520,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/faulthandler.c:522,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 529
    functionName: faulthandler_allocate_stack
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - sigaltstack
    - PyMem_Free
    - PyMem_Malloc
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int faulthandler_allocate_stack(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_allocate_stack
      Src: /src/cpython/Modules/faulthandler.c:544,1
    - Dst: _Py_InitDumpStack
      Src: /src/cpython/Modules/faulthandler.c:552,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:559,1
    - Dst: sigemptyset
      Src: /src/cpython/Modules/faulthandler.c:563,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:568,1
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:573,1
    - Dst: signal
      Src: /src/cpython/Modules/faulthandler.c:575,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/faulthandler.c:580,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:588,1
    - Dst: AddVectoredExceptionHandler
      Src: /src/cpython/Modules/faulthandler.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!handler->enabled)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/cpython/Modules/faulthandler.c
    - condition: (stack.ss_sp != NULL)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/cpython/Modules/faulthandler.c
    - condition: (fatal_error.exc_handler == NULL)
      pos:
        line_end: 587
        line_start: 587
        source_file: /src/cpython/Modules/faulthandler.c
    constantsTouched: []
    func_position:
      end: 592
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 592
    functionName: faulthandler_enable
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _Py_InitDumpStack
    - sigemptyset
    - sigaction
    - faulthandler_allocate_stack
    - AddVectoredExceptionHandler
    - signal
    - assert
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int faulthandler_enable(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:616,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/faulthandler.c:620,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:622,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/faulthandler.c:626,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/faulthandler.c:629,1
    - Dst: faulthandler_enable
      Src: /src/cpython/Modules/faulthandler.c:633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - module
    - file
    - all_threads
    - c_stack
    - max_threads
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 638
    functionName: faulthandler_py_enable_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_enable
    - Py_XSETREF
    - faulthandler_get_fileno
    - PyThreadState_GetInterpreter
    - Py_XDECREF
    - get_thread_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_py_enable_impl(PyObject *module, PyObject
      *file,\n                            int all_threads, int c_stack,\n                            Py_ssize_t
      max_threads)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/cpython/Modules/faulthandler.c:648,1
    - Dst: RemoveVectoredExceptionHandler
      Src: /src/cpython/Modules/faulthandler.c:653,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/faulthandler.c:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 658
    functionName: faulthandler_disable
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - faulthandler_disable_fatal_handler
    - RemoveVectoredExceptionHandler
    linkageType: ''
    returnType: void
    signature: void faulthandler_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable
      Src: /src/cpython/Modules/faulthandler.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 676
    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: 690
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 690
    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:702,1
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/faulthandler.c:703,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/cpython/Modules/faulthandler.c:707,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:710,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:714,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/faulthandler.c:716,1
    - Dst: PyUnstable_DumpTracebackThreads
      Src: /src/cpython/Modules/faulthandler.c:718,1
    - Dst: _exit
      Src: /src/cpython/Modules/faulthandler.c:723,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:727,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts:
    - condition: (st == PY_LOCK_FAILURE)
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/cpython/Modules/faulthandler.c
    constantsTouched: []
    func_position:
      end: 728
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 728
    functionName: faulthandler_thread
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _Py_write_noraise
    - pthread_sigmask
    - PyThread_acquire_lock_timed
    - PyUnstable_DumpTracebackThreads
    - PyThread_release_lock
    - _exit
    - sigfillset
    - assert
    linkageType: ''
    returnType: void
    signature: void faulthandler_thread(void *unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:739,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:742,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:743,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:746,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/faulthandler.c:748,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 753
    functionName: cancel_dump_traceback_later
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - Py_CLEAR
    - PyThread_acquire_lock
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void cancel_dump_traceback_later(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/faulthandler.c:773,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/faulthandler.c:778,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/faulthandler.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - us
    argTypes:
    - PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 783
    functionName: format_timeout
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _PyMem_Strdup
    - PyOS_snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      format_timeout(PyTime_t us)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/faulthandler.c:816,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Modules/faulthandler.c:820,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:822,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:827,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/faulthandler.c:832,1
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:837,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/faulthandler.c:843,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:845,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:846,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/faulthandler.c:850,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:852,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:853,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:858,1
    - Dst: format_timeout
      Src: /src/cpython/Modules/faulthandler.c:862,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:864,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:865,1
    - Dst: strlen
      Src: /src/cpython/Modules/faulthandler.c:867,1
    - Dst: cancel_dump_traceback_later
      Src: /src/cpython/Modules/faulthandler.c:870,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/faulthandler.c:872,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/faulthandler.c:877,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:884,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/faulthandler.c:886,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:887,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/faulthandler.c:888,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:889,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:891,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 6
    argNames:
    - module
    - timeout_obj
    - repeat
    - file
    - exit
    - max_threads
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 897
    functionName: faulthandler_dump_traceback_later_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsMicroseconds
    - PyThread_acquire_lock
    - PyErr_NoMemory
    - _PyTime_FromSecondsObject
    - Py_XSETREF
    - PyErr_SetString
    - faulthandler_get_fileno
    - PyThread_start_new_thread
    - PyThread_release_lock
    - Py_CLEAR
    - PyThreadState_GetInterpreter
    - cancel_dump_traceback_later
    - Py_XDECREF
    - strlen
    - format_timeout
    - PyMem_Free
    - PyThread_allocate_lock
    - get_thread_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_dump_traceback_later_impl(PyObject *module,\n
      \                                      PyObject *timeout_obj, int repeat,\n
      \                                      PyObject *file, int exit,\n                                       Py_ssize_t
      max_threads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel_dump_traceback_later
      Src: /src/cpython/Modules/faulthandler.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 912
    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:922,1
    - Dst: assert
      Src: /src/cpython/Modules/faulthandler.c:933,1
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:938,1
    - Dst: signal
      Src: /src/cpython/Modules/faulthandler.c:941,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: 932
        line_start: 932
        source_file: /src/cpython/Modules/faulthandler.c
    constantsTouched: []
    func_position:
      end: 947
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 947
    functionName: faulthandler_register
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - signal
    - sigaction
    - assert
    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:966,1
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:971,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:975,1
    - Dst: faulthandler_register
      Src: /src/cpython/Modules/faulthandler.c:978,1
    - Dst: user_signal_t*::previous
      Src: /src/cpython/Modules/faulthandler.c:985,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 988
    functionName: faulthandler_user
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_dump_traceback
    - user_signal_t*::previous
    - sigaction
    - faulthandler_register
    - raise
    linkageType: ''
    returnType: void
    signature: void faulthandler_user(int signum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/faulthandler.c:995,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:1003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1007
    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:1039,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/faulthandler.c:1042,1
    - Dst: faulthandler_get_fileno
      Src: /src/cpython/Modules/faulthandler.c:1046,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/faulthandler.c:1051,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:1053,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:1054,1
    - Dst: faulthandler_allocate_stack
      Src: /src/cpython/Modules/faulthandler.c:1061,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:1062,1
    - Dst: faulthandler_register
      Src: /src/cpython/Modules/faulthandler.c:1067,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/faulthandler.c:1069,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/faulthandler.c:1070,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/faulthandler.c:1077,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/faulthandler.c:1081,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 6
    argNames:
    - module
    - signum
    - file
    - all_threads
    - chain
    - max_threads
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - int
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1086
    functionName: faulthandler_register_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - Py_XSETREF
    - faulthandler_get_fileno
    - faulthandler_allocate_stack
    - PyThreadState_GetInterpreter
    - Py_XDECREF
    - faulthandler_register
    - check_signum
    - PyErr_SetFromErrno
    - get_thread_state
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_register_py_impl(PyObject *module, int signum,
      PyObject *file,\n                              int all_threads, int chain,\n
      \                             Py_ssize_t max_threads)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/cpython/Modules/faulthandler.c:1095,1
    - Dst: signal
      Src: /src/cpython/Modules/faulthandler.c:1097,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/faulthandler.c:1099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - user
    - signum
    argTypes:
    - user_signal_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1102
    functionName: faulthandler_unregister
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - signal
    - sigaction
    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:1121,1
    - Dst: faulthandler_unregister
      Src: /src/cpython/Modules/faulthandler.c:1128,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/faulthandler.c:1129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - signum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1130
    functionName: faulthandler_unregister_py_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - check_signum
    - faulthandler_unregister
    - PyBool_FromLong
    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:1141,1
    - Dst: SetErrorMode
      Src: /src/cpython/Modules/faulthandler.c:1142,1
    - Dst: getrlimit
      Src: /src/cpython/Modules/faulthandler.c:1149,1
    - Dst: setrlimit
      Src: /src/cpython/Modules/faulthandler.c:1151,1
    - Dst: _set_abort_behavior
      Src: /src/cpython/Modules/faulthandler.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1160
    functionName: faulthandler_suppress_crash_report
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _set_abort_behavior
    - SetErrorMode
    - getrlimit
    - 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:1166,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:1180,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1184
    functionName: faulthandler_raise_sigsegv
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - raise
    - faulthandler_suppress_crash_report
    linkageType: ''
    returnType: void
    signature: void faulthandler_raise_sigsegv(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_raise_sigsegv
      Src: /src/cpython/Modules/faulthandler.c:1205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - release_gil
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1208
    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:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - plock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1214
    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:1230,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/faulthandler.c:1232,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/faulthandler.c:1234,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:1236,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/faulthandler.c:1238,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/faulthandler.c:1240,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/faulthandler.c:1241,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/faulthandler.c:1247,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:1248,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/faulthandler.c:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1252
    functionName: faulthandler__fatal_error_c_thread_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyErr_NoMemory
    - PyErr_SetString
    - faulthandler_suppress_crash_report
    - PyThread_release_lock
    - PyThread_start_new_thread
    - PyThread_free_lock
    - PyThread_allocate_lock
    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:1265,1
    - Dst: raise
      Src: /src/cpython/Modules/faulthandler.c:1266,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/faulthandler.c:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1268
    functionName: faulthandler__sigfpe_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - raise
    - Py_UNREACHABLE
    - faulthandler_suppress_crash_report
    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:1281,1
    - Dst: abort
      Src: /src/cpython/Modules/faulthandler.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1284
    functionName: faulthandler__sigabrt_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - abort
    - faulthandler_suppress_crash_report
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__sigabrt_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_overflow
      Src: /src/cpython/Modules/faulthandler.c:1303,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: 1304
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1304
    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:1321,1
    - Dst: stack_overflow
      Src: /src/cpython/Modules/faulthandler.c:1338,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/faulthandler.c:1343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1348
    functionName: faulthandler__stack_overflow_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - stack_overflow
    - faulthandler_suppress_crash_report
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler__stack_overflow_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/cpython/Modules/faulthandler.c:1368,1
    - Dst: RaiseException
      Src: /src/cpython/Modules/faulthandler.c:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - code
    - flags
    argTypes:
    - PyObject*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1371
    functionName: faulthandler__raise_exception_impl
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - RaiseException
    - faulthandler_suppress_crash_report
    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:1407,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1408,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1411,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1412,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1415,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1416,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1421,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1422,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/faulthandler.c:1425,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/faulthandler.c:1426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1431
    functionName: PyExec_faulthandler
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int PyExec_faulthandler(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/faulthandler.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1450
    functionDepth: 1
    functionLinenumber: 1450
    functionLinenumberEnd: 1454
    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:1459,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/faulthandler.c:1464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/faulthandler.c:1465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/faulthandler.c:1469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1472
    functionName: faulthandler_init_enable
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyObject_CallNoArgs
    linkageType: ''
    returnType: int
    signature: int faulthandler_init_enable(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/faulthandler.c:1478,1
    - Dst: getauxval
      Src: /src/cpython/Modules/faulthandler.c:1489,1
    - Dst: memset
      Src: /src/cpython/Modules/faulthandler.c:1496,1
    - Dst: faulthandler_init_enable
      Src: /src/cpython/Modules/faulthandler.c:1499,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Modules/faulthandler.c:1500,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Modules/faulthandler.c:1503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1474
    functionDepth: 2
    functionLinenumber: 1474
    functionLinenumberEnd: 1504
    functionName: _PyFaulthandler_Init
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - getauxval
    - _PyStatus_OK
    - faulthandler_init_enable
    - memset
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyFaulthandler_Init(int enable)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cancel_dump_traceback_later
      Src: /src/cpython/Modules/faulthandler.c:1510,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/faulthandler.c:1511,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/faulthandler.c:1512,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/faulthandler.c:1516,1
    - Dst: faulthandler_unregister
      Src: /src/cpython/Modules/faulthandler.c:1524,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:1526,1
    - Dst: faulthandler_disable
      Src: /src/cpython/Modules/faulthandler.c:1532,1
    - Dst: memset
      Src: /src/cpython/Modules/faulthandler.c:1538,1
    - Dst: sigaltstack
      Src: /src/cpython/Modules/faulthandler.c:1539,1
    - Dst: sigaltstack
      Src: /src/cpython/Modules/faulthandler.c:1544,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/faulthandler.c:1551,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1506
    functionDepth: 2
    functionLinenumber: 1506
    functionLinenumberEnd: 1555
    functionName: _PyFaulthandler_Fini
    functionSourceFile: /src/cpython/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - sigaltstack
    - faulthandler_disable
    - PyThread_release_lock
    - cancel_dump_traceback_later
    - faulthandler_unregister
    - memset
    - PyMem_Free
    - PyThread_free_lock
    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:
    - Py_VISIT
    - ExampleObject_CAST
    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:
    - Py_CLEAR
    - ExampleObject_CAST
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    - PyUnicode_Check
    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:
    - ExampleObject_CAST
    - PyObject_GenericGetAttr
    - PyErr_Occurred
    - Py_NewRef
    - PyDict_GetItemWithError
    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
    - PyDict_SetItemString
    - PyErr_ExceptionMatches
    - PyDict_DelItemString
    - 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:155,1
    - Dst: PyType_GetModule_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:155,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:159,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_testmultiphase.c:159,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testmultiphase.c:159,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:160,1
    - Dst: PyType_GetModuleByToken_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:160,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testmultiphase.c:160,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testmultiphase.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - StateAccessTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (retval == PyType_GetModule_DuringGC(cls))
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Modules/_testmultiphase.c
    - condition: (PyType_GetModuleByDef(Py_TYPE(self), &def_meth_state_access) ==
        retval)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Modules/_testmultiphase.c
    - condition: "(PyType_GetModuleByToken_DuringGC(Py_TYPE(self), &def_meth_state_access)\n
        \          == retval)"
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: _testmultiphase_StateAccessType_get_defining_module_impl
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyType_GetModule_DuringGC
    - PyType_GetModuleByDef
    - assert
    - PyType_GetModule
    - Py_NewRef
    - Py_TYPE
    - PyType_GetModuleByToken_DuringGC
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testmultiphase_StateAccessType_get_defining_module_impl(StateAccessTypeObject
      *self,\n                                                         PyTypeObject
      *cls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:179,1
    - Dst: PyType_GetModuleByToken_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:179,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testmultiphase.c:179,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:180,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testmultiphase.c:180,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_testmultiphase.c:182,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testmultiphase.c:182,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:183,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testmultiphase.c:183,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - StateAccessTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_GetModuleByToken_DuringGC(Py_TYPE(self), &def_nonmodule)
        == NULL)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/cpython/Modules/_testmultiphase.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/cpython/Modules/_testmultiphase.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/cpython/Modules/_testmultiphase.c
    - condition: (m == NULL)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 186
    functionName: _testmultiphase_StateAccessType_getmodulebydef_bad_def_impl
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleByDef
    - PyErr_Occurred
    - assert
    - Py_TYPE
    - PyType_GetModuleByToken_DuringGC
    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:210,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:211,1
    - Dst: PyType_GetModuleState_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cls
    - n
    - twice
    argTypes:
    - StateAccessTypeObject*
    - PyTypeObject*
    - int
    - int
    assertStmts:
    - condition: (m_state == PyType_GetModuleState_DuringGC(cls))
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: _testmultiphase_StateAccessType_increment_count_clinic_impl
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleState_DuringGC
    - PyType_GetModuleState
    - assert
    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:236,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testmultiphase.c:241,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testmultiphase.c:242,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testmultiphase.c:246,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testmultiphase.c:247,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_testmultiphase.c:248,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testmultiphase.c:249,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:252,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_testmultiphase.c:260,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:261,1
    - Dst: PyType_GetModuleState_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (m_state == PyType_GetModuleState_DuringGC(defining_class))
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 265
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 265
    functionName: _StateAccessType_increment_count_noclinic
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - assert
    - PyErr_SetString
    - PyType_GetModuleState_DuringGC
    - PyLong_AsLong
    - PyUnicode_CompareWithASCIIString
    - PyErr_Occurred
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - PyType_GetModuleState
    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:280,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:281,1
    - Dst: PyType_GetModuleState_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:281,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - StateAccessTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (m_state == PyType_GetModuleState_DuringGC(cls))
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: _testmultiphase_StateAccessType_get_count_impl
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyType_GetModuleState_DuringGC
    - PyType_GetModuleState
    - assert
    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:325,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 329
    functionName: testexport_foo
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      testexport_foo(PyObject *self, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testmultiphase.c:342,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testmultiphase.c:346,1
    - Dst: PyState_FindModule
      Src: /src/cpython/Modules/_testmultiphase.c:350,1
    - Dst: PyState_AddModule
      Src: /src/cpython/Modules/_testmultiphase.c:356,1
    - Dst: PyState_RemoveModule
      Src: /src/cpython/Modules/_testmultiphase.c:362,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - mod
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 369
    functionName: call_state_registration_func
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyState_FindModule
    - PyState_AddModule
    - PyModule_GetDef
    - PyArg_ParseTuple
    - PyState_RemoveModule
    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:403,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:404,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_testmultiphase.c:410,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:411,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testmultiphase.c:416,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:417,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testmultiphase.c:421,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_testmultiphase.c:425,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 432
    functionName: execfunc
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_AddIntConstant
    - PyModule_AddStringConstant
    - PyModule_Add
    - PyType_FromSpec
    linkageType: ''
    returnType: int
    signature: int execfunc(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 462
    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:474,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testmultiphase.c:478,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testmultiphase.c:484,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testmultiphase.c:487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testmultiphase.c:488,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Modules/_testmultiphase.c:490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testmultiphase.c:491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 493
    functionName: createfunc_nonmodule
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetString
    - PyDict_SetItemString
    - _PyNamespace_New
    - Py_DECREF
    - PyDict_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:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 508
    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:520,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 524
    functionName: nonmodule_bar
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nonmodule_bar(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 538
    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:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 564
    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:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 582
    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:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 590
    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: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__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: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_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:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 631
    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:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 649
    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:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 668
    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: 677
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 677
    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: 683
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 683
    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:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 690
    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:695,1
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 697
    functionName: PyInit__testmultiphase_export_unreported_exception
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    - PyErr_SetString
    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:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 703
    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:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 719
    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: 725
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 725
    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:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 740
    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:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 747
    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:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 761
    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:766,1
    - Dst: PyModule_New
      Src: /src/cpython/Modules/_testmultiphase.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 768
    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: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_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:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 801
    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: 807
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 807
    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:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 824
    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:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 831
    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:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 848
    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:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 855
    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:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 872
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testmultiphase.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 874
    functionName: execfn_a1
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int execfn_a1(PyObject*m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testmultiphase.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 875
    functionName: execfn_b2
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int execfn_b2(PyObject*m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testmultiphase.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 876
    functionName: execfn_c3
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int execfn_c3(PyObject*m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 894
    functionName: PyInit__testmultiphase_exec_multiple
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_exec_multiple(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testmultiphase.c:902,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:903,1
    - Dst: PyModule_GetState_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:903,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_testmultiphase.c:908,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (m_state == PyModule_GetState_DuringGC(m))
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 915
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 915
    functionName: meth_state_access_exec
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - assert
    - PyModule_GetState_DuringGC
    - PyType_FromModuleAndSpec
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int meth_state_access_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_testmultiphase.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 938
    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:950,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_testmultiphase.c:955,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testmultiphase.c:958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testmultiphase.c:959,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 963
    functionName: PyInit__test_module_state_shared
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyModule_AddObjectRef
    - Py_DECREF
    - 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:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 985
    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:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1003
    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:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1025
    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:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1044
    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: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1055,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1056,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1057,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1062
    functionName: PyModExport__test_from_modexport
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PySlot_DATA
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1068,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1069,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1070,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1075
    functionName: PyModExport__test_from_modexport_gil_used
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PySlot_DATA
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport_gil_used(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1081
    functionName: PyModExport__test_from_modexport_null
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:1087,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1086
        line_start: 1086
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 1090
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1090
    functionName: PyModInit__test_from_modexport_null
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyModInit__test_from_modexport_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1097
    functionName: PyModExport__test_from_modexport_exception
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport_exception(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:1103,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testmultiphase.c:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1102
        line_start: 1102
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 1106
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1106
    functionName: PyModInit__test_from_modexport_exception
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyModInit__test_from_modexport_exception(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:1111,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testmultiphase.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts:
    - condition: (def == NULL)
      pos:
        line_end: 1110
        line_start: 1110
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 1113
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1113
    functionName: modexport_create_string
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      modexport_create_string(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1119,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1120,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testmultiphase.c:1121,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1122,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1127
    functionName: PyModExport__test_from_modexport_create_nonmodule
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PySlot_FUNC
    - PySlot_DATA
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport_create_nonmodule(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1133,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1134,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testmultiphase.c:1135,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1136,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1141
    functionName: PyModExport__test_from_modexport_create_nonmodule_gil_used
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PySlot_FUNC
    - PySlot_DATA
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport_create_nonmodule_gil_used(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1151
    functionName: PyModExport__test_from_modexport_empty_slots
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport_empty_slots(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1163
    functionName: PyModExport__test_from_modexport_minimal_slots
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport_minimal_slots(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testmultiphase.c:1169,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testmultiphase.c:1172,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:1173,1
    - Dst: PyModule_GetState_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:1173,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_testmultiphase.c:1179,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testmultiphase.c:1180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state == PyModule_GetState_DuringGC(mod))
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 1185
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1185
    functionName: modexport_smoke_exec
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_GetState
    - PyModule_GetState_DuringGC
    - PyType_FromModuleAndSpec
    - assert
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int modexport_smoke_exec(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testmultiphase.c:1190,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:1191,1
    - Dst: PyModule_GetState_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:1191,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testmultiphase.c:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mod
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state == PyModule_GetState_DuringGC(mod))
      pos:
        line_end: 1190
        line_start: 1190
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 1196
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1196
    functionName: modexport_smoke_get_state_int
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState_DuringGC
    - PyModule_GetState
    - PyLong_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      modexport_smoke_get_state_int(PyObject *mod, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testmultiphase.c:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mod
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1204
    functionName: modexport_smoke_get_test_token
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      modexport_smoke_get_test_token(PyObject *mod, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testmultiphase.c:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mod
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1214
    functionName: modexport_get_minimal_slots
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      modexport_get_minimal_slots(PyObject *mod, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testmultiphase.c:1220,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:1221,1
    - Dst: PyModule_GetState_DuringGC
      Src: /src/cpython/Modules/_testmultiphase.c:1221,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testmultiphase.c:1223,1
    - Dst: assert
      Src: /src/cpython/Modules/_testmultiphase.c:1225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - void*
    assertStmts:
    - condition: (*state == 258)
      pos:
        line_end: 1224
        line_start: 1224
        source_file: /src/cpython/Modules/_testmultiphase.c
    - condition: (state == PyModule_GetState_DuringGC(mod))
      pos:
        line_end: 1220
        line_start: 1220
        source_file: /src/cpython/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 1226
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1226
    functionName: modexport_smoke_free
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState_DuringGC
    - PyModule_GetState
    - PyErr_FormatUnraisable
    - assert
    linkageType: ''
    returnType: void
    signature: void modexport_smoke_free(void *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1238,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1239,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1240,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testmultiphase.c:1241,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testmultiphase.c:1242,1
    - Dst: PySlot_STATIC_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1243,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testmultiphase.c:1244,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1245,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1246,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testmultiphase.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1251
    functionName: PyModExport__test_from_modexport_smoke
    functionSourceFile: /src/cpython/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PySlot_SIZE
    - PySlot_FUNC
    - PySlot_DATA
    - PySlot_STATIC_DATA
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport__test_from_modexport_smoke(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_gdbmmodule.c:33,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.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/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    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:47,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_gdbmmodule.c:49,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - generic_error
    argTypes:
    - _gdbm_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: set_gdbm_error
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyErr_SetLocaleString
    - 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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    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: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    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:104,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_gdbmmodule.c:110,1
    - Dst: gdbm_open
      Src: /src/cpython/Modules/_gdbmmodule.c:112,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_gdbmmodule.c:114,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:119,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: 123
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 123
    functionName: newgdbmobject
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - set_gdbm_error
    - PyErr_SetFromErrnoWithFilename
    - gdbm_open
    - Py_DECREF
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newgdbmobject(_gdbm_state *state, const char *file, int flags, int mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _gdbmobject_CAST
      Src: /src/cpython/Modules/_gdbmmodule.c:129,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:130,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_gdbmmodule.c:131,1
    - Dst: gdbm_close
      Src: /src/cpython/Modules/_gdbmmodule.c:133,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_gdbmmodule.c:135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: gdbm_dealloc
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _gdbmobject_CAST
    - PyTypeObject*::tp_free
    - gdbm_close
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void gdbm_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _gdbmobject_CAST
      Src: /src/cpython/Modules/_gdbmmodule.c:142,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:143,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:143,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:145,1
    - Dst: gdbm_count
      Src: /src/cpython/Modules/_gdbmmodule.c:152,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_gdbmmodule.c:154,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:157,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:162,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:172,1
    - Dst: gdbm_nextkey
      Src: /src/cpython/Modules/_gdbmmodule.c:173,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:176,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 184
    functionName: gdbm_length_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_firstkey
    - gdbm_nextkey
    - free
    - set_gdbm_error
    - gdbm_count
    - PyErr_SetString
    - _gdbmobject_CAST
    - PyErr_SetFromErrno
    - PyType_GetModuleState
    - Py_TYPE
    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:190,1
    - Dst: gdbm_length_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:191,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: gdbm_length
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_length_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:199,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:200,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:200,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:202,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:214,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 224
    functionName: gdbm_bool_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_firstkey
    - free
    - PyErr_SetString
    - _gdbmobject_CAST
    - PyType_GetModuleState
    - 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:230,1
    - Dst: gdbm_bool_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:231,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 234
    functionName: gdbm_bool
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - gdbm_bool_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int gdbm_bool(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_gdbmmodule.c:243,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:245,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - o
    - d
    - failmsg
    argTypes:
    - PyObject*
    - datum*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 255
    functionName: parse_datum
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyArg_Parse
    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:262,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:263,1
    - Dst: parse_datum
      Src: /src/cpython/Modules/_gdbmmodule.c:265,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:269,1
    - Dst: gdbm_fetch
      Src: /src/cpython/Modules/_gdbmmodule.c:273,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_gdbmmodule.c:275,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:278,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 281
    functionName: gdbm_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_fetch
    - parse_datum
    - free
    - PyErr_SetObject
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - _gdbmobject_CAST
    - PyType_GetModuleState
    - 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:287,1
    - Dst: gdbm_subscript_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:288,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: gdbm_subscript
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - gdbm_subscript_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gdbm_subscript(PyObject *op, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdbm_subscript
      Src: /src/cpython/Modules/_gdbmmodule.c:309,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_gdbmmodule.c:310,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_gdbmmodule.c:311,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_gdbmmodule.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - gdbmobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: _gdbm_gdbm_get_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyErr_Clear
    - gdbm_subscript
    - PyErr_ExceptionMatches
    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:322,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:323,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:323,1
    - Dst: parse_datum
      Src: /src/cpython/Modules/_gdbmmodule.c:325,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:329,1
    - Dst: gdbm_delete
      Src: /src/cpython/Modules/_gdbmmodule.c:335,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_gdbmmodule.c:337,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:340,1
    - Dst: parse_datum
      Src: /src/cpython/Modules/_gdbmmodule.c:346,1
    - Dst: gdbm_store
      Src: /src/cpython/Modules/_gdbmmodule.c:350,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_gdbmmodule.c:352,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - op
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 361
    functionName: gdbm_ass_sub_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - parse_datum
    - PyErr_SetObject
    - set_gdbm_error
    - PyErr_SetString
    - gdbm_delete
    - _gdbmobject_CAST
    - gdbm_store
    - PyErr_SetFromErrno
    - PyType_GetModuleState
    - Py_TYPE
    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:367,1
    - Dst: gdbm_ass_sub_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:368,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 371
    functionName: gdbm_ass_sub
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - gdbm_ass_sub_lock_held
    - Py_END_CRITICAL_SECTION
    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:392,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_gdbmmodule.c:393,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_gdbmmodule.c:394,1
    - Dst: gdbm_ass_sub
      Src: /src/cpython/Modules/_gdbmmodule.c:395,1
    - Dst: gdbm_subscript
      Src: /src/cpython/Modules/_gdbmmodule.c:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - gdbmobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: _gdbm_gdbm_setdefault_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_ass_sub
    - PyErr_Clear
    - gdbm_subscript
    - PyErr_ExceptionMatches
    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:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - gdbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 418
    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:438,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:439,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:441,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/_gdbmmodule.c:442,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:445,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_gdbmmodule.c:447,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:451,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:453,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:456,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_gdbmmodule.c:459,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:460,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:463,1
    - Dst: gdbm_nextkey
      Src: /src/cpython/Modules/_gdbmmodule.c:466,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 471
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 471
    functionName: _gdbm_gdbm_keys_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_firstkey
    - gdbm_nextkey
    - free
    - check_gdbmobject_open
    - Py_IS_TYPE
    - PyBytes_FromStringAndSize
    - PyList_Append
    - PyErr_BadInternalCall
    - PyList_New
    - assert
    - Py_DECREF
    - PyType_GetModuleState
    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:479,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:479,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:482,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_gdbmmodule.c:486,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:487,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_gdbmmodule.c:492,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_gdbmmodule.c:493,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_gdbmmodule.c:495,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_gdbmmodule.c:499,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_gdbmmodule.c:500,1
    - Dst: gdbm_exists
      Src: /src/cpython/Modules/_gdbmmodule.c:502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 503
    functionName: gdbm_contains_lock_held
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_exists
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - PyType_GetModuleState
    - 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:509,1
    - Dst: gdbm_contains_lock_held
      Src: /src/cpython/Modules/_gdbmmodule.c:510,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: gdbm_contains
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - gdbm_contains_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int gdbm_contains(PyObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_gdbmmodule.c:534,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:535,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:537,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:538,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:540,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 547
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 547
    functionName: _gdbm_gdbm_firstkey_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_firstkey
    - free
    - check_gdbmobject_open
    - PyBytes_FromStringAndSize
    - assert
    - PyType_GetModuleState
    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:575,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:576,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:580,1
    - Dst: gdbm_nextkey
      Src: /src/cpython/Modules/_gdbmmodule.c:581,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_gdbmmodule.c:583,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:584,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: 575
        line_start: 575
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 590
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 590
    functionName: _gdbm_gdbm_nextkey_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_nextkey
    - free
    - check_gdbmobject_open
    - PyBytes_FromStringAndSize
    - assert
    - PyType_GetModuleState
    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:611,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:612,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:613,1
    - Dst: gdbm_reorganize
      Src: /src/cpython/Modules/_gdbmmodule.c:615,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_gdbmmodule.c:617,1
    - Dst: set_gdbm_error
      Src: /src/cpython/Modules/_gdbmmodule.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 625
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 625
    functionName: _gdbm_gdbm_reorganize_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_gdbmobject_open
    - gdbm_reorganize
    - set_gdbm_error
    - assert
    - PyErr_SetFromErrno
    - PyType_GetModuleState
    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:643,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:644,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:645,1
    - Dst: gdbm_sync
      Src: /src/cpython/Modules/_gdbmmodule.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 643
        line_start: 643
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 648
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 648
    functionName: _gdbm_gdbm_sync_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_sync
    - check_gdbmobject_open
    - 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:663,1
    - Dst: assert
      Src: /src/cpython/Modules/_gdbmmodule.c:664,1
    - Dst: check_gdbmobject_open
      Src: /src/cpython/Modules/_gdbmmodule.c:665,1
    - Dst: gdbm_firstkey
      Src: /src/cpython/Modules/_gdbmmodule.c:670,1
    - Dst: gdbm_delete
      Src: /src/cpython/Modules/_gdbmmodule.c:674,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:675,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:676,1
    - Dst: free
      Src: /src/cpython/Modules/_gdbmmodule.c:679,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - gdbmobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/cpython/Modules/_gdbmmodule.c
    constantsTouched: []
    func_position:
      end: 682
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 682
    functionName: _gdbm_gdbm_clear_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_firstkey
    - free
    - check_gdbmobject_open
    - gdbm_delete
    - PyErr_SetString
    - assert
    - PyType_GetModuleState
    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:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    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: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:694,1
    - Dst: _gdbm_gdbm_close_impl
      Src: /src/cpython/Modules/_gdbmmodule.c:695,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_gdbmmodule.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 698
    functionName: gdbm__exit__
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _gdbm_gdbm_close_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gdbm__exit__(PyObject *self, PyObject *args)'
  - BBCount: 12
    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:819,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_gdbmmodule.c:826,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_gdbmmodule.c:830,1
    - Dst: strlen
      Src: /src/cpython/Modules/_gdbmmodule.c:831,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_gdbmmodule.c:831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:832,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_gdbmmodule.c:833,1
    - Dst: newgdbmobject
      Src: /src/cpython/Modules/_gdbmmodule.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_gdbmmodule.c:837,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    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: 839
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 839
    functionName: dbmopen_impl
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyErr_SetString
    - newgdbmobject
    - get_gdbm_state
    - PyErr_Format
    - assert
    - strlen
    - PyUnicode_FSConverter
    - Py_DECREF
    - PyBytes_GET_SIZE
    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:861,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_gdbmmodule.c:862,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_gdbmmodule.c:867,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_gdbmmodule.c:871,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_gdbmmodule.c:874,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_gdbmmodule.c:881,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_gdbmmodule.c:883,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 888
    functionName: _gdbm_exec
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - Py_BuildValue
    - PyModule_AddStringConstant
    - PyType_FromModuleAndSpec
    - get_gdbm_state
    - PyModule_Add
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int _gdbm_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gdbm_state
      Src: /src/cpython/Modules/_gdbmmodule.c:893,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_gdbmmodule.c:894,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_gdbmmodule.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 897
    functionName: _gdbm_module_traverse
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - get_gdbm_state
    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:902,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_gdbmmodule.c:903,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_gdbmmodule.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 906
    functionName: _gdbm_module_clear
    functionSourceFile: /src/cpython/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_gdbm_state
    linkageType: ''
    returnType: int
    signature: int _gdbm_module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gdbm_module_clear
      Src: /src/cpython/Modules/_gdbmmodule.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 912
    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:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 938
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/xxlimited.c:123,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited.c:127,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/xxlimited.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 135
    functionName: Xxo_state_from_type
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - PyType_GetBaseByToken
    - PyType_GetModuleState
    linkageType: ''
    returnType: xx_state
    signature: 'xx_state *

      Xxo_state_from_type(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Xxo_state_from_type
      Src: /src/cpython/Modules/xxlimited.c:156,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited.c:156,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/xxlimited.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: Xxo_get_data
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyObject_GetTypeData
    - Xxo_state_from_type
    - Py_TYPE
    linkageType: ''
    returnType: XxoObject_Data
    signature: 'XxoObject_Data *

      Xxo_get_data(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetBaseByToken_DuringGC
      Src: /src/cpython/Modules/xxlimited.c:173,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited.c:173,1
    - Dst: PyType_GetModuleState_DuringGC
      Src: /src/cpython/Modules/xxlimited.c:177,1
    - Dst: PyObject_GetTypeData_DuringGC
      Src: /src/cpython/Modules/xxlimited.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: Xxo_get_data_DuringGC
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyType_GetBaseByToken_DuringGC
    - PyType_GetModuleState_DuringGC
    - Py_TYPE
    - PyObject_GetTypeData_DuringGC
    linkageType: ''
    returnType: XxoObject_Data
    signature: 'XxoObject_Data *

      Xxo_get_data_DuringGC(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Length
      Src: /src/cpython/Modules/xxlimited.c:191,1
    - Dst: PyObject_Length
      Src: /src/cpython/Modules/xxlimited.c:192,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited.c:194,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/xxlimited.c:198,1
    - Dst: alloc
      Src: /src/cpython/Modules/xxlimited.c:199,1
    - Dst: Xxo_get_data
      Src: /src/cpython/Modules/xxlimited.c:210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited.c:212,1
    - Dst: memset
      Src: /src/cpython/Modules/xxlimited.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 220
    functionName: Xxo_new
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_Length
    - memset
    - Xxo_get_data
    - Py_DECREF
    - alloc
    - PyType_GetSlot
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited.c:233,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited.c:233,1
    - Dst: Xxo_get_data_DuringGC
      Src: /src/cpython/Modules/xxlimited.c:236,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 242
    functionName: Xxo_traverse
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Xxo_get_data_DuringGC
    - Py_VISIT
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int Xxo_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Xxo_get_data
      Src: /src/cpython/Modules/xxlimited.c:248,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: Xxo_clear
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Xxo_get_data
    linkageType: ''
    returnType: int
    signature: int Xxo_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Xxo_get_data
      Src: /src/cpython/Modules/xxlimited.c:261,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 266
    functionName: Xxo_finalize
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Xxo_get_data
    linkageType: ''
    returnType: void
    signature: void Xxo_finalize(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/xxlimited.c:273,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/xxlimited.c:275,1
    - Dst: Xxo_finalize
      Src: /src/cpython/Modules/xxlimited.c:276,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited.c:278,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/xxlimited.c:279,1
    - Dst: free
      Src: /src/cpython/Modules/xxlimited.c:280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited.c:281,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/xxlimited.c:283,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/cpython/Modules/xxlimited.c:284,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/xxlimited.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 287
    functionName: Xxo_dealloc
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - free
    - PyErr_WriteUnraisable
    - PyErr_SetRaisedException
    - Xxo_finalize
    - PyErr_Occurred
    - PyObject_GC_UnTrack
    - PyErr_GetRaisedException
    - Py_DECREF
    - PyType_GetSlot
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Xxo_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Xxo_get_data
      Src: /src/cpython/Modules/xxlimited.c:296,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:302,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:304,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/xxlimited.c:307,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited.c:309,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/xxlimited.c:311,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/xxlimited.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 318
    functionName: Xxo_getattro
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyObject_GenericGetAttr
    - Py_BEGIN_CRITICAL_SECTION
    - Xxo_get_data
    - PyErr_Occurred
    - Py_NewRef
    - PyDict_GetItemWithError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_getattro(PyObject *self, PyObject *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/xxlimited.c:325,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/xxlimited.c:325,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/xxlimited.c:326,1
    - Dst: Xxo_get_data
      Src: /src/cpython/Modules/xxlimited.c:330,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:339,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/xxlimited.c:343,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:345,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/xxlimited.c:352,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/xxlimited.c:353,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited.c:354,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/xxlimited.c:362,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - name
    - v
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 364
    functionName: Xxo_setattro
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyUnicode_Check
    - PyDict_SetItem
    - PyDict_DelItem
    - PyUnicode_EqualToUTF8
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Xxo_get_data
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int Xxo_setattro(PyObject *self, PyObject *name, PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Length
      Src: /src/cpython/Modules/xxlimited.c:374,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited.c:375,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited.c:379,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/xxlimited.c:386,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited.c:387,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/xxlimited.c:391,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited.c:392,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited.c:395,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 396
    functionName: Xxo_demo
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_Length
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nXxo_demo(PyObject *self, PyTypeObject *defining_class,\n
      \        PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Xxo_get_data
      Src: /src/cpython/Modules/xxlimited.c:412,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/xxlimited.c:416,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:420,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 425
    functionName: Xxo_getbuffer
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_FillInfo
    - Xxo_get_data
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int Xxo_getbuffer(PyObject *self, Py_buffer *view, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Xxo_get_data
      Src: /src/cpython/Modules/xxlimited.c:430,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:434,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 437
    functionName: Xxo_releasebuffer
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Xxo_get_data
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: void
    signature: void Xxo_releasebuffer(PyObject *self, Py_buffer *Py_UNUSED(view))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Xxo_get_data
      Src: /src/cpython/Modules/xxlimited.c:442,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:448,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/xxlimited.c:450,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/xxlimited.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 453
    functionName: Xxo_get_x_exports
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_FromSsize_t
    - Xxo_get_data
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_get_x_exports(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/xxlimited.c:518,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxlimited.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 522
    functionName: xx_foo
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_foo(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited.c:533,1
    - Dst: Xxo_new
      Src: /src/cpython/Modules/xxlimited.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(unused)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 536
    functionName: xx_new
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    - Xxo_new
    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:559,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/xxlimited.c:561,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited.c:565,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/xxlimited.c:569,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited.c:574,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/xxlimited.c:582,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited.c:587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited.c:588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited.c:591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 594
    functionName: xx_modexec
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_GetState
    - PyType_FromModuleAndSpec
    - Py_DECREF
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int xx_modexec(PyObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState_DuringGC
      Src: /src/cpython/Modules/xxlimited.c:603,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited.c:607,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 610
    functionName: xx_traverse
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyModule_GetState_DuringGC
    linkageType: ''
    returnType: int
    signature: int xx_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited.c:615,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited.c:619,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 622
    functionName: xx_clear
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyModule_GetState
    linkageType: ''
    returnType: int
    signature: int xx_clear(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xx_clear
      Src: /src/cpython/Modules/xxlimited.c:628,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited.c:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 634
    functionName: xx_free
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - xx_clear
    - PyModule_GetState
    linkageType: ''
    returnType: void
    signature: void xx_free(void *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 684
    functionName: PyModExport_xxlimited
    functionSourceFile: /src/cpython/Modules/xxlimited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODEXPORT_FUNC
    signature: PyMODEXPORT_FUNC PyModExport_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:
    - _PyLong_FromGid
    - PyStructSequence_New
    - get_pwd_state
    - SET_STRING
    - _PyLong_FromUid
    - SET_RESULT
    - Py_DECREF
    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:
    - PyMutex_Unlock
    - getpwuid_r
    - Py_DECREF
    - mkpwent
    - PyErr_NoMemory
    - PyMem_RawRealloc
    - _Py_Uid_Converter
    - PyMem_RawFree
    - PyErr_ExceptionMatches
    - PyErr_Format
    - _PyLong_FromUid
    - sysconf
    - getpwuid
    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:
    - PyMutex_Unlock
    - mkpwent
    - getpwnam
    - PyMem_RawRealloc
    - PyUnicode_EncodeFSDefault
    - PyErr_NoMemory
    - sysconf
    - PyMem_RawFree
    - getpwnam_r
    - PyErr_Format
    - Py_DECREF
    - PyBytes_AsStringAndSize
    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:
    - PyMutex_Unlock
    - mkpwent
    - getpwent
    - setpwent
    - endpwent
    - Py_CLEAR
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    - PyMutex_Lock
    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:
    - get_pwd_state
    - PyModule_AddType
    - PyStructSequence_NewType
    linkageType: ''
    returnType: int
    signature: int pwdmodule_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pwdmodule.c:383,1
    - Dst: get_pwd_state
      Src: /src/cpython/Modules/pwdmodule.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 385
    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:387,1
    - Dst: get_pwd_state
      Src: /src/cpython/Modules/pwdmodule.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 389
    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:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 392
    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:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: PyInit_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:
    - _PyType_GetModuleState
    - assert
    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:
    - get_module_state
    - PyType_GetModuleByDef
    - assert
    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:150,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:153,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:161,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: 168
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 168
    functionName: batched_new_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - PyErr_SetString
    - PyTypeObject*::tp_alloc
    - 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:173,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:174,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:175,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:176,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: batched_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - batchedobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void batched_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: batchedobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:184,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:185,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:185,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: batched_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - batchedobject_CAST
    - Py_TYPE
    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:193,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:195,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:203,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:207,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:208,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:210,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:219,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/itertoolsmodule.c:220,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:222,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:226,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:229,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:232,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:236,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:240,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:244,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:245,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Modules/itertoolsmodule.c:248,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 250
    functionName: batched_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyTuple_Resize
    - PyErr_SetString
    - batchedobject_CAST
    - iternext
    - Py_CLEAR
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyErr_Clear
    - _PyTuple_ITEMS
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyTuple_New
    - 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: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    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:303,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:309,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/itertoolsmodule.c:314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 320
    functionName: pairwise_new_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - _PyTuple_FromPairSteal
    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:325,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:326,1
    - Dst: PyObject_GC_UnTrack
      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: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:330,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: pairwise_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - pairwiseobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pairwise_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pairwiseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:338,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:339,1
    - Dst: Py_TYPE
      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
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: pairwise_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - pairwiseobject_CAST
    - Py_VISIT
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int pairwise_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pairwiseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:349,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:358,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:359,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:361,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:366,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:370,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:371,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:373,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:375,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/itertoolsmodule.c:380,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:381,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:382,1
    - Dst: PyTuple_GET_ITEM
      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: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:385,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:387,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:390,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/itertoolsmodule.c:393,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 399
    functionName: pairwise_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - _PyTuple_FromPair
    - _PyObject_IsUniquelyReferenced
    - Py_CLEAR
    - pairwiseobject_CAST
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - Py_TYPE
    - _PyTuple_Recycle
    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: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    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:461,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:467,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:470,1
    - Dst: find_state_by_type
      Src: /src/cpython/Modules/itertoolsmodule.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - type
    - it
    - keyfunc
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 475
    functionName: itertools_groupby_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - find_state_by_type
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:480,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:481,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:482,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:483,1
    - Dst: Py_XDECREF
      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: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 490
    functionName: groupby_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - groupbyobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void groupby_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:495,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:496,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:496,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:497,1
    - Dst: Py_VISIT
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 503
    functionName: groupby_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - groupbyobject_CAST
    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:510,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:515,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/itertoolsmodule.c:517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:519,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:526,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - gbo
    argTypes:
    - groupbyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 529
    functionName: groupby_step
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_XDECREF
    - Py_DECREF
    - PyIter_Next
    - Py_NewRef
    - PyObject_CallOneArg
    linkageType: ''
    returnType: void
    signature: void groupby_step(groupbyobject *gbo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:535,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:552,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:553,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/itertoolsmodule.c:554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:556,1
    - Dst: groupby_step
      Src: /src/cpython/Modules/itertoolsmodule.c:564,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:567,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:568,1
    - Dst: _grouper_create
      Src: /src/cpython/Modules/itertoolsmodule.c:570,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/itertoolsmodule.c:574,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:574,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 575
    functionName: groupby_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_INCREF
    - Py_XSETREF
    - groupby_step
    - groupbyobject_CAST
    - _grouper_create
    - Py_DECREF
    - Py_NewRef
    - _PyTuple_FromPairSteal
    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: 606
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 606
    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:621,1
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - parent
    - tgtkey
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 622
    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:628,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:631,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:632,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/itertoolsmodule.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - parent
    - tgtkey
    argTypes:
    - groupbyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 637
    functionName: _grouper_create
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - Py_NewRef
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _grouper_create(groupbyobject *parent, PyObject *tgtkey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _grouperobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:642,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:643,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:646,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/itertoolsmodule.c:647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 649
    functionName: _grouper_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - _grouperobject_CAST
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _grouper_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _grouperobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:654,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:655,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:655,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:656,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 659
    functionName: _grouper_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _grouperobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:664,1
    - Dst: groupbyobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:665,1
    - Dst: groupby_step
      Src: /src/cpython/Modules/itertoolsmodule.c:672,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:676,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:681,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:682,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/itertoolsmodule.c:683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:685,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (gbo->currkey != NULL)
      pos:
        line_end: 675
        line_start: 675
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 696
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 696
    functionName: _grouper_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - groupby_step
    - groupbyobject_CAST
    - Py_CLEAR
    - assert
    - Py_DECREF
    - _grouperobject_CAST
    - Py_NewRef
    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: 740
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 740
    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: 750
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 750
    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:756,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:763,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/itertoolsmodule.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - state
    - it
    argTypes:
    - itertools_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 766
    functionName: teedataobject_newinternal
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_NewRef
    - PyObject_GC_Track
    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:772,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - tdo
    argTypes:
    - itertools_state*
    - teedataobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 774
    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:781,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:786,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:788,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:793,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - tdo
    - i
    argTypes:
    - teedataobject*
    - int
    assertStmts:
    - condition: (i < LINKCELLS)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (i == tdo->numread)
      pos:
        line_end: 785
        line_start: 785
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 801
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 801
    functionName: teedataobject_getitem
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyIter_Next
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      teedataobject_getitem(teedataobject *tdo, int i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teedataobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:807,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:809,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:809,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:810,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:812,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 815
    functionName: teedataobject_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - teedataobject_CAST
    linkageType: ''
    returnType: int
    signature: int teedataobject_traverse(PyObject *op, visitproc visit, void * arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/itertoolsmodule.c:820,1
    - Dst: teedataobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:821,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:824,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 827
    functionName: teedataobject_safe_decref
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_SETREF
    - _PyObject_IsUniquelyReferenced
    - 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:834,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:836,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:838,1
    - Dst: teedataobject_safe_decref
      Src: /src/cpython/Modules/itertoolsmodule.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 843
    functionName: teedataobject_clear
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - teedataobject_safe_decref
    - teedataobject_CAST
    linkageType: ''
    returnType: int
    signature: int teedataobject_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:848,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:849,1
    - Dst: teedataobject_clear
      Src: /src/cpython/Modules/itertoolsmodule.c:850,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/itertoolsmodule.c:851,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 845
    functionDepth: 3
    functionLinenumber: 845
    functionLinenumberEnd: 853
    functionName: teedataobject_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teedataobject_clear
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:873,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:874,1
    - Dst: teedataobject_newinternal
      Src: /src/cpython/Modules/itertoolsmodule.c:876,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:880,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:884,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:885,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/itertoolsmodule.c:888,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:892,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:894,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:895,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:904,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:905,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: 873
        line_start: 873
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (tdo->nextlink == NULL)
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 907
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 907
    functionName: itertools_teedataobject_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teedataobject_newinternal
    - Py_INCREF
    - Py_SAFE_DOWNCAST
    - Py_IS_TYPE
    - get_module_state_by_cls
    - PyErr_SetString
    - PyList_GET_ITEM
    - Py_XDECREF
    - assert
    - PyList_GET_SIZE
    - Py_NewRef
    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:932,1
    - Dst: teedataobject_jumplink
      Src: /src/cpython/Modules/itertoolsmodule.c:936,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:939,1
    - Dst: teedataobject_getitem
      Src: /src/cpython/Modules/itertoolsmodule.c:942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 929
    functionDepth: 3
    functionLinenumber: 929
    functionLinenumberEnd: 947
    functionName: tee_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teedataobject_jumplink
    - teedataobject_getitem
    - teeobject_CAST
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teeobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:952,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:953,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:953,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.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: tee_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teeobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:961,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:961,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:965,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/itertoolsmodule.c:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - to
    argTypes:
    - teeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 971
    functionName: tee_copy_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_NewRef
    - Py_TYPE
    - PyObject_GC_Track
    linkageType: ''
    returnType: teeobject
    signature: 'teeobject *

      tee_copy_impl(teeobject *to)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: teeobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:976,1
    - Dst: tee_copy_impl
      Src: /src/cpython/Modules/itertoolsmodule.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 973
    functionDepth: 2
    functionLinenumber: 973
    functionLinenumberEnd: 978
    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:988,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/itertoolsmodule.c:991,1
    - Dst: tee_copy_impl
      Src: /src/cpython/Modules/itertoolsmodule.c:992,1
    - Dst: teedataobject_newinternal
      Src: /src/cpython/Modules/itertoolsmodule.c:996,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/itertoolsmodule.c:1001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1003,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/itertoolsmodule.c:1010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1012,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - state
    - iterable
    argTypes:
    - itertools_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 982
    functionDepth: 2
    functionLinenumber: 982
    functionLinenumberEnd: 1014
    functionName: tee_fromiterable
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teedataobject_newinternal
    - PyObject_TypeCheck
    - PyObject_GC_New
    - PyObject_GetIter
    - tee_copy_impl
    - Py_DECREF
    - PyObject_GC_Track
    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:1028,1
    - Dst: tee_fromiterable
      Src: /src/cpython/Modules/itertoolsmodule.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1024
    functionDepth: 3
    functionLinenumber: 1024
    functionLinenumberEnd: 1030
    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:1035,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/itertoolsmodule.c:1037,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1040
    functionName: tee_clear
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyObject_ClearWeakRefs
    - teeobject_CAST
    linkageType: ''
    returnType: int
    signature: int tee_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1045,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1046,1
    - Dst: tee_clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1047,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/itertoolsmodule.c:1048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1050
    functionName: tee_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - tee_clear
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void tee_dealloc(PyObject *op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:1099,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1106,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/itertoolsmodule.c:1110,1
    - Dst: tee_fromiterable
      Src: /src/cpython/Modules/itertoolsmodule.c:1111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1114,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:1118,1
    - Dst: tee_copy
      Src: /src/cpython/Modules/itertoolsmodule.c:1120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1122,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:1125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - module
    - iterable
    - n
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1092
    functionDepth: 3
    functionLinenumber: 1092
    functionLinenumberEnd: 1128
    functionName: itertools_tee_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - tee_copy
    - tee_fromiterable
    - PyObject_GetIter
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    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: 1141
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1141
    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:1160,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/itertoolsmodule.c:1164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1166,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1171,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1182
    functionName: itertools_cycle_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyList_New
    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:1187,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1188,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1189,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1190,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1191,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1194
    functionName: cycle_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - cycleobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void cycle_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cycleobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1199,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1200,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1200,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1201,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1204
    functionName: cycle_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - cycleobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:1209,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:1212,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:1215,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/itertoolsmodule.c:1217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1218,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1224,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:1227,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1229,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:1232,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Modules/itertoolsmodule.c:1234,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:1235,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:1237,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:1240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (item)
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1242
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1242
    functionName: cycle_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GetItemRef
    - cycleobject_CAST
    - assert
    - Py_CLEAR
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyErr_Occurred
    - PyList_Append
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyList_GET_SIZE
    - PyIter_Next
    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: 1275
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1275
    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:1295,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1302,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:1305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1310
    functionName: itertools_dropwhile_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:1315,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1316,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1317,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1318,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1319,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1322
    functionName: dropwhile_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - dropwhileobject_CAST
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dropwhile_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dropwhileobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1327,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1328,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1328,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1329,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1332
    functionName: dropwhile_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - dropwhileobject_CAST
    - Py_TYPE
    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:1337,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1343,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:1345,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/itertoolsmodule.c:1351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1353,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:1356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1362,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1366
    functionName: dropwhile_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - iternext
    - dropwhileobject_CAST
    - Py_DECREF
    - Py_TYPE
    - PyObject_CallOneArg
    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: 1399
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1399
    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:1418,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1425,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:1428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1433
    functionName: itertools_takewhile_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:1438,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1439,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1440,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1441,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1442,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1445
    functionName: takewhile_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - takewhileobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void takewhile_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: takewhileobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1450,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1451,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1451,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1452,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1455
    functionName: takewhile_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - takewhileobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:1460,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1468,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/itertoolsmodule.c:1472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1474,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:1477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1485
    functionName: takewhile_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - takewhileobject_CAST
    - Py_DECREF
    - Py_TYPE
    - PyObject_CallOneArg
    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: 1520
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1520
    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:1530,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/itertoolsmodule.c:1533,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/itertoolsmodule.c:1536,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/itertoolsmodule.c:1539,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:1542,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1544,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1545,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1546,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:1554,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1555,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1556,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:1558,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1560,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1562,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1570,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:1578,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1579,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1580,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:1583,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1589,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1596,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1606
    functionName: islice_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyObject_GetIter
    - PyErr_Clear
    - PyErr_Occurred
    - find_state_by_type
    - _PyArg_NoKeywords
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyArg_UnpackTuple
    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:1611,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1612,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1613,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1614,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1617
    functionName: islice_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - isliceobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void islice_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isliceobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1622,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1623,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1623,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1626
    functionName: islice_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - isliceobject_CAST
    - Py_TYPE
    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:1631,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1641,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:1643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1646,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:1651,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1664,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1666
    functionName: islice_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - isliceobject_CAST
    - iternext
    - Py_CLEAR
    - Py_DECREF
    - Py_TYPE
    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: 1709
      start: 1708
    functionDepth: 0
    functionLinenumber: 1708
    functionLinenumberEnd: 1709
    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:1728,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:1733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1735,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:1738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1742
    functionName: itertools_starmap_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:1747,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1748,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1749,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1750,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1751,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1744
    functionDepth: 1
    functionLinenumber: 1744
    functionLinenumberEnd: 1754
    functionName: starmap_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - starmapobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void starmap_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starmapobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1759,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1760,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1760,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1761,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1764
    functionName: starmap_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - starmapobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:1769,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1774,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/itertoolsmodule.c:1777,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:1778,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1779,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/itertoolsmodule.c:1784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1766
    functionDepth: 1
    functionLinenumber: 1766
    functionLinenumberEnd: 1787
    functionName: starmap_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - starmapobject_CAST
    - PySequence_Tuple
    - PyObject_Call
    - Py_DECREF
    - PyTuple_CheckExact
    - Py_TYPE
    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: 1819
      start: 1818
    functionDepth: 0
    functionLinenumber: 1818
    functionLinenumberEnd: 1819
    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:1825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - type
    - source
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1820
    functionDepth: 0
    functionLinenumber: 1820
    functionLinenumberEnd: 1834
    functionName: chain_new_internal
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_new_internal(PyTypeObject *type, PyObject *source)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_state_by_type
      Src: /src/cpython/Modules/itertoolsmodule.c:1841,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/itertoolsmodule.c:1844,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1847,1
    - Dst: chain_new_internal
      Src: /src/cpython/Modules/itertoolsmodule.c:1851,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1836
    functionDepth: 2
    functionLinenumber: 1836
    functionLinenumberEnd: 1852
    functionName: chain_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - chain_new_internal
    - PyObject_GetIter
    - find_state_by_type
    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:1869,1
    - Dst: chain_new_internal
      Src: /src/cpython/Modules/itertoolsmodule.c:1873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1863
    functionDepth: 1
    functionLinenumber: 1863
    functionLinenumberEnd: 1874
    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:1879,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1880,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:1881,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1882,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1883,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:1884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1886
    functionName: chain_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - chainobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void chain_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chainobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:1891,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1892,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1892,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1893,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1896
    functionName: chain_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - chainobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:1901,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:1909,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1911,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:1914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:1915,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1917,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:1921,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:1924,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/itertoolsmodule.c:1925,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:1926,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:1931,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1935
    functionName: chain_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - chainobject_CAST
    - PyObject_GetIter
    - Py_CLEAR
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - Py_TYPE
    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:1941,1
    - Dst: chain_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:1942,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:1943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1937
    functionDepth: 2
    functionLinenumber: 1937
    functionLinenumberEnd: 1945
    functionName: chain_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - chain_next_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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: 1995
      start: 1994
    functionDepth: 0
    functionLinenumber: 1994
    functionLinenumberEnd: 1995
    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:2007,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/itertoolsmodule.c:2010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2012,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2015,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2017,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2023,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/itertoolsmodule.c:2023,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2027,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2029,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2035,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/itertoolsmodule.c:2037,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2041,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2046,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:2047,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2050,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2054,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2055,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2056,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:2061,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2074,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2075,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: 2022
        line_start: 2022
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2077
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2077
    functionName: product_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyTuple_GET_ITEM
    - PyArg_ParseTupleAndKeywords
    - PySequence_Tuple
    - PyErr_NoMemory
    - Py_INCREF
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - PyMem_Free
    - assert
    - Py_DECREF
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - PyTuple_CheckExact
    - PyTuple_New
    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:2082,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2083,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:2084,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2085,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2086,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2087,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:2088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2079
    functionDepth: 1
    functionLinenumber: 2079
    functionLinenumberEnd: 2090
    functionName: product_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - productobject_CAST
    - PyTypeObject*::tp_free
    - PyMem_Free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void product_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: productobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2095,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2096,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2096,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2097,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2092
    functionDepth: 1
    functionLinenumber: 2092
    functionLinenumberEnd: 2099
    functionName: product_sizeof
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - productobject_CAST
    - _PyObject_SIZE
    - PyTuple_GET_SIZE
    - 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:2106,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2107,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2107,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2108,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2111
    functionName: product_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - productobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2116,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2122,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2131,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2136,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2137,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2139,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2140,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2141,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/itertoolsmodule.c:2147,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/itertoolsmodule.c:2149,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:2149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2153,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:2158,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2161,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2161,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2166,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2168,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2171,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2172,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2173,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2175,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2178,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2179,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2180,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2182,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:2193,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (npools==0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2160
        line_start: 2160
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2198
      start: 2113
    functionDepth: 1
    functionLinenumber: 2113
    functionLinenumberEnd: 2198
    functionName: product_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - PyTuple_FromArray
    - _PyObject_IsUniquelyReferenced
    - Py_REFCNT
    - productobject_CAST
    - PyTuple_SET_ITEM
    - _PyTuple_ITEMS
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - _PyTuple_Recycle
    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:2204,1
    - Dst: product_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:2205,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2208
    functionName: product_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - product_next_lock_held
    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: 2264
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2264
    functionName: combinationsobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: combinationsobject_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:2286,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2289,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2291,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/itertoolsmodule.c:2293,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:2301,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2315,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - type
    - iterable
    - r
    argTypes:
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2275
    functionDepth: 1
    functionLinenumber: 2275
    functionLinenumberEnd: 2318
    functionName: itertools_combinations_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PySequence_Tuple
    - PyErr_NoMemory
    - PyMem_Free
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    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:2323,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2324,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:2325,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2326,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2327,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2328,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:2329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2331
    functionName: combinations_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - combinationsobject_CAST
    - PyTypeObject*::tp_free
    - PyMem_Free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void combinations_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: combinationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2336,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2337,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2337,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2333
    functionDepth: 1
    functionLinenumber: 2333
    functionLinenumberEnd: 2340
    functionName: combinations_sizeof
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - combinationsobject_CAST
    - PyLong_FromSize_t
    - _PyObject_SIZE
    - Py_TYPE
    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:2345,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2346,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2346,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2347,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2342
    functionDepth: 1
    functionLinenumber: 2342
    functionLinenumberEnd: 2350
    functionName: combinations_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - combinationsobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2355,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2361,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2370,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2376,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2377,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2378,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/itertoolsmodule.c:2382,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/itertoolsmodule.c:2384,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:2384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2388,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:2393,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2399,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2399,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2423,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2424,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2425,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2427,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:2431,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2398
        line_start: 2398
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2436
      start: 2352
    functionDepth: 1
    functionLinenumber: 2352
    functionLinenumberEnd: 2436
    functionName: combinations_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - PyTuple_FromArray
    - _PyObject_IsUniquelyReferenced
    - combinationsobject_CAST
    - Py_REFCNT
    - PyTuple_SET_ITEM
    - _PyTuple_ITEMS
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - _PyTuple_Recycle
    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:2442,1
    - Dst: combinations_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:2443,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2438
    functionDepth: 2
    functionLinenumber: 2438
    functionLinenumberEnd: 2446
    functionName: combinations_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - combinations_next_lock_held
    - Py_END_CRITICAL_SECTION
    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: 2513
      start: 2512
    functionDepth: 0
    functionLinenumber: 2512
    functionLinenumberEnd: 2513
    functionName: cwrobject_CAST
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cwrobject_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/itertoolsmodule.c:2538,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2541,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2543,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/itertoolsmodule.c:2545,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:2553,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2567,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - type
    - iterable
    - r
    argTypes:
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2526
    functionDepth: 1
    functionLinenumber: 2526
    functionLinenumberEnd: 2570
    functionName: itertools_combinations_with_replacement_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PySequence_Tuple
    - PyErr_NoMemory
    - PyMem_Free
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    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:2575,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2576,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:2577,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2578,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2579,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2580,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:2581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2572
    functionDepth: 1
    functionLinenumber: 2572
    functionLinenumberEnd: 2583
    functionName: cwr_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - cwrobject_CAST
    - PyTypeObject*::tp_free
    - PyMem_Free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void cwr_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cwrobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2588,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2589,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2589,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2585
    functionDepth: 1
    functionLinenumber: 2585
    functionLinenumberEnd: 2592
    functionName: cwr_sizeof
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - cwrobject_CAST
    - _PyObject_SIZE
    - Py_TYPE
    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:2597,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2598,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2598,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2599,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2594
    functionDepth: 1
    functionLinenumber: 2594
    functionLinenumberEnd: 2602
    functionName: cwr_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - cwrobject_CAST
    - Py_TYPE
    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:2607,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2613,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2622,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2627,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2629,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2630,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2631,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/itertoolsmodule.c:2636,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/itertoolsmodule.c:2638,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:2638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2642,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:2647,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2651,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2651,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2666,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2667,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2670,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2671,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2673,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:2677,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2650
        line_start: 2650
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (indices[i] == 0)
      pos:
        line_end: 2628
        line_start: 2628
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (index < n)
      pos:
        line_end: 2665
        line_start: 2665
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2682
      start: 2604
    functionDepth: 1
    functionLinenumber: 2604
    functionLinenumberEnd: 2682
    functionName: cwr_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_INCREF
    - cwrobject_CAST
    - PyTuple_FromArray
    - _PyObject_IsUniquelyReferenced
    - Py_REFCNT
    - PyTuple_SET_ITEM
    - _PyTuple_ITEMS
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - _PyTuple_Recycle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cwr_next_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2688,1
    - Dst: cwr_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:2689,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2684
    functionDepth: 2
    functionLinenumber: 2684
    functionLinenumberEnd: 2692
    functionName: cwr_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - cwr_next_lock_held
    - Py_END_CRITICAL_SECTION
    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: 2760
      start: 2759
    functionDepth: 0
    functionLinenumber: 2759
    functionLinenumberEnd: 2760
    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:2784,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2787,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:2791,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2792,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2795,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:2796,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:2800,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2804,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2805,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/itertoolsmodule.c:2807,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:2817,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2832,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2834,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2835,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - type
    - iterable
    - robj
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2771
    functionDepth: 1
    functionLinenumber: 2771
    functionLinenumberEnd: 2837
    functionName: itertools_permutations_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PySequence_Tuple
    - PyErr_NoMemory
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Occurred
    - PyMem_Free
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - 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:2842,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2843,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:2844,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2845,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2846,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2847,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/itertoolsmodule.c:2848,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:2849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2839
    functionDepth: 1
    functionLinenumber: 2839
    functionLinenumberEnd: 2851
    functionName: permutations_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyMem_Free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - permutationsobject_CAST
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void permutations_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: permutationsobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:2856,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2857,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2857,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2858,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:2860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2853
    functionDepth: 1
    functionLinenumber: 2853
    functionLinenumberEnd: 2861
    functionName: permutations_sizeof
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - permutationsobject_CAST
    - _PyObject_SIZE
    - PyTuple_GET_SIZE
    - 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:2866,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2867,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:2867,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2868,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:2869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2871
    functionName: permutations_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - permutationsobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2876,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:2883,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:2892,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2898,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2899,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2900,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/itertoolsmodule.c:2907,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/itertoolsmodule.c:2909,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/itertoolsmodule.c:2909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2913,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:2918,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:2921,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/itertoolsmodule.c:2921,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2943,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2944,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2945,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:2946,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:2947,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:2957,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2920
        line_start: 2920
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2962
      start: 2873
    functionDepth: 1
    functionLinenumber: 2873
    functionLinenumberEnd: 2962
    functionName: permutations_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - PyTuple_FromArray
    - _PyObject_IsUniquelyReferenced
    - Py_REFCNT
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - _PyTuple_ITEMS
    - assert
    - Py_DECREF
    - permutationsobject_CAST
    - Py_NewRef
    - PyTuple_New
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      permutations_next_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2968,1
    - Dst: permutations_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:2969,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:2970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2972
      start: 2964
    functionDepth: 2
    functionLinenumber: 2964
    functionLinenumberEnd: 2972
    functionName: permutations_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - permutations_next_lock_held
    - Py_END_CRITICAL_SECTION
    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: 3013
      start: 3012
    functionDepth: 0
    functionLinenumber: 3012
    functionLinenumberEnd: 3013
    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:3033,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3040,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3045,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3049,1
    - Dst: find_state_by_type
      Src: /src/cpython/Modules/itertoolsmodule.c:3050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - type
    - iterable
    - binop
    - initial
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 3024
    functionDepth: 2
    functionLinenumber: 3024
    functionLinenumberEnd: 3052
    functionName: itertools_accumulate_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - find_state_by_type
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_XNewRef
    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:3057,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3058,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3059,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3060,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3061,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3062,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3063,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3054
    functionDepth: 1
    functionLinenumber: 3054
    functionLinenumberEnd: 3066
    functionName: accumulate_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - accumulateobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void accumulate_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accumulateobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3071,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3072,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3072,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3073,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3074,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3075,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3068
    functionDepth: 1
    functionLinenumber: 3068
    functionLinenumberEnd: 3078
    functionName: accumulate_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - accumulateobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:3083,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3088,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3089,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3091,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3096,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/itertoolsmodule.c:3101,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/itertoolsmodule.c:3103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3104,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3108,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3080
    functionDepth: 1
    functionLinenumber: 3080
    functionLinenumberEnd: 3111
    functionName: accumulate_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - accumulateobject_CAST
    - Py_INCREF
    - PyNumber_Add
    - Py_SETREF
    - PyObject_CallFunctionObjArgs
    - Py_DECREF
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      accumulate_next_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:3117,1
    - Dst: accumulate_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:3118,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:3119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3113
    functionDepth: 2
    functionLinenumber: 3113
    functionLinenumberEnd: 3121
    functionName: accumulate_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - accumulate_next_lock_held
    - Py_END_CRITICAL_SECTION
    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: 3160
      start: 3159
    functionDepth: 0
    functionLinenumber: 3159
    functionLinenumberEnd: 3160
    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:3179,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:3182,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3187,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3195,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - seq1
    - seq2
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3172
    functionDepth: 1
    functionLinenumber: 3172
    functionLinenumberEnd: 3198
    functionName: itertools_compress_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - PyTypeObject*::tp_alloc
    - 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:3203,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3204,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3205,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3206,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3207,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3200
    functionDepth: 1
    functionLinenumber: 3200
    functionLinenumberEnd: 3210
    functionName: compress_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - compressobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void compress_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compressobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3215,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3216,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3216,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3217,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3212
    functionDepth: 1
    functionLinenumber: 3212
    functionLinenumberEnd: 3220
    functionName: compress_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - compressobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:3225,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3228,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3229,1
    - Dst: datanext
      Src: /src/cpython/Modules/itertoolsmodule.c:3239,1
    - Dst: selectornext
      Src: /src/cpython/Modules/itertoolsmodule.c:3243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3245,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:3249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3222
    functionDepth: 1
    functionLinenumber: 3222
    functionLinenumberEnd: 3257
    functionName: compress_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - datanext
    - selectornext
    - PyObject_IsTrue
    - compressobject_CAST
    - Py_DECREF
    - 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: 3289
      start: 3288
    functionDepth: 0
    functionLinenumber: 3288
    functionLinenumberEnd: 3289
    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:3309,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3316,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3301
    functionDepth: 1
    functionLinenumber: 3301
    functionLinenumberEnd: 3323
    functionName: itertools_filterfalse_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:3328,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3329,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3330,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3331,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3332,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3335
      start: 3325
    functionDepth: 1
    functionLinenumber: 3325
    functionLinenumberEnd: 3335
    functionName: filterfalse_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - filterfalseobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void filterfalse_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filterfalseobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3340,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3341,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3341,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3342,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3345
      start: 3337
    functionDepth: 1
    functionLinenumber: 3337
    functionLinenumberEnd: 3345
    functionName: filterfalse_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - filterfalseobject_CAST
    - Py_TYPE
    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:3350,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3356,1
    - Dst: iternext
      Src: /src/cpython/Modules/itertoolsmodule.c:3358,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:3363,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/itertoolsmodule.c:3366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3368,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/itertoolsmodule.c:3371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3347
    functionDepth: 1
    functionLinenumber: 3347
    functionLinenumberEnd: 3380
    functionName: filterfalse_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - filterfalseobject_CAST
    - PyObject_IsTrue
    - iternext
    - Py_DECREF
    - Py_TYPE
    - PyObject_CallOneArg
    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: 3413
      start: 3412
    functionDepth: 0
    functionLinenumber: 3412
    functionLinenumberEnd: 3413
    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:3457,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3458,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:3459,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3463,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3464,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3469,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3469,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3470,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3471,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:3472,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/itertoolsmodule.c:3478,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3480,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/itertoolsmodule.c:3484,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3486,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3488,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3492,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3492,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/itertoolsmodule.c:3493,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3496,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:3497,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:3502,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3506,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3508,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3509,1
    - Dst: PyLong_AS_LONG
      Src: /src/cpython/Modules/itertoolsmodule.c:3509,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3512,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3515,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: 3468
        line_start: 3468
        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: 3506
        line_start: 3505
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: "(!fast_mode ||\n           (PyLong_Check(long_step) && PyLong_AS_LONG(long_step)
        == 1))"
      pos:
        line_end: 3508
        line_start: 3507
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (long_cnt != NULL && long_step != NULL)
      pos:
        line_end: 3487
        line_start: 3487
        source_file: /src/cpython/Modules/itertoolsmodule.c
    - condition: (PyLong_Check(long_step))
      pos:
        line_end: 3491
        line_start: 3491
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 3523
      start: 3447
    functionDepth: 1
    functionLinenumber: 3447
    functionLinenumberEnd: 3523
    functionName: itertools_count_impl
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyLong_AS_LONG
    - _PyLong_GetOne
    - PyErr_SetString
    - PyNumber_Check
    - PyLong_Check
    - Py_CLEAR
    - PyErr_Clear
    - PyLong_AsLong
    - PyErr_Occurred
    - assert
    - _PyLong_GetZero
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    - 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:3528,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3529,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3530,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3531,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3532,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3535
      start: 3525
    functionDepth: 1
    functionLinenumber: 3525
    functionLinenumberEnd: 3535
    functionName: count_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - countobject_CAST
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void count_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3540,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3541,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3541,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3542,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3537
    functionDepth: 1
    functionLinenumber: 3537
    functionLinenumberEnd: 3545
    functionName: count_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - countobject_CAST
    - Py_TYPE
    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:3552,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3557,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/itertoolsmodule.c:3563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - lz
    argTypes:
    - countobject*
    assertStmts:
    - condition: (lz->cnt == PY_SSIZE_T_MAX && lz->long_cnt != NULL)
      pos:
        line_end: 3556
        line_start: 3556
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 3570
      start: 3547
    functionDepth: 1
    functionLinenumber: 3547
    functionLinenumberEnd: 3570
    functionName: count_nextlong
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Add
    - PyLong_FromSsize_t
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_nextlong(countobject *lz)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: countobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3575,1
    - Dst: count_nextlong
      Src: /src/cpython/Modules/itertoolsmodule.c:3578,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3579,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Modules/itertoolsmodule.c:3587,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:3590,1
    - Dst: count_nextlong
      Src: /src/cpython/Modules/itertoolsmodule.c:3591,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:3592,1
    - Dst: _Py_atomic_compare_exchange_ssize
      Src: /src/cpython/Modules/itertoolsmodule.c:3595,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3572
    functionDepth: 2
    functionLinenumber: 3572
    functionLinenumberEnd: 3600
    functionName: count_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_FromSsize_t
    - countobject_CAST
    - _Py_atomic_compare_exchange_ssize
    - count_nextlong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_next(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: countobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3605,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3607,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3608,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3608,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3610,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/itertoolsmodule.c:3611,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3612,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/itertoolsmodule.c:3613,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3617,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3618,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3618,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3622,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3623,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3625
      start: 3602
    functionDepth: 1
    functionLinenumber: 3602
    functionLinenumberEnd: 3625
    functionName: count_repr
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Clear
    - countobject_CAST
    - PyErr_Occurred
    - _PyType_Name
    - Py_TYPE
    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: 3658
      start: 3657
    functionDepth: 0
    functionLinenumber: 3657
    functionLinenumberEnd: 3658
    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:3667,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3669,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/itertoolsmodule.c:3670,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3677,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3683
      start: 3659
    functionDepth: 1
    functionLinenumber: 3659
    functionLinenumberEnd: 3683
    functionName: repeat_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:3688,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3689,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3690,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3691,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3685
    functionDepth: 1
    functionLinenumber: 3685
    functionLinenumberEnd: 3694
    functionName: repeat_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - repeatobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void repeat_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repeatobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3699,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3700,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3700,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3696
    functionDepth: 1
    functionLinenumber: 3696
    functionLinenumberEnd: 3703
    functionName: repeat_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - repeatobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:3708,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:3709,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Modules/itertoolsmodule.c:3715,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3718
      start: 3705
    functionDepth: 1
    functionLinenumber: 3705
    functionLinenumberEnd: 3718
    functionName: repeat_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - repeatobject_CAST
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_next(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repeatobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3723,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3725,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3726,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3726,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/itertoolsmodule.c:3728,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/itertoolsmodule.c:3729,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3731
      start: 3720
    functionDepth: 1
    functionLinenumber: 3720
    functionLinenumberEnd: 3731
    functionName: repeat_repr
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - repeatobject_CAST
    - PyUnicode_FromFormat
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: repeatobject_CAST
      Src: /src/cpython/Modules/itertoolsmodule.c:3736,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:3738,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/itertoolsmodule.c:3741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3742
      start: 3733
    functionDepth: 1
    functionLinenumber: 3733
    functionLinenumberEnd: 3742
    functionName: repeat_len
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - PyErr_SetString
    - repeatobject_CAST
    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: 3791
      start: 3790
    functionDepth: 0
    functionLinenumber: 3790
    functionLinenumberEnd: 3791
    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:3802,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3802,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3804,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/itertoolsmodule.c:3805,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/itertoolsmodule.c:3805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3808,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/itertoolsmodule.c:3809,1
    - Dst: assert
      Src: /src/cpython/Modules/itertoolsmodule.c:3817,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/itertoolsmodule.c:3817,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/itertoolsmodule.c:3818,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:3821,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3825,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/itertoolsmodule.c:3826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3828,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3831,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:3835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3837,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3841,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3842,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/itertoolsmodule.c:3846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3849,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3856,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: 3816
        line_start: 3816
        source_file: /src/cpython/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 3858
      start: 3792
    functionDepth: 1
    functionLinenumber: 3792
    functionLinenumberEnd: 3858
    functionName: zip_longest_new
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_ITEM
    - Py_INCREF
    - PyTuple_New
    - PyErr_SetString
    - PyObject_GetIter
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - assert
    - PyTuple_Check
    - PyDict_CheckExact
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyDict_GetItemWithError
    - _Py_ID
    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:3863,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3864,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/itertoolsmodule.c:3865,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3866,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3867,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3868,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/itertoolsmodule.c:3869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3860
    functionDepth: 1
    functionLinenumber: 3860
    functionLinenumberEnd: 3871
    functionName: zip_longest_dealloc
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - ziplongestobject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:3876,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3877,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:3877,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3878,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3879,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:3880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3882
      start: 3873
    functionDepth: 1
    functionLinenumber: 3873
    functionLinenumberEnd: 3882
    functionName: zip_longest_traverse
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - ziplongestobject_CAST
    - Py_TYPE
    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:3887,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/itertoolsmodule.c:3899,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3900,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3902,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3904,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:3906,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3911,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3914,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3915,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3916,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3920,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3922,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Modules/itertoolsmodule.c:3926,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/itertoolsmodule.c:3928,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3932,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3934,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/itertoolsmodule.c:3936,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/itertoolsmodule.c:3939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3941,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/itertoolsmodule.c:3944,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3945,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/itertoolsmodule.c:3946,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/itertoolsmodule.c:3950,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3954
      start: 3884
    functionDepth: 1
    functionLinenumber: 3884
    functionLinenumberEnd: 3954
    functionName: zip_longest_next_lock_held
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - ziplongestobject_CAST
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - Py_NewRef
    - _PyObject_IsUniquelyReferenced
    - _PyTuple_Recycle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_longest_next_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:3960,1
    - Dst: zip_longest_next_lock_held
      Src: /src/cpython/Modules/itertoolsmodule.c:3961,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/itertoolsmodule.c:3962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3956
    functionDepth: 2
    functionLinenumber: 3956
    functionLinenumberEnd: 3964
    functionName: zip_longest_next
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - zip_longest_next_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_longest_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/itertoolsmodule.c:4036,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4037,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4038,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4039,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4040,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4041,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4042,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4043,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4044,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4045,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4046,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4047,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4048,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4049,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4050,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4051,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4052,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4053,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4054,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4055,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4056,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4057,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/itertoolsmodule.c:4058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4060
      start: 4033
    functionDepth: 1
    functionLinenumber: 4033
    functionLinenumberEnd: 4060
    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:4065,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4066,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4067,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4068,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4069,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4070,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4071,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4072,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4073,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4074,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4075,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4076,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4077,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4078,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4079,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4080,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4081,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4082,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4083,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4084,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4085,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4086,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/itertoolsmodule.c:4087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4089
      start: 4062
    functionDepth: 1
    functionLinenumber: 4062
    functionLinenumberEnd: 4089
    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:4094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4095
      start: 4091
    functionDepth: 2
    functionLinenumber: 4091
    functionLinenumberEnd: 4095
    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: 4107
      start: 4097
    functionDepth: 0
    functionLinenumber: 4097
    functionLinenumberEnd: 4107
    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:4111,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4112,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4113,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4114,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4115,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4116,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4117,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4118,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4119,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4120,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4121,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4122,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4123,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4124,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4125,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4126,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4127,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4128,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4129,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4130,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4131,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4132,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4133,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/itertoolsmodule.c:4135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4137
      start: 4108
    functionDepth: 1
    functionLinenumber: 4108
    functionLinenumberEnd: 4137
    functionName: itertoolsmodule_exec
    functionSourceFile: /src/cpython/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - ADD_TYPE
    - Py_SET_TYPE
    linkageType: ''
    returnType: int
    signature: int itertoolsmodule_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/itertoolsmodule.c:4168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4169
      start: 4165
    functionDepth: 1
    functionLinenumber: 4165
    functionLinenumberEnd: 4169
    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:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    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:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    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:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    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:86,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/gcmodule.c:89,1
    - Dst: _PyGC_Collect
      Src: /src/cpython/Modules/gcmodule.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - generation
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 94
    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:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Modules/gcmodule.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    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: 179
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 179
    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:191,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/gcmodule.c:193,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/gcmodule.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 203
    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:215,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/gcmodule.c:218,1
    - Dst: _Py_atomic_add_int
      Src: /src/cpython/Modules/gcmodule.c:222,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/gcmodule.c:227,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/gcmodule.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 237
    functionName: gc_get_count_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int
    - _PyThreadState_GET
    - get_gc_state
    - 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:251,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:255,1
    - Dst: _PyGC_GetReferrers
      Src: /src/cpython/Modules/gcmodule.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - objs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: gc_get_referrers_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - _PyGC_GetReferrers
    - _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:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 265
    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:270,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/gcmodule.c:271,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Modules/gcmodule.c:272,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/gcmodule.c:276,1
    - Dst: traverse
      Src: /src/cpython/Modules/gcmodule.c:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - result
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 285
    functionName: append_referrents
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyObject_IS_GC
    - PyTuple_GET_SIZE
    - Py_TYPE
    - traverse
    linkageType: ''
    returnType: int
    signature: int append_referrents(PyObject *result, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/gcmodule.c:299,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:302,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/gcmodule.c:303,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/gcmodule.c:310,1
    - Dst: append_referrents
      Src: /src/cpython/Modules/gcmodule.c:311,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/gcmodule.c:312,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/gcmodule.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - objs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 319
    functionName: gc_get_referents_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - PySys_Audit
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - Py_CLEAR
    - PyList_New
    - append_referrents
    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:337,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/gcmodule.c:342,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/gcmodule.c:349,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:354,1
    - Dst: _PyGC_GetObjects
      Src: /src/cpython/Modules/gcmodule.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - generation
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 356
    functionName: gc_get_objects_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetString
    - _PyGC_GetObjects
    - _PyInterpreterState_GET
    - PyErr_Format
    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:373,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/gcmodule.c:378,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/gcmodule.c:385,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/gcmodule.c:394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/gcmodule.c:395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/gcmodule.c:398,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/gcmodule.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 405
    functionName: gc_get_stats_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - get_gc_state
    - Py_BuildValue
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    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:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 424
    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:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 440
    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:458,1
    - Dst: _PyGC_Freeze
      Src: /src/cpython/Modules/gcmodule.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: gc_freeze_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyGC_Freeze
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_freeze_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:475,1
    - Dst: _PyGC_Unfreeze
      Src: /src/cpython/Modules/gcmodule.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 478
    functionName: gc_unfreeze_impl
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyGC_Unfreeze
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_unfreeze_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/gcmodule.c:490,1
    - Dst: _PyGC_GetFreezeCount
      Src: /src/cpython/Modules/gcmodule.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 492
    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:542,1
    - Dst: assert
      Src: /src/cpython/Modules/gcmodule.c:546,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/gcmodule.c:547,1
    - Dst: assert
      Src: /src/cpython/Modules/gcmodule.c:550,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/gcmodule.c:551,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:556,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:557,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:558,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:559,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/gcmodule.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 545
        line_start: 545
        source_file: /src/cpython/Modules/gcmodule.c
    - condition: (gcstate->callbacks != NULL)
      pos:
        line_end: 549
        line_start: 549
        source_file: /src/cpython/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 563
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 563
    functionName: gcmodule_exec
    functionSourceFile: /src/cpython/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddObjectRef
    - get_gc_state
    - ADD_INT
    - assert
    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: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    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:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 586
    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:68,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/fcntlmodule.c:72,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/fcntlmodule.c:75,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:82,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:84,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:86,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/fcntlmodule.c:88,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/fcntlmodule.c:90,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/fcntlmodule.c:90,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/fcntlmodule.c:96,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:101,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:102,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:103,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:107,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:109,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:111,1
    - Dst: memcmp
      Src: /src/cpython/Modules/fcntlmodule.c:113,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:114,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/fcntlmodule.c:121,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/fcntlmodule.c:124,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:126,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/fcntlmodule.c:129,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:130,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:131,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:135,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:137,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:140,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/fcntlmodule.c:142,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:146,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/fcntlmodule.c:151,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/fcntlmodule.c:154,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/fcntlmodule.c:158,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 4
    argNames:
    - module
    - fd
    - code
    - arg
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 163
    functionName: fcntl_fcntl_impl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - PyArg_Parse
    - memcpy
    - PyBytesWriter_Finish
    - fcntl
    - PySys_Audit
    - PyUnicode_Check
    - PyIndex_Check
    - PyObject_CheckBuffer
    - memcmp
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyBytesWriter_GetData
    - PyErr_CheckSignals
    - PyBuffer_Release
    - PyErr_Format
    - PyErr_SetFromErrno
    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:222,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/fcntlmodule.c:226,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/fcntlmodule.c:229,1
    - Dst: ioctl
      Src: /src/cpython/Modules/fcntlmodule.c:236,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:238,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:240,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/fcntlmodule.c:242,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/fcntlmodule.c:244,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/fcntlmodule.c:244,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/fcntlmodule.c:249,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/fcntlmodule.c:249,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/fcntlmodule.c:250,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:254,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:255,1
    - Dst: ioctl
      Src: /src/cpython/Modules/fcntlmodule.c:260,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:262,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:265,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:267,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:271,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:273,1
    - Dst: memcmp
      Src: /src/cpython/Modules/fcntlmodule.c:274,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:275,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/fcntlmodule.c:283,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/fcntlmodule.c:285,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/fcntlmodule.c:288,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/fcntlmodule.c:291,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:296,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:297,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:298,1
    - Dst: ioctl
      Src: /src/cpython/Modules/fcntlmodule.c:302,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:304,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:306,1
    - Dst: memcmp
      Src: /src/cpython/Modules/fcntlmodule.c:308,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:309,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/fcntlmodule.c:316,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/fcntlmodule.c:319,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:321,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/fcntlmodule.c:324,1
    - Dst: memcpy
      Src: /src/cpython/Modules/fcntlmodule.c:325,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/fcntlmodule.c:326,1
    - Dst: ioctl
      Src: /src/cpython/Modules/fcntlmodule.c:330,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:332,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:335,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/fcntlmodule.c:337,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:341,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/fcntlmodule.c:346,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/fcntlmodule.c:349,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/fcntlmodule.c:353,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: 358
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 358
    functionName: fcntl_ioctl_impl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - PyArg_Parse
    - memcpy
    - PyBytesWriter_Finish
    - PyObject_GetBuffer
    - PySys_Audit
    - PyUnicode_Check
    - PyIndex_Check
    - PyObject_CheckBuffer
    - ioctl
    - memcmp
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyErr_Clear
    - PyBytesWriter_GetData
    - PyErr_CheckSignals
    - PyBuffer_Release
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_SetFromErrno
    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:380,1
    - Dst: flock
      Src: /src/cpython/Modules/fcntlmodule.c:387,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:389,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:407,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:414,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:416,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:420,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - module
    - fd
    - code
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 423
    functionName: fcntl_flock_impl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - fcntl
    - PySys_Audit
    - PyErr_CheckSignals
    - PyErr_SetString
    - flock
    - PyErr_SetFromErrno
    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:468,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/fcntlmodule.c:488,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/fcntlmodule.c:495,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/fcntlmodule.c:497,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/fcntlmodule.c:498,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/fcntlmodule.c:499,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/fcntlmodule.c:501,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/fcntlmodule.c:506,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/fcntlmodule.c:508,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/fcntlmodule.c:509,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/fcntlmodule.c:510,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/fcntlmodule.c:512,1
    - Dst: fcntl
      Src: /src/cpython/Modules/fcntlmodule.c:518,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/fcntlmodule.c:520,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/fcntlmodule.c:523,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: 526
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 526
    functionName: fcntl_lockf_impl
    functionSourceFile: /src/cpython/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - fcntl
    - PySys_Audit
    - PyErr_CheckSignals
    - PyErr_SetString
    - PyLong_AsLongLong
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetFromErrno
    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:551,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:552,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:553,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:570,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:573,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:576,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:579,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:582,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:585,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:588,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:591,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:594,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:597,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:600,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:603,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:606,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:618,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:621,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:624,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:627,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:631,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:634,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:637,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:641,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:644,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:647,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:650,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:653,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:657,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:660,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:665,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:668,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:674,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:677,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:683,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:684,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:685,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:686,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:687,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:691,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:692,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:693,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:694,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:698,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:699,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:700,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:701,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:702,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:703,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:708,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:711,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:716,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:719,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:722,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:725,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:728,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:731,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:750,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:755,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:758,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:761,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:764,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:767,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: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:783,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:784,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:785,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:790,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:791,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:792,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:795,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:799,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:800,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:801,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:802,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:803,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:804,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:806,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:808,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:809,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:810,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:811,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:815,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:816,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:817,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:818,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:819,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:820,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/fcntlmodule.c:822,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 228
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 826
    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:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 835
    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:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 858
    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:
    - _PyType_GetModuleState
    - assert
    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:
    - zoneinfo_get_state
    - PyType_GetModuleByDef
    - assert
    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: assert
      Src: /src/cpython/Modules/_zoneinfo.c:275,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:275,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:276,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_zoneinfo.c:279,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:280,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_zoneinfo.c:281,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:283,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:288,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - state
    - type
    - key
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 290
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 290
    functionName: zoneinfo_new_instance
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - load_data
    - Py_SETREF
    - PyObject_CallFunction
    - _PyErr_ChainExceptions1
    - PyObject_CallFunctionObjArgs
    - Py_CLEAR
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyObject_CallMethod
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_new_instance(zoneinfo_state *state, PyTypeObject *type, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_zoneinfo.c:296,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - type
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: get_weak_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_weak_cache(zoneinfo_state *state, PyTypeObject *type)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state_by_self
      Src: /src/cpython/Modules/_zoneinfo.c:318,1
    - Dst: zone_from_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:319,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:320,1
    - Dst: get_weak_cache
      Src: /src/cpython/Modules/_zoneinfo.c:324,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:330,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: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:338,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:347,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_zoneinfo.c:352,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:353,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_zoneinfo.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:357,1
    - Dst: update_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:362,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - type
    - key
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 364
    functionName: zoneinfo_ZoneInfo_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - get_weak_cache
    - zone_from_strong_cache
    - zoneinfo_new_instance
    - zoneinfo_get_state_by_self
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - _PyType_Name
    - PyObject_CallMethod
    - update_strong_cache
    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:369,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:370,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zoneinfo.c:370,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: zoneinfo_traverse
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - Py_VISIT
    - Py_TYPE
    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:378,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:379,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 382
    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:387,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zoneinfo.c:388,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_zoneinfo.c:389,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_zoneinfo.c:391,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:394,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:399,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:405,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:407,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:411,1
    - Dst: free_tzrule
      Src: /src/cpython/Modules/_zoneinfo.c:414,1
    - Dst: zoneinfo_clear
      Src: /src/cpython/Modules/_zoneinfo.c:416,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_zoneinfo.c:417,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - obj_self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 419
    functionName: zoneinfo_dealloc
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - FT_CLEAR_WEAKREFS
    - free_tzrule
    - xdecref_ttinfo
    - PyTypeObject*::tp_free
    - zoneinfo_clear
    - PyObject_GC_UnTrack
    - PyMem_Free
    - PyZoneInfo_ZoneInfo_CAST
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void zoneinfo_dealloc(PyObject *obj_self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_zoneinfo.c:441,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_zoneinfo.c:446,1
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:451,1
    - Dst: load_data
      Src: /src/cpython/Modules/_zoneinfo.c:452,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:458,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:462,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:462,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:463,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - type
    - cls
    - file_obj
    - key
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 466
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 466
    functionName: zoneinfo_ZoneInfo_from_file_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - load_data
    - PyObject_Repr
    - zoneinfo_get_state_by_cls
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:484,1
    - Dst: zoneinfo_new_instance
      Src: /src/cpython/Modules/_zoneinfo.c:485,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - cls
    - key
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 491
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:511,1
    - Dst: get_weak_cache
      Src: /src/cpython/Modules/_zoneinfo.c:512,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:520,1
    - Dst: clear_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:523,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_zoneinfo.c:527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:529,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_zoneinfo.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:536,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_zoneinfo.c:540,1
    - Dst: eject_from_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:543,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_zoneinfo.c:548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:561,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:562,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - type
    - cls
    - only_keys
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 567
    functionName: zoneinfo_ZoneInfo_clear_cache_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - get_weak_cache
    - clear_strong_cache
    - PyUnicode_FromString
    - eject_from_strong_cache
    - PyObject_GetIter
    - zoneinfo_get_state_by_cls
    - PyObject_CallMethodObjArgs
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_CallMethod
    - PyIter_Next
    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:585,1
    - Dst: find_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:586,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:586,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - cls
    - dt
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 591
    functionName: zoneinfo_ZoneInfo_utcoffset_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - zoneinfo_get_state_by_cls
    - Py_NewRef
    - find_ttinfo
    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:608,1
    - Dst: find_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:609,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:609,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - cls
    - dt
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 614
    functionName: zoneinfo_ZoneInfo_dst_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - zoneinfo_get_state_by_cls
    - Py_NewRef
    - find_ttinfo
    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:632,1
    - Dst: find_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:633,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:633,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - cls
    - dt
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 638
    functionName: zoneinfo_ZoneInfo_tzname_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - zoneinfo_get_state_by_cls
    - Py_NewRef
    - find_ttinfo
    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:645,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zoneinfo.c:646,1
    - Dst: GET_DT_TZINFO
      Src: /src/cpython/Modules/_zoneinfo.c:650,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zoneinfo.c:651,1
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:657,1
    - Dst: get_local_timestamp
      Src: /src/cpython/Modules/_zoneinfo.c:660,1
    - Dst: find_tzrule_ttinfo_fromutc
      Src: /src/cpython/Modules/_zoneinfo.c:673,1
    - Dst: PyDateTime_GET_YEAR
      Src: /src/cpython/Modules/_zoneinfo.c:674,1
    - Dst: _bisect
      Src: /src/cpython/Modules/_zoneinfo.c:697,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_zoneinfo.c:717,1
    - Dst: PyDateTime_CheckExact
      Src: /src/cpython/Modules/_zoneinfo.c:723,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:729,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_zoneinfo.c:733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:735,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_zoneinfo.c:738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:740,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:741,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_zoneinfo.c:746,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_zoneinfo.c:746,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_zoneinfo.c:747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:752,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - obj_self
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 763
    functionName: zoneinfo_fromutc
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyDateTime_GET_YEAR
    - PyDateTime_CheckExact
    - find_tzrule_ttinfo_fromutc
    - _bisect
    - PyTuple_New
    - get_local_timestamp
    - PyErr_SetString
    - PyNumber_Add
    - _PyLong_GetOne
    - PyObject_Call
    - PyDict_SetItemString
    - PyDict_New
    - PyObject_GetAttrString
    - PyZoneInfo_ZoneInfo_CAST
    - Py_DECREF
    - PyDateTime_Check
    - GET_DT_TZINFO
    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:768,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_zoneinfo.c:770,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:772,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_zoneinfo.c:772,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_zoneinfo.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(self->file_repr))
      pos:
        line_end: 771
        line_start: 771
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 774
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 774
    functionName: zoneinfo_repr
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - PyUnicode_Check
    - PyUnicode_FromFormat
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:779,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:781,1
    - Dst: zoneinfo_repr
      Src: /src/cpython/Modules/_zoneinfo.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 784
    functionName: zoneinfo_str
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyZoneInfo_ZoneInfo_CAST
    - zoneinfo_repr
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zoneinfo_str(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyZoneInfo_ZoneInfo_CAST
      Src: /src/cpython/Modules/_zoneinfo.c:801,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:805,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:812,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:817,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_zoneinfo.c:823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - obj_self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 826
    functionName: zoneinfo_reduce
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyObject_GetAttrString
    - PyErr_Format
    - PyZoneInfo_ZoneInfo_CAST
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    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:847,1
    - Dst: zoneinfo_ZoneInfo_impl
      Src: /src/cpython/Modules/_zoneinfo.c:848,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_zoneinfo.c:849,1
    - Dst: zoneinfo_get_state_by_cls
      Src: /src/cpython/Modules/_zoneinfo.c:853,1
    - Dst: zoneinfo_new_instance
      Src: /src/cpython/Modules/_zoneinfo.c:854,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: 856
      start: 840
    functionDepth: 4
    functionLinenumber: 840
    functionLinenumberEnd: 856
    functionName: zoneinfo_ZoneInfo__unpickle_impl
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - zoneinfo_get_state_by_cls
    - zoneinfo_new_instance
    - zoneinfo_ZoneInfo_impl
    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:875,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_zoneinfo.c:879,1
    - Dst: Delta_FromDelta
      Src: /src/cpython/Modules/_zoneinfo.c:880,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/_zoneinfo.c:884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - seconds
    argTypes:
    - zoneinfo_state*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 891
    functionName: load_timedelta
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyDict_SetDefaultRef
    - PyLong_FromLong
    - Delta_FromDelta
    - Py_DECREF
    - 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:906,1
    - Dst: load_timedelta
      Src: /src/cpython/Modules/_zoneinfo.c:911,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:916,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: 919
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 919
    functionName: build_ttinfo
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - load_timedelta
    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:926,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:927,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ttinfo
    argTypes:
    - _ttinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 930
    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:937,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_zoneinfo.c:942,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_zoneinfo.c:947,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - tti0
    - tti1
    argTypes:
    - _ttinfo*
    - _ttinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 953
    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:986,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_zoneinfo.c:993,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:994,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1000,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1005,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1010,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1015,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1020,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1025,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_zoneinfo.c:1031,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_zoneinfo.c:1036,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1046,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:1048,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1051,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:1053,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1058,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_zoneinfo.c:1062,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:1063,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1067,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_zoneinfo.c:1072,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1079,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1089,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1090,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:1093,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1097,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:1102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:1103,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1107,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_zoneinfo.c:1112,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_zoneinfo.c:1121,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:1123,1
    - Dst: utcoff_to_dstoff
      Src: /src/cpython/Modules/_zoneinfo.c:1128,1
    - Dst: ts_to_local
      Src: /src/cpython/Modules/_zoneinfo.c:1131,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zoneinfo.c:1138,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:1140,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_zoneinfo.c:1144,1
    - Dst: build_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1150,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_zoneinfo.c:1159,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:1161,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:1166,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_zoneinfo.c:1184,1
    - Dst: parse_tz_str
      Src: /src/cpython/Modules/_zoneinfo.c:1185,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1191,1
    - Dst: build_tzrule
      Src: /src/cpython/Modules/_zoneinfo.c:1204,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_zoneinfo.c:1211,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_zoneinfo.c:1213,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:1213,1
    - Dst: ttinfo_eq
      Src: /src/cpython/Modules/_zoneinfo.c:1243,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1258,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1264,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:1271,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1273,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1278,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1284,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1287,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1291,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1295,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1299,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 241
    argCount: 3
    argNames:
    - state
    - self
    - file_obj
    argTypes:
    - zoneinfo_state*
    - PyZoneInfo_ZoneInfo*
    - PyObject*
    assertStmts:
    - condition: (ttinfo_idx < self->num_ttinfos)
      pos:
        line_end: 1165
        line_start: 1165
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 1303
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 1303
    functionName: load_data
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - assert
    - PyErr_NoMemory
    - PyObject_IsTrue
    - PyLong_AsLongLong
    - PyTuple_GetItem
    - PyLong_AsLong
    - xdecref_ttinfo
    - PyMem_Free
    - PyMem_Malloc
    - Py_XDECREF
    - PyTuple_CheckExact
    - PyLong_AsSsize_t
    - PyMem_Calloc
    - ttinfo_eq
    - ts_to_local
    - Py_NewRef
    - PyTuple_Size
    - utcoff_to_dstoff
    - build_tzrule
    - parse_tz_str
    - Py_SETREF
    - build_ttinfo
    - PyErr_Format
    - PyObject_CallMethod
    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:1317,1
    - Dst: is_leap_year
      Src: /src/cpython/Modules/_zoneinfo.c:1319,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_zoneinfo.c:1347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - base_self
    - year
    argTypes:
    - TransitionRuleType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1350
    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:1365,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1370,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1375,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1380,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: 1398
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1398
    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:1420,1
    - Dst: is_leap_year
      Src: /src/cpython/Modules/_zoneinfo.c:1434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - base_self
    - year
    argTypes:
    - TransitionRuleType*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1440
    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:1451,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1457,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: 1477
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1477
    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:1483,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:1484,1
    - Dst: _tzrule*::start::year_to_timestamp
      Src: /src/cpython/Modules/_zoneinfo.c:1485,1
    - Dst: _tzrule*::end::year_to_timestamp
      Src: /src/cpython/Modules/_zoneinfo.c:1486,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: 1482
        line_start: 1482
        source_file: /src/cpython/Modules/_zoneinfo.c
    - condition: (rule->end != NULL)
      pos:
        line_end: 1483
        line_start: 1483
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 1487
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1487
    functionName: tzrule_transitions
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - _tzrule*::end::year_to_timestamp
    - _tzrule*::start::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:1507,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: 1537
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1537
    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:1561,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: 1593
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1593
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_zoneinfo.c:1621,1
    - Dst: parse_abbr
      Src: /src/cpython/Modules/_zoneinfo.c:1628,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:1629,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1630,1
    - Dst: parse_tz_delta
      Src: /src/cpython/Modules/_zoneinfo.c:1636,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1637,1
    - Dst: parse_abbr
      Src: /src/cpython/Modules/_zoneinfo.c:1647,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:1648,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1649,1
    - Dst: parse_tz_delta
      Src: /src/cpython/Modules/_zoneinfo.c:1662,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1663,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1672,1
    - Dst: parse_transition_rule
      Src: /src/cpython/Modules/_zoneinfo.c:1679,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_zoneinfo.c:1680,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1681,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_zoneinfo.c:1690,1
    - Dst: build_tzrule
      Src: /src/cpython/Modules/_zoneinfo.c:1697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1699,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1700,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:1706,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1710,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1714,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 3
    argNames:
    - state
    - tz_str_obj
    - out
    argTypes:
    - zoneinfo_state*
    - PyObject*
    - _tzrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1718
    functionName: parse_tz_str
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - parse_tz_delta
    - build_tzrule
    - PyBytes_AsString
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - Py_XDECREF
    - PyMem_Free
    - parse_abbr
    - parse_transition_rule
    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:1723,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Modules/_zoneinfo.c:1726,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: 1722
        line_start: 1722
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 1733
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1733
    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:1758,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Modules/_zoneinfo.c:1758,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Modules/_zoneinfo.c:1774,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_zoneinfo.c:1783,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - p
    - abbr
    argTypes:
    - char**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1736
    functionDepth: 1
    functionLinenumber: 1736
    functionLinenumberEnd: 1790
    functionName: parse_abbr
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - Py_ISALPHA
    - Py_ISDIGIT
    - PyUnicode_FromStringAndSize
    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:1813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - total_seconds
    argTypes:
    - char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1793
    functionDepth: 1
    functionLinenumber: 1793
    functionLinenumberEnd: 1828
    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:1859,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1865,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1871,1
    - Dst: parse_transition_time
      Src: /src/cpython/Modules/_zoneinfo.c:1877,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_zoneinfo.c:1882,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:1884,1
    - Dst: calendarrule_new
      Src: /src/cpython/Modules/_zoneinfo.c:1888,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1889,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1903,1
    - Dst: parse_transition_time
      Src: /src/cpython/Modules/_zoneinfo.c:1909,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_zoneinfo.c:1914,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:1916,1
    - Dst: dayrule_new
      Src: /src/cpython/Modules/_zoneinfo.c:1920,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:1921,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 2
    argNames:
    - p
    - out
    argTypes:
    - char**
    - TransitionRuleType**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1831
    functionDepth: 2
    functionLinenumber: 1831
    functionLinenumberEnd: 1929
    functionName: parse_transition_rule
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - dayrule_new
    - parse_transition_time
    - PyMem_Free
    - parse_digits
    - 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:1957,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1965,1
    - Dst: parse_digits
      Src: /src/cpython/Modules/_zoneinfo.c:1972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - p
    - hour
    - minute
    - second
    argTypes:
    - char**
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1932
    functionDepth: 0
    functionLinenumber: 1932
    functionLinenumberEnd: 1981
    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:2001,1
    - Dst: build_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:2007,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:2019,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:2020,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: 2022
      start: 1991
    functionDepth: 3
    functionLinenumber: 1991
    functionLinenumberEnd: 2022
    functionName: build_tzrule
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached:
    - xdecref_ttinfo
    - build_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:2028,1
    - Dst: xdecref_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:2030,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:2034,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:2038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tzrule
    argTypes:
    - _tzrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2025
    functionDepth: 1
    functionLinenumber: 2025
    functionLinenumberEnd: 2040
    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: 18
    EdgeCount: 18
    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: 2113
      start: 2053
    functionDepth: 0
    functionLinenumber: 2053
    functionLinenumberEnd: 2113
    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: 2119
      start: 2115
    functionDepth: 0
    functionLinenumber: 2115
    functionLinenumberEnd: 2119
    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:2148,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zoneinfo.c:2150,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zoneinfo.c:2154,1
    - Dst: _swap
      Src: /src/cpython/Modules/_zoneinfo.c:2163,1
    - Dst: _swap
      Src: /src/cpython/Modules/_zoneinfo.c:2179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    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: 2187
      start: 2137
    functionDepth: 1
    functionLinenumber: 2137
    functionLinenumberEnd: 2187
    functionName: ts_to_local
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - _swap
    - memcpy
    - PyErr_NoMemory
    - 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: 2208
      start: 2190
    functionDepth: 0
    functionLinenumber: 2190
    functionLinenumberEnd: 2208
    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:2226,1
    - Dst: PyDateTime_DATE_GET_FOLD
      Src: /src/cpython/Modules/_zoneinfo.c:2230,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:2231,1
    - Dst: find_tzrule_ttinfo
      Src: /src/cpython/Modules/_zoneinfo.c:2239,1
    - Dst: PyDateTime_GET_YEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2240,1
    - Dst: _bisect
      Src: /src/cpython/Modules/_zoneinfo.c:2243,1
    - Dst: assert
      Src: /src/cpython/Modules/_zoneinfo.c:2244,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: 2230
        line_start: 2230
        source_file: /src/cpython/Modules/_zoneinfo.c
    - condition: (idx < self->num_transitions)
      pos:
        line_end: 2243
        line_start: 2243
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 2247
      start: 2211
    functionDepth: 2
    functionLinenumber: 2211
    functionLinenumberEnd: 2247
    functionName: find_ttinfo
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 3
    functionsReached:
    - PyDateTime_GET_YEAR
    - _bisect
    - assert
    - get_local_timestamp
    - find_tzrule_ttinfo
    - PyDateTime_DATE_GET_FOLD
    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: 2254
      start: 2249
    functionDepth: 0
    functionLinenumber: 2249
    functionLinenumberEnd: 2254
    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:2263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2268
    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:2279,1
    - Dst: PyDateTime_CheckExact
      Src: /src/cpython/Modules/_zoneinfo.c:2283,1
    - Dst: PyDateTime_GET_YEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2284,1
    - Dst: PyDateTime_GET_MONTH
      Src: /src/cpython/Modules/_zoneinfo.c:2285,1
    - Dst: PyDateTime_GET_DAY
      Src: /src/cpython/Modules/_zoneinfo.c:2286,1
    - Dst: PyDateTime_DATE_GET_HOUR
      Src: /src/cpython/Modules/_zoneinfo.c:2287,1
    - Dst: PyDateTime_DATE_GET_MINUTE
      Src: /src/cpython/Modules/_zoneinfo.c:2288,1
    - Dst: PyDateTime_DATE_GET_SECOND
      Src: /src/cpython/Modules/_zoneinfo.c:2289,1
    - Dst: ymd_to_ord
      Src: /src/cpython/Modules/_zoneinfo.c:2291,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_zoneinfo.c:2294,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:2299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2300,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:2301,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2305,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:2309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2310,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2315,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:2319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2320,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2325,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_zoneinfo.c:2329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2330,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: 2278
        line_start: 2278
        source_file: /src/cpython/Modules/_zoneinfo.c
    constantsTouched: []
    func_position:
      end: 2340
      start: 2276
    functionDepth: 1
    functionLinenumber: 2276
    functionLinenumberEnd: 2340
    functionName: get_local_timestamp
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 2
    functionsReached:
    - PyDateTime_GET_YEAR
    - PyDateTime_CheckExact
    - PyDateTime_GET_DAY
    - PyDateTime_GET_MONTH
    - ymd_to_ord
    - PyDateTime_DATE_GET_MINUTE
    - PyDateTime_DATE_GET_SECOND
    - PyLong_AsLong
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyDateTime_DATE_GET_HOUR
    - PyObject_CallMethod
    - PyObject_GetAttrString
    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:2354,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2361,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - key
    - zone
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2351
    functionDepth: 1
    functionLinenumber: 2351
    functionLinenumberEnd: 2365
    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:2371,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2372,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zoneinfo.c:2374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - StrongCacheNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2368
    functionDepth: 1
    functionLinenumber: 2368
    functionLinenumberEnd: 2375
    functionName: strong_cache_node_free
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    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:2390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - StrongCacheNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2383
    functionDepth: 2
    functionLinenumber: 2383
    functionLinenumberEnd: 2394
    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:2404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - node
    argTypes:
    - zoneinfo_state*
    - StrongCacheNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2401
    functionDepth: 1
    functionLinenumber: 2401
    functionLinenumberEnd: 2419
    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:2433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - root
    - key
    argTypes:
    - StrongCacheNode*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2428
    functionDepth: 1
    functionLinenumber: 2428
    functionLinenumberEnd: 2445
    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:2459,1
    - Dst: find_in_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2461,1
    - Dst: remove_from_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2463,1
    - Dst: strong_cache_node_free
      Src: /src/cpython/Modules/_zoneinfo.c:2465,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zoneinfo.c:2467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - state
    - type
    - key
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2451
    functionDepth: 2
    functionLinenumber: 2451
    functionLinenumberEnd: 2471
    functionName: eject_from_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - strong_cache_node_free
    - find_in_strong_cache
    - remove_from_strong_cache
    - PyErr_Occurred
    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:2487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - state
    - root
    - node
    argTypes:
    - zoneinfo_state*
    - StrongCacheNode**
    - StrongCacheNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2478
    functionDepth: 2
    functionLinenumber: 2478
    functionLinenumberEnd: 2497
    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:2516,1
    - Dst: find_in_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2518,1
    - Dst: move_strong_cache_node_to_front
      Src: /src/cpython/Modules/_zoneinfo.c:2522,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - state
    - type
    - key
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2508
    functionDepth: 3
    functionLinenumber: 2508
    functionLinenumberEnd: 2527
    functionName: zone_from_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - move_strong_cache_node_to_front
    - find_in_strong_cache
    - Py_NewRef
    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:2543,1
    - Dst: strong_cache_node_new
      Src: /src/cpython/Modules/_zoneinfo.c:2544,1
    - Dst: move_strong_cache_node_to_front
      Src: /src/cpython/Modules/_zoneinfo.c:2549,1
    - Dst: strong_cache_free
      Src: /src/cpython/Modules/_zoneinfo.c:2564,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: 2566
      start: 2535
    functionDepth: 3
    functionLinenumber: 2535
    functionLinenumberEnd: 2566
    functionName: update_strong_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 1
    functionsReached:
    - strong_cache_free
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - strong_cache_node_new
    - move_strong_cache_node_to_front
    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:2580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - type
    argTypes:
    - zoneinfo_state*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2573
    functionDepth: 3
    functionLinenumber: 2573
    functionLinenumberEnd: 2582
    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:2588,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_zoneinfo.c:2592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2584
    functionDepth: 1
    functionLinenumber: 2584
    functionLinenumberEnd: 2595
    functionName: new_weak_cache
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyObject_CallNoArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_weak_cache(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_zoneinfo.c:2601,1
    - Dst: new_weak_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - zoneinfo_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2598
    functionDepth: 2
    functionLinenumber: 2598
    functionLinenumberEnd: 2612
    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:2617,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zoneinfo.c:2627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2629
    functionName: zoneinfo_init_subclass
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_SetAttrString
    - new_weak_cache
    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:2693,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2695,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2696,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2697,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2698,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2699,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2700,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2705,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2706,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2710,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2711,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zoneinfo.c:2712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2690
    functionDepth: 2
    functionLinenumber: 2690
    functionLinenumberEnd: 2715
    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:2720,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2722,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2723,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2724,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2725,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2726,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2727,1
    - Dst: clear_strong_cache
      Src: /src/cpython/Modules/_zoneinfo.c:2728,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2729,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2730,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zoneinfo.c:2731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2717
    functionDepth: 4
    functionLinenumber: 2717
    functionLinenumberEnd: 2734
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 13
    functionsReached:
    - Py_CLEAR
    - clear_strong_cache
    - 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:2739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2736
    functionDepth: 0
    functionLinenumber: 2736
    functionLinenumberEnd: 2740
    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:2750,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_zoneinfo.c:2752,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_zoneinfo.c:2758,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2766,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_zoneinfo.c:2771,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_zoneinfo.c:2776,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2782,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2783,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_zoneinfo.c:2784,1
    - Dst: initialize_caches
      Src: /src/cpython/Modules/_zoneinfo.c:2787,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2742
    functionDepth: 3
    functionLinenumber: 2742
    functionLinenumberEnd: 2795
    functionName: zoneinfomodule_exec
    functionSourceFile: /src/cpython/Modules/_zoneinfo.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - zoneinfo_get_state
    - Py_NewRef
    - PyType_FromModuleAndSpec
    - initialize_caches
    - PyModule_AddObjectRef
    - PyImport_ImportModuleAttrString
    linkageType: ''
    returnType: int
    signature: int zoneinfomodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_zoneinfo.c:2820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2817
    functionDepth: 1
    functionLinenumber: 2817
    functionLinenumberEnd: 2821
    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:224,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 227
    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:232,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: _Pickle_GetStateByClass
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyType_GetModuleState
    - assert
    linkageType: ''
    returnType: PickleState
    signature: 'PickleState *

      _Pickle_GetStateByClass(PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_pickle.c:240,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:241,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: _Pickle_FindStateByType
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetState
    - PyType_GetModuleByDef
    - assert
    linkageType: ''
    returnType: PickleState
    signature: 'PickleState *

      _Pickle_FindStateByType(PyTypeObject *tp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - 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
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:263,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:264,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:265,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:266,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 268
    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:277,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:277,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_pickle.c:281,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:284,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:287,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:288,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:290,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:294,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:297,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:298,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:300,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:304,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:307,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:308,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:310,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:313,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:316,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:317,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:319,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:322,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_pickle.c:325,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:329,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:332,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:333,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:335,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:339,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:342,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:343,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:345,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:350,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:353,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:354,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:356,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_pickle.c:360,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:363,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:364,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:366,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:369,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_pickle.c:371,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_pickle.c:375,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:376,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:378,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_pickle.c:382,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:389,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:390,1
    - Dst: _Pickle_ClearState
      Src: /src/cpython/Modules/_pickle.c:391,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 108
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 393
    functionName: _Pickle_InitState
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - _PyEval_GetBuiltin
    - PyCallable_Check
    - _Pickle_ClearState
    - Py_CLEAR
    - PyObject_GetAttrString
    - PyErr_Format
    - PyDict_CheckExact
    - PyImport_ImportModuleAttrString
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _Pickle_InitState(PickleState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 406
    functionName: _Pickle_FastCall
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallOneArg
    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: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: Pdata_CAST
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Pdata_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pdata_CAST
      Src: /src/cpython/Modules/_pickle.c:424,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:425,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:426,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:429,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:431,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 434
    functionName: Pdata_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyTypeObject*::tp_free
    - PyMem_Free
    - PyObject_GC_UnTrack
    - Pdata_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Pdata_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:456,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:458,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_pickle.c:462,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:467,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 469
    functionName: Pdata_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyErr_NoMemory
    - Py_SET_SIZE
    - PyMem_Malloc
    - Py_DECREF
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_New(PickleState *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:478,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:480,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:485,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:487,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: 479
        line_start: 479
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 489
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 489
    functionName: Pdata_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_SET_SIZE
    - Py_SIZE
    - 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:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 514
    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:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 524
    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:533,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:534,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:537,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:537,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 539
    functionName: Pdata_pop
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - Py_SIZE
    - Py_SET_SIZE
    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: 541
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 541
    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:545,1
    - Dst: Pdata_grow
      Src: /src/cpython/Modules/_pickle.c:545,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:548,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:549,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - Pdata*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: Pdata_push
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_grow
    - Py_SIZE
    - 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: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    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: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    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:569,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:572,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:573,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:577,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - state
    - self
    - start
    argTypes:
    - PickleState*
    - Pdata*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 581
    functionName: Pdata_poptuple
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - Py_SET_SIZE
    - Py_SIZE
    - PyTuple_SET_ITEM
    - PyTuple_New
    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:589,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_pickle.c:590,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:594,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - Pdata*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: Pdata_poplist
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyList_New
    - Py_SIZE
    - Py_SET_SIZE
    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: 706
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 706
    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: 707
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 707
    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: 708
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 708
    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: 709
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 709
    functionName: UnpicklerMemoProxyObject_CAST
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UnpicklerMemoProxyObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SELF
    - ','
    - RET
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 718
    functionName: BEGIN_USING_PICKLER
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEGIN_USING_PICKLER(SELF, RET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SELF
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: END_USING_PICKLER
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: END_USING_PICKLER(SELF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SELF
    - ','
    - RET
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 731
    functionName: BEGIN_USING_UNPICKLER
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEGIN_USING_UNPICKLER(SELF, RET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SELF
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: END_USING_UNPICKLER
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: END_USING_UNPICKLER(SELF)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_pickle.c:755,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:757,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_pickle.c:764,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:766,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:767,1
    - Dst: memset
      Src: /src/cpython/Modules/_pickle.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 773
    functionName: PyMemoTable_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memset
    - PyMem_Free
    - 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:778,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:787,1
    - Dst: mt_table::mt_table
      Src: /src/cpython/Modules/_pickle.c:787,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_pickle.c:788,1
    - Dst: mt_table::mt_table
      Src: /src/cpython/Modules/_pickle.c:789,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:791,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_pickle.c:795,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 801
    functionName: PyMemoTable_Copy
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    - mt_table::mt_table
    - PyErr_NoMemory
    - memcpy
    - PyMem_Free
    - PyMemoTable_New
    - Py_XINCREF
    linkageType: ''
    returnType: PyMemoTable
    signature: 'PyMemoTable *

      PyMemoTable_Copy(PyMemoTable *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 807
    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:815,1
    - Dst: memset
      Src: /src/cpython/Modules/_pickle.c:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 820
    functionName: PyMemoTable_Clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memset
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int PyMemoTable_Clear(PyMemoTable *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Clear
      Src: /src/cpython/Modules/_pickle.c:827,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:829,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 831
    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:856,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyMemoTable*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 857
    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:868,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:871,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:880,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_pickle.c:884,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:887,1
    - Dst: memset
      Src: /src/cpython/Modules/_pickle.c:892,1
    - Dst: _PyMemoTable_Lookup
      Src: /src/cpython/Modules/_pickle.c:902,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:909,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: 867
        line_start: 867
        source_file: /src/cpython/Modules/_pickle.c
    - condition: ((new_size & (new_size - 1)) == 0)
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 911
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 911
    functionName: _PyMemoTable_ResizeTable
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    - PyErr_NoMemory
    - _PyMemoTable_Lookup
    - memset
    - PyMem_Free
    - 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:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyMemoTable*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 921
    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:929,1
    - Dst: _PyMemoTable_Lookup
      Src: /src/cpython/Modules/_pickle.c:931,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:936,1
    - Dst: _PyMemoTable_ResizeTable
      Src: /src/cpython/Modules/_pickle.c:955,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: 928
        line_start: 928
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 956
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 956
    functionName: PyMemoTable_Set
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyMemoTable_Lookup
    - _PyMemoTable_ResizeTable
    - Py_NewRef
    - assert
    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:967,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 974
    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: 989
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 989
    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:1000,1
    - Dst: _write_size64
      Src: /src/cpython/Modules/_pickle.c:1003,1
    - Dst: memmove
      Src: /src/cpython/Modules/_pickle.c:1006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1011
    functionName: _Pickler_CommitFrame
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memmove
    - _write_size64
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int _Pickler_CommitFrame(PicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1018,1
    - Dst: _Pickler_CommitFrame
      Src: /src/cpython/Modules/_pickle.c:1020,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_pickle.c:1025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts:
    - condition: (self->output_buffer != NULL)
      pos:
        line_end: 1017
        line_start: 1017
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1028
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1028
    functionName: _Pickler_GetString
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_CommitFrame
    - _PyBytes_Resize
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Pickler_GetString(PicklerObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1035,1
    - Dst: _Pickler_GetString
      Src: /src/cpython/Modules/_pickle.c:1038,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1042,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts:
    - condition: (self->write != NULL)
      pos:
        line_end: 1034
        line_start: 1034
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1045
      start: 1030
    functionDepth: 3
    functionLinenumber: 1030
    functionLinenumberEnd: 1045
    functionName: _Pickler_FlushToFile
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Pickle_FastCall
    - _Pickler_GetString
    - assert
    linkageType: ''
    returnType: int
    signature: int _Pickler_FlushToFile(PicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_CommitFrame
      Src: /src/cpython/Modules/_pickle.c:1057,1
    - Dst: _Pickler_FlushToFile
      Src: /src/cpython/Modules/_pickle.c:1068,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/cpython/Modules/_pickle.c:1071,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1047
    functionDepth: 4
    functionLinenumber: 1047
    functionLinenumberEnd: 1077
    functionName: _Pickler_OpcodeBoundary
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_CommitFrame
    - _Pickler_ClearBuffer
    - _Pickler_FlushToFile
    linkageType: ''
    returnType: int
    signature: int _Pickler_OpcodeBoundary(PicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1086,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1098,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_pickle.c:1102,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:1105,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:1123,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: 1085
        line_start: 1085
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1127
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1127
    functionName: _Pickler_Write
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - assert
    - memcpy
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    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:1132,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:1138,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:1143,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:1169,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:1173,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:1174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1176
    functionName: _Pickler_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyBytes_FromStringAndSize
    - PyMem_Free
    - PyMemoTable_New
    - Py_XDECREF
    - PyObject_GC_Track
    linkageType: ''
    returnType: PicklerObject
    signature: 'PicklerObject *

      _Pickler_New(PickleState *st)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_pickle.c:1187,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:1189,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:1194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - protocol
    - fix_imports
    argTypes:
    - PicklerObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1203
    functionName: _Pickler_SetProtocol
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _Pickler_SetProtocol(PicklerObject *self, PyObject *protocol, int
      fix_imports)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1210,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1211,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1211,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (file != NULL)
      pos:
        line_end: 1209
        line_start: 1209
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1221
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1221
    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:1230,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_pickle.c:1235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - buffer_callback
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1237
    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:1245,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_pickle.c:1246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - input
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1253
    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:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1260
    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:1273,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_pickle.c:1275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts:
    - condition: (self->peek)
      pos:
        line_end: 1272
        line_start: 1272
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1282
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1282
    functionName: _Unpickler_SkipConsumed
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunction
    - assert
    linkageType: ''
    returnType: int
    signature: int _Unpickler_SkipConsumed(UnpicklerObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1291,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:1296,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1300,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_pickle.c:1304,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:1305,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:1307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1308,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:1311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1313,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1314,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:1316,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:1316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1317,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Modules/_pickle.c:1322,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1326,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:1330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1331,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:1334,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1335,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1341,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - state
    - self
    - buf
    - n
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (n != READ_WHOLE_LINE)
      pos:
        line_end: 1290
        line_start: 1290
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1344
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1344
    functionName: _Unpickler_ReadIntoFromFile
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyBytes_Check
    - PyMemoryView_FromMemory
    - PyErr_SetString
    - bad_readline
    - PyLong_AsSsize_t
    - PyLong_FromSsize_t
    - _Pickle_FastCall
    - memcpy
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyErr_Occurred
    - PyBytes_GET_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _Unpickler_ReadIntoFromFile(PickleState *state, UnpicklerObject
      *self, char *buf,\n                            Py_ssize_t n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1366,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/cpython/Modules/_pickle.c:1368,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_pickle.c:1372,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:1381,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1384,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:1386,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_pickle.c:1389,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1390,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/cpython/Modules/_pickle.c:1393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1394,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_pickle.c:1404,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:1405,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:1408,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_pickle.c:1415,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_pickle.c:1416,1
    - Dst: _Unpickler_ReadIntoFromFile
      Src: /src/cpython/Modules/_pickle.c:1419,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:1420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1422,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/cpython/Modules/_pickle.c:1428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1429,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - state
    - self
    - n
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->read != NULL)
      pos:
        line_end: 1365
        line_start: 1365
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1431
      start: 1360
    functionDepth: 3
    functionLinenumber: 1360
    functionLinenumberEnd: 1431
    functionName: _Unpickler_ReadFromFile
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_ReadIntoFromFile
    - _Unpickler_SetStringInput
    - PyBytes_AS_STRING
    - assert
    - Py_CLEAR
    - Py_MIN
    - PyLong_FromSsize_t
    - _Pickle_FastCall
    - PyErr_ExceptionMatches
    - PyObject_CallNoArgs
    - _Unpickler_SkipConsumed
    - PyErr_Clear
    - _PyBytes_Resize
    - Py_DECREF
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_ReadFromFile(PickleState *state, UnpicklerObject
      *self, Py_ssize_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1441,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1447,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1450,1
    - Dst: _Unpickler_ReadFromFile
      Src: /src/cpython/Modules/_pickle.c:1453,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1457,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: 1446
        line_start: 1446
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1461
      start: 1434
    functionDepth: 4
    functionLinenumber: 1434
    functionLinenumberEnd: 1461
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1475,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_pickle.c:1480,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:1481,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1494,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/cpython/Modules/_pickle.c:1496,1
    - Dst: _Unpickler_ReadIntoFromFile
      Src: /src/cpython/Modules/_pickle.c:1500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - state
    - self
    - buf
    - n
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (n != READ_WHOLE_LINE)
      pos:
        line_end: 1474
        line_start: 1474
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1501
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1501
    functionName: _Unpickler_ReadInto
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_ReadIntoFromFile
    - bad_readline
    - Py_MIN
    - memcpy
    - _Unpickler_SkipConsumed
    - assert
    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: 1522
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1522
    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:1527,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1529,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_pickle.c:1533,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: 1538
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1538
    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:1554,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1558,1
    - Dst: _Unpickler_ReadFromFile
      Src: /src/cpython/Modules/_pickle.c:1560,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:1564,1
    - Dst: _Unpickler_CopyLine
      Src: /src/cpython/Modules/_pickle.c:1566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - state
    - self
    - result
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1544
    functionDepth: 4
    functionLinenumber: 1544
    functionLinenumberEnd: 1567
    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:1576,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1581,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: 1575
        line_start: 1575
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1589
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1589
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_pickle.c:1603,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_pickle.c:1608,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:1613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1615,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:1616,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:1620,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - st
    - self
    - idx
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1592
    functionDepth: 1
    functionLinenumber: 1592
    functionLinenumberEnd: 1622
    functionName: _Unpickler_MemoGet
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - PyDict_Pop
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - PyDict_GetItemWithError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Unpickler_MemoGet(PickleState *st, UnpicklerObject *self, size_t idx)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_pickle.c:1636,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_pickle.c:1641,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:1646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1650,1
    - Dst: _Unpickler_ResizeMemoList
      Src: /src/cpython/Modules/_pickle.c:1653,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1655,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:1658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1660,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - self
    - idx
    - value
    argTypes:
    - UnpicklerObject*
    - size_t
    - PyObject*
    assertStmts:
    - condition: (idx < self->memo_size)
      pos:
        line_end: 1654
        line_start: 1654
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1666
      start: 1626
    functionDepth: 2
    functionLinenumber: 1626
    functionLinenumberEnd: 1666
    functionName: _Unpickler_MemoPut
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - PyDict_SetItem
    - _Unpickler_ResizeMemoList
    - assert
    - Py_DECREF
    - Py_NewRef
    - PyDict_New
    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:1671,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1673,1
    - Dst: memset
      Src: /src/cpython/Modules/_pickle.c:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1668
    functionDepth: 1
    functionLinenumber: 1668
    functionLinenumberEnd: 1678
    functionName: _Unpickler_NewMemo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memset
    - PyErr_NoMemory
    - PyMem_NEW
    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:1692,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:1694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1681
    functionDepth: 1
    functionLinenumber: 1681
    functionLinenumberEnd: 1695
    functionName: _Unpickler_MemoCleanup
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _Unpickler_MemoCleanup(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:1701,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:1706,1
    - Dst: Pdata_New
      Src: /src/cpython/Modules/_pickle.c:1707,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:1712,1
    - Dst: memset
      Src: /src/cpython/Modules/_pickle.c:1725,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:1745,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:1749,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:1750,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1697
    functionDepth: 2
    functionLinenumber: 1697
    functionLinenumberEnd: 1752
    functionName: _Unpickler_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _Pickle_GetState
    - Pdata_New
    - memset
    - PyMem_Free
    - Py_XDECREF
    - _Unpickler_NewMemo
    - PyObject_GC_Track
    linkageType: ''
    returnType: UnpicklerObject
    signature: 'UnpicklerObject *

      _Unpickler_New(PyObject *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1760,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1760,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1763,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1763,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1766,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1766,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1769,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:1769,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1773,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1780,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1781,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1782,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:1783,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1785
    functionName: _Unpickler_SetInputStream
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyErr_SetString
    - _Py_ID
    - 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:1799,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_pickle.c:1800,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:1802,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - UnpicklerObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1806
    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:1817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - buffers
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1810
    functionDepth: 1
    functionLinenumber: 1810
    functionLinenumberEnd: 1823
    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:1833,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_pickle.c:1835,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_pickle.c:1841,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:1843,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1860,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:1866,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - st
    - self
    - key
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1826
    functionDepth: 3
    functionLinenumber: 1826
    functionLinenumberEnd: 1870
    functionName: memo_get
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyErr_SetString
    - _Pickler_Write
    - strlen
    - PyMemoTable_Get
    - PyOS_snprintf
    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:1886,1
    - Dst: PyMemoTable_Set
      Src: /src/cpython/Modules/_pickle.c:1887,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:1891,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_pickle.c:1897,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:1899,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:1916,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:1921,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - st
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1874
    functionDepth: 4
    functionLinenumber: 1874
    functionLinenumberEnd: 1925
    functionName: memo_put
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_Set
    - PyMemoTable_Size
    - PyErr_SetString
    - _Pickler_Write
    - strlen
    - PyOS_snprintf
    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:1930,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_pickle.c:1930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1931
    functionName: get_dotted_path
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - PyUnicode_Split
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dotted_path(PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_pickle.c:1936,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_pickle.c:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dotted_path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1933
    functionDepth: 1
    functionLinenumber: 1933
    functionLinenumberEnd: 1937
    functionName: join_dotted_path
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - PyUnicode_Join
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      join_dotted_path(PyObject *dotted_path)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:1945,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:1947,1
    - Dst: _Py_IsPrivateName
      Src: /src/cpython/Modules/_pickle.c:1948,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:1949,1
    - Dst: _Py_Mangle
      Src: /src/cpython/Modules/_pickle.c:1950,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:1957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1958,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - dotted_path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1962
    functionName: mangle_dotted_path
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Py_Mangle
    - PyList_SET_ITEM
    - Py_DECREF
    - PyList_GET_ITEM
    - _Py_IsPrivateName
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int mangle_dotted_path(PyObject *dotted_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:1968,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:1969,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:1971,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_pickle.c:1972,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:1973,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: 1968
        line_start: 1968
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1979
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1979
    functionName: check_dotted_path
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - _PyUnicode_EqualToASCIIString
    - PyErr_Format
    - assert
    - PyList_GET_SIZE
    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:1986,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_pickle.c:1986,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:1987,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:1988,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:1990,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:1993,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:1996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:1998,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: 1985
        line_start: 1985
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2004
      start: 1981
    functionDepth: 1
    functionLinenumber: 1981
    functionLinenumberEnd: 2004
    functionName: getattribute
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyList_GET_ITEM
    - PyObject_GetAttr
    - PyObject_GetOptionalAttr
    - assert
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GET_SIZE
    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:2013,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_pickle.c:2014,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:2017,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_pickle.c:2018,1
    - Dst: getattribute
      Src: /src/cpython/Modules/_pickle.c:2022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2030,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: 2032
      start: 2006
    functionDepth: 2
    functionLinenumber: 2006
    functionLinenumberEnd: 2032
    functionName: _checkmodule
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - getattribute
    - Py_DECREF
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    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:2042,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:2045,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:2045,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:2052,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Modules/_pickle.c:2053,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:2053,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:2057,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:2059,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:2060,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:2061,1
    - Dst: _checkmodule
      Src: /src/cpython/Modules/_pickle.c:2062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2068,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2070,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_pickle.c:2076,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2078,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:2081,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_pickle.c:2082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2085,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2086,1
    - Dst: _checkmodule
      Src: /src/cpython/Modules/_pickle.c:2089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2096,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2106,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:2111,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:2111,1
    - Dst: PyImport_Import
      Src: /src/cpython/Modules/_pickle.c:2122,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:2124,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:2125,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:2127,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:2128,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:2130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2132,1
    - Dst: getattribute
      Src: /src/cpython/Modules/_pickle.c:2135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2136,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2138,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:2139,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:2140,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:2141,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:2144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2150,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:2151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2157,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: 2137
        line_start: 2137
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2159
      start: 2034
    functionDepth: 3
    functionLinenumber: 2034
    functionLinenumberEnd: 2159
    functionName: whichmodule
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyImport_Import
    - PyObject_GetIter
    - PyErr_Occurred
    - assert
    - PyIter_Next
    - PySys_GetAttr
    - PyObject_GetOptionalAttr
    - _PyErr_ChainExceptions1
    - getattribute
    - check_dotted_path
    - Py_INCREF
    - PyDict_Next
    - PyObject_GetItem
    - Py_DECREF
    - _checkmodule
    - PyErr_GetRaisedException
    - PyDict_CheckExact
    - Py_NewRef
    - Py_CLEAR
    - PyErr_ExceptionMatches
    - PyErr_Format
    - _Py_ID
    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:2176,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_pickle.c:2182,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_pickle.c:2187,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:2189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:2192,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:2195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2204
    functionName: fast_save_enter
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyDict_Contains
    - PyLong_FromVoidPtr
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    - PyDict_New
    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:2210,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_pickle.c:2213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2206
    functionDepth: 1
    functionLinenumber: 2206
    functionLinenumberEnd: 2220
    functionName: fast_save_leave
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_DelItem
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: int
    signature: int fast_save_leave(PicklerObject *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2222
    functionDepth: 2
    functionLinenumber: 2222
    functionLinenumberEnd: 2230
    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:2237,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2247,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:2247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2232
    functionDepth: 2
    functionLinenumber: 2232
    functionLinenumberEnd: 2251
    functionName: save_bool
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - strlen
    linkageType: ''
    returnType: int
    signature: int save_bool(PicklerObject *self, PyObject *obj)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_pickle.c:2262,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_pickle.c:2298,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:2299,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2301,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2306,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2306,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2317,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_pickle.c:2317,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Modules/_pickle.c:2318,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2322,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Modules/_pickle.c:2326,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2327,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2328,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:2328,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2345,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:2349,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2352,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_pickle.c:2353,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2384,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2385,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Modules/_pickle.c:2396,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_pickle.c:2400,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2404,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2405,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2406,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2414,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2305
        line_start: 2305
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (nbits >= 0)
      pos:
        line_end: 2326
        line_start: 2326
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2327
        line_start: 2327
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (PyLong_Check(obj))
      pos:
        line_end: 2316
        line_start: 2316
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2417
      start: 2253
    functionDepth: 2
    functionLinenumber: 2253
    functionLinenumberEnd: 2417
    functionName: save_long
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyBytes_AS_STRING
    - _PyLong_NumBits
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - PyLong_GetSign
    - PyUnicode_AsUTF8AndSize
    - PyLong_Check
    - PyObject_Repr
    - _Pickler_Write
    - strlen
    - assert
    - PyErr_Occurred
    - Py_XDECREF
    - _PyLong_AsByteArray
    - sprintf
    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:2422,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_pickle.c:2427,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2429,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2437,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Modules/_pickle.c:2440,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:2442,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2446,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:2446,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2449,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:2454,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2419
    functionDepth: 2
    functionLinenumber: 2419
    functionLinenumberEnd: 2459
    functionName: save_float
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack8
    - PyErr_NoMemory
    - PyFloat_AS_DOUBLE
    - PyOS_double_to_string
    - _Pickler_Write
    - strlen
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int save_float(PicklerObject *self, PyObject *obj)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2478,1
    - Dst: _Pickler_CommitFrame
      Src: /src/cpython/Modules/_pickle.c:2480,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2487,1
    - Dst: _Pickler_FlushToFile
      Src: /src/cpython/Modules/_pickle.c:2496,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:2505,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:2510,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2515,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/cpython/Modules/_pickle.c:2518,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2523,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: 2477
        line_start: 2477
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2532
      start: 2468
    functionDepth: 4
    functionLinenumber: 2468
    functionLinenumberEnd: 2532
    functionName: _Pickler_write_bytes
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - _Pickler_ClearBuffer
    - _Pickler_Write
    - Py_XDECREF
    - _Pickler_FlushToFile
    - _Pickler_CommitFrame
    - Py_DECREF
    - PyObject_CallOneArg
    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:2538,1
    - Dst: _write_size64
      Src: /src/cpython/Modules/_pickle.c:2561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2565,1
    - Dst: _Pickler_write_bytes
      Src: /src/cpython/Modules/_pickle.c:2571,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:2575,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: 2537
        line_start: 2537
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2580
      start: 2534
    functionDepth: 5
    functionLinenumber: 2534
    functionLinenumberEnd: 2580
    functionName: _save_bytes_data
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _write_size64
    - _Pickler_write_bytes
    - PyErr_SetString
    - 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:2600,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:2601,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/cpython/Modules/_pickle.c:2605,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2605,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2606,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:2611,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:2613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2614,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:2621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2622,1
    - Dst: _save_bytes_data
      Src: /src/cpython/Modules/_pickle.c:2626,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2626,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - st
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2582
    functionDepth: 6
    functionLinenumber: 2582
    functionLinenumberEnd: 2629
    functionName: save_bytes
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_reduce
    - PyUnicode_DecodeLatin1
    - Py_BuildValue
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _save_bytes_data
    - _Py_ID
    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:2635,1
    - Dst: _write_size64
      Src: /src/cpython/Modules/_pickle.c:2644,1
    - Dst: _Pickler_write_bytes
      Src: /src/cpython/Modules/_pickle.c:2647,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:2651,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: 2634
        line_start: 2634
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2656
      start: 2631
    functionDepth: 5
    functionLinenumber: 2631
    functionLinenumberEnd: 2656
    functionName: _save_bytearray_data
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _write_size64
    - _Pickler_write_bytes
    - memo_put
    - assert
    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:2667,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:2668,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Modules/_pickle.c:2672,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:2674,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2677,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:2684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2685,1
    - Dst: _save_bytearray_data
      Src: /src/cpython/Modules/_pickle.c:2689,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2690,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2658
    functionDepth: 6
    functionLinenumber: 2658
    functionLinenumberEnd: 2693
    functionName: save_bytearray
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_reduce
    - _save_bytearray_data
    - Py_BuildValue
    - PyByteArray_GET_SIZE
    - PyBytes_FromObject
    - Py_DECREF
    - PyByteArray_AS_STRING
    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:2699,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_pickle.c:2704,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_pickle.c:2707,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2708,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:2717,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_pickle.c:2721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2722,1
    - Dst: _save_bytes_data
      Src: /src/cpython/Modules/_pickle.c:2730,1
    - Dst: _save_bytearray_data
      Src: /src/cpython/Modules/_pickle.c:2734,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2741,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2746,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_pickle.c:2752,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_pickle.c:2756,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 3
    argNames:
    - st
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2695
    functionDepth: 6
    functionLinenumber: 2695
    functionLinenumberEnd: 2758
    functionName: save_picklebuffer
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _save_bytearray_data
    - PyErr_SetString
    - PyObject_IsTrue
    - PyBuffer_Release
    - _Pickler_Write
    - Py_DECREF
    - PyBuffer_IsContiguous
    - PyObject_GetBuffer
    - _save_bytes_data
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: int save_picklebuffer(PickleState *st, PicklerObject *self, PyObject
      *obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_pickle.c:2765,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_pickle.c:2766,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_pickle.c:2767,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_pickle.c:2770,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_pickle.c:2774,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_pickle.c:2777,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Modules/_pickle.c:2781,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Modules/_pickle.c:2803,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/_pickle.c:2820,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_pickle.c:2823,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2762
    functionDepth: 1
    functionLinenumber: 2762
    functionLinenumberEnd: 2825
    functionName: raw_unicode_escape
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyBytesWriter_Create
    - PyUnicode_READ
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - PyUnicode_GET_LENGTH
    - PyBytesWriter_GrowAndUpdatePointer
    - PyBytesWriter_GetData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raw_unicode_escape(PyObject *obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_pickle.c:2836,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_pickle.c:2840,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_pickle.c:2841,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2845,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2846,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:2849,1
    - Dst: _write_size64
      Src: /src/cpython/Modules/_pickle.c:2865,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:2869,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2872,1
    - Dst: _Pickler_write_bytes
      Src: /src/cpython/Modules/_pickle.c:2876,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2877,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:2880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 2848
        line_start: 2848
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2882
      start: 2827
    functionDepth: 5
    functionLinenumber: 2827
    functionLinenumberEnd: 2882
    functionName: write_unicode_binary
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsEncodedString
    - _write_size64
    - _Pickler_write_bytes
    - assert
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - PyErr_Clear
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    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:2888,1
    - Dst: raw_unicode_escape
      Src: /src/cpython/Modules/_pickle.c:2896,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2901,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:2905,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2906,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:2906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:2910,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2912,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:2915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2884
    functionDepth: 6
    functionLinenumber: 2884
    functionLinenumberEnd: 2919
    functionName: save_unicode
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - write_unicode_binary
    - raw_unicode_escape
    - _Pickler_Write
    - memo_put
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyBytes_GET_SIZE
    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:2928,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:2928,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:2931,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:2935,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:2936,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: 2927
        line_start: 2927
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2942
      start: 2922
    functionDepth: 1
    functionLinenumber: 2922
    functionLinenumberEnd: 2942
    functionName: store_tuple_elements
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - PyTuple_Size
    - PyTuple_GET_ITEM
    - save
    - 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:2961,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2976,1
    - Dst: store_tuple_elements
      Src: /src/cpython/Modules/_pickle.c:2988,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:2991,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:2994,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:2997,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3003,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3012,1
    - Dst: store_tuple_elements
      Src: /src/cpython/Modules/_pickle.c:3015,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:3018,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3021,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3029,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:3033,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3039,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3044,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 2950
    functionDepth: 5
    functionLinenumber: 2950
    functionLinenumberEnd: 3048
    functionName: save_tuple
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - store_tuple_elements
    - _Pickler_Write
    - memo_put
    - memo_get
    - PyMemoTable_Get
    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:3068,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3073,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3075,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3080,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3082,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3085,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3094,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3096,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3104,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3106,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3110,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3111,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3114,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3116,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3123,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3126,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3127,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3130,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3136,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3137,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3140,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3147,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3149,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3155,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3162,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3163,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: 3067
        line_start: 3067
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3165
      start: 3056
    functionDepth: 2
    functionLinenumber: 3056
    functionLinenumberEnd: 3165
    functionName: batch_list
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - save
    - Py_CLEAR
    - _Pickler_Write
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - Py_XDECREF
    - PyIter_Next
    linkageType: ''
    returnType: int
    signature: int batch_list(PickleState *state, PicklerObject *self, PyObject *iter,
      PyObject *origobj)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3188,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3189,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3190,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_pickle.c:3190,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3192,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Modules/_pickle.c:3198,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3200,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3204,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3206,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3209,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3214,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3216,1
    - Dst: PyList_GetItemRef
      Src: /src/cpython/Modules/_pickle.c:3217,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3219,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3223,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3225,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3232,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3234,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3235,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(obj))
      pos:
        line_end: 3189
        line_start: 3189
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (self->proto > 0)
      pos:
        line_end: 3188
        line_start: 3188
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (obj != NULL)
      pos:
        line_end: 3187
        line_start: 3187
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3244
      start: 3178
    functionDepth: 2
    functionLinenumber: 3178
    functionLinenumberEnd: 3244
    functionName: batch_list_exact
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - save
    - PyList_GET_SIZE
    - _Pickler_Write
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GetItemRef
    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:3253,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3267,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_pickle.c:3271,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3274,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_pickle.c:3279,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3280,1
    - Dst: batch_list_exact
      Src: /src/cpython/Modules/_pickle.c:3282,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3283,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_pickle.c:3285,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3290,1
    - Dst: batch_list
      Src: /src/cpython/Modules/_pickle.c:3293,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3295,1
    - Dst: fast_save_leave
      Src: /src/cpython/Modules/_pickle.c:3303,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3307
      start: 3246
    functionDepth: 5
    functionLinenumber: 3246
    functionLinenumberEnd: 3307
    functionName: save_list
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Py_EnterRecursiveCall
    - _Py_LeaveRecursiveCall
    - fast_save_enter
    - PyObject_GetIter
    - fast_save_leave
    - _Pickler_Write
    - memo_put
    - PyList_Size
    - batch_list
    - PyList_CheckExact
    - Py_DECREF
    - batch_list_exact
    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:3331,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3336,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3338,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:3342,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:3342,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:3343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3345,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3348,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3348,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3350,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3350,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3352,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3356,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3359,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3368,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3370,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:3376,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:3376,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:3377,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3383,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3385,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3389,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3389,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3391,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3391,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3392,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3393,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3396,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3398,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3405,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3408,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3408,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3410,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3410,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3411,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3412,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3415,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:3420,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:3420,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:3421,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3425,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3425,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3427,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3427,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3428,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3429,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3432,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3438,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3440,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3446,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3453,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3454,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: 3330
        line_start: 3330
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3456
      start: 3320
    functionDepth: 2
    functionLinenumber: 3320
    functionLinenumberEnd: 3456
    functionName: batch_dict
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - PyTuple_Size
    - PyTuple_GET_ITEM
    - assert
    - save
    - PyErr_SetString
    - Py_CLEAR
    - _Pickler_Write
    - PyTuple_Check
    - PyErr_Occurred
    - Py_DECREF
    - Py_XDECREF
    - PyIter_Next
    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:3478,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:3478,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3479,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3481,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:3482,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:3488,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3489,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3490,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3491,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3494,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3495,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3498,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3499,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3500,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3506,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:3508,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3509,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:3510,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3511,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3514,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3515,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3518,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3519,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3524,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3526,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3527,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3536,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:3537,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (self->proto > 0)
      pos:
        line_end: 3478
        line_start: 3478
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (obj != NULL && PyDict_CheckExact(obj))
      pos:
        line_end: 3477
        line_start: 3477
        source_file: /src/cpython/Modules/_pickle.c
    - condition: (dict_size)
      pos:
        line_end: 3481
        line_start: 3481
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3539
      start: 3467
    functionDepth: 2
    functionLinenumber: 3467
    functionLinenumberEnd: 3539
    functionName: batch_dict_exact_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - Py_INCREF
    - PyDict_GET_SIZE
    - save
    - PyDict_Next
    - Py_CLEAR
    - _Pickler_Write
    - PyErr_Format
    - assert
    - Py_XDECREF
    - PyDict_CheckExact
    linkageType: ''
    returnType: int
    signature: int batch_dict_exact_impl(PickleState *state, PicklerObject *self,
      PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_pickle.c:3547,1
    - Dst: batch_dict_exact_impl
      Src: /src/cpython/Modules/_pickle.c:3548,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_pickle.c:3549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3551
      start: 3543
    functionDepth: 3
    functionLinenumber: 3543
    functionLinenumberEnd: 3551
    functionName: batch_dict_exact
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - batch_dict_exact_impl
    - Py_END_CRITICAL_SECTION
    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:3560,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:3560,1
    - Dst: fast_save_enter
      Src: /src/cpython/Modules/_pickle.c:3562,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3576,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3579,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3582,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_pickle.c:3584,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3587,1
    - Dst: batch_dict_exact
      Src: /src/cpython/Modules/_pickle.c:3589,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3590,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_pickle.c:3592,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:3592,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_pickle.c:3595,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3596,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3600,1
    - Dst: batch_dict
      Src: /src/cpython/Modules/_pickle.c:3603,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:3604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3605,1
    - Dst: fast_save_leave
      Src: /src/cpython/Modules/_pickle.c:3614,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: 3559
        line_start: 3559
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3618
      start: 3553
    functionDepth: 5
    functionLinenumber: 3553
    functionLinenumberEnd: 3618
    functionName: save_dict
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Py_EnterRecursiveCall
    - _Py_LeaveRecursiveCall
    - fast_save_enter
    - batch_dict_exact
    - PyObject_CallMethodNoArgs
    - PyObject_GetIter
    - batch_dict
    - _Pickler_Write
    - PyDict_Check
    - fast_save_leave
    - memo_put
    - assert
    - PyDict_CheckExact
    - PyDict_GET_SIZE
    - Py_DECREF
    - _Py_ID
    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:3637,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:3641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3642,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:3647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3648,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3652,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3655,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3658,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3666,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_pickle.c:3670,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Modules/_pickle.c:3671,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3672,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3673,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3675,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_pickle.c:3682,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3686,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3688,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3689,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3697
      start: 3620
    functionDepth: 5
    functionLinenumber: 3620
    functionLinenumberEnd: 3697
    functionName: save_set
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - save_reduce
    - PySequence_List
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - save
    - PySet_GET_SIZE
    - _PySet_NextEntryRef
    - Py_BuildValue
    - Py_CLEAR
    - _Pickler_Write
    - memo_put
    - PyErr_Format
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int save_set(PickleState *state, PicklerObject *self, PyObject *obj)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/cpython/Modules/_pickle.c:3712,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:3716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3718,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:3723,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3724,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3728,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_pickle.c:3731,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:3738,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3740,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3741,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3746,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:3747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3754,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:3759,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3762,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:3764,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3769,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:3771,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3699
    functionDepth: 5
    functionLinenumber: 3699
    functionLinenumberEnd: 3775
    functionName: save_frozenset_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - save_reduce
    - PySequence_List
    - save
    - Py_BuildValue
    - PyObject_GetIter
    - _Pickler_Write
    - PyErr_Occurred
    - memo_put
    - Py_DECREF
    - memo_get
    - PyIter_Next
    - PyMemoTable_Get
    linkageType: ''
    returnType: int
    signature: int save_frozenset_impl(PickleState *state, PicklerObject *self, PyObject
      *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fast_save_enter
      Src: /src/cpython/Modules/_pickle.c:3780,1
    - Dst: save_frozenset_impl
      Src: /src/cpython/Modules/_pickle.c:3783,1
    - Dst: fast_save_leave
      Src: /src/cpython/Modules/_pickle.c:3784,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3788
      start: 3777
    functionDepth: 6
    functionLinenumber: 3777
    functionLinenumberEnd: 3788
    functionName: save_frozenset
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - fast_save_leave
    - save_frozenset_impl
    - fast_save_enter
    linkageType: ''
    returnType: int
    signature: int save_frozenset(PickleState *state, PicklerObject *self, PyObject
      *obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_pickle.c:3796,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:3799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3800,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:3805,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3805,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3806,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3809,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3812,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3813,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:3814,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:3815,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3816,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3819,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3820,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3824,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:3825,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3826,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3827,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3830,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:3834,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:3836,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3837,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:3840,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:3843,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3843,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3845,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - st
    - module_name
    - global_name
    argTypes:
    - PickleState*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3850
      start: 3790
    functionDepth: 1
    functionLinenumber: 3790
    functionLinenumberEnd: 3850
    functionName: fix_imports
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - _PyTuple_FromPair
    - PyUnicode_Check
    - Py_CLEAR
    - PyTuple_Check
    - PyErr_Format
    - Py_DECREF
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyDict_GetItemWithError
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int fix_imports(PickleState *st, PyObject **module_name, PyObject **global_name)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3864,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:3867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:3867,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:3870,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:3870,1
    - Dst: get_dotted_path
      Src: /src/cpython/Modules/_pickle.c:3876,1
    - Dst: mangle_dotted_path
      Src: /src/cpython/Modules/_pickle.c:3879,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_pickle.c:3883,1
    - Dst: join_dotted_path
      Src: /src/cpython/Modules/_pickle.c:3883,1
    - Dst: whichmodule
      Src: /src/cpython/Modules/_pickle.c:3888,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_pickle.c:3902,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_pickle.c:3906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3910,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_pickle.c:3917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:3918,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:3922,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:3923,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3948,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3956,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3958,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3961,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3976,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_pickle.c:3977,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:3977,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:3977,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:3979,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:3980,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3981,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:3991,1
    - Dst: fix_imports
      Src: /src/cpython/Modules/_pickle.c:3997,1
    - Dst: unicode_encoder
      Src: /src/cpython/Modules/_pickle.c:4013,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:4015,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:4016,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4017,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:4021,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4025,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:4025,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4030,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4031,1
    - Dst: unicode_encoder
      Src: /src/cpython/Modules/_pickle.c:4035,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:4037,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:4038,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4039,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:4043,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4047,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:4047,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4052,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4053,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4057,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4058,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4058,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4059,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4060,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:4068,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4076,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4077,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4078,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 175
    argCount: 4
    argNames:
    - st
    - self
    - obj
    - name
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4081
      start: 3852
    functionDepth: 5
    functionLinenumber: 3852
    functionLinenumberEnd: 4081
    functionName: save_global
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - fix_imports
    - PyList_GET_ITEM
    - join_dotted_path
    - _Pickler_Write
    - PyErr_Occurred
    - save
    - PyObject_GetOptionalAttr
    - _PyErr_ChainExceptions1
    - mangle_dotted_path
    - PyLong_AsLong
    - Py_XDECREF
    - PyBytes_AS_STRING
    - unicode_encoder
    - get_dotted_path
    - _PyTuple_FromPair
    - memo_put
    - Py_DECREF
    - PyDict_GetItemRef
    - PyErr_GetRaisedException
    - whichmodule
    - PyBytes_GET_SIZE
    - Py_NewRef
    - Py_SETREF
    - PyObject_GetAttr
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyList_GET_SIZE
    - _Py_ID
    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:4090,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:4094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - state
    - self
    - obj
    - singleton
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4097
      start: 4083
    functionDepth: 1
    functionLinenumber: 4083
    functionLinenumberEnd: 4097
    functionName: save_singleton_type
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - save_reduce
    - Py_BuildValue
    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:4103,1
    - Dst: save_singleton_type
      Src: /src/cpython/Modules/_pickle.c:4106,1
    - Dst: save_singleton_type
      Src: /src/cpython/Modules/_pickle.c:4109,1
    - Dst: save_global
      Src: /src/cpython/Modules/_pickle.c:4111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4112
      start: 4099
    functionDepth: 6
    functionLinenumber: 4099
    functionLinenumberEnd: 4112
    functionName: save_type
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_global
    - save_singleton_type
    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:4123,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4129,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4130,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_pickle.c:4136,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_pickle.c:4142,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:4143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4146,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4150,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4151,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_pickle.c:4151,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_pickle.c:4152,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4157,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4166,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - state
    - self
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4169
      start: 4114
    functionDepth: 2
    functionLinenumber: 4114
    functionLinenumberEnd: 4169
    functionName: save_pers
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - PyObject_Str
    - save
    - PyErr_SetString
    - _Pickler_Write
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallOneArg
    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:4176,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4176,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:4177,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4171
    functionDepth: 1
    functionLinenumber: 4171
    functionLinenumberEnd: 4180
    functionName: get_class
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Py_ID
    - Py_NewRef
    - 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:4203,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:4205,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_pickle.c:4211,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_pickle.c:4216,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4217,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:4222,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4223,1
    - Dst: PyIter_Check
      Src: /src/cpython/Modules/_pickle.c:4234,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4235,1
    - Dst: PyIter_Check
      Src: /src/cpython/Modules/_pickle.c:4243,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4244,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_pickle.c:4252,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4253,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4262,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4262,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:4265,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Modules/_pickle.c:4266,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4266,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Modules/_pickle.c:4268,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4268,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4271,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4279,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4280,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4282,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4286,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_pickle.c:4287,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4288,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4293,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:4294,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4295,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4300,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:4301,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4302,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4309,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4310,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4313,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4314,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4316,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4319,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:4328,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4328,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:4332,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4334,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4337,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4338,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:4338,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4339,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4340,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4341,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:4341,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_pickle.c:4344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4345,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:4349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4351,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4355,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4356,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4364,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4365,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4377,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4378,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4380,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:4384,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_pickle.c:4385,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4386,1
    - Dst: get_class
      Src: /src/cpython/Modules/_pickle.c:4393,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4404,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4434,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4435,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_pickle.c:4439,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:4439,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4444,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4446,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4451,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4455,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4456,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4459,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4460,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4463,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:4476,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4479,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:4481,1
    - Dst: memo_put
      Src: /src/cpython/Modules/_pickle.c:4486,1
    - Dst: batch_list
      Src: /src/cpython/Modules/_pickle.c:4490,1
    - Dst: batch_dict
      Src: /src/cpython/Modules/_pickle.c:4493,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4498,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4499,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4502,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4518,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4519,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4522,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4525,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4526,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4529,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4530,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4531,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 206
    argCount: 4
    argNames:
    - st
    - self
    - args
    - obj
    argTypes:
    - PickleState*
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4536
      start: 4185
    functionDepth: 5
    functionLinenumber: 4185
    functionLinenumberEnd: 4536
    functionName: save_reduce
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 5
    functionsReached:
    - PyTuple_GET_ITEM
    - PyType_Check
    - PyArg_UnpackTuple
    - PyIter_Check
    - PyObject_Call
    - _Pickler_Write
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - PyCallable_Check
    - save
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - batch_dict
    - Py_XDECREF
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - memo_put
    - Py_DECREF
    - batch_list
    - Py_NewRef
    - PyTuple_New
    - _PyErr_FormatNote
    - PyTuple_Size
    - get_class
    - _PyUnicode_Equal
    - PyObject_GetAttr
    - PyDict_Check
    - PyErr_Format
    - PyTuple_GetSlice
    - memo_get
    - PyMemoTable_Get
    - _Py_ID
    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:4546,1
    - Dst: save_pers
      Src: /src/cpython/Modules/_pickle.c:4557,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4561,1
    - Dst: save_none
      Src: /src/cpython/Modules/_pickle.c:4571,1
    - Dst: save_bool
      Src: /src/cpython/Modules/_pickle.c:4574,1
    - Dst: save_long
      Src: /src/cpython/Modules/_pickle.c:4577,1
    - Dst: save_float
      Src: /src/cpython/Modules/_pickle.c:4580,1
    - Dst: PyMemoTable_Get
      Src: /src/cpython/Modules/_pickle.c:4586,1
    - Dst: memo_get
      Src: /src/cpython/Modules/_pickle.c:4587,1
    - Dst: save_bytes
      Src: /src/cpython/Modules/_pickle.c:4591,1
    - Dst: save_unicode
      Src: /src/cpython/Modules/_pickle.c:4594,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:4599,1
    - Dst: save_dict
      Src: /src/cpython/Modules/_pickle.c:4604,1
    - Dst: save_set
      Src: /src/cpython/Modules/_pickle.c:4608,1
    - Dst: save_frozenset
      Src: /src/cpython/Modules/_pickle.c:4612,1
    - Dst: save_list
      Src: /src/cpython/Modules/_pickle.c:4616,1
    - Dst: save_tuple
      Src: /src/cpython/Modules/_pickle.c:4620,1
    - Dst: save_bytearray
      Src: /src/cpython/Modules/_pickle.c:4624,1
    - Dst: save_picklebuffer
      Src: /src/cpython/Modules/_pickle.c:4628,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:4637,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_pickle.c:4644,1
    - Dst: save_type
      Src: /src/cpython/Modules/_pickle.c:4648,1
    - Dst: save_global
      Src: /src/cpython/Modules/_pickle.c:4652,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:4663,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:4666,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:4673,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Modules/_pickle.c:4676,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:4683,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:4683,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/_pickle.c:4685,1
    - Dst: save_global
      Src: /src/cpython/Modules/_pickle.c:4686,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4699,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4699,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:4704,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:4706,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4711,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4711,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_pickle.c:4715,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4718,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:4729,1
    - Dst: save_global
      Src: /src/cpython/Modules/_pickle.c:4730,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:4734,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4735,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4737,1
    - Dst: save_reduce
      Src: /src/cpython/Modules/_pickle.c:4741,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_pickle.c:4743,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_pickle.c:4752,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4753,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:4754,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: 4757
      start: 4538
    functionDepth: 7
    functionLinenumber: 4538
    functionLinenumberEnd: 4757
    functionName: save
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 10
    functionsReached:
    - save_bytearray
    - PyLong_FromLong
    - PyErr_Occurred
    - PyTuple_Check
    - _Pickler_OpcodeBoundary
    - save_unicode
    - PyMapping_GetOptionalItem
    - Py_TYPE
    - PyDict_GetItemWithError
    - save_float
    - save_global
    - PyType_IsSubtype
    - save_reduce
    - _Py_EnterRecursiveCall
    - save_bytes
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - save_set
    - _Pickle_FastCall
    - save_type
    - PyObject_CallNoArgs
    - Py_XDECREF
    - save_long
    - Py_INCREF
    - save_bool
    - save_frozenset
    - _Py_ID
    - save_none
    - Py_NewRef
    - _PyErr_FormatNote
    - save_pers
    - save_dict
    - Py_SETREF
    - _Py_LeaveRecursiveCall
    - PyErr_Format
    - memo_get
    - save_tuple
    - save_list
    - save_picklebuffer
    - PyMemoTable_Get
    - PyObject_CallOneArg
    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: 4763
      start: 4759
    functionDepth: 0
    functionLinenumber: 4759
    functionLinenumberEnd: 4763
    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:4773,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4773,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Modules/_pickle.c:4777,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Modules/_pickle.c:4778,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Modules/_pickle.c:4779,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4781,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:4783,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:4786,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:4786,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:4790,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:4796,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4798,1
    - Dst: save
      Src: /src/cpython/Modules/_pickle.c:4804,1
    - Dst: _Pickler_Write
      Src: /src/cpython/Modules/_pickle.c:4805,1
    - Dst: _Pickler_CommitFrame
      Src: /src/cpython/Modules/_pickle.c:4806,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4821,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4822,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: 4795
        line_start: 4795
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 4824
      start: 4765
    functionDepth: 8
    functionLinenumber: 4765
    functionLinenumberEnd: 4824
    functionName: dump
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GET_FUNCTION
    - Py_XSETREF
    - save
    - PyObject_GetAttr
    - PyObject_GetOptionalAttr
    - Py_CLEAR
    - _Pickler_Write
    - PyCFunction_GET_SELF
    - PyCFunction_Check
    - assert
    - _Pickler_CommitFrame
    - _Py_ID
    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:4843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4846
      start: 4838
    functionDepth: 1
    functionLinenumber: 4838
    functionLinenumberEnd: 4846
    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:4864,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:4869,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4871,1
    - Dst: BEGIN_USING_PICKLER
      Src: /src/cpython/Modules/_pickle.c:4874,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/cpython/Modules/_pickle.c:4876,1
    - Dst: dump
      Src: /src/cpython/Modules/_pickle.c:4879,1
    - Dst: _Pickler_FlushToFile
      Src: /src/cpython/Modules/_pickle.c:4882,1
    - Dst: END_USING_PICKLER
      Src: /src/cpython/Modules/_pickle.c:4885,1
    - Dst: END_USING_PICKLER
      Src: /src/cpython/Modules/_pickle.c:4889,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - cls
    - obj
    argTypes:
    - PicklerObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4859
    functionDepth: 9
    functionLinenumber: 4859
    functionLinenumberEnd: 4891
    functionName: _pickle_Pickler_dump_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetStateByClass
    - BEGIN_USING_PICKLER
    - dump
    - _Pickler_ClearBuffer
    - END_USING_PICKLER
    - PyErr_Format
    - _Pickler_FlushToFile
    - Py_TYPE
    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:4904,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4904,1
    - Dst: _PySys_GetSizeOf
      Src: /src/cpython/Modules/_pickle.c:4910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4917
      start: 4900
    functionDepth: 1
    functionLinenumber: 4900
    functionLinenumberEnd: 4917
    functionName: _pickle_Pickler___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PySys_GetSizeOf
    - _PyObject_SIZE
    - Py_TYPE
    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:4931,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4932,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4933,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4934,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4935,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4936,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4937,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4938,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:4939,1
    - Dst: PyMemoTable_Del
      Src: /src/cpython/Modules/_pickle.c:4944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4947
      start: 4928
    functionDepth: 2
    functionLinenumber: 4928
    functionLinenumberEnd: 4947
    functionName: Pickler_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyMemoTable_Del
    - PicklerObject_CAST
    linkageType: ''
    returnType: int
    signature: int Pickler_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4952,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:4953,1
    - Dst: Pickler_clear
      Src: /src/cpython/Modules/_pickle.c:4954,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:4955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:4956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4957
      start: 4949
    functionDepth: 3
    functionLinenumber: 4949
    functionLinenumberEnd: 4957
    functionName: Pickler_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Pickler_clear
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Pickler_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:4962,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4963,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:4963,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4964,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4965,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4966,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4967,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4968,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4969,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4970,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:4975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4980
      start: 4959
    functionDepth: 1
    functionLinenumber: 4959
    functionLinenumberEnd: 4980
    functionName: Pickler_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - PicklerObject_CAST
    linkageType: ''
    returnType: int
    signature: int Pickler_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_USING_PICKLER
      Src: /src/cpython/Modules/_pickle.c:5031,1
    - Dst: Pickler_clear
      Src: /src/cpython/Modules/_pickle.c:5034,1
    - Dst: _Pickler_SetProtocol
      Src: /src/cpython/Modules/_pickle.c:5036,1
    - Dst: _Pickler_SetOutputStream
      Src: /src/cpython/Modules/_pickle.c:5039,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/cpython/Modules/_pickle.c:5042,1
    - Dst: PyMemoTable_New
      Src: /src/cpython/Modules/_pickle.c:5047,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:5055,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:5067,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:5067,1
    - Dst: END_USING_PICKLER
      Src: /src/cpython/Modules/_pickle.c:5073,1
    - Dst: END_USING_PICKLER
      Src: /src/cpython/Modules/_pickle.c:5077,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 5
    argNames:
    - self
    - file
    - protocol
    - fix_imports
    - buffer_callback
    argTypes:
    - PicklerObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5079
      start: 5025
    functionDepth: 3
    functionLinenumber: 5025
    functionLinenumberEnd: 5079
    functionName: _pickle_Pickler___init___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - BEGIN_USING_PICKLER
    - PyObject_GetOptionalAttr
    - _Pickler_SetProtocol
    - _Py_ID
    - END_USING_PICKLER
    - _Pickler_SetOutputStream
    - PyMemoTable_New
    - Pickler_clear
    - _Pickler_SetBufferCallback
    linkageType: ''
    returnType: int
    signature: "int _pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,\n
      \                             PyObject *protocol, int fix_imports,\n                              PyObject
      *buffer_callback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Clear
      Src: /src/cpython/Modules/_pickle.c:5103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5105
      start: 5098
    functionDepth: 1
    functionLinenumber: 5098
    functionLinenumberEnd: 5105
    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:5118,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_pickle.c:5129,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_pickle.c:5133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5135,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:5138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5140,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:5148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5150
      start: 5113
    functionDepth: 1
    functionLinenumber: 5113
    functionLinenumberEnd: 5150
    functionName: _pickle_PicklerMemoProxy_copy_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyDict_SetItem
    - Py_XDECREF
    - Py_DECREF
    - PyLong_FromVoidPtr
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_copy_impl(PicklerMemoProxyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_PicklerMemoProxy_copy_impl
      Src: /src/cpython/Modules/_pickle.c:5163,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:5167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5169,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:5172,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_pickle.c:5174,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:5174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5175
      start: 5158
    functionDepth: 2
    functionLinenumber: 5158
    functionLinenumberEnd: 5175
    functionName: _pickle_PicklerMemoProxy___reduce___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _pickle_PicklerMemoProxy_copy_impl
    - PyTuple_New
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy___reduce___impl(PicklerMemoProxyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5187,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5188,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:5189,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:5190,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:5191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5193
      start: 5184
    functionDepth: 1
    functionLinenumber: 5184
    functionLinenumberEnd: 5193
    functionName: PicklerMemoProxy_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerMemoProxyObject_CAST
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PicklerMemoProxy_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5198,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:5199,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5199,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:5200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5202
      start: 5195
    functionDepth: 1
    functionLinenumber: 5195
    functionLinenumberEnd: 5202
    functionName: PicklerMemoProxy_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerMemoProxyObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:5207,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:5208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5210
      start: 5204
    functionDepth: 1
    functionLinenumber: 5204
    functionLinenumberEnd: 5210
    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:5233,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5233,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:5234,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:5237,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:5238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pickler
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5240
      start: 5229
    functionDepth: 3
    functionLinenumber: 5229
    functionLinenumberEnd: 5240
    functionName: PicklerMemoProxy_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _Pickle_FindStateByType
    - Py_NewRef
    - Py_TYPE
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PicklerMemoProxy_New(PicklerObject *pickler)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5247,1
    - Dst: PicklerMemoProxy_New
      Src: /src/cpython/Modules/_pickle.c:5248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5249
      start: 5244
    functionDepth: 4
    functionLinenumber: 5244
    functionLinenumberEnd: 5249
    functionName: Pickler_get_memo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerMemoProxy_New
    - PicklerObject_CAST
    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:5255,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5258,1
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:5263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5263,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_pickle.c:5264,1
    - Dst: PyMemoTable_Copy
      Src: /src/cpython/Modules/_pickle.c:5268,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:5272,1
    - Dst: PyMemoTable_New
      Src: /src/cpython/Modules/_pickle.c:5276,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:5280,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:5284,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:5284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5285,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:5289,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:5289,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:5290,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:5292,1
    - Dst: PyMemoTable_Set
      Src: /src/cpython/Modules/_pickle.c:5293,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5298,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:5300,1
    - Dst: PyMemoTable_Del
      Src: /src/cpython/Modules/_pickle.c:5304,1
    - Dst: PyMemoTable_Del
      Src: /src/cpython/Modules/_pickle.c:5311,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - op
    - obj
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5313
      start: 5251
    functionDepth: 4
    functionLinenumber: 5251
    functionLinenumberEnd: 5313
    functionName: Pickler_set_memo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_Set
    - PyTuple_GET_ITEM
    - Py_IS_TYPE
    - PyErr_SetString
    - PyDict_Next
    - PyLong_AsSsize_t
    - PyDict_Check
    - PyMemoTable_Del
    - PyTuple_Check
    - PicklerObject_CAST
    - PyErr_Occurred
    - PyMemoTable_New
    - PyTuple_GET_SIZE
    - PyErr_Format
    - _Pickle_FindStateByType
    - Py_TYPE
    - PyMemoTable_Copy
    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:5318,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:5319,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_pickle.c:5320,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:5323,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/_pickle.c:5326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5315
    functionDepth: 1
    functionLinenumber: 5315
    functionLinenumberEnd: 5327
    functionName: Pickler_getattr
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - PyUnicode_Check
    - PyUnicode_EqualToUTF8
    - PicklerObject_CAST
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pickler_getattr(PyObject *self, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:5332,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_pickle.c:5333,1
    - Dst: PicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:5335,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_pickle.c:5336,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:5337,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/cpython/Modules/_pickle.c:5341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5329
    functionDepth: 1
    functionLinenumber: 5329
    functionLinenumberEnd: 5342
    functionName: Pickler_setattr
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericSetAttr
    - Py_XSETREF
    - PyUnicode_Check
    - PyUnicode_EqualToUTF8
    - PicklerObject_CAST
    - 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:5391,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:5391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - module_name
    - global_name
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5393
      start: 5388
    functionDepth: 1
    functionLinenumber: 5388
    functionLinenumberEnd: 5393
    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:5399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5408
      start: 5395
    functionDepth: 1
    functionLinenumber: 5395
    functionLinenumberEnd: 5408
    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:5413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5415
      start: 5410
    functionDepth: 1
    functionLinenumber: 5410
    functionLinenumberEnd: 5415
    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:5425,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5428,1
    - Dst: strtol
      Src: /src/cpython/Modules/_pickle.c:5432,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_pickle.c:5438,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5440,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_pickle.c:5447,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:5451,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5456,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5458
      start: 5417
    functionDepth: 5
    functionLinenumber: 5417
    functionLinenumberEnd: 5458
    functionName: load_int
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetString
    - bad_readline
    - _Unpickler_Readline
    - strtol
    - PyBool_FromLong
    - PDATA_PUSH
    - PyLong_FromString
    linkageType: ''
    returnType: int
    signature: int load_int(PickleState *state, UnpicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:5463,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:5464,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: 5462
        line_start: 5462
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5466
      start: 5460
    functionDepth: 1
    functionLinenumber: 5460
    functionLinenumberEnd: 5466
    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: 5496
      start: 5471
    functionDepth: 0
    functionLinenumber: 5471
    functionLinenumberEnd: 5496
    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: 5523
      start: 5503
    functionDepth: 0
    functionLinenumber: 5503
    functionLinenumberEnd: 5523
    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:5531,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:5533,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - s
    - size
    argTypes:
    - UnpicklerObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5538
      start: 5525
    functionDepth: 1
    functionLinenumber: 5525
    functionLinenumberEnd: 5538
    functionName: load_binintx
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - calc_binint
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_binintx(UnpicklerObject *self, char *s, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5544,1
    - Dst: load_binintx
      Src: /src/cpython/Modules/_pickle.c:5547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5548
      start: 5540
    functionDepth: 2
    functionLinenumber: 5540
    functionLinenumberEnd: 5548
    functionName: load_binint
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - load_binintx
    linkageType: ''
    returnType: int
    signature: int load_binint(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5554,1
    - Dst: load_binintx
      Src: /src/cpython/Modules/_pickle.c:5557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5558
      start: 5550
    functionDepth: 2
    functionLinenumber: 5550
    functionLinenumberEnd: 5558
    functionName: load_binint1
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - load_binintx
    linkageType: ''
    returnType: int
    signature: int load_binint1(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5564,1
    - Dst: load_binintx
      Src: /src/cpython/Modules/_pickle.c:5567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5568
      start: 5560
    functionDepth: 2
    functionLinenumber: 5560
    functionLinenumberEnd: 5568
    functionName: load_binint2
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - load_binintx
    linkageType: ''
    returnType: int
    signature: int load_binint2(PickleState *state, UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5577,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5580,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_pickle.c:5588,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5594
      start: 5570
    functionDepth: 5
    functionLinenumber: 5570
    functionLinenumberEnd: 5594
    functionName: load_long
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromString
    - PDATA_PUSH
    - bad_readline
    - _Unpickler_Readline
    linkageType: ''
    returnType: int
    signature: int load_long(PickleState *state, UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:5606,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5607,1
    - Dst: calc_binint
      Src: /src/cpython/Modules/_pickle.c:5610,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5613,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:5619,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5622,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/_pickle.c:5624,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5629,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: 5605
        line_start: 5605
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5631
      start: 5599
    functionDepth: 1
    functionLinenumber: 5599
    functionLinenumberEnd: 5631
    functionName: load_counted_long
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _Unpickler_Read
    - PyErr_SetString
    - _PyLong_FromByteArray
    - PDATA_PUSH
    - assert
    - calc_binint
    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:5641,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5644,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Modules/_pickle.c:5647,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:5648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5651,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_pickle.c:5654,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5660
      start: 5633
    functionDepth: 5
    functionLinenumber: 5633
    functionLinenumberEnd: 5660
    functionName: load_float
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFloat_FromDouble
    - bad_readline
    - _Unpickler_Readline
    - PDATA_PUSH
    - PyErr_Occurred
    - PyOS_string_to_double
    linkageType: ''
    returnType: int
    signature: int load_float(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5669,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_pickle.c:5672,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:5673,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_pickle.c:5676,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5679,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5681
      start: 5662
    functionDepth: 1
    functionLinenumber: 5662
    functionLinenumberEnd: 5681
    functionName: load_binfloat
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack8
    - _Unpickler_Read
    - PyFloat_FromDouble
    - PDATA_PUSH
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int load_binfloat(PickleState *state, UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:5691,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5701,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:5705,1
    - Dst: PyBytes_DecodeEscape
      Src: /src/cpython/Modules/_pickle.c:5709,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_pickle.c:5715,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Modules/_pickle.c:5719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5720,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5726,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 5704
        line_start: 5704
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5728
      start: 5683
    functionDepth: 5
    functionLinenumber: 5683
    functionLinenumberEnd: 5728
    functionName: load_string
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_DecodeEscape
    - strcmp
    - PyErr_SetString
    - PyUnicode_FromEncodedObject
    - _Unpickler_Readline
    - PDATA_PUSH
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int load_string(PickleState *st, UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5737,1
    - Dst: calc_binint
      Src: /src/cpython/Modules/_pickle.c:5740,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5742,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5747,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_pickle.c:5752,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:5753,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_pickle.c:5756,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - st
    - self
    - nbytes
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5764
      start: 5730
    functionDepth: 1
    functionLinenumber: 5730
    functionLinenumberEnd: 5764
    functionName: load_counted_binstring
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - strcmp
    - _Unpickler_Read
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - PDATA_PUSH
    - PyUnicode_Decode
    - calc_binint
    linkageType: ''
    returnType: int
    signature: int load_counted_binstring(PickleState *st, UnpicklerObject *self,
      int nbytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5773,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:5776,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5778,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_pickle.c:5784,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:5786,1
    - Dst: _Unpickler_ReadInto
      Src: /src/cpython/Modules/_pickle.c:5791,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:5792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5794,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_pickle.c:5801,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_pickle.c:5802,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5807,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - state
    - self
    - nbytes
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5809
      start: 5766
    functionDepth: 4
    functionLinenumber: 5766
    functionLinenumberEnd: 5809
    functionName: load_counted_binbytes
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_ReadInto
    - _Unpickler_Read
    - PyBytes_FromStringAndSize
    - Py_MIN
    - _PyBytes_Resize
    - PDATA_PUSH
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_DECREF
    - calc_binsize
    linkageType: ''
    returnType: int
    signature: int load_counted_binbytes(PickleState *state, UnpicklerObject *self,
      int nbytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5818,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:5822,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5824,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_pickle.c:5830,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_pickle.c:5832,1
    - Dst: _Unpickler_ReadInto
      Src: /src/cpython/Modules/_pickle.c:5837,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_pickle.c:5838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5840,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_pickle.c:5847,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Modules/_pickle.c:5848,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5853,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5855
      start: 5811
    functionDepth: 4
    functionLinenumber: 5811
    functionLinenumberEnd: 5855
    functionName: load_counted_bytearray
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_ReadInto
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - _Unpickler_Read
    - Py_MIN
    - PDATA_PUSH
    - PyErr_Format
    - Py_DECREF
    - calc_binsize
    - PyByteArray_AS_STRING
    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:5861,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_pickle.c:5866,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:5868,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:5869,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5877
      start: 5857
    functionDepth: 1
    functionLinenumber: 5857
    functionLinenumberEnd: 5877
    functionName: load_next_buffer
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyIter_Next
    - PDATA_PUSH
    - PyErr_Occurred
    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:5882,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:5884,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_pickle.c:5888,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/cpython/Modules/_pickle.c:5892,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/cpython/Modules/_pickle.c:5894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:5900,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5903
      start: 5879
    functionDepth: 2
    functionLinenumber: 5879
    functionLinenumberEnd: 5903
    functionName: load_readonly_buffer
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - PyMemoryView_GET_BUFFER
    - Py_SIZE
    - Py_DECREF
    - PyMemoryView_FromObject
    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:5912,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:5915,1
    - Dst: PyUnicode_DecodeRawUnicodeEscape
      Src: /src/cpython/Modules/_pickle.c:5917,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5923
      start: 5905
    functionDepth: 5
    functionLinenumber: 5905
    functionLinenumberEnd: 5923
    functionName: load_unicode
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeRawUnicodeEscape
    - PDATA_PUSH
    - bad_readline
    - _Unpickler_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:5932,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:5935,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:5937,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:5943,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_pickle.c:5946,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - state
    - self
    - nbytes
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5952
      start: 5925
    functionDepth: 1
    functionLinenumber: 5925
    functionLinenumberEnd: 5952
    functionName: load_counted_binunicode
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - PyUnicode_DecodeUTF8
    - PDATA_PUSH
    - PyErr_Format
    - calc_binsize
    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:5959,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:5960,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:5962,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:5962,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - state
    - self
    - len
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5967
      start: 5954
    functionDepth: 3
    functionLinenumber: 5954
    functionLinenumberEnd: 5967
    functionName: load_counted_tuple
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - PDATA_PUSH
    - Pdata_poptuple
    - Py_SIZE
    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:5974,1
    - Dst: load_counted_tuple
      Src: /src/cpython/Modules/_pickle.c:5977,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:5977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5978
      start: 5969
    functionDepth: 4
    functionLinenumber: 5969
    functionLinenumberEnd: 5978
    functionName: load_tuple
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - load_counted_tuple
    - marker
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int load_tuple(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_pickle.c:5985,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5989
      start: 5980
    functionDepth: 1
    functionLinenumber: 5980
    functionLinenumberEnd: 5989
    functionName: load_empty_list
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_PUSH
    - PyList_New
    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:5996,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:5998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6000
      start: 5991
    functionDepth: 1
    functionLinenumber: 5991
    functionLinenumberEnd: 6000
    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:6007,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6011
      start: 6002
    functionDepth: 1
    functionLinenumber: 6002
    functionLinenumberEnd: 6011
    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:6019,1
    - Dst: Pdata_poplist
      Src: /src/cpython/Modules/_pickle.c:6022,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6027
      start: 6013
    functionDepth: 2
    functionLinenumber: 6013
    functionLinenumberEnd: 6027
    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:6035,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6037,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_pickle.c:6039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6044,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:6051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6052,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6056,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6057,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6059
      start: 6029
    functionDepth: 2
    functionLinenumber: 6029
    functionLinenumberEnd: 6059
    functionName: load_dict
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - PyErr_SetString
    - Py_SIZE
    - PyDict_SetItem
    - PDATA_PUSH
    - Py_DECREF
    - Pdata_clear
    - 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:6068,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:6071,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_pickle.c:6075,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6076,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6082
      start: 6061
    functionDepth: 3
    functionLinenumber: 6061
    functionLinenumberEnd: 6082
    functionName: load_frozenset
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - Pdata_poptuple
    - PDATA_PUSH
    - Py_DECREF
    - PyFrozenSet_New
    linkageType: ''
    returnType: int
    signature: int load_frozenset(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:6090,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:6090,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6091,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_pickle.c:6091,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_pickle.c:6092,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6092,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_pickle.c:6097,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6097,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_pickle.c:6100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 6089
        line_start: 6089
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 6101
      start: 6084
    functionDepth: 1
    functionLinenumber: 6084
    functionLinenumberEnd: 6101
    functionName: instantiate
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrWithError
    - PyType_Check
    - PyObject_CallMethodOneArg
    - PyObject_CallObject
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instantiate(PyObject *cls, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6109,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6112,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6113,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:6115,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6119,1
    - Dst: instantiate
      Src: /src/cpython/Modules/_pickle.c:6121,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6124,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6130
      start: 6103
    functionDepth: 3
    functionLinenumber: 6103
    functionLinenumberEnd: 6130
    functionName: load_obj
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - marker
    - Py_SIZE
    - Pdata_poptuple
    - instantiate
    - PDATA_PUSH
    - Py_DECREF
    - 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:6144,1
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6146,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6149,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_pickle.c:6154,1
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6160,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6161,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_pickle.c:6163,1
    - Dst: find_class
      Src: /src/cpython/Modules/_pickle.c:6165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6169,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:6174,1
    - Dst: instantiate
      Src: /src/cpython/Modules/_pickle.c:6175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6178,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6132
    functionDepth: 5
    functionLinenumber: 6132
    functionLinenumberEnd: 6185
    functionName: load_inst
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - find_class
    - marker
    - bad_readline
    - _Unpickler_Readline
    - Pdata_poptuple
    - PDATA_PUSH
    - Py_DECREF
    - PyUnicode_DecodeASCII
    - instantiate
    linkageType: ''
    returnType: int
    signature: int load_inst(PickleState *state, UnpicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6191,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:6193,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: 6194
      start: 6187
    functionDepth: 1
    functionLinenumber: 6187
    functionLinenumberEnd: 6194
    functionName: newobj_unpickling_error
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    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:6206,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6211,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6213,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6216,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6219,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_pickle.c:6223,1
    - Dst: newobj_unpickling_error
      Src: /src/cpython/Modules/_pickle.c:6224,1
    - Dst: newobj_unpickling_error
      Src: /src/cpython/Modules/_pickle.c:6230,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:6235,1
    - Dst: newobj_unpickling_error
      Src: /src/cpython/Modules/_pickle.c:6236,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:6241,1
    - Dst: newobj_unpickling_error
      Src: /src/cpython/Modules/_pickle.c:6242,1
    - Dst: tp_new
      Src: /src/cpython/Modules/_pickle.c:6248,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6254,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6255,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6261,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - state
    - self
    - use_kwargs
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6263
      start: 6196
    functionDepth: 2
    functionLinenumber: 6196
    functionLinenumberEnd: 6263
    functionName: load_newobj
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - newobj_unpickling_error
    - PyDict_Check
    - PDATA_PUSH
    - Py_XDECREF
    - PyTuple_Check
    - Py_DECREF
    - tp_new
    - PDATA_POP
    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:6274,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6277,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_pickle.c:6278,1
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6284,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6285,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_pickle.c:6287,1
    - Dst: find_class
      Src: /src/cpython/Modules/_pickle.c:6289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6293,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6299
      start: 6265
    functionDepth: 5
    functionLinenumber: 6265
    functionLinenumberEnd: 6299
    functionName: load_global
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - find_class
    - PyUnicode_DecodeUTF8
    - bad_readline
    - _Unpickler_Readline
    - PDATA_PUSH
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int load_global(PickleState *state, UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6308,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6314,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_pickle.c:6317,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_pickle.c:6318,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6322,1
    - Dst: find_class
      Src: /src/cpython/Modules/_pickle.c:6325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6327,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6332
      start: 6301
    functionDepth: 2
    functionLinenumber: 6301
    functionLinenumberEnd: 6332
    functionName: load_stack_global
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - find_class
    - PyErr_SetString
    - PyUnicode_CheckExact
    - PDATA_PUSH
    - Py_DECREF
    - PDATA_POP
    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:6341,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6344,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_pickle.c:6346,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:6348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6349,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:6356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6357,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6334
    functionDepth: 5
    functionLinenumber: 6334
    functionLinenumberEnd: 6363
    functionName: load_persid
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - bad_readline
    - _Unpickler_Readline
    - PyErr_ExceptionMatches
    - PDATA_PUSH
    - Py_DECREF
    - PyUnicode_DecodeASCII
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: int load_persid(PickleState *st, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6370,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_pickle.c:6374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6375,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6381
      start: 6365
    functionDepth: 1
    functionLinenumber: 6365
    functionLinenumberEnd: 6381
    functionName: load_binpersid
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PDATA_POP
    - PDATA_PUSH
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: int load_binpersid(PickleState *st, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6386,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6404,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6408
      start: 6383
    functionDepth: 2
    functionLinenumber: 6383
    functionLinenumberEnd: 6408
    functionName: load_pop
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Pdata_stack_underflow
    - Py_SIZE
    - Py_SET_SIZE
    linkageType: ''
    returnType: int
    signature: int load_pop(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6414,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6420
      start: 6410
    functionDepth: 2
    functionLinenumber: 6410
    functionLinenumberEnd: 6420
    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:6426,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6429,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6433
      start: 6422
    functionDepth: 2
    functionLinenumber: 6422
    functionLinenumberEnd: 6433
    functionName: load_dup
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_APPEND
    - Pdata_stack_underflow
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int load_dup(PickleState *state, UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/cpython/Modules/_pickle.c:6443,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6446,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_pickle.c:6448,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:6451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6452,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6453,1
    - Dst: _Unpickler_MemoGet
      Src: /src/cpython/Modules/_pickle.c:6457,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6464
      start: 6435
    functionDepth: 5
    functionLinenumber: 6435
    functionLinenumberEnd: 6464
    functionName: load_get
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_APPEND
    - _Unpickler_MemoGet
    - bad_readline
    - _Unpickler_Readline
    - PyLong_FromString
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int load_get(PickleState *st, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6473,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/_pickle.c:6476,1
    - Dst: _Unpickler_MemoGet
      Src: /src/cpython/Modules/_pickle.c:6478,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6485
      start: 6466
    functionDepth: 2
    functionLinenumber: 6466
    functionLinenumberEnd: 6485
    functionName: load_binget
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - _Unpickler_MemoGet
    - PDATA_APPEND
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: int load_binget(PickleState *st, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6494,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:6497,1
    - Dst: _Unpickler_MemoGet
      Src: /src/cpython/Modules/_pickle.c:6499,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6506
      start: 6487
    functionDepth: 2
    functionLinenumber: 6487
    functionLinenumberEnd: 6506
    functionName: load_long_binget
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - calc_binsize
    - _Unpickler_MemoGet
    - PDATA_APPEND
    linkageType: ''
    returnType: int
    signature: int load_long_binget(PickleState *st, UnpicklerObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:6521,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6522,1
    - Dst: calc_binint
      Src: /src/cpython/Modules/_pickle.c:6524,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6527,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_pickle.c:6532,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:6535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6538,1
    - Dst: PDATA_APPEND
      Src: /src/cpython/Modules/_pickle.c:6539,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6543,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:6548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6550,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6551,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6552,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:6560,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_pickle.c:6560,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:6564,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:6565,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:6569,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:6570,1
    - Dst: find_class
      Src: /src/cpython/Modules/_pickle.c:6575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6577,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:6581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6584,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:6587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6591,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:6592,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: 6520
        line_start: 6520
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 6595
      start: 6511
    functionDepth: 2
    functionLinenumber: 6511
    functionLinenumberEnd: 6595
    functionName: load_extension
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_APPEND
    - PyLong_FromLong
    - PyTuple_Size
    - PyTuple_GET_ITEM
    - find_class
    - _Unpickler_Read
    - PyErr_SetString
    - PyUnicode_Check
    - PyDict_SetItem
    - PDATA_PUSH
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_Format
    - PyTuple_Check
    - calc_binint
    - PyDict_GetItemWithError
    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:6605,1
    - Dst: bad_readline
      Src: /src/cpython/Modules/_pickle.c:6608,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6609,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6610,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6611,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_pickle.c:6613,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:6616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6617,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:6619,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6620,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:6625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6626
      start: 6597
    functionDepth: 5
    functionLinenumber: 6597
    functionLinenumberEnd: 6626
    functionName: load_put
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - PyErr_SetString
    - Py_SIZE
    - bad_readline
    - _Unpickler_Readline
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_FromString
    - _Unpickler_MemoPut
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int load_put(PickleState *state, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6635,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6638,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6639,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6640,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/_pickle.c:6642,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:6644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6645
      start: 6628
    functionDepth: 3
    functionLinenumber: 6628
    functionLinenumberEnd: 6645
    functionName: load_binput
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - _Unpickler_Read
    - Py_SIZE
    - Py_CHARMASK
    - _Unpickler_MemoPut
    linkageType: ''
    returnType: int
    signature: int load_binput(PickleState *state, UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:6654,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6657,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6658,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6659,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:6661,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6663,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:6668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6669
      start: 6647
    functionDepth: 3
    functionLinenumber: 6647
    functionLinenumberEnd: 6669
    functionName: load_long_binput
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - _Unpickler_Read
    - PyErr_SetString
    - Py_SIZE
    - 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:6676,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6677,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6678,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:6680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6681
      start: 6671
    functionDepth: 3
    functionLinenumber: 6671
    functionLinenumberEnd: 6681
    functionName: load_memoize
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - _Unpickler_MemoPut
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int load_memoize(PickleState *state, UnpicklerObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6692,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6694,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_pickle.c:6698,1
    - Dst: Pdata_poplist
      Src: /src/cpython/Modules/_pickle.c:6702,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6705,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_pickle.c:6706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6707,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:6713,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6713,1
    - Dst: Pdata_poplist
      Src: /src/cpython/Modules/_pickle.c:6717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6719,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:6722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6723,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6726,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:6734,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6734,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:6739,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6741,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6746,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6749,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - state
    - self
    - x
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6754
      start: 6683
    functionDepth: 2
    functionLinenumber: 6683
    functionLinenumberEnd: 6754
    functionName: do_append
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - Py_SET_SIZE
    - Pdata_poplist
    - Py_SIZE
    - PyObject_GetOptionalAttr
    - PyObject_GetAttr
    - _Py_ID
    - _Pickle_FastCall
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GET_SIZE
    - Pdata_clear
    - PyList_SetSlice
    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:6759,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6760,1
    - Dst: do_append
      Src: /src/cpython/Modules/_pickle.c:6761,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6762
      start: 6756
    functionDepth: 3
    functionLinenumber: 6756
    functionLinenumberEnd: 6762
    functionName: load_append
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - do_append
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int load_append(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6767,1
    - Dst: do_append
      Src: /src/cpython/Modules/_pickle.c:6770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6771
      start: 6764
    functionDepth: 3
    functionLinenumber: 6764
    functionLinenumberEnd: 6771
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6781,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6783,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6786,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_pickle.c:6798,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6804,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - st
    - self
    - x
    argTypes:
    - PickleState*
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6806
      start: 6773
    functionDepth: 2
    functionLinenumber: 6773
    functionLinenumberEnd: 6806
    functionName: do_setitems
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - PyErr_SetString
    - Py_SIZE
    - PyObject_SetItem
    - Pdata_clear
    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:6811,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6812
      start: 6808
    functionDepth: 3
    functionLinenumber: 6808
    functionLinenumberEnd: 6812
    functionName: load_setitem
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - do_setitems
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int load_setitem(PickleState *state, UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6817,1
    - Dst: do_setitems
      Src: /src/cpython/Modules/_pickle.c:6820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6821
      start: 6814
    functionDepth: 3
    functionLinenumber: 6814
    functionLinenumberEnd: 6821
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/cpython/Modules/_pickle.c:6829,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6832,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6834,1
    - Dst: PySet_Check
      Src: /src/cpython/Modules/_pickle.c:6838,1
    - Dst: Pdata_poptuple
      Src: /src/cpython/Modules/_pickle.c:6842,1
    - Dst: _PySet_Update
      Src: /src/cpython/Modules/_pickle.c:6846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6847,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:6853,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6853,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:6861,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:6863,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6868,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6871,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6875
      start: 6823
    functionDepth: 3
    functionLinenumber: 6823
    functionLinenumberEnd: 6875
    functionName: load_additems
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - Py_SET_SIZE
    - marker
    - Py_SIZE
    - _PySet_Update
    - PyObject_GetAttr
    - Pdata_poptuple
    - PySet_Check
    - _Pickle_FastCall
    - Py_DECREF
    - Pdata_clear
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int load_additems(PickleState *state, UnpicklerObject *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6887,1
    - Dst: Pdata_stack_underflow
      Src: /src/cpython/Modules/_pickle.c:6888,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:6891,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:6895,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_pickle.c:6897,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6898,1
    - Dst: _Pickle_FastCall
      Src: /src/cpython/Modules/_pickle.c:6905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6909,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:6916,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:6916,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:6919,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:6920,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:6921,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:6922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6923,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:6934,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6935,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:6938,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:6938,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:6943,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_pickle.c:6946,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_pickle.c:6947,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_pickle.c:6948,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Modules/_pickle.c:6949,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_pickle.c:6951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6952,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6953,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6958,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:6966,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:6967,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:6972,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_pickle.c:6973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:6983,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:6984,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6986
      start: 6877
    functionDepth: 2
    functionLinenumber: 6877
    functionLinenumberEnd: 6986
    functionName: load_build
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - Pdata_stack_underflow
    - PyObject_GetOptionalAttr
    - _Pickle_FastCall
    - Py_XDECREF
    - Py_INCREF
    - PyErr_SetString
    - Py_SIZE
    - PyDict_Next
    - Py_DECREF
    - _PyUnicode_InternMortal
    - PyObject_SetItem
    - PyObject_SetAttr
    - PyUnicode_CheckExact
    - PyObject_GetAttr
    - _PyInterpreterState_GET
    - PyDict_Check
    - PDATA_POP
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int load_build(PickleState *st, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RESIZE
      Src: /src/cpython/Modules/_pickle.c:7000,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_pickle.c:7002,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:7010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7013
      start: 6988
    functionDepth: 1
    functionLinenumber: 6988
    functionLinenumberEnd: 7013
    functionName: load_mark
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyMem_RESIZE
    - 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:7022,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:7025,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_pickle.c:7027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7030,1
    - Dst: PDATA_PUSH
      Src: /src/cpython/Modules/_pickle.c:7035,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7037
      start: 7015
    functionDepth: 1
    functionLinenumber: 7015
    functionLinenumberEnd: 7037
    functionName: load_reduce
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallObject
    - PDATA_POP
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_reduce(PickleState *state, UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:7048,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7059
      start: 7042
    functionDepth: 1
    functionLinenumber: 7042
    functionLinenumberEnd: 7059
    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:7067,1
    - Dst: calc_binsize
      Src: /src/cpython/Modules/_pickle.c:7070,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7072,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:7078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7084
      start: 7061
    functionDepth: 1
    functionLinenumber: 7061
    functionLinenumberEnd: 7084
    functionName: load_frame
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - calc_binsize
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int load_frame(PickleState *state, UnpicklerObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_pickle.c:7097,1
    - Dst: Pdata_clear
      Src: /src/cpython/Modules/_pickle.c:7098,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:7101,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_pickle.c:7101,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:7105,1
    - Dst: _Unpickler_Read
      Src: /src/cpython/Modules/_pickle.c:7115,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_pickle.c:7116,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7117,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7123,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7124,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7125,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7126,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7127,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7128,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7129,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7130,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7131,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7132,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7133,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7134,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7135,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7136,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7137,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7138,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7139,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7140,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7141,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7142,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7143,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7144,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7145,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7146,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7147,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7148,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7149,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7150,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7151,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7152,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7153,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7154,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7155,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7156,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7157,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7158,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7159,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7160,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7161,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7162,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7163,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7164,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7165,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7166,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7167,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7168,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7169,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7170,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7171,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7172,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7173,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7174,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7175,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7176,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7177,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7178,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7179,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7180,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7181,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7182,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7183,1
    - Dst: OP
      Src: /src/cpython/Modules/_pickle.c:7184,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7185,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7186,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7187,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7188,1
    - Dst: OP_ARG
      Src: /src/cpython/Modules/_pickle.c:7189,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7198,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7202,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7212,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/cpython/Modules/_pickle.c:7216,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7219,1
    - Dst: PDATA_POP
      Src: /src/cpython/Modules/_pickle.c:7220,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7224,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 117
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - PickleState*
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7226
      start: 7086
    functionDepth: 2
    functionLinenumber: 7086
    functionLinenumberEnd: 7226
    functionName: load
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - Py_XSETREF
    - PyObject_GetAttr
    - Py_SIZE
    - OP_ARG
    - Py_CLEAR
    - OP
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - _Unpickler_SkipConsumed
    - PDATA_POP
    - Pdata_clear
    - _Py_ID
    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: 7110
      start: 7108
    functionDepth: 0
    functionLinenumber: 7108
    functionLinenumberEnd: 7110
    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: 7113
      start: 7111
    functionDepth: 0
    functionLinenumber: 7111
    functionLinenumberEnd: 7113
    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:7243,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:7244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - cls
    - pid
    argTypes:
    - UnpicklerObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7248
      start: 7238
    functionDepth: 2
    functionLinenumber: 7238
    functionLinenumberEnd: 7248
    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:7267,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7274,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7276,1
    - Dst: BEGIN_USING_UNPICKLER
      Src: /src/cpython/Modules/_pickle.c:7279,1
    - Dst: load
      Src: /src/cpython/Modules/_pickle.c:7280,1
    - Dst: END_USING_UNPICKLER
      Src: /src/cpython/Modules/_pickle.c:7281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - UnpicklerObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7283
      start: 7263
    functionDepth: 3
    functionLinenumber: 7263
    functionLinenumberEnd: 7283
    functionName: _pickle_Unpickler_load_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetStateByClass
    - BEGIN_USING_UNPICKLER
    - PyErr_Format
    - END_USING_UNPICKLER
    - load
    - Py_TYPE
    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:7317,1
    - Dst: _Pickle_GetStateByClass
      Src: /src/cpython/Modules/_pickle.c:7328,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_pickle.c:7332,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:7335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7336,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_pickle.c:7338,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:7338,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7339,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7341,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:7344,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_pickle.c:7345,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7346,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7347,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7348,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7351,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7352,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7356,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_pickle.c:7361,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7363,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7364,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7366,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7371,1
    - Dst: PyImport_Import
      Src: /src/cpython/Modules/_pickle.c:7381,1
    - Dst: get_dotted_path
      Src: /src/cpython/Modules/_pickle.c:7386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7388,1
    - Dst: getattribute
      Src: /src/cpython/Modules/_pickle.c:7391,1
    - Dst: assert
      Src: /src/cpython/Modules/_pickle.c:7392,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7392,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:7393,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_pickle.c:7394,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7395,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_pickle.c:7398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7400,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_pickle.c:7403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7405,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: 7391
        line_start: 7391
        source_file: /src/cpython/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 7407
      start: 7308
    functionDepth: 2
    functionLinenumber: 7308
    functionLinenumberEnd: 7407
    functionName: _pickle_Unpickler_find_class_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyImport_Import
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyDict_GetItemWithError
    - Py_TYPE
    - PySys_Audit
    - PyUnicode_Check
    - getattribute
    - _PyErr_ChainExceptions1
    - _Pickle_GetStateByClass
    - _PyTuple_FromPair
    - get_dotted_path
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyObject_GetAttr
    - PyErr_Format
    - PyList_GET_SIZE
    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:7420,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7420,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:7426,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:7428,1
    - Dst: strlen
      Src: /src/cpython/Modules/_pickle.c:7430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7432
      start: 7416
    functionDepth: 1
    functionLinenumber: 7416
    functionLinenumberEnd: 7432
    functionName: _pickle_Unpickler___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - strlen
    - _PyObject_SIZE
    - Py_TYPE
    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:7445,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7446,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7447,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7448,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7449,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7450,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7451,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7452,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7453,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_pickle.c:7455,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7459,1
    - Dst: _Unpickler_MemoCleanup
      Src: /src/cpython/Modules/_pickle.c:7460,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7461,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7463,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7465,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7471
      start: 7442
    functionDepth: 2
    functionLinenumber: 7442
    functionLinenumberEnd: 7471
    functionName: Unpickler_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - Py_CLEAR
    - PyMem_Free
    - UnpicklerObject_CAST
    - _Unpickler_MemoCleanup
    linkageType: ''
    returnType: int
    signature: int Unpickler_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7476,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:7477,1
    - Dst: Unpickler_clear
      Src: /src/cpython/Modules/_pickle.c:7478,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:7479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7481
      start: 7473
    functionDepth: 3
    functionLinenumber: 7473
    functionLinenumberEnd: 7481
    functionName: Unpickler_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - Unpickler_clear
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Unpickler_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7486,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7487,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7487,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7488,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7489,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7490,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7491,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7492,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7493,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7494,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7495,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7496,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7505
      start: 7483
    functionDepth: 1
    functionLinenumber: 7483
    functionLinenumberEnd: 7505
    functionName: Unpickler_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - UnpicklerObject_CAST
    - Py_VISIT
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int Unpickler_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_USING_UNPICKLER
      Src: /src/cpython/Modules/_pickle.c:7546,1
    - Dst: Unpickler_clear
      Src: /src/cpython/Modules/_pickle.c:7549,1
    - Dst: _Unpickler_SetInputStream
      Src: /src/cpython/Modules/_pickle.c:7551,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/cpython/Modules/_pickle.c:7554,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/cpython/Modules/_pickle.c:7557,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7562,1
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:7563,1
    - Dst: Pdata_New
      Src: /src/cpython/Modules/_pickle.c:7564,1
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:7569,1
    - Dst: END_USING_UNPICKLER
      Src: /src/cpython/Modules/_pickle.c:7575,1
    - Dst: END_USING_UNPICKLER
      Src: /src/cpython/Modules/_pickle.c:7579,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 6
    argNames:
    - self
    - file
    - fix_imports
    - encoding
    - errors
    - buffers
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - int
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7581
      start: 7540
    functionDepth: 3
    functionLinenumber: 7540
    functionLinenumberEnd: 7581
    functionName: _pickle_Unpickler___init___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_SetInputEncoding
    - _Unpickler_NewMemo
    - Pdata_New
    - BEGIN_USING_UNPICKLER
    - _Unpickler_SetBuffers
    - END_USING_UNPICKLER
    - Unpickler_clear
    - _Pickle_FindStateByType
    - 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:7607,1
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:7608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7612
      start: 7603
    functionDepth: 2
    functionLinenumber: 7603
    functionLinenumberEnd: 7612
    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:7625,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_pickle.c:7637,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_pickle.c:7640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7648,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7650
      start: 7620
    functionDepth: 1
    functionLinenumber: 7620
    functionLinenumberEnd: 7650
    functionName: _pickle_UnpicklerMemoProxy_copy_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyLong_FromSsize_t
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_copy_impl(UnpicklerMemoProxyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_UnpicklerMemoProxy_copy_impl
      Src: /src/cpython/Modules/_pickle.c:7663,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_pickle.c:7667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7669,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_pickle.c:7672,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_pickle.c:7674,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:7674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7675
      start: 7658
    functionDepth: 2
    functionLinenumber: 7658
    functionLinenumberEnd: 7675
    functionName: _pickle_UnpicklerMemoProxy___reduce___impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - _pickle_UnpicklerMemoProxy_copy_impl
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy___reduce___impl(UnpicklerMemoProxyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7687,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7688,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_pickle.c:7689,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7690,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_pickle.c:7691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7693
      start: 7684
    functionDepth: 1
    functionLinenumber: 7684
    functionLinenumberEnd: 7693
    functionName: UnpicklerMemoProxy_dealloc
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    - UnpicklerMemoProxyObject_CAST
    linkageType: ''
    returnType: void
    signature: void UnpicklerMemoProxy_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerMemoProxyObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7698,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7699,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7699,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:7700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7702
      start: 7695
    functionDepth: 1
    functionLinenumber: 7695
    functionLinenumberEnd: 7702
    functionName: UnpicklerMemoProxy_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - UnpicklerMemoProxyObject_CAST
    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:7707,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_pickle.c:7708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7710
      start: 7704
    functionDepth: 1
    functionLinenumber: 7704
    functionLinenumberEnd: 7710
    functionName: UnpicklerMemoProxy_clear
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - UnpicklerMemoProxyObject_CAST
    linkageType: ''
    returnType: int
    signature: int UnpicklerMemoProxy_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:7732,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7732,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_pickle.c:7734,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:7738,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_pickle.c:7739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - unpickler
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7741
      start: 7729
    functionDepth: 3
    functionLinenumber: 7729
    functionLinenumberEnd: 7741
    functionName: UnpicklerMemoProxy_New
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _Pickle_FindStateByType
    - Py_NewRef
    - Py_TYPE
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnpicklerMemoProxy_New(UnpicklerObject *unpickler)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7749,1
    - Dst: UnpicklerMemoProxy_New
      Src: /src/cpython/Modules/_pickle.c:7750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7751
      start: 7746
    functionDepth: 4
    functionLinenumber: 7746
    functionLinenumberEnd: 7751
    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:7757,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:7761,1
    - Dst: _Pickle_FindStateByType
      Src: /src/cpython/Modules/_pickle.c:7766,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7766,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_pickle.c:7767,1
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:7772,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_pickle.c:7777,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_pickle.c:7780,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_pickle.c:7784,1
    - Dst: _Unpickler_NewMemo
      Src: /src/cpython/Modules/_pickle.c:7785,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_pickle.c:7789,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_pickle.c:7791,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:7792,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_pickle.c:7796,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_pickle.c:7797,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_pickle.c:7800,1
    - Dst: _Unpickler_MemoPut
      Src: /src/cpython/Modules/_pickle.c:7804,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_pickle.c:7809,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_pickle.c:7811,1
    - Dst: _Unpickler_MemoCleanup
      Src: /src/cpython/Modules/_pickle.c:7815,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:7824,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_pickle.c:7826,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - op
    - obj
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7829
      start: 7753
    functionDepth: 3
    functionLinenumber: 7753
    functionLinenumberEnd: 7829
    functionName: Unpickler_set_memo
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - _Unpickler_NewMemo
    - Py_XNewRef
    - PyErr_SetString
    - _Unpickler_MemoCleanup
    - PyDict_Next
    - PyLong_Check
    - PyLong_AsSsize_t
    - PyDict_Check
    - PyErr_Occurred
    - PyErr_Format
    - UnpicklerObject_CAST
    - PyDict_GET_SIZE
    - Py_XDECREF
    - PyMem_Free
    - _Pickle_FindStateByType
    - _Unpickler_MemoPut
    - Py_TYPE
    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:7834,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7835,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_pickle.c:7836,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_pickle.c:7839,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/_pickle.c:7842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7843
      start: 7831
    functionDepth: 1
    functionLinenumber: 7831
    functionLinenumberEnd: 7843
    functionName: Unpickler_getattr
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - PyUnicode_Check
    - PyUnicode_EqualToUTF8
    - UnpicklerObject_CAST
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Unpickler_getattr(PyObject *self, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_pickle.c:7848,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_pickle.c:7849,1
    - Dst: UnpicklerObject_CAST
      Src: /src/cpython/Modules/_pickle.c:7851,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_pickle.c:7852,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_pickle.c:7853,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/cpython/Modules/_pickle.c:7857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7858
      start: 7845
    functionDepth: 1
    functionLinenumber: 7845
    functionLinenumberEnd: 7858
    functionName: Unpickler_setattr
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericSetAttr
    - Py_XSETREF
    - PyUnicode_Check
    - PyUnicode_EqualToUTF8
    - UnpicklerObject_CAST
    - Py_XINCREF
    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:7935,1
    - Dst: _Pickler_New
      Src: /src/cpython/Modules/_pickle.c:7936,1
    - Dst: _Pickler_SetProtocol
      Src: /src/cpython/Modules/_pickle.c:7941,1
    - Dst: _Pickler_SetOutputStream
      Src: /src/cpython/Modules/_pickle.c:7944,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/cpython/Modules/_pickle.c:7947,1
    - Dst: dump
      Src: /src/cpython/Modules/_pickle.c:7950,1
    - Dst: _Pickler_FlushToFile
      Src: /src/cpython/Modules/_pickle.c:7953,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:7956,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:7960,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: 7962
      start: 7929
    functionDepth: 9
    functionLinenumber: 7929
    functionLinenumberEnd: 7962
    functionName: _pickle_dump_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetState
    - dump
    - _Pickler_SetProtocol
    - _Pickler_New
    - _Pickler_SetOutputStream
    - _Pickler_FlushToFile
    - Py_DECREF
    - Py_XDECREF
    - _Pickler_SetBufferCallback
    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:8001,1
    - Dst: _Pickler_New
      Src: /src/cpython/Modules/_pickle.c:8002,1
    - Dst: _Pickler_SetProtocol
      Src: /src/cpython/Modules/_pickle.c:8007,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/cpython/Modules/_pickle.c:8010,1
    - Dst: dump
      Src: /src/cpython/Modules/_pickle.c:8013,1
    - Dst: _Pickler_GetString
      Src: /src/cpython/Modules/_pickle.c:8016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:8017,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:8021,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: 8023
      start: 7995
    functionDepth: 9
    functionLinenumber: 7995
    functionLinenumberEnd: 8023
    functionName: _pickle_dumps_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetState
    - dump
    - _Pickler_GetString
    - _Pickler_SetProtocol
    - _Pickler_New
    - Py_XDECREF
    - Py_DECREF
    - _Pickler_SetBufferCallback
    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:8068,1
    - Dst: _Unpickler_SetInputStream
      Src: /src/cpython/Modules/_pickle.c:8073,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/cpython/Modules/_pickle.c:8076,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/cpython/Modules/_pickle.c:8079,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:8084,1
    - Dst: load
      Src: /src/cpython/Modules/_pickle.c:8085,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:8086,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:8090,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: 8092
      start: 8061
    functionDepth: 3
    functionLinenumber: 8061
    functionLinenumberEnd: 8092
    functionName: _pickle_load_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetState
    - _Unpickler_SetInputEncoding
    - _Unpickler_New
    - _Unpickler_SetBuffers
    - Py_XDECREF
    - Py_DECREF
    - load
    - _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:8129,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/cpython/Modules/_pickle.c:8134,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/cpython/Modules/_pickle.c:8137,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/cpython/Modules/_pickle.c:8140,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:8145,1
    - Dst: load
      Src: /src/cpython/Modules/_pickle.c:8146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_pickle.c:8147,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_pickle.c:8151,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: 8153
      start: 8122
    functionDepth: 3
    functionLinenumber: 8122
    functionLinenumberEnd: 8153
    functionName: _pickle_loads_impl
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetState
    - _Unpickler_SetInputEncoding
    - _Unpickler_SetStringInput
    - _Unpickler_New
    - _Unpickler_SetBuffers
    - Py_XDECREF
    - Py_DECREF
    - load
    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:8166,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:8166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8168
      start: 8163
    functionDepth: 2
    functionLinenumber: 8163
    functionLinenumberEnd: 8168
    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:8173,1
    - Dst: _Pickle_GetState
      Src: /src/cpython/Modules/_pickle.c:8173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8174
      start: 8170
    functionDepth: 2
    functionLinenumber: 8170
    functionLinenumberEnd: 8174
    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:8179,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8180,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8181,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8182,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8183,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8184,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8185,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8186,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8187,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8188,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8189,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8190,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8191,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8192,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8193,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8194,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8195,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8196,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8197,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_pickle.c:8198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8200
      start: 8176
    functionDepth: 2
    functionLinenumber: 8176
    functionLinenumberEnd: 8200
    functionName: pickle_traverse
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetState
    - Py_VISIT
    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:8205,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8215,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8216,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8217,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8218,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_pickle.c:8219,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_pickle.c:8224,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_pickle.c:8227,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_pickle.c:8230,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_pickle.c:8235,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_pickle.c:8239,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_pickle.c:8243,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_pickle.c:8247,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_pickle.c:8250,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_pickle.c:8253,1
    - Dst: _Pickle_InitState
      Src: /src/cpython/Modules/_pickle.c:8257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8261
      start: 8202
    functionDepth: 3
    functionLinenumber: 8202
    functionLinenumberEnd: 8261
    functionName: _pickle_exec
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - _Pickle_GetState
    - CREATE_TYPE
    - _Pickle_InitState
    - PyModule_AddObjectRef
    - PyModule_AddType
    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: 8214
      start: 8207
    functionDepth: 0
    functionLinenumber: 8207
    functionLinenumberEnd: 8214
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_pickle.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(mod, type, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_pickle.c:8286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8287
      start: 8283
    functionDepth: 1
    functionLinenumber: 8283
    functionLinenumberEnd: 8287
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    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: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    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: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    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: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    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: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    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:145,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:146,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:157,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:159,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:164,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:166,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:183,1
    - Dst: PyMem_RESIZE
      Src: /src/cpython/Modules/arraymodule.c:188,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:192,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - self
    - newsize
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 199
    functionName: array_resize
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RESIZE
    - PyErr_NoMemory
    - Py_SET_SIZE
    - PyErr_SetString
    - Py_SIZE
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int array_resize(arrayobject *self, Py_ssize_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - OP
    - ','
    - IDX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: CHECK_ARRAY_BOUNDS
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ARRAY_BOUNDS(OP, IDX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - OP
    - ','
    - IDX
    - ','
    - VAL
    - ','
    - CLEANUP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: CHECK_ARRAY_BOUNDS_WITH_CLEANUP
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ARRAY_BOUNDS_WITH_CLEANUP(OP, IDX, VAL, CLEANUP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/arraymodule.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 245
    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:254,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:257,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:260,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 272
    functionName: b_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    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:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 279
    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:286,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: BB_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    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:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 300
    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:305,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:306,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/arraymodule.c:312,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:314,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:315,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:318,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:321,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/arraymodule.c:330,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:331,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: 330
        line_start: 330
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 337
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 337
    functionName: u_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyUnicode_AsWideChar
    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:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 343
    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:348,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:349,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:355,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:356,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:359,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/arraymodule.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 367
    functionName: w_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    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:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 373
    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:381,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 389
    functionName: h_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    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:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 395
    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:403,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:411,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 421
    functionName: HH_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    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:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    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:434,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 442
    functionName: i_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    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:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 449
    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:457,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/arraymodule.c:458,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/arraymodule.c:459,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:460,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/arraymodule.c:467,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:470,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:478,1
    - Dst: CHECK_ARRAY_BOUNDS_WITH_CLEANUP
      Src: /src/cpython/Modules/arraymodule.c:483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:489,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 492
    functionName: II_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - PyLong_Check
    - CHECK_ARRAY_BOUNDS_WITH_CLEANUP
    - PyErr_Occurred
    - PyLong_AsUnsignedLong
    - _PyNumber_Index
    - Py_DECREF
    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:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    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:504,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 512
    functionName: l_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    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:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 518
    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:526,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/arraymodule.c:527,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/arraymodule.c:528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:529,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/arraymodule.c:536,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:539,1
    - Dst: CHECK_ARRAY_BOUNDS_WITH_CLEANUP
      Src: /src/cpython/Modules/arraymodule.c:544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 553
    functionName: LL_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyLong_Check
    - CHECK_ARRAY_BOUNDS_WITH_CLEANUP
    - PyErr_Occurred
    - PyLong_AsUnsignedLong
    - _PyNumber_Index
    - Py_DECREF
    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:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 559
    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:565,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 573
    functionName: q_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    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:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 580
    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:588,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/arraymodule.c:589,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/arraymodule.c:590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:591,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/arraymodule.c:598,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:601,1
    - Dst: CHECK_ARRAY_BOUNDS_WITH_CLEANUP
      Src: /src/cpython/Modules/arraymodule.c:606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:612,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 615
    functionName: QQ_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyLong_Check
    - PyLong_AsUnsignedLongLong
    - CHECK_ARRAY_BOUNDS_WITH_CLEANUP
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int QQ_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Modules/arraymodule.c:620,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/arraymodule.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: e_getitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack2
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      e_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/arraymodule.c:630,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:634,1
    - Dst: PyFloat_Pack2
      Src: /src/cpython/Modules/arraymodule.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 641
    functionName: e_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack2
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    linkageType: ''
    returnType: int
    signature: int e_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/arraymodule.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 647
    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:653,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 661
    functionName: f_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    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:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 667
    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:673,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 681
    functionName: d_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    linkageType: ''
    returnType: int
    signature: int d_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:688,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/arraymodule.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 690
    functionName: cf_getitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cf_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/arraymodule.c:698,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:702,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 710
    functionName: cf_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    linkageType: ''
    returnType: int
    signature: int cf_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:717,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/arraymodule.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: cd_getitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cd_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/arraymodule.c:727,1
    - Dst: CHECK_ARRAY_BOUNDS
      Src: /src/cpython/Modules/arraymodule.c:731,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 739
    functionName: cd_setitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyArg_Parse
    - CHECK_ARRAY_BOUNDS
    linkageType: ''
    returnType: int
    signature: int cd_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: 751
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 751
    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:806,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:812,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/arraymodule.c:815,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:822,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/arraymodule.c:827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:829,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:830,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: 835
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 835
    functionName: newarrayobject
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    - PyErr_NoMemory
    - Py_SET_SIZE
    - PyErr_BadInternalCall
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    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:841,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:841,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:842,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:842,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:846,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:846,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: 841
        line_start: 841
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (i>=0 && i<Py_SIZE(ap))
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 848
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 848
    functionName: getarrayitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - Py_SIZE
    - find_array_state_by_type
    - assert
    - Py_TYPE
    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:854,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/arraymodule.c:856,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:862,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:874,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - where
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 878
    functionName: ins1
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - memmove
    - array_resize
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int ins1(arrayobject *self, Py_ssize_t where, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:884,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/arraymodule.c:885,1
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:887,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/arraymodule.c:888,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:890,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/arraymodule.c:892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 894
    functionName: array_dealloc
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyMem_Free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    - arrayobject_CAST
    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:899,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:899,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:906,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:906,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:912,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:912,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:918,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/arraymodule.c:924,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:924,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:924,1
    - Dst: arrayobject*::ob_descr::compareitems
      Src: /src/cpython/Modules/arraymodule.c:925,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:941,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:947,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:947,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:948,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:952,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:954,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:961,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:969,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:970,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:977,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:978,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:987,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:992,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:995,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Modules/arraymodule.c:999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1002,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (vs == ws)
      pos:
        line_end: 977
        line_start: 977
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (vs == ws)
      pos:
        line_end: 976
        line_start: 976
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1004
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 1004
    functionName: array_richcompare
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - PyObject_RichCompareBool
    - Py_SIZE
    - getarrayitem
    - find_array_state_by_type
    - Py_MIN
    - PyObject_RichCompare
    - arrayobject*::ob_descr::compareitems
    - assert
    - Py_DECREF
    - Py_NewRef
    - Py_TYPE
    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:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1010
    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:1015,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1016,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1020
    functionName: array_item
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - getarrayitem
    - Py_SIZE
    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:1025,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1025,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1030,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1031,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1036,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1037,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:1038,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1042,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: 1046
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1046
    functionName: array_slice
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - newarrayobject
    - find_array_state_by_type
    - 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:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1062
    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:1074,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1075
    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:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1086
    functionDepth: 4
    functionLinenumber: 1086
    functionLinenumberEnd: 1091
    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:1096,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:1097,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1097,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:1100,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:1101,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1103,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Modules/arraymodule.c:1108,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1111,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1111,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1112,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1114,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1114,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:1115,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1119,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1120,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1120,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1122,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1123,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1123,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - op
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1128
    functionName: array_concat
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - PyErr_NoMemory
    - Py_SIZE
    - find_array_state_by_type
    - newarrayobject
    - memcpy
    - PyErr_Format
    - PyErr_BadArgument
    - Py_TYPE
    - arrayobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_concat(PyObject *op, PyObject *bb)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:1133,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:1134,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1134,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1138,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1140,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:1143,1
    - Dst: _PyBytes_RepeatBuffer
      Src: /src/cpython/Modules/arraymodule.c:1151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - op
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1154
    functionName: array_repeat
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Py_SIZE
    - find_array_state_by_type
    - newarrayobject
    - _PyBytes_RepeatBuffer
    - Py_TYPE
    - arrayobject_CAST
    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:1163,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1164,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1169,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1170,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1177,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:1182,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1184,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1185,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1185,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: 1189
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1189
    functionName: array_del_slice
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memmove
    - array_resize
    - PyErr_SetString
    - Py_SIZE
    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:1194,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1195,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1196,1
    - Dst: array_del_slice
      Src: /src/cpython/Modules/arraymodule.c:1201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - op
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1191
    functionDepth: 3
    functionLinenumber: 1191
    functionLinenumberEnd: 1203
    functionName: array_ass_item
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - array_del_slice
    - Py_SIZE
    - arrayobject_CAST
    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:1209,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1209,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1210,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:1210,1
    - Dst: array_ass_item
      Src: /src/cpython/Modules/arraymodule.c:1212,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: 1209
        line_start: 1209
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1213
      start: 1205
    functionDepth: 4
    functionLinenumber: 1205
    functionLinenumberEnd: 1213
    functionName: setarrayitem
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - array_ass_item
    - find_array_state_by_type
    - assert
    - Py_TYPE
    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:1220,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/arraymodule.c:1224,1
    - Dst: ins1
      Src: /src/cpython/Modules/arraymodule.c:1225,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:1233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - bb
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1236
    functionName: array_iter_extend
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - ins1
    - Py_SIZE
    - PyObject_GetIter
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    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:1243,1
    - Dst: array_iter_extend
      Src: /src/cpython/Modules/arraymodule.c:1244,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1247,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1251,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1251,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1252,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1252,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1253,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1256,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1258,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1259,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1260,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - state
    - self
    - bb
    argTypes:
    - array_state*
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1269
    functionName: array_do_extend
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - PyErr_NoMemory
    - PyErr_SetString
    - Py_SIZE
    - memcpy
    - array_iter_extend
    - array_resize
    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:1274,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:1275,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1275,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:1277,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:1278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:1280,1
    - Dst: array_do_extend
      Src: /src/cpython/Modules/arraymodule.c:1283,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1271
    functionDepth: 3
    functionLinenumber: 1271
    functionLinenumberEnd: 1286
    functionName: array_inplace_concat
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - find_array_state_by_type
    - PyErr_Format
    - array_do_extend
    - Py_NewRef
    - Py_TYPE
    - arrayobject_CAST
    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:1291,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1292,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1299,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1303,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1305,1
    - Dst: _PyBytes_RepeatBuffer
      Src: /src/cpython/Modules/arraymodule.c:1308,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:1310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - op
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1311
    functionName: array_inplace_repeat
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Py_SIZE
    - array_resize
    - _PyBytes_RepeatBuffer
    - Py_NewRef
    - arrayobject_CAST
    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:1317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - where
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1320
    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:1338,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1342,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:1345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1346,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/arraymodule.c:1352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1353
    functionName: array_array_count_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - getarrayitem
    - Py_SIZE
    - PyLong_FromSsize_t
    - Py_DECREF
    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:1375,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1381,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1385,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1389,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:1392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1393,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/arraymodule.c:1395,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1400,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: 1402
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1402
    functionName: array_array_index_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_SetString
    - getarrayitem
    - Py_SIZE
    - PyLong_FromSsize_t
    - Py_DECREF
    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:1410,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1411,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:1414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1404
    functionDepth: 2
    functionLinenumber: 1404
    functionLinenumberEnd: 1418
    functionName: array_contains
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - getarrayitem
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int array_contains(PyObject *self, PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1435,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1439,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/arraymodule.c:1442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1443,1
    - Dst: array_del_slice
      Src: /src/cpython/Modules/arraymodule.c:1445,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1429
    functionDepth: 3
    functionLinenumber: 1429
    functionLinenumberEnd: 1454
    functionName: array_array_remove_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_SetString
    - getarrayitem
    - Py_SIZE
    - Py_DECREF
    - array_del_slice
    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:1473,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1475,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1479,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1480,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1481,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1484,1
    - Dst: array_del_slice
      Src: /src/cpython/Modules/arraymodule.c:1487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1467
    functionDepth: 3
    functionLinenumber: 1467
    functionLinenumberEnd: 1492
    functionName: array_array_pop_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - getarrayitem
    - Py_SIZE
    - Py_DECREF
    - 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:1508,1
    - Dst: array_do_extend
      Src: /src/cpython/Modules/arraymodule.c:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - cls
    - bb
    argTypes:
    - arrayobject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1513
    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:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1525
    functionDepth: 1
    functionLinenumber: 1525
    functionLinenumberEnd: 1530
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/arraymodule.c:1546,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/arraymodule.c:1550,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1552,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/arraymodule.c:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1542
    functionDepth: 1
    functionLinenumber: 1542
    functionLinenumberEnd: 1557
    functionName: array_array_buffer_info_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyLong_FromSsize_t
    - PyLong_FromVoidPtr
    - Py_DECREF
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_buffer_info_impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ins
      Src: /src/cpython/Modules/arraymodule.c:1572,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1573
    functionName: array_array_append_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - ins
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_append_impl(arrayobject *self, PyObject *v)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1596,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1603,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:1613,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1614,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1630,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1647,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:1647,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1676,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 75
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts:
    - condition: (strcmp(self->ob_descr->typecode, "Zd") == 0)
      pos:
        line_end: 1646
        line_start: 1646
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1681
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1681
    functionName: array_array_byteswap_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - strcmp
    - Py_SIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_byteswap_impl(arrayobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1697,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1699,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1701,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1707,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1708,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts:
    - condition: ((size_t)itemsize <= sizeof(tmp))
      pos:
        line_end: 1696
        line_start: 1696
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1714
      start: 1689
    functionDepth: 0
    functionLinenumber: 1689
    functionLinenumberEnd: 1714
    functionName: array_array_reverse_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_SIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_reverse_impl(arrayobject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1739,1
    - Dst: get_array_state_by_class
      Src: /src/cpython/Modules/arraymodule.c:1744,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1745,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/arraymodule.c:1749,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/arraymodule.c:1753,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1756,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1760,1
    - Dst: array_array_frombytes
      Src: /src/cpython/Modules/arraymodule.c:1762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1763,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1770,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - self
    - cls
    - f
    - n
    argTypes:
    - arrayobject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1744
        line_start: 1744
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1775
      start: 1728
    functionDepth: 1
    functionLinenumber: 1728
    functionLinenumberEnd: 1775
    functionName: array_array_fromfile_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - get_array_state_by_class
    - PyErr_NoMemory
    - PyBytes_Check
    - PyErr_SetString
    - _PyObject_CallMethod
    - assert
    - Py_DECREF
    - array_array_frombytes
    - PyBytes_GET_SIZE
    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:1791,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1798,1
    - Dst: get_array_state_by_class
      Src: /src/cpython/Modules/arraymodule.c:1802,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1803,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/arraymodule.c:1812,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/arraymodule.c:1815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - cls
    - f
    argTypes:
    - arrayobject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1802
        line_start: 1802
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1824
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1824
    functionName: array_array_tofile_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - get_array_state_by_class
    - PyObject_CallMethodOneArg
    - PyBytes_FromStringAndSize
    - Py_SIZE
    - assert
    - Py_DECREF
    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:1841,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1842,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/arraymodule.c:1845,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1848,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1849,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:1852,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1854,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1855,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1858,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1859,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1861,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1867
    functionName: array_array_fromlist_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyList_GET_ITEM
    - Py_SIZE
    - PyList_Check
    - PyList_Size
    - array_resize
    - PyList_GET_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:1879,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1879,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1884,1
    - Dst: getarrayitem
      Src: /src/cpython/Modules/arraymodule.c:1885,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:1888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:1893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1875
    functionDepth: 2
    functionLinenumber: 1875
    functionLinenumberEnd: 1895
    functionName: array_array_tolist_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - getarrayitem
    - Py_SIZE
    - PyList_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tolist_impl(arrayobject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1903,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1904,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1909,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1910,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1916,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1919,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1920,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:1922,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1923,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:1926,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/arraymodule.c:1929,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - arrayobject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1897
    functionDepth: 2
    functionLinenumber: 1897
    functionLinenumberEnd: 1931
    functionName: frombytes
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    - Py_SIZE
    - PyBuffer_Release
    - memcpy
    - array_resize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frombytes(arrayobject *self, Py_buffer *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frombytes
      Src: /src/cpython/Modules/arraymodule.c:1947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - arrayobject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1943
    functionDepth: 3
    functionLinenumber: 1943
    functionLinenumberEnd: 1948
    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:1961,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/arraymodule.c:1962,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1963,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:1965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1957
    functionDepth: 1
    functionLinenumber: 1957
    functionLinenumberEnd: 1967
    functionName: array_array_tobytes_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tobytes_impl(arrayobject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:1987,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:1987,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:1988,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:1994,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/arraymodule.c:1995,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:1996,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:1999,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:2000,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/arraymodule.c:2005,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/arraymodule.c:2010,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2011,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/arraymodule.c:2015,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:2017,1
    - Dst: PyUnicode_AsUCS4
      Src: /src/cpython/Modules/arraymodule.c:2022,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:2024,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - self
    - ustr
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts:
    - condition: (ustr_length > 0)
      pos:
        line_end: 1995
        line_start: 1995
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (u != NULL)
      pos:
        line_end: 2023
        line_start: 2023
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 2029
      start: 1982
    functionDepth: 2
    functionLinenumber: 1982
    functionLinenumberEnd: 2029
    functionName: array_array_fromunicode_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_NoMemory
    - PyErr_SetString
    - PyUnicode_GetLength
    - PyUnicode_AsUCS4
    - Py_SIZE
    - PyUnicode_AsWideChar
    - assert
    - array_resize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromunicode_impl(arrayobject *self, PyObject *ustr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:2047,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:2047,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2048,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:2052,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/arraymodule.c:2053,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2053,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/cpython/Modules/arraymodule.c:2057,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2060
    functionName: array_array_tounicode_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - strcmp
    - PyErr_SetString
    - Py_SIZE
    - PyUnicode_DecodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tounicode_impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2072,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2072,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/arraymodule.c:2074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2075
    functionName: array_array___sizeof___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _PyObject_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___sizeof___impl(arrayobject *self)'
  - BBCount: 27
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 77
    argCount: 1
    argNames:
    - typecode
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2217
    functionName: typecode_to_mformat_code
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum machine_format_code
    signature: enum machine_format_code typecode_to_mformat_code(const char *typecode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:2240,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:2241,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/arraymodule.c:2243,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/arraymodule.c:2247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:2247,1
    - Dst: array_new
      Src: /src/cpython/Modules/arraymodule.c:2252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - arraytype
    - typecode
    - items
    argTypes:
    - PyTypeObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (arraytype != NULL)
      pos:
        line_end: 2239
        line_start: 2239
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (items != NULL)
      pos:
        line_end: 2240
        line_start: 2240
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 2258
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2258
    functionName: make_array
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - array_new
    - assert
    - _PyTuple_FromPairSteal
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_array(PyTypeObject *arraytype, const char *typecode, PyObject *items)'
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state
      Src: /src/cpython/Modules/arraymodule.c:2283,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/arraymodule.c:2288,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2289,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2291,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/arraymodule.c:2294,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2295,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:2301,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2306,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2312,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/arraymodule.c:2316,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2317,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2319,1
    - Dst: typecode_to_mformat_code
      Src: /src/cpython/Modules/arraymodule.c:2324,1
    - Dst: make_array
      Src: /src/cpython/Modules/arraymodule.c:2326,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2334,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2335,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2344,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2345,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2347,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/arraymodule.c:2351,1
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Modules/arraymodule.c:2352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2354,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2357,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2365,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2366,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2368,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/arraymodule.c:2372,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/arraymodule.c:2373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2375,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2378,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2386,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2387,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2389,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/arraymodule.c:2393,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/arraymodule.c:2394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2396,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2399,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2407,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2408,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2410,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/arraymodule.c:2415,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/arraymodule.c:2416,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/arraymodule.c:2417,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2419,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2422,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2430,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2431,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2433,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/arraymodule.c:2438,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/arraymodule.c:2439,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/arraymodule.c:2440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2442,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2445,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/cpython/Modules/arraymodule.c:2452,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2453,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2453,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/cpython/Modules/arraymodule.c:2462,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2463,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2463,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2487,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/arraymodule.c:2489,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:2511,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/arraymodule.c:2517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2523,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/arraymodule.c:2526,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Modules/arraymodule.c:2535,1
    - Dst: make_array
      Src: /src/cpython/Modules/arraymodule.c:2539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2540,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 160
    argCount: 5
    argNames:
    - module
    - arraytype
    - typecode
    - mformat_code
    - items
    argTypes:
    - PyObject*
    - PyTypeObject*
    - char*
    - enum machine_format_code
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2276
    functionDepth: 2
    functionLinenumber: 2276
    functionLinenumberEnd: 2542
    functionName: array__array_reconstructor_impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyUnicode_DecodeUTF16
    - PyType_Check
    - PyBytes_Check
    - PyFloat_FromDouble
    - PyComplex_FromDoubles
    - PyFloat_Unpack4
    - Py_TYPE
    - PyFloat_Unpack8
    - PyType_IsSubtype
    - typecode_to_mformat_code
    - PyList_New
    - PyBytes_AS_STRING
    - make_array
    - PyErr_SetString
    - Py_SIZE
    - Py_DECREF
    - PyUnicode_DecodeUTF32
    - PyFloat_Unpack2
    - PyList_SET_ITEM
    - get_array_state
    - _PyLong_FromByteArray
    - PyErr_Format
    - PyErr_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\narray__array_reconstructor_impl(PyObject *module, PyTypeObject
      *arraytype,\n                                const char *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:2566,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:2567,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/arraymodule.c:2570,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/arraymodule.c:2577,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2578,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/arraymodule.c:2582,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:2583,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/arraymodule.c:2586,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:2590,1
    - Dst: typecode_to_mformat_code
      Src: /src/cpython/Modules/arraymodule.c:2593,1
    - Dst: array_array_tolist_impl
      Src: /src/cpython/Modules/arraymodule.c:2607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2609,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/arraymodule.c:2612,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2615,1
    - Dst: array_array_tobytes_impl
      Src: /src/cpython/Modules/arraymodule.c:2619,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2621,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:2625,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/arraymodule.c:2626,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2629,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - self
    - cls
    - value
    argTypes:
    - arrayobject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 2566
        line_start: 2566
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (state->array_reconstructor != NULL)
      pos:
        line_end: 2624
        line_start: 2624
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 2631
      start: 2554
    functionDepth: 3
    functionLinenumber: 2554
    functionLinenumberEnd: 2631
    functionName: array_array___reduce_ex___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_array_tolist_impl
    - get_array_state_by_class
    - PyErr_SetString
    - Py_NewRef
    - PyObject_GetOptionalAttr
    - Py_BuildValue
    - PyLong_Check
    - PyLong_AsLong
    - typecode_to_mformat_code
    - array_array_tobytes_impl
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - Py_TYPE
    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:2636,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/arraymodule.c:2638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2633
    functionDepth: 1
    functionLinenumber: 2633
    functionLinenumberEnd: 2639
    functionName: array_get_typecode
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - 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:2644,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/arraymodule.c:2645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2641
    functionDepth: 1
    functionLinenumber: 2641
    functionLinenumberEnd: 2646
    functionName: array_get_itemsize
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - arrayobject_CAST
    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:2690,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2692,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/arraymodule.c:2695,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/arraymodule.c:2696,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2696,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:2698,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:2698,1
    - Dst: array_array_tounicode_impl
      Src: /src/cpython/Modules/arraymodule.c:2699,1
    - Dst: array_array_tolist_impl
      Src: /src/cpython/Modules/arraymodule.c:2701,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/arraymodule.c:2706,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/arraymodule.c:2707,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2707,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2684
    functionDepth: 3
    functionLinenumber: 2684
    functionLinenumberEnd: 2710
    functionName: array_repr
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_array_tolist_impl
    - strcmp
    - array_array_tounicode_impl
    - PyUnicode_FromFormat
    - Py_SIZE
    - _PyType_Name
    - Py_DECREF
    - Py_TYPE
    - arrayobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_repr(PyObject *op)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2715,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:2716,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2716,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/arraymodule.c:2718,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/arraymodule.c:2719,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:2720,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2724,1
    - Dst: array_item
      Src: /src/cpython/Modules/arraymodule.c:2725,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/arraymodule.c:2727,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/arraymodule.c:2734,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/arraymodule.c:2737,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2737,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:2741,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:2744,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2748,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:2754,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2761,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2770,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2712
    functionDepth: 3
    functionLinenumber: 2712
    functionLinenumberEnd: 2774
    functionName: array_subscr
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PySlice_AdjustIndices
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - Py_SIZE
    - find_array_state_by_type
    - newarrayobject
    - array_item
    - PySlice_Unpack
    - memcpy
    - PyErr_Occurred
    - PyIndex_Check
    - Py_TYPE
    - arrayobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_subscr(PyObject *op, PyObject *item)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2780,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:2781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2781,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/arraymodule.c:2785,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/arraymodule.c:2786,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:2788,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2791,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2792,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2793,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/arraymodule.c:2807,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/arraymodule.c:2808,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/arraymodule.c:2811,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2811,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2815,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:2823,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2825,1
    - Dst: array_slice
      Src: /src/cpython/Modules/arraymodule.c:2829,1
    - Dst: array_ass_subscr
      Src: /src/cpython/Modules/arraymodule.c:2832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:2833,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Modules/arraymodule.c:2837,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2842,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:2844,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/arraymodule.c:2857,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:2864,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2866,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:2867,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2867,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:2872,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2872,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:2875,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2877,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2880,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2898,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2899,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:2900,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2905,1
    - Dst: memmove
      Src: /src/cpython/Modules/arraymodule.c:2906,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2908,1
    - Dst: array_resize
      Src: /src/cpython/Modules/arraymodule.c:2910,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2910,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:2919,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:2927,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 100
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2776
    functionDepth: 3
    functionLinenumber: 2776
    functionLinenumberEnd: 2933
    functionName: array_ass_subscr
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - array_Check
    - PySlice_Check
    - memcpy
    - PyErr_Occurred
    - Py_TYPE
    - arrayobject_CAST
    - find_array_state_by_type
    - PyIndex_Check
    - PySlice_AdjustIndices
    - memmove
    - PyErr_SetString
    - Py_SIZE
    - array_ass_subscr
    - Py_DECREF
    - array_resize
    - array_slice
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - PyErr_Format
    - PyErr_BadArgument
    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:2942,1
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2947,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:2949,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:2952,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:2968,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2935
    functionDepth: 1
    functionLinenumber: 2935
    functionLinenumberEnd: 2975
    functionName: array_buffer_getbuf
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_SetString
    - Py_SIZE
    - Py_NewRef
    - arrayobject_CAST
    linkageType: ''
    returnType: void
    signature: void array_buffer_getbuf(PyObject *op, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:2980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2977
    functionDepth: 1
    functionLinenumber: 2977
    functionLinenumberEnd: 2982
    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: 32
    BranchProfiles: []
    Callsites:
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:2987,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/arraymodule.c:2994,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/arraymodule.c:2997,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/arraymodule.c:3000,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:3005,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/arraymodule.c:3006,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:3014,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:3014,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/arraymodule.c:3017,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:3018,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3022,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:3024,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:3024,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:3025,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/arraymodule.c:3032,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/arraymodule.c:3033,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/arraymodule.c:3034,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/arraymodule.c:3035,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/arraymodule.c:3036,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3037,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:3038,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/arraymodule.c:3039,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:3050,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/arraymodule.c:3056,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3057,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/arraymodule.c:3058,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3058,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3059,1
    - Dst: newarrayobject
      Src: /src/cpython/Modules/arraymodule.c:3063,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3065,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3069,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/arraymodule.c:3073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3075,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3076,1
    - Dst: setarrayitem
      Src: /src/cpython/Modules/arraymodule.c:3079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3081,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3085,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/arraymodule.c:3088,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/arraymodule.c:3089,1
    - Dst: array_array_frombytes
      Src: /src/cpython/Modules/arraymodule.c:3091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3093,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3097,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/arraymodule.c:3099,1
    - Dst: strcmp
      Src: /src/cpython/Modules/arraymodule.c:3100,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/arraymodule.c:3102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3104,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3105,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:3112,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3114,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:3118,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/arraymodule.c:3122,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/cpython/Modules/arraymodule.c:3123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3125,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3126,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/arraymodule.c:3132,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3134,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3138,1
    - Dst: memcpy
      Src: /src/cpython/Modules/arraymodule.c:3141,1
    - Dst: array_iter_extend
      Src: /src/cpython/Modules/arraymodule.c:3144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3149,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3154,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/arraymodule.c:3156,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/arraymodule.c:3160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3161,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/arraymodule.c:3165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3166,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 122
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3168
      start: 2984
    functionDepth: 5
    functionLinenumber: 2984
    functionLinenumberEnd: 3168
    functionName: array_new
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - array_Check
    - PyByteArray_Check
    - strcmp
    - PyBytes_Check
    - PyObject_GetIter
    - memcpy
    - PyTuple_Check
    - PyUnicode_FromString
    - PySys_Audit
    - PyUnicode_Check
    - find_array_state_by_type
    - Py_XDECREF
    - PyMem_Free
    - PyArg_ParseTuple
    - setarrayitem
    - PyErr_WarnEx
    - Py_SET_SIZE
    - Py_SIZE
    - PySequence_GetItem
    - newarrayobject
    - PyList_Check
    - array_iter_extend
    - Py_DECREF
    - array_array_frombytes
    - PyUnicode_AsWideCharString
    - PyUnicode_AsUCS4Copy
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - _PyArg_NoKeywords
    - PyObject_CallMethod
    - PyList_GET_SIZE
    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:3301,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:3302,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3302,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3305,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Modules/arraymodule.c:3306,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/arraymodule.c:3310,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:3314,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/arraymodule.c:3317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3298
    functionDepth: 1
    functionLinenumber: 3298
    functionLinenumberEnd: 3319
    functionName: array_iter
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_Check
    - PyObject_GC_New
    - PyObject_GC_Track
    - PyErr_BadInternalCall
    - find_array_state_by_type
    - Py_NewRef
    - Py_TYPE
    - arrayobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_iter(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arrayiterobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:3324,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:3325,1
    - Dst: find_array_state_by_type
      Src: /src/cpython/Modules/arraymodule.c:3327,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3327,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:3328,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/arraymodule.c:3328,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:3335,1
    - Dst: array_Check
      Src: /src/cpython/Modules/arraymodule.c:3335,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 3324
        line_start: 3324
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (PyObject_TypeCheck(it, state->ArrayIterType))
      pos:
        line_end: 3327
        line_start: 3327
        source_file: /src/cpython/Modules/arraymodule.c
    - condition: (array_Check(ao, state))
      pos:
        line_end: 3334
        line_start: 3334
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 3343
      start: 3321
    functionDepth: 1
    functionLinenumber: 3321
    functionLinenumberEnd: 3343
    functionName: arrayiter_next
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - array_Check
    - Py_SIZE
    - find_array_state_by_type
    - assert
    - Py_DECREF
    - arrayiterobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      arrayiter_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayiterobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:3348,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3349,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/arraymodule.c:3350,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/arraymodule.c:3351,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/arraymodule.c:3352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3345
    functionDepth: 1
    functionLinenumber: 3345
    functionLinenumberEnd: 3354
    functionName: arrayiter_dealloc
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - arrayiterobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void arrayiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayiterobject_CAST
      Src: /src/cpython/Modules/arraymodule.c:3359,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3360,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3360,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3363
      start: 3356
    functionDepth: 1
    functionLinenumber: 3356
    functionLinenumberEnd: 3363
    functionName: arrayiter_traverse
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - arrayiterobject_CAST
    - Py_TYPE
    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:3379,1
    - Dst: assert
      Src: /src/cpython/Modules/arraymodule.c:3380,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Modules/arraymodule.c:3381,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/arraymodule.c:3383,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/arraymodule.c:3385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - arrayiterobject*
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3379
        line_start: 3379
        source_file: /src/cpython/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 3386
      start: 3374
    functionDepth: 1
    functionLinenumber: 3374
    functionLinenumberEnd: 3386
    functionName: array_arrayiterator___reduce___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - get_array_state_by_class
    - _PyEval_GetBuiltin
    - assert
    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:3401,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/arraymodule.c:3402,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3409,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/arraymodule.c:3410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - arrayiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3397
    functionDepth: 1
    functionLinenumber: 3397
    functionLinenumberEnd: 3415
    functionName: array_arrayiterator___setstate___impl
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyLong_AsSsize_t
    - PyErr_Occurred
    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:3447,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3448,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3449,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3450,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/arraymodule.c:3451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3453
      start: 3444
    functionDepth: 2
    functionLinenumber: 3444
    functionLinenumberEnd: 3453
    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:3458,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3459,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3460,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3461,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3462,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3463,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3464,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3465,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/arraymodule.c:3466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3455
    functionDepth: 2
    functionLinenumber: 3455
    functionLinenumberEnd: 3468
    functionName: array_clear
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - get_array_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int array_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_clear
      Src: /src/cpython/Modules/arraymodule.c:3473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3470
    functionDepth: 3
    functionLinenumber: 3470
    functionLinenumberEnd: 3474
    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: 3489
      start: 3482
    functionDepth: 0
    functionLinenumber: 3482
    functionLinenumberEnd: 3489
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 2
    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: 3498
      start: 3490
    functionDepth: 0
    functionLinenumber: 3490
    functionLinenumberEnd: 3498
    functionName: ADD_INTERNED
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INTERNED(state, string)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_array_state
      Src: /src/cpython/Modules/arraymodule.c:3502,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/arraymodule.c:3508,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/arraymodule.c:3509,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/arraymodule.c:3510,1
    - Dst: ADD_INTERNED
      Src: /src/cpython/Modules/arraymodule.c:3511,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3513,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3514,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Modules/arraymodule.c:3515,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/arraymodule.c:3517,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/arraymodule.c:3522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3525,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/arraymodule.c:3528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3535,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/arraymodule.c:3537,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/arraymodule.c:3541,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/arraymodule.c:3546,1
    - Dst: strlen
      Src: /src/cpython/Modules/arraymodule.c:3546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3548,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/arraymodule.c:3551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3554,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/arraymodule.c:3558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/arraymodule.c:3559,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/arraymodule.c:3563,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/arraymodule.c:3564,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3569
      start: 3499
    functionDepth: 2
    functionLinenumber: 3499
    functionLinenumberEnd: 3569
    functionName: array_modexec
    functionSourceFile: /src/cpython/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SET_TYPE
    - CREATE_TYPE
    - get_array_state
    - Py_NewRef
    - PyObject_CallMethod
    - PyImport_ImportModuleAttrString
    - PyList_AsTuple
    - PyList_New
    - strlen
    - PyList_Append
    - Py_DECREF
    - PyUnicode_DecodeASCII
    - PyModule_AddObjectRef
    - PyModule_Add
    - ADD_INTERNED
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int array_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/arraymodule.c:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3593
    functionDepth: 1
    functionLinenumber: 3593
    functionLinenumberEnd: 3597
    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:111,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Modules/_testinternalcapi.c:115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:116,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: _get_current_module
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - PyImport_GetModule
    - PyUnicode_FromString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_current_module(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:134,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/_testinternalcapi.c:135,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (state != NULL)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 138
    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:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - visit
    - arg
    argTypes:
    - module_state*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    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:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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:171,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    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:180,1
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Modules/_testinternalcapi.c:181,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: get_c_recursion_remaining
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyLong_FromLong
    - _Py_get_machine_stack_pointer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_c_recursion_remaining(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Modules/_testinternalcapi.c:190,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: get_stack_pointer
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _Py_get_machine_stack_pointer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_stack_pointer(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: get_stack_margin
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_stack_margin(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleExW
      Src: /src/cpython/Modules/_testinternalcapi.c:205,1
    - Dst: GetModuleFileNameW
      Src: /src/cpython/Modules/_testinternalcapi.c:211,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testinternalcapi.c:211,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testinternalcapi.c:212,1
    - Dst: wcsrchr
      Src: /src/cpython/Modules/_testinternalcapi.c:213,1
    - Dst: _wcsnicmp
      Src: /src/cpython/Modules/_testinternalcapi.c:215,1
    - Dst: _PyJIT_AddressInJitCode
      Src: /src/cpython/Modules/_testinternalcapi.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - addr
    - jit_enabled
    - interp
    argTypes:
    - uintptr_t
    - int
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 229
    functionName: classify_address
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _wcsnicmp
    - Py_ARRAY_LENGTH
    - _PyJIT_AddressInJitCode
    - GetModuleHandleExW
    - wcsrchr
    - GetModuleFileNameW
    linkageType: ''
    returnType: char
    signature: 'char *

      classify_address(uintptr_t addr, int jit_enabled, PyInterpreterState *interp)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/cpython/Modules/_testinternalcapi.c:235,1
    - Dst: strrchr
      Src: /src/cpython/Modules/_testinternalcapi.c:238,1
    - Dst: strncmp
      Src: /src/cpython/Modules/_testinternalcapi.c:240,1
    - Dst: strncmp
      Src: /src/cpython/Modules/_testinternalcapi.c:245,1
    - Dst: strncmp
      Src: /src/cpython/Modules/_testinternalcapi.c:250,1
    - Dst: _PyJIT_AddressInJitCode
      Src: /src/cpython/Modules/_testinternalcapi.c:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - addr
    - jit_enabled
    - interp
    argTypes:
    - uintptr_t
    - int
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 262
    functionName: classify_address
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyJIT_AddressInJitCode
    - strrchr
    - strncmp
    - dladdr
    linkageType: ''
    returnType: char
    signature: 'char *

      classify_address(uintptr_t addr, int jit_enabled, PyInterpreterState *interp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyJIT_AddressInJitCode
      Src: /src/cpython/Modules/_testinternalcapi.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - jit_enabled
    - interp
    argTypes:
    - uintptr_t
    - int
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: classify_address
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyJIT_AddressInJitCode
    linkageType: ''
    returnType: char
    signature: 'char *

      classify_address(uintptr_t addr, int jit_enabled, PyInterpreterState *interp)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:282,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_testinternalcapi.c:286,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi.c:290,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testinternalcapi.c:291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:293,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:296,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Modules/_testinternalcapi.c:298,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:300,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:303,1
    - Dst: classify_address
      Src: /src/cpython/Modules/_testinternalcapi.c:306,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:310,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 317
    functionName: classify_stack_addresses
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyUnicode_FromString
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - PySequence_Fast_ITEMS
    - classify_address
    - _PyThreadState_GET
    - PyLong_AsUnsignedLongLong
    - PyList_New
    - PyErr_Occurred
    - PyArg_ParseTuple
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      classify_stack_addresses(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testinternalcapi.c:322,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:327,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:339,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:340,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:342,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:344,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testinternalcapi.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:351,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:354,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:355,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testinternalcapi.c:356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:358,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:361,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 365
    functionName: get_jit_code_ranges
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - _PyThreadState_GET
    - PyTuple_SET_ITEM
    - PyList_New
    - Py_XDECREF
    - PyLong_FromUnsignedLongLong
    - Py_DECREF
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_jit_code_ranges(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:371,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: get_jit_backend
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_jit_backend(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - addr
    - stack_min
    - stack_max
    argTypes:
    - uintptr_t
    - uintptr_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: stack_address_is_valid
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stack_address_is_valid(uintptr_t addr, uintptr_t stack_min, uintptr_t
      stack_max)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/cpython/Modules/_testinternalcapi.c:397,1
    - Dst: stack_address_is_valid
      Src: /src/cpython/Modules/_testinternalcapi.c:410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - frame_pointer
    - offset
    - stack_min
    - stack_max
    argTypes:
    - uintptr_t*
    - Py_ssize_t
    - uintptr_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 422
    functionName: frame_pointer_slot_is_valid
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - stack_address_is_valid
    linkageType: ''
    returnType: int
    signature: "int frame_pointer_slot_is_valid(uintptr_t *frame_pointer, Py_ssize_t
      offset,\n                            uintptr_t stack_min, uintptr_t stack_max)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stack_address_is_valid
      Src: /src/cpython/Modules/_testinternalcapi.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - frame_pointer
    - next_fp
    - stack_min
    - stack_max
    argTypes:
    - uintptr_t*
    - uintptr_t*
    - uintptr_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 441
    functionName: next_frame_pointer_is_valid
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - stack_address_is_valid
    linkageType: ''
    returnType: int
    signature: "int next_frame_pointer_is_valid(uintptr_t *frame_pointer, uintptr_t
      *next_fp,\n                            uintptr_t stack_min, uintptr_t stack_max)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testinternalcapi.c:450,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testinternalcapi.c:454,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:457,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testinternalcapi.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:481,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:482,1
    - Dst: stack_address_is_valid
      Src: /src/cpython/Modules/_testinternalcapi.c:488,1
    - Dst: frame_pointer_slot_is_valid
      Src: /src/cpython/Modules/_testinternalcapi.c:491,1
    - Dst: frame_pointer_slot_is_valid
      Src: /src/cpython/Modules/_testinternalcapi.c:496,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:506,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testinternalcapi.c:509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:514,1
    - Dst: next_frame_pointer_is_valid
      Src: /src/cpython/Modules/_testinternalcapi.c:517,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 1
    argNames:
    - frame_pointer
    argTypes:
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 525
    functionName: manual_unwind_from_fp
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - frame_pointer_slot_is_valid
    - next_frame_pointer_is_valid
    - PyList_Append
    - _PyThreadState_GET
    - Py_BUILD_ASSERT
    - PyList_New
    - PyErr_Format
    - PyLong_FromUnsignedLongLong
    - Py_DECREF
    - stack_address_is_valid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      manual_unwind_from_fp(uintptr_t *frame_pointer)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: backtrace
      Src: /src/cpython/Modules/_testinternalcapi.c:532,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testinternalcapi.c:532,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:534,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:538,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testinternalcapi.c:545,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:552,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 558
    functionName: gnu_backtrace_unwind
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - Py_ARRAY_LENGTH
    - PyErr_SetString
    - PyList_New
    - PyErr_Format
    - PyLong_FromUnsignedLongLong
    - Py_DECREF
    - backtrace
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gnu_backtrace_unwind(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 566
    functionName: gnu_backtrace_unwind
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gnu_backtrace_unwind(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_frame_address
      Src: /src/cpython/Modules/_testinternalcapi.c:573,1
    - Dst: manual_unwind_from_fp
      Src: /src/cpython/Modules/_testinternalcapi.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: manual_frame_pointer_unwind
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - __builtin_frame_address
    - manual_unwind_from_fp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      manual_frame_pointer_unwind(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RtlCaptureContext
      Src: /src/cpython/Modules/_testinternalcapi.c:583,1
    - Dst: manual_unwind_from_fp
      Src: /src/cpython/Modules/_testinternalcapi.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 586
    functionName: manual_frame_pointer_unwind
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - manual_unwind_from_fp
    - RtlCaptureContext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      manual_frame_pointer_unwind(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 594
    functionName: manual_frame_pointer_unwind
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      manual_frame_pointer_unwind(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bswap16
      Src: /src/cpython/Modules/_testinternalcapi.c:600,1
    - Dst: UINT16_C
      Src: /src/cpython/Modules/_testinternalcapi.c:600,1
    - Dst: UINT16_C
      Src: /src/cpython/Modules/_testinternalcapi.c:601,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:602,1
    - Dst: _Py_bswap32
      Src: /src/cpython/Modules/_testinternalcapi.c:607,1
    - Dst: UINT32_C
      Src: /src/cpython/Modules/_testinternalcapi.c:607,1
    - Dst: UINT32_C
      Src: /src/cpython/Modules/_testinternalcapi.c:608,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:609,1
    - Dst: _Py_bswap64
      Src: /src/cpython/Modules/_testinternalcapi.c:614,1
    - Dst: UINT64_C
      Src: /src/cpython/Modules/_testinternalcapi.c:614,1
    - Dst: UINT64_C
      Src: /src/cpython/Modules/_testinternalcapi.c:615,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 622
    functionName: test_bswap
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_bswap64
    - _Py_bswap32
    - UINT16_C
    - UINT32_C
    - PyErr_Format
    - UINT64_C
    - _Py_bswap16
    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:630,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - expected
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 638
    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:651,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:652,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:653,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:654,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:655,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:656,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:657,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 662
    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: 650
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 650
    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:670,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - x
    - expected
    argTypes:
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 678
    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:691,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:692,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:693,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:694,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:695,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:696,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 701
    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: 690
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 690
    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: 705
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 705
    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: 706
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 706
    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: 707
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 707
    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:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 713
    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:722,1
    - Dst: FROM_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:723,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:724,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:724,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: 723
        line_start: 723
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 727
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 727
    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:733,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:736,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:740,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:741,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:742,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_testinternalcapi.c:742,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:742,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:747,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_testinternalcapi.c:748,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:748,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:748,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_testinternalcapi.c:749,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:750,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:753,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:754,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Modules/_testinternalcapi.c:758,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:758,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:759,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:760,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:760,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:761,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:761,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:761,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_testinternalcapi.c:766,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:766,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:767,1
    - Dst: FROM_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:767,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:767,1
    - Dst: _Py_hashtable_steal
      Src: /src/cpython/Modules/_testinternalcapi.c:772,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:772,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:773,1
    - Dst: FROM_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:773,1
    - Dst: VALUE
      Src: /src/cpython/Modules/_testinternalcapi.c:773,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:774,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:775,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Modules/_testinternalcapi.c:775,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:775,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Modules/_testinternalcapi.c:779,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:780,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:781,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Modules/_testinternalcapi.c:784,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:785,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:786,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:787,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_testinternalcapi.c:787,1
    - Dst: TO_PTR
      Src: /src/cpython/Modules/_testinternalcapi.c:787,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_testinternalcapi.c:789,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: 741
        line_start: 741
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: ((int)FROM_PTR(value_ptr) == VALUE(key))
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nbuckets > 0)
      pos:
        line_end: 785
        line_start: 785
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nbuckets > table->nentries)
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (entry != NULL)
      pos:
        line_end: 758
        line_start: 758
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nentries == 0)
      pos:
        line_end: 784
        line_start: 784
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nentries == 0)
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nentries == 26)
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (entry->key == TO_PTR(key))
      pos:
        line_end: 759
        line_start: 759
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (entry->value == TO_PTR(VALUE(key)))
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_Py_hashtable_get(table, TO_PTR('x')) == NULL)
      pos:
        line_end: 786
        line_start: 786
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nbuckets > 0)
      pos:
        line_end: 740
        line_start: 740
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: ((int)FROM_PTR(value_ptr) == VALUE(key))
      pos:
        line_end: 772
        line_start: 772
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (table->nentries == 25)
      pos:
        line_end: 773
        line_start: 773
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_Py_hashtable_get_entry(table, TO_PTR(key)) == NULL)
      pos:
        line_end: 774
        line_start: 774
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (count == 25)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (res == 0)
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 791
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 791
    functionName: test_hashtable
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - FROM_PTR
    - _Py_hashtable_steal
    - PyErr_NoMemory
    - VALUE
    - _Py_hashtable_set
    - _Py_hashtable_foreach
    - TO_PTR
    - _Py_hashtable_get
    - _Py_hashtable_clear
    - assert
    - _Py_hashtable_get_entry
    - _Py_hashtable_destroy
    - _Py_hashtable_new
    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:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(arg)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 799
    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:809,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:813,1
    - Dst: _Py_UTF8_Edit_Cost
      Src: /src/cpython/Modules/_testinternalcapi.c:817,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:819,1
    - Dst: _Py_UTF8_Edit_Cost
      Src: /src/cpython/Modules/_testinternalcapi.c:828,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:830,1
    - Dst: _Py_UTF8_Edit_Cost
      Src: /src/cpython/Modules/_testinternalcapi.c:838,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:840,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:848,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:849,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - a
    - b
    - expected
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 851
    functionName: check_edit_cost
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_UTF8_Edit_Cost
    - PyUnicode_FromString
    - PyErr_Format
    - Py_XDECREF
    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:862,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:863,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:864,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:865,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:866,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:867,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:868,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:869,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:870,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:871,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:872,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:873,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:874,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:875,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:876,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:877,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:878,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:879,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 884
    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: 862
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 862
    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:891,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testinternalcapi.c:892,1
    - Dst: _PyBytes_Find
      Src: /src/cpython/Modules/_testinternalcapi.c:893,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:896,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testinternalcapi.c:902,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:904,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testinternalcapi.c:907,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:909,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:910,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testinternalcapi.c:913,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testinternalcapi.c:914,1
    - Dst: _PyBytes_Find
      Src: /src/cpython/Modules/_testinternalcapi.c:915,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:917,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:918,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - haystack0
    - needle0
    - offset
    - expected
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 926
    functionName: check_bytes_find
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - _PyBytes_Find
    - memcpy
    - PyErr_Format
    - strlen
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: "int check_bytes_find(const char *haystack0, const char *needle0,\n
      \                Py_ssize_t offset, Py_ssize_t expected)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_testinternalcapi.c:932,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:934,1
    - Dst: _PyBytes_Find
      Src: /src/cpython/Modules/_testinternalcapi.c:937,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testinternalcapi.c:938,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:940,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: 946
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 946
    functionName: check_bytes_find_large
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _PyBytes_Find
    - PyMem_RawCalloc
    - PyMem_RawFree
    - PyErr_Format
    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:957,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:958,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:959,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:960,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:961,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:962,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:963,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:964,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:965,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:966,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:967,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:968,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:969,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:970,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:971,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:972,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:973,1
    - Dst: CHECK
      Src: /src/cpython/Modules/_testinternalcapi.c:974,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:980,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:983,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:986,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:989,1
    - Dst: check_bytes_find_large
      Src: /src/cpython/Modules/_testinternalcapi.c:992,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 996
    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: 956
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 956
    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:1003,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testinternalcapi.c:1008,1
    - Dst: _Py_normpath
      Src: /src/cpython/Modules/_testinternalcapi.c:1008,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1012
    functionName: normalize_path
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - _Py_normpath
    - PyUnicode_AsWideCharString
    - PyMem_Free
    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:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1017
    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:1029,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_testinternalcapi.c:1032,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Modules/_testinternalcapi.c:1036,1
    - Dst: _Py_EncodeLocaleEx
      Src: /src/cpython/Modules/_testinternalcapi.c:1041,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:1044,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:1048,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testinternalcapi.c:1049,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:1052,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:1055,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1059,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1062,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1066
    functionName: encode_locale_ex
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_RawFree
    - PyMem_Free
    - _Py_GetErrorHandler
    - PyArg_ParseTuple
    - _Py_EncodeLocaleEx
    - PyErr_Format
    - 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:1077,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Modules/_testinternalcapi.c:1080,1
    - Dst: _Py_DecodeLocaleEx
      Src: /src/cpython/Modules/_testinternalcapi.c:1085,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_testinternalcapi.c:1091,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testinternalcapi.c:1092,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:1095,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:1098,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1109
    functionName: decode_locale_ex
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_DecodeLocaleEx
    - PyUnicode_FromWideChar
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_RawFree
    - _Py_GetErrorHandler
    - PyErr_Format
    - PyArg_ParseTuple
    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:1114,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Modules/_testinternalcapi.c:1115,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1115,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testinternalcapi.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1118
    functionName: set_eval_frame_default
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_CLEAR
    - _PyInterpreterState_SetEvalFrameFunc
    - _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:1123,1
    - Dst: _PyFrame_GetFunction
      Src: /src/cpython/Modules/_testinternalcapi.c:1124,1
    - Dst: _get_current_module
      Src: /src/cpython/Modules/_testinternalcapi.c:1125,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1126,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:1127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1128,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testinternalcapi.c:1129,1
    - Dst: _PyEval_EvalFrameDefault
      Src: /src/cpython/Modules/_testinternalcapi.c:1134,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: 1125
        line_start: 1125
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1135
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1135
    functionName: record_eval
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FunctionCheck
    - get_module_state
    - _PyEval_EvalFrameDefault
    - PyList_Append
    - _PyFrame_GetFunction
    - _get_current_module
    - assert
    - Py_DECREF
    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:1141,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1142,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1143,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1146,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:1146,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Modules/_testinternalcapi.c:1147,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1149
    functionName: set_eval_frame_record
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_XSETREF
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyList_Check
    - _PyInterpreterState_SetEvalFrameFunc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_eval_frame_record(PyObject *self, PyObject *list)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1159,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1163,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1164,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1169,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1170,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1171,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1179
    functionName: get_eval_frame_stats
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_SetItemString
    - Py_XDECREF
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_eval_frame_stats(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Modules/_testinternalcapi.c:1184,1
    - Dst: _PyFrame_GetFunction
      Src: /src/cpython/Modules/_testinternalcapi.c:1185,1
    - Dst: _get_current_module
      Src: /src/cpython/Modules/_testinternalcapi.c:1186,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1187,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:1188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1189,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testinternalcapi.c:1190,1
    - Dst: Test_EvalFrame
      Src: /src/cpython/Modules/_testinternalcapi.c:1196,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: 1186
        line_start: 1186
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1197
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1197
    functionName: record_eval_interp
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FunctionCheck
    - get_module_state
    - Test_EvalFrame
    - PyList_Append
    - _PyFrame_GetFunction
    - _get_current_module
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_eval_interp(PyThreadState *tstate, struct _PyInterpreterFrame *f, int
      exc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi.c:1202,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:1203,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:1204,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1205,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1206,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1209,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:1209,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Modules/_testinternalcapi.c:1210,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1210,1
    - Dst: _PyInterpreterState_SetEvalFrameAllowSpecialization
      Src: /src/cpython/Modules/_testinternalcapi.c:1211,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1211,1
    - Dst: _PyInterpreterState_SetEvalFrameFunc
      Src: /src/cpython/Modules/_testinternalcapi.c:1213,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1213,1
    - Dst: _PyInterpreterState_SetEvalFrameAllowSpecialization
      Src: /src/cpython/Modules/_testinternalcapi.c:1214,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1218
    functionName: set_eval_frame_interp
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyTuple_GET_ITEM
    - _PyInterpreterState_SetEvalFrameAllowSpecialization
    - Py_XSETREF
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyList_Check
    - _PyInterpreterState_SetEvalFrameFunc
    - PyTuple_GET_SIZE
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_eval_frame_interp(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1223,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Modules/_testinternalcapi.c:1224,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1225
    functionName: is_specialization_enabled
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_IsSpecializationEnabled
    - PyBool_FromLong
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_specialization_enabled(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_CleanDoc
      Src: /src/cpython/Modules/_testinternalcapi.c:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - doc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1241
    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:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1255
    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:1280,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: 1281
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1281
    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:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - instructions
    - consts
    - nlocals
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1304
    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:1308,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dict
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1313
    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:1334,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1334,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1337,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1338,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1340,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1340,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1341,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1341,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1343,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1344,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1345,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1346,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1347,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1348,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1350,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1350,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1351,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1351,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1352,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1352,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1353,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1353,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1354,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1354,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1355,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1355,1
    - Dst: get_nonnegative_int_from_dict
      Src: /src/cpython/Modules/_testinternalcapi.c:1357,1
    - Dst: get_nonnegative_int_from_dict
      Src: /src/cpython/Modules/_testinternalcapi.c:1358,1
    - Dst: get_nonnegative_int_from_dict
      Src: /src/cpython/Modules/_testinternalcapi.c:1359,1
    - Dst: get_nonnegative_int_from_dict
      Src: /src/cpython/Modules/_testinternalcapi.c:1360,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1362,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1363,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1364,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1365,1
    - Dst: _PyCompile_Assemble
      Src: /src/cpython/Modules/_testinternalcapi.c:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 4
    argNames:
    - module
    - filename
    - instructions
    - metadata
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(umd.u_varnames))
      pos:
        line_end: 1351
        line_start: 1351
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyUnicode_Check(umd.u_qualname))
      pos:
        line_end: 1340
        line_start: 1340
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_names))
      pos:
        line_end: 1350
        line_start: 1350
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_fasthidden))
      pos:
        line_end: 1354
        line_start: 1354
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (umd.u_argcount >= 0)
      pos:
        line_end: 1361
        line_start: 1361
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (umd.u_kwonlyargcount >= 0)
      pos:
        line_end: 1363
        line_start: 1363
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyUnicode_Check(umd.u_name))
      pos:
        line_end: 1339
        line_start: 1339
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_consts))
      pos:
        line_end: 1349
        line_start: 1349
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_freevars))
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(metadata))
      pos:
        line_end: 1333
        line_start: 1333
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyDict_Check(umd.u_cellvars))
      pos:
        line_end: 1352
        line_start: 1352
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (umd.u_posonlyargcount >= 0)
      pos:
        line_end: 1362
        line_start: 1362
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (umd.u_firstlineno >= 0)
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1368
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1368
    functionName: _testinternalcapi_assemble_code_object_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemString
    - PyUnicode_Check
    - PyDict_Check
    - assert
    - get_nonnegative_int_from_dict
    - _PyCompile_Assemble
    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:1376,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1382,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Modules/_testinternalcapi.c:1383,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Modules/_testinternalcapi.c:1386,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:1389,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1393,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1395,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1403,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1409,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 1392
        line_start: 1392
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1421
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1421
    functionName: get_interp_settings
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - _PyThreadState_GET
    - PyErr_Format
    - assert
    - PyArg_ParseTuple
    - _PyInterpreterState_Main
    - Py_DECREF
    - PyLong_FromUnsignedLong
    - PyDict_New
    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:1428,1
    - Dst: _PyImport_ClearExtension
      Src: /src/cpython/Modules/_testinternalcapi.c:1431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1435
    functionName: clear_extension
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _PyImport_ClearExtension
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_extension(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:1446,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:1448,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:1453,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1454,1
    - Dst: PyUnstable_WritePerfMapEntry
      Src: /src/cpython/Modules/_testinternalcapi.c:1458,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testinternalcapi.c:1460,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1464
    functionName: write_perf_map_entry
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnstable_WritePerfMapEntry
    - PyLong_AsSize_t
    - PyErr_Occurred
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    - PyLong_AsVoidPtr
    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:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1471
    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:1476,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1477,1
    - Dst: PyUnstable_InterpreterFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi.c:1481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1482
    functionName: iframe_getcode
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFrame_Check
    - PyUnstable_InterpreterFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iframe_getcode(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1487,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1488,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1492,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Modules/_testinternalcapi.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1493
    functionName: iframe_getline
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnstable_InterpreterFrame_GetLine
    - PyErr_SetString
    - PyLong_FromLong
    - PyFrame_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iframe_getline(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1498,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1499,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1503,1
    - Dst: PyUnstable_InterpreterFrame_GetLasti
      Src: /src/cpython/Modules/_testinternalcapi.c:1503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - frame
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1504
    functionName: iframe_getlasti
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnstable_InterpreterFrame_GetLasti
    - PyErr_SetString
    - PyLong_FromLong
    - PyFrame_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iframe_getlasti(PyObject *self, PyObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1510,1
    - Dst: _PyCode_ReturnsOnlyNone
      Src: /src/cpython/Modules/_testinternalcapi.c:1514,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1516
    functionName: code_returns_only_none
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyCode_ReturnsOnlyNone
    - PyCode_Check
    - PyErr_SetString
    - PyBool_FromLong
    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:1521,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1522,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1527
    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:1532,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1533,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1538,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:1543,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Modules/_testinternalcapi.c:1544,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1545,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1547,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testinternalcapi.c:1550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1558
    functionName: get_co_localskinds
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyTuple_GET_ITEM
    - PyLong_FromLong
    - PyErr_SetString
    - PyDict_SetItem
    - _PyLocals_GetKind
    - Py_DECREF
    - PyDict_New
    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:1563,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1571,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1578,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi.c:1580,1
    - Dst: _PyFunction_GET_BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi.c:1583,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi.c:1585,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1587,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1588,1
    - Dst: _PyCode_GetVarCounts
      Src: /src/cpython/Modules/_testinternalcapi.c:1595,1
    - Dst: _PyCode_SetUnboundVarCounts
      Src: /src/cpython/Modules/_testinternalcapi.c:1596,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1622,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1626,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1629,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1633,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1636,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1639,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1643,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1646,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1647,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1648,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1649,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1650,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1651,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1654,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1657,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1661,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1664,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1665,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1666,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1669,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1673,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1676,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1677,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1678,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1681,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1684,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1688,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1691,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1692,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1693,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi.c:1696,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testinternalcapi.c:1700,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1703,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1704,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1705,1
    - Dst: SET_COUNT
      Src: /src/cpython/Modules/_testinternalcapi.c:1706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1719,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1720,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1721,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1722,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1723,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1725,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 118
    argCount: 3
    argNames:
    - self
    - _args
    - _kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1727
    functionName: get_code_var_counts
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - PyCode_Check
    - _PyCode_GetVarCounts
    - PyErr_SetString
    - SET_COUNT
    - PyDict_SetItemString
    - _PyThreadState_GET
    - _PyCode_SetUnboundVarCounts
    - Py_XDECREF
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - _PyFunction_GET_BUILTINS
    - PyDict_New
    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: 1615
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1615
    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:1732,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1739,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1746,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi.c:1748,1
    - Dst: _PyFunction_GET_BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi.c:1751,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi.c:1753,1
    - Dst: PyCode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:1755,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1756,1
    - Dst: _PyCode_VerifyStateless
      Src: /src/cpython/Modules/_testinternalcapi.c:1762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1729
    functionDepth: 1
    functionLinenumber: 1729
    functionLinenumberEnd: 1768
    functionName: verify_stateless_code
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - PyCode_Check
    - PyErr_SetString
    - _PyCode_VerifyStateless
    - _PyThreadState_GET
    - PyArg_ParseTupleAndKeywords
    - _PyFunction_GET_BUILTINS
    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:1777,1
    - Dst: _Py_Executor_DependsOn
      Src: /src/cpython/Modules/_testinternalcapi.c:1780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1782
    functionName: add_executor_dependency
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _Py_Executor_DependsOn
    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:1787,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Modules/_testinternalcapi.c:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1790
    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: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:1795,1
    - Dst: _Py_ClearExecutorDeletionList
      Src: /src/cpython/Modules/_testinternalcapi.c:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1792
    functionDepth: 1
    functionLinenumber: 1792
    functionLinenumberEnd: 1798
    functionName: clear_executor_deletion_list
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - _Py_ClearExecutorDeletionList
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clear_executor_deletion_list(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi.c:1803,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1804,1
    - Dst: PyLong_AsUInt64
      Src: /src/cpython/Modules/_testinternalcapi.c:1808,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:1813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1800
    functionDepth: 1
    functionLinenumber: 1800
    functionLinenumberEnd: 1814
    functionName: get_exit_executor
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUInt64
    - PyLong_CheckExact
    - PyErr_SetString
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_exit_executor(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testinternalcapi.c:1822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1823,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1818
    functionDepth: 1
    functionLinenumber: 1818
    functionLinenumberEnd: 1826
    functionName: _pending_callback
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallNoArgs
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _pending_callback(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:1840,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:1846,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1850,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/_testinternalcapi.c:1855,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/_testinternalcapi.c:1863,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1864,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/_testinternalcapi.c:1869,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Modules/_testinternalcapi.c:1876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:1880,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1884,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: 1864
        line_start: 1863
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1885
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1885
    functionName: pending_threadfunc
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - assert
    - _PyInterpreterState_GET
    - PyArg_ParseTupleAndKeywords
    - _PyEval_AddPendingCall
    - PyEval_RestoreThread
    - PyEval_SaveThread
    - PyLong_FromUnsignedLong
    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:1896,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:1897,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Modules/_testinternalcapi.c:1898,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (pending_identify_result.interpid == -1)
      pos:
        line_end: 1895
        line_start: 1895
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1901
      start: 1892
    functionDepth: 1
    functionLinenumber: 1892
    functionLinenumberEnd: 1901
    functionName: _pending_identify_callback
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyThreadState_Get
    - PyInterpreterState_GetID
    - assert
    linkageType: ''
    returnType: int
    signature: int _pending_identify_callback(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:1907,1
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:1910,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1912,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:1913,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1920,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1924,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/_testinternalcapi.c:1930,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1939,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1940,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testinternalcapi.c:1941,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:1943,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1949
    functionName: pending_identify
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _PyInterpreterState_LookUpIDObject
    - PyLong_FromLongLong
    - PyErr_SetString
    - PyThread_release_lock
    - _PyEval_AddPendingCall
    - PyErr_Occurred
    - PyArg_ParseTuple
    - PyThread_free_lock
    - PyThread_allocate_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pending_identify(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi.c:1957,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:1960,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:1961,1
    - Dst: _PyTraceMalloc_GetTraceback
      Src: /src/cpython/Modules/_testinternalcapi.c:1965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1951
    functionDepth: 1
    functionLinenumber: 1951
    functionLinenumberEnd: 1966
    functionName: tracemalloc_get_traceback
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _PyTraceMalloc_GetTraceback
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:1974,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1975,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Modules/_testinternalcapi.c:1978,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1979,1
    - Dst: _PyThreadState_GetDict
      Src: /src/cpython/Modules/_testinternalcapi.c:1982,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:1983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 1978
        line_start: 1978
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (tstate != NULL)
      pos:
        line_end: 1974
        line_start: 1974
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (dict2 == dict)
      pos:
        line_end: 1982
        line_start: 1982
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 1987
      start: 1970
    functionDepth: 1
    functionLinenumber: 1970
    functionLinenumberEnd: 1987
    functionName: test_tstate_capi
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Get
    - PyThreadState_GetDict
    - _PyThreadState_GetDict
    - assert
    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:1997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1991
    functionDepth: 1
    functionLinenumber: 1991
    functionLinenumberEnd: 1998
    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:2003,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_name
    - op
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2009
    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:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2011
    functionDepth: 2
    functionLinenumber: 2011
    functionLinenumberEnd: 2016
    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:2023,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi.c:2028,1
    - Dst: test_pyobject_is_freed
      Src: /src/cpython/Modules/_testinternalcapi.c:2030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2019
    functionDepth: 2
    functionLinenumber: 2019
    functionLinenumberEnd: 2031
    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:2039,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi.c:2044,1
    - Dst: test_pyobject_is_freed
      Src: /src/cpython/Modules/_testinternalcapi.c:2047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2034
    functionDepth: 2
    functionLinenumber: 2034
    functionLinenumberEnd: 2048
    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:2058,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi.c:2062,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi.c:2064,1
    - Dst: test_pyobject_is_freed
      Src: /src/cpython/Modules/_testinternalcapi.c:2066,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2051
    functionDepth: 2
    functionLinenumber: 2051
    functionLinenumberEnd: 2068
    functionName: check_pyobject_freed_is_freed
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - test_pyobject_is_freed
    - Py_SET_REFCNT
    - PyObject_CallNoArgs
    - Py_TYPE
    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:2074,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2076,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testinternalcapi.c:2079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2071
    functionDepth: 1
    functionLinenumber: 2071
    functionLinenumberEnd: 2080
    functionName: test_pymem_getallocatorsname
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyMem_GetCurrentAllocatorName
    - PyErr_SetString
    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:2085,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_testinternalcapi.c:2086,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi.c:2089,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2094,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2096,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testinternalcapi.c:2097,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_testinternalcapi.c:2101,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_testinternalcapi.c:2105,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testinternalcapi.c:2108,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi.c:2110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 2093
        line_start: 2093
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (size >= 0)
      pos:
        line_end: 2095
        line_start: 2095
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2113
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2113
    functionName: get_object_dict_values
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - _PyObject_InlineValues
    - Py_INCREF
    - _Py_STR
    - _Py_DECLARE_STR
    - PyTuple_SET_ITEM
    - assert
    - PyTuple_New
    - Py_TYPE
    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:2119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2120
    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:2129,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Modules/_testinternalcapi.c:2134,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:2135,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Modules/_testinternalcapi.c:2136,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2141
    functionName: dict_getitem_knownhash
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetKeyError
    - PyErr_Occurred
    - PyArg_ParseTuple
    - _PyDict_GetItem_KnownHash
    - Py_XNewRef
    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:2152,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:2154,1
    - Dst: _PyInterpreterConfig_InitFromDict
      Src: /src/cpython/Modules/_testinternalcapi.c:2157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:2158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - config
    - obj
    argTypes:
    - PyInterpreterConfig*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2144
    functionDepth: 1
    functionLinenumber: 2144
    functionLinenumberEnd: 2163
    functionName: _init_interp_config_from_object
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Format
    - _PyInterpreterConfig_InitFromDict
    - PyObject_GetAttrString
    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:2169,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2174,1
    - Dst: PyInterpreterState_New
      Src: /src/cpython/Modules/_testinternalcapi.c:2175,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2181,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2183,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2184,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2185,1
    - Dst: Py_NewInterpreterFromConfig
      Src: /src/cpython/Modules/_testinternalcapi.c:2188,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2189,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_testinternalcapi.c:2190,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2191,1
    - Dst: _PyErr_SetFromPyStatus
      Src: /src/cpython/Modules/_testinternalcapi.c:2192,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi.c:2193,1
    - Dst: PyThreadState_GetInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2197,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2199,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:2200,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2201,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Modules/_testinternalcapi.c:2202,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:2206,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2212,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_testinternalcapi.c:2215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - config
    - whence
    argTypes:
    - PyInterpreterConfig*
    - long
    assertStmts:
    - condition: (config == NULL)
      pos:
        line_end: 2182
        line_start: 2182
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (config == NULL)
      pos:
        line_end: 2173
        line_start: 2173
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (tstate == NULL)
      pos:
        line_end: 2190
        line_start: 2190
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2219
      start: 2165
    functionDepth: 1
    functionLinenumber: 2165
    functionLinenumberEnd: 2219
    functionName: _new_interpreter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Clear
    - Py_NewInterpreterFromConfig
    - PyStatus_Exception
    - PyThreadState_Swap
    - PyErr_SetString
    - Py_NewInterpreter
    - _PyErr_ChainExceptions1
    - PyThreadState_GetInterpreter
    - _PyErr_SetFromPyStatus
    - PyErr_Format
    - assert
    - PyInterpreterState_New
    - PyErr_GetRaisedException
    - PyThreadState_Delete
    - _PyXI_NewInterpreter
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _new_interpreter(PyInterpreterConfig *config, long whence)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:2229,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2246,1
    - Dst: _init_interp_config_from_object
      Src: /src/cpython/Modules/_testinternalcapi.c:2252,1
    - Dst: _new_interpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2258,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:2264,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2266,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2223
    functionDepth: 2
    functionLinenumber: 2223
    functionLinenumberEnd: 2271
    functionName: create_interpreter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _init_interp_config_from_object
    - _PyInterpreterState_GetIDObject
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - _PyXI_EndInterpreter
    - _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:2281,1
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:2288,1
    - Dst: PyThreadState_New
      Src: /src/cpython/Modules/_testinternalcapi.c:2300,1
    - Dst: PyThreadState_New
      Src: /src/cpython/Modules/_testinternalcapi.c:2302,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2303,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:2304,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Modules/_testinternalcapi.c:2305,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2306,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2307,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2275
    functionDepth: 1
    functionLinenumber: 2275
    functionLinenumberEnd: 2315
    functionName: destroy_interpreter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Clear
    - _PyInterpreterState_LookUpIDObject
    - PyThreadState_Swap
    - PyThreadState_New
    - PyArg_ParseTupleAndKeywords
    - PyThreadState_Delete
    - _PyXI_EndInterpreter
    - Py_EndInterpreter
    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:2326,1
    - Dst: _PyInterpreterState_LookUpIDObject
      Src: /src/cpython/Modules/_testinternalcapi.c:2333,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Modules/_testinternalcapi.c:2340,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2342,1
    - Dst: _PyInterpreterState_SetRunningMain
      Src: /src/cpython/Modules/_testinternalcapi.c:2345,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/cpython/Modules/_testinternalcapi.c:2352,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:2353,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Modules/_testinternalcapi.c:2354,1
    - Dst: _PyInterpreterState_SetNotRunningMain
      Src: /src/cpython/Modules/_testinternalcapi.c:2358,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2361,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:2364,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2365,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Modules/_testinternalcapi.c:2366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2319
    functionDepth: 1
    functionLinenumber: 2319
    functionLinenumberEnd: 2368
    functionName: exec_interpreter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_SetRunningMain
    - _PyInterpreterState_SetNotRunningMain
    - PyThreadState_Clear
    - PyRun_SimpleStringFlags
    - PyLong_FromLong
    - _PyInterpreterState_LookUpIDObject
    - PyThreadState_Swap
    - PyErr_PrintEx
    - PyErr_Occurred
    - PyArg_ParseTupleAndKeywords
    - PyThreadState_Delete
    - _PyThreadState_NewBound
    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:2384,1
    - Dst: _init_interp_config_from_object
      Src: /src/cpython/Modules/_testinternalcapi.c:2392,1
    - Dst: _PyXI_NewInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2406,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/cpython/Modules/_testinternalcapi.c:2412,1
    - Dst: _PyXI_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2415,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2419,1
    - Dst: Py_NewInterpreterFromConfig
      Src: /src/cpython/Modules/_testinternalcapi.c:2422,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_testinternalcapi.c:2423,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2427,1
    - Dst: _PyErr_SetFromPyStatus
      Src: /src/cpython/Modules/_testinternalcapi.c:2428,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi.c:2429,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2430,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_testinternalcapi.c:2432,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/cpython/Modules/_testinternalcapi.c:2437,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2440,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:2441,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2377
    functionDepth: 2
    functionLinenumber: 2377
    functionLinenumberEnd: 2445
    functionName: run_in_subinterp_with_config
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - Py_NewInterpreterFromConfig
    - _init_interp_config_from_object
    - PyRun_SimpleStringFlags
    - PyLong_FromLong
    - PyStatus_Exception
    - PyThreadState_Swap
    - PyErr_SetString
    - _PyErr_ChainExceptions1
    - _PyErr_SetFromPyStatus
    - PyArg_ParseTupleAndKeywords
    - PyErr_GetRaisedException
    - _PyXI_EndInterpreter
    - Py_EndInterpreter
    - _PyXI_NewInterpreter
    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:2451,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2448
    functionDepth: 1
    functionLinenumber: 2448
    functionLinenumberEnd: 2456
    functionName: normalize_interp_id
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_ObjectToID
    - PyLong_FromLongLong
    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:2462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2458
    functionDepth: 1
    functionLinenumber: 2458
    functionLinenumberEnd: 2463
    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:2469,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2470,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: 2468
        line_start: 2468
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2471
      start: 2465
    functionDepth: 1
    functionLinenumber: 2465
    functionLinenumberEnd: 2471
    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:2476,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi.c:2478,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:2479,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2482,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:2482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2481
        line_start: 2481
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2486
      start: 2473
    functionDepth: 1
    functionLinenumber: 2473
    functionLinenumberEnd: 2486
    functionName: interpreter_exists
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpIDObject
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - 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:2491,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2488
    functionDepth: 1
    functionLinenumber: 2488
    functionLinenumberEnd: 2496
    functionName: get_interpreter_refcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpIDObject
    - PyLong_FromLongLong
    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:2501,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2503,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:2503,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2502
        line_start: 2502
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2508
      start: 2498
    functionDepth: 1
    functionLinenumber: 2498
    functionLinenumberEnd: 2508
    functionName: link_interpreter_refcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpIDObject
    - _PyInterpreterState_RequireIDRef
    - PyErr_Occurred
    - assert
    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:2513,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2515,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:2515,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2514
        line_start: 2514
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2520
      start: 2510
    functionDepth: 1
    functionLinenumber: 2510
    functionLinenumberEnd: 2520
    functionName: unlink_interpreter_refcount
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpIDObject
    - _PyInterpreterState_RequireIDRef
    - PyErr_Occurred
    - assert
    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:2525,1
    - Dst: _PyInterpreterState_RequiresIDRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - idobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2522
    functionDepth: 1
    functionLinenumber: 2522
    functionLinenumberEnd: 2533
    functionName: interpreter_refcount_linked
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpIDObject
    - _PyInterpreterState_RequiresIDRef
    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:2539,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2541,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_testinternalcapi.c:2541,1
    - Dst: _PyXIData_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:2542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyXIData_Release(xidata) == 0)
      pos:
        line_end: 2540
        line_start: 2540
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2544
      start: 2536
    functionDepth: 1
    functionLinenumber: 2536
    functionLinenumberEnd: 2544
    functionName: _xid_capsule_destructor
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyXIData_Free
    - PyCapsule_GetPointer
    - _PyXIData_Release
    - assert
    linkageType: ''
    returnType: void
    signature: void _xid_capsule_destructor(PyObject *capsule)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_testinternalcapi.c:2552,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:2562,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:2563,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testinternalcapi.c:2567,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testinternalcapi.c:2568,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:2573,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Modules/_testinternalcapi.c:2574,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2578,1
    - Dst: _PyObject_GetXIDataNoFallback
      Src: /src/cpython/Modules/_testinternalcapi.c:2579,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2583,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2585,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2590,1
    - Dst: _PyPickle_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2591,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2595,1
    - Dst: _PyMarshal_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2596,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2600,1
    - Dst: _PyCode_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2601,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2605,1
    - Dst: _PyFunction_GetXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2606,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2610,1
    - Dst: _PyCode_GetScriptXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2611,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testinternalcapi.c:2615,1
    - Dst: _PyCode_GetPureScriptXIData
      Src: /src/cpython/Modules/_testinternalcapi.c:2616,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:2621,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_testinternalcapi.c:2624,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2626,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Modules/_testinternalcapi.c:2626,1
    - Dst: _PyXIData_Free
      Src: /src/cpython/Modules/_testinternalcapi.c:2632,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: 2625
        line_start: 2625
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2634
      start: 2546
    functionDepth: 1
    functionLinenumber: 2546
    functionLinenumberEnd: 2634
    functionName: get_crossinterp_data
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - strcmp
    - _PyObject_GetXIData
    - _PyCode_GetXIData
    - _PyThreadState_GET
    - PyArg_ParseTupleAndKeywords
    - assert
    - _PyXIData_New
    - _PyXIData_Free
    - PyUnicode_Check
    - _PyCode_GetPureScriptXIData
    - PyUnicode_AsUTF8
    - PyCapsule_New
    - _PyCode_GetScriptXIData
    - strlen
    - _PyXIData_Release
    - _PyMarshal_GetXIData
    - _PyFunction_GetXIData
    - PyErr_Format
    - _PyPickle_GetXIData
    - _PyObject_GetXIDataNoFallback
    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:2640,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_testinternalcapi.c:2644,1
    - Dst: _PyXIData_NewObject
      Src: /src/cpython/Modules/_testinternalcapi.c:2648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2636
    functionDepth: 1
    functionLinenumber: 2636
    functionLinenumberEnd: 2649
    functionName: restore_crossinterp_data
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _PyXIData_NewObject
    - PyCapsule_GetPointer
    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:2655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2652
    functionDepth: 1
    functionLinenumber: 2652
    functionLinenumberEnd: 2657
    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:2689,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2694,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Modules/_testinternalcapi.c:2697,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Modules/_testinternalcapi.c:2698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:2700,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testinternalcapi.c:2702,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testinternalcapi.c:2705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2664
    functionDepth: 1
    functionLinenumber: 2664
    functionLinenumberEnd: 2709
    functionName: _testinternalcapi_test_long_numbits_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_NumBits
    - Py_ARRAY_LENGTH
    - PyLong_GetSign
    - raiseTestError
    - Py_DECREF
    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:2715,1
    - Dst: PyUnstable_PerfTrampoline_CompileCode
      Src: /src/cpython/Modules/_testinternalcapi.c:2718,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2720,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2711
    functionDepth: 1
    functionLinenumber: 2711
    functionLinenumberEnd: 2724
    functionName: compile_perf_trampoline_entry
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyUnstable_PerfTrampoline_CompileCode
    - PyLong_FromLong
    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:2730,1
    - Dst: PyUnstable_PerfTrampoline_SetPersistAfterFork
      Src: /src/cpython/Modules/_testinternalcapi.c:2733,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2735,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2726
    functionDepth: 1
    functionLinenumber: 2726
    functionLinenumberEnd: 2739
    functionName: perf_trampoline_set_persist_after_fork
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyLong_FromLong
    - PyUnstable_PerfTrampoline_SetPersistAfterFork
    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:2745,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi.c:2747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2742
    functionDepth: 1
    functionLinenumber: 2742
    functionLinenumberEnd: 2755
    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:2760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(type)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2757
    functionDepth: 0
    functionLinenumber: 2757
    functionLinenumberEnd: 2769
    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:2776,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Modules/_testinternalcapi.c:2777,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2773
    functionDepth: 1
    functionLinenumber: 2773
    functionLinenumberEnd: 2779
    functionName: get_py_thread_id
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_ThreadId
    - Py_BUILD_ASSERT
    - 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:2784,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:2787,1
    - Dst: PyFunction_GetCode
      Src: /src/cpython/Modules/_testinternalcapi.c:2788,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi.c:2790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2781
    functionDepth: 1
    functionLinenumber: 2781
    functionLinenumberEnd: 2792
    functionName: get_code
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyFunction_Check
    - PyFunction_GetCode
    - PyErr_Format
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      get_code(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_code
      Src: /src/cpython/Modules/_testinternalcapi.c:2797,1
    - Dst: _PyCode_GetTLBCFast
      Src: /src/cpython/Modules/_testinternalcapi.c:2801,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:2801,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testinternalcapi.c:2805,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Modules/_testinternalcapi.c:2805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2794
    functionDepth: 2
    functionLinenumber: 2794
    functionLinenumberEnd: 2806
    functionName: get_tlbc
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyCode_GetTLBCFast
    - PyBytes_FromStringAndSize
    - get_code
    - PyThreadState_GET
    - _PyCode_NBYTES
    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:2811,1
    - Dst: _PyCode_GetTLBCFast
      Src: /src/cpython/Modules/_testinternalcapi.c:2815,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:2815,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:2819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2808
    functionDepth: 2
    functionLinenumber: 2808
    functionLinenumberEnd: 2820
    functionName: get_tlbc_id
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyThreadState_GET
    - PyLong_FromVoidPtr
    - get_code
    - _PyCode_GetTLBCFast
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tlbc_id(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_testinternalcapi.c:2825,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2822
    functionDepth: 1
    functionLinenumber: 2822
    functionLinenumberEnd: 2826
    functionName: get_long_lived_total
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - PyInterpreterState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_long_lived_total(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi.c:2833,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi.c:2834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2838
      start: 2830
    functionDepth: 1
    functionLinenumber: 2830
    functionLinenumberEnd: 2838
    functionName: has_inline_values
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - Py_TYPE
    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:2843,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Modules/_testinternalcapi.c:2843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2840
    functionDepth: 1
    functionLinenumber: 2840
    functionLinenumberEnd: 2847
    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:2856,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:2859,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testinternalcapi.c:2859,1
    - Dst: _PyType_SetVersion
      Src: /src/cpython/Modules/_testinternalcapi.c:2860,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: 2858
        line_start: 2858
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2862
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2862
    functionName: type_assign_specific_version_unsafe
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyType_HasFeature
    - _PyType_SetVersion
    - assert
    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:2877,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:2877,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:2877,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - spam
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_Py_IsMainInterpreter(PyInterpreterState_Get()))
      pos:
        line_end: 2876
        line_start: 2876
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 2879
      start: 2872
    functionDepth: 1
    functionLinenumber: 2872
    functionLinenumberEnd: 2879
    functionName: gh_119213_getargs_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - Py_NewRef
    - _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:2889,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:2891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2885
    functionDepth: 1
    functionLinenumber: 2885
    functionLinenumberEnd: 2892
    functionName: get_next_dict_keys_version_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyInterpreterState_GET
    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:2897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2894
    functionDepth: 1
    functionLinenumber: 2894
    functionLinenumberEnd: 2898
    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:2904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2901
    functionDepth: 1
    functionLinenumber: 2901
    functionLinenumberEnd: 2905
    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:2911,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Modules/_testinternalcapi.c:2911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2908
    functionDepth: 1
    functionLinenumber: 2908
    functionLinenumberEnd: 2912
    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:2917,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:2917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2918
      start: 2914
    functionDepth: 1
    functionLinenumber: 2914
    functionLinenumberEnd: 2918
    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:2923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2920
    functionDepth: 1
    functionLinenumber: 2920
    functionLinenumberEnd: 2927
    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:2932,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2929
    functionDepth: 0
    functionLinenumber: 2929
    functionLinenumberEnd: 2934
    functionName: incref_decref_delayed
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyObject_XDecRefDelayed
    - Py_NewRef
    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:2941,1
    - Dst: encode
      Src: /src/cpython/Modules/_testinternalcapi.c:2942,1
    - Dst: setTimeout
      Src: /src/cpython/Modules/_testinternalcapi.c:2948,1
    - Dst: Promise::Promise
      Src: /src/cpython/Modules/_testinternalcapi.c:2948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - encode
    - encode
    - sleep
    argTypes:
    - encoder
    - encoder
    - function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2939
    functionDepth: 1
    functionLinenumber: 2939
    functionLinenumberEnd: 2949
    functionName: EM_JS
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - TextEncoder::TextEncoder
    - encode
    - Promise::Promise
    - 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:2959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2964
      start: 2957
    functionDepth: 0
    functionLinenumber: 2957
    functionLinenumberEnd: 2964
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/_testinternalcapi.c:2970,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:2970,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi.c:2970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - callable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2967
    functionDepth: 1
    functionLinenumber: 2967
    functionLinenumberEnd: 2975
    functionName: simple_pending_call
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyEval_AddPendingCall
    - Py_NewRef
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      simple_pending_call(PyObject *self, PyObject *callable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2977
    functionDepth: 0
    functionLinenumber: 2977
    functionLinenumberEnd: 2982
    functionName: vectorcall_nop
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nvectorcall_nop(PyObject *callable, PyObject *const *args,\n
      \              size_t nargsf, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi.c:2987,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi.c:2988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2984
    functionDepth: 1
    functionLinenumber: 2984
    functionLinenumberEnd: 2994
    functionName: set_vectorcall_nop
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_vectorcall_nop(PyObject *self, PyObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:3004,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:3008,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testinternalcapi.c:3012,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/_testinternalcapi.c:3016,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:3018,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:3019,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi.c:3020,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 2996
    functionDepth: 1
    functionLinenumber: 2996
    functionLinenumberEnd: 3022
    functionName: module_get_gc_hooks
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyLong_FromVoidPtr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_get_gc_hooks(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3029,1
    - Dst: PyUnstable_ThreadState_SetStackProtection
      Src: /src/cpython/Modules/_testinternalcapi.c:3029,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3030,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:3030,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3033,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3034,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - start
    - size
    argTypes:
    - PyThreadState*
    - void*
    - size_t
    assertStmts:
    - condition: (PyUnstable_ThreadState_SetStackProtection(tstate, start, size) ==
        0)
      pos:
        line_end: 3028
        line_start: 3028
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (ts->c_stack_top == (uintptr_t)start + size)
      pos:
        line_end: 3032
        line_start: 3032
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3029
        line_start: 3029
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (ts->c_stack_hard_limit <= ts->c_stack_soft_limit)
      pos:
        line_end: 3033
        line_start: 3033
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (ts->c_stack_soft_limit < ts->c_stack_top)
      pos:
        line_end: 3034
        line_start: 3034
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3036
      start: 3025
    functionDepth: 1
    functionLinenumber: 3025
    functionLinenumberEnd: 3036
    functionName: check_threadstate_set_stack_protection
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyUnstable_ThreadState_SetStackProtection
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: "void check_threadstate_set_stack_protection(PyThreadState *tstate,\n
      \                                      void *start, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:3042,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3044,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:3044,1
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Modules/_testinternalcapi.c:3051,1
    - Dst: check_threadstate_set_stack_protection
      Src: /src/cpython/Modules/_testinternalcapi.c:3052,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3056,1
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Modules/_testinternalcapi.c:3057,1
    - Dst: check_threadstate_set_stack_protection
      Src: /src/cpython/Modules/_testinternalcapi.c:3058,1
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Modules/_testinternalcapi.c:3062,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3063,1
    - Dst: PyUnstable_ThreadState_SetStackProtection
      Src: /src/cpython/Modules/_testinternalcapi.c:3063,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3064,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi.c:3064,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testinternalcapi.c:3065,1
    - Dst: PyUnstable_ThreadState_ResetStackProtection
      Src: /src/cpython/Modules/_testinternalcapi.c:3068,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3069,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3043
        line_start: 3043
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (size > _PyOS_MIN_STACK_SIZE)
      pos:
        line_end: 3055
        line_start: 3055
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyUnstable_ThreadState_SetStackProtection(tstate, start, size) ==
        -1)
      pos:
        line_end: 3062
        line_start: 3062
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (ts->c_stack_init_base == init_base)
      pos:
        line_end: 3068
        line_start: 3068
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (ts->c_stack_init_top == init_top)
      pos:
        line_end: 3069
        line_start: 3069
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (PyErr_ExceptionMatches(PyExc_ValueError))
      pos:
        line_end: 3063
        line_start: 3063
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3073
      start: 3039
    functionDepth: 2
    functionLinenumber: 3039
    functionLinenumberEnd: 3073
    functionName: test_threadstate_set_stack_protection
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - check_threadstate_set_stack_protection
    - PyThreadState_GET
    - PyUnstable_ThreadState_SetStackProtection
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - PyUnstable_ThreadState_ResetStackProtection
    - _Py_get_machine_stack_pointer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_threadstate_set_stack_protection(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:3080,1
    - Dst: Py_NewInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:3087,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3088,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:3089,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3090,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3090,1
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testinternalcapi.c:3094,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3095,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3096,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3096,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testinternalcapi.c:3100,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3101,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3101,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:3104,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:3105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_GuardCountdown(interp) == 0)
      pos:
        line_end: 3089
        line_start: 3089
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (interp_tstate != NULL)
      pos:
        line_end: 3087
        line_start: 3087
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (guards[i] != 0)
      pos:
        line_end: 3094
        line_start: 3094
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == i + 1)
      pos:
        line_end: 3095
        line_start: 3095
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == (NUM_GUARDS - i -
        1))
      pos:
        line_end: 3100
        line_start: 3100
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3107
      start: 3077
    functionDepth: 1
    functionLinenumber: 3077
    functionLinenumberEnd: 3107
    functionName: test_interp_guard_countdown
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterGuard_FromCurrent
    - PyThreadState_Swap
    - PyInterpreterState_Get
    - Py_NewInterpreter
    - _PyInterpreterState_GuardCountdown
    - PyInterpreterGuard_Close
    - assert
    - Py_EndInterpreter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_interp_guard_countdown(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:3112,1
    - Dst: PyInterpreterView_FromCurrent
      Src: /src/cpython/Modules/_testinternalcapi.c:3113,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3117,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3117,1
    - Dst: PyInterpreterGuard_FromView
      Src: /src/cpython/Modules/_testinternalcapi.c:3122,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3123,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3124,1
    - Dst: _PyInterpreterGuard_GetInterpreter
      Src: /src/cpython/Modules/_testinternalcapi.c:3124,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3125,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3125,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testinternalcapi.c:3129,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3130,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3130,1
    - Dst: PyInterpreterView_Close
      Src: /src/cpython/Modules/_testinternalcapi.c:3133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_GuardCountdown(interp) == 0)
      pos:
        line_end: 3116
        line_start: 3116
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (guards[i] != 0)
      pos:
        line_end: 3122
        line_start: 3122
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterGuard_GetInterpreter(guards[i]) == interp)
      pos:
        line_end: 3123
        line_start: 3123
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == i + 1)
      pos:
        line_end: 3124
        line_start: 3124
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == (NUM_GUARDS - i -
        1))
      pos:
        line_end: 3129
        line_start: 3129
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3135
      start: 3109
    functionDepth: 1
    functionLinenumber: 3109
    functionLinenumberEnd: 3135
    functionName: test_interp_view_countdown
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterView_FromCurrent
    - PyInterpreterView_Close
    - PyInterpreterState_Get
    - PyInterpreterGuard_FromView
    - _PyInterpreterState_GuardCountdown
    - PyInterpreterGuard_Close
    - assert
    - _PyInterpreterGuard_GetInterpreter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_interp_view_countdown(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi.c:3144,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Modules/_testinternalcapi.c:3146,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3148,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi.c:3148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3147
        line_start: 3147
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3150
      start: 3139
    functionDepth: 1
    functionLinenumber: 3139
    functionLinenumberEnd: 3150
    functionName: _pyerr_setkeyerror
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetKeyError
    - PyErr_Occurred
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pyerr_setkeyerror(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:3157,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3158,1
    - Dst: PyInterpreterView_FromCurrent
      Src: /src/cpython/Modules/_testinternalcapi.c:3159,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3160,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3163,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:3163,1
    - Dst: PyThreadState_EnsureFromView
      Src: /src/cpython/Modules/_testinternalcapi.c:3164,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3165,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3166,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3166,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testinternalcapi.c:3167,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3168,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3168,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3169,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:3169,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:3174,1
    - Dst: PyThreadState_EnsureFromView
      Src: /src/cpython/Modules/_testinternalcapi.c:3176,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3177,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3177,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3178,1
    - Dst: PyThreadState_Release
      Src: /src/cpython/Modules/_testinternalcapi.c:3179,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3180,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3180,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3181,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi.c:3181,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Modules/_testinternalcapi.c:3183,1
    - Dst: PyInterpreterGuard_FromCurrent
      Src: /src/cpython/Modules/_testinternalcapi.c:3189,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3190,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3191,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3191,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Modules/_testinternalcapi.c:3192,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3193,1
    - Dst: _PyInterpreterState_GuardCountdown
      Src: /src/cpython/Modules/_testinternalcapi.c:3193,1
    - Dst: PyInterpreterView_Close
      Src: /src/cpython/Modules/_testinternalcapi.c:3195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_GuardCountdown(interp) == 0)
      pos:
        line_end: 3167
        line_start: 3167
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (t2 != NULL)
      pos:
        line_end: 3177
        line_start: 3177
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (g != NULL)
      pos:
        line_end: 3189
        line_start: 3189
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == 0)
      pos:
        line_end: 3192
        line_start: 3192
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyThreadState_GET() != NULL)
      pos:
        line_end: 3162
        line_start: 3162
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (view != NULL)
      pos:
        line_end: 3159
        line_start: 3159
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == 1)
      pos:
        line_end: 3176
        line_start: 3176
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyThreadState_GET() == NULL)
      pos:
        line_end: 3180
        line_start: 3180
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == 1)
      pos:
        line_end: 3190
        line_start: 3190
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (t1 != NULL)
      pos:
        line_end: 3164
        line_start: 3164
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyThreadState_GET() != NULL)
      pos:
        line_end: 3168
        line_start: 3168
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == 0)
      pos:
        line_end: 3179
        line_start: 3179
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (interp != NULL)
      pos:
        line_end: 3157
        line_start: 3157
        source_file: /src/cpython/Modules/_testinternalcapi.c
    - condition: (_PyInterpreterState_GuardCountdown(interp) == 1)
      pos:
        line_end: 3165
        line_start: 3165
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3197
      start: 3152
    functionDepth: 1
    functionLinenumber: 3152
    functionLinenumberEnd: 3197
    functionName: test_thread_state_ensure_from_view_interp_switch
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyInterpreterView_FromCurrent
    - PyInterpreterGuard_FromCurrent
    - PyInterpreterView_Close
    - PyThreadState_Swap
    - _PyInterpreterState_GET
    - _PyThreadState_GET
    - _PyInterpreterState_GuardCountdown
    - PyInterpreterGuard_Close
    - assert
    - PyThreadState_EnsureFromView
    - PyThreadState_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state_ensure_from_view_interp_switch(PyObject *self, PyObject *unused)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi.c:3335,1
    - Dst: _PyTestInternalCapi_Init_Lock
      Src: /src/cpython/Modules/_testinternalcapi.c:3337,1
    - Dst: _PyTestInternalCapi_Init_PyTime
      Src: /src/cpython/Modules/_testinternalcapi.c:3340,1
    - Dst: _PyTestInternalCapi_Init_Set
      Src: /src/cpython/Modules/_testinternalcapi.c:3343,1
    - Dst: _PyTestInternalCapi_Init_Complex
      Src: /src/cpython/Modules/_testinternalcapi.c:3346,1
    - Dst: _PyTestInternalCapi_Init_CriticalSection
      Src: /src/cpython/Modules/_testinternalcapi.c:3349,1
    - Dst: _PyTestInternalCapi_Init_Tuple
      Src: /src/cpython/Modules/_testinternalcapi.c:3352,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3361,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:3362,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3366,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:3367,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3371,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:3372,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3376,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi.c:3377,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3383,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_testinternalcapi.c:3384,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3391,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:3392,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3396,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:3397,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3401,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:3402,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testinternalcapi.c:3406,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi.c:3407,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testinternalcapi.c:3411,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testinternalcapi.c:3416,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3332
    functionDepth: 1
    functionLinenumber: 3332
    functionLinenumberEnd: 3422
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _PyTestInternalCapi_Init_Lock
    - _PyTestInternalCapi_Init_Complex
    - PyLong_FromLong
    - _PyTestInternalCapi_Init_Tuple
    - PyModule_AddIntMacro
    - PyInterpreterState_Get
    - _PyTestInternalCapi_Init_PyTime
    - _PyTestInternalCapi_Init_CriticalSection
    - PyLong_FromSsize_t
    - PyModule_Add
    - PyLong_FromUnsignedLong
    - _PyTestInternalCapi_Init_Set
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:3437,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3438,1
    - Dst: traverse_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:3439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3437
        line_start: 3437
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3441
      start: 3434
    functionDepth: 0
    functionLinenumber: 3434
    functionLinenumberEnd: 3441
    functionName: module_traverse
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - traverse_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:3446,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3447,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:3448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3446
        line_start: 3446
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3450
      start: 3443
    functionDepth: 0
    functionLinenumber: 3443
    functionLinenumberEnd: 3450
    functionName: module_clear
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 14
    functionsReached:
    - get_module_state
    - clear_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:3455,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi.c:3456,1
    - Dst: clear_module_state
      Src: /src/cpython/Modules/_testinternalcapi.c:3457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 3455
        line_start: 3455
        source_file: /src/cpython/Modules/_testinternalcapi.c
    constantsTouched: []
    func_position:
      end: 3458
      start: 3452
    functionDepth: 0
    functionLinenumber: 3452
    functionLinenumberEnd: 3458
    functionName: module_free
    functionSourceFile: /src/cpython/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - clear_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:3476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3477
    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: PyLong_FromInt64
      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:
    - PyLong_FromInt64
    - 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:
    - _PyTimeFraction_Mul
    - PyErr_SetString
    - _PyTimeFraction_Resolution
    - clock
    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_AsInt
    - PyLong_AsLongLong
    - PyLong_AsLong
    - Py_BUILD_ASSERT
    - PyErr_Format
    - PyErr_Occurred
    - _PyType_Name
    - 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:
    - PyErr_SetFromErrno
    - PyFloat_FromDouble
    - clock_gettime
    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: PyLong_FromInt64
      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:
    - PyLong_FromInt64
    - _PyTime_FromTimespec
    - PyErr_SetFromErrno
    - clock_gettime
    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:
    - _PyTime_FromSecondsObject
    - clock_settime
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    - _PyTime_AsTimespec
    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: PyLong_AsInt64
      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:
    - PyLong_AsInt64
    - clock_settime
    - PyArg_ParseTuple
    - 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:
    - PyArg_ParseTuple
    - clock_getres
    - PyErr_SetFromErrno
    - PyFloat_FromDouble
    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:
    - PyLong_FromLong
    - pthread_getcpuclockid
    - PyArg_ParseTuple
    - PyErr_SetFromErrno
    - __msan_unpoison
    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
    - _PyTime_FromSecondsObject
    - PyErr_SetString
    - pysleep
    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:
    - PyUnicode_DecodeLocale
    - SET
    - PyStructSequence_New
    - _PyLong_FromTime_t
    - SET_ITEM
    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: 73
    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:
    - PyArg_ParseTuple
    - _PyTime_ObjectToTime_t
    - time
    linkageType: ''
    returnType: int
    signature: int parse_time_t_args(PyObject *args, const char *format, time_t *pwhen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_t_args
      Src: /src/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:
    - parse_time_t_args
    - _PyTime_gmtime
    - 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:
    - parse_time_t_args
    - tmtotuple
    - _PyTime_localtime
    - strftime
    - get_time_state
    - timegm
    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:
    - strcmp
    - Py_IS_TYPE
    - PyErr_SetString
    - PyUnicode_AsUTF8
    - PyLong_AsLong
    - memset
    - PyStructSequence_GET_ITEM
    - PyTuple_Check
    - PyErr_Occurred
    - PyArg_ParseTuple
    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: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:826,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/timemodule.c:828,1
    - Dst: format_time
      Src: /src/cpython/Modules/timemodule.c:836,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:841,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/timemodule.c:855,1
    - Dst: PyUnicode_DecodeLocaleAndSize
      Src: /src/cpython/Modules/timemodule.c:857,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 43
    argCount: 5
    argNames:
    - outbuf
    - bufsize
    - format
    - fmtlen
    - tm
    argTypes:
    - time_char**
    - size_t*
    - time_char*
    - size_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 860
    functionName: time_strftime1
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - wcschr
    - PyErr_NoMemory
    - PyUnicode_DecodeLocaleAndSize
    - PyMem_Realloc
    - PyErr_SetString
    - strchr
    - PyMem_Free
    - format_time
    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:872,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/timemodule.c:874,1
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:877,1
    - Dst: time
      Src: /src/cpython/Modules/timemodule.c:879,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:880,1
    - Dst: gettmarg
      Src: /src/cpython/Modules/timemodule.c:883,1
    - Dst: checktm
      Src: /src/cpython/Modules/timemodule.c:885,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:897,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/timemodule.c:911,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/timemodule.c:913,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/timemodule.c:916,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/timemodule.c:918,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/timemodule.c:921,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/timemodule.c:929,1
    - Dst: time_strftime1
      Src: /src/cpython/Modules/timemodule.c:937,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/timemodule.c:942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:946,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/timemodule.c:951,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/timemodule.c:956,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:961,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:962,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/timemodule.c:963,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:965,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/timemodule.c:966,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/timemodule.c:967,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 73
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 969
    functionName: time_strftime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - checktm
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_WriteStr
    - gettmarg
    - PyErr_NoMemory
    - PyUnicode_READ_CHAR
    - PyUnicodeWriter_WriteSubstring
    - PyMem_Free
    - PyMem_Malloc
    - PyArg_ParseTuple
    - PyUnicodeWriter_Create
    - time
    - PyUnicodeWriter_Discard
    - PyErr_SetString
    - time_strftime1
    - Py_DECREF
    - _PyTime_localtime
    - memset
    - PyUnicode_GET_LENGTH
    - get_time_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_strftime(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/timemodule.c:987,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/timemodule.c:992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 995
    functionName: time_strptime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_strptime(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/timemodule.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeptr
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1025
    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:1033,1
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:1036,1
    - Dst: time
      Src: /src/cpython/Modules/timemodule.c:1038,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:1039,1
    - Dst: gettmarg
      Src: /src/cpython/Modules/timemodule.c:1042,1
    - Dst: checktm
      Src: /src/cpython/Modules/timemodule.c:1044,1
    - Dst: _asctime
      Src: /src/cpython/Modules/timemodule.c:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1049
    functionName: time_asctime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - gettmarg
    - _asctime
    - time
    - checktm
    - _PyTime_localtime
    - get_time_state
    - PyArg_UnpackTuple
    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:1063,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:1065,1
    - Dst: _asctime
      Src: /src/cpython/Modules/timemodule.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1068
    functionName: time_ctime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - parse_time_t_args
    - _PyTime_localtime
    - _asctime
    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:1084,1
    - Dst: gettmarg
      Src: /src/cpython/Modules/timemodule.c:1085,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1099,1
    - Dst: mktime
      Src: /src/cpython/Modules/timemodule.c:1121,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1130,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/timemodule.c:1145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - module
    - tm_tuple
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1146
    functionName: time_mktime
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - gettmarg
    - mktime
    - PyFloat_FromDouble
    - PyErr_SetString
    - get_time_state
    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:1165,1
    - Dst: tzset
      Src: /src/cpython/Modules/timemodule.c:1171,1
    - Dst: init_timezone
      Src: /src/cpython/Modules/timemodule.c:1175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:1176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:1179,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/timemodule.c:1180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1184
    functionName: time_tzset
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - tzset
    - init_timezone
    - PyErr_Occurred
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_tzset(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/timemodule.c:1205,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1201
    functionDepth: 2
    functionLinenumber: 1201
    functionLinenumberEnd: 1209
    functionName: time_monotonic
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyFloat_FromPyTime
    - PyTime_Monotonic
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_monotonic(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/timemodule.c:1220,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/timemodule.c:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1224
    functionName: time_monotonic_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - 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:1236,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:1239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1232
    functionDepth: 2
    functionLinenumber: 1232
    functionLinenumberEnd: 1240
    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:1252,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/timemodule.c:1255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1256
    functionName: time_perf_counter_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - PyTime_PerfCounter
    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:1273,1
    - Dst: _PyTimeFraction_Resolution
      Src: /src/cpython/Modules/timemodule.c:1279,1
    - Dst: _PyTimeFraction_Mul
      Src: /src/cpython/Modules/timemodule.c:1285,1
    - Dst: _PyTimeFraction_Mul
      Src: /src/cpython/Modules/timemodule.c:1286,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: 1289
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1289
    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:1304,1
    - Dst: GetProcessTimes
      Src: /src/cpython/Modules/timemodule.c:1305,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:1308,1
    - Dst: clock_gettime
      Src: /src/cpython/Modules/timemodule.c:1354,1
    - Dst: clock_getres
      Src: /src/cpython/Modules/timemodule.c:1360,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:1361,1
    - Dst: _PyTime_FromTimespec
      Src: /src/cpython/Modules/timemodule.c:1367,1
    - Dst: getrusage
      Src: /src/cpython/Modules/timemodule.c:1379,1
    - Dst: _PyTime_FromTimeval
      Src: /src/cpython/Modules/timemodule.c:1389,1
    - Dst: _PyTime_FromTimeval
      Src: /src/cpython/Modules/timemodule.c:1392,1
    - Dst: process_time_times
      Src: /src/cpython/Modules/timemodule.c:1405,1
    - Dst: py_clock
      Src: /src/cpython/Modules/timemodule.c:1416,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: 1418
      start: 1293
    functionDepth: 2
    functionLinenumber: 1293
    functionLinenumberEnd: 1418
    functionName: py_process_time
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - PyErr_SetFromWindowsErr
    - py_clock
    - getrusage
    - _PyTime_FromTimeval
    - clock_gettime
    - _PyTime_FromTimespec
    - clock_getres
    - PyErr_SetFromErrno
    - process_time_times
    - GetProcessTimes
    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:1423,1
    - Dst: py_process_time
      Src: /src/cpython/Modules/timemodule.c:1425,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:1428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1420
    functionDepth: 3
    functionLinenumber: 1420
    functionLinenumberEnd: 1429
    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:1439,1
    - Dst: py_process_time
      Src: /src/cpython/Modules/timemodule.c:1441,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/timemodule.c:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1436
    functionDepth: 3
    functionLinenumber: 1436
    functionLinenumberEnd: 1445
    functionName: time_process_time_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - 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:1465,1
    - Dst: GetThreadTimes
      Src: /src/cpython/Modules/timemodule.c:1466,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:1469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1491
    functionName: _PyTime_GetThreadTimeWithInfo
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - GetCurrentThread
    - PyErr_SetFromWindowsErr
    - GetThreadTimes
    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:1502,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:1503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1515
    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:1530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1532
    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:1562,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:1563,1
    - Dst: clock_getres
      Src: /src/cpython/Modules/timemodule.c:1571,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:1572,1
    - Dst: _PyTime_FromTimespec
      Src: /src/cpython/Modules/timemodule.c:1578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1582
    functionName: _PyTime_GetThreadTimeWithInfo
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - clock_getres
    - _PyTime_FromTimespec
    - PyErr_SetFromErrno
    - clock_gettime
    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:1599,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/cpython/Modules/timemodule.c:1602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1603
    functionName: time_thread_time
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetThreadTimeWithInfo
    - _PyFloat_FromPyTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_thread_time(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/cpython/Modules/timemodule.c:1614,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/timemodule.c:1617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1610
    functionDepth: 2
    functionLinenumber: 1610
    functionLinenumberEnd: 1618
    functionName: time_thread_time_ns
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - _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:1641,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1657,1
    - Dst: _PyTime_TimeWithInfo
      Src: /src/cpython/Modules/timemodule.c:1658,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1662,1
    - Dst: _PyTime_MonotonicWithInfo
      Src: /src/cpython/Modules/timemodule.c:1663,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1667,1
    - Dst: _PyTime_PerfCounterWithInfo
      Src: /src/cpython/Modules/timemodule.c:1668,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1672,1
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:1673,1
    - Dst: py_process_time
      Src: /src/cpython/Modules/timemodule.c:1674,1
    - Dst: strcmp
      Src: /src/cpython/Modules/timemodule.c:1679,1
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/cpython/Modules/timemodule.c:1684,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1689,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1696,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1633
    functionDepth: 3
    functionLinenumber: 1633
    functionLinenumberEnd: 1698
    functionName: time_get_clock_info
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    - get_time_state
    - _PyTime_PerfCounterWithInfo
    - PyErr_SetString
    - _PyTime_TimeWithInfo
    - _PyTime_GetThreadTimeWithInfo
    - _PyTime_MonotonicWithInfo
    - PyArg_ParseTuple
    - py_process_time
    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:1766,1
    - Dst: tzset
      Src: /src/cpython/Modules/timemodule.c:1768,1
    - Dst: strftime
      Src: /src/cpython/Modules/timemodule.c:1769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - zone
    - n
    - p
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1762
    functionDepth: 0
    functionLinenumber: 1762
    functionLinenumberEnd: 1771
    functionName: get_zone
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - tzset
    - strncpy
    - strftime
    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:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1781
    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:1793,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/timemodule.c:1793,1
    - Dst: tzset
      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: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1820,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1822,1
    - Dst: GetTimeZoneInformation
      Src: /src/cpython/Modules/timemodule.c:1825,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/timemodule.c:1826,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/timemodule.c:1830,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:1832,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/timemodule.c:1836,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Modules/timemodule.c:1840,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/timemodule.c:1842,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/timemodule.c:1846,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/timemodule.c:1846,1
    - Dst: time
      Src: /src/cpython/Modules/timemodule.c:1855,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:1856,1
    - Dst: get_zone
      Src: /src/cpython/Modules/timemodule.c:1857,1
    - Dst: get_gmtoff
      Src: /src/cpython/Modules/timemodule.c:1858,1
    - Dst: _PyTime_localtime
      Src: /src/cpython/Modules/timemodule.c:1861,1
    - Dst: get_zone
      Src: /src/cpython/Modules/timemodule.c:1862,1
    - Dst: get_gmtoff
      Src: /src/cpython/Modules/timemodule.c:1863,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:1872,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1881,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1882,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1883,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/timemodule.c:1884,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1886,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1887,1
    - Dst: ADD_INT
      Src: /src/cpython/Modules/timemodule.c:1888,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/timemodule.c:1889,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/timemodule.c:1891,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/timemodule.c:1897,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1792
        line_start: 1792
        source_file: /src/cpython/Modules/timemodule.c
    constantsTouched: []
    func_position:
      end: 1901
      start: 1784
    functionDepth: 2
    functionLinenumber: 1784
    functionLinenumberEnd: 1901
    functionName: init_timezone
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromWideChar
    - PyUnicode_DecodeLocale
    - tzset
    - time
    - PyErr_SetString
    - get_gmtoff
    - Py_BuildValue
    - _PyTime_localtime
    - get_zone
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyModule_Add
    - GetTimeZoneInformation
    - ADD_INT
    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: 1792
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1792
    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:1983,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/timemodule.c:1988,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:1993,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:1996,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:1999,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:2002,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:2005,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/timemodule.c:2014,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:2016,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Modules/timemodule.c:2019,1
    - Dst: init_timezone
      Src: /src/cpython/Modules/timemodule.c:2025,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2033,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2038,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2043,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2048,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2053,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2058,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2063,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2068,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2073,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2078,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2083,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2088,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/timemodule.c:2093,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/timemodule.c:2101,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/timemodule.c:2106,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/timemodule.c:2110,1
    - Dst: gmtime_r
      Src: /src/cpython/Modules/timemodule.c:2117,1
    - Dst: CreateWaitableTimerExW
      Src: /src/cpython/Modules/timemodule.c:2124,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/timemodule.c:2133,1
    - Dst: _Py_GetTicksPerSecond
      Src: /src/cpython/Modules/timemodule.c:2141,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/timemodule.c:2142,1
    - Dst: _PyTimeFraction_Set
      Src: /src/cpython/Modules/timemodule.c:2146,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/timemodule.c:2148,1
    - Dst: _PyTimeFraction_Set
      Src: /src/cpython/Modules/timemodule.c:2154,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/timemodule.c:2156,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 108
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 1980
    functionDepth: 3
    functionLinenumber: 1980
    functionLinenumberEnd: 2162
    functionName: time_exec
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - get_time_state
    - PyModule_AddIntMacro
    - PyErr_SetString
    - init_timezone
    - PyModule_GetDict
    - PyStructSequence_NewType
    - CloseHandle
    - _PyTimeFraction_Set
    - CreateWaitableTimerExW
    - PyErr_Format
    - PyDict_PopString
    - gmtime_r
    - _Py_GetTicksPerSecond
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int time_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_time_state
      Src: /src/cpython/Modules/timemodule.c:2168,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/timemodule.c:2169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2165
    functionDepth: 2
    functionLinenumber: 2165
    functionLinenumberEnd: 2171
    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:2177,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/timemodule.c:2178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2174
    functionDepth: 2
    functionLinenumber: 2174
    functionLinenumberEnd: 2180
    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:2186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2183
    functionDepth: 3
    functionLinenumber: 2183
    functionLinenumberEnd: 2187
    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:2213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2214
    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:2223,1
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/timemodule.c:2236,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/timemodule.c:2241,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/timemodule.c:2250,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/timemodule.c:2254,1
    - Dst: clock_nanosleep
      Src: /src/cpython/Modules/timemodule.c:2262,1
    - Dst: nanosleep
      Src: /src/cpython/Modules/timemodule.c:2265,1
    - Dst: select
      Src: /src/cpython/Modules/timemodule.c:2268,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/timemodule.c:2279,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/timemodule.c:2284,1
    - Dst: PyTime_Monotonic
      Src: /src/cpython/Modules/timemodule.c:2289,1
    - Dst: _PyTime_As100Nanoseconds
      Src: /src/cpython/Modules/timemodule.c:2302,1
    - Dst: assert
      Src: /src/cpython/Modules/timemodule.c:2319,1
    - Dst: CreateWaitableTimerExW
      Src: /src/cpython/Modules/timemodule.c:2323,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:2326,1
    - Dst: SetWaitableTimerEx
      Src: /src/cpython/Modules/timemodule.c:2330,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:2336,1
    - Dst: _PyOS_IsMainThread
      Src: /src/cpython/Modules/timemodule.c:2342,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/timemodule.c:2343,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/timemodule.c:2347,1
    - Dst: ResetEvent
      Src: /src/cpython/Modules/timemodule.c:2350,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/timemodule.c:2356,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/timemodule.c:2356,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:2364,1
    - Dst: assert
      Src: /src/cpython/Modules/timemodule.c:2373,1
    - Dst: WaitForSingleObject
      Src: /src/cpython/Modules/timemodule.c:2381,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/timemodule.c:2385,1
    - Dst: assert
      Src: /src/cpython/Modules/timemodule.c:2389,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/timemodule.c:2393,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/timemodule.c:2397,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - PyTime_t
    assertStmts:
    - condition: (timeout >= 0)
      pos:
        line_end: 2222
        line_start: 2222
        source_file: /src/cpython/Modules/timemodule.c
    - condition: (rc == WAIT_OBJECT_0)
      pos:
        line_end: 2388
        line_start: 2388
        source_file: /src/cpython/Modules/timemodule.c
    - condition: (sizeof(relative_timeout) == sizeof(timeout_100ns))
      pos:
        line_end: 2318
        line_start: 2318
        source_file: /src/cpython/Modules/timemodule.c
    - condition: (rc == (WAIT_OBJECT_0 + 1))
      pos:
        line_end: 2372
        line_start: 2372
        source_file: /src/cpython/Modules/timemodule.c
    constantsTouched: []
    func_position:
      end: 2400
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2400
    functionName: pysleep
    functionSourceFile: /src/cpython/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - clock_nanosleep
    - _PyTime_As100Nanoseconds
    - assert
    - PyErr_SetFromWindowsErr
    - _PyOS_SigintEvent
    - PyTime_Monotonic
    - _PyTime_AsTimespec
    - nanosleep
    - Py_ARRAY_LENGTH
    - ResetEvent
    - WaitForSingleObject
    - _PyTime_AsTimeval
    - CloseHandle
    - CreateWaitableTimerExW
    - WaitForMultipleObjects
    - select
    - PyErr_CheckSignals
    - SetWaitableTimerEx
    - _PyOS_IsMainThread
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int pysleep(PyTime_t timeout)
  - 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: XxoObject_CAST
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XxoObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited_3_13.c:105,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/xxlimited_3_13.c:110,1
    - Dst: memset
      Src: /src/cpython/Modules/xxlimited_3_13.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 118
    functionName: newXxoObject
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - PyModule_GetState
    - memset
    linkageType: ''
    returnType: XxoObject
    signature: 'XxoObject *

      newXxoObject(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited_3_13.c:131,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited_3_13.c:131,1
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited_3_13.c:134,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited_3_13.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: Xxo_traverse
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - 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_3_13.c:143,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited_3_13.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: Xxo_clear
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.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_3_13.c:153,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited_3_13.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: Xxo_finalize
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 1
    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_3_13.c:161,1
    - Dst: Xxo_finalize
      Src: /src/cpython/Modules/xxlimited_3_13.c:162,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/xxlimited_3_13.c:163,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/xxlimited_3_13.c:164,1
    - Dst: free
      Src: /src/cpython/Modules/xxlimited_3_13.c:165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited_3_13.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: Xxo_dealloc
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 0
    functionsReached:
    - free
    - Xxo_finalize
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyType_GetSlot
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Xxo_dealloc(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited_3_13.c:176,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/xxlimited_3_13.c:178,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited_3_13.c:180,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/xxlimited_3_13.c:182,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/xxlimited_3_13.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 189
    functionName: Xxo_getattro
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - XxoObject_CAST
    - PyErr_Occurred
    - Py_NewRef
    - PyDict_GetItemWithError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_getattro(PyObject *op, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XxoObject_CAST
      Src: /src/cpython/Modules/xxlimited_3_13.c:195,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/xxlimited_3_13.c:198,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/xxlimited_3_13.c:205,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/xxlimited_3_13.c:206,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited_3_13.c:207,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/xxlimited_3_13.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - op
    - name
    - v
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 217
    functionName: Xxo_setattro
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - XxoObject_CAST
    - PyDict_SetItem
    - PyDict_DelItem
    - PyErr_ExceptionMatches
    - PyDict_New
    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_3_13.c:227,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited_3_13.c:228,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/xxlimited_3_13.c:232,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/xxlimited_3_13.c:239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited_3_13.c:240,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/xxlimited_3_13.c:244,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited_3_13.c:245,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/xxlimited_3_13.c:248,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: 249
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 249
    functionName: Xxo_demo
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_Length
    - Py_NewRef
    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_3_13.c:265,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/xxlimited_3_13.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: Xxo_getbuffer
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.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_3_13.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: Xxo_releasebuffer
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.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_3_13.c:285,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/xxlimited_3_13.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: Xxo_get_x_exports
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.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_3_13.c:350,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/xxlimited_3_13.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: xx_foo
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_foo(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newXxoObject
      Src: /src/cpython/Modules/xxlimited_3_13.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(unused)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 368
    functionName: xx_new
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.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_3_13.c:391,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/xxlimited_3_13.c:393,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited_3_13.c:397,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/xxlimited_3_13.c:401,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited_3_13.c:405,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/xxlimited_3_13.c:413,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/xxlimited_3_13.c:418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/xxlimited_3_13.c:421,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 424
    functionName: xx_modexec
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_GetState
    - PyType_FromModuleAndSpec
    - Py_DECREF
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int xx_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/xxlimited_3_13.c:456,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited_3_13.c:457,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/xxlimited_3_13.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 460
    functionName: xx_traverse
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.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_3_13.c:465,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited_3_13.c:466,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/xxlimited_3_13.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 469
    functionName: xx_clear
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - PyModule_GetState
    linkageType: ''
    returnType: int
    signature: int xx_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xx_clear
      Src: /src/cpython/Modules/xxlimited_3_13.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 476
    functionName: xx_free
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.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_3_13.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: PyInit_xxlimited_3_13
    functionSourceFile: /src/cpython/Modules/xxlimited_3_13.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_xxlimited_3_13(void)
  - 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:
    - Py_CLEAR
    - get_readline_state
    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:
    - Py_VISIT
    - get_readline_state
    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
    - PyState_FindModule
    - get_readline_state
    - PyErr_Clear
    - Py_DECREF
    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:
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - strcpy
    - encode
    - rl_parse_and_bind
    - PyMem_Free
    - PyMem_Malloc
    - Py_DECREF
    - PyBytes_GET_SIZE
    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: Py_DECREF
      Src: /src/cpython/Modules/readline.c:258,1
    - Dst: rl_read_init_file
      Src: /src/cpython/Modules/readline.c:261,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:262,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:268,1
    - Dst: rl_read_init_file
      Src: /src/cpython/Modules/readline.c:271,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/readline.c:274,1
    - Dst: disable_bracketed_paste
      Src: /src/cpython/Modules/readline.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - module
    - filename_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 277
    functionName: readline_read_init_file_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - disable_bracketed_paste
    - PySys_Audit
    - PyBytes_AS_STRING
    - Py_DECREF
    - rl_read_init_file
    - PyErr_SetFromErrno
    - PyUnicode_FSConverter
    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:299,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:302,1
    - Dst: read_history
      Src: /src/cpython/Modules/readline.c:305,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:306,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:310,1
    - Dst: read_history
      Src: /src/cpython/Modules/readline.c:313,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/readline.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - module
    - filename_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 318
    functionName: readline_read_history_file_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - read_history
    - PySys_Audit
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    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:344,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:346,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:348,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:356,1
    - Dst: write_history
      Src: /src/cpython/Modules/readline.c:360,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Modules/readline.c:361,1
    - Dst: history_truncate_file
      Src: /src/cpython/Modules/readline.c:363,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:364,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/readline.c:367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - module
    - filename_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 369
    functionName: readline_write_history_file_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - write_history
    - FT_ATOMIC_LOAD_INT_RELAXED
    - PySys_Audit
    - history_truncate_file
    - Py_XDECREF
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    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:394,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/readline.c:402,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:404,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:405,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:406,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/readline.c:414,1
    - Dst: append_history
      Src: /src/cpython/Modules/readline.c:418,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Modules/readline.c:420,1
    - Dst: history_truncate_file
      Src: /src/cpython/Modules/readline.c:422,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:423,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/readline.c:426,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - module
    - nelements
    - filename_obj
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 428
    functionName: readline_append_history_file_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT_RELAXED
    - PySys_Audit
    - PyErr_SetString
    - history_truncate_file
    - append_history
    - PyBytes_AS_STRING
    - Py_DECREF
    - Py_XDECREF
    - PyUnicode_FSConverter
    - PyErr_SetFromErrno
    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:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - length
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 452
    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:467,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 469
    functionName: readline_get_history_length_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - FT_ATOMIC_LOAD_INT_RELAXED
    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:477,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/readline.c:479,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/readline.c:480,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:480,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/readline.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - funcname
    - hook_var
    - function
    argTypes:
    - char*
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 489
    functionName: set_hook
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - Py_XSETREF
    - Py_CLEAR
    - PyErr_Format
    - Py_NewRef
    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:510,1
    - Dst: set_hook
      Src: /src/cpython/Modules/readline.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 527
    functionName: readline_set_completion_display_matches_hook_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - set_hook
    - get_readline_state
    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:546,1
    - Dst: set_hook
      Src: /src/cpython/Modules/readline.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: readline_set_startup_hook_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - set_hook
    - get_readline_state
    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:573,1
    - Dst: set_hook
      Src: /src/cpython/Modules/readline.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 576
    functionName: readline_set_pre_input_hook_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - set_hook
    - get_readline_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_set_pre_input_hook_impl(PyObject *module, PyObject *function)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_readline_state
      Src: /src/cpython/Modules/readline.c:590,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: readline_get_pre_input_hook_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - get_readline_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_pre_input_hook_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    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:627,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 629
    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:643,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 645
    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:664,1
    - Dst: strdup
      Src: /src/cpython/Modules/readline.c:671,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:672,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:674,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/readline.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 688
    functionName: readline_set_completer_delims_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - free
    - PyErr_NoMemory
    - encode
    - strdup
    - PyBytes_AS_STRING
    - Py_DECREF
    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:702,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - HIST_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 704
    functionName: _py_free_history_entry_lock_held
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - free_history_entry
    - free
    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:714,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:716,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - HIST_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 718
    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:739,1
    - Dst: remove_history
      Src: /src/cpython/Modules/readline.c:743,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/readline.c:745,1
    - Dst: _py_free_history_entry_lock_held
      Src: /src/cpython/Modules/readline.c:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - module
    - entry_number
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 753
    functionName: readline_remove_history_item_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    - _py_free_history_entry_lock_held
    - remove_history
    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:777,1
    - Dst: encode
      Src: /src/cpython/Modules/readline.c:781,1
    - Dst: replace_history_entry
      Src: /src/cpython/Modules/readline.c:785,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:788,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/readline.c:790,1
    - Dst: _py_free_history_entry_lock_held
      Src: /src/cpython/Modules/readline.c:796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - module
    - entry_number
    - line
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 798
    functionName: readline_replace_history_item_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - replace_history_entry
    - encode
    - PyErr_SetString
    - _py_free_history_entry_lock_held
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_DECREF
    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:816,1
    - Dst: add_history
      Src: /src/cpython/Modules/readline.c:820,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 823
    functionName: readline_add_history_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - add_history
    - Py_DECREF
    - PyBytes_AS_STRING
    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: 845
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 845
    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:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 862
    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:884,1
    - Dst: set_hook
      Src: /src/cpython/Modules/readline.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 886
    functionName: readline_set_completer_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - set_hook
    - get_readline_state
    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:898,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/readline.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 903
    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:913,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 922
    functionName: _py_get_history_length_lock_held
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - history_get_history_state
    - free
    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:947,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:961,1
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:962,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - module
    - idx
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: readline_get_history_item_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - history_get
    - _py_get_history_length_lock_held
    - decode
    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:981,1
    - Dst: _py_get_history_length_lock_held
      Src: /src/cpython/Modules/readline.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 982
    functionName: readline_get_current_history_length_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _py_get_history_length_lock_held
    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:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 998
    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:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1017
    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:1037,1
    - Dst: rl_insert_text
      Src: /src/cpython/Modules/readline.c:1041,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:1041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1044
    functionName: readline_insert_text_impl
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - Py_DECREF
    - rl_insert_text
    - PyBytes_AS_STRING
    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:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    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:1116,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/readline.c:1122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/readline.c:1123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1126,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/readline.c:1129,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1135
    functionName: on_hook
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Clear
    - PyErr_Occurred
    - PyObject_CallNoArgs
    - Py_DECREF
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int on_hook(PyObject *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/readline.c:1145,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1146,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1148,1
    - Dst: on_hook
      Src: /src/cpython/Modules/readline.c:1151,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(text)
    - Py_UNUSED
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1141
    functionDepth: 3
    functionLinenumber: 1141
    functionLinenumberEnd: 1154
    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:1165,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1166,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1168,1
    - Dst: on_hook
      Src: /src/cpython/Modules/readline.c:1171,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(text)
    - Py_UNUSED
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1161
    functionDepth: 3
    functionLinenumber: 1161
    functionLinenumberEnd: 1174
    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:1187,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1188,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1190,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/readline.c:1193,1
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:1197,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/readline.c:1200,1
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:1202,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/readline.c:1203,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/readline.c:1209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/readline.c:1209,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/readline.c:1212,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/readline.c:1216,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1217,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1218,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1220,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - matches
    - num_matches
    - max_length
    argTypes:
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1181
    functionDepth: 3
    functionLinenumber: 1181
    functionLinenumberEnd: 1221
    functionName: on_completion_display_matches_hook
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - decode
    - PyGILState_Ensure
    - PyGILState_Release
    - PyObject_CallFunction
    - Py_CLEAR
    - PyLong_AsLong
    - get_hook_module_state
    - PyList_New
    - PyErr_Occurred
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void on_completion_display_matches_hook(char **matches,\n                                   int
      num_matches, int max_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigwinch_ohandler
      Src: /src/cpython/Modules/readline.c:1235,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/readline.c:1240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1242
    functionName: readline_sigwinch_handler
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - sigwinch_ohandler
    linkageType: ''
    returnType: void
    signature: void readline_sigwinch_handler(int signum)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/readline.c:1251,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1252,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1254,1
    - Dst: decode
      Src: /src/cpython/Modules/readline.c:1260,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/readline.c:1261,1
    - Dst: encode
      Src: /src/cpython/Modules/readline.c:1268,1
    - Dst: strdup
      Src: /src/cpython/Modules/readline.c:1271,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/readline.c:1271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1274,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/readline.c:1277,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1278,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1280,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - text
    - state
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1285
    functionName: on_completion
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - decode
    - encode
    - PyGILState_Ensure
    - strdup
    - PyObject_CallFunction
    - PyGILState_Release
    - PyErr_Clear
    - get_hook_module_state
    - Py_XDECREF
    - PyBytes_AS_STRING
    - Py_DECREF
    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:1298,1
    - Dst: get_hook_module_state
      Src: /src/cpython/Modules/readline.c:1299,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Modules/readline.c:1309,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/readline.c:1314,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Modules/readline.c:1317,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/readline.c:1322,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1328,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/readline.c:1329,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:1330,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:1331,1
    - Dst: completion_matches
      Src: /src/cpython/Modules/readline.c:1333,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/readline.c:1334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1291
    functionDepth: 3
    functionLinenumber: 1291
    functionLinenumberEnd: 1336
    functionName: flex_complete
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - completion_matches
    - PyGILState_Ensure
    - PyGILState_Release
    - PyMem_RawFree
    - get_hook_module_state
    - Py_XDECREF
    - Py_DecodeLocale
    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:1345,1
    - Dst: setlocale
      Src: /src/cpython/Modules/readline.c:1345,1
    - Dst: rl_initialize
      Src: /src/cpython/Modules/readline.c:1358,1
    - Dst: add_history
      Src: /src/cpython/Modules/readline.c:1363,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:1364,1
    - Dst: add_history
      Src: /src/cpython/Modules/readline.c:1375,1
    - Dst: replace_history_entry
      Src: /src/cpython/Modules/readline.c:1376,1
    - Dst: _py_free_history_entry_lock_held
      Src: /src/cpython/Modules/readline.c:1377,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:1378,1
    - Dst: strcmp
      Src: /src/cpython/Modules/readline.c:1379,1
    - Dst: clear_history
      Src: /src/cpython/Modules/readline.c:1385,1
    - Dst: using_history
      Src: /src/cpython/Modules/readline.c:1387,1
    - Dst: rl_bind_key
      Src: /src/cpython/Modules/readline.c:1390,1
    - Dst: rl_bind_key_in_map
      Src: /src/cpython/Modules/readline.c:1392,1
    - Dst: rl_bind_key_in_map
      Src: /src/cpython/Modules/readline.c:1393,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/readline.c:1396,1
    - Dst: strdup
      Src: /src/cpython/Modules/readline.c:1407,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:1420,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/readline.c:1421,1
    - Dst: isatty
      Src: /src/cpython/Modules/readline.c:1425,1
    - Dst: rl_variable_bind
      Src: /src/cpython/Modules/readline.c:1434,1
    - Dst: rl_read_init_file
      Src: /src/cpython/Modules/readline.c:1444,1
    - Dst: rl_initialize
      Src: /src/cpython/Modules/readline.c:1446,1
    - Dst: disable_bracketed_paste
      Src: /src/cpython/Modules/readline.c:1448,1
    - Dst: RESTORE_LOCALE
      Src: /src/cpython/Modules/readline.c:1450,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - mod_state
    argTypes:
    - readlinestate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1452
    functionName: setup_readline
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - replace_history_entry
    - strcmp
    - setlocale
    - clear_history
    - add_history
    - history_get
    - using_history
    - rl_bind_key
    - RESTORE_LOCALE
    - strdup
    - isatty
    - _py_free_history_entry_lock_held
    - rl_read_init_file
    - rl_bind_key_in_map
    - disable_bracketed_paste
    - PyOS_setsig
    - rl_initialize
    - rl_variable_bind
    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:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1462
    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:1478,1
    - Dst: FD_ZERO
      Src: /src/cpython/Modules/readline.c:1479,1
    - Dst: rl_resize_terminal
      Src: /src/cpython/Modules/readline.c:1499,1
    - Dst: FD_SET
      Src: /src/cpython/Modules/readline.c:1502,1
    - Dst: fileno
      Src: /src/cpython/Modules/readline.c:1502,1
    - Dst: select
      Src: /src/cpython/Modules/readline.c:1504,1
    - Dst: fileno
      Src: /src/cpython/Modules/readline.c:1504,1
    - Dst: PyOS_InputHook
      Src: /src/cpython/Modules/readline.c:1507,1
    - Dst: rl_callback_read_char
      Src: /src/cpython/Modules/readline.c:1511,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Modules/readline.c:1515,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/readline.c:1516,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Modules/readline.c:1517,1
    - Dst: rl_free_line_state
      Src: /src/cpython/Modules/readline.c:1519,1
    - Dst: rl_callback_sigcleanup
      Src: /src/cpython/Modules/readline.c:1521,1
    - Dst: rl_cleanup_after_signal
      Src: /src/cpython/Modules/readline.c:1523,1
    - Dst: rl_callback_handler_remove
      Src: /src/cpython/Modules/readline.c:1524,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - prompt
    - signal
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1532
    functionName: readline_until_enter_or_signal
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - fileno
    - rl_free_line_state
    - rl_cleanup_after_signal
    - FD_ZERO
    - rl_callback_handler_install
    - PyErr_CheckSignals
    - rl_resize_terminal
    - FD_SET
    - rl_callback_sigcleanup
    - rl_callback_read_char
    - PyOS_InputHook
    - rl_callback_handler_remove
    - PyEval_SaveThread
    - select
    - PyEval_RestoreThread
    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:1543,1
    - Dst: setlocale
      Src: /src/cpython/Modules/readline.c:1543,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/readline.c:1545,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/cpython/Modules/readline.c:1546,1
    - Dst: rl_prep_terminal
      Src: /src/cpython/Modules/readline.c:1553,1
    - Dst: readline_until_enter_or_signal
      Src: /src/cpython/Modules/readline.c:1557,1
    - Dst: RESTORE_LOCALE
      Src: /src/cpython/Modules/readline.c:1561,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/readline.c:1567,1
    - Dst: RESTORE_LOCALE
      Src: /src/cpython/Modules/readline.c:1570,1
    - Dst: strlen
      Src: /src/cpython/Modules/readline.c:1575,1
    - Dst: _py_get_history_length_lock_held
      Src: /src/cpython/Modules/readline.c:1578,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:1583,1
    - Dst: history_get
      Src: /src/cpython/Modules/readline.c:1585,1
    - Dst: strcmp
      Src: /src/cpython/Modules/readline.c:1589,1
    - Dst: add_history
      Src: /src/cpython/Modules/readline.c:1590,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/readline.c:1595,1
    - Dst: memcpy
      Src: /src/cpython/Modules/readline.c:1597,1
    - Dst: free
      Src: /src/cpython/Modules/readline.c:1601,1
    - Dst: RESTORE_LOCALE
      Src: /src/cpython/Modules/readline.c:1602,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - sys_stdin
    - sys_stdout
    - prompt
    argTypes:
    - FILE*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1535
    functionDepth: 2
    functionLinenumber: 1535
    functionLinenumberEnd: 1604
    functionName: call_readline
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - add_history
    - history_get
    - strcmp
    - _py_get_history_length_lock_held
    - free
    - _Py_SetLocaleFromEnv
    - strdup
    - rl_prep_terminal
    - PyMem_RawMalloc
    - memcpy
    - setlocale
    - RESTORE_LOCALE
    - readline_until_enter_or_signal
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      call_readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyABIInfo_VAR
      Src: /src/cpython/Modules/readline.c:1631,1
    - Dst: PyABIInfo_Check
      Src: /src/cpython/Modules/readline.c:1632,1
    - Dst: strncmp
      Src: /src/cpython/Modules/readline.c:1640,1
    - Dst: strlen
      Src: /src/cpython/Modules/readline.c:1640,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/readline.c:1650,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/readline.c:1655,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/readline.c:1658,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/readline.c:1662,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/readline.c:1666,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/readline.c:1672,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/readline.c:1676,1
    - Dst: setup_readline
      Src: /src/cpython/Modules/readline.c:1681,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/readline.c:1682,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/readline.c:1685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/readline.c:1691,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1628
    functionDepth: 2
    functionLinenumber: 1628
    functionLinenumberEnd: 1693
    functionName: PyInit_readline
    functionSourceFile: /src/cpython/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyABIInfo_VAR
    - PyModule_AddIntConstant
    - PyModule_GetState
    - strncmp
    - PyUnstable_Module_SetGIL
    - PyErr_NoMemory
    - PyModule_AddStringConstant
    - setup_readline
    - strlen
    - PyABIInfo_Check
    - PyErr_Occurred
    - Py_DECREF
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - PyBuffer_Release
    - PyObject_GetBuffer
    - PyObject_CheckBuffer
    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:
    - assert
    - PyErr_SetString
    - PyErr_Occurred
    - PyErr_WarnEx
    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: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    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:59,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.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/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    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:68,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: get_thread_state_by_cls
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleByDef
    - get_thread_state
    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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    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:158,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    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:167,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - handle
    - state
    argTypes:
    - ThreadHandle*
    - ThreadHandleState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 170
    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:175,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 179
    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:184,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - handle
    - os_handle
    argTypes:
    - ThreadHandle*
    - PyThread_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 191
    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:196,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Modules/_threadmodule.c:197,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - state
    - handle
    argTypes:
    - thread_module_state*
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: add_to_shutdown_handles
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - HEAD_LOCK
    - llist_insert_tail
    - HEAD_UNLOCK
    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:204,1
    - Dst: llist_for_each_safe
      Src: /src/cpython/Modules/_threadmodule.c:206,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_threadmodule.c:207,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - thread_module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: clear_shutdown_handles
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - llist_for_each_safe
    - HEAD_LOCK
    - llist_remove
    - HEAD_UNLOCK
    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:215,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_threadmodule.c:217,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: remove_from_shutdown_handles
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - HEAD_LOCK
    - llist_remove
    - HEAD_UNLOCK
    linkageType: ''
    returnType: void
    signature: void remove_from_shutdown_handles(ThreadHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_threadmodule.c:226,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_threadmodule.c:228,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:240,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Modules/_threadmodule.c:241,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: ThreadHandle_new
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - llist_insert_tail
    - PyErr_NoMemory
    - HEAD_LOCK
    - PyMem_RawCalloc
    - HEAD_UNLOCK
    linkageType: ''
    returnType: ThreadHandle
    signature: 'ThreadHandle *

      ThreadHandle_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_threadmodule.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    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:260,1
    - Dst: fprintf
      Src: /src/cpython/Modules/_threadmodule.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 265
    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:273,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:278,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_threadmodule.c:280,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:282,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:284,1
    - Dst: detach_thread
      Src: /src/cpython/Modules/_threadmodule.c:290,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_threadmodule.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts:
    - condition: (self->shutdown_node.next == NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 295
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 295
    functionName: ThreadHandle_decref
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - detach_thread
    - _Py_atomic_add_ssize
    - HEAD_LOCK
    - llist_remove
    - HEAD_UNLOCK
    - PyMem_RawFree
    - 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:304,1
    - Dst: llist_for_each_safe
      Src: /src/cpython/Modules/_threadmodule.c:307,1
    - Dst: llist_data
      Src: /src/cpython/Modules/_threadmodule.c:308,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:325,1
    - Dst: llist_remove
      Src: /src/cpython/Modules/_threadmodule.c:326,1
    - Dst: remove_from_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _pythread_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 329
    functionName: _PyThread_AfterFork
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - llist_for_each_safe
    - remove_from_shutdown_handles
    - llist_remove
    - PyThread_get_thread_ident_ex
    - llist_data
    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:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:348,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:349,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:351,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_threadmodule.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - boot
    - decref
    argTypes:
    - struct bootstate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 353
    functionName: thread_bootstate_free
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_RawFree
    - ThreadHandle_decref
    - Py_XDECREF
    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:362,1
    - Dst: ThreadHandle_incref
      Src: /src/cpython/Modules/_threadmodule.c:366,1
    - Dst: _PyThreadState_MustExit
      Src: /src/cpython/Modules/_threadmodule.c:373,1
    - Dst: thread_bootstate_free
      Src: /src/cpython/Modules/_threadmodule.c:380,1
    - Dst: _PyThreadState_Bind
      Src: /src/cpython/Modules/_threadmodule.c:384,1
    - Dst: PyEval_AcquireThread
      Src: /src/cpython/Modules/_threadmodule.c:385,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_threadmodule.c:386,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_threadmodule.c:388,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_threadmodule.c:390,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_threadmodule.c:392,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:399,1
    - Dst: thread_bootstate_free
      Src: /src/cpython/Modules/_threadmodule.c:402,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_threadmodule.c:404,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_threadmodule.c:405,1
    - Dst: _PyThreadState_DeleteCurrent
      Src: /src/cpython/Modules/_threadmodule.c:406,1
    - Dst: remove_from_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:410,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:412,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - boot_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 419
    functionName: thread_run
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Clear
    - _PyEvent_Notify
    - ThreadHandle_decref
    - _PyThreadState_DeleteCurrent
    - thread_bootstate_free
    - ThreadHandle_incref
    - _PyThreadState_Bind
    - _Py_atomic_add_ssize
    - remove_from_shutdown_handles
    - _PyThreadState_MustExit
    - PyEvent_Wait
    - PyObject_Call
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - PyEval_AcquireThread
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void thread_run(void *boot_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:425,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:425,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:426,1
    - Dst: set_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:427,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: 424
        line_start: 424
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 429
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 429
    functionName: force_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - set_thread_handle_state
    - _PyEvent_Notify
    - 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:436,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:438,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:439,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:443,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_threadmodule.c:451,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_threadmodule.c:453,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_threadmodule.c:456,1
    - Dst: _PyThreadState_New
      Src: /src/cpython/Modules/_threadmodule.c:458,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_threadmodule.c:460,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:461,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_threadmodule.c:462,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:467,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_threadmodule.c:468,1
    - Dst: ThreadHandle_incref
      Src: /src/cpython/Modules/_threadmodule.c:470,1
    - Dst: PyThread_start_joinable_thread
      Src: /src/cpython/Modules/_threadmodule.c:475,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Modules/_threadmodule.c:476,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Modules/_threadmodule.c:477,1
    - Dst: thread_bootstate_free
      Src: /src/cpython/Modules/_threadmodule.c:478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:479,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:484,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:485,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:490,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:493,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_threadmodule.c:498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 5
    argNames:
    - self
    - func
    - args
    - kwargs
    - daemon
    argTypes:
    - ThreadHandle*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (self->state == THREAD_HANDLE_STARTING)
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 500
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 500
    functionName: ThreadHandle_start
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - thread_bootstate_free
    - PyErr_Occurred
    - assert
    - Py_XNewRef
    - PyThreadState_Clear
    - PyMutex_Unlock
    - PyErr_NoMemory
    - PyMem_RawFree
    - PyThreadState_Delete
    - PyMutex_Lock
    - ThreadHandle_incref
    - PyErr_SetString
    - _PyOnceFlag_CallOnce
    - _PyThreadState_New
    - Py_NewRef
    - _PyInterpreterState_GET
    - PyThread_start_joinable_thread
    - PyMem_RawMalloc
    linkageType: ''
    returnType: int
    signature: "int ThreadHandle_start(ThreadHandle *self, PyObject *func, PyObject
      *args,\n                   PyObject *kwargs, int daemon)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:506,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:506,1
    - Dst: ThreadHandle_get_os_handle
      Src: /src/cpython/Modules/_threadmodule.c:508,1
    - Dst: PyThread_join_thread
      Src: /src/cpython/Modules/_threadmodule.c:511,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:514,1
    - Dst: set_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:518,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: 505
        line_start: 505
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 520
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 520
    functionName: join_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 1
    functionsReached:
    - get_thread_handle_state
    - set_thread_handle_state
    - ThreadHandle_get_os_handle
    - PyErr_SetString
    - assert
    - PyThread_join_thread
    linkageType: ''
    returnType: int
    signature: int join_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 516
    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:525,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ThreadHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 531
    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:536,1
    - Dst: _PyEvent_IsSet
      Src: /src/cpython/Modules/_threadmodule.c:550,1
    - Dst: ThreadHandle_ident
      Src: /src/cpython/Modules/_threadmodule.c:551,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_threadmodule.c:551,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:553,1
    - Dst: Py_IsFinalizing
      Src: /src/cpython/Modules/_threadmodule.c:556,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:561,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/_threadmodule.c:568,1
    - Dst: PyEvent_WaitTimed
      Src: /src/cpython/Modules/_threadmodule.c:570,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_threadmodule.c:574,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/_threadmodule.c:574,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Modules/_threadmodule.c:579,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_threadmodule.c:589,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:592,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:592,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: 591
        line_start: 591
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 594
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 594
    functionName: ThreadHandle_join
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyDeadline_Init
    - get_thread_handle_state
    - check_started
    - _PyDeadline_Get
    - PyErr_SetString
    - Py_IsFinalizing
    - PyEvent_WaitTimed
    - _PyOnceFlag_CallOnce
    - Py_MAX
    - _PyEvent_IsSet
    - Py_MakePendingCalls
    - PyThread_get_thread_ident_ex
    - assert
    - ThreadHandle_ident
    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:600,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:600,1
    - Dst: detach_thread
      Src: /src/cpython/Modules/_threadmodule.c:601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:602,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_threadmodule.c:605,1
    - Dst: set_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:606,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: 599
        line_start: 599
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 608
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 608
    functionName: set_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - detach_thread
    - get_thread_handle_state
    - set_thread_handle_state
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int set_done(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_started
      Src: /src/cpython/Modules/_threadmodule.c:613,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_threadmodule.c:617,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:621,1
    - Dst: get_thread_handle_state
      Src: /src/cpython/Modules/_threadmodule.c:621,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: 620
        line_start: 620
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 623
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 623
    functionName: ThreadHandle_set_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - check_started
    - _PyOnceFlag_CallOnce
    - get_thread_handle_state
    - 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: 633
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 633
    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:637,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:643,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 652
    functionName: PyThreadHandleObject_new
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_decref
    - PyTypeObject*::tp_alloc
    - ThreadHandle_new
    linkageType: ''
    returnType: PyThreadHandleObject
    signature: 'PyThreadHandleObject *

      PyThreadHandleObject_new(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_new
      Src: /src/cpython/Modules/_threadmodule.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 658
    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: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:663,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_threadmodule.c:664,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:665,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:666,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 669
    functionName: PyThreadHandleObject_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_decref
    - PyThreadHandleObject_CAST
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyThreadHandleObject_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:674,1
    - Dst: ThreadHandle_ident
      Src: /src/cpython/Modules/_threadmodule.c:675,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_threadmodule.c:676,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 678
    functionName: PyThreadHandleObject_repr
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_ident
    - PyUnicode_FromFormat
    - PyThreadHandleObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadHandleObject_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:683,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:684,1
    - Dst: ThreadHandle_ident
      Src: /src/cpython/Modules/_threadmodule.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 685
    functionName: PyThreadHandleObject_get_ident
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_ident
    - PyLong_FromUnsignedLongLong
    - 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:690,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_threadmodule.c:693,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/_threadmodule.c:699,1
    - Dst: ThreadHandle_join
      Src: /src/cpython/Modules/_threadmodule.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 687
    functionDepth: 4
    functionLinenumber: 687
    functionLinenumberEnd: 709
    functionName: PyThreadHandleObject_join
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _PyTime_FromSecondsObject
    - ThreadHandle_join
    - PyThreadHandleObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadHandleObject_join(PyObject *op, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadHandleObject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:714,1
    - Dst: _PyEvent_IsSet
      Src: /src/cpython/Modules/_threadmodule.c:715,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_threadmodule.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 724
    functionName: PyThreadHandleObject_is_done
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyEvent_IsSet
    - _PyOnceFlag_CallOnce
    - 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:729,1
    - Dst: ThreadHandle_set_done
      Src: /src/cpython/Modules/_threadmodule.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 734
    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: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_threadmodule.c:771,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_threadmodule.c:772,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:773,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: lock_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void lock_dealloc(PyObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSeconds
      Src: /src/cpython/Modules/_threadmodule.c:784,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/cpython/Modules/_threadmodule.c:788,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:793,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:798,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Modules/_threadmodule.c:807,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:809,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - timeout_obj
    - blocking
    - timeout
    argTypes:
    - PyObject*
    - int
    - PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 815
    functionName: lock_acquire_parse_timeout
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - _PyTime_FromSecondsObject
    - _PyTime_AsMicroseconds
    - PyErr_SetString
    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:838,1
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Modules/_threadmodule.c:842,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:846,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:846,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:849,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - blocking
    - timeoutobj
    argTypes:
    - lockobject*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 854
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 854
    functionName: _thread_lock_acquire_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - lock_acquire_parse_timeout
    - _PyMutex_LockTimed
    - PyBool_FromLong
    - PyErr_Occurred
    - 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:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - blocking
    - timeoutobj
    argTypes:
    - lockobject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 868
    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:885,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 891
    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:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 904
    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:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 912
    functionDepth: 3
    functionLinenumber: 912
    functionLinenumberEnd: 917
    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:934,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: 935
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 935
    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:948,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_threadmodule.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 949
    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:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 962
    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:967,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_threadmodule.c:968,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_threadmodule.c:969,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 970
    functionName: lock_repr
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - lockobject_CAST
    - PyUnicode_FromFormat
    - PyMutex_IsLocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lock_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Modules/_threadmodule.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 983
    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:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1001
    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: PyMutex_IsLocked
      Src: /src/cpython/Modules/_threadmodule.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1058
    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:1063,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_threadmodule.c:1064,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1065,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:1066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1068
    functionName: rlock_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:1098,1
    - Dst: _PyRecursiveMutex_LockTimed
      Src: /src/cpython/Modules/_threadmodule.c:1102,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1106,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:1106,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:1109,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:1113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - blocking
    - timeoutobj
    argTypes:
    - rlockobject*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1105
        line_start: 1105
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1114
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1114
    functionName: _thread_RLock_acquire_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - lock_acquire_parse_timeout
    - PyBool_FromLong
    - PyErr_Occurred
    - assert
    - _PyRecursiveMutex_LockTimed
    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:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1122
    functionDepth: 3
    functionLinenumber: 1122
    functionLinenumberEnd: 1127
    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:1148,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1154
    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:1172,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: 1173
      start: 1167
    functionDepth: 2
    functionLinenumber: 1167
    functionLinenumberEnd: 1173
    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:1185,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1187
    functionName: _thread_RLock_locked_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - rlock_locked_impl
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread_RLock_locked_impl(rlockobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_threadmodule.c:1204,1
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:1208,1
    - Dst: _Py_atomic_store_ullong_relaxed
      Src: /src/cpython/Modules/_threadmodule.c:1209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - rlockobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1212
    functionName: _thread_RLock__acquire_restore_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyRecursiveMutex_Lock
    - _Py_atomic_store_ullong_relaxed
    - PyArg_Parse
    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:1225,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1226,1
    - Dst: _PyRecursiveMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:1234,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_threadmodule.c:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1236
    functionName: _thread_RLock__release_save_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyRecursiveMutex_IsLockedByCurrentThread
    - PyErr_SetString
    - _PyRecursiveMutex_Unlock
    - Py_BuildValue
    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:1249,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_threadmodule.c:1250,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:1252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1253
    functionName: _thread_RLock__recursion_count_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyRecursiveMutex_IsLockedByCurrentThread
    - PyLong_FromLong
    - PyLong_FromSize_t
    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:1266,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1268
    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:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1285
    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:1290,1
    - Dst: rlock_locked_impl
      Src: /src/cpython/Modules/_threadmodule.c:1292,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_threadmodule.c:1300,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1305
    functionName: rlock_repr
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - rlock_locked_impl
    - rlockobject_CAST
    - PyUnicode_FromFormat
    - Py_TYPE
    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: 1319
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1319
    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: 1417
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1417
    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:1421,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_threadmodule.c:1422,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1423,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:1424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1426
    functionName: localdummy_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - localdummyobject_CAST
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - 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: 1461
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1461
    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:1475,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:1479,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_threadmodule.c:1484,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:1485,1
    - Dst: PyCFunction_New
      Src: /src/cpython/Modules/_threadmodule.c:1490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1491,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_threadmodule.c:1496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - localobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1500
    functionName: create_sentinel_wr
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Get
    - PyWeakref_NewRef
    - PyCFunction_New
    - _PyTuple_FromPairSteal
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_sentinel_wr(localobject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_threadmodule.c:1508,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_threadmodule.c:1510,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1513,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_threadmodule.c:1520,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1521,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:1522,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:1524,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Modules/_threadmodule.c:1531,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_threadmodule.c:1533,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_threadmodule.c:1534,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_threadmodule.c:1536,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_threadmodule.c:1541,1
    - Dst: create_localsdict
      Src: /src/cpython/Modules/_threadmodule.c:1548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1557,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 1520
        line_start: 1520
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1559
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1559
    functionName: local_new
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetDeferredRefcount
    - Py_XNewRef
    - PyErr_SetString
    - PyObject_IsTrue
    - PyType_GetModuleByDef
    - PySet_New
    - PyDict_New
    - assert
    - Py_DECREF
    - create_localsdict
    - PyTypeObject*::tp_alloc
    - get_thread_state
    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:1564,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1565,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1565,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1566,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1567,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1568,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1571
    functionName: local_traverse
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - localobject_CAST
    - Py_VISIT
    - Py_TYPE
    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:1576,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1577,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1578,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1579,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1582
    functionName: local_clear
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - localobject_CAST
    linkageType: ''
    returnType: int
    signature: int local_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1587,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_threadmodule.c:1591,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_threadmodule.c:1593,1
    - Dst: local_clear
      Src: /src/cpython/Modules/_threadmodule.c:1594,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1595,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_threadmodule.c:1596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1584
    functionDepth: 2
    functionLinenumber: 1584
    functionLinenumberEnd: 1598
    functionName: local_dealloc
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - local_clear
    - PyObject_ClearWeakRefs
    - localobject_CAST
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void local_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_threadmodule.c:1604,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:1611,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_threadmodule.c:1616,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:1618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - thread_module_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1623
    functionName: create_localdummies
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyThreadState_GET
    - 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:1632,1
    - Dst: create_localdummies
      Src: /src/cpython/Modules/_threadmodule.c:1636,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_threadmodule.c:1641,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_threadmodule.c:1646,1
    - Dst: create_sentinel_wr
      Src: /src/cpython/Modules/_threadmodule.c:1652,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1654,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_threadmodule.c:1655,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1658,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1661,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_threadmodule.c:1665,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1666,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_threadmodule.c:1667,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1670,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1673,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:1682,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:1683,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: 1685
      start: 1628
    functionDepth: 2
    functionLinenumber: 1628
    functionLinenumberEnd: 1685
    functionName: create_localsdict
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 1
    functionsReached:
    - create_localdummies
    - create_sentinel_wr
    - PySet_Add
    - PyDict_SetItem
    - PyDict_DelItem
    - _PyThreadState_GET
    - PyErr_SetRaisedException
    - Py_XDECREF
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    - PyDict_New
    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:1693,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_threadmodule.c:1699,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_threadmodule.c:1700,1
    - Dst: create_localsdict
      Src: /src/cpython/Modules/_threadmodule.c:1710,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1715,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1716,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1720,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_threadmodule.c:1721,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1724,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1726,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:1726,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_threadmodule.c:1728,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1729,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_threadmodule.c:1732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1737,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - localobject*
    - thread_module_state*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1740
      start: 1690
    functionDepth: 3
    functionLinenumber: 1690
    functionLinenumberEnd: 1740
    functionName: _ldict
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PySet_Discard
    - PyDict_DelItem
    - _PyThreadState_GET
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - create_localsdict
    - PyErr_FormatUnraisable
    - Py_TYPE
    - create_localdummies
    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:1745,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_threadmodule.c:1746,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1746,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1747,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:1748,1
    - Dst: _ldict
      Src: /src/cpython/Modules/_threadmodule.c:1750,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_threadmodule.c:1755,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_threadmodule.c:1755,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_threadmodule.c:1760,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1762,1
    - Dst: _PyObject_GenericSetAttrWithDict
      Src: /src/cpython/Modules/_threadmodule.c:1766,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1767,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:1771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - op
    - name
    - v
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 1746
        line_start: 1746
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1773
      start: 1742
    functionDepth: 4
    functionLinenumber: 1742
    functionLinenumberEnd: 1773
    functionName: local_setattro
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - _PyObject_GenericSetAttrWithDict
    - PyType_GetModuleByDef
    - localobject_CAST
    - _Py_ID
    - PyErr_Format
    - assert
    - _ldict
    - Py_XDECREF
    - Py_DECREF
    - Py_TYPE
    - get_thread_state
    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:1805,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_threadmodule.c:1806,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1806,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:1807,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:1808,1
    - Dst: _ldict
      Src: /src/cpython/Modules/_threadmodule.c:1810,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_threadmodule.c:1814,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_threadmodule.c:1814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1819,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:1823,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Modules/_threadmodule.c:1825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1826,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_threadmodule.c:1832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1834,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Modules/_threadmodule.c:1839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 1806
        line_start: 1806
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1842
      start: 1802
    functionDepth: 4
    functionLinenumber: 1802
    functionLinenumberEnd: 1842
    functionName: local_getattro
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - _PyObject_GenericGetAttrWithDict
    - Py_IS_TYPE
    - PyType_GetModuleByDef
    - localobject_CAST
    - _Py_ID
    - assert
    - _ldict
    - PyDict_GetItemRef
    - Py_DECREF
    - Py_TYPE
    - get_thread_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_getattro(PyObject *op, PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_threadmodule.c:1849,1
    - Dst: localobject_CAST
      Src: /src/cpython/Modules/_threadmodule.c:1850,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Modules/_threadmodule.c:1850,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_threadmodule.c:1858,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_threadmodule.c:1859,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1860,1
    - Dst: PySet_Discard
      Src: /src/cpython/Modules/_threadmodule.c:1865,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_threadmodule.c:1866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:1871,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - locals_and_key
    - dummyweakref
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1846
    functionDepth: 1
    functionLinenumber: 1846
    functionLinenumberEnd: 1873
    functionName: clear_locals
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PySet_Discard
    - PyDict_Pop
    - PyTuple_GetItem
    - localobject_CAST
    - _PyWeakref_GET_REF
    - Py_DECREF
    - PyErr_FormatUnraisable
    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:1880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1887
    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:1900,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Modules/_threadmodule.c:1901,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1902,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Modules/_threadmodule.c:1906,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1907,1
    - Dst: add_to_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:1916,1
    - Dst: ThreadHandle_start
      Src: /src/cpython/Modules/_threadmodule.c:1919,1
    - Dst: remove_from_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:1921,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: 1927
      start: 1896
    functionDepth: 4
    functionLinenumber: 1896
    functionLinenumberEnd: 1927
    functionName: do_start_new_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - remove_from_shutdown_handles
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetFinalizing
    - ThreadHandle_start
    - _PyInterpreterState_HasFeature
    - add_to_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:1933,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_threadmodule.c:1935,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_threadmodule.c:1938,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1939,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_threadmodule.c:1943,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1944,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_threadmodule.c:1948,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:1949,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_threadmodule.c:1954,1
    - Dst: ThreadHandle_new
      Src: /src/cpython/Modules/_threadmodule.c:1959,1
    - Dst: do_start_new_thread
      Src: /src/cpython/Modules/_threadmodule.c:1965,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:1967,1
    - Dst: ThreadHandle_ident
      Src: /src/cpython/Modules/_threadmodule.c:1970,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:1971,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:1972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module
    - fargs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1929
    functionDepth: 5
    functionLinenumber: 1929
    functionLinenumberEnd: 1973
    functionName: thread_PyThread_start_new_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - do_start_new_thread
    - ThreadHandle_decref
    - PyCallable_Check
    - PySys_Audit
    - PyErr_SetString
    - PyDict_Check
    - get_thread_state
    - PyTuple_Check
    - PyLong_FromUnsignedLongLong
    - ThreadHandle_ident
    - ThreadHandle_new
    - PyArg_UnpackTuple
    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:2001,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_threadmodule.c:2003,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_threadmodule.c:2009,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2010,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:2018,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2019,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_threadmodule.c:2023,1
    - Dst: PyThreadHandleObject_new
      Src: /src/cpython/Modules/_threadmodule.c:2029,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_threadmodule.c:2035,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_threadmodule.c:2038,1
    - Dst: do_start_new_thread
      Src: /src/cpython/Modules/_threadmodule.c:2042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2046,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - module
    - fargs
    - fkwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 1994
    functionDepth: 5
    functionLinenumber: 1994
    functionLinenumberEnd: 2050
    functionName: thread_PyThread_start_joinable_thread
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - do_start_new_thread
    - Py_INCREF
    - PyCallable_Check
    - Py_IS_TYPE
    - PySys_Audit
    - PyErr_SetString
    - PyThreadHandleObject_new
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - PyTuple_New
    - get_thread_state
    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:2069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2066
    functionDepth: 1
    functionLinenumber: 2066
    functionLinenumberEnd: 2071
    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:2090,1
    - Dst: PyErr_SetInterruptEx
      Src: /src/cpython/Modules/_threadmodule.c:2094,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2086
    functionDepth: 1
    functionLinenumber: 2086
    functionLinenumberEnd: 2099
    functionName: thread_PyThread_interrupt_main
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyErr_SetInterruptEx
    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:2116,1
    - Dst: lock_new_impl
      Src: /src/cpython/Modules/_threadmodule.c:2117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2113
    functionDepth: 1
    functionLinenumber: 2113
    functionLinenumberEnd: 2118
    functionName: thread_PyThread_allocate_lock
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - lock_new_impl
    - get_thread_state
    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:2136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2138,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:2141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2142
    functionName: thread_get_ident
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyThread_get_thread_ident_ex
    - PyLong_FromUnsignedLongLong
    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:2160,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_threadmodule.c: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: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2162
    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:2176,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_threadmodule.c:2177,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Modules/_threadmodule.c:2177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2178
    functionName: thread__count
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _Py_atomic_load_ssize
    - _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:2199,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_threadmodule.c:2204,1
    - Dst: PyThread_get_stacksize
      Src: /src/cpython/Modules/_threadmodule.c:2209,1
    - Dst: PyThread_set_stacksize
      Src: /src/cpython/Modules/_threadmodule.c:2211,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_threadmodule.c:2213,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2219,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_threadmodule.c:2224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2192
    functionDepth: 1
    functionLinenumber: 2192
    functionLinenumberEnd: 2225
    functionName: thread_stack_size
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_get_stacksize
    - PyErr_SetString
    - PyThread_set_stacksize
    - PyLong_FromSsize_t
    - PyErr_Format
    - PyArg_ParseTuple
    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:2253,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_threadmodule.c:2259,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_threadmodule.c:2259,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Modules/_threadmodule.c:2264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2268,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_threadmodule.c:2271,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_threadmodule.c:2272,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Modules/_threadmodule.c:2274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2278,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_threadmodule.c:2281,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Modules/_threadmodule.c:2283,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Modules/_threadmodule.c:2289,1
    - Dst: _PyErr_Display
      Src: /src/cpython/Modules/_threadmodule.c:2294,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_threadmodule.c:2297,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: 2302
      start: 2248
    functionDepth: 1
    functionLinenumber: 2248
    functionLinenumberEnd: 2302
    functionName: thread_excepthook_file
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyObject_GetOptionalAttr
    - _PyFile_Flush
    - PyErr_Clear
    - _PyErr_Display
    - PyThread_get_thread_ident_ex
    - PyFile_WriteString
    - Py_DECREF
    - PyFile_WriteObject
    - _Py_ID
    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:2329,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_threadmodule.c:2331,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2332,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:2339,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:2346,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:2347,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_threadmodule.c:2348,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Modules/_threadmodule.c:2351,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_threadmodule.c:2351,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_threadmodule.c:2355,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_threadmodule.c:2361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2366,1
    - Dst: thread_excepthook_file
      Src: /src/cpython/Modules/_threadmodule.c:2373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2375,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2326
    functionDepth: 2
    functionLinenumber: 2326
    functionLinenumberEnd: 2381
    functionName: thread_excepthook
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyErr_SetString
    - PySys_GetOptionalAttr
    - thread_excepthook_file
    - _Py_ID
    - PyStructSequence_GET_ITEM
    - Py_XDECREF
    - PyObject_GetAttrString
    - Py_DECREF
    - get_thread_state
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_excepthook(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_threadmodule.c:2392,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_threadmodule.c:2393,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/_threadmodule.c:2393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2394
    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:2405,1
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2406,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Modules/_threadmodule.c:2412,1
    - Dst: llist_for_each_safe
      Src: /src/cpython/Modules/_threadmodule.c:2414,1
    - Dst: llist_data
      Src: /src/cpython/Modules/_threadmodule.c:2415,1
    - Dst: ThreadHandle_incref
      Src: /src/cpython/Modules/_threadmodule.c:2417,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Modules/_threadmodule.c:2422,1
    - Dst: ThreadHandle_join
      Src: /src/cpython/Modules/_threadmodule.c:2431,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:2432,1
    - Dst: ThreadHandle_decref
      Src: /src/cpython/Modules/_threadmodule.c:2436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2402
    functionDepth: 4
    functionLinenumber: 2402
    functionLinenumberEnd: 2440
    functionName: thread_shutdown
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - ThreadHandle_decref
    - llist_for_each_safe
    - ThreadHandle_incref
    - HEAD_LOCK
    - ThreadHandle_join
    - PyThread_get_thread_ident_ex
    - llist_data
    - HEAD_UNLOCK
    - get_thread_state
    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:2451,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_threadmodule.c:2452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_threadmodule.c:2453,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_threadmodule.c:2456,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_threadmodule.c:2457,1
    - Dst: PyThreadHandleObject_new
      Src: /src/cpython/Modules/_threadmodule.c:2461,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_threadmodule.c:2465,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_threadmodule.c:2468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - module
    - identobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2448
    functionDepth: 3
    functionLinenumber: 2448
    functionLinenumberEnd: 2470
    functionName: thread__make_thread_handle
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - PyErr_SetString
    - PyLong_Check
    - PyLong_AsUnsignedLongLong
    - PyErr_Occurred
    - PyThreadHandleObject_new
    - PyMutex_Lock
    - get_thread_state
    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:2482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2479
    functionDepth: 1
    functionLinenumber: 2479
    functionLinenumberEnd: 2483
    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:2515,1
    - Dst: pthread_getname_np
      Src: /src/cpython/Modules/_threadmodule.c:2517,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_threadmodule.c:2517,1
    - Dst: pthread_get_name_np
      Src: /src/cpython/Modules/_threadmodule.c:2520,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_threadmodule.c:2520,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_threadmodule.c:2524,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Modules/_threadmodule.c:2530,1
    - Dst: strlen
      Src: /src/cpython/Modules/_threadmodule.c:2530,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Modules/_threadmodule.c:2532,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:2536,1
    - Dst: pGetThreadDescription
      Src: /src/cpython/Modules/_threadmodule.c:2539,1
    - Dst: GetCurrentThread
      Src: /src/cpython/Modules/_threadmodule.c:2539,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_threadmodule.c:2540,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_threadmodule.c:2541,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_threadmodule.c:2545,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/_threadmodule.c:2546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (pGetThreadDescription != NULL)
      pos:
        line_end: 2535
        line_start: 2535
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 2549
      start: 2508
    functionDepth: 1
    functionLinenumber: 2508
    functionLinenumberEnd: 2549
    functionName: _thread__get_name_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - pthread_getname_np
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - FAILED
    - Py_ARRAY_LENGTH
    - GetCurrentThread
    - pthread_self
    - pGetThreadDescription
    - pthread_get_name_np
    - strlen
    - assert
    - PyUnicode_DecodeASCII
    - LocalFree
    - PyErr_SetFromErrno
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _thread__get_name_impl(PyObject *module)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_threadmodule.c:2574,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_threadmodule.c:2578,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_threadmodule.c:2585,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_threadmodule.c:2587,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_threadmodule.c:2587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2590,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_threadmodule.c:2593,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_threadmodule.c:2597,1
    - Dst: pthread_setname_np
      Src: /src/cpython/Modules/_threadmodule.c:2599,1
    - Dst: pthread_self
      Src: /src/cpython/Modules/_threadmodule.c:2601,1
    - Dst: pthread_setname_np
      Src: /src/cpython/Modules/_threadmodule.c:2602,1
    - Dst: pthread_self
      Src: /src/cpython/Modules/_threadmodule.c:2604,1
    - Dst: pthread_setname_np
      Src: /src/cpython/Modules/_threadmodule.c:2605,1
    - Dst: pthread_self
      Src: /src/cpython/Modules/_threadmodule.c:2607,1
    - Dst: pthread_set_name_np
      Src: /src/cpython/Modules/_threadmodule.c:2609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_threadmodule.c:2611,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_threadmodule.c:2614,1
    - Dst: assert
      Src: /src/cpython/Modules/_threadmodule.c:2619,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_threadmodule.c:2622,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Modules/_threadmodule.c:2630,1
    - Dst: pSetThreadDescription
      Src: /src/cpython/Modules/_threadmodule.c:2638,1
    - Dst: GetCurrentThread
      Src: /src/cpython/Modules/_threadmodule.c:2638,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_threadmodule.c:2639,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_threadmodule.c:2640,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_threadmodule.c:2641,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - module
    - name_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (pSetThreadDescription != NULL)
      pos:
        line_end: 2618
        line_start: 2618
        source_file: /src/cpython/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 2646
      start: 2562
    functionDepth: 1
    functionLinenumber: 2562
    functionLinenumberEnd: 2646
    functionName: _thread_set_name_impl
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - pthread_set_name_np
    - PyErr_SetFromWindowsErr
    - FAILED
    - Py_UNICODE_IS_HIGH_SURROGATE
    - pthread_self
    - PyMem_Free
    - PyBytes_AS_STRING
    - PyUnicode_AsEncodedString
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - PyBytes_GET_SIZE
    - pSetThreadDescription
    - GetCurrentThread
    - Py_SETREF
    - pthread_setname_np
    - _PyInterpreterState_GET
    - PyErr_SetFromErrno
    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:2700,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_threadmodule.c:2701,1
    - Dst: PyThread_init_thread
      Src: /src/cpython/Modules/_threadmodule.c:2704,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_threadmodule.c:2707,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_threadmodule.c:2711,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_threadmodule.c:2716,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_threadmodule.c:2720,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_threadmodule.c:2724,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_threadmodule.c:2729,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_threadmodule.c:2733,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_threadmodule.c:2738,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_threadmodule.c:2744,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_threadmodule.c:2748,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_threadmodule.c:2753,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_threadmodule.c:2758,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_threadmodule.c:2762,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Modules/_threadmodule.c:2768,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_threadmodule.c:2769,1
    - Dst: floor
      Src: /src/cpython/Modules/_threadmodule.c:2771,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_threadmodule.c:2773,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_threadmodule.c:2774,1
    - Dst: llist_init
      Src: /src/cpython/Modules/_threadmodule.c:2778,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_threadmodule.c:2781,1
    - Dst: GetModuleHandleW
      Src: /src/cpython/Modules/_threadmodule.c:2788,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_threadmodule.c:2791,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_threadmodule.c:2795,1
    - Dst: PyObject_DelAttrString
      Src: /src/cpython/Modules/_threadmodule.c:2801,1
    - Dst: PyObject_DelAttrString
      Src: /src/cpython/Modules/_threadmodule.c:2806,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2813
    functionName: thread_module_exec
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - llist_init
    - floor
    - GetModuleHandleW
    - PyFloat_FromDouble
    - PyModule_GetDict
    - PyStructSequence_NewType
    - PyDict_SetItemString
    - PyType_FromModuleAndSpec
    - PyThread_init_thread
    - PyTime_AsSecondsDouble
    - Py_MIN
    - PyObject_DelAttrString
    - PyModule_Add
    - GetProcAddress
    - PyType_FromSpec
    - PyModule_AddType
    - get_thread_state
    linkageType: ''
    returnType: int
    signature: int thread_module_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_state
      Src: /src/cpython/Modules/_threadmodule.c:2819,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2820,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2821,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2822,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2823,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2824,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_threadmodule.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2816
    functionDepth: 1
    functionLinenumber: 2816
    functionLinenumberEnd: 2827
    functionName: thread_module_traverse
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - get_thread_state
    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:2832,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2833,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2834,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2835,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2836,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_threadmodule.c:2838,1
    - Dst: clear_shutdown_handles
      Src: /src/cpython/Modules/_threadmodule.c:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2829
    functionDepth: 2
    functionLinenumber: 2829
    functionLinenumberEnd: 2844
    functionName: thread_module_clear
    functionSourceFile: /src/cpython/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - clear_shutdown_handles
    - Py_CLEAR
    - get_thread_state
    linkageType: ''
    returnType: int
    signature: int thread_module_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thread_module_clear
      Src: /src/cpython/Modules/_threadmodule.c:2849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2846
    functionDepth: 3
    functionLinenumber: 2846
    functionLinenumberEnd: 2850
    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:2881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2878
    functionDepth: 1
    functionLinenumber: 2878
    functionLinenumberEnd: 2882
    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
    - PyObject_RichCompareBool
    - PyErr_SetString
    - FT_ATOMIC_STORE_PTR_RELAXED
    - PyList_Check
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    - _PyList_ITEMS
    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:
    - siftdown
    - Py_INCREF
    - PyObject_RichCompareBool
    - PyErr_SetString
    - FT_ATOMIC_STORE_PTR_RELAXED
    - PyList_Check
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    - _PyList_ITEMS
    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:
    - siftdown
    - _PyList_AppendTakeRef
    - PyErr_BadInternalCall
    - PyList_GET_SIZE
    - Py_NewRef
    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
    - PyErr_SetString
    - siftup_func
    - PyList_GET_ITEM
    - FT_ATOMIC_STORE_PTR_RELAXED
    - Py_DECREF
    - PyList_GET_SIZE
    - _PyList_CAST
    - PyList_SetSlice
    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:
    - PyErr_SetString
    - PyList_GET_ITEM
    - FT_ATOMIC_STORE_PTR_RELAXED
    - Py_DECREF
    - PyList_GET_SIZE
    - Py_NewRef
    - _PyList_CAST
    - siftup_func
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heapreplace_internal(PyObject *heap, PyObject *item, int siftup_func(PyListObject
      *, Py_ssize_t))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heapreplace_internal
      Src: /src/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:271,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:272,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:275,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:276,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:278,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:282,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:286,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:290,1
    - Dst: _PyList_CAST
      Src: /src/cpython/Modules/_heapqmodule.c:291,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:292,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:292,1
    - Dst: siftup
      Src: /src/cpython/Modules/_heapqmodule.c:293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 298
    functionName: _heapq_heappushpop_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyList_GET_ITEM
    - FT_ATOMIC_STORE_PTR_RELAXED
    - Py_DECREF
    - siftup
    - PyList_GET_SIZE
    - Py_NewRef
    - _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: 310
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 310
    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:337,1
    - Dst: keep_top_bit
      Src: /src/cpython/Modules/_heapqmodule.c:338,1
    - Dst: siftup_func
      Src: /src/cpython/Modules/_heapqmodule.c:344,1
    - Dst: siftup_func
      Src: /src/cpython/Modules/_heapqmodule.c:355,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - heap
    - siftup_func
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 363
    functionName: cache_friendly_heapify
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - keep_top_bit
    - PyList_GET_SIZE
    - siftup_func
    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:374,1
    - Dst: cache_friendly_heapify
      Src: /src/cpython/Modules/_heapqmodule.c:376,1
    - Dst: siftup_func
      Src: /src/cpython/Modules/_heapqmodule.c:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - siftup_func
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 389
    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:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 406
    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:415,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_heapqmodule.c:415,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:416,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:418,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:424,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:428,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:429,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:432,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:435,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:436,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:442,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:445,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:446,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: 414
        line_start: 414
        source_file: /src/cpython/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 450
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 450
    functionName: siftdown_max
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - PyErr_SetString
    - FT_ATOMIC_STORE_PTR_RELAXED
    - PyList_Check
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    - _PyList_ITEMS
    - Py_NewRef
    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:459,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_heapqmodule.c:459,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:460,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:463,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:468,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:476,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:477,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:480,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_heapqmodule.c:484,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:485,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:486,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:494,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:495,1
    - Dst: siftdown_max
      Src: /src/cpython/Modules/_heapqmodule.c:499,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: 458
        line_start: 458
        source_file: /src/cpython/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 500
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 500
    functionName: siftup_max
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - PyErr_SetString
    - FT_ATOMIC_STORE_PTR_RELAXED
    - PyList_Check
    - siftdown_max
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    - _PyList_ITEMS
    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:518,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_heapqmodule.c:524,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:524,1
    - Dst: siftdown_max
      Src: /src/cpython/Modules/_heapqmodule.c:528,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 533
    functionName: _heapq_heappush_max_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - _PyList_AppendTakeRef
    - PyErr_BadInternalCall
    - siftdown_max
    - PyList_GET_SIZE
    - Py_NewRef
    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:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 550
    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:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 568
    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:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 3
    functionLinenumber: 580
    functionLinenumberEnd: 585
    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:608,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:609,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:612,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_heapqmodule.c:613,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_heapqmodule.c:614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:615,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:620,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_heapqmodule.c:623,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_heapqmodule.c:624,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_heapqmodule.c:628,1
    - Dst: _PyList_CAST
      Src: /src/cpython/Modules/_heapqmodule.c:629,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Modules/_heapqmodule.c:630,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_heapqmodule.c:630,1
    - Dst: siftup_max
      Src: /src/cpython/Modules/_heapqmodule.c:631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_heapqmodule.c:632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 636
    functionName: _heapq_heappushpop_max_impl
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyList_GET_ITEM
    - FT_ATOMIC_STORE_PTR_RELAXED
    - siftup_max
    - Py_DECREF
    - PyList_GET_SIZE
    - Py_NewRef
    - _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:783,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_heapqmodule.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 787
    functionName: heapq_exec
    functionSourceFile: /src/cpython/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int heapq_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_heapqmodule.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: PyInit__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:
    - _abc_data_CAST
    - Py_VISIT
    - Py_TYPE
    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:
    - abc_data_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:
    - Py_DECREF
    - get_invalidation_counter
    - PyTypeObject*::tp_alloc
    - _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:
    - Py_IS_TYPE
    - PyErr_SetString
    - PyObject_GetAttr
    - Py_DECREF
    - get_abc_state
    - _Py_ID
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PySet_GET_SIZE
    - PySet_Contains
    - PyWeakref_NewRef
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    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: 11
    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:
    - PySet_Add
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PySet_New
    - PyWeakref_NewRef
    - Py_DECREF
    - PyCFunction_NewEx
    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_END_CRITICAL_SECTION
    - PySet_Clear
    - Py_BEGIN_CRITICAL_SECTION
    - _get_impl
    - Py_DECREF
    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_END_CRITICAL_SECTION
    - PySet_Clear
    - Py_BEGIN_CRITICAL_SECTION
    - _get_impl
    - Py_DECREF
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _get_impl
    - Py_BuildValue
    - PySet_New
    - get_cache_version
    - Py_DECREF
    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:
    - PyTuple_GET_ITEM
    - PySequence_Fast
    - PyList_GET_ITEM
    - PyObject_GetIter
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyIter_Next
    - PyMapping_Items
    - PyObject_GetOptionalAttr
    - _PyObject_IsAbstract
    - Py_XDECREF
    - Py_INCREF
    - PyErr_SetString
    - PyList_Check
    - Py_DECREF
    - PySequence_Fast_GET_SIZE
    - PySet_Add
    - PyObject_SetAttr
    - PyObject_GetAttr
    - PyFrozenSet_New
    - PyList_GET_SIZE
    - PySequence_Fast_GET_ITEM
    - _Py_ID
    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:
    - PyObject_SetAttr
    - PyType_Check
    - PyDict_Pop
    - PyErr_SetString
    - abc_data_new
    - _PyType_GetDict
    - compute_abstract_methods
    - PyLong_CheckExact
    - PyLong_AsLong
    - _PyType_SetFlags
    - Py_XDECREF
    - PyErr_Occurred
    - Py_DECREF
    - get_abc_state
    - _Py_ID
    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
    - PyObject_IsSubclass
    - _get_impl
    - PyErr_SetString
    - PyType_GetFlags
    - _add_to_weak_set
    - Py_DECREF
    - _PyType_SetFlagsRecursive
    - increment_invalidation_counter
    - get_abc_state
    - Py_NewRef
    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_TYPE
    - PyObject_CallMethodOneArg
    - _get_impl
    - get_invalidation_counter
    - PyObject_GetAttr
    - PyObject_IsTrue
    - Py_SETREF
    - Py_UNREACHABLE
    - get_cache_version
    - Py_XDECREF
    - Py_DECREF
    - get_abc_state
    - Py_NewRef
    - _in_weak_set
    - _Py_ID
    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:
    - PyType_Check
    - Py_END_CRITICAL_SECTION
    - PyObject_CallMethodOneArg
    - PyList_GetItemRef
    - Py_XNewRef
    - PyType_IsSubtype
    - _get_impl
    - _add_to_weak_set
    - Py_XDECREF
    - get_abc_state
    - _in_weak_set
    - set_cache_version
    - PySet_Clear
    - PyErr_SetString
    - get_invalidation_counter
    - PyList_Check
    - Py_DECREF
    - PyObject_IsSubclass
    - subclasscheck_check_registry
    - Py_BEGIN_CRITICAL_SECTION
    - get_cache_version
    - PyObject_CallMethod
    - PyList_GET_SIZE
    - _Py_ID
    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_END_CRITICAL_SECTION
    - PyWeakref_GetRef
    - Py_BEGIN_CRITICAL_SECTION
    - _add_to_weak_set
    - _PySet_NextEntry
    - Py_DECREF
    - PyFrozenSet_New
    - PyObject_IsSubclass
    - _in_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:
    - Py_CLEAR
    - get_abc_state
    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:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1002
    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:
    - PyErr_SetString
    - PyMem_Free
    - 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:
    - ndbuf_pop
    - ND_IS_CONSUMER
    - PyBuffer_Release
    - PyMem_XFree
    - PyObject_Free
    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: PyComplex_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: 21
    EdgeCount: 21
    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:
    - PyTuple_GET_ITEM
    - PyBytes_Check
    - PyComplex_Check
    - PyTuple_Check
    - assert
    - PyLong_Check
    - PyLong_FromSsize_t
    - Py_XDECREF
    - PyObject_CheckBuffer
    - Py_INCREF
    - get_nmemb
    - PyErr_SetString
    - PyFloat_Check
    - PyObject_CallFunctionObjArgs
    - PyList_Check
    - PyTuple_SET_ITEM
    - PyObject_CallObject
    - Py_DECREF
    - PyTuple_New
    - Py_XINCREF
    - PySequence_Fast_GET_SIZE
    - PySequence_Length
    - PyObject_GetAttrString
    - PySequence_Fast_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int pack_from_list(PyObject *obj, PyObject *items, PyObject *format,\n
      \              Py_ssize_t itemsize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/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: PyComplex_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: 25
    EdgeCount: 25
    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:
    - PyLong_FromLong
    - PyTuple_GET_ITEM
    - PyBytes_Check
    - PyComplex_Check
    - PyTuple_Check
    - assert
    - PyUnicode_FromString
    - PyLong_Check
    - Py_XDECREF
    - get_nmemb
    - PyMemoryView_FromMemory
    - PyErr_SetString
    - PyFloat_Check
    - PyObject_CallFunctionObjArgs
    - PyList_Check
    - PyTuple_SET_ITEM
    - PyObject_CallObject
    - Py_DECREF
    - PyTuple_New
    - Py_XINCREF
    - PySequence_Length
    - PyObject_GetAttrString
    - PySequence_Fast_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int pack_single(char *ptr, PyObject *item, const char *fmt, Py_ssize_t
      itemsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/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:
    - HAVE_PTR
    - memmove
    - memcpy
    - copy_rec
    - assert
    - ADJUST_PTR
    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:
    - strcmp
    - FIX_FORMAT
    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:
    - PyErr_NoMemory
    - assert
    - PyErr_SetString
    - PyMem_XFree
    - copy_rec
    - PyMem_Malloc
    - cmp_structure
    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:
    - PyTuple_GET_ITEM
    - Py_INCREF
    - PyMemoryView_FromMemory
    - PyObject_CallFunction
    - PyObject_GetAttrString
    - Py_DECREF
    - PyTuple_GET_SIZE
    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_SET_ITEM
    - PyTuple_GET_ITEM
    - Py_INCREF
    - unpack_rec
    - PyObject_CallFunctionObjArgs
    - memcpy
    - PyList_New
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - ADJUST_PTR
    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: (ND_C_CONTIGUOUS(nd->head->flags))
      pos:
        line_end: 688
        line_start: 688
        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: (base->strides == NULL)
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/cpython/Modules/_testbuffer.c
    - condition: (base->ndim <= 1)
      pos:
        line_end: 681
        line_start: 681
        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:
    - PyUnicode_FromString
    - PyMem_Malloc
    - PyErr_NoMemory
    - unpack_rec
    - PyMemoryView_FromMemory
    - PyErr_SetString
    - ND_C_CONTIGUOUS
    - strides_from_shape
    - PyObject_CallFunctionObjArgs
    - PyMem_XFree
    - PyObject_GetAttrString
    - assert
    - Py_DECREF
    - Py_XDECREF
    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:
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - strcpy
    - PyUnicode_AsASCIIString
    - PyMem_Malloc
    - Py_DECREF
    - PyBytes_GET_SIZE
    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:
    - Py_DECREF
    - get_format
    - PyMemoryView_FromBuffer
    - pack_from_list
    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:
    - PyMem_New
    - PyErr_NoMemory
    - PyLong_Check
    - PyErr_Format
    - PyMem_Free
    - PyErr_Occurred
    - PySequence_Fast_GET_ITEM
    - 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
    - assert
    - memcpy
    - PyMem_Free
    - 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:
    - seq_as_ssize_array
    - init_suboffsets
    - PyErr_SetString
    - strides_from_shape
    - init_len
    - PyBuffer_IsContiguous
    - verify_structure
    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
    - CHECK_LIST_OR_TUPLE
    - get_itemsize
    - init_structure
    - PyErr_SetString
    - init_simple
    - ndbuf_new
    - PyTuple_Pack
    - PyErr_Format
    - Py_DECREF
    - ndbuf_free
    linkageType: ''
    returnType: ndbuf_t
    signature: "ndbuf_t *\ninit_ndbuf(PyObject *items, PyObject *shape, PyObject *strides,\n
      \          Py_ssize_t offset, PyObject *format, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ndbuf
      Src: /src/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_init_staticbuf
    - PyErr_SetString
    - PyObject_CheckBuffer
    - PyArg_ParseTupleAndKeywords
    - ndarray_push_base
    - init_flags
    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:
    - ND_IS_CONSUMER
    - PyErr_SetString
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    - ndarray_push_base
    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:
    - ndbuf_pop
    - PyErr_SetString
    - ND_IS_CONSUMER
    - 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_FORTRAN_CONTIGUOUS
    - REQ_INDIRECT
    - REQ_SHAPE
    - REQ_ANY_CONTIGUOUS
    - PyErr_SetString
    - REQ_FORMAT
    - ND_C_CONTIGUOUS
    - REQ_F_CONTIGUOUS
    - ND_ANY_CONTIGUOUS
    - REQ_C_CONTIGUOUS
    - REQ_WRITABLE
    - PyErr_Format
    - PyBuffer_IsContiguous
    - PyObject_GetBuffer
    - Py_NewRef
    - REQ_STRIDES
    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:
    - ndbuf_delete
    - ND_IS_CONSUMER
    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:
    - ndarray_new
    - ndarray_init_staticbuf
    - PyErr_SetString
    - ptr_from_index
    - Py_DECREF
    - unpack_single
    - init_flags
    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:
    - PySlice_Check
    - ndarray_new
    - PyTuple_GET_ITEM
    - init_len
    - PyTuple_Check
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyIndex_Check
    - PyLong_AsSsize_t
    - ndarray_init_staticbuf
    - PyErr_SetString
    - copy_structure
    - Py_DECREF
    - unpack_single
    - Py_NewRef
    - init_flags
    - init_slice
    - ndarray_item
    - PyErr_Format
    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
    - PyErr_SetString
    - ptr_from_index
    - ndarray_subscript
    - PyBuffer_Release
    - PyLong_AsSsize_t
    - PyObject_GetBuffer
    - PyTuple_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyIndex_Check
    - pack_single
    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_Check
    - PySlice_AdjustIndices
    - PyErr_SetString
    - PySlice_Unpack
    - PyLong_FromSsize_t
    - PyTuple_SET_ITEM
    - PyArg_ParseTuple
    - Py_DECREF
    - PyTuple_New
    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:
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - PyTuple_New
    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:
    - PyErr_SetString
    - PyBuffer_IsContiguous
    - PyBool_FromLong
    - ND_C_CONTIGUOUS
    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:
    - ND_FORTRAN_CONTIGUOUS
    - PyErr_SetString
    - PyBuffer_IsContiguous
    - PyBool_FromLong
    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:
    - ND_ANY_CONTIGUOUS
    - PyErr_SetString
    - PyBuffer_IsContiguous
    - PyBool_FromLong
    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->ndim > 0)
      pos:
        line_end: 2180
        line_start: 2180
        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->shape != NULL)
      pos:
        line_end: 2178
        line_start: 2178
        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:
    - copy_buffer
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - assert
    - ND_C_CONTIGUOUS
    - strides_from_shape
    - PyMem_XFree
    - PyMem_Free
    - 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:
    - ND_IS_CONSUMER
    - PyErr_NoMemory
    - strcpy
    - PyMem_Realloc
    - PyErr_SetString
    - memcpy
    - PyMem_Free
    - strlen
    - NDArray_Check
    - PyErr_Format
    - PyMemoryView_FromBuffer
    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:
    - PySequence_Fast_GET_SIZE
    - CHECK_LIST_OR_TUPLE
    - PySequence_Fast_GET_ITEM
    - PyErr_SetString
    - PyBuffer_Release
    - PyBuffer_GetPointer
    - PyErr_Format
    - PyErr_Occurred
    - PyArg_ParseTuple
    - unpack_single
    - PyObject_GetBuffer
    - 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:
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsASCIIString
    - PyBytes_AS_STRING
    - Py_DECREF
    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:
    - get_ascii_order
    - PyErr_SetString
    - PyLong_Check
    - PyLong_AsLong
    - PyMemoryView_GetContiguous
    - PyErr_Occurred
    - PyArg_ParseTuple
    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:
    - get_ascii_order
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    - PyBuffer_ToContiguous
    - PyMem_XFree
    - PyMem_Malloc
    - PyArg_ParseTuple
    - PyObject_GetBuffer
    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:
    - arraycmp
    - memcmp
    - PyErr_SetString
    - PyBuffer_Release
    - fmtcmp
    - PyArg_ParseTuple
    - PyBuffer_IsContiguous
    - PyObject_GetBuffer
    - Py_NewRef
    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:
    - get_ascii_order
    - PyErr_SetString
    - PyBuffer_Release
    - NDArray_Check
    - PyArg_ParseTuple
    - PyBuffer_IsContiguous
    - PyObject_GetBuffer
    - Py_NewRef
    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:
    - Py_DECREF
    - PyObject_Hash
    - PyErr_SetString
    - ndarray_tobytes
    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:
    - Py_SET_TYPE
    - PyImport_ImportModule
    - PyUnicode_FromString
    - ADD_INT_MACRO
    - PyObject_GetAttrString
    - PyType_Ready
    - PyModule_AddType
    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:
    - PyModule_Create
    - _testbuffer_exec
    - 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:24,1
    - Dst: _PyTraceMalloc_IsTracing
      Src: /src/cpython/Modules/_tracemalloc.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: _tracemalloc_is_tracing_impl
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyTraceMalloc_IsTracing
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_is_tracing_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_ClearTraces
      Src: /src/cpython/Modules/_tracemalloc.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    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:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 59
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    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:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - nframe
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 104
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    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:137,1
    - Dst: _PyTraceMalloc_GetTracebackLimit
      Src: /src/cpython/Modules/_tracemalloc.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    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:152,1
    - Dst: _PyTraceMalloc_GetMemory
      Src: /src/cpython/Modules/_tracemalloc.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    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:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    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:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 188
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyABIInfo_VAR
      Src: /src/cpython/Modules/_tracemalloc.c:221,1
    - Dst: PyABIInfo_Check
      Src: /src/cpython/Modules/_tracemalloc.c:222,1
    - Dst: PyModule_Create
      Src: /src/cpython/Modules/_tracemalloc.c:226,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_tracemalloc.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 236
    functionName: PyInit__tracemalloc
    functionSourceFile: /src/cpython/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyABIInfo_VAR
    - PyUnstable_Module_SetGIL
    - PyABIInfo_Check
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__tracemalloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/pyexpat.c:68,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    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: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    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:135,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: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:141,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/pyexpat.c:142,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/pyexpat.c:142,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - err
    - code
    argTypes:
    - PyObject*
    - enum XML_Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: set_xml_error_attr_code
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromLong
    - PyObject_SetAttr
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int set_xml_error_attr_code(PyObject *err, enum XML_Error code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/pyexpat.c:153,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/pyexpat.c:154,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - err
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - XML_Size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: set_xml_error_attr_location
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - PyObject_SetAttrString
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int set_xml_error_attr_location(PyObject *err, const char *name, XML_Size
      value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/pyexpat.c:167,1
    - Dst: XML_ErrorString
      Src: /src/cpython/Modules/pyexpat.c:169,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/pyexpat.c:174,1
    - Dst: strlen
      Src: /src/cpython/Modules/pyexpat.c:174,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/pyexpat.c:179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:180,1
    - Dst: set_xml_error_attr_code
      Src: /src/cpython/Modules/pyexpat.c:183,1
    - Dst: set_xml_error_attr_location
      Src: /src/cpython/Modules/pyexpat.c:184,1
    - Dst: set_xml_error_attr_location
      Src: /src/cpython/Modules/pyexpat.c:185,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/pyexpat.c:187,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - state
    - code
    - lineno
    - column
    - errmsg
    argTypes:
    - pyexpat_state*
    - enum XML_Error
    - XML_Size
    - XML_Size
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 191
    functionName: set_xml_error
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - XML_ErrorString
    - PyUnicode_FromFormat
    - set_xml_error_attr_code
    - strlen
    - Py_XDECREF
    - Py_DECREF
    - set_xml_error_attr_location
    - PyUnicode_FromStringAndSize
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_xml_error(pyexpat_state *state,\n              enum
      XML_Error code, XML_Size lineno, XML_Size column,\n              const char
      *errmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - STATE
    - ','
    - SELF
    - ','
    - CODE
    - ','
    - ERRMSG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: SET_XML_ERROR
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_XML_ERROR(STATE, SELF, CODE, ERRMSG)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_XML_ERROR
      Src: /src/cpython/Modules/pyexpat.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - self
    - code
    argTypes:
    - pyexpat_state*
    - xmlparseobject*
    - enum XML_Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: set_error
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 14
    functionsReached:
    - SET_XML_ERROR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_error(pyexpat_state *state, xmlparseobject *self, enum XML_Error code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_XML_ERROR
      Src: /src/cpython/Modules/pyexpat.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - self
    - errmsg
    argTypes:
    - pyexpat_state*
    - xmlparseobject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: set_invalid_arg
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - SET_XML_ERROR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_invalid_arg(pyexpat_state *state, xmlparseobject *self, const char *errmsg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    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:242,1
    - Dst: strlen
      Src: /src/cpython/Modules/pyexpat.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 243
    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:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 249
    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:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 261
    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: 278
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 278
    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: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    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:295,1
    - Dst: XML_SetExternalEntityRefHandler
      Src: /src/cpython/Modules/pyexpat.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 298
    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:306,1
    - Dst: _PyTraceback_Add
      Src: /src/cpython/Modules/pyexpat.c:308,1
    - Dst: XML_StopParser
      Src: /src/cpython/Modules/pyexpat.c:309,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: 312
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 312
    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:317,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/pyexpat.c:324,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/pyexpat.c:325,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:329,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - str
    argTypes:
    - xmlparseobject*
    - char*
    assertStmts:
    - condition: ((value != NULL) == !PyErr_Occurred())
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 332
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 332
    functionName: string_intern
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - conv_string_to_unicode
    - PyDict_SetItem
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    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:343,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/pyexpat.c:346,1
    - Dst: conv_string_len_to_unicode
      Src: /src/cpython/Modules/pyexpat.c:349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:351,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:352,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/cpython/Modules/pyexpat.c:353,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:357,1
    - Dst: call_with_frame
      Src: /src/cpython/Modules/pyexpat.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:364,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:366,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/cpython/Modules/pyexpat.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - self
    - buffer
    - len
    argTypes:
    - xmlparseobject*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 373
    functionName: call_character_handler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - conv_string_len_to_unicode
    - call_with_frame
    - XML_SetCharacterDataHandler
    - flag_error
    - PyTuple_SET_ITEM
    - have_handler
    - Py_DECREF
    - PyTuple_New
    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:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 384
    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:389,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:391,1
    - Dst: call_character_handler
      Src: /src/cpython/Modules/pyexpat.c:395,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:398,1
    - Dst: have_handler
      Src: /src/cpython/Modules/pyexpat.c:403,1
    - Dst: call_character_handler
      Src: /src/cpython/Modules/pyexpat.c:407,1
    - Dst: memcpy
      Src: /src/cpython/Modules/pyexpat.c:411,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - userData
    - data
    - len
    argTypes:
    - void*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 386
    functionDepth: 4
    functionLinenumber: 386
    functionLinenumberEnd: 416
    functionName: my_CharacterDataHandler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - have_handler
    - memcpy
    - PyErr_Occurred
    - call_character_handler
    - flush_character_buffer
    - 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:422,1
    - Dst: have_handler
      Src: /src/cpython/Modules/pyexpat.c:424,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:428,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:431,1
    - Dst: XML_GetSpecifiedAttributeCount
      Src: /src/cpython/Modules/pyexpat.c:437,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/pyexpat.c:446,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/pyexpat.c:448,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:450,1
    - Dst: string_intern
      Src: /src/cpython/Modules/pyexpat.c:454,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:458,1
    - Dst: conv_string_to_unicode
      Src: /src/cpython/Modules/pyexpat.c:461,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:465,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:469,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:470,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/pyexpat.c:472,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:481,1
    - Dst: string_intern
      Src: /src/cpython/Modules/pyexpat.c:484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:486,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:489,1
    - Dst: call_with_frame
      Src: /src/cpython/Modules/pyexpat.c:495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:498,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:503,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 3
    argNames:
    - userData
    - name
    - atts
    argTypes:
    - void*
    - XML_Char*
    - XML_Char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 505
    functionName: my_StartElementHandler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - conv_string_to_unicode
    - call_with_frame
    - Py_BuildValue
    - PyDict_SetItem
    - string_intern
    - flag_error
    - XML_GetSpecifiedAttributeCount
    - PyList_New
    - PyErr_Occurred
    - have_handler
    - flush_character_buffer
    - Py_DECREF
    - xmlparseobject_CAST
    - PyDict_New
    linkageType: ''
    returnType: void
    signature: "void my_StartElementHandler(void *userData,\n                       const
      XML_Char *name, const XML_Char *atts[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/pyexpat.c:510,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:511,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/pyexpat.c:512,1
    - Dst: _PyException_AddNote
      Src: /src/cpython/Modules/pyexpat.c:516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:517,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/pyexpat.c:524,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/pyexpat.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 527
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 527
    functionName: invalid_expat_handler_rv
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - _PyException_AddNote
    - PyUnicode_FromFormat
    - PyErr_Clear
    - PyErr_SetRaisedException
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void invalid_expat_handler_rv(const char *name)
  - 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: 567
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 567
    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: 575
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 575
    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: 583
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 583
    functionName: INT_HANDLER
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_HANDLER(NAME, PARAMS, PARAM_FORMAT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/pyexpat.c:637,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/pyexpat.c:642,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:646,1
    - Dst: conv_content_model
      Src: /src/cpython/Modules/pyexpat.c:648,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:651,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:654,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:656,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/pyexpat.c:661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - model
    - (*conv_string)(void *)
    argTypes:
    - XML_Content*
    - PyObject*
    assertStmts:
    - condition: (model->numchildren < INT_MAX)
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 663
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 663
    functionName: conv_content_model
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 1
    functionsReached:
    - _Py_EnterRecursiveCall
    - _Py_LeaveRecursiveCall
    - conv_content_model
    - Py_BuildValue
    - PyTuple_SET_ITEM
    - Py_XDECREF
    - assert
    - PyTuple_New
    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:670,1
    - Dst: have_handler
      Src: /src/cpython/Modules/pyexpat.c:673,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:677,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:680,1
    - Dst: conv_content_model
      Src: /src/cpython/Modules/pyexpat.c:682,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:684,1
    - Dst: string_intern
      Src: /src/cpython/Modules/pyexpat.c:687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:689,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:690,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:693,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:695,1
    - Dst: call_with_frame
      Src: /src/cpython/Modules/pyexpat.c:699,1
    - Dst: flag_error
      Src: /src/cpython/Modules/pyexpat.c:703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:706,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:709,1
    - Dst: XML_FreeContentModel
      Src: /src/cpython/Modules/pyexpat.c:710,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - userData
    - name
    - model
    argTypes:
    - void*
    - XML_Char*
    - XML_Content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 712
    functionName: my_ElementDeclHandler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - call_with_frame
    - conv_content_model
    - Py_BuildValue
    - XML_FreeContentModel
    - string_intern
    - flag_error
    - PyErr_Occurred
    - Py_XDECREF
    - have_handler
    - flush_character_buffer
    - Py_DECREF
    - 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:819,1
    - Dst: set_error
      Src: /src/cpython/Modules/pyexpat.c:823,1
    - Dst: XML_GetErrorCode
      Src: /src/cpython/Modules/pyexpat.c:823,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:825,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - state
    - self
    - rv
    argTypes:
    - pyexpat_state*
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 816
    functionDepth: 4
    functionLinenumber: 816
    functionLinenumberEnd: 829
    functionName: get_parse_result
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_GetErrorCode
    - PyLong_FromLong
    - PyErr_Occurred
    - set_error
    - flush_character_buffer
    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:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - enabled
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 853
    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:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 867
    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:891,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/pyexpat.c:893,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/pyexpat.c:895,1
    - Dst: XML_SetEncoding
      Src: /src/cpython/Modules/pyexpat.c:899,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/pyexpat.c:902,1
    - Dst: XML_Parse
      Src: /src/cpython/Modules/pyexpat.c:911,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:918,1
    - Dst: XML_Parse
      Src: /src/cpython/Modules/pyexpat.c:919,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/pyexpat.c:923,1
    - Dst: get_parse_result
      Src: /src/cpython/Modules/pyexpat.c:925,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: 917
        line_start: 917
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 926
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 926
    functionName: pyexpat_xmlparser_Parse_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_Parse
    - PyUnicode_Check
    - PyBuffer_Release
    - PyUnicode_AsUTF8AndSize
    - get_parse_result
    - assert
    - XML_SetEncoding
    - PyObject_GetBuffer
    - PyType_GetModuleState
    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:939,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/pyexpat.c:943,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/pyexpat.c:944,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/pyexpat.c:945,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/pyexpat.c:946,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pyexpat.c:948,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/pyexpat.c:950,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/pyexpat.c:953,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pyexpat.c:955,1
    - Dst: memcpy
      Src: /src/cpython/Modules/pyexpat.c:961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:962,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:967,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - buf_size
    - meth
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 969
    functionName: readinst
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - Py_SIZE
    - PyObject_CallFunction
    - memcpy
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_DECREF
    - Py_XDECREF
    - PyByteArray_Check
    - PyByteArray_AS_STRING
    - Py_TYPE
    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:989,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/pyexpat.c:991,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:995,1
    - Dst: XML_GetBuffer
      Src: /src/cpython/Modules/pyexpat.c:1001,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:1003,1
    - Dst: get_parse_result
      Src: /src/cpython/Modules/pyexpat.c:1004,1
    - Dst: readinst
      Src: /src/cpython/Modules/pyexpat.c:1007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1009,1
    - Dst: XML_ParseBuffer
      Src: /src/cpython/Modules/pyexpat.c:1012,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:1013,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:1014,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:1021,1
    - Dst: get_parse_result
      Src: /src/cpython/Modules/pyexpat.c:1022,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - self
    - cls
    - file
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 981
    functionDepth: 5
    functionLinenumber: 981
    functionLinenumberEnd: 1023
    functionName: pyexpat_xmlparser_ParseFile_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - readinst
    - PyErr_SetString
    - PyObject_GetOptionalAttr
    - PyType_GetModuleState
    - get_parse_result
    - XML_ParseBuffer
    - Py_XDECREF
    - PyErr_Occurred
    - Py_DECREF
    - XML_GetBuffer
    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:1038,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - base
    argTypes:
    - xmlparseobject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1042
    functionName: pyexpat_xmlparser_SetBase_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - XML_SetBase
    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:1054,1
    - Dst: XML_GetBase
      Src: /src/cpython/Modules/pyexpat.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1050
    functionDepth: 2
    functionLinenumber: 1050
    functionLinenumberEnd: 1055
    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:1075,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/pyexpat.c:1078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1085
    functionName: pyexpat_xmlparser_GetInputContext_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - XML_GetInputContext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetInputContext_impl(xmlparseobject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/pyexpat.c:1107,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/pyexpat.c:1109,1
    - Dst: XML_ExternalEntityParserCreate
      Src: /src/cpython/Modules/pyexpat.c:1121,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/pyexpat.c:1126,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/pyexpat.c:1128,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:1131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1133,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1134,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1138,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1139,1
    - Dst: XML_SetUserData
      Src: /src/cpython/Modules/pyexpat.c:1142,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/pyexpat.c:1149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1151,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1152,1
    - Dst: clear_handlers
      Src: /src/cpython/Modules/pyexpat.c:1154,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/pyexpat.c:1160,1
    - Dst: CALL_XML_HANDLER_SETTER
      Src: /src/cpython/Modules/pyexpat.c:1162,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/pyexpat.c:1166,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 4
    argNames:
    - self
    - cls
    - context
    - encoding
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1168
    functionName: pyexpat_xmlparser_ExternalEntityParserCreate_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - XML_ExternalEntityParserCreate
    - PyMem_New
    - PyErr_NoMemory
    - XML_SetUserData
    - clear_handlers
    - CALL_XML_HANDLER_SETTER
    - PyMem_Malloc
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    - PyType_GetModuleState
    - PyObject_GC_Track
    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:1189,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1191
    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:1216,1
    - Dst: XML_UseForeignDTD
      Src: /src/cpython/Modules/pyexpat.c:1219,1
    - Dst: set_error
      Src: /src/cpython/Modules/pyexpat.c:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - cls
    - flag
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1224
    functionName: pyexpat_xmlparser_UseForeignDTD_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_UseForeignDTD
    - set_error
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_UseForeignDTD_impl(xmlparseobject *self,
      PyTypeObject *cls,\n                                     int flag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:1234,1
    - Dst: setter
      Src: /src/cpython/Modules/pyexpat.c:1235,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/pyexpat.c:1241,1
    - Dst: set_invalid_arg
      Src: /src/cpython/Modules/pyexpat.c:1242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - cls
    - threshold
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - unsigned long long
    assertStmts:
    - condition: (self->itself != NULL)
      pos:
        line_end: 1233
        line_start: 1233
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1243
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1243
    functionName: set_activation_threshold
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - setter
    - set_invalid_arg
    - PyType_GetModuleState
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_activation_threshold(xmlparseobject *self,\n                         PyTypeObject
      *cls,\n                         unsigned long long threshold,\n                         XML_Bool
      (*setter)(XML_Parser, unsigned long long))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:1251,1
    - Dst: setter
      Src: /src/cpython/Modules/pyexpat.c:1252,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/pyexpat.c:1258,1
    - Dst: isnan
      Src: /src/cpython/Modules/pyexpat.c:1264,1
    - Dst: set_invalid_arg
      Src: /src/cpython/Modules/pyexpat.c:1267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - cls
    - max_factor
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - float
    assertStmts:
    - condition: (self->itself != NULL)
      pos:
        line_end: 1250
        line_start: 1250
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1268
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1268
    functionName: set_maximum_amplification
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - setter
    - isnan
    - assert
    - set_invalid_arg
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nset_maximum_amplification(xmlparseobject *self,\n                          PyTypeObject
      *cls,\n                          float max_factor,\n                          XML_Bool
      (*setter)(XML_Parser, float))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_activation_threshold
      Src: /src/cpython/Modules/pyexpat.c:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - threshold
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1293
    functionDepth: 3
    functionLinenumber: 1293
    functionLinenumberEnd: 1303
    functionName: pyexpat_xmlparser_SetBillionLaughsAttackProtectionActivationThreshold_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - set_activation_threshold
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_SetBillionLaughsAttackProtectionActivationThreshold_impl(xmlparseobject
      *self,\n                                                                           PyTypeObject
      *cls,\n                                                                           unsigned
      long long threshold)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_maximum_amplification
      Src: /src/cpython/Modules/pyexpat.c:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - max_factor
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1334
    functionDepth: 3
    functionLinenumber: 1334
    functionLinenumberEnd: 1344
    functionName: pyexpat_xmlparser_SetBillionLaughsAttackProtectionMaximumAmplification_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - set_maximum_amplification
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_SetBillionLaughsAttackProtectionMaximumAmplification_impl(xmlparseobject
      *self,\n                                                                            PyTypeObject
      *cls,\n                                                                            float
      max_factor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_activation_threshold
      Src: /src/cpython/Modules/pyexpat.c:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - threshold
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1363
    functionDepth: 3
    functionLinenumber: 1363
    functionLinenumberEnd: 1373
    functionName: pyexpat_xmlparser_SetAllocTrackerActivationThreshold_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - set_activation_threshold
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_SetAllocTrackerActivationThreshold_impl(xmlparseobject
      *self,\n                                                          PyTypeObject
      *cls,\n                                                          unsigned long
      long threshold)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_maximum_amplification
      Src: /src/cpython/Modules/pyexpat.c:1409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - max_factor
    argTypes:
    - xmlparseobject*
    - PyTypeObject*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1403
    functionDepth: 3
    functionLinenumber: 1403
    functionLinenumberEnd: 1413
    functionName: pyexpat_xmlparser_SetAllocTrackerMaximumAmplification_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - set_maximum_amplification
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_SetAllocTrackerMaximumAmplification_impl(xmlparseobject
      *self,\n                                                           PyTypeObject
      *cls,\n                                                           float max_factor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/pyexpat.c:1450,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/pyexpat.c:1450,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1451,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:1455,1
    - Dst: strlen
      Src: /src/cpython/Modules/pyexpat.c:1456,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1458,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/pyexpat.c:1462,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/pyexpat.c:1462,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:1463,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1464,1
    - Dst: strcpy
      Src: /src/cpython/Modules/pyexpat.c:1469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - name
    - mapping
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1471
    functionName: pyexpat_encoding_create
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyMem_Malloc
    - PyErr_NoMemory
    - strcpy
    - PyLong_AsInt
    - PyErr_SetString
    - strlen
    - PyTuple_Check
    - PyErr_Occurred
    - PyMem_Free
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: pyexpat_encoding_info
    signature: 'pyexpat_encoding_info *

      pyexpat_encoding_create(const char *name, PyObject *mapping)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:1476,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:1481,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/pyexpat.c:1482,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/pyexpat.c:1486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1487,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Modules/pyexpat.c:1490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - s
    argTypes:
    - void*
    - char*
    assertStmts:
    - condition: (info->map[i] < -1)
      pos:
        line_end: 1480
        line_start: 1480
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1493
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1493
    functionName: pyexpat_encoding_convert
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyUnicode_ReadChar
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyUnicode_Decode
    linkageType: ''
    returnType: int
    signature: int pyexpat_encoding_convert(void *data, const char *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:1525,1
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/cpython/Modules/pyexpat.c:1528,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/pyexpat.c:1532,1
    - Dst: PyObject_GetOptionalAttrString
      Src: /src/cpython/Modules/pyexpat.c:1534,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1541,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pyexpat.c:1542,1
    - Dst: pyexpat_encoding_create
      Src: /src/cpython/Modules/pyexpat.c:1547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1563,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/pyexpat.c:1565,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:1567,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/pyexpat.c:1571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1572,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pyexpat.c:1573,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/pyexpat.c:1579,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/pyexpat.c:1580,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/pyexpat.c:1582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1592,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 3
    argNames:
    - encodingHandlerData
    - name
    - info
    argTypes:
    - void*
    - XML_Char*
    - XML_Encoding*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1515
    functionDepth: 2
    functionLinenumber: 1515
    functionLinenumberEnd: 1595
    functionName: PyUnknownEncodingHandler
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - _PyCodec_LookupTextEncoding
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_READ
    - PyUnicode_GET_LENGTH
    - PyObject_GetOptionalAttrString
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_Format
    - Py_XDECREF
    - pyexpat_encoding_create
    - PyTuple_CheckExact
    - PyUnicode_Decode
    linkageType: ''
    returnType: int
    signature: "int PyUnknownEncodingHandler(void *encodingHandlerData,\n                         const
      XML_Char *name,\n                         XML_Encoding *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/pyexpat.c:1605,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/pyexpat.c:1617,1
    - Dst: XML_ParserCreate_MM
      Src: /src/cpython/Modules/pyexpat.c:1625,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1631,1
    - Dst: XML_SetHashSalt16Bytes
      Src: /src/cpython/Modules/pyexpat.c:1636,1
    - Dst: XML_SetHashSalt
      Src: /src/cpython/Modules/pyexpat.c:1639,1
    - Dst: XML_SetUserData
      Src: /src/cpython/Modules/pyexpat.c:1642,1
    - Dst: XML_SetUnknownEncodingHandler
      Src: /src/cpython/Modules/pyexpat.c:1643,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/pyexpat.c:1649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1651,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1652,1
    - Dst: clear_handlers
      Src: /src/cpython/Modules/pyexpat.c:1654,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/pyexpat.c:1656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 4
    argNames:
    - state
    - encoding
    - namespace_separator
    - intern
    argTypes:
    - pyexpat_state*
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1598
    functionDepth: 1
    functionLinenumber: 1598
    functionLinenumberEnd: 1658
    functionName: newxmlparseobject
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyMem_New
    - PyErr_NoMemory
    - XML_SetUnknownEncodingHandler
    - XML_SetHashSalt
    - XML_SetUserData
    - PyErr_SetString
    - clear_handlers
    - XML_SetHashSalt16Bytes
    - Py_DECREF
    - Py_XNewRef
    - PyObject_GC_Track
    - XML_ParserCreate_MM
    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:1663,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:1665,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:1667,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:1668,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/pyexpat.c:1668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1670
    functionName: xmlparse_traverse
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - xmlparseobject_CAST
    - Py_TYPE
    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:1675,1
    - Dst: clear_handlers
      Src: /src/cpython/Modules/pyexpat.c:1676,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:1677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1683
    functionName: xmlparse_clear
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - clear_handlers
    - xmlparseobject_CAST
    linkageType: ''
    returnType: int
    signature: int xmlparse_clear(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1688,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/pyexpat.c:1689,1
    - Dst: xmlparse_clear
      Src: /src/cpython/Modules/pyexpat.c:1690,1
    - Dst: XML_ParserFree
      Src: /src/cpython/Modules/pyexpat.c:1692,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:1695,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1698,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1702,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/pyexpat.c:1705,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/pyexpat.c:1706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:1707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1685
    functionDepth: 2
    functionLinenumber: 1685
    functionLinenumberEnd: 1708
    functionName: xmlparse_dealloc
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_ParserFree
    - Py_CLEAR
    - PyObject_GC_Del
    - PyMem_Free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - xmlparse_clear
    - xmlparseobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void xmlparse_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlparseobject_CAST
      Src: /src/cpython/Modules/pyexpat.c:1714,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:1716,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/pyexpat.c:1716,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/pyexpat.c:1722,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: 1715
        line_start: 1715
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1723
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1723
    functionName: xmlparse_handler_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - Py_NewRef
    - xmlparseobject_CAST
    - 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:1728,1
    - Dst: assert
      Src: /src/cpython/Modules/pyexpat.c:1730,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/pyexpat.c:1730,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1733,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:1742,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/pyexpat.c:1765,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/pyexpat.c:1768,1
    - Dst: CALL_XML_HANDLER_SETTER
      Src: /src/cpython/Modules/pyexpat.c:1769,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: 1729
        line_start: 1729
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1771
      start: 1725
    functionDepth: 4
    functionLinenumber: 1725
    functionLinenumberEnd: 1771
    functionName: xmlparse_handler_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_ARRAY_LENGTH
    - Py_XSETREF
    - PyErr_SetString
    - CALL_XML_HANDLER_SETTER
    - assert
    - flush_character_buffer
    - xmlparseobject_CAST
    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: 1780
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1780
    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:1793,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1790
    functionDepth: 1
    functionLinenumber: 1790
    functionLinenumberEnd: 1795
    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:1800,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1802,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/pyexpat.c:1805,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:1811,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1813,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:1820,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1797
    functionDepth: 4
    functionLinenumber: 1797
    functionLinenumberEnd: 1827
    functionName: xmlparse_buffer_text_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    - PyObject_IsTrue
    - PyMem_Free
    - PyMem_Malloc
    - flush_character_buffer
    - xmlparseobject_CAST
    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:1832,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1834
    functionName: xmlparse_buffer_size_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - xmlparseobject_CAST
    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:1839,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1841,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/pyexpat.c:1845,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1846,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/pyexpat.c:1850,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/pyexpat.c:1852,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1853,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/pyexpat.c:1865,1
    - Dst: flush_character_buffer
      Src: /src/cpython/Modules/pyexpat.c:1872,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:1877,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:1879,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:1881,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1836
    functionDepth: 4
    functionLinenumber: 1836
    functionLinenumberEnd: 1886
    functionName: xmlparse_buffer_size_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyErr_SetString
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_Format
    - PyMem_Free
    - flush_character_buffer
    - xmlparseobject_CAST
    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:1891,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1893
    functionName: xmlparse_buffer_used_getter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - xmlparseobject_CAST
    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:1898,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1900
    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:1905,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1907,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/pyexpat.c:1910,1
    - Dst: XML_SetReturnNSTriplet
      Src: /src/cpython/Modules/pyexpat.c:1915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 1917
    functionName: xmlparse_namespace_prefixes_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_SetReturnNSTriplet
    - PyErr_SetString
    - xmlparseobject_CAST
    - PyObject_IsTrue
    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:1922,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1924
    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:1929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1931,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/pyexpat.c:1934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1940
    functionName: xmlparse_ordered_attributes_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - xmlparseobject_CAST
    - 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:1945,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/pyexpat.c:1946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1942
    functionDepth: 1
    functionLinenumber: 1942
    functionLinenumberEnd: 1947
    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:1952,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:1954,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/pyexpat.c:1957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - op
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1963
    functionName: xmlparse_specified_attributes_setter
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - xmlparseobject_CAST
    - 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: 1972
      start: 1970
    functionDepth: 0
    functionLinenumber: 1970
    functionLinenumberEnd: 1972
    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: 1975
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 1975
    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:2039,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:2040,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/pyexpat.c:2050,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/pyexpat.c:2055,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/pyexpat.c:2056,1
    - Dst: pyexpat_get_state
      Src: /src/cpython/Modules/pyexpat.c:2060,1
    - Dst: newxmlparseobject
      Src: /src/cpython/Modules/pyexpat.c:2061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2063,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: 2066
      start: 2030
    functionDepth: 2
    functionLinenumber: 2030
    functionLinenumberEnd: 2066
    functionName: pyexpat_ParserCreate_impl
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - newxmlparseobject
    - PyErr_SetString
    - pyexpat_get_state
    - PyDict_Check
    - strlen
    - Py_DECREF
    - PyDict_New
    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:2081,1
    - Dst: XML_ErrorString
      Src: /src/cpython/Modules/pyexpat.c:2081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - code
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2077
    functionDepth: 2
    functionLinenumber: 2077
    functionLinenumberEnd: 2082
    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:2106,1
    - Dst: PyDescr_NewGetSet
      Src: /src/cpython/Modules/pyexpat.c:2114,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/pyexpat.c:2118,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Modules/pyexpat.c:2119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2123,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: 2105
        line_start: 2105
        source_file: /src/cpython/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 2126
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2126
    functionName: init_handler_descrs
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyDict_SetDefaultRef
    - PyDescr_NewGetSet
    - PyDescr_NAME
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int init_handler_descrs(pyexpat_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/cpython/Modules/pyexpat.c:2131,1
    - Dst: PyModule_New
      Src: /src/cpython/Modules/pyexpat.c:2133,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/pyexpat.c:2138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2140,1
    - Dst: _PyImport_SetModule
      Src: /src/cpython/Modules/pyexpat.c:2144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2149,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - mod
    - fullname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2157
    functionName: add_submodule
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - strrchr
    - PyUnicode_FromString
    - PyModule_New
    - PyModule_Add
    - Py_DECREF
    - _PyImport_SetModule
    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:2246,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:2251,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/pyexpat.c:2255,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/pyexpat.c:2260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2261,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/pyexpat.c:2265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2267,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/pyexpat.c:2271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2273,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: 2279
      start: 2228
    functionDepth: 1
    functionLinenumber: 2228
    functionLinenumberEnd: 2279
    functionName: add_error
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - XML_ErrorString
    - PyModule_AddStringConstant
    - PyDict_SetItemString
    - PyDict_SetItem
    - Py_DECREF
    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:2285,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/pyexpat.c:2290,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/pyexpat.c:2294,1
    - Dst: add_error
      Src: /src/cpython/Modules/pyexpat.c:2305,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:2310,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2317,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2321,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:2328,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/pyexpat.c:2329,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2281
    functionDepth: 2
    functionLinenumber: 2281
    functionLinenumberEnd: 2331
    functionName: add_errors_module
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - add_submodule
    - PyModule_AddStringConstant
    - Py_XDECREF
    - PyModule_Add
    - Py_DECREF
    - add_error
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int add_errors_module(PyObject *mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_submodule
      Src: /src/cpython/Modules/pyexpat.c:2336,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:2347,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2353,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2354,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2355,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2356,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2357,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2358,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2360,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2361,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2362,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2333
    functionDepth: 2
    functionLinenumber: 2333
    functionLinenumberEnd: 2366
    functionName: add_model_module
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - MYCONST
    - add_submodule
    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: 2346
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2346
    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:2372,1
    - Dst: XML_GetFeatureList
      Src: /src/cpython/Modules/pyexpat.c:2377,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:2379,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/pyexpat.c:2384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2385,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/pyexpat.c:2393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2395
    functionName: add_features
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_GetFeatureList
    - Py_BuildValue
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int add_features(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/pyexpat.c:2401,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/pyexpat.c:2403,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:2407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - capsule
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2398
    functionDepth: 1
    functionLinenumber: 2398
    functionLinenumberEnd: 2408
    functionName: pyexpat_capsule_destructor
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_FormatUnraisable
    - PyCapsule_GetPointer
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void pyexpat_capsule_destructor(PyObject *capsule)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_get_state
      Src: /src/cpython/Modules/pyexpat.c:2414,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/pyexpat.c:2415,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/pyexpat.c:2419,1
    - Dst: init_handler_descrs
      Src: /src/cpython/Modules/pyexpat.c:2426,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/pyexpat.c:2429,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/pyexpat.c:2437,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/pyexpat.c:2441,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/pyexpat.c:2445,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:2450,1
    - Dst: XML_ExpatVersion
      Src: /src/cpython/Modules/pyexpat.c:2451,1
    - Dst: XML_ExpatVersionInfo
      Src: /src/cpython/Modules/pyexpat.c:2455,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/pyexpat.c:2456,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2460,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/pyexpat.c:2468,1
    - Dst: add_errors_module
      Src: /src/cpython/Modules/pyexpat.c:2472,1
    - Dst: add_model_module
      Src: /src/cpython/Modules/pyexpat.c:2476,1
    - Dst: add_features
      Src: /src/cpython/Modules/pyexpat.c:2481,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2492,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2493,1
    - Dst: MYCONST
      Src: /src/cpython/Modules/pyexpat.c:2494,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/pyexpat.c:2497,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/pyexpat.c:2499,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/pyexpat.c:2557,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/pyexpat.c:2560,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/pyexpat.c:2564,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 96
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2411
    functionDepth: 3
    functionLinenumber: 2411
    functionLinenumberEnd: 2569
    functionName: pyexpat_exec
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - add_errors_module
    - Py_BuildValue
    - XML_ExpatVersionInfo
    - PyModule_Add
    - PyModule_AddObjectRef
    - PyErr_NewException
    - add_features
    - add_model_module
    - PyErr_NoMemory
    - MYCONST
    - PyCapsule_New
    - PyType_FromModuleAndSpec
    - PyMem_Free
    - PyMem_Malloc
    - XML_ExpatVersion
    - pyexpat_get_state
    - PyUnicode_InternFromString
    - init_handler_descrs
    - PyModule_AddStringConstant
    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: 2491
      start: 2486
    functionDepth: 0
    functionLinenumber: 2486
    functionLinenumberEnd: 2491
    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:2574,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:2575,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:2576,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/pyexpat.c:2577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2571
    functionDepth: 2
    functionLinenumber: 2571
    functionLinenumberEnd: 2579
    functionName: pyexpat_traverse
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - pyexpat_get_state
    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:2584,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:2585,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:2586,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:2587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2581
    functionDepth: 2
    functionLinenumber: 2581
    functionLinenumberEnd: 2589
    functionName: pyexpat_clear
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - pyexpat_get_state
    linkageType: ''
    returnType: int
    signature: int pyexpat_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_clear
      Src: /src/cpython/Modules/pyexpat.c:2594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2591
    functionDepth: 3
    functionLinenumber: 2591
    functionLinenumberEnd: 2595
    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:2620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2617
    functionDepth: 1
    functionLinenumber: 2617
    functionLinenumberEnd: 2621
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/pyexpat.c:2634,1
    - Dst: CALL_XML_HANDLER_SETTER
      Src: /src/cpython/Modules/pyexpat.c:2635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - initial
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2623
    functionDepth: 1
    functionLinenumber: 2623
    functionLinenumberEnd: 2638
    functionName: clear_handlers
    functionSourceFile: /src/cpython/Modules/pyexpat.c
    functionUses: 4
    functionsReached:
    - Py_CLEAR
    - CALL_XML_HANDLER_SETTER
    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: 2684
      start: 2678
    functionDepth: 0
    functionLinenumber: 2678
    functionLinenumberEnd: 2684
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    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: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    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:143,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Modules/_json.c:149,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: 159
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 159
    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:169,1
    - Dst: S_CHAR
      Src: /src/cpython/Modules/_json.c:171,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:184,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: 191
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 191
    functionName: ascii_escape_size
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - S_CHAR
    - PyErr_SetString
    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:201,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_json.c:205,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:209,1
    - Dst: S_CHAR
      Src: /src/cpython/Modules/_json.c:210,1
    - Dst: ascii_escape_unichar
      Src: /src/cpython/Modules/_json.c:214,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:219,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Modules/_json.c:219,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: 218
        line_start: 218
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 222
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 222
    functionName: ascii_escape_unicode_and_size
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - S_CHAR
    - PyUnicode_1BYTE_DATA
    - PyUnicode_READ
    - PyUnicode_New
    - assert
    - ascii_escape_unichar
    - _PyUnicode_CheckConsistency
    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:228,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:229,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:230,1
    - Dst: ascii_escape_size
      Src: /src/cpython/Modules/_json.c:232,1
    - Dst: ascii_escape_unicode_and_size
      Src: /src/cpython/Modules/_json.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pystr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: ascii_escape_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - ascii_escape_size
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - ascii_escape_unicode_and_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ascii_escape_unicode(PyObject *pystr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:247,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:248,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:249,1
    - Dst: ascii_escape_size
      Src: /src/cpython/Modules/_json.c:251,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:258,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:263,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_json.c:263,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:264,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:267,1
    - Dst: ascii_escape_unicode_and_size
      Src: /src/cpython/Modules/_json.c:270,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - writer
    - pystr
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(pystr))
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: write_escaped_ascii
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - ascii_escape_size
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - _steal_accumulate
    - PyUnicodeWriter_WriteChar
    - PyUnicode_GET_LENGTH
    - assert
    - PyUnicodeWriter_WriteASCII
    - ascii_escape_unicode_and_size
    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:286,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:300,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: 307
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 307
    functionName: escape_size
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 2
    functionsReached:
    - PyUnicode_READ
    - PyErr_SetString
    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:316,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:320,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_json.c:352,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Modules/_json.c:355,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Modules/_json.c:358,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:359,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:365,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Modules/_json.c:365,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: 358
        line_start: 358
        source_file: /src/cpython/Modules/_json.c
    - condition: (_PyUnicode_CheckConsistency(rval, 1))
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 368
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 368
    functionName: escape_unicode_and_size
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 2
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - _PyUnicode_CheckConsistency
    - PyUnicode_KIND
    - PyUnicode_New
    - assert
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    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:374,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:375,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:376,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Modules/_json.c:377,1
    - Dst: escape_size
      Src: /src/cpython/Modules/_json.c:379,1
    - Dst: escape_unicode_and_size
      Src: /src/cpython/Modules/_json.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pystr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 385
    functionName: escape_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - escape_unicode_and_size
    - PyUnicode_MAX_CHAR_VALUE
    - escape_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      escape_unicode(PyObject *pystr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:390,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:391,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:392,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Modules/_json.c:393,1
    - Dst: escape_size
      Src: /src/cpython/Modules/_json.c:395,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:402,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:407,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:410,1
    - Dst: escape_unicode_and_size
      Src: /src/cpython/Modules/_json.c:413,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - writer
    - pystr
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 419
    functionName: write_escaped_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - escape_unicode_and_size
    - _steal_accumulate
    - PyUnicodeWriter_WriteChar
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_MAX_CHAR_VALUE
    - escape_size
    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:425,1
    - Dst: PyImport_ImportModuleAttr
      Src: /src/cpython/Modules/_json.c:427,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_json.c:427,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_json.c:427,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_json.c:433,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_json.c:435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - msg
    - s
    - end
    argTypes:
    - char*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: raise_errmsg
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - _Py_STR
    - _Py_DECLARE_STR
    - PyObject_CallFunction
    - PyImport_ImportModuleAttr
    - Py_DECREF
    - _Py_ID
    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:445,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_json.c:447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: raise_stop_iteration
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - PyErr_SetObject
    linkageType: ''
    returnType: void
    signature: void raise_stop_iteration(Py_ssize_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_json.c:462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:464,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_json.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rval
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 468
    functionName: _build_rval_index_tuple
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - _PyTuple_FromPairSteal
    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:490,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:491,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:492,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:495,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:505,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:510,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_json.c:520,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:529,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_json.c:532,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_json.c:540,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:550,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:553,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:569,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:578,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:583,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:596,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Modules/_json.c:601,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:602,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:603,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:608,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:621,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Modules/_json.c:625,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Modules/_json.c:626,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:631,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_json.c:636,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_json.c:642,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: 644
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 644
    functionName: scanstring_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicodeWriter_Discard
    - raise_errmsg
    - PyUnicode_READ
    - PyErr_SetString
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - PyUnicodeWriter_WriteChar
    - PyUnicodeWriter_WriteSubstring
    - Py_UNICODE_IS_LOW_SURROGATE
    - PyUnicodeWriter_Finish
    - 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: scanstring_unicode
      Src: /src/cpython/Modules/_json.c:670,1
    - Dst: _build_rval_index_tuple
      Src: /src/cpython/Modules/_json.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - pystr
    - end
    - strict
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 672
    functionName: py_scanstring_impl
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _build_rval_index_tuple
    - scanstring_unicode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_scanstring_impl(PyObject *module, PyObject *pystr,
      Py_ssize_t end,\n                   int strict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ascii_escape_unicode
      Src: /src/cpython/Modules/_json.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - pystr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 687
    functionName: py_encode_basestring_ascii_impl
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - ascii_escape_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_encode_basestring_ascii_impl(PyObject *module, PyObject *pystr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: escape_unicode
      Src: /src/cpython/Modules/_json.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - pystr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: py_encode_basestring_impl
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - escape_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_encode_basestring_impl(PyObject *module, PyObject *pystr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:707,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_json.c:709,1
    - Dst: scanner_clear
      Src: /src/cpython/Modules/_json.c:710,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_json.c:711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 713
    functionName: scanner_dealloc
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - scanner_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void scanner_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyScannerObject_CAST
      Src: /src/cpython/Modules/_json.c:718,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:719,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:719,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:720,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:721,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:722,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:723,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:724,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 727
    functionName: scanner_traverse
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyScannerObject_CAST
    - Py_TYPE
    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:732,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:733,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:734,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:735,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:736,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:737,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 740
    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:762,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:763,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:764,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_json.c:767,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_json.c:769,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:774,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:774,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:777,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:782,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:783,1
    - Dst: scanstring_unicode
      Src: /src/cpython/Modules/_json.c:786,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Modules/_json.c:789,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_json.c:792,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:796,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:796,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:797,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:798,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:802,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:802,1
    - Dst: scan_once_unicode
      Src: /src/cpython/Modules/_json.c:805,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_json.c:810,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_json.c:814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:818,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_json.c:821,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:823,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:824,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:829,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:829,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:832,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:834,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:835,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:842,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:842,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:844,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:845,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:854,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:855,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:861,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:862,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:867,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:868,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:869,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 99
    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: 871
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 871
    functionName: _parse_object_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - scan_once_unicode
    - PyUnicode_READ
    - Py_DECREF
    - PyDict_New
    - PyDict_SetDefaultRef
    - raise_errmsg
    - Py_SETREF
    - PyDict_SetItem
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - _PyTuple_FromPairSteal
    - IS_WHITESPACE
    - scanstring_unicode
    - PyObject_CallOneArg
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_json.c:890,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:894,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:895,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:896,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:899,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:899,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:902,1
    - Dst: scan_once_unicode
      Src: /src/cpython/Modules/_json.c:906,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_json.c:910,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:913,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:917,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:917,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:920,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:922,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:923,1
    - Dst: IS_WHITESPACE
      Src: /src/cpython/Modules/_json.c:930,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:930,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:932,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:933,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:940,1
    - Dst: raise_errmsg
      Src: /src/cpython/Modules/_json.c:941,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_json.c:946,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:948,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:953,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:954,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 57
    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: 956
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 956
    functionName: _parse_array_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - scan_once_unicode
    - raise_errmsg
    - PyUnicode_READ
    - Py_CLEAR
    - Py_IsNone
    - PyUnicode_GET_LENGTH
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - Py_XDECREF
    - IS_WHITESPACE
    - PyObject_CallOneArg
    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:972,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:977,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:979,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: 982
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 982
    functionName: _parse_constant
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallOneArg
    - PyUnicode_GET_LENGTH
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _parse_constant(PyScannerObject *s, const char *constant, Py_ssize_t idx, Py_ssize_t
      *next_idx_ptr)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_json.c:1004,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:1005,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:1006,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1009,1
    - Dst: raise_stop_iteration
      Src: /src/cpython/Modules/_json.c:1012,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1018,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1018,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1020,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1020,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1023,1
    - Dst: raise_stop_iteration
      Src: /src/cpython/Modules/_json.c:1028,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:1033,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1036,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1036,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1040,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1040,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1045,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1045,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1048,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1048,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1051,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1051,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Modules/_json.c:1068,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:1073,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_json.c:1081,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_json.c:1084,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1086,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Modules/_json.c:1089,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Modules/_json.c:1091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1093,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: 1096
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1096
    functionName: _match_number_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - raise_stop_iteration
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyBytes_FromStringAndSize
    - PyUnicode_READ
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - PyUnicode_FromKindAndData
    - Py_DECREF
    - PyLong_FromString
    - PyFloat_FromString
    - PyObject_CallOneArg
    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:1113,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_json.c:1114,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_json.c:1115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1118,1
    - Dst: raise_stop_iteration
      Src: /src/cpython/Modules/_json.c:1122,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1126,1
    - Dst: scanstring_unicode
      Src: /src/cpython/Modules/_json.c:1129,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1132,1
    - Dst: _parse_object_unicode
      Src: /src/cpython/Modules/_json.c:1135,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1136,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1140,1
    - Dst: _parse_array_unicode
      Src: /src/cpython/Modules/_json.c:1143,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1144,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1148,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1148,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1148,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1155,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1155,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1155,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1162,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1163,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1164,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1165,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1172,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1173,1
    - Dst: _parse_constant
      Src: /src/cpython/Modules/_json.c:1174,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1179,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1180,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1181,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1182,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1183,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1184,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1185,1
    - Dst: _parse_constant
      Src: /src/cpython/Modules/_json.c:1186,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_json.c:1191,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: _match_number_unicode
      Src: /src/cpython/Modules/_json.c:1204,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: 1205
      start: 1098
    functionDepth: 4
    functionLinenumber: 1098
    functionLinenumberEnd: 1205
    functionName: scan_once_unicode
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 2
    functionsReached:
    - raise_stop_iteration
    - PyUnicode_KIND
    - PyUnicode_DATA
    - _Py_EnterRecursiveCall
    - _parse_object_unicode
    - PyUnicode_READ
    - PyErr_SetString
    - _Py_LeaveRecursiveCall
    - _parse_constant
    - PyUnicode_GET_LENGTH
    - _match_number_unicode
    - _parse_array_unicode
    - 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:1216,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:1219,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1220,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1222,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_json.c:1226,1
    - Dst: scan_once_unicode
      Src: /src/cpython/Modules/_json.c:1230,1
    - Dst: PyScannerObject_CAST
      Src: /src/cpython/Modules/_json.c:1230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1232,1
    - Dst: _build_rval_index_tuple
      Src: /src/cpython/Modules/_json.c:1235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1207
    functionDepth: 5
    functionLinenumber: 1207
    functionLinenumberEnd: 1236
    functionName: scanner_call
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyScannerObject_CAST
    - scan_once_unicode
    - PyUnicode_Check
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - _build_rval_index_tuple
    - Py_TYPE
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      scanner_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_json.c:1246,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_json.c:1249,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1255,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_json.c:1258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1259,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1262,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1265,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_json.c:1268,1
    - Dst: PyObject_GetAttrString
      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: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1285,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1287
    functionName: scanner_new
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyObject_GetAttrString
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - 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:1320,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_json.c:1326,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1327,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1329,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_json.c:1333,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1337,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1338,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1339,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1340,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1341,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1342,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Modules/_json.c:1348,1
    - Dst: PyCFunction_GetFunction
      Src: /src/cpython/Modules/_json.c:1349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1359
    functionName: encoder_new
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GetFunction
    - PyDict_Check
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    - PyCFunction_Check
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - 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:1375,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_json.c:1377,1
    - Dst: PySequence_Repeat
      Src: /src/cpython/Modules/_json.c:1378,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_json.c:1383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1385,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_json.c:1388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - indent_level
    argTypes:
    - PyEncoderObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1390
    functionName: create_indent_cache
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyUnicode_FromOrdinal
    - PySequence_Repeat
    - PyList_New
    - Py_DECREF
    - PyUnicode_AppendAndDel
    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:1399,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1399,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:1400,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1401,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_json.c:1402,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_json.c:1406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1408,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_json.c:1412,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_json.c:1413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1420,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: 1398
        line_start: 1398
        source_file: /src/cpython/Modules/_json.c
    - condition: (indent_level > 0)
      pos:
        line_end: 1399
        line_start: 1399
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 1422
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1422
    functionName: update_indent_cache
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - PyList_Append
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    - PyUnicode_Concat
    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:1428,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1429,1
    - Dst: update_indent_cache
      Src: /src/cpython/Modules/_json.c:1430,1
    - Dst: assert
      Src: /src/cpython/Modules/_json.c:1434,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1434,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1435,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: 1427
        line_start: 1427
        source_file: /src/cpython/Modules/_json.c
    - condition: (indent_level * 2 < PyList_GET_SIZE(indent_cache))
      pos:
        line_end: 1433
        line_start: 1433
        source_file: /src/cpython/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 1436
      start: 1424
    functionDepth: 2
    functionLinenumber: 1424
    functionLinenumberEnd: 1436
    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:1442,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1443,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: 1444
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1444
    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:1454,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_json.c:1456,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_json.c:1460,1
    - Dst: create_indent_cache
      Src: /src/cpython/Modules/_json.c:1467,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_json.c:1469,1
    - Dst: encoder_listencode_obj
      Src: /src/cpython/Modules/_json.c:1474,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_json.c:1475,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1476,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1479,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_json.c:1481,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_json.c:1485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1447
    functionDepth: 2
    functionLinenumber: 1447
    functionLinenumberEnd: 1488
    functionName: encoder_call
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - encoder_listencode_obj
    - PyEncoderObject_CAST
    - PyUnicodeWriter_Finish
    - PyTuple_Pack
    - Py_XDECREF
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - create_indent_cache
    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:1495,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_json.c:1498,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_json.c:1501,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1490
    functionDepth: 1
    functionLinenumber: 1490
    functionLinenumberEnd: 1507
    functionName: _encoded_const
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _encoded_const(PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_json.c:1513,1
    - Dst: isfinite
      Src: /src/cpython/Modules/_json.c:1514,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1516,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_json.c:1524,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_json.c:1527,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_json.c:1530,1
    - Dst: tp_repr
      Src: /src/cpython/Modules/_json.c:1533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - obj
    argTypes:
    - PyEncoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1534
    functionName: encoder_encode_float
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - tp_repr
    - PyUnicode_FromString
    - PyFloat_AS_DOUBLE
    - isfinite
    - PyErr_Format
    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:1543,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:1545,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:1549,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1550,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1553,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:1556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - writer
    - obj
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1557
    functionName: encoder_write_string
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _steal_accumulate
    - PyUnicode_Check
    - PyErr_Format
    - Py_DECREF
    - PyEncoderObject*::fast_encode
    - Py_TYPE
    - PyObject_CallOneArg
    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:1563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - writer
    - stolen
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1566
    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:1578,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1581,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1584,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_json.c:1586,1
    - Dst: encoder_write_string
      Src: /src/cpython/Modules/_json.c:1587,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_json.c:1589,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_json.c:1590,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Modules/_json.c:1592,1
    - Dst: tp_repr
      Src: /src/cpython/Modules/_json.c:1594,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:1597,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_json.c:1599,1
    - Dst: encoder_encode_float
      Src: /src/cpython/Modules/_json.c:1600,1
    - Dst: _steal_accumulate
      Src: /src/cpython/Modules/_json.c:1603,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_json.c:1605,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_json.c:1605,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1606,1
    - Dst: encoder_listencode_list
      Src: /src/cpython/Modules/_json.c:1608,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1609,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Modules/_json.c:1612,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1613,1
    - Dst: encoder_listencode_dict
      Src: /src/cpython/Modules/_json.c:1615,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1616,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_json.c:1623,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_json.c:1626,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1630,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_json.c:1633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1634,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_json.c:1638,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1640,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_json.c:1644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1645,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1646,1
    - Dst: encoder_listencode_obj
      Src: /src/cpython/Modules/_json.c:1649,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_json.c:1650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1652,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_json.c:1654,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1655,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_json.c:1659,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1660,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1663,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: 1667
      start: 1568
    functionDepth: 2
    functionLinenumber: 1568
    functionLinenumberEnd: 1667
    functionName: encoder_listencode_obj
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 2
    functionsReached:
    - encoder_listencode_dict
    - PyDict_DelItem
    - PyTuple_Check
    - PyLong_FromVoidPtr
    - _Py_EnterRecursiveCall
    - _steal_accumulate
    - PyUnicode_Check
    - PyLong_Check
    - PyDict_Contains
    - encoder_encode_float
    - Py_XDECREF
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteASCII
    - tp_repr
    - encoder_write_string
    - PyAnyDict_Check
    - PyErr_SetString
    - encoder_listencode_obj
    - PyFloat_Check
    - encoder_listencode_list
    - PyLong_CheckExact
    - PyList_Check
    - Py_DECREF
    - _PyErr_FormatNote
    - _Py_LeaveRecursiveCall
    - PyDict_SetItem
    - PyObject_CallOneArg
    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:1678,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_json.c:1679,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_json.c:1681,1
    - Dst: encoder_encode_float
      Src: /src/cpython/Modules/_json.c:1682,1
    - Dst: _encoded_const
      Src: /src/cpython/Modules/_json.c:1687,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_json.c:1689,1
    - Dst: tp_repr
      Src: /src/cpython/Modules/_json.c:1690,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_json.c:1696,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:1698,1
    - Dst: write_newline_indent
      Src: /src/cpython/Modules/_json.c:1709,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1710,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1717,1
    - Dst: encoder_write_string
      Src: /src/cpython/Modules/_json.c:1722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1723,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1728,1
    - Dst: encoder_listencode_obj
      Src: /src/cpython/Modules/_json.c:1731,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_json.c:1732,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: 1736
      start: 1669
    functionDepth: 3
    functionLinenumber: 1669
    functionLinenumberEnd: 1736
    functionName: encoder_encode_key_value
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - tp_repr
    - encoder_write_string
    - write_newline_indent
    - encoder_listencode_obj
    - PyFloat_Check
    - PyUnicode_Check
    - PyLong_Check
    - encoder_encode_float
    - _encoded_const
    - PyErr_Format
    - Py_DECREF
    - Py_NewRef
    - Py_TYPE
    - PyUnicodeWriter_WriteStr
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_json.c:1744,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1746,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1747,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_json.c:1750,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_json.c:1751,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1751,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1753,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1757,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1758,1
    - Dst: encoder_encode_key_value
      Src: /src/cpython/Modules/_json.c:1759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 8
    argNames:
    - s
    - writer
    - first
    - dct
    - items
    - indent_level
    - indent_cache
    - separator
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - bool*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1738
    functionDepth: 4
    functionLinenumber: 1738
    functionLinenumberEnd: 1769
    functionName: _encoder_iterate_mapping_lock_held
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - PyTuple_GET_ITEM
    - encoder_encode_key_value
    - PyErr_SetString
    - PyList_GET_ITEM
    - PyTuple_Check
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int _encoder_iterate_mapping_lock_held(PyEncoderObject *s, PyUnicodeWriter
      *writer,\n                            bool *first, PyObject *dct, PyObject *items,\n
      \                           Py_ssize_t indent_level, PyObject *indent_cache,\n
      \                           PyObject *separator)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_json.c:1776,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_json.c:1779,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_json.c:1782,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_json.c:1783,1
    - Dst: encoder_encode_key_value
      Src: /src/cpython/Modules/_json.c:1784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - s
    - writer
    - first
    - dct
    - indent_level
    - indent_cache
    - separator
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - bool*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1771
    functionDepth: 4
    functionLinenumber: 1771
    functionLinenumberEnd: 1795
    functionName: _encoder_iterate_dict_lock_held
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - encoder_encode_key_value
    - PyDict_Next
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int _encoder_iterate_dict_lock_held(PyEncoderObject *s, PyUnicodeWriter
      *writer,\n                         bool *first, PyObject *dct, Py_ssize_t indent_level,\n
      \                        PyObject *indent_cache, PyObject *separator)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1806,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1808,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_json.c:1813,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_json.c:1816,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1819,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_json.c:1822,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:1827,1
    - Dst: get_item_separator
      Src: /src/cpython/Modules/_json.c:1834,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Modules/_json.c:1839,1
    - Dst: PyMapping_Items
      Src: /src/cpython/Modules/_json.c:1840,1
    - Dst: PyList_Sort
      Src: /src/cpython/Modules/_json.c:1841,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1842,1
    - Dst: Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST
      Src: /src/cpython/Modules/_json.c:1847,1
    - Dst: _encoder_iterate_mapping_lock_held
      Src: /src/cpython/Modules/_json.c:1848,1
    - Dst: Py_END_CRITICAL_SECTION_SEQUENCE_FAST
      Src: /src/cpython/Modules/_json.c:1850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1851,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_json.c:1858,1
    - Dst: _encoder_iterate_dict_lock_held
      Src: /src/cpython/Modules/_json.c:1859,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_json.c:1861,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_json.c:1868,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1870,1
    - Dst: write_newline_indent
      Src: /src/cpython/Modules/_json.c:1874,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:1879,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1885,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 77
    argCount: 5
    argNames:
    - s
    - writer
    - dct
    - indent_level
    - indent_cache
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1797
    functionDepth: 5
    functionLinenumber: 1797
    functionLinenumberEnd: 1887
    functionName: encoder_listencode_dict
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - write_newline_indent
    - PyDict_DelItem
    - Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST
    - _encoder_iterate_dict_lock_held
    - get_item_separator
    - PyLong_FromVoidPtr
    - PyAnyDict_CheckExact
    - PyMapping_Items
    - PyDict_Contains
    - Py_XDECREF
    - _encoder_iterate_mapping_lock_held
    - PyUnicodeWriter_WriteASCII
    - PyDict_GET_SIZE
    - Py_END_CRITICAL_SECTION_SEQUENCE_FAST
    - PyErr_SetString
    - PyList_Sort
    - Py_DECREF
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicodeWriter_WriteChar
    - PyDict_SetItem
    - Py_CLEAR
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1894,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_json.c:1895,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_json.c:1898,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_json.c:1900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1901,1
    - Dst: encoder_listencode_obj
      Src: /src/cpython/Modules/_json.c:1905,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Modules/_json.c:1906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - s
    - writer
    - seq
    - s_fast
    - indent_level
    - indent_cache
    - separator
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1889
    functionDepth: 3
    functionLinenumber: 1889
    functionLinenumberEnd: 1913
    functionName: _encoder_iterate_fast_seq_lock_held
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - Py_INCREF
    - PySequence_Fast_GET_SIZE
    - encoder_listencode_obj
    - Py_DECREF
    - PySequence_Fast_GET_ITEM
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: "int _encoder_iterate_fast_seq_lock_held(PyEncoderObject *s, PyUnicodeWriter
      *writer,\n    PyObject *seq, PyObject *s_fast,\n    Py_ssize_t indent_level,
      PyObject *indent_cache, PyObject *separator)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_json.c:1923,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_json.c:1926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1927,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_json.c:1928,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_json.c:1933,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_json.c:1936,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_json.c:1939,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_json.c:1942,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:1947,1
    - Dst: get_item_separator
      Src: /src/cpython/Modules/_json.c:1954,1
    - Dst: write_newline_indent
      Src: /src/cpython/Modules/_json.c:1956,1
    - Dst: Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST
      Src: /src/cpython/Modules/_json.c:1962,1
    - Dst: _encoder_iterate_fast_seq_lock_held
      Src: /src/cpython/Modules/_json.c:1963,1
    - Dst: Py_END_CRITICAL_SECTION_SEQUENCE_FAST
      Src: /src/cpython/Modules/_json.c:1965,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_json.c:1970,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:1972,1
    - Dst: write_newline_indent
      Src: /src/cpython/Modules/_json.c:1977,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_json.c:1982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1985,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_json.c:1989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:1990,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 5
    argNames:
    - s
    - writer
    - seq
    - indent_level
    - indent_cache
    argTypes:
    - PyEncoderObject*
    - PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1915
    functionDepth: 4
    functionLinenumber: 1915
    functionLinenumberEnd: 1992
    functionName: encoder_listencode_list
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 1
    functionsReached:
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - _encoder_iterate_fast_seq_lock_held
    - PyErr_SetString
    - write_newline_indent
    - PyUnicodeWriter_WriteChar
    - PyDict_SetItem
    - PyDict_DelItem
    - PyDict_Contains
    - Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST
    - Py_CLEAR
    - PyUnicodeWriter_WriteASCII
    - Py_XDECREF
    - Py_DECREF
    - get_item_separator
    - PyLong_FromVoidPtr
    - Py_END_CRITICAL_SECTION_SEQUENCE_FAST
    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:1997,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_json.c:1999,1
    - Dst: encoder_clear
      Src: /src/cpython/Modules/_json.c:2000,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_json.c:2001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_json.c:2002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1994
    functionDepth: 1
    functionLinenumber: 1994
    functionLinenumberEnd: 2003
    functionName: encoder_dealloc
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - encoder_clear
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void encoder_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEncoderObject_CAST
      Src: /src/cpython/Modules/_json.c:2008,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:2009,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_json.c:2009,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:2010,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:2011,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:2012,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:2013,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:2014,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_json.c:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2017
    functionName: encoder_traverse
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyEncoderObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2022,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:2024,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:2025,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:2026,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:2027,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:2028,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_json.c:2029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2031
    functionName: encoder_clear
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 1
    functionsReached:
    - PyEncoderObject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int encoder_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_json.c:2067,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_json.c:2068,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_json.c:2072,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_json.c:2073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2064
    functionDepth: 1
    functionLinenumber: 2064
    functionLinenumberEnd: 2078
    functionName: _json_exec
    functionSourceFile: /src/cpython/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyType_FromSpec
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int _json_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_json.c:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2100
    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: 21
    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: 11
    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_Format
    - PyErr_SetString
    - PyErr_Occurred
    - assert
    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:
    - _curses_set_error
    - get_cursesmodule_state_by_win
    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:
    - _curses_set_null_error
    - get_cursesmodule_state_by_win
    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:
    - assert
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    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:
    - PyUnicode_AsEncodedString
    - PyLong_AsLongAndOverflow
    - PyUnicode_READ_CHAR
    - PyBytes_AS_STRING
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyLong_CheckExact
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyBytes_AsString
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_TYPE
    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:
    - PyCurses_ConvertToChtype
    - PyLong_AsLongAndOverflow
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyBytes_AsString
    - PyLong_CheckExact
    - PyUnicode_GET_LENGTH
    - PyUnicode_AsWideChar
    - PyErr_Format
    - PyBytes_GET_SIZE
    - Py_TYPE
    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: 588
        line_start: 588
        source_file: /src/cpython/Modules/_cursesmodule.c
    - condition: (wstr != NULL)
      pos:
        line_end: 581
        line_start: 581
        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:
    - PyUnicode_AsEncodedString
    - PyBytes_Check
    - PyUnicode_Check
    - Py_CLEAR
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyBytes_AsStringAndSize
    - PyUnicode_AsWideCharString
    - Py_NewRef
    - Py_TYPE
    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:
    - PyLong_AsLongAndOverflow
    - PyErr_Format
    - PyErr_Occurred
    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:
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    - PyErr_Format
    - PyErr_Occurred
    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:
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    - PyErr_Occurred
    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:
    - PyObject_GC_New
    - nl_langinfo
    - _PyMem_Strdup
    - PyErr_NoMemory
    - GetConsoleOutputCP
    - Py_DECREF
    - PyObject_GC_Track
    - PyOS_snprintf
    - Py_XINCREF
    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:
    - delwin
    - curses_window_set_error
    - PyTypeObject*::tp_free
    - PyMem_Free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyErr_FormatUnraisable
    - Py_TYPE
    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_VISIT
    - Py_TYPE
    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_check_err
    - PyCurses_ConvertToCchar_t
    - mvwadd_wch
    - wadd_wch
    - curses_window_set_error
    - setcchar
    - mvwaddch
    - waddch
    - 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:
    - curses_window_set_error
    - wattrset
    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: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:1115,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:1121,1
    - Dst: mvwaddwstr
      Src: /src/cpython/Modules/_cursesmodule.c:1123,1
    - Dst: waddwstr
      Src: /src/cpython/Modules/_cursesmodule.c:1127,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:1130,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:1136,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:1138,1
    - Dst: mvwaddstr
      Src: /src/cpython/Modules/_cursesmodule.c:1140,1
    - Dst: waddstr
      Src: /src/cpython/Modules/_cursesmodule.c:1144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:1147,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1150,1
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1154,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1155,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 7
    argNames:
    - self
    - group_left_1
    - y
    - x
    - str
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - long
    assertStmts:
    - condition: (bytesobj == NULL)
      pos:
        line_end: 1120
        line_start: 1120
        source_file: /src/cpython/Modules/_cursesmodule.c
    - condition: (wstr == NULL)
      pos:
        line_end: 1135
        line_start: 1135
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 1158
      start: 1087
    functionDepth: 5
    functionLinenumber: 1087
    functionLinenumberEnd: 1158
    functionName: _curses_window_addstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - waddwstr
    - PyBytes_AS_STRING
    - curses_window_check_err
    - assert
    - curses_release_wstr
    - waddstr
    - mvwaddstr
    - mvwaddwstr
    - Py_XDECREF
    - curses_wattrset
    - PyMem_Free
    - curses_window_set_error
    - Py_DECREF
    - getattrs
    - wattrset
    - PyCurses_ConvertToString
    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:1207,1
    - Dst: PyCurses_ConvertToString
      Src: /src/cpython/Modules/_cursesmodule.c:1209,1
    - Dst: getattrs
      Src: /src/cpython/Modules/_cursesmodule.c:1215,1
    - Dst: curses_wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1216,1
    - Dst: curses_release_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:1217,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:1218,1
    - Dst: mvwaddnwstr
      Src: /src/cpython/Modules/_cursesmodule.c:1225,1
    - Dst: waddnwstr
      Src: /src/cpython/Modules/_cursesmodule.c:1229,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:1232,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:1237,1
    - Dst: mvwaddnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1239,1
    - Dst: waddnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:1246,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1249,1
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:1253,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    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: 1257
      start: 1190
    functionDepth: 5
    functionLinenumber: 1190
    functionLinenumberEnd: 1257
    functionName: _curses_window_addnstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mvwaddnstr
    - PyBytes_AS_STRING
    - waddnstr
    - curses_window_check_err
    - curses_release_wstr
    - wattrset
    - curses_window_set_error
    - waddnwstr
    - Py_XDECREF
    - curses_wattrset
    - PyMem_Free
    - Py_DECREF
    - getattrs
    - mvwaddnwstr
    - PyCurses_ConvertToString
    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:1277,1
    - Dst: wbkgd
      Src: /src/cpython/Modules/_cursesmodule.c:1280,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1271
    functionDepth: 5
    functionLinenumber: 1271
    functionLinenumberEnd: 1282
    functionName: _curses_window_bkgd_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - wbkgd
    - 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:1297,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1293
    functionDepth: 5
    functionLinenumber: 1293
    functionLinenumberEnd: 1299
    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:1314,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1310
    functionDepth: 5
    functionLinenumber: 1310
    functionLinenumberEnd: 1316
    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:1331,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1327
    functionDepth: 5
    functionLinenumber: 1327
    functionLinenumberEnd: 1333
    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:1354,1
    - Dst: wbkgdset
      Src: /src/cpython/Modules/_cursesmodule.c:1357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1347
    functionDepth: 2
    functionLinenumber: 1347
    functionLinenumberEnd: 1359
    functionName: _curses_window_bkgdset_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - wbkgdset
    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:1408,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1409,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1410,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1411,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1412,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1413,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1414,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/cpython/Modules/_cursesmodule.c:1415,1
    - Dst: wborder
      Src: /src/cpython/Modules/_cursesmodule.c:1419,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1422,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: 1423
      start: 1390
    functionDepth: 5
    functionLinenumber: 1390
    functionLinenumberEnd: 1423
    functionName: _curses_window_border_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wborder
    - CONVERTTOCHTYPE
    - 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: 1407
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1407
    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:1450,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:1453,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1457,1
    - Dst: box
      Src: /src/cpython/Modules/_cursesmodule.c:1457,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: 1458
      start: 1443
    functionDepth: 5
    functionLinenumber: 1443
    functionLinenumberEnd: 1458
    functionName: _curses_window_box_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - curses_window_check_err
    - box
    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:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - y
    - x
    argTypes:
    - WINDOW*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1469
    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: 1475
      start: 1474
    functionDepth: 0
    functionLinenumber: 1474
    functionLinenumberEnd: 1475
    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: 1478
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1478
    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:1506,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_cursesmodule.c:1517,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1519,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1524,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1529,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1535,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:1541,1
    - Dst: PAIR_NUMBER
      Src: /src/cpython/Modules/_cursesmodule.c:1546,1
    - Dst: mvwchgat
      Src: /src/cpython/Modules/_cursesmodule.c:1550,1
    - Dst: getyx
      Src: /src/cpython/Modules/_cursesmodule.c:1553,1
    - Dst: wchgat
      Src: /src/cpython/Modules/_cursesmodule.c:1554,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1558,1
    - Dst: touchline
      Src: /src/cpython/Modules/_cursesmodule.c:1561,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1562,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1503
    functionDepth: 5
    functionLinenumber: 1503
    functionLinenumberEnd: 1563
    functionName: PyCursesWindow_ChgAt
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - PAIR_NUMBER
    - touchline
    - curses_window_check_err
    - getyx
    - PyErr_SetString
    - wchgat
    - curses_window_set_error
    - PyArg_ParseTuple
    - mvwchgat
    - _PyCursesWindowObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_ChgAt(PyObject *op, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wdelch
      Src: /src/cpython/Modules/_cursesmodule.c:1588,1
    - Dst: py_mvwdelch
      Src: /src/cpython/Modules/_cursesmodule.c:1592,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1595,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: 1596
      start: 1580
    functionDepth: 5
    functionLinenumber: 1580
    functionLinenumberEnd: 1596
    functionName: _curses_window_delch_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wdelch
    - curses_window_check_err
    - py_mvwdelch
    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:1627,1
    - Dst: curses_window_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:1630,1
    - Dst: get_cursesmodule_state_by_win
      Src: /src/cpython/Modules/_cursesmodule.c:1634,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:1635,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: 1636
      start: 1620
    functionDepth: 4
    functionLinenumber: 1620
    functionLinenumberEnd: 1636
    functionName: _curses_window_derwin_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesWindow_New
    - derwin
    - get_cursesmodule_state_by_win
    - curses_window_set_null_error
    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:1658,1
    - Dst: py_is_pad
      Src: /src/cpython/Modules/_cursesmodule.c:1664,1
    - Dst: pechochar
      Src: /src/cpython/Modules/_cursesmodule.c:1665,1
    - Dst: wechochar
      Src: /src/cpython/Modules/_cursesmodule.c:1671,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:1674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1651
    functionDepth: 5
    functionLinenumber: 1651
    functionLinenumberEnd: 1675
    functionName: _curses_window_echochar_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - wechochar
    - curses_window_check_err
    - pechochar
    - py_is_pad
    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:1695,1
    - Dst: wenclose
      Src: /src/cpython/Modules/_cursesmodule.c:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1696
    functionName: _curses_window_enclose_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wenclose
    - PyBool_FromLong
    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:1709,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:1711,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:1714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1705
    functionDepth: 4
    functionLinenumber: 1705
    functionLinenumberEnd: 1715
    functionName: _curses_window_getbkgd_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getbkgd
    - curses_window_set_error
    - 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:1722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_cursesmodule.c:1722,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_cursesmodule.c:1723,1
    - Dst: get_cursesmodule_state_by_win
      Src: /src/cpython/Modules/_cursesmodule.c:1726,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:1727,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: 1721
        line_start: 1721
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 1730
      start: 1717
    functionDepth: 3
    functionLinenumber: 1717
    functionLinenumberEnd: 1730
    functionName: curses_check_signals_on_input_error
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state_by_win
    - assert
    - PyErr_CheckSignals
    - PyErr_Format
    - PyErr_Occurred
    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:1760,1
    - Dst: mvwgetch
      Src: /src/cpython/Modules/_cursesmodule.c:1763,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: 1764
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1764
    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:1808,1
    - Dst: mvwgetch
      Src: /src/cpython/Modules/_cursesmodule.c:1811,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: 1812
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1812
    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:1863,1
    - Dst: mvwget_wch
      Src: /src/cpython/Modules/_cursesmodule.c:1866,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: 1867
      start: 1853
    functionDepth: 0
    functionLinenumber: 1853
    functionLinenumberEnd: 1867
    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:1894,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1901,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1906,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_cursesmodule.c:1910,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:1915,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: 1920
      start: 1889
    functionDepth: 1
    functionLinenumber: 1889
    functionLinenumberEnd: 1920
    functionName: curses_clinic_parse_optional_xy_n
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_Format
    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:1936,1
    - Dst: curses_clinic_parse_optional_xy_n
      Src: /src/cpython/Modules/_cursesmodule.c:1941,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_cursesmodule.c:1947,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_cursesmodule.c:1948,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_cursesmodule.c:1952,1
    - Dst: wmove
      Src: /src/cpython/Modules/_cursesmodule.c:1957,1
    - Dst: wgetnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1959,1
    - Dst: mvwgetnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1961,1
    - Dst: wgetnstr
      Src: /src/cpython/Modules/_cursesmodule.c:1967,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_cursesmodule.c:1972,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_cursesmodule.c:1973,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_cursesmodule.c:1975,1
    - Dst: strlen
      Src: /src/cpython/Modules/_cursesmodule.c:1975,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1933
    functionDepth: 2
    functionLinenumber: 1933
    functionLinenumberEnd: 1976
    functionName: PyCursesWindow_getstr
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - Py_MIN
    - curses_clinic_parse_optional_xy_n
    - wgetnstr
    - wmove
    - mvwgetnstr
    - PyBytesWriter_GetData
    - strlen
    - _PyCursesWindowObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_getstr(PyObject *op, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:2010,1
    - Dst: wmove
      Src: /src/cpython/Modules/_cursesmodule.c:2013,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2014,1
    - Dst: whline
      Src: /src/cpython/Modules/_cursesmodule.c:2018,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2019,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: 2020
      start: 2002
    functionDepth: 5
    functionLinenumber: 2002
    functionLinenumberEnd: 2020
    functionName: _curses_window_hline_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - curses_window_check_err
    - whline
    - curses_window_set_error
    - wmove
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_hline_impl(PyCursesWindowObject *self,
      int group_left_1,\n                          int y, int x, PyObject *ch, int
      n,\n                          int group_right_1, long attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:2056,1
    - Dst: winsch
      Src: /src/cpython/Modules/_cursesmodule.c:2061,1
    - Dst: mvwinsch
      Src: /src/cpython/Modules/_cursesmodule.c:2065,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2069,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: 2070
      start: 2047
    functionDepth: 5
    functionLinenumber: 2047
    functionLinenumberEnd: 2070
    functionName: _curses_window_insch_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - mvwinsch
    - winsch
    - curses_window_check_err
    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:2098,1
    - Dst: mvwinch
      Src: /src/cpython/Modules/_cursesmodule.c:2102,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2106,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_cursesmodule.c:2109,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: 2110
      start: 2089
    functionDepth: 4
    functionLinenumber: 2089
    functionLinenumberEnd: 2110
    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:2131,1
    - Dst: curses_clinic_parse_optional_xy_n
      Src: /src/cpython/Modules/_cursesmodule.c:2136,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_cursesmodule.c:2142,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_cursesmodule.c:2143,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_cursesmodule.c:2147,1
    - Dst: mvwinnstr
      Src: /src/cpython/Modules/_cursesmodule.c:2150,1
    - Dst: winnstr
      Src: /src/cpython/Modules/_cursesmodule.c:2153,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_cursesmodule.c:2157,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_cursesmodule.c:2158,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_cursesmodule.c:2160,1
    - Dst: strlen
      Src: /src/cpython/Modules/_cursesmodule.c:2160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2128
    functionDepth: 2
    functionLinenumber: 2128
    functionLinenumberEnd: 2161
    functionName: PyCursesWindow_instr
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - mvwinnstr
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - Py_MIN
    - curses_clinic_parse_optional_xy_n
    - strlen
    - winnstr
    - PyBytesWriter_GetData
    - _PyCursesWindowObject_CAST
    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: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:2219,1
    - Dst: mvwins_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:2226,1
    - Dst: wins_wstr
      Src: /src/cpython/Modules/_cursesmodule.c:2230,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:2233,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:2238,1
    - Dst: mvwinsstr
      Src: /src/cpython/Modules/_cursesmodule.c:2240,1
    - Dst: winsstr
      Src: /src/cpython/Modules/_cursesmodule.c:2244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:2247,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2250,1
    - Dst: wattrset
      Src: /src/cpython/Modules/_cursesmodule.c:2254,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2255,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: 2258
      start: 2191
    functionDepth: 5
    functionLinenumber: 2191
    functionLinenumberEnd: 2258
    functionName: _curses_window_insstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mvwinsstr
    - PyBytes_AS_STRING
    - curses_window_check_err
    - winsstr
    - curses_release_wstr
    - curses_window_set_error
    - Py_XDECREF
    - curses_wattrset
    - wins_wstr
    - PyMem_Free
    - Py_DECREF
    - getattrs
    - wattrset
    - mvwins_wstr
    - PyCurses_ConvertToString
    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:
    - winsnstr
    - mvwinsnstr
    - PyBytes_AS_STRING
    - curses_window_check_err
    - mvwins_nwstr
    - curses_release_wstr
    - curses_window_set_error
    - PyMem_Free
    - curses_wattrset
    - Py_DECREF
    - getattrs
    - wattrset
    - wins_nwstr
    - PyCurses_ConvertToString
    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:2379,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2381,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:2384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - line
    argTypes:
    - PyCursesWindowObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2374
    functionDepth: 4
    functionLinenumber: 2374
    functionLinenumberEnd: 2385
    functionName: _curses_window_is_linetouched_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - is_linetouched
    - curses_window_set_error
    - PyBool_FromLong
    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:2433,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2435,1
    - Dst: pnoutrefresh
      Src: /src/cpython/Modules/_cursesmodule.c:2441,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2448,1
    - Dst: wnoutrefresh
      Src: /src/cpython/Modules/_cursesmodule.c:2454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2425
    functionDepth: 1
    functionLinenumber: 2425
    functionLinenumberEnd: 2457
    functionName: _curses_window_noutrefresh_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - pnoutrefresh
    - PyErr_SetString
    - py_is_pad
    - wnoutrefresh
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_noutrefresh_impl(PyCursesWindowObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copywin
      Src: /src/cpython/Modules/_cursesmodule.c:2497,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2499,1
    - Dst: overlay
      Src: /src/cpython/Modules/_cursesmodule.c:2502,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2503,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: 2505
      start: 2487
    functionDepth: 5
    functionLinenumber: 2487
    functionLinenumberEnd: 2505
    functionName: _curses_window_overlay_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - copywin
    - curses_window_check_err
    - overlay
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_overlay_impl(PyCursesWindowObject *self,\n
      \                           PyCursesWindowObject *destwin, int group_right_1,\n
      \                           int sminrow, int smincol, int dminrow,\n                            int
      dmincol, int dmaxrow, int dmaxcol)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copywin
      Src: /src/cpython/Modules/_cursesmodule.c:2546,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2548,1
    - Dst: overwrite
      Src: /src/cpython/Modules/_cursesmodule.c:2551,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2552,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: 2554
      start: 2535
    functionDepth: 5
    functionLinenumber: 2535
    functionLinenumberEnd: 2554
    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:
    - fileno
    - fread
    - _Py_set_inheritable
    - curses_window_check_err
    - fclose
    - tmpfile
    - putwin
    - Py_DECREF
    - PyObject_CallMethod
    - PyErr_SetFromErrno
    - fseek
    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:
    - wrefresh
    - prefresh
    - PyErr_SetString
    - py_is_pad
    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:2741,1
    - Dst: subpad
      Src: /src/cpython/Modules/_cursesmodule.c:2742,1
    - Dst: subwin
      Src: /src/cpython/Modules/_cursesmodule.c:2748,1
    - Dst: curses_window_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:2753,1
    - Dst: get_cursesmodule_state_by_win
      Src: /src/cpython/Modules/_cursesmodule.c:2757,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:2758,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: 2759
      start: 2731
    functionDepth: 4
    functionLinenumber: 2731
    functionLinenumberEnd: 2759
    functionName: _curses_window_subwin_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state_by_win
    - subpad
    - curses_window_set_null_error
    - PyCursesWindow_New
    - subwin
    - py_is_pad
    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:2784,1
    - Dst: wscrl
      Src: /src/cpython/Modules/_cursesmodule.c:2788,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - group_right_1
    - lines
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2776
    functionDepth: 5
    functionLinenumber: 2776
    functionLinenumberEnd: 2792
    functionName: _curses_window_scroll_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - scroll
    - curses_window_check_err
    - wscrl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_scroll_impl(PyCursesWindowObject *self,
      int group_right_1,\n                           int lines)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: touchline
      Src: /src/cpython/Modules/_cursesmodule.c:2819,1
    - Dst: wtouchln
      Src: /src/cpython/Modules/_cursesmodule.c:2823,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2826,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: 2827
      start: 2811
    functionDepth: 5
    functionLinenumber: 2811
    functionLinenumberEnd: 2827
    functionName: _curses_window_touchline_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wtouchln
    - touchline
    - 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:2861,1
    - Dst: wmove
      Src: /src/cpython/Modules/_cursesmodule.c:2864,1
    - Dst: curses_window_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:2865,1
    - Dst: wvline
      Src: /src/cpython/Modules/_cursesmodule.c:2869,1
    - Dst: curses_window_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:2870,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: 2871
      start: 2853
    functionDepth: 5
    functionLinenumber: 2853
    functionLinenumberEnd: 2871
    functionName: _curses_window_vline_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - curses_window_check_err
    - wvline
    - curses_window_set_error
    - wmove
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_vline_impl(PyCursesWindowObject *self,
      int group_left_1,\n                          int y, int x, PyObject *ch, int
      n,\n                          int group_right_1, long attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCursesWindowObject_CAST
      Src: /src/cpython/Modules/_cursesmodule.c:2876,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:2877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2873
    functionDepth: 1
    functionLinenumber: 2873
    functionLinenumberEnd: 2878
    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:2883,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2890,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_cursesmodule.c:2895,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:2896,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_cursesmodule.c:2900,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Modules/_cursesmodule.c:2903,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:2903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:2904,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_cursesmodule.c:2906,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:2909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2880
    functionDepth: 1
    functionLinenumber: 2880
    functionLinenumberEnd: 2912
    functionName: PyCursesWindow_set_encoding
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _PyMem_Strdup
    - PyErr_NoMemory
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsASCIIString
    - PyMem_Free
    - PyBytes_AS_STRING
    - Py_DECREF
    - _PyCursesWindowObject_CAST
    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: 2915
      start: 2914
    functionDepth: 0
    functionLinenumber: 2914
    functionLinenumberEnd: 2915
    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: 3065
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3065
    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: 3081
      start: 3066
    functionDepth: 0
    functionLinenumber: 3066
    functionLinenumberEnd: 3081
    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: 3092
      start: 3082
    functionDepth: 0
    functionLinenumber: 3082
    functionLinenumberEnd: 3092
    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: 3103
      start: 3093
    functionDepth: 0
    functionLinenumber: 3093
    functionLinenumberEnd: 3103
    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: 3109
      start: 3104
    functionDepth: 0
    functionLinenumber: 3104
    functionLinenumberEnd: 3109
    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: 3116
      start: 3110
    functionDepth: 0
    functionLinenumber: 3110
    functionLinenumberEnd: 3116
    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:3133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3127
    functionDepth: 0
    functionLinenumber: 3127
    functionLinenumberEnd: 3135
    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:
    - PyCursesStatefulInitialised
    - curses_set_error
    - Py_BuildValue
    - _COLOR_CONTENT_FUNC
    - PyCursesStatefulInitialisedColor
    - Py_STRINGIFY
    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:3244,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:3245,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:3247,1
    - Dst: COLOR_PAIR
      Src: /src/cpython/Modules/_cursesmodule.c:3247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - pair_number
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3248
      start: 3240
    functionDepth: 1
    functionLinenumber: 3240
    functionLinenumberEnd: 3248
    functionName: _curses_color_pair_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - PyCursesStatefulInitialisedColor
    - PyLong_FromLong
    - COLOR_PAIR
    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:3271,1
    - Dst: curs_set
      Src: /src/cpython/Modules/_cursesmodule.c:3273,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:3275,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:3279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - visibility
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3265
    functionDepth: 4
    functionLinenumber: 3265
    functionLinenumberEnd: 3280
    functionName: _curses_curs_set_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - PyLong_FromLong
    - curs_set
    - curses_set_error
    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:3327,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3329,1
    - Dst: delay_output
      Src: /src/cpython/Modules/_cursesmodule.c:3329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - ms
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3323
    functionDepth: 5
    functionLinenumber: 3323
    functionLinenumberEnd: 3330
    functionName: _curses_delay_output_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - delay_output
    - curses_check_err
    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:3384,1
    - Dst: erasechar
      Src: /src/cpython/Modules/_cursesmodule.c:3386,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_cursesmodule.c:3388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3389
      start: 3378
    functionDepth: 1
    functionLinenumber: 3378
    functionLinenumberEnd: 3389
    functionName: _curses_erasechar_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyCursesStatefulInitialised
    - erasechar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_erasechar_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3435,1
    - Dst: getsyx
      Src: /src/cpython/Modules/_cursesmodule.c:3437,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:3439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3428
    functionDepth: 1
    functionLinenumber: 3428
    functionLinenumberEnd: 3440
    functionName: _curses_getsyx_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - getsyx
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getsyx_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3460,1
    - Dst: getmouse
      Src: /src/cpython/Modules/_cursesmodule.c:3462,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:3464,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:3467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3453
    functionDepth: 4
    functionLinenumber: 3453
    functionLinenumberEnd: 3471
    functionName: _curses_getmouse_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_set_error
    - Py_BuildValue
    - getmouse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getmouse_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3495,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3502,1
    - Dst: ungetmouse
      Src: /src/cpython/Modules/_cursesmodule.c:3502,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: 3503
      start: 3488
    functionDepth: 5
    functionLinenumber: 3488
    functionLinenumberEnd: 3503
    functionName: _curses_ungetmouse_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - ungetmouse
    - 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:3528,1
    - Dst: tmpfile
      Src: /src/cpython/Modules/_cursesmodule.c:3530,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_cursesmodule.c:3532,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/_cursesmodule.c:3534,1
    - Dst: fileno
      Src: /src/cpython/Modules/_cursesmodule.c:3534,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_cursesmodule.c:3537,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_cursesmodule.c:3540,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:3541,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:3543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3544,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_cursesmodule.c:3547,1
    - Dst: fwrite
      Src: /src/cpython/Modules/_cursesmodule.c:3548,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_cursesmodule.c:3548,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_cursesmodule.c:3549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3553,1
    - Dst: fseek
      Src: /src/cpython/Modules/_cursesmodule.c:3555,1
    - Dst: getwin
      Src: /src/cpython/Modules/_cursesmodule.c:3556,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:3558,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3561,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:3562,1
    - Dst: fclose
      Src: /src/cpython/Modules/_cursesmodule.c:3565,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - module
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3518
    functionDepth: 4
    functionLinenumber: 3518
    functionLinenumberEnd: 3567
    functionName: _curses_getwin
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - curses_set_null_error
    - fwrite
    - Py_TYPE
    - fileno
    - PyCursesStatefulInitialised
    - PyBytes_AS_STRING
    - fseek
    - get_cursesmodule_state
    - getwin
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _Py_set_inheritable
    - fclose
    - PyCursesWindow_New
    - tmpfile
    - PyErr_Format
    - PyObject_CallMethod
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getwin(PyObject *module, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:3585,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3587,1
    - Dst: halfdelay
      Src: /src/cpython/Modules/_cursesmodule.c:3587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - tenths
    argTypes:
    - PyObject*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3588
      start: 3581
    functionDepth: 5
    functionLinenumber: 3581
    functionLinenumberEnd: 3588
    functionName: _curses_halfdelay_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_check_err
    - halfdelay
    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:3640,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:3642,1
    - Dst: has_key
      Src: /src/cpython/Modules/_cursesmodule.c:3642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3643
      start: 3636
    functionDepth: 1
    functionLinenumber: 3636
    functionLinenumberEnd: 3643
    functionName: _curses_has_key_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - has_key
    - PyCursesStatefulInitialised
    - PyBool_FromLong
    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:3671,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:3672,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3674,1
    - Dst: _CURSES_INIT_COLOR_FUNC
      Src: /src/cpython/Modules/_cursesmodule.c:3675,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_cursesmodule.c:3676,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: 3678
      start: 3666
    functionDepth: 5
    functionLinenumber: 3666
    functionLinenumberEnd: 3678
    functionName: _curses_init_color_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _CURSES_INIT_COLOR_FUNC
    - PyCursesStatefulInitialised
    - PyCursesStatefulInitialisedColor
    - Py_STRINGIFY
    - curses_check_err
    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:3702,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:3703,1
    - Dst: _CURSES_INIT_PAIR_FUNC
      Src: /src/cpython/Modules/_cursesmodule.c:3705,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:3707,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_cursesmodule.c:3712,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:3713,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: 3719
      start: 3698
    functionDepth: 4
    functionLinenumber: 3698
    functionLinenumberEnd: 3719
    functionName: _curses_init_pair_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_set_error
    - _CURSES_INIT_PAIR_FUNC
    - PyErr_Format
    - PyCursesStatefulInitialisedColor
    - Py_STRINGIFY
    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:3736,1
    - Dst: wrefresh
      Src: /src/cpython/Modules/_cursesmodule.c:3737,1
    - Dst: _curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:3739,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:3742,1
    - Dst: initscr
      Src: /src/cpython/Modules/_cursesmodule.c:3745,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:3748,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:3754,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:3779,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3780,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3781,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3782,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3783,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3784,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:3798,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: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:3810,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3811,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3812,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3813,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3814,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3815,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:3837,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3840,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:3841,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3844,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:3845,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 67
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3851
      start: 3729
    functionDepth: 4
    functionLinenumber: 3729
    functionLinenumberEnd: 3851
    functionName: _curses_initscr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - _curses_set_null_error
    - SetDictInt
    - PyModule_GetDict
    - initscr
    - PyCursesWindow_New
    - curses_set_null_error
    - 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: 3772
      start: 3760
    functionDepth: 0
    functionLinenumber: 3760
    functionLinenumberEnd: 3772
    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:3875,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3880,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:3881,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3882,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/_cursesmodule.c:3886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:3887,1
    - Dst: setupterm
      Src: /src/cpython/Modules/_cursesmodule.c:3893,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:3902,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:3903,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - module
    - term
    - fd
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3910
      start: 3866
    functionDepth: 2
    functionLinenumber: 3866
    functionLinenumberEnd: 3910
    functionName: _curses_setupterm_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - PySys_GetOptionalAttrString
    - PyErr_SetString
    - setupterm
    - PyObject_AsFileDescriptor
    - Py_XDECREF
    - Py_DECREF
    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:3929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3925
    functionDepth: 0
    functionLinenumber: 3925
    functionLinenumberEnd: 3930
    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:3949,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3953,1
    - Dst: set_escdelay
      Src: /src/cpython/Modules/_cursesmodule.c:3953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - ms
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3954
      start: 3944
    functionDepth: 5
    functionLinenumber: 3944
    functionLinenumberEnd: 3954
    functionName: _curses_set_escdelay_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - curses_check_err
    - set_escdelay
    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:3969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3970
      start: 3965
    functionDepth: 0
    functionLinenumber: 3965
    functionLinenumberEnd: 3970
    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:3988,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:3992,1
    - Dst: set_tabsize
      Src: /src/cpython/Modules/_cursesmodule.c:3992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - size
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3993
      start: 3983
    functionDepth: 5
    functionLinenumber: 3983
    functionLinenumberEnd: 3993
    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:4008,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4010,1
    - Dst: intrflush
      Src: /src/cpython/Modules/_cursesmodule.c:4010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4011
      start: 4004
    functionDepth: 5
    functionLinenumber: 4004
    functionLinenumberEnd: 4011
    functionName: _curses_intrflush_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_check_err
    - intrflush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_intrflush_impl(PyObject *module, int flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4042,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4044,1
    - Dst: is_term_resized
      Src: /src/cpython/Modules/_cursesmodule.c:4044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4045
      start: 4038
    functionDepth: 1
    functionLinenumber: 4038
    functionLinenumberEnd: 4045
    functionName: _curses_is_term_resized_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - PyBool_FromLong
    - is_term_resized
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_is_term_resized_impl(PyObject *module, int nlines, int ncols)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4064,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:4067,1
    - Dst: keyname
      Src: /src/cpython/Modules/_cursesmodule.c:4070,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:4072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4073
      start: 4058
    functionDepth: 1
    functionLinenumber: 4058
    functionLinenumberEnd: 4073
    functionName: _curses_keyname_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - PyCursesStatefulInitialised
    - PyErr_SetString
    - 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:4087,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_cursesmodule.c:4089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4090
      start: 4081
    functionDepth: 1
    functionLinenumber: 4081
    functionLinenumberEnd: 4090
    functionName: _curses_killchar_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - killchar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_killchar_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4122,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4124,1
    - Dst: meta
      Src: /src/cpython/Modules/_cursesmodule.c:4124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - 'yes'
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4125
      start: 4118
    functionDepth: 5
    functionLinenumber: 4118
    functionLinenumberEnd: 4125
    functionName: _curses_meta_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_check_err
    - meta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_meta_impl(PyObject *module, int yes)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4146,1
    - Dst: mouseinterval
      Src: /src/cpython/Modules/_cursesmodule.c:4147,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:4149,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - interval
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4153
      start: 4142
    functionDepth: 4
    functionLinenumber: 4142
    functionLinenumberEnd: 4153
    functionName: _curses_mouseinterval_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_set_error
    - PyLong_FromLong
    - 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:4177,1
    - Dst: mousemask
      Src: /src/cpython/Modules/_cursesmodule.c:4178,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:4179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - newmask
    argTypes:
    - PyObject*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4181
      start: 4171
    functionDepth: 1
    functionLinenumber: 4171
    functionLinenumberEnd: 4181
    functionName: _curses_mousemask_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - Py_BuildValue
    - mousemask
    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:4198,1
    - Dst: napms
      Src: /src/cpython/Modules/_cursesmodule.c:4203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ms
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4204
      start: 4194
    functionDepth: 3
    functionLinenumber: 4194
    functionLinenumberEnd: 4204
    functionName: _curses_napms_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - napms
    - _PyCursesStatefulCheckFunction
    linkageType: ''
    returnType: int
    signature: int _curses_napms_impl(PyObject *module, int ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4225,1
    - Dst: newpad
      Src: /src/cpython/Modules/_cursesmodule.c:4227,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:4230,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:4234,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:4235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4236
      start: 4219
    functionDepth: 4
    functionLinenumber: 4219
    functionLinenumberEnd: 4236
    functionName: _curses_newpad_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - PyCursesStatefulInitialised
    - newpad
    - PyCursesWindow_New
    - curses_set_null_error
    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:4266,1
    - Dst: newwin
      Src: /src/cpython/Modules/_cursesmodule.c:4268,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:4270,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:4274,1
    - Dst: PyCursesWindow_New
      Src: /src/cpython/Modules/_cursesmodule.c:4275,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: 4276
      start: 4259
    functionDepth: 4
    functionLinenumber: 4259
    functionLinenumberEnd: 4276
    functionName: _curses_newwin_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - get_cursesmodule_state
    - PyCursesStatefulInitialised
    - PyCursesWindow_New
    - curses_set_null_error
    - newwin
    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:4381,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:4382,1
    - Dst: _CURSES_PAIR_CONTENT_FUNC
      Src: /src/cpython/Modules/_cursesmodule.c:4384,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:4386,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Modules/_cursesmodule.c:4391,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:4392,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_cursesmodule.c:4397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - module
    - pair_number
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4398
      start: 4375
    functionDepth: 4
    functionLinenumber: 4375
    functionLinenumberEnd: 4398
    functionName: _curses_pair_content_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_set_error
    - _CURSES_PAIR_CONTENT_FUNC
    - Py_BuildValue
    - PyErr_Format
    - PyCursesStatefulInitialisedColor
    - Py_STRINGIFY
    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:4416,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:4417,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4419,1
    - Dst: PAIR_NUMBER
      Src: /src/cpython/Modules/_cursesmodule.c:4419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - attr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4420
      start: 4412
    functionDepth: 1
    functionLinenumber: 4412
    functionLinenumberEnd: 4420
    functionName: _curses_pair_number_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - PyCursesStatefulInitialisedColor
    - PyLong_FromLong
    - PAIR_NUMBER
    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:4438,1
    - Dst: putp
      Src: /src/cpython/Modules/_cursesmodule.c:4438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4439
      start: 4434
    functionDepth: 5
    functionLinenumber: 4434
    functionLinenumberEnd: 4439
    functionName: _curses_putp_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - putp
    - curses_check_err
    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:4458,1
    - Dst: qiflush
      Src: /src/cpython/Modules/_cursesmodule.c:4461,1
    - Dst: noqiflush
      Src: /src/cpython/Modules/_cursesmodule.c:4464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4467
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4467
    functionName: _curses_qiflush_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - noqiflush
    - PyCursesStatefulInitialised
    - 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:4477,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:4481,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:4485,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4490,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:4494,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:4497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4500,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4502,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:4506,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:4509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4513,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4517,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4518,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - private_module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4472
    functionDepth: 1
    functionLinenumber: 4472
    functionLinenumberEnd: 4520
    functionName: update_lines_cols
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyLong_FromLong
    - PyModule_GetDict
    - PyDict_SetItemString
    - Py_XDECREF
    - Py_DECREF
    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:4531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4535
      start: 4527
    functionDepth: 2
    functionLinenumber: 4527
    functionLinenumberEnd: 4535
    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:4616,1
    - Dst: resizeterm
      Src: /src/cpython/Modules/_cursesmodule.c:4618,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4619,1
    - Dst: update_lines_cols
      Src: /src/cpython/Modules/_cursesmodule.c:4622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4609
    functionDepth: 5
    functionLinenumber: 4609
    functionLinenumberEnd: 4627
    functionName: _curses_resizeterm_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - resizeterm
    - Py_DECREF
    - curses_check_err
    - update_lines_cols
    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:4658,1
    - Dst: resize_term
      Src: /src/cpython/Modules/_cursesmodule.c:4660,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4661,1
    - Dst: update_lines_cols
      Src: /src/cpython/Modules/_cursesmodule.c:4664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:4665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4669
      start: 4651
    functionDepth: 5
    functionLinenumber: 4651
    functionLinenumberEnd: 4669
    functionName: _curses_resize_term_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - resize_term
    - Py_DECREF
    - curses_check_err
    - update_lines_cols
    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:4702,1
    - Dst: setsyx
      Src: /src/cpython/Modules/_cursesmodule.c:4704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - y
    - x
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4698
    functionDepth: 1
    functionLinenumber: 4698
    functionLinenumberEnd: 4707
    functionName: _curses_setsyx_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - setsyx
    - PyCursesStatefulInitialised
    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:4728,1
    - Dst: start_color
      Src: /src/cpython/Modules/_cursesmodule.c:4730,1
    - Dst: curses_set_error
      Src: /src/cpython/Modules/_cursesmodule.c:4731,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:4737,1
    - Dst: DICT_ADD_INT_VALUE
      Src: /src/cpython/Modules/_cursesmodule.c:4754,1
    - Dst: DICT_ADD_INT_VALUE
      Src: /src/cpython/Modules/_cursesmodule.c:4755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4759
      start: 4724
    functionDepth: 4
    functionLinenumber: 4724
    functionLinenumberEnd: 4759
    functionName: _curses_start_color_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - curses_set_error
    - DICT_ADD_INT_VALUE
    - start_color
    - PyModule_GetDict
    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: 4753
      start: 4741
    functionDepth: 0
    functionLinenumber: 4741
    functionLinenumberEnd: 4753
    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:4801,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4803,1
    - Dst: tigetflag
      Src: /src/cpython/Modules/_cursesmodule.c:4803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4804
      start: 4797
    functionDepth: 1
    functionLinenumber: 4797
    functionLinenumberEnd: 4804
    functionName: _curses_tigetflag_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyCursesStatefulSetupTermCalled
    - tigetflag
    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:4823,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:4825,1
    - Dst: tigetnum
      Src: /src/cpython/Modules/_cursesmodule.c:4825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4826
      start: 4819
    functionDepth: 1
    functionLinenumber: 4819
    functionLinenumberEnd: 4826
    functionName: _curses_tigetnum_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - tigetnum
    - PyLong_FromLong
    - PyCursesStatefulSetupTermCalled
    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:4845,1
    - Dst: tigetstr
      Src: /src/cpython/Modules/_cursesmodule.c:4847,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:4851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4841
    functionDepth: 1
    functionLinenumber: 4841
    functionLinenumberEnd: 4852
    functionName: _curses_tigetstr_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - tigetstr
    - PyCursesStatefulSetupTermCalled
    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:4880,1
    - Dst: tparm
      Src: /src/cpython/Modules/_cursesmodule.c:4882,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:4884,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:4888,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: 4889
      start: 4873
    functionDepth: 4
    functionLinenumber: 4873
    functionLinenumberEnd: 4889
    functionName: _curses_tparm_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - tparm
    - curses_set_null_error
    - PyCursesStatefulSetupTermCalled
    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:4908,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4910,1
    - Dst: typeahead
      Src: /src/cpython/Modules/_cursesmodule.c:4910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4911
      start: 4904
    functionDepth: 5
    functionLinenumber: 4904
    functionLinenumberEnd: 4911
    functionName: _curses_typeahead_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - typeahead
    - 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:4932,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:4934,1
    - Dst: unctrl
      Src: /src/cpython/Modules/_cursesmodule.c:4937,1
    - Dst: curses_set_null_error
      Src: /src/cpython/Modules/_cursesmodule.c:4939,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:4942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4943
      start: 4926
    functionDepth: 4
    functionLinenumber: 4926
    functionLinenumberEnd: 4943
    functionName: _curses_unctrl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - PyCursesStatefulInitialised
    - curses_set_null_error
    - PyBytes_FromString
    - unctrl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_unctrl(PyObject *module, PyObject *ch)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:4960,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/cpython/Modules/_cursesmodule.c:4962,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:4965,1
    - Dst: ungetch
      Src: /src/cpython/Modules/_cursesmodule.c:4965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4966
      start: 4954
    functionDepth: 5
    functionLinenumber: 4954
    functionLinenumberEnd: 4966
    functionName: _curses_ungetch
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - PyCursesStatefulInitialised
    - ungetch
    - curses_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_ungetch(PyObject *module, PyObject *ch)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_cursesmodule.c:4979,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_cursesmodule.c:4981,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:4982,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_cursesmodule.c:4985,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_cursesmodule.c:4991,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_cursesmodule.c:4994,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_cursesmodule.c:4996,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:5002,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_cursesmodule.c:5009,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_cursesmodule.c:5011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - obj
    - wch
    argTypes:
    - PyObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 4975
    functionDepth: 1
    functionLinenumber: 4975
    functionLinenumberEnd: 5014
    functionName: PyCurses_ConvertToWchar_t
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    - PyUnicode_Check
    - PyLong_CheckExact
    - PyUnicode_GET_LENGTH
    - PyUnicode_AsWideChar
    - PyErr_Format
    - Py_TYPE
    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:5031,1
    - Dst: PyCurses_ConvertToWchar_t
      Src: /src/cpython/Modules/_cursesmodule.c:5033,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:5035,1
    - Dst: unget_wch
      Src: /src/cpython/Modules/_cursesmodule.c:5035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5036
      start: 5025
    functionDepth: 5
    functionLinenumber: 5025
    functionLinenumberEnd: 5036
    functionName: _curses_unget_wch
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - unget_wch
    - PyCurses_ConvertToWchar_t
    - curses_check_err
    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:5062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5064
      start: 5058
    functionDepth: 0
    functionLinenumber: 5058
    functionLinenumberEnd: 5064
    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:5080,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:5081,1
    - Dst: use_default_colors
      Src: /src/cpython/Modules/_cursesmodule.c:5083,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:5084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5085
      start: 5074
    functionDepth: 5
    functionLinenumber: 5074
    functionLinenumberEnd: 5085
    functionName: _curses_use_default_colors_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - PyCursesStatefulInitialisedColor
    - use_default_colors
    - curses_check_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_use_default_colors_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesStatefulInitialised
      Src: /src/cpython/Modules/_cursesmodule.c:5108,1
    - Dst: PyCursesStatefulInitialisedColor
      Src: /src/cpython/Modules/_cursesmodule.c:5109,1
    - Dst: assume_default_colors
      Src: /src/cpython/Modules/_cursesmodule.c:5111,1
    - Dst: curses_check_err
      Src: /src/cpython/Modules/_cursesmodule.c:5112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - fg
    - bg
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5113
      start: 5102
    functionDepth: 5
    functionLinenumber: 5102
    functionLinenumberEnd: 5113
    functionName: _curses_assume_default_colors_impl
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesStatefulInitialised
    - PyCursesStatefulInitialisedColor
    - curses_check_err
    - 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:5141,1
    - Dst: curses_version
      Src: /src/cpython/Modules/_cursesmodule.c:5145,1
    - Dst: sscanf
      Src: /src/cpython/Modules/_cursesmodule.c:5147,1
    - Dst: SET_VERSION_COMPONENT
      Src: /src/cpython/Modules/_cursesmodule.c:5163,1
    - Dst: SET_VERSION_COMPONENT
      Src: /src/cpython/Modules/_cursesmodule.c:5164,1
    - Dst: SET_VERSION_COMPONENT
      Src: /src/cpython/Modules/_cursesmodule.c:5165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5138
    functionDepth: 1
    functionLinenumber: 5138
    functionLinenumberEnd: 5168
    functionName: make_ncurses_version
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - SET_VERSION_COMPONENT
    - sscanf
    - PyStructSequence_New
    - curses_version
    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: 5162
      start: 5153
    functionDepth: 0
    functionLinenumber: 5153
    functionLinenumberEnd: 5162
    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:5186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5187
      start: 5182
    functionDepth: 1
    functionLinenumber: 5182
    functionLinenumberEnd: 5187
    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: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_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:5291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5288
    functionDepth: 2
    functionLinenumber: 5288
    functionLinenumberEnd: 5292
    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:5297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5298
      start: 5294
    functionDepth: 2
    functionLinenumber: 5294
    functionLinenumberEnd: 5298
    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:5303,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_cursesmodule.c:5304,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_cursesmodule.c:5306,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_cursesmodule.c:5309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - cursesmodule_state*
    assertStmts:
    - condition: (state->window_type != NULL)
      pos:
        line_end: 5302
        line_start: 5302
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 5314
      start: 5300
    functionDepth: 1
    functionLinenumber: 5300
    functionLinenumberEnd: 5314
    functionName: curses_capi_new
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - Py_NewRef
    - 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:5319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5323,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:5324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - capi
    argTypes:
    - void*
    assertStmts:
    - condition: (capi != NULL)
      pos:
        line_end: 5318
        line_start: 5318
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 5325
      start: 5316
    functionDepth: 1
    functionLinenumber: 5316
    functionLinenumberEnd: 5325
    functionName: curses_capi_free
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    - assert
    linkageType: ''
    returnType: void
    signature: void curses_capi_free(void *capi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_cursesmodule.c:5332,1
    - Dst: curses_capi_free
      Src: /src/cpython/Modules/_cursesmodule.c:5333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5334
      start: 5329
    functionDepth: 2
    functionLinenumber: 5329
    functionLinenumberEnd: 5334
    functionName: curses_capi_capsule_destructor
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - curses_capi_free
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void curses_capi_capsule_destructor(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_cursesmodule.c:5339,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:5340,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_cursesmodule.c:5341,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: 5339
        line_start: 5339
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 5343
      start: 5336
    functionDepth: 1
    functionLinenumber: 5336
    functionLinenumberEnd: 5343
    functionName: curses_capi_capsule_traverse
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyCapsule_GetPointer
    - assert
    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:5348,1
    - Dst: assert
      Src: /src/cpython/Modules/_cursesmodule.c:5349,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (capi_ptr != NULL)
      pos:
        line_end: 5348
        line_start: 5348
        source_file: /src/cpython/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 5352
      start: 5345
    functionDepth: 1
    functionLinenumber: 5345
    functionLinenumberEnd: 5352
    functionName: curses_capi_capsule_clear
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyCapsule_GetPointer
    - assert
    linkageType: ''
    returnType: int
    signature: int curses_capi_capsule_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_cursesmodule.c:5357,1
    - Dst: _PyCapsule_SetTraverse
      Src: /src/cpython/Modules/_cursesmodule.c:5362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - capi
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5354
    functionDepth: 1
    functionLinenumber: 5354
    functionLinenumberEnd: 5370
    functionName: curses_capi_capsule_new
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _PyCapsule_SetTraverse
    - Py_DECREF
    - PyCapsule_New
    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:5377,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_cursesmodule.c:5378,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_cursesmodule.c:5379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5381
      start: 5374
    functionDepth: 2
    functionLinenumber: 5374
    functionLinenumberEnd: 5381
    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:5386,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5387,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5390
      start: 5383
    functionDepth: 2
    functionLinenumber: 5383
    functionLinenumberEnd: 5390
    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:5395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5397
      start: 5392
    functionDepth: 3
    functionLinenumber: 5392
    functionLinenumberEnd: 5397
    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:5403,1
    - Dst: get_cursesmodule_state
      Src: /src/cpython/Modules/_cursesmodule.c:5409,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_cursesmodule.c:5411,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_cursesmodule.c:5416,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_cursesmodule.c:5421,1
    - Dst: curses_capi_new
      Src: /src/cpython/Modules/_cursesmodule.c:5427,1
    - Dst: curses_capi_capsule_new
      Src: /src/cpython/Modules/_cursesmodule.c:5432,1
    - Dst: curses_capi_free
      Src: /src/cpython/Modules/_cursesmodule.c:5434,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5438,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_cursesmodule.c:5444,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5448,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Modules/_cursesmodule.c:5454,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5458,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5460,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5463,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5464,1
    - Dst: _PyStructSequence_NewType
      Src: /src/cpython/Modules/_cursesmodule.c:5472,1
    - Dst: make_ncurses_version
      Src: /src/cpython/Modules/_cursesmodule.c:5477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5478,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5482,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_cursesmodule.c:5483,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:5507,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5508,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5509,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5510,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5511,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5512,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5513,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5514,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5515,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5516,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5517,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5518,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5519,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:5529,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5532,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5535,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5538,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5543,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:5550,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: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:5569,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:5575,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5576,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:5582,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5583,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5584,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5585,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5586,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5589,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5590,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5591,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5593,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5594,1
    - Dst: keyname
      Src: /src/cpython/Modules/_cursesmodule.c:5598,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_cursesmodule.c:5599,1
    - Dst: strncmp
      Src: /src/cpython/Modules/_cursesmodule.c:5602,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_cursesmodule.c:5603,1
    - Dst: strlen
      Src: /src/cpython/Modules/_cursesmodule.c:5603,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_cursesmodule.c:5605,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_cursesmodule.c:5618,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:5620,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_cursesmodule.c:5623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_cursesmodule.c:5624,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_cursesmodule.c:5625,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5631,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5634,1
    - Dst: SetDictInt
      Src: /src/cpython/Modules/_cursesmodule.c:5635,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 154
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5638
      start: 5399
    functionDepth: 2
    functionLinenumber: 5399
    functionLinenumberEnd: 5638
    functionName: cursesmodule_exec
    functionSourceFile: /src/cpython/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - strcmp
    - make_ncurses_version
    - curses_capi_capsule_new
    - PyErr_NewException
    - strncmp
    - PyErr_NoMemory
    - PyModule_GetDict
    - curses_capi_new
    - PyType_FromModuleAndSpec
    - PyDict_SetItemString
    - _PyStructSequence_NewType
    - PyMem_Malloc
    - strlen
    - PyMem_Free
    - PyModule_AddType
    - get_cursesmodule_state
    - curses_capi_free
    - SetDictInt
    - keyname
    - PyErr_SetString
    - PyBytes_FromString
    - Py_DECREF
    - Py_CLEAR
    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: 5501
      start: 5489
    functionDepth: 0
    functionLinenumber: 5489
    functionLinenumberEnd: 5501
    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:5664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5665
      start: 5661
    functionDepth: 1
    functionLinenumber: 5661
    functionLinenumberEnd: 5665
    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:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    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:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    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: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: mmap_object_CAST
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mmap_object_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/mmapmodule.c:149,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/mmapmodule.c:151,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (arg != NULL)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Modules/mmapmodule.c
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: _As_Py_ssize_t
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _As_Py_ssize_t(PyObject *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:162,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mmapmodule.c:163,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/mmapmodule.c:164,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:169,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:171,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:173,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mmapmodule.c:176,1
    - Dst: close
      Src: /src/cpython/Modules/mmapmodule.c:182,1
    - Dst: munmap
      Src: /src/cpython/Modules/mmapmodule.c:184,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/mmapmodule.c:189,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/mmapmodule.c:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 193
    functionName: mmap_object_dealloc
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - close
    - mmap_object_CAST
    - CloseHandle
    - munmap
    - UnmapViewOfFile
    - PyTypeObject*::tp_free
    - PyMem_Free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mmap_object_dealloc(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:206,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:226,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:229,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:232,1
    - Dst: close
      Src: /src/cpython/Modules/mmapmodule.c:244,1
    - Dst: munmap
      Src: /src/cpython/Modules/mmapmodule.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 252
    functionName: mmap_mmap_close_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - close
    - PyErr_SetString
    - CloseHandle
    - munmap
    - UnmapViewOfFile
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_close_impl(mmap_object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    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: 270
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 270
    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: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    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: 288
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 288
    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: 301
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 301
    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: 320
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 320
    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:326,1
    - Dst: LsaNtStatusToWinError
      Src: /src/cpython/Modules/mmapmodule.c:326,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:330,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - status
    argTypes:
    - ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 338
    functionName: _PyErr_SetFromNTSTATUS
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - LsaNtStatusToWinError
    - 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: 360
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 360
    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: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    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: 387
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 387
    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: 392
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 392
    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: 401
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 401
    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:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 410
    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:415,1
    - Dst: memchr
      Src: /src/cpython/Modules/mmapmodule.c:416,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: 419
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 419
    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: 428
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 428
    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: 442
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 442
    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: 456
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 456
    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:464,1
    - Dst: _PyBytes_Find
      Src: /src/cpython/Modules/mmapmodule.c:465,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: 468
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 468
    functionName: _safe_PyBytes_Find
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Find
    - HANDLE_INVALID_MEM_METHOD
    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:476,1
    - Dst: _PyBytes_ReverseFind
      Src: /src/cpython/Modules/mmapmodule.c:477,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: 481
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 481
    functionName: _safe_PyBytes_ReverseFind
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - _PyBytes_ReverseFind
    - HANDLE_INVALID_MEM_METHOD
    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:488,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:492,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/mmapmodule.c:496,1
    - Dst: safe_memcpy
      Src: /src/cpython/Modules/mmapmodule.c:500,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/mmapmodule.c:500,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/mmapmodule.c:501,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/mmapmodule.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - start
    - num_bytes
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 506
    functionName: _safe_PyBytes_FromStringAndSize
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_GetData
    - PyBytes_FromStringAndSize
    - PyBytesWriter_Create
    - safe_memcpy
    - PyBytesWriter_Discard
    - PyBytesWriter_Finish
    - safe_byte_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _safe_PyBytes_FromStringAndSize(char *start, size_t num_bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:518,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:520,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:524,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 529
    functionName: mmap_mmap_read_byte_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - safe_byte_copy
    - PyErr_SetString
    - PyLong_FromLong
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_read_byte_impl(mmap_object *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:544,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/mmapmodule.c:548,1
    - Dst: safe_memchr
      Src: /src/cpython/Modules/mmapmodule.c:551,1
    - Dst: _safe_PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 537
    functionDepth: 3
    functionLinenumber: 537
    functionLinenumberEnd: 565
    functionName: mmap_mmap_readline_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - _safe_PyBytes_FromStringAndSize
    - CHECK_VALID
    - safe_memchr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_readline_impl(mmap_object *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:582,1
    - Dst: _safe_PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - num_bytes
    argTypes:
    - mmap_object*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 595
    functionName: mmap_mmap_read_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - _safe_PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_read_impl(mmap_object *self, Py_ssize_t num_bytes)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:604,1
    - Dst: _As_Py_ssize_t
      Src: /src/cpython/Modules/mmapmodule.c:606,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:607,1
    - Dst: _As_Py_ssize_t
      Src: /src/cpython/Modules/mmapmodule.c:612,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:613,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:635,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:637,1
    - Dst: assert
      Src: /src/cpython/Modules/mmapmodule.c:640,1
    - Dst: _safe_PyBytes_ReverseFind
      Src: /src/cpython/Modules/mmapmodule.c:641,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:648,1
    - Dst: assert
      Src: /src/cpython/Modules/mmapmodule.c:652,1
    - Dst: _safe_PyBytes_Find
      Src: /src/cpython/Modules/mmapmodule.c:653,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:660,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 5
    argNames:
    - self
    - view
    - start_obj
    - end_obj
    - reverse
    argTypes:
    - mmap_object*
    - Py_buffer*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (0 <= start && start <= end && end <= self->size)
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/cpython/Modules/mmapmodule.c
    - condition: (0 <= start && start <= end && end <= self->size)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/cpython/Modules/mmapmodule.c
    constantsTouched: []
    func_position:
      end: 664
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 664
    functionName: mmap_gfind_lock_held
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - _As_Py_ssize_t
    - _safe_PyBytes_ReverseFind
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - assert
    - _safe_PyBytes_Find
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_gfind_lock_held(mmap_object *self, Py_buffer *view,
      PyObject *start_obj,\n                    PyObject *end_obj, int reverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_gfind_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - view
    - start
    - end
    argTypes:
    - mmap_object*
    - Py_buffer*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 683
    functionName: mmap_mmap_find_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_gfind_lock_held
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_mmap_find_impl(mmap_object *self, Py_buffer *view,
      PyObject *start,\n                    PyObject *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_gfind_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - view
    - start
    - end
    argTypes:
    - mmap_object*
    - Py_buffer*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 697
    functionName: mmap_mmap_rfind_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_gfind_lock_held
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_mmap_rfind_impl(mmap_object *self, Py_buffer *view,
      PyObject *start,\n                     PyObject *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 706
    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:713,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:718,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 728
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:745,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:746,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:751,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:755,1
    - Dst: safe_memcpy
      Src: /src/cpython/Modules/mmapmodule.c:757,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - mmap_object*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 765
    functionName: mmap_mmap_write_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - safe_memcpy
    - PyLong_FromSsize_t
    - is_writable
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_write_impl(mmap_object *self, Py_buffer *data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:780,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:781,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:784,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:786,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - mmap_object*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 795
    functionName: mmap_mmap_write_byte_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - is_writable
    - safe_byte_copy
    - PyErr_SetString
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_write_byte_impl(mmap_object *self, unsigned char value)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:807,1
    - Dst: GetFileSize
      Src: /src/cpython/Modules/mmapmodule.c:813,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:817,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:819,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:822,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/mmapmodule.c:824,1
    - Dst: _Py_fstat
      Src: /src/cpython/Modules/mmapmodule.c:831,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/mmapmodule.c:834,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:836,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:841,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:844,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 847
    functionName: mmap_mmap_size_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyLong_FromLong
    - PyLong_FromLongLong
    - GetFileSize
    - _Py_fstat
    - PyErr_SetString
    - PyLong_FromSsize_t
    - GetLastError
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_size_impl(mmap_object *self)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:873,1
    - Dst: is_resizeable
      Src: /src/cpython/Modules/mmapmodule.c:874,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:878,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:890,1
    - Dst: OpenFileMappingW
      Src: /src/cpython/Modules/mmapmodule.c:893,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:896,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:905,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:906,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:906,1
    - Dst: SetFilePointerEx
      Src: /src/cpython/Modules/mmapmodule.c:910,1
    - Dst: SetEndOfFile
      Src: /src/cpython/Modules/mmapmodule.c:912,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:914,1
    - Dst: CreateFileMappingW
      Src: /src/cpython/Modules/mmapmodule.c:922,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:930,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:937,1
    - Dst: MapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:941,1
    - Dst: memcpy
      Src: /src/cpython/Modules/mmapmodule.c:949,1
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:951,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:952,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:958,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:959,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:965,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:973,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:984,1
    - Dst: ftruncate
      Src: /src/cpython/Modules/mmapmodule.c:989,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:990,1
    - Dst: mremap
      Src: /src/cpython/Modules/mmapmodule.c:995,1
    - Dst: mremap
      Src: /src/cpython/Modules/mmapmodule.c:998,1
    - Dst: mremap
      Src: /src/cpython/Modules/mmapmodule.c:1000,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:1005,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 2
    argNames:
    - self
    - new_size
    argTypes:
    - mmap_object*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 1013
    functionName: mmap_mmap_resize_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mremap
    - PyErr_SetFromWindowsErr
    - SetFilePointerEx
    - CreateFileMappingW
    - PyErr_SetString
    - SetEndOfFile
    - CloseHandle
    - ftruncate
    - is_resizeable
    - OpenFileMappingW
    - UnmapViewOfFile
    - GetLastError
    - MapViewOfFile
    - memcpy
    - PyErr_Format
    - PyErr_SetFromErrno
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_resize_impl(mmap_object *self, Py_ssize_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1026,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/mmapmodule.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1028
    functionName: mmap_mmap_tell_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_tell_impl(mmap_object *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1047,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1052,1
    - Dst: FlushViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:1060,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:1061,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:1061,1
    - Dst: msync
      Src: /src/cpython/Modules/mmapmodule.c:1069,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:1070,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1075,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - self
    - offset
    - size
    - flags
    argTypes:
    - mmap_object*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1078
    functionName: mmap_mmap_flush_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - FlushViewOfFile
    - PyErr_SetFromWindowsErr
    - PyErr_SetString
    - GetLastError
    - PyErr_SetFromErrno
    - CHECK_VALID
    - msync
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_mmap_flush_impl(mmap_object *self, Py_ssize_t offset,
      Py_ssize_t size,\n                     int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1094,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1111,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:1117,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - self
    - dist
    - how
    argTypes:
    - mmap_object*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1122
    functionName: mmap_mmap_seek_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - CHECK_VALID
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_seek_impl(mmap_object *self, Py_ssize_t dist, int how)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Modules/mmapmodule.c:1139,1
    - Dst: strlen
      Src: /src/cpython/Modules/mmapmodule.c:1139,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1140,1
    - Dst: sprintf
      Src: /src/cpython/Modules/mmapmodule.c:1145,1
    - Dst: _PyAnnotateMemoryMap
      Src: /src/cpython/Modules/mmapmodule.c:1146,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:1147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1154,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - mmap_object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1164
    functionName: mmap_mmap_set_name_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyAnnotateMemoryMap
    - strlen
    - PyErr_SetFromErrno
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_set_name_impl(mmap_object *self, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1176
    functionName: mmap_mmap_seekable_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_seekable_impl(mmap_object *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1194,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:1195,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1204,1
    - Dst: safe_memmove
      Src: /src/cpython/Modules/mmapmodule.c:1205,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - self
    - dest
    - src
    - cnt
    argTypes:
    - mmap_object*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1215
    functionName: mmap_mmap_move_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - is_writable
    - safe_memmove
    - PyErr_SetString
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_mmap_move_impl(mmap_object *self, Py_ssize_t dest,
      Py_ssize_t src,\n                    Py_ssize_t cnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1220,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1222,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:1224,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:1226,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1230
    functionName: mmap_closed_get
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyBool_FromLong
    - mmap_object_CAST
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_closed_get(PyObject *op, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1242,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/mmapmodule.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1245
    functionName: mmap_mmap___enter___impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap___enter___impl(mmap_object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_mmap_close_impl
      Src: /src/cpython/Modules/mmapmodule.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - mmap_object*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1258
    functionDepth: 2
    functionLinenumber: 1258
    functionLinenumberEnd: 1264
    functionName: mmap_mmap___exit___impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_mmap_close_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_mmap___exit___impl(mmap_object *self, PyObject *exc_type,\n
      \                       PyObject *exc_value, PyObject *traceback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1315,1
    - Dst: mmap__repr__method_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:1316,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1319
    functionName: mmap__repr__method
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap__repr__method_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap__repr__method(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/mmapmodule.c:1332,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mmapmodule.c:1332,1
    - Dst: wcslen
      Src: /src/cpython/Modules/mmapmodule.c:1334,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/mmapmodule.c:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1337
    functionName: mmap_mmap___sizeof___impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - wcslen
    - _PyObject_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap___sizeof___impl(mmap_object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1359,1
    - Dst: VirtualProtect
      Src: /src/cpython/Modules/mmapmodule.c:1361,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:1364,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:1364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - flNewProtect
    - start
    - length
    argTypes:
    - mmap_object*
    - unsigned int
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1369
    functionName: mmap_mmap__protect_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - CHECK_VALID
    - VirtualProtect
    - GetLastError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_mmap__protect_impl(mmap_object *self, unsigned int
      flNewProtect,\n                        Py_ssize_t start, Py_ssize_t length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1391,1
    - Dst: _As_Py_ssize_t
      Src: /src/cpython/Modules/mmapmodule.c:1395,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:1396,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1410,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1418,1
    - Dst: madvise
      Src: /src/cpython/Modules/mmapmodule.c:1419,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:1420,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - self
    - option
    - start
    - length_obj
    argTypes:
    - mmap_object*
    - int
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1384
    functionDepth: 2
    functionLinenumber: 1384
    functionLinenumberEnd: 1425
    functionName: mmap_mmap_madvise_impl
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - _As_Py_ssize_t
    - PyErr_SetString
    - madvise
    - PyErr_Occurred
    - PyErr_SetFromErrno
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_mmap_madvise_impl(mmap_object *self, int option,
      Py_ssize_t start,\n                       PyObject *length_obj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap_object_CAST
      Src: /src/cpython/Modules/mmapmodule.c:1469,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1470,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/mmapmodule.c:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1476
    functionName: mmap_buffer_getbuf_lock_held
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - mmap_object_CAST
    - CHECK_VALID
    linkageType: ''
    returnType: int
    signature: int mmap_buffer_getbuf_lock_held(PyObject *op, Py_buffer *view, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1482,1
    - Dst: mmap_buffer_getbuf_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:1483,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1486
    functionName: mmap_buffer_getbuf
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_buffer_getbuf_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1491,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1492,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1495
    functionName: mmap_buffer_releasebuf
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_object_CAST
    - Py_END_CRITICAL_SECTION
    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:1500,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1503
    functionName: mmap_length_lock_held
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_object_CAST
    - CHECK_VALID
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t mmap_length_lock_held(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1509,1
    - Dst: mmap_length_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:1510,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1505
    functionDepth: 2
    functionLinenumber: 1505
    functionLinenumberEnd: 1513
    functionName: mmap_length
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_length_lock_held
    - Py_END_CRITICAL_SECTION
    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:1518,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1519,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1521,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:1526,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:1529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1515
    functionDepth: 2
    functionLinenumber: 1515
    functionLinenumberEnd: 1530
    functionName: mmap_item_lock_held
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - mmap_object_CAST
    - safe_byte_copy
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_item_lock_held(PyObject *op, Py_ssize_t i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1535,1
    - Dst: mmap_item_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:1536,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1532
    functionDepth: 3
    functionLinenumber: 1532
    functionLinenumberEnd: 1539
    functionName: mmap_item
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_item_lock_held
    - Py_END_CRITICAL_SECTION
    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:1544,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1545,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/mmapmodule.c:1546,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:1547,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:1548,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1553,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1557,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:1560,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/mmapmodule.c:1563,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Modules/mmapmodule.c:1563,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/mmapmodule.c:1565,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/mmapmodule.c:1568,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/mmapmodule.c:1571,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1573,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/mmapmodule.c:1575,1
    - Dst: _safe_PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:1577,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/mmapmodule.c:1579,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/mmapmodule.c:1583,1
    - Dst: safe_copy_to_slice
      Src: /src/cpython/Modules/mmapmodule.c:1585,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/mmapmodule.c:1591,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/mmapmodule.c:1593,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1598,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1541
    functionDepth: 3
    functionLinenumber: 1541
    functionLinenumberEnd: 1602
    functionName: mmap_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - Py_CHARMASK
    - PyErr_Occurred
    - CHECK_VALID
    - PyErr_NoMemory
    - safe_copy_to_slice
    - PyMem_Free
    - PyMem_Malloc
    - safe_byte_copy
    - PyIndex_Check
    - _safe_PyBytes_FromStringAndSize
    - PySlice_AdjustIndices
    - PyErr_SetString
    - Py_GetConstant
    - mmap_object_CAST
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_subscript_lock_held(PyObject *op, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1608,1
    - Dst: mmap_subscript_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:1609,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1604
    functionDepth: 4
    functionLinenumber: 1604
    functionLinenumberEnd: 1612
    functionName: mmap_subscript
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_subscript_lock_held
    - Py_END_CRITICAL_SECTION
    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:1618,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1620,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1622,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1626,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/mmapmodule.c:1630,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/mmapmodule.c:1630,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1631,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:1635,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/mmapmodule.c:1637,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:1639,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - op
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1614
    functionDepth: 2
    functionLinenumber: 1614
    functionLinenumberEnd: 1643
    functionName: mmap_ass_item_lock_held
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - safe_byte_copy
    - PyBytes_Size
    - PyBytes_Check
    - PyErr_SetString
    - mmap_object_CAST
    - PyBytes_AsString
    - is_writable
    - CHECK_VALID
    linkageType: ''
    returnType: int
    signature: int mmap_ass_item_lock_held(PyObject *op, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1649,1
    - Dst: mmap_ass_item_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:1650,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1645
    functionDepth: 3
    functionLinenumber: 1645
    functionLinenumberEnd: 1653
    functionName: mmap_ass_item
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_ass_item_lock_held
    - Py_END_CRITICAL_SECTION
    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:1658,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1659,1
    - Dst: is_writable
      Src: /src/cpython/Modules/mmapmodule.c:1661,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/mmapmodule.c:1664,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:1665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:1668,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1673,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1678,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/mmapmodule.c:1682,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1683,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/mmapmodule.c:1687,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/mmapmodule.c:1688,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1691,1
    - Dst: CHECK_VALID
      Src: /src/cpython/Modules/mmapmodule.c:1696,1
    - Dst: safe_byte_copy
      Src: /src/cpython/Modules/mmapmodule.c:1699,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/mmapmodule.c:1704,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/mmapmodule.c:1708,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/mmapmodule.c:1711,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1713,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/mmapmodule.c:1717,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1720,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/mmapmodule.c:1722,1
    - Dst: CHECK_VALID_OR_RELEASE
      Src: /src/cpython/Modules/mmapmodule.c:1726,1
    - Dst: safe_memcpy
      Src: /src/cpython/Modules/mmapmodule.c:1731,1
    - Dst: safe_copy_from_slice
      Src: /src/cpython/Modules/mmapmodule.c:1736,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/mmapmodule.c:1742,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1746,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1655
    functionDepth: 2
    functionLinenumber: 1655
    functionLinenumberEnd: 1750
    functionName: mmap_ass_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - safe_byte_copy
    - safe_copy_from_slice
    - CHECK_VALID_OR_RELEASE
    - PySlice_AdjustIndices
    - PyErr_SetString
    - mmap_object_CAST
    - PyNumber_AsSsize_t
    - safe_memcpy
    - PyBuffer_Release
    - PySlice_Unpack
    - PyObject_GetBuffer
    - PyErr_Occurred
    - is_writable
    - PyIndex_Check
    - CHECK_VALID
    linkageType: ''
    returnType: int
    signature: int mmap_ass_subscript_lock_held(PyObject *op, PyObject *item, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1756,1
    - Dst: mmap_ass_subscript_lock_held
      Src: /src/cpython/Modules/mmapmodule.c:1757,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/mmapmodule.c:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1752
    functionDepth: 3
    functionLinenumber: 1752
    functionLinenumberEnd: 1760
    functionName: mmap_ass_subscript
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_ass_subscript_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int mmap_ass_subscript(PyObject *op, PyObject *item, PyObject *value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/mmapmodule.c:1847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1854,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1859,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:1866,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:1894,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/mmapmodule.c:1898,1
    - Dst: fcntl
      Src: /src/cpython/Modules/mmapmodule.c:1907,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Modules/mmapmodule.c:1912,1
    - Dst: S_ISREG
      Src: /src/cpython/Modules/mmapmodule.c:1916,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1919,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1924,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:1935,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/mmapmodule.c:1940,1
    - Dst: _Py_open
      Src: /src/cpython/Modules/mmapmodule.c:1967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1969,1
    - Dst: _Py_dup
      Src: /src/cpython/Modules/mmapmodule.c:1975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1977,1
    - Dst: mmap
      Src: /src/cpython/Modules/mmapmodule.c:1987,1
    - Dst: close
      Src: /src/cpython/Modules/mmapmodule.c:1992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:1997,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/mmapmodule.c:1999,1
    - Dst: _PyAnnotateMemoryMap
      Src: /src/cpython/Modules/mmapmodule.c:2004,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 114
    argCount: 3
    argNames:
    - type
    - args
    - kwdict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 2009
    functionName: new_mmap_object
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - S_ISREG
    - close
    - fcntl
    - PySys_Audit
    - PyErr_SetString
    - _Py_dup
    - _PyAnnotateMemoryMap
    - PyErr_SetFromErrno
    - _Py_fstat_noraise
    - _Py_open
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - mmap
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/mmapmodule.c:2040,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/mmapmodule.c:2046,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:2065,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:2070,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:2075,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Modules/mmapmodule.c:2091,1
    - Dst: lseek
      Src: /src/cpython/Modules/mmapmodule.c:2096,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/mmapmodule.c:2099,1
    - Dst: DuplicateHandle
      Src: /src/cpython/Modules/mmapmodule.c:2115,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/mmapmodule.c:2116,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/mmapmodule.c:2118,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:2124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2125,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:2126,1
    - Dst: GetFileSize
      Src: /src/cpython/Modules/mmapmodule.c:2133,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:2137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2139,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:2140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:2145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:2151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2153,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/mmapmodule.c:2157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2159,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/mmapmodule.c:2179,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/mmapmodule.c:2180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2181,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/mmapmodule.c:2182,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/mmapmodule.c:2184,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/mmapmodule.c:2186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2188,1
    - Dst: CreateFileMappingW
      Src: /src/cpython/Modules/mmapmodule.c:2200,1
    - Dst: MapViewOfFile
      Src: /src/cpython/Modules/mmapmodule.c:2207,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:2215,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/mmapmodule.c:2216,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/mmapmodule.c:2220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2221,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/mmapmodule.c:2222,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 121
    argCount: 3
    argNames:
    - type
    - args
    - kwdict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2224
    functionName: new_mmap_object
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - GetLastError
    - PyArg_ParseTupleAndKeywords
    - DuplicateHandle
    - Py_TYPE
    - PyErr_SetFromWindowsErr
    - CreateFileMappingW
    - PySys_Audit
    - PyUnicode_Check
    - PyErr_SetString
    - Py_IsNone
    - CloseHandle
    - MapViewOfFile
    - lseek
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - PyTypeObject*::tp_alloc
    - _Py_get_osfhandle
    - GetFileSize
    - PyErr_Format
    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:2230,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/mmapmodule.c:2234,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/mmapmodule.c:2239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/mmapmodule.c:2240,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2253,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2256,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2259,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2263,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2266,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2269,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2272,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/mmapmodule.c:2275,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2278,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2281,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2286,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2289,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2292,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2295,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2298,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2301,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2304,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2307,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2310,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2313,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2316,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2319,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2322,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2325,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/mmapmodule.c:2327,1
    - Dst: my_getpagesize
      Src: /src/cpython/Modules/mmapmodule.c:2327,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/mmapmodule.c:2331,1
    - Dst: my_getallocationgranularity
      Src: /src/cpython/Modules/mmapmodule.c:2331,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2335,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2336,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2337,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2338,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2341,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2344,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2347,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2353,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2356,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2359,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2362,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2365,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2370,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2373,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2376,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2379,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2382,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2385,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2388,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2391,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2394,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2397,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2400,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2403,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2408,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2411,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2414,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2417,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2420,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2425,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/mmapmodule.c:2428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 75
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2227
    functionDepth: 1
    functionLinenumber: 2227
    functionLinenumberEnd: 2432
    functionName: mmap_exec
    functionSourceFile: /src/cpython/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - my_getallocationgranularity
    - ADD_INT_MACRO
    - PyType_FromModuleAndSpec
    - Py_DECREF
    - PyModule_AddObjectRef
    - my_getpagesize
    - PyModule_AddType
    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: 2251
      start: 2245
    functionDepth: 0
    functionLinenumber: 2245
    functionLinenumberEnd: 2251
    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:2452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2453
    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: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    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: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    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:129,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    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: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    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:164,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_winapi.c:165,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_winapi.c:166,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_winapi.c:167,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: overlapped_traverse
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - OverlappedObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:175,1
    - Dst: OverlappedObject_CAST
      Src: /src/cpython/Modules/_winapi.c:176,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_winapi.c:178,1
    - Dst: CancelIoEx
      Src: /src/cpython/Modules/_winapi.c:180,1
    - Dst: GetOverlappedResult
      Src: /src/cpython/Modules/_winapi.c:181,1
    - Dst: _Py_IsInterpreterFinalizing
      Src: /src/cpython/Modules/_winapi.c:185,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_winapi.c:185,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:188,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_winapi.c:191,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:201,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/_winapi.c:202,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:207,1
    - Dst: SetLastError
      Src: /src/cpython/Modules/_winapi.c:208,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_winapi.c:210,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_winapi.c:211,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:212,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_winapi.c:213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 215
    functionName: overlapped_dealloc
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CancelIoEx
    - OverlappedObject_CAST
    - SetLastError
    - _Py_IsInterpreterFinalizing
    - PyErr_SetString
    - GetOverlappedResult
    - _PyInterpreterState_GET
    - PyBuffer_Release
    - CloseHandle
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - GetLastError
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyErr_FormatUnraisable
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void overlapped_dealloc(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetOverlappedResult
      Src: /src/cpython/Modules/_winapi.c:291,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:295,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:307,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:310,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_winapi.c:310,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:311,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_winapi.c:312,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:315,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: 309
        line_start: 309
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: _winapi_Overlapped_GetOverlappedResult_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - GetOverlappedResult
    - Py_BuildValue
    - PyBytes_CheckExact
    - PyErr_SetExcFromWindowsErr
    - assert
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    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:328,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_winapi.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: _winapi_Overlapped_getbuffer_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_getbuffer_impl(OverlappedObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CancelIoEx
      Src: /src/cpython/Modules/_winapi.c:349,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:354,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 358
    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:394,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_winapi.c:395,1
    - Dst: memset
      Src: /src/cpython/Modules/_winapi.c:403,1
    - Dst: memset
      Src: /src/cpython/Modules/_winapi.c:404,1
    - Dst: CreateEvent
      Src: /src/cpython/Modules/_winapi.c:406,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_winapi.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 410
    functionName: new_overlapped
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - winapi_get_state
    - PyObject_GC_New
    - memset
    - CreateEvent
    - PyObject_GC_Track
    linkageType: ''
    returnType: OverlappedObject
    signature: 'OverlappedObject *

      new_overlapped(PyObject *module, HANDLE handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:431,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 438
    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:456,1
    - Dst: ConnectNamedPipe
      Src: /src/cpython/Modules/_winapi.c:462,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:467,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:469,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:475,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:476,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:481,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: 468
        line_start: 468
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 484
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 484
    functionName: _winapi_ConnectNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - new_overlapped
    - PyErr_SetFromWindowsErr
    - GetLastError
    - SetEvent
    - ConnectNamedPipe
    - assert
    - Py_DECREF
    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:467,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:469,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:475,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (success == 0)
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 479
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 479
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetLastError
    - SetEvent
    - assert
    - Py_DECREF
    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:504,1
    - Dst: CreateEventW
      Src: /src/cpython/Modules/_winapi.c:509,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:513,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: 517
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 517
    functionName: _winapi_CreateEventW_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CreateEventW
    - PySys_Audit
    - 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:542,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/_winapi.c:549,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:556,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: 560
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 560
    functionName: _winapi_CreateFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - CreateFileW
    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:584,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:590,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/cpython/Modules/_winapi.c:591,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:592,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: 597
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 597
    functionName: _winapi_CreateFileMapping_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - 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:632,1
    - Dst: wcsncmp
      Src: /src/cpython/Modules/_winapi.c:634,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:635,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_winapi.c:637,1
    - Dst: OpenProcessToken
      Src: /src/cpython/Modules/_winapi.c:643,1
    - Dst: GetCurrentProcess
      Src: /src/cpython/Modules/_winapi.c:643,1
    - Dst: LookupPrivilegeValue
      Src: /src/cpython/Modules/_winapi.c:648,1
    - Dst: AdjustTokenPrivileges
      Src: /src/cpython/Modules/_winapi.c:654,1
    - Dst: GetFileAttributesW
      Src: /src/cpython/Modules/_winapi.c:659,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/_winapi.c:663,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_winapi.c:694,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/_winapi.c:709,1
    - Dst: GetFullPathNameW
      Src: /src/cpython/Modules/_winapi.c:710,1
    - Dst: wcscpy
      Src: /src/cpython/Modules/_winapi.c:716,1
    - Dst: CreateDirectoryW
      Src: /src/cpython/Modules/_winapi.c:721,1
    - Dst: CreateFileW
      Src: /src/cpython/Modules/_winapi.c:724,1
    - Dst: DeviceIoControl
      Src: /src/cpython/Modules/_winapi.c:731,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:736,1
    - Dst: AdjustTokenPrivileges
      Src: /src/cpython/Modules/_winapi.c:739,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:744,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:746,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_winapi.c:747,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:750,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 3
    argNames:
    - module
    - src_path
    - dst_path
    argTypes:
    - PyObject*
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 753
    functionName: _winapi_CreateJunction_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - PyErr_SetFromWindowsErr
    - GetFullPathNameW
    - AdjustTokenPrivileges
    - PySys_Audit
    - LookupPrivilegeValue
    - wcscpy
    - PyMem_RawCalloc
    - GetFileAttributesW
    - CloseHandle
    - PyMem_RawFree
    - CreateFileW
    - wcsncmp
    - DeviceIoControl
    - GetLastError
    - OpenProcessToken
    - CreateDirectoryW
    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:771,1
    - Dst: CreateMutexW
      Src: /src/cpython/Modules/_winapi.c:776,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:780,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: 784
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 784
    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:810,1
    - Dst: CreateNamedPipeW
      Src: /src/cpython/Modules/_winapi.c:816,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:823,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: 826
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 826
    functionName: _winapi_CreateNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - CreateNamedPipeW
    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:849,1
    - Dst: CreatePipe
      Src: /src/cpython/Modules/_winapi.c:854,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:858,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:858,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:860,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/_winapi.c:861,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/_winapi.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pipe_attrs
    - size
    argTypes:
    - PyObject*
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: _winapi_CreatePipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PySys_Audit
    - Py_BuildValue
    - CreatePipe
    - GetLastError
    - HANDLE_TO_PYNUM
    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:872,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_winapi.c:874,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_winapi.c:877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 880
    functionName: getulong
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Clear
    - PyObject_GetAttrString
    - PyLong_AsUnsignedLong
    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:888,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_winapi.c:890,1
    - Dst: PYNUM_TO_HANDLE
      Src: /src/cpython/Modules/_winapi.c:896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 899
    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:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 906
    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:915,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:921,1
    - Dst: PyObject_VectorcallMethod
      Src: /src/cpython/Modules/_winapi.c:925,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_winapi.c:925,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 934
    functionName: sort_environment_keys
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyObject_VectorcallMethod
    - Py_BuildValue
    - PyCFunction_New
    - 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:939,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_winapi.c:943,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:945,1
    - Dst: CompareStringOrdinal
      Src: /src/cpython/Modules/_winapi.c:948,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:949,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - str1
    - str2
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 952
    functionName: compare_string_ordinal
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsWideCharString
    - PyMem_Free
    - CompareStringOrdinal
    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:957,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:966,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:967,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:970,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_winapi.c:971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:972,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:978,1
    - Dst: compare_string_ordinal
      Src: /src/cpython/Modules/_winapi.c:980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:981,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_winapi.c:987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:988,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 994
    functionName: dedup_environment_keys
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - compare_string_ordinal
    - PyList_GET_ITEM
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dedup_environment_keys(PyObject *keys)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Keys
      Src: /src/cpython/Modules/_winapi.c:999,1
    - Dst: sort_environment_keys
      Src: /src/cpython/Modules/_winapi.c:1004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1005,1
    - Dst: dedup_environment_keys
      Src: /src/cpython/Modules/_winapi.c:1009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1010,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_winapi.c:1015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1017,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1021,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1022,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_winapi.c:1023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1026,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_winapi.c:1030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1039,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - environment
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1042
    functionName: normalize_environment
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyMapping_Keys
    - dedup_environment_keys
    - PyList_GET_ITEM
    - sort_environment_keys
    - PyObject_GetItem
    - Py_DECREF
    - PyList_GET_SIZE
    - 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:1054,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1055,1
    - Dst: normalize_environment
      Src: /src/cpython/Modules/_winapi.c:1060,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Modules/_winapi.c:1065,1
    - Dst: PyMapping_Values
      Src: /src/cpython/Modules/_winapi.c:1069,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1074,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_winapi.c:1079,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_winapi.c:1081,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1086,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1087,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1094,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1095,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_winapi.c:1098,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_winapi.c:1098,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1099,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_winapi.c:1103,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_winapi.c:1103,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_winapi.c:1104,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_winapi.c:1104,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1106,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_winapi.c:1111,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_winapi.c:1112,1
    - Dst: PyUnicode_GET_LENGTH
      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:1118,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1121,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_winapi.c:1126,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1127,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1129,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_winapi.c:1135,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_winapi.c:1137,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1144,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1145,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_winapi.c:1146,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1147,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_winapi.c:1150,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1151,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:1157,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1161,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1162,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1163,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 93
    argCount: 1
    argNames:
    - environment
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (1 <= size && size < end - p)
      pos:
        line_end: 1146
        line_start: 1146
        source_file: /src/cpython/Modules/_winapi.c
    - condition: (0 <= size && size < end - p)
      pos:
        line_end: 1150
        line_start: 1150
        source_file: /src/cpython/Modules/_winapi.c
    - condition: (size > 0)
      pos:
        line_end: 1126
        line_start: 1126
        source_file: /src/cpython/Modules/_winapi.c
    - condition: (p == end)
      pos:
        line_end: 1156
        line_start: 1156
        source_file: /src/cpython/Modules/_winapi.c
    - condition: (size > 1)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 1165
      start: 1044
    functionDepth: 4
    functionLinenumber: 1044
    functionLinenumberEnd: 1165
    functionName: getenvironment
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - PyMem_NEW
    - PyErr_SetString
    - PyMapping_Check
    - PyList_GET_ITEM
    - PyUnicode_Check
    - PyUnicode_FindChar
    - normalize_environment
    - PyUnicode_GET_LENGTH
    - PyUnicode_AsWideChar
    - assert
    - Py_XDECREF
    - PyMapping_Values
    - PyList_GET_SIZE
    - PyMapping_Keys
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      getenvironment(PyObject* environment)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetItemString
      Src: /src/cpython/Modules/_winapi.c:1175,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_winapi.c:1177,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_winapi.c:1185,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1189,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1196,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_winapi.c:1200,1
    - Dst: PYNUM_TO_HANDLE
      Src: /src/cpython/Modules/_winapi.c:1201,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_winapi.c:1201,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_winapi.c:1202,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1210,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1211,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - mapping
    - name
    - size
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1213
    functionName: gethandlelist
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - PyMapping_GetItemString
    - PYNUM_TO_HANDLE
    - PyErr_Clear
    - PyErr_Occurred
    - PyMem_Malloc
    - PyMem_Free
    - Py_XDECREF
    - Py_DECREF
    - PySequence_Fast_GET_ITEM
    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:1224,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1225,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1228,1
    - Dst: memset
      Src: /src/cpython/Modules/_winapi.c:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - attribute_list
    argTypes:
    - AttributeList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1231
    functionName: freeattributelist
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - DeleteProcThreadAttributeList
    - memset
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void freeattributelist(AttributeList *attribute_list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_winapi.c:1244,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_winapi.c:1246,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Modules/_winapi.c:1255,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:1257,1
    - Dst: gethandlelist
      Src: /src/cpython/Modules/_winapi.c:1261,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_winapi.c:1262,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/cpython/Modules/_winapi.c:1271,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1272,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1274,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1274,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1278,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/cpython/Modules/_winapi.c:1284,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1290,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1293,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1297,1
    - Dst: UpdateProcThreadAttribute
      Src: /src/cpython/Modules/_winapi.c:1302,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1312,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:1318,1
    - Dst: freeattributelist
      Src: /src/cpython/Modules/_winapi.c:1321,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - obj
    - name
    - attribute_list
    argTypes:
    - PyObject*
    - char*
    - AttributeList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1233
    functionDepth: 2
    functionLinenumber: 1233
    functionLinenumberEnd: 1324
    functionName: getattributelist
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - InitializeProcThreadAttributeList
    - PyMem_Malloc
    - GetLastError
    - freeattributelist
    - PyMapping_Check
    - UpdateProcThreadAttribute
    - gethandlelist
    - PyErr_Clear
    - PyErr_Format
    - PyObject_GetAttrString
    - PyErr_Occurred
    - PyMem_Free
    - Py_DECREF
    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:1366,1
    - Dst: ZeroMemory
      Src: /src/cpython/Modules/_winapi.c:1371,1
    - Dst: getulong
      Src: /src/cpython/Modules/_winapi.c:1375,1
    - Dst: getulong
      Src: /src/cpython/Modules/_winapi.c:1376,1
    - Dst: gethandle
      Src: /src/cpython/Modules/_winapi.c:1377,1
    - Dst: gethandle
      Src: /src/cpython/Modules/_winapi.c:1378,1
    - Dst: gethandle
      Src: /src/cpython/Modules/_winapi.c:1379,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_winapi.c:1380,1
    - Dst: getenvironment
      Src: /src/cpython/Modules/_winapi.c:1384,1
    - Dst: getattributelist
      Src: /src/cpython/Modules/_winapi.c:1390,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_winapi.c:1394,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_winapi.c:1395,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:1401,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:1403,1
    - Dst: CreateProcessW
      Src: /src/cpython/Modules/_winapi.c:1409,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1423,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1423,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:1427,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/_winapi.c:1428,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/_winapi.c:1429,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1434,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1435,1
    - Dst: freeattributelist
      Src: /src/cpython/Modules/_winapi.c:1436,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: 1439
      start: 1349
    functionDepth: 5
    functionLinenumber: 1349
    functionLinenumberEnd: 1439
    functionName: _winapi_CreateProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetLastError
    - PySys_Audit
    - ZeroMemory
    - gethandle
    - getattributelist
    - freeattributelist
    - getulong
    - PyUnicode_Check
    - CreateProcessW
    - Py_BuildValue
    - PyUnicode_AsWideCharString
    - PyErr_Occurred
    - PyErr_Format
    - PyMem_Free
    - HANDLE_TO_PYNUM
    - getenvironment
    - Py_TYPE
    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:1471,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1483,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1483,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: 1488
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1488
    functionName: _winapi_DuplicateHandle_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - DuplicateHandle
    - PyErr_SetFromWindowsErr
    - GetLastError
    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:1504,1
    - Dst: _CrtSetReportMode
      Src: /src/cpython/Modules/_winapi.c:1507,1
    - Dst: ExitProcess
      Src: /src/cpython/Modules/_winapi.c:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ExitCode
    argTypes:
    - PyObject*
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1513
    functionName: _winapi_ExitProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - _CrtSetReportMode
    - SetErrorMode
    - 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:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1526
    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:1544,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1547,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - process
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1552
    functionName: _winapi_GetExitCodeProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetExitCodeProcess
    - GetLastError
    linkageType: ''
    returnType: DWORD
    signature: DWORD _winapi_GetExitCodeProcess_impl(PyObject *module, HANDLE process)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1563
    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:1588,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1591,1
    - Dst: GetLongPathNameW
      Src: /src/cpython/Modules/_winapi.c:1594,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1597,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1599,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1603
    functionName: _winapi_GetLongPathName_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - GetLongPathNameW
    - 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:1591,1
    - Dst: GetLongPathNameW
      Src: /src/cpython/Modules/_winapi.c:1594,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1597,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1599,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1602
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - GetLongPathNameW
    - 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:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1598
    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:1636,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1641,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1641,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - module_handle
    argTypes:
    - PyObject*
    - HMODULE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1644
    functionName: _winapi_GetModuleFileName_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - GetModuleFileNameW
    - GetLastError
    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:1669,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:1672,1
    - Dst: GetShortPathNameW
      Src: /src/cpython/Modules/_winapi.c:1675,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1678,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1680,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1684
    functionName: _winapi_GetShortPathName_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - GetShortPathNameW
    - 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:1672,1
    - Dst: GetShortPathNameW
      Src: /src/cpython/Modules/_winapi.c:1675,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1678,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1680,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1683
    functionName: if
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - GetShortPathNameW
    - 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:1678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1679
    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:1711,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1715,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - std_handle
    argTypes:
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1704
    functionDepth: 1
    functionLinenumber: 1704
    functionLinenumberEnd: 1718
    functionName: _winapi_GetStdHandle_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetStdHandle
    - GetLastError
    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:1761,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1766,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: 1769
      start: 1752
    functionDepth: 1
    functionLinenumber: 1752
    functionLinenumberEnd: 1769
    functionName: _winapi_MapViewOfFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - MapViewOfFile
    linkageType: ''
    returnType: LPVOID
    signature: "LPVOID _winapi_MapViewOfFile_impl(PyObject *module, HANDLE file_map,\n
      \                          DWORD desired_access, DWORD file_offset_high,\n                           DWORD
      file_offset_low, size_t number_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnmapViewOfFile
      Src: /src/cpython/Modules/_winapi.c:1785,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - address
    argTypes:
    - PyObject*
    - LPCVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1778
    functionDepth: 1
    functionLinenumber: 1778
    functionLinenumberEnd: 1793
    functionName: _winapi_UnmapViewOfFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - UnmapViewOfFile
    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:1810,1
    - Dst: OpenEventW
      Src: /src/cpython/Modules/_winapi.c:1815,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1819,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: 1823
      start: 1803
    functionDepth: 1
    functionLinenumber: 1803
    functionLinenumberEnd: 1823
    functionName: _winapi_OpenEventW_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - OpenEventW
    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:1841,1
    - Dst: OpenMutexW
      Src: /src/cpython/Modules/_winapi.c:1846,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1850,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: 1854
      start: 1834
    functionDepth: 1
    functionLinenumber: 1834
    functionLinenumberEnd: 1854
    functionName: _winapi_OpenMutexW_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - OpenMutexW
    - 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:1873,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:1877,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/cpython/Modules/_winapi.c:1878,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:1879,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: 1884
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1884
    functionName: _winapi_OpenFileMapping_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - OpenFileMappingW
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - Py_XDECREF
    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:1902,1
    - Dst: OpenProcess
      Src: /src/cpython/Modules/_winapi.c:1908,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1911,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:1911,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: 1916
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1916
    functionName: _winapi_OpenProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - OpenProcess
    - PyErr_SetFromWindowsErr
    - GetLastError
    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:1934,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_winapi.c:1939,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_winapi.c:1943,1
    - Dst: PeekNamedPipe
      Src: /src/cpython/Modules/_winapi.c:1946,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_winapi.c:1950,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1951,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_winapi.c:1954,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:1958,1
    - Dst: PeekNamedPipe
      Src: /src/cpython/Modules/_winapi.c:1962,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:1965,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:1967,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - module
    - handle
    - size
    argTypes:
    - PyObject*
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1969
    functionName: _winapi_PeekNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - Py_BuildValue
    - PeekNamedPipe
    - PyErr_SetExcFromWindowsErr
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_GetData
    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:1987,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_winapi.c:1991,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:1996,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:1997,1
    - Dst: LCMapStringEx
      Src: /src/cpython/Modules/_winapi.c:2001,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2004,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2005,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2006,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Modules/_winapi.c:2009,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2011,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_winapi.c:2012,1
    - Dst: LCMapStringEx
      Src: /src/cpython/Modules/_winapi.c:2015,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2018,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2019,1
    - Dst: PyMem_DEL
      Src: /src/cpython/Modules/_winapi.c:2020,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2021,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2024,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_winapi.c:2025,1
    - Dst: PyMem_DEL
      Src: /src/cpython/Modules/_winapi.c:2026,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - module
    - locale
    - flags
    - src
    argTypes:
    - PyObject*
    - LPCWSTR
    - DWORD
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1980
    functionDepth: 1
    functionLinenumber: 1980
    functionLinenumberEnd: 2029
    functionName: _winapi_LCMapStringEx_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - PyMem_NEW
    - PyErr_NoMemory
    - GetLastError
    - LCMapStringEx
    - PyErr_SetString
    - PyMem_Free
    - PyErr_Format
    - PyUnicode_AsWideCharString
    - PyMem_DEL
    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:2050,1
    - Dst: new_overlapped
      Src: /src/cpython/Modules/_winapi.c:2054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2056,1
    - Dst: ReadFile
      Src: /src/cpython/Modules/_winapi.c:2064,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_winapi.c:2064,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2075,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2076,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:2079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2083,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2084,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_winapi.c:2086,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:2088,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: 2089
      start: 2039
    functionDepth: 3
    functionLinenumber: 2039
    functionLinenumberEnd: 2089
    functionName: _winapi_ReadFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - new_overlapped
    - ReadFile
    - PyBytes_FromStringAndSize
    - GetLastError
    - Py_BuildValue
    - _PyBytes_Resize
    - PyErr_SetExcFromWindowsErr
    - PyBytes_AS_STRING
    - Py_DECREF
    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:2104,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2105,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - module
    - mutex
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2112
    functionName: _winapi_ReleaseMutex_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - ReleaseMutex
    - GetLastError
    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:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2107
    functionDepth: 1
    functionLinenumber: 2107
    functionLinenumberEnd: 2110
    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:2127,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2128,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - module
    - event
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2135
    functionName: _winapi_ResetEvent_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - ResetEvent
    - GetLastError
    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:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2133
    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:2150,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2151,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - module
    - event
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2158
    functionName: _winapi_SetEvent_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - SetEvent
    - PyErr_SetFromWindowsErr
    - GetLastError
    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:2155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2153
    functionDepth: 1
    functionLinenumber: 2153
    functionLinenumberEnd: 2156
    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:2184,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_winapi.c:2185,1
    - Dst: SetNamedPipeHandleState
      Src: /src/cpython/Modules/_winapi.c:2192,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2196,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: 2199
      start: 2170
    functionDepth: 1
    functionLinenumber: 2170
    functionLinenumberEnd: 2199
    functionName: _winapi_SetNamedPipeHandleState_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - SetNamedPipeHandleState
    - PyErr_SetFromWindowsErr
    - PyErr_Occurred
    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:2219,1
    - Dst: TerminateProcess
      Src: /src/cpython/Modules/_winapi.c:2224,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2227,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - handle
    - exit_code
    argTypes:
    - PyObject*
    - HANDLE
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2212
    functionDepth: 1
    functionLinenumber: 2212
    functionLinenumberEnd: 2230
    functionName: _winapi_TerminateProcess_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - TerminateProcess
    - PyErr_SetFromWindowsErr
    - GetLastError
    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:2248,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - address
    argTypes:
    - PyObject*
    - LPCVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2239
    functionDepth: 1
    functionLinenumber: 2239
    functionLinenumberEnd: 2256
    functionName: _winapi_VirtualQuerySize_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - VirtualQuery
    linkageType: ''
    returnType: size_t
    signature: size_t _winapi_VirtualQuerySize_impl(PyObject *module, LPCVOID address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitNamedPipeW
      Src: /src/cpython/Modules/_winapi.c:2273,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - name
    - timeout
    argTypes:
    - PyObject*
    - LPCWSTR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2280
    functionName: _winapi_WaitNamedPipe_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - WaitNamedPipeW
    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:2296,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2303,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:2304,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:2308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - param
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2292
    functionDepth: 0
    functionLinenumber: 2292
    functionLinenumberEnd: 2312
    functionName: _batched_WaitForMultipleObjects_thread
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - SetEvent
    - WaitForMultipleObjects
    - GetLastError
    linkageType: ''
    returnType: DWORD
    signature: DWORD _batched_WaitForMultipleObjects_thread(LPVOID param)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_winapi.c:2353,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:2354,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:2356,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_winapi.c:2359,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_winapi.c:2364,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_winapi.c:2364,1
    - Dst: _PyOS_IsMainThread
      Src: /src/cpython/Modules/_winapi.c:2370,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/_winapi.c:2371,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:2372,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:2376,1
    - Dst: CreateEventW
      Src: /src/cpython/Modules/_winapi.c:2383,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2385,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_winapi.c:2392,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_winapi.c:2399,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_winapi.c:2400,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_winapi.c:2405,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_winapi.c:2406,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:2407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2410,1
    - Dst: GetTickCount64
      Src: /src/cpython/Modules/_winapi.c:2428,1
    - Dst: GetTickCount64
      Src: /src/cpython/Modules/_winapi.c:2434,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2442,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2446,1
    - Dst: WaitForSingleObject
      Src: /src/cpython/Modules/_winapi.c:2452,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2456,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2461,1
    - Dst: CreateThread
      Src: /src/cpython/Modules/_winapi.c:2469,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2478,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2486,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_winapi.c:2491,1
    - Dst: ResumeThread
      Src: /src/cpython/Modules/_winapi.c:2499,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2504,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2507,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/_winapi.c:2514,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2520,1
    - Dst: GetExitCodeThread
      Src: /src/cpython/Modules/_winapi.c:2524,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2525,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2528,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2531,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_winapi.c:2540,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2543,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_winapi.c:2546,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_winapi.c:2548,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_winapi.c:2553,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_winapi.c:2554,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:2555,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_winapi.c:2556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2559,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2566,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2574,1
    - Dst: TerminateThread
      Src: /src/cpython/Modules/_winapi.c:2578,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_winapi.c:2579,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_winapi.c:2581,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: 2371
        line_start: 2371
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 2584
      start: 2337
    functionDepth: 1
    functionLinenumber: 2337
    functionLinenumberEnd: 2584
    functionName: _winapi_BatchedWaitForMultipleObjects_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetTickCount64
    - PyArg_Parse
    - assert
    - GetLastError
    - TerminateThread
    - Py_TYPE
    - CreateThread
    - _PyOS_SigintEvent
    - PyLong_FromSsize_t
    - PyList_New
    - PyErr_SetExcFromWindowsErr
    - PyMem_Malloc
    - Py_XDECREF
    - PyList_Append
    - PyMem_Free
    - PySequence_Check
    - Py_SAFE_DOWNCAST
    - PyErr_SetString
    - PySequence_GetItem
    - WaitForSingleObject
    - CloseHandle
    - WaitForMultipleObjects
    - Py_DECREF
    - Py_NewRef
    - ResumeThread
    - SetEvent
    - PySequence_Length
    - CreateEventW
    - GetExitCodeThread
    - Py_CLEAR
    - PyErr_Format
    - _PyOS_IsMainThread
    - PyErr_SetFromErrno
    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:2486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2483
    functionDepth: 1
    functionLinenumber: 2483
    functionLinenumberEnd: 2488
    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:2605,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:2606,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_winapi.c:2608,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_winapi.c:2611,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_winapi.c:2615,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_winapi.c:2622,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_winapi.c:2625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2630,1
    - Dst: _PyOS_IsMainThread
      Src: /src/cpython/Modules/_winapi.c:2634,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/_winapi.c:2635,1
    - Dst: assert
      Src: /src/cpython/Modules/_winapi.c:2636,1
    - Dst: ResetEvent
      Src: /src/cpython/Modules/_winapi.c:2642,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Modules/_winapi.c:2643,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2648,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_winapi.c:2651,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_winapi.c:2654,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: 2635
        line_start: 2635
        source_file: /src/cpython/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 2655
      start: 2595
    functionDepth: 1
    functionLinenumber: 2595
    functionLinenumberEnd: 2655
    functionName: _winapi_WaitForMultipleObjects_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - _PyOS_SigintEvent
    - PyLong_FromLong
    - assert
    - PySequence_Length
    - PyArg_Parse
    - PySequence_GetItem
    - ResetEvent
    - PyErr_SetExcFromWindowsErr
    - PyErr_Format
    - _PyOS_IsMainThread
    - Py_DECREF
    - WaitForMultipleObjects
    - PyErr_SetFromErrno
    - Py_TYPE
    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:2679,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2683,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - handle
    - milliseconds
    argTypes:
    - PyObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2671
    functionDepth: 1
    functionLinenumber: 2671
    functionLinenumberEnd: 2688
    functionName: _winapi_WaitForSingleObject_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - WaitForSingleObject
    - GetLastError
    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:2710,1
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/_winapi.c:2718,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_winapi.c:2719,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_winapi.c:2724,1
    - Dst: WriteFile
      Src: /src/cpython/Modules/_winapi.c:2725,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2736,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2737,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:2740,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_winapi.c:2743,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2745,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_winapi.c:2746,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: 2747
      start: 2698
    functionDepth: 3
    functionLinenumber: 2698
    functionLinenumberEnd: 2747
    functionName: _winapi_WriteFile_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - new_overlapped
    - PyArg_Parse
    - Py_BuildValue
    - PyBuffer_Release
    - Py_MIN
    - PyErr_SetExcFromWindowsErr
    - Py_XDECREF
    - GetLastError
    - WriteFile
    - Py_DECREF
    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:2759,1
    - Dst: GetACP
      Src: /src/cpython/Modules/_winapi.c:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2755
    functionDepth: 0
    functionLinenumber: 2755
    functionLinenumberEnd: 2760
    functionName: _winapi_GetACP_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - GetACP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetACP_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_winapi.c:2772,1
    - Dst: GetOEMCP
      Src: /src/cpython/Modules/_winapi.c:2772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2768
    functionDepth: 0
    functionLinenumber: 2768
    functionLinenumberEnd: 2773
    functionName: _winapi_GetOEMCP_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetOEMCP
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetOEMCP_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFileType
      Src: /src/cpython/Modules/_winapi.c:2788,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_winapi.c:2791,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2781
    functionDepth: 1
    functionLinenumber: 2781
    functionLinenumberEnd: 2797
    functionName: _winapi_GetFileType_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetFileType
    - PyErr_SetFromWindowsErr
    - GetLastError
    linkageType: ''
    returnType: DWORD
    signature: DWORD _winapi_GetFileType_impl(PyObject *module, HANDLE handle)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Modules/_winapi.c:2827,1
    - Dst: RegEnumKeyExW
      Src: /src/cpython/Modules/_winapi.c:2836,1
    - Dst: RegOpenKeyExW
      Src: /src/cpython/Modules/_winapi.c:2841,1
    - Dst: RegQueryValueExW
      Src: /src/cpython/Modules/_winapi.c:2849,1
    - Dst: RegCloseKey
      Src: /src/cpython/Modules/_winapi.c:2851,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_winapi.c:2868,1
    - Dst: RegCloseKey
      Src: /src/cpython/Modules/_winapi.c:2873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2876,1
    - Dst: RegCloseKey
      Src: /src/cpython/Modules/_winapi.c:2883,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2888,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_winapi.c:2893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:2899,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 2
    argNames:
    - module
    - on_type_read
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2811
    functionDepth: 1
    functionLinenumber: 2811
    functionLinenumberEnd: 2905
    functionName: _winapi__mimetypes_read_windows_registry_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - RegEnumKeyExW
    - PyErr_SetFromWindowsErr
    - RegOpenKeyExW
    - RegQueryValueExW
    - PyObject_CallFunction
    - Py_DECREF
    - RegCloseKey
    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:2923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - exe_name
    argTypes:
    - PyObject*
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2914
    functionDepth: 0
    functionLinenumber: 2914
    functionLinenumberEnd: 2930
    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:2959,1
    - Dst: CopyFile2
      Src: /src/cpython/Modules/_winapi.c:2974,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_winapi.c:2981,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2983,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:2985,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: 2990
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2990
    functionName: _winapi_CopyFile2_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CopyFile2
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - FAILED
    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:
    - Dst: RegisterEventSourceW
      Src: /src/cpython/Modules/_winapi.c:3013,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:3017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - unc_server_name
    - source_name
    argTypes:
    - PyObject*
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3022
    functionName: _winapi_RegisterEventSource_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - RegisterEventSourceW
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_RegisterEventSource_impl(PyObject *module, LPCWSTR
      unc_server_name,\n                                 LPCWSTR source_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeregisterEventSource
      Src: /src/cpython/Modules/_winapi.c:3041,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:3045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3034
    functionDepth: 1
    functionLinenumber: 3034
    functionLinenumberEnd: 3049
    functionName: _winapi_DeregisterEventSource_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - DeregisterEventSource
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_DeregisterEventSource_impl(PyObject *module, HANDLE handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReportEventW
      Src: /src/cpython/Modules/_winapi.c:3078,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:3083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - module
    - handle
    - type
    - category
    - event_id
    - string
    argTypes:
    - PyObject*
    - HANDLE
    - unsigned short
    - unsigned short
    - unsigned int
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3069
    functionDepth: 1
    functionLinenumber: 3069
    functionLinenumberEnd: 3087
    functionName: _winapi_ReportEvent_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - ReportEventW
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_ReportEvent_impl(PyObject *module, HANDLE handle,\n
      \                        unsigned short type, unsigned short category,\n                         unsigned
      int event_id, LPCWSTR string)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessMemoryInfo
      Src: /src/cpython/Modules/_winapi.c:3103,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_winapi.c:3104,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_winapi.c:3107,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3125,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3126,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3127,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3128,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3129,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3130,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3131,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3132,1
    - Dst: ADD
      Src: /src/cpython/Modules/_winapi.c:3133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_winapi.c:3140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3098
    functionDepth: 1
    functionLinenumber: 3098
    functionLinenumberEnd: 3142
    functionName: _winapi_GetProcessMemoryInfo_impl
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetProcessMemoryInfo
    - Py_DECREF
    - ADD
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetProcessMemoryInfo_impl(PyObject *module, HANDLE handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3124
    functionName: ADD
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD(ATTR)
  - 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: 3211
      start: 3199
    functionDepth: 0
    functionLinenumber: 3199
    functionLinenumberEnd: 3211
    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:3214,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_winapi.c:3216,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_winapi.c:3221,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/_winapi.c:3225,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3228,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3229,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3230,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3231,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3232,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3233,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3234,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3235,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3236,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3237,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3238,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3239,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3240,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3241,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3242,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3243,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3244,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3245,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3246,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3247,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3248,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3249,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3250,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3251,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3252,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3253,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3254,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3255,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3256,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3257,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3258,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3259,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3260,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3261,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3262,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3263,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3264,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3265,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3266,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3267,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3268,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3269,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3270,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3271,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3272,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3273,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3274,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3275,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3276,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3277,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3278,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3279,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3280,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3281,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3282,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3283,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3284,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3285,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3286,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3287,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3288,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3289,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3290,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3291,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3292,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3293,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3294,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3295,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3296,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3297,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3298,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3299,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3300,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3301,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3302,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3303,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3304,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3305,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3306,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3307,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3308,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3309,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3310,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3311,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3312,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3313,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3314,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3315,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3316,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3317,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3318,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3319,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3320,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3322,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3323,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3324,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3325,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3326,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3327,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3329,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3330,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3331,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3332,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3334,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3335,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3336,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3337,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3338,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3340,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3341,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3342,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3343,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3345,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3346,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3347,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3348,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3349,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3350,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3351,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3352,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3353,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3354,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3356,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3357,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3358,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3359,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3360,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3361,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3362,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3363,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3364,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3369,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3374,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3376,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3377,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3378,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3379,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3380,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3381,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3383,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3384,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3385,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3386,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3387,1
    - Dst: WINAPI_CONSTANT
      Src: /src/cpython/Modules/_winapi.c:3389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 154
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3212
    functionDepth: 2
    functionLinenumber: 3212
    functionLinenumberEnd: 3392
    functionName: winapi_exec
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - winapi_get_state
    - PyModule_GetDict
    - PyType_FromModuleAndSpec
    - WINAPI_CONSTANT
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int winapi_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winapi_get_state
      Src: /src/cpython/Modules/_winapi.c:3405,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_winapi.c:3406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3408
      start: 3402
    functionDepth: 2
    functionLinenumber: 3402
    functionLinenumberEnd: 3408
    functionName: winapi_traverse
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - winapi_get_state
    - Py_VISIT
    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:3413,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_winapi.c:3414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3410
    functionDepth: 2
    functionLinenumber: 3410
    functionLinenumberEnd: 3416
    functionName: winapi_clear
    functionSourceFile: /src/cpython/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - winapi_get_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int winapi_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winapi_clear
      Src: /src/cpython/Modules/_winapi.c:3421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3418
    functionDepth: 3
    functionLinenumber: 3418
    functionLinenumberEnd: 3422
    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:3438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3439
      start: 3435
    functionDepth: 1
    functionLinenumber: 3435
    functionLinenumberEnd: 3439
    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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    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: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    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:73,1
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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:95,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - SHA256object*
    - SHA256object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: SHA256copy
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_copy_256
    - PyErr_NoMemory
    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:107,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - SHA512object*
    - SHA512object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 113
    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:118,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha2module.c:122,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha2module.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sha2_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: newSHA224object
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    linkageType: ''
    returnType: SHA256object
    signature: 'SHA256object *

      newSHA224object(sha2_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha2module.c:131,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha2module.c:135,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha2module.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sha2_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: newSHA256object
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    linkageType: ''
    returnType: SHA256object
    signature: 'SHA256object *

      newSHA256object(sha2_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha2module.c:144,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha2module.c:148,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha2module.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sha2_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: newSHA384object
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    linkageType: ''
    returnType: SHA512object
    signature: 'SHA512object *

      newSHA384object(sha2_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/sha2module.c:157,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/sha2module.c:161,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/sha2module.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sha2_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: newSHA512object
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    linkageType: ''
    returnType: SHA512object
    signature: 'SHA512object *

      newSHA512object(sha2_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA256object_CAST
      Src: /src/cpython/Modules/sha2module.c:171,1
    - Dst: Hacl_Hash_SHA2_free_256
      Src: /src/cpython/Modules/sha2module.c:173,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha2module.c:176,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/sha2module.c:177,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/sha2module.c:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha2module.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: SHA256_dealloc
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Hacl_Hash_SHA2_free_256
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - _SHA256object_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SHA256_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _SHA512object_CAST
      Src: /src/cpython/Modules/sha2module.c:185,1
    - Dst: Hacl_Hash_SHA2_free_512
      Src: /src/cpython/Modules/sha2module.c:187,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/sha2module.c:190,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/sha2module.c:191,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/sha2module.c:192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha2module.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: SHA512_dealloc
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - _SHA512object_CAST
    - Hacl_Hash_SHA2_free_512
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:209,1
    - Dst: Hacl_Hash_SHA2_update_256
      Src: /src/cpython/Modules/sha2module.c:215,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: 216
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 216
    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:228,1
    - Dst: Hacl_Hash_SHA2_update_512
      Src: /src/cpython/Modules/sha2module.c:234,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: 235
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 235
    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:254,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/sha2module.c:255,1
    - Dst: newSHA256object
      Src: /src/cpython/Modules/sha2module.c:256,1
    - Dst: newSHA224object
      Src: /src/cpython/Modules/sha2module.c:261,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:266,1
    - Dst: SHA256copy
      Src: /src/cpython/Modules/sha2module.c:267,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha2module.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - SHA256object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 274
    functionName: SHA256Type_copy_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - SHA256copy
    - HASHLIB_ACQUIRE_LOCK
    - newSHA256object
    - Py_IS_TYPE
    - newSHA224object
    - HASHLIB_RELEASE_LOCK
    - Py_DECREF
    - _PyType_GetModuleState
    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:290,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/sha2module.c:292,1
    - Dst: newSHA512object
      Src: /src/cpython/Modules/sha2module.c:293,1
    - Dst: newSHA384object
      Src: /src/cpython/Modules/sha2module.c:298,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:303,1
    - Dst: SHA512copy
      Src: /src/cpython/Modules/sha2module.c:304,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/sha2module.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - SHA512object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 311
    functionName: SHA512Type_copy_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - newSHA384object
    - HASHLIB_ACQUIRE_LOCK
    - Py_IS_TYPE
    - newSHA512object
    - HASHLIB_RELEASE_LOCK
    - Py_DECREF
    - _PyType_GetModuleState
    - 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:324,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:325,1
    - Dst: Hacl_Hash_SHA2_digest_256
      Src: /src/cpython/Modules/sha2module.c:328,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:329,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA256object*
    assertStmts:
    - condition: (self->digestsize <= SHA256_DIGESTSIZE)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 331
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 331
    functionName: SHA256Type_digest_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - PyBytes_FromStringAndSize
    - Hacl_Hash_SHA2_digest_256
    - HASHLIB_RELEASE_LOCK
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_digest_impl(SHA256object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:344,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:345,1
    - Dst: Hacl_Hash_SHA2_digest_512
      Src: /src/cpython/Modules/sha2module.c:348,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:349,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA512object*
    assertStmts:
    - condition: (self->digestsize <= SHA512_DIGESTSIZE)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: SHA512Type_digest_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - PyBytes_FromStringAndSize
    - Hacl_Hash_SHA2_digest_512
    - HASHLIB_RELEASE_LOCK
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_digest_impl(SHA512object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:364,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:365,1
    - Dst: Hacl_Hash_SHA2_digest_256
      Src: /src/cpython/Modules/sha2module.c:366,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:367,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha2module.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA256object*
    assertStmts:
    - condition: (self->digestsize <= SHA256_DIGESTSIZE)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 369
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 369
    functionName: SHA256Type_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA2_digest_256
    - HASHLIB_RELEASE_LOCK
    - _Py_strhex
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_hexdigest_impl(SHA256object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/sha2module.c:382,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/sha2module.c:383,1
    - Dst: Hacl_Hash_SHA2_digest_512
      Src: /src/cpython/Modules/sha2module.c:384,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/sha2module.c:385,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/sha2module.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA512object*
    assertStmts:
    - condition: (self->digestsize <= SHA512_DIGESTSIZE)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/cpython/Modules/sha2module.c
    constantsTouched: []
    func_position:
      end: 387
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 387
    functionName: SHA512Type_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - Hacl_Hash_SHA2_digest_512
    - 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:403,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/sha2module.c:404,1
    - Dst: update_256
      Src: /src/cpython/Modules/sha2module.c:406,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHA256object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 410
    functionName: SHA256Type_update_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - update_256
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    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:426,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/sha2module.c:427,1
    - Dst: update_512
      Src: /src/cpython/Modules/sha2module.c:429,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHA512object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 433
    functionName: SHA512Type_update_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - update_512
    - PyBuffer_Release
    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:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 455
    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:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 461
    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:466,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/sha2module.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 468
    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: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: 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:480,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:482,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 485
    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:490,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:492,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/sha2module.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: SHA512_get_name
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - _SHA512object_CAST
    - PyUnicode_FromStringAndSize
    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:581,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:586,1
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:589,1
    - Dst: newSHA256object::newSHA256object
      Src: /src/cpython/Modules/sha2module.c:592,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:594,1
    - Dst: Hacl_Hash_SHA2_malloc_256
      Src: /src/cpython/Modules/sha2module.c:599,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:602,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:605,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:607,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha2module.c:612,1
    - Dst: update_256
      Src: /src/cpython/Modules/sha2module.c:614,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:614,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:616,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: 620
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 620
    functionName: _sha2_sha256_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - newSHA256object::newSHA256object
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyBuffer_Release
    - Hacl_Hash_SHA2_malloc_256
    - update_256
    - sha2_get_state
    - state::state
    - _Py_hashlib_data_argument
    - GET_BUFFER_VIEW_OR_ERROUT
    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:640,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:645,1
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:648,1
    - Dst: newSHA224object::newSHA224object
      Src: /src/cpython/Modules/sha2module.c:650,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:652,1
    - Dst: Hacl_Hash_SHA2_malloc_224
      Src: /src/cpython/Modules/sha2module.c:657,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:660,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:663,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:665,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha2module.c:670,1
    - Dst: update_256
      Src: /src/cpython/Modules/sha2module.c:672,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:672,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:674,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: 678
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 678
    functionName: _sha2_sha224_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_malloc_224
    - newSHA224object::newSHA224object
    - PyErr_NoMemory
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - PyBuffer_Release
    - update_256
    - sha2_get_state
    - state::state
    - _Py_hashlib_data_argument
    - GET_BUFFER_VIEW_OR_ERROUT
    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:699,1
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:703,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:706,1
    - Dst: newSHA512object::newSHA512object
      Src: /src/cpython/Modules/sha2module.c:709,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:711,1
    - Dst: Hacl_Hash_SHA2_malloc_512
      Src: /src/cpython/Modules/sha2module.c:716,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:719,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:722,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:724,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha2module.c:729,1
    - Dst: update_512
      Src: /src/cpython/Modules/sha2module.c:731,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:731,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:733,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: 737
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 737
    functionName: _sha2_sha512_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - newSHA512object::newSHA512object
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - update_512
    - PyBuffer_Release
    - sha2_get_state
    - state::state
    - _Py_hashlib_data_argument
    - Hacl_Hash_SHA2_malloc_512
    - GET_BUFFER_VIEW_OR_ERROUT
    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:758,1
    - Dst: sha2_get_state
      Src: /src/cpython/Modules/sha2module.c:762,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/cpython/Modules/sha2module.c:765,1
    - Dst: newSHA384object::newSHA384object
      Src: /src/cpython/Modules/sha2module.c:768,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:770,1
    - Dst: Hacl_Hash_SHA2_malloc_384
      Src: /src/cpython/Modules/sha2module.c:775,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:778,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:781,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/sha2module.c:783,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/sha2module.c:788,1
    - Dst: update_512
      Src: /src/cpython/Modules/sha2module.c:790,1
    - Dst: state::state
      Src: /src/cpython/Modules/sha2module.c:790,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/sha2module.c:792,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: 796
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 796
    functionName: _sha2_sha384_impl
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_SHA2_malloc_384
    - PyErr_NoMemory
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - update_512
    - PyBuffer_Release
    - sha2_get_state
    - state::state
    - _Py_hashlib_data_argument
    - GET_BUFFER_VIEW_OR_ERROUT
    - newSHA384object::newSHA384object
    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:811,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:812,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:813,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:814,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/sha2module.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 817
    functionName: _sha2_traverse
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - sha2_get_state
    - Py_VISIT
    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:822,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha2module.c:823,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha2module.c:824,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha2module.c:825,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/sha2module.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 828
    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:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 834
    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:839,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha2module.c:841,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha2module.c:846,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha2module.c:851,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/sha2module.c:856,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/sha2module.c:862,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/sha2module.c:865,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/sha2module.c:868,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/sha2module.c:871,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/sha2module.c:875,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 883
    functionName: sha2_exec
    functionSourceFile: /src/cpython/Modules/sha2module.c
    functionUses: 0
    functionsReached:
    - PyType_FromModuleAndSpec
    - sha2_get_state
    - PyModule_AddIntConstant
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int sha2_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/sha2module.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 908
    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_create
    - Py_BuildValue
    - uuid_generate_time_safe
    - uuid_enc_be
    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:
    - PyErr_SetFromWindowsErr
    - Py_BuildValue
    - UuidCreateSequential
    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:
    - ADD_INT
    - py_windows_has_stable_node
    - assert
    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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    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: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    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: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    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: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    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:67,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - new_joined_ptr
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    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:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 80
    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:116,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 119
    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:124,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    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:132,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:133,1
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: get_elementtree_state_by_type
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - PyType_GetModuleByDef
    - assert
    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: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:143,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:144,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:145,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:153,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:154,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:155,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:158,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:159,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:160,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:161,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: elementtree_clear
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - get_elementtree_state
    linkageType: ''
    returnType: int
    signature: int elementtree_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state
      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:174,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:175,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:176,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:179,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:180,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:181,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:182,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 185
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 191
    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:202,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_elementtree.c:205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 208
    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:215,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: is_empty_dict
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - PyDict_GET_SIZE
    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: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    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: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    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: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    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:274,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:276,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - attrib
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 287
    functionName: create_extra
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyErr_NoMemory
    - 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:297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:300,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_elementtree.c:303,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_elementtree.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - extra
    argTypes:
    - ElementObjectExtra*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: dealloc_extra
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void dealloc_extra(ElementObjectExtra *extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dealloc_extra
      Src: /src/cpython/Modules/_elementtree.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 323
    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:333,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:337,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:338,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:339,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_elementtree.c:342,1
    - Dst: is_empty_dict
      Src: /src/cpython/Modules/_elementtree.c:344,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - st
    - tag
    - attrib
    argTypes:
    - elementtreestate*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 352
    functionName: create_new_element
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - create_extra
    - Py_DECREF
    - Py_NewRef
    - is_empty_dict
    - PyObject_GC_Track
    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:357,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:359,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:360,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 366
    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:380,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Modules/_elementtree.c:388,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:392,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:395,1
    - Dst: _PyDict_CopyAsDict
      Src: /src/cpython/Modules/_elementtree.c:395,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:398,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_elementtree.c:401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - kwds
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 406
    functionName: get_attrib_from_keywords
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyDict_Update
    - _PyDict_CopyAsDict
    - Py_SETREF
    - PyErr_Format
    - PyDict_PopString
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_attrib_from_keywords(PyObject *kwds)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_elementtree.c:423,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Modules/_elementtree.c:425,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:426,1
    - Dst: _PyDict_CopyAsDict
      Src: /src/cpython/Modules/_elementtree.c:434,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_elementtree.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:439,1
    - Dst: get_attrib_from_keywords
      Src: /src/cpython/Modules/_elementtree.c:445,1
    - Dst: is_empty_dict
      Src: /src/cpython/Modules/_elementtree.c:452,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:453,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:454,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:460,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:463,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:463,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:465,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:465,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:466,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 469
    functionName: element_init
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyDict_Update
    - _PyDict_CopyAsDict
    - Py_XSETREF
    - get_attrib_from_keywords
    - _set_joined_ptr
    - PyErr_Format
    - create_extra
    - PyArg_ParseTuple
    - Py_XDECREF
    - Py_DECREF
    - Py_NewRef
    - 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:477,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:482,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_elementtree.c:504,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_elementtree.c:510,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_elementtree.c:515,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:525,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - self
    - extra
    argTypes:
    - ElementObject*
    - Py_ssize_t
    assertStmts:
    - condition: (extra >= 0)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 527
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 527
    functionName: element_resize
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - assert
    - PyMem_Realloc
    - memcpy
    - create_extra
    - 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:532,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - element
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: raise_type_error
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void raise_type_error(PyObject *element)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:542,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:543,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:547,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - st
    - self
    - element
    argTypes:
    - elementtreestate*
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 555
    functionName: element_add_subelement
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - raise_type_error
    - Element_Check
    - Py_NewRef
    - element_resize
    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:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 571
    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:580,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:581,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:582,1
    - Dst: list_join
      Src: /src/cpython/Modules/_elementtree.c:583,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:587,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 592
    functionName: element_get_text
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - JOIN_OBJ
    - JOIN_GET
    - Py_SETREF
    - list_join
    - PyList_CheckExact
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void element_get_text(ElementObject* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:601,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:602,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:603,1
    - Dst: list_join
      Src: /src/cpython/Modules/_elementtree.c:604,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:608,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 613
    functionName: element_get_tail
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - JOIN_OBJ
    - JOIN_GET
    - Py_SETREF
    - list_join
    - PyList_CheckExact
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void element_get_tail(ElementObject* self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:620,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_elementtree.c:624,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_elementtree.c:632,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_elementtree.c:635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:636,1
    - Dst: get_attrib_from_keywords
      Src: /src/cpython/Modules/_elementtree.c:641,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:648,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:649,1
    - Dst: element_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:654,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 659
    functionName: subelement
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 1
    functionsReached:
    - PyDict_Update
    - get_elementtree_state
    - get_attrib_from_keywords
    - PyDict_Copy
    - create_new_element
    - Py_XDECREF
    - PyArg_ParseTuple
    - element_add_subelement
    - Py_DECREF
    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:664,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:665,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:665,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:666,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:667,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:667,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:668,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:668,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:672,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 678
    functionName: element_gc_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    - JOIN_OBJ
    - Py_VISIT
    - Py_TYPE
    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:683,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:684,1
    - Dst: _clear_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:685,1
    - Dst: _clear_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:686,1
    - Dst: clear_extra
      Src: /src/cpython/Modules/_elementtree.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 693
    functionName: element_gc_clear
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    - Py_CLEAR
    - clear_extra
    - _clear_joined_ptr
    linkageType: ''
    returnType: int
    signature: int element_gc_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:698,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:699,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_elementtree.c:702,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_elementtree.c:704,1
    - Dst: element_gc_clear
      Src: /src/cpython/Modules/_elementtree.c:708,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_elementtree.c:710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 695
    functionDepth: 4
    functionLinenumber: 695
    functionLinenumberEnd: 712
    functionName: element_dealloc
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_gc_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - FT_CLEAR_WEAKREFS
    - _Element_CAST
    - Py_DECREF
    - 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:730,1
    - Dst: element_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - cls
    - subelement
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 725
    functionDepth: 4
    functionLinenumber: 725
    functionLinenumberEnd: 735
    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:746,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:748,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:748,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:749,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 752
    functionName: _elementtree_Element_clear_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - clear_extra
    - Py_NewRef
    - _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:768,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:770,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:775,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:775,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:776,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:778,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:778,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:779,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:781,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:784,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:789,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:792,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: 780
        line_start: 780
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (!element->extra->length)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 797
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 797
    functionName: _elementtree_Element___copy___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - JOIN_OBJ
    - Py_INCREF
    - get_elementtree_state_by_cls
    - _set_joined_ptr
    - create_new_element
    - element_resize
    - assert
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___copy___impl(ElementObject *self, PyTypeObject *cls)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_elementtree.c:822,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:826,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:827,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:830,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:838,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:847,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:848,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:854,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:854,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:857,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:857,1
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:857,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:859,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:859,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:862,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:862,1
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:862,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:864,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:867,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:868,1
    - Dst: deepcopy
      Src: /src/cpython/Modules/_elementtree.c:873,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:874,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:877,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:887,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:895,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_elementtree.c:903,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_elementtree.c:907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:909,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_elementtree.c:914,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_elementtree.c:918,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:919,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 83
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts:
    - condition: (!element->extra->length)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (!element->extra || !element->extra->length)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (!element->extra->length)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 921
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 921
    functionName: _elementtree_Element___deepcopy___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - raise_type_error
    - JOIN_OBJ
    - JOIN_GET
    - _Py_EnterRecursiveCall
    - Element_Check
    - _Py_LeaveRecursiveCall
    - _set_joined_ptr
    - PyDict_SetItem
    - JOIN_SET
    - create_new_element
    - PyLong_FromSsize_t
    - Py_XDECREF
    - assert
    - Py_DECREF
    - get_elementtree_state_by_type
    - deepcopy
    - element_resize
    - Py_TYPE
    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:929,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:930,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_elementtree.c:933,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:934,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_elementtree.c:938,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:939,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:939,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_elementtree.c:945,1
    - Dst: Element_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:949,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:953,1
    - Dst: _elementtree_Element___deepcopy___impl
      Src: /src/cpython/Modules/_elementtree.c:954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:956,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:963,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:968,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_elementtree.c:970,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:971,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - st
    - object
    - memo
    argTypes:
    - elementtreestate*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 924
    functionDepth: 4
    functionLinenumber: 924
    functionLinenumberEnd: 973
    functionName: deepcopy
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 1
    functionsReached:
    - Element_CheckExact
    - Py_INCREF
    - _elementtree_Element___deepcopy___impl
    - PyObject_Vectorcall
    - PyErr_SetString
    - PyUnicode_CheckExact
    - PyDict_Next
    - PyDict_Copy
    - Py_DECREF
    - PyDict_CheckExact
    - Py_NewRef
    - _PyObject_IsUniquelyReferenced
    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:985,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 993
    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:1021,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1024,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1025,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1026,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1030,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:1033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1035,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_elementtree.c:1040,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:1044,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:1045,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1046
    functionName: _elementtree_Element___getstate___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - JOIN_OBJ
    - Py_BuildValue
    - PyList_New
    - Py_DECREF
    - PyList_GET_SIZE
    - 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:1061,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:1065,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1065,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:1067,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:1067,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1068,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:1068,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:1069,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:1071,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:1071,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1072,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:1072,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:1073,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_elementtree.c:1082,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1083,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1086,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:1093,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1094,1
    - Dst: clear_extra
      Src: /src/cpython/Modules/_elementtree.c:1095,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1099,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1100,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1102,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1109,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1110,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:1111,1
    - Dst: dealloc_extra
      Src: /src/cpython/Modules/_elementtree.c:1113,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1116,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1119,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:1123,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:1129,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:1129,1
    - Dst: dealloc_extra
      Src: /src/cpython/Modules/_elementtree.c:1130,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: 1093
        line_start: 1093
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (!self->extra->length)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (self->extra)
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (self->extra->attrib == NULL)
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/cpython/Modules/_elementtree.c
    - condition: (self->extra->allocated >= nchildren)
      pos:
        line_end: 1099
        line_start: 1099
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1133
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1133
    functionName: element_setstate_from_attributes
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - raise_type_error
    - Py_INCREF
    - JOIN_OBJ
    - Element_Check
    - Py_XSETREF
    - clear_extra
    - PyErr_SetString
    - PyList_GET_ITEM
    - _set_joined_ptr
    - PyList_Check
    - JOIN_SET
    - dealloc_extra
    - element_resize
    - assert
    - PyList_CheckExact
    - PyList_GET_SIZE
    - Py_XNewRef
    - Py_NewRef
    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:1150,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/_elementtree.c:1154,1
    - Dst: element_setstate_from_attributes
      Src: /src/cpython/Modules/_elementtree.c:1156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - st
    - self
    - state
    argTypes:
    - elementtreestate*
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1139
    functionDepth: 4
    functionLinenumber: 1139
    functionLinenumberEnd: 1163
    functionName: element_setstate_from_Python
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - element_setstate_from_attributes
    - PyTuple_New
    - PyArg_ParseTupleAndKeywords
    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:1179,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:1180,1
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1186,1
    - Dst: element_setstate_from_Python
      Src: /src/cpython/Modules/_elementtree.c:1187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - cls
    - state
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1174
    functionDepth: 5
    functionLinenumber: 1174
    functionLinenumberEnd: 1189
    functionName: _elementtree_Element___setstate___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - element_setstate_from_Python
    - get_elementtree_state_by_cls
    - 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:1202,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_elementtree.c:1203,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_elementtree.c:1204,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_elementtree.c:1205,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1206,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1207,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1208,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1209,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_elementtree.c:1214,1
    - Dst: PATHCHAR
      Src: /src/cpython/Modules/_elementtree.c:1219,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_elementtree.c:1224,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:1225,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1226,1
    - Dst: PATHCHAR
      Src: /src/cpython/Modules/_elementtree.c:1237,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 30
    argCount: 1
    argNames:
    - tag
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1244
    functionName: checkpath
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PATHCHAR
    - PyUnicode_READ
    - PyBytes_Check
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    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: 1201
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1201
    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:1263,1
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1268,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1269,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1270,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1270,1
    - Dst: element_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:1271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1273,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cls
    - elements
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1255
    functionDepth: 4
    functionLinenumber: 1255
    functionLinenumberEnd: 1282
    functionName: _elementtree_Element_extend_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - get_elementtree_state_by_cls
    - Py_DECREF
    - element_add_subelement
    - PySequence_Fast_GET_ITEM
    - Py_NewRef
    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:1299,1
    - Dst: checkpath
      Src: /src/cpython/Modules/_elementtree.c:1301,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_elementtree.c:1302,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1309,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1309,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1310,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1311,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:1312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1317,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: 1308
        line_start: 1308
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1324
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1324
    functionName: _elementtree_Element_find_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - get_elementtree_state_by_cls
    - checkpath
    - PyObject_CallMethodObjArgs
    - assert
    - Py_DECREF
    - Element_Check
    - Py_NewRef
    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:1343,1
    - Dst: checkpath
      Src: /src/cpython/Modules/_elementtree.c:1345,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_elementtree.c:1346,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1353,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1353,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1354,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1355,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:1356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1357,1
    - Dst: element_get_text
      Src: /src/cpython/Modules/_elementtree.c:1359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1362,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_elementtree.c:1363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1367,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1373,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: 1352
        line_start: 1352
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1374
      start: 1337
    functionDepth: 3
    functionLinenumber: 1337
    functionLinenumberEnd: 1374
    functionName: _elementtree_Element_findtext_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - Py_INCREF
    - PyObject_RichCompareBool
    - get_elementtree_state_by_cls
    - element_get_text
    - checkpath
    - PyObject_CallMethodObjArgs
    - assert
    - Py_DECREF
    - Element_Check
    - Py_NewRef
    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:1391,1
    - Dst: checkpath
      Src: /src/cpython/Modules/_elementtree.c:1393,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_elementtree.c:1394,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1399,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1406,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1406,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:1407,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1408,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:1409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1410,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_elementtree.c:1411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1416,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: 1405
        line_start: 1405
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1420
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1420
    functionName: _elementtree_Element_findall_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - get_elementtree_state_by_cls
    - PyList_Append
    - checkpath
    - PyObject_CallMethodObjArgs
    - PyList_New
    - assert
    - Py_DECREF
    - Element_Check
    - Py_NewRef
    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:1438,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_elementtree.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cls
    - path
    - namespaces
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1432
    functionDepth: 2
    functionLinenumber: 1432
    functionLinenumberEnd: 1442
    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:1458,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:1459,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_elementtree.c:1459,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1460,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:1461,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1467
    functionName: _elementtree_Element_get_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    - PyDict_GetItemWithError
    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:1488,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_elementtree.c:1489,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_elementtree.c:1489,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_elementtree.c:1492,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1493,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:1493,1
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1497,1
    - Dst: create_elementiter
      Src: /src/cpython/Modules/_elementtree.c:1498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - self
    - cls
    - tag
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1499
    functionName: _elementtree_Element_iter_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyBytes_Check
    - get_elementtree_state_by_cls
    - PyUnicode_Check
    - create_elementiter
    - PyUnicode_GET_LENGTH
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    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:1514,1
    - Dst: create_elementiter
      Src: /src/cpython/Modules/_elementtree.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ElementObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1510
    functionDepth: 2
    functionLinenumber: 1510
    functionLinenumberEnd: 1516
    functionName: _elementtree_Element_itertext_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_elementiter
    - get_elementtree_state_by_cls
    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:1522,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1525,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1533
    functionName: element_getitem
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    - PyErr_SetString
    - Py_NewRef
    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:1538,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_elementtree.c:1539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1550
    functionName: element_bool
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int element_bool(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:1569,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:1581,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - self
    - index
    - subelement
    argTypes:
    - ElementObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1561
    functionDepth: 3
    functionLinenumber: 1561
    functionLinenumberEnd: 1592
    functionName: _elementtree_Element_insert_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_resize
    - Py_NewRef
    - 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:1604,1
    - Dst: PyDict_Items
      Src: /src/cpython/Modules/_elementtree.c:1606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1607
    functionName: _elementtree_Element_items_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_Items
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_items_impl(ElementObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1619,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Modules/_elementtree.c:1621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1614
    functionDepth: 1
    functionLinenumber: 1614
    functionLinenumberEnd: 1622
    functionName: _elementtree_Element_keys_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_Keys
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_keys_impl(ElementObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1624
    functionDepth: 1
    functionLinenumber: 1624
    functionLinenumberEnd: 1632
    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:1651,1
    - Dst: get_elementtree_state_by_cls
      Src: /src/cpython/Modules/_elementtree.c:1655,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:1656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cls
    - tag
    - attrib
    argTypes:
    - ElementObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1644
    functionDepth: 3
    functionLinenumber: 1644
    functionLinenumberEnd: 1661
    functionName: _elementtree_Element_makeelement_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_Copy
    - Py_DECREF
    - create_new_element
    - get_elementtree_state_by_cls
    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:1688,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:1689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1690,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:1700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1718,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - self
    - subelement
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1720
    functionName: _elementtree_Element_remove_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - Py_NewRef
    - PyErr_Format
    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:1726,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_elementtree.c:1728,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_elementtree.c:1730,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_elementtree.c:1733,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_elementtree.c:1734,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:1738,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:1740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1722
    functionDepth: 1
    functionLinenumber: 1722
    functionLinenumberEnd: 1742
    functionName: element_repr
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - PyErr_Format
    - _Element_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_repr(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:1761,1
    - Dst: element_get_attrib
      Src: /src/cpython/Modules/_elementtree.c:1765,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_elementtree.c:1769,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1753
    functionDepth: 2
    functionLinenumber: 1753
    functionLinenumberEnd: 1773
    functionName: _elementtree_Element_set_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_get_attrib
    - PyDict_SetItem
    - create_extra
    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:1778,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1783,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:1792,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:1793,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:1794,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:1795,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - op
    - index
    - item
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1775
    functionDepth: 3
    functionLinenumber: 1775
    functionLinenumberEnd: 1808
    functionName: element_setitem
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - raise_type_error
    - PyErr_SetString
    - _Element_CAST
    - get_elementtree_state_by_type
    - Element_Check
    - Py_DECREF
    - Py_NewRef
    - 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:1813,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_elementtree.c:1815,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_elementtree.c:1816,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:1818,1
    - Dst: element_getitem
      Src: /src/cpython/Modules/_elementtree.c:1823,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_elementtree.c:1825,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_elementtree.c:1833,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1838,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_elementtree.c:1840,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1844,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1846,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:1852,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1853,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:1860,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1810
    functionDepth: 2
    functionLinenumber: 1810
    functionLinenumberEnd: 1864
    functionName: element_subscr
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyList_SET_ITEM
    - element_getitem
    - PySlice_AdjustIndices
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - PyList_New
    - PyErr_Occurred
    - _Element_CAST
    - PyIndex_Check
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_subscr(PyObject *op, PyObject *item)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:1869,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_elementtree.c:1871,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_elementtree.c:1872,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:1874,1
    - Dst: element_setitem
      Src: /src/cpython/Modules/_elementtree.c:1879,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_elementtree.c:1881,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_elementtree.c:1891,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_elementtree.c:1900,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:1914,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:1919,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:1939,1
    - Dst: memmove
      Src: /src/cpython/Modules/_elementtree.c:1941,1
    - Dst: memmove
      Src: /src/cpython/Modules/_elementtree.c:1950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1959,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_elementtree.c:1964,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:1968,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:1971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1972,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_elementtree.c:1976,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1980,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:1981,1
    - Dst: element_resize
      Src: /src/cpython/Modules/_elementtree.c:1991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:1992,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:1997,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:1998,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2000,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:2001,1
    - Dst: raise_type_error
      Src: /src/cpython/Modules/_elementtree.c:2002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2003,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:2012,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2014,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2019,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2035,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2041,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2044,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:2049,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((size_t)slicelen <= SIZE_MAX / sizeof(PyObject *))
      pos:
        line_end: 1913
        line_start: 1913
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 2053
      start: 1866
    functionDepth: 4
    functionLinenumber: 1866
    functionLinenumberEnd: 2053
    functionName: element_ass_subscr
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PySequence_Fast
    - PyErr_Occurred
    - assert
    - _Element_CAST
    - element_resize
    - get_elementtree_state_by_type
    - Element_Check
    - Py_TYPE
    - PyList_New
    - Py_XDECREF
    - PyIndex_Check
    - element_setitem
    - PySlice_AdjustIndices
    - memmove
    - PyErr_SetString
    - create_extra
    - Py_DECREF
    - raise_type_error
    - Py_NewRef
    - PyList_SET_ITEM
    - PySequence_Fast_GET_SIZE
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - PyErr_Format
    - PySequence_Fast_GET_ITEM
    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:2058,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2061
    functionName: element_tag_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    - Py_NewRef
    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:2066,1
    - Dst: element_get_text
      Src: /src/cpython/Modules/_elementtree.c:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2063
    functionDepth: 3
    functionLinenumber: 2063
    functionLinenumberEnd: 2068
    functionName: element_text_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    - element_get_text
    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:2073,1
    - Dst: element_get_tail
      Src: /src/cpython/Modules/_elementtree.c:2074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2070
    functionDepth: 3
    functionLinenumber: 2070
    functionLinenumberEnd: 2075
    functionName: element_tail_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    - element_get_tail
    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:2081,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:2083,1
    - Dst: element_get_attrib
      Src: /src/cpython/Modules/_elementtree.c:2086,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:2087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2077
    functionDepth: 2
    functionLinenumber: 2077
    functionLinenumberEnd: 2088
    functionName: element_attrib_getter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Element_CAST
    - Py_XNewRef
    - element_get_attrib
    - create_extra
    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: 2098
      start: 2091
    functionDepth: 0
    functionLinenumber: 2091
    functionLinenumberEnd: 2098
    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:2102,1
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2103,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:2104,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2099
    functionDepth: 1
    functionLinenumber: 2099
    functionLinenumberEnd: 2106
    functionName: element_tag_setter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _VALIDATE_ATTR_VALUE
    - _Element_CAST
    - Py_NewRef
    - Py_SETREF
    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:2111,1
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2112,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:2113,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2108
    functionDepth: 2
    functionLinenumber: 2108
    functionLinenumberEnd: 2115
    functionName: element_text_setter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _VALIDATE_ATTR_VALUE
    - _Element_CAST
    - Py_NewRef
    - _set_joined_ptr
    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:2120,1
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2121,1
    - Dst: _set_joined_ptr
      Src: /src/cpython/Modules/_elementtree.c:2122,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2117
    functionDepth: 2
    functionLinenumber: 2117
    functionLinenumberEnd: 2124
    functionName: element_tail_setter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _VALIDATE_ATTR_VALUE
    - _Element_CAST
    - Py_NewRef
    - _set_joined_ptr
    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:2129,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Modules/_elementtree.c:2130,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:2131,1
    - Dst: _Element_CAST
      Src: /src/cpython/Modules/_elementtree.c:2136,1
    - Dst: create_extra
      Src: /src/cpython/Modules/_elementtree.c:2138,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2141,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2126
    functionDepth: 2
    functionLinenumber: 2126
    functionLinenumberEnd: 2143
    functionName: element_attrib_setter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - _VALIDATE_ATTR_VALUE
    - Py_XSETREF
    - create_extra
    - PyErr_Format
    - _Element_CAST
    - Py_NewRef
    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: 2171
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2171
    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:2176,1
    - Dst: _ElementIter_CAST
      Src: /src/cpython/Modules/_elementtree.c:2177,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_elementtree.c:2181,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2183,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_elementtree.c:2184,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2186,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2187,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_elementtree.c:2189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2191
    functionName: elementiter_dealloc
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - PyMem_Free
    - _ElementIter_CAST
    - Py_XDECREF
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void elementiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ElementIter_CAST
      Src: /src/cpython/Modules/_elementtree.c:2196,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2199,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2201,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2202,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2203,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2193
    functionDepth: 1
    functionLinenumber: 2193
    functionLinenumberEnd: 2205
    functionName: elementiter_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _ElementIter_CAST
    - Py_VISIT
    - Py_TYPE
    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:2217,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - it
    - parent
    argTypes:
    - ElementIterObject*
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2227
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: _ElementIter_CAST
      Src: /src/cpython/Modules/_elementtree.c:2232,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/_elementtree.c:2255,1
    - Dst: element_get_tail
      Src: /src/cpython/Modules/_elementtree.c:2278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2281,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2286,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:2287,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:2288,1
    - Dst: Element_Check
      Src: /src/cpython/Modules/_elementtree.c:2288,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2290,1
    - Dst: parent_stack_push_new
      Src: /src/cpython/Modules/_elementtree.c:2294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2295,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:2296,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_elementtree.c:2300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2301,1
    - Dst: element_get_text
      Src: /src/cpython/Modules/_elementtree.c:2304,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_elementtree.c:2311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2326,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_elementtree.c:2329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2332,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Element_Check(st, extra->children[child_index]))
      pos:
        line_end: 2287
        line_start: 2287
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 2339
      start: 2229
    functionDepth: 3
    functionLinenumber: 2229
    functionLinenumberEnd: 2339
    functionName: elementiter_next
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_NoMemory
    - element_get_tail
    - PyUnicode_Check
    - element_get_text
    - PyObject_IsTrue
    - PyErr_SetNone
    - parent_stack_push_new
    - assert
    - _ElementIter_CAST
    - get_elementtree_state_by_type
    - Element_Check
    - Py_DECREF
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      elementiter_next(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_elementtree.c:2367,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2371,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2373,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_elementtree.c:2375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2377,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:2378,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_elementtree.c:2384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - st
    - self
    - tag
    - gettext
    argTypes:
    - elementtreestate*
    - ElementObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2361
    functionDepth: 1
    functionLinenumber: 2361
    functionLinenumberEnd: 2387
    functionName: create_elementiter
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - PyMem_New
    - PyErr_NoMemory
    - Py_DECREF
    - Py_NewRef
    - PyObject_GC_Track
    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: 2427
      start: 2426
    functionDepth: 0
    functionLinenumber: 2426
    functionLinenumberEnd: 2427
    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: 2428
      start: 2427
    functionDepth: 0
    functionLinenumber: 2427
    functionLinenumberEnd: 2428
    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:2435,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2438,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2439,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:2444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2448,1
    - Dst: get_elementtree_state_by_type
      Src: /src/cpython/Modules/_elementtree.c:2458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2432
    functionDepth: 3
    functionLinenumber: 2432
    functionLinenumberEnd: 2461
    functionName: treebuilder_new
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - get_elementtree_state_by_type
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:2484,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2484,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2486,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2494,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2494,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2497,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2506,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2506,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2509,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: 2514
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2514
    functionName: _elementtree_TreeBuilder___init___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_NewRef
    - Py_CLEAR
    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:2519,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2520,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2520,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2521,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2522,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2523,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2524,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2525,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2526,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2527,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2528,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2529,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2530,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2531,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2532,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2533,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2534,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2535,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:2536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2516
    functionDepth: 1
    functionLinenumber: 2516
    functionLinenumberEnd: 2538
    functionName: treebuilder_gc_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _TreeBuilder_CAST
    - Py_VISIT
    - Py_TYPE
    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:2543,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2544,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2545,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2546,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2547,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2548,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2549,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2550,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2551,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2552,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2553,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2554,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2555,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2556,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2557,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2558,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2540
    functionDepth: 1
    functionLinenumber: 2540
    functionLinenumberEnd: 2561
    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:2566,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_elementtree.c:2567,1
    - Dst: treebuilder_gc_clear
      Src: /src/cpython/Modules/_elementtree.c:2568,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_elementtree.c:2569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2563
    functionDepth: 2
    functionLinenumber: 2563
    functionLinenumberEnd: 2571
    functionName: treebuilder_dealloc
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - treebuilder_gc_clear
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:2594,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_elementtree.c:2597,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:2598,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2599,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_elementtree.c:2602,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:2603,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:2604,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_elementtree.c:2608,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2613,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2615,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2615,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2618,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2620,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - comment_factory
    - pi_factory
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2589
    functionDepth: 2
    functionLinenumber: 2589
    functionLinenumberEnd: 2624
    functionName: _elementtree__set_factories_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - PyCallable_Check
    - Py_XSETREF
    - _PyTuple_FromPair
    - Py_CLEAR
    - PyErr_Format
    - Py_NewRef
    - 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:2632,1
    - Dst: JOIN_OBJ
      Src: /src/cpython/Modules/_elementtree.c:2633,1
    - Dst: JOIN_SET
      Src: /src/cpython/Modules/_elementtree.c:2635,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2637,1
    - Dst: JOIN_GET
      Src: /src/cpython/Modules/_elementtree.c:2640,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_elementtree.c:2641,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2644,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_elementtree.c:2653,1
    - Dst: list_join
      Src: /src/cpython/Modules/_elementtree.c:2656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2658,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Modules/_elementtree.c:2662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2669,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_elementtree.c:2672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2673,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2676,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: 2679
      start: 2626
    functionDepth: 2
    functionLinenumber: 2626
    functionLinenumberEnd: 2679
    functionName: treebuilder_extend_element_text_or_tail
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Element_CheckExact
    - JOIN_OBJ
    - JOIN_GET
    - PyObject_SetAttr
    - PyNumber_Add
    - PyObject_GetAttr
    - list_join
    - Py_CLEAR
    - JOIN_SET
    - Py_DECREF
    - PyList_CheckExact
    - PyList_SetSlice
    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:2690,1
    - Dst: treebuilder_extend_element_text_or_tail
      Src: /src/cpython/Modules/_elementtree.c:2696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2682
    functionDepth: 3
    functionLinenumber: 2682
    functionLinenumberEnd: 2700
    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:2706,1
    - Dst: element_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:2708,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_elementtree.c:2712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - st
    - element
    - child
    argTypes:
    - elementtreestate*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2702
    functionDepth: 4
    functionLinenumber: 2702
    functionLinenumberEnd: 2718
    functionName: treebuilder_add_subelement
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - Element_CheckExact
    - Py_DECREF
    - element_add_subelement
    linkageType: ''
    returnType: int
    signature: "int treebuilder_add_subelement(elementtreestate *st, PyObject *element,\n
      \                          PyObject *child)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_elementtree.c:2726,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:2729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - action
    - node
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2721
    functionDepth: 1
    functionLinenumber: 2721
    functionLinenumberEnd: 2736
    functionName: treebuilder_append_event
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyTuple_FromPair
    - PyObject_CallOneArg
    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:2749,1
    - Dst: create_new_element
      Src: /src/cpython/Modules/_elementtree.c:2754,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:2757,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_elementtree.c:2760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2762,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_elementtree.c:2765,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:2773,1
    - Dst: treebuilder_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:2776,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:2781,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2787,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:2790,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Modules/_elementtree.c:2791,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:2793,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_elementtree.c:2795,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:2800,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2800,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:2801,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2801,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2809,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 3
    argNames:
    - self
    - tag
    - attrib
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2742
    functionDepth: 5
    functionLinenumber: 2742
    functionLinenumberEnd: 2811
    functionName: treebuilder_handle_start
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - treebuilder_flush_data
    - Py_INCREF
    - PyErr_SetString
    - treebuilder_append_event
    - treebuilder_add_subelement
    - Py_SETREF
    - PyObject_CallFunctionObjArgs
    - Py_CLEAR
    - create_new_element
    - PyList_Append
    - Py_DECREF
    - PyList_GET_SIZE
    - Py_NewRef
    - PyDict_New
    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:2822,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2825,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_elementtree.c:2826,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2827,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:2827,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:2831,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_elementtree.c:2832,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:2834,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:2834,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:2835,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_elementtree.c:2836,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_elementtree.c:2839,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2842,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2842,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2843,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2843,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_elementtree.c:2844,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2814
    functionDepth: 1
    functionLinenumber: 2814
    functionLinenumberEnd: 2849
    functionName: treebuilder_handle_data
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyList_Append
    - Py_SETREF
    - PyBytes_CheckExact
    - PyList_New
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    - PyList_CheckExact
    - PyBytes_GET_SIZE
    - Py_NewRef
    - _PyObject_IsUniquelyReferenced
    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:2854,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:2859,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2869,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2870,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2872,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:2872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2873,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:2874,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2852
    functionDepth: 4
    functionLinenumber: 2852
    functionLinenumberEnd: 2882
    functionName: treebuilder_handle_end
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_flush_data
    - PyErr_SetString
    - treebuilder_append_event
    - PyList_GET_ITEM
    - Py_XDECREF
    - Py_DECREF
    - Py_NewRef
    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:2890,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:2895,1
    - Dst: treebuilder_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:2901,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2904,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2904,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2907,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2911,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2918,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2885
    functionDepth: 5
    functionLinenumber: 2885
    functionLinenumberEnd: 2920
    functionName: treebuilder_handle_comment
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_flush_data
    - Py_XSETREF
    - treebuilder_append_event
    - treebuilder_add_subelement
    - Py_DECREF
    - Py_NewRef
    - PyObject_CallOneArg
    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:2928,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_elementtree.c:2934,1
    - Dst: treebuilder_add_subelement
      Src: /src/cpython/Modules/_elementtree.c:2941,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:2944,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:2944,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_elementtree.c:2947,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2961,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - self
    - target
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2923
    functionDepth: 5
    functionLinenumber: 2923
    functionLinenumberEnd: 2963
    functionName: treebuilder_handle_pi
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_flush_data
    - PyObject_Vectorcall
    - Py_XSETREF
    - treebuilder_append_event
    - treebuilder_add_subelement
    - _PyTuple_FromPair
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_pi(TreeBuilderObject* self, PyObject* target,
      PyObject* text)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_elementtree.c:2971,1
    - Dst: treebuilder_append_event
      Src: /src/cpython/Modules/_elementtree.c:2976,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:2980,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - prefix
    - uri
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2966
    functionDepth: 2
    functionLinenumber: 2966
    functionLinenumberEnd: 2984
    functionName: treebuilder_handle_start_ns
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - treebuilder_append_event
    - _PyTuple_FromPair
    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:2990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2996
      start: 2987
    functionDepth: 2
    functionLinenumber: 2987
    functionLinenumberEnd: 2996
    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:3013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 3009
    functionDepth: 2
    functionLinenumber: 3009
    functionLinenumberEnd: 3014
    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:3028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3024
    functionDepth: 5
    functionLinenumber: 3024
    functionLinenumberEnd: 3029
    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:3044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3045
      start: 3039
    functionDepth: 6
    functionLinenumber: 3039
    functionLinenumberEnd: 3045
    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:3061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - target
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3056
    functionDepth: 6
    functionLinenumber: 3056
    functionLinenumberEnd: 3062
    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:3076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3065
    functionDepth: 0
    functionLinenumber: 3065
    functionLinenumberEnd: 3077
    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:3088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3084
    functionDepth: 1
    functionLinenumber: 3084
    functionLinenumberEnd: 3089
    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:3105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - tag
    - attrs
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3100
    functionDepth: 6
    functionLinenumber: 3100
    functionLinenumberEnd: 3106
    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: 3112
      start: 3111
    functionDepth: 0
    functionLinenumber: 3111
    functionLinenumberEnd: 3112
    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: 3143
      start: 3142
    functionDepth: 0
    functionLinenumber: 3142
    functionLinenumberEnd: 3143
    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:3152,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_elementtree.c:3157,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_elementtree.c:3161,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_elementtree.c:3161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3163,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_elementtree.c:3177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3179,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:3182,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_elementtree.c:3184,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:3188,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:3192,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3196,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_elementtree.c:3201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3208,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - self
    - string
    argTypes:
    - XMLParserObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3147
    functionDepth: 1
    functionLinenumber: 3147
    functionLinenumberEnd: 3210
    functionName: makeuniversal
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - PyBytes_FromStringAndSize
    - PyUnicode_DecodeUTF8
    - PyDict_SetItem
    - memcpy
    - PyErr_Occurred
    - strlen
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    - PyDict_GetItemWithError
    linkageType: ''
    returnType: void
    signature: void makeuniversal(XMLParserObject* self, const char* string)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_elementtree.c:3222,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3223,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3229,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_elementtree.c:3234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3236,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3244,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_elementtree.c:3246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3248,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3256,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_elementtree.c:3258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3259,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: 3260
      start: 3216
    functionDepth: 1
    functionLinenumber: 3216
    functionLinenumberEnd: 3260
    functionName: expat_set_error
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetObject
    - EXPAT
    - PyUnicode_FromFormat
    - Py_BuildValue
    - PyObject_SetAttrString
    - Py_DECREF
    - PyObject_CallOneArg
    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:3268,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3276,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3279,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_elementtree.c:3283,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3287,1
    - Dst: treebuilder_handle_data
      Src: /src/cpython/Modules/_elementtree.c:3288,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3292,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3295,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3296,1
    - Dst: strncat
      Src: /src/cpython/Modules/_elementtree.c:3299,1
    - Dst: expat_set_error
      Src: /src/cpython/Modules/_elementtree.c:3300,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3303,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3309,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: 3310
      start: 3265
    functionDepth: 2
    functionLinenumber: 3265
    functionLinenumberEnd: 3310
    functionName: expat_default_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - expat_set_error
    - PyUnicode_DecodeUTF8
    - EXPAT
    - XMLParserObject_CAST
    - strncat
    - TreeBuilder_CheckExact
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - treebuilder_handle_data
    - PyDict_GetItemWithError
    - PyObject_CallOneArg
    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:3316,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3322,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3326,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:3332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3334,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3341,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3344,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3348,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_elementtree.c:3351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3356,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3366,1
    - Dst: treebuilder_handle_start
      Src: /src/cpython/Modules/_elementtree.c:3368,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:3373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3375,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_elementtree.c:3379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3384,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3385,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3387,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: 3388
      start: 3312
    functionDepth: 6
    functionLinenumber: 3312
    functionLinenumberEnd: 3388
    functionName: expat_start_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_start
    - PyUnicode_DecodeUTF8
    - PyDict_SetItem
    - XMLParserObject_CAST
    - PyObject_CallFunctionObjArgs
    - TreeBuilder_CheckExact
    - makeuniversal
    - PyErr_Occurred
    - Py_DECREF
    - strlen
    - Py_XDECREF
    - 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:3394,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3398,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3401,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3406,1
    - Dst: treebuilder_handle_data
      Src: /src/cpython/Modules/_elementtree.c:3408,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3414,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3416,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: 3417
      start: 3390
    functionDepth: 2
    functionLinenumber: 3390
    functionLinenumberEnd: 3417
    functionName: expat_data_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - TreeBuilder_CheckExact
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - treebuilder_handle_data
    - PyObject_CallOneArg
    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:3422,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3426,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3430,1
    - Dst: treebuilder_handle_end
      Src: /src/cpython/Modules/_elementtree.c:3433,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3437,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3440,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - op
    - tag_in
    argTypes:
    - void*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3419
    functionDepth: 5
    functionLinenumber: 3419
    functionLinenumberEnd: 3445
    functionName: expat_end_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - XMLParserObject_CAST
    - TreeBuilder_CheckExact
    - makeuniversal
    - PyErr_Occurred
    - treebuilder_handle_end
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallOneArg
    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:3451,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3456,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3465,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3470,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3470,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3473,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3475,1
    - Dst: treebuilder_handle_start_ns
      Src: /src/cpython/Modules/_elementtree.c:3479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3481,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3484,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3484,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3487,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3489,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_elementtree.c:3494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3496,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3499,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: 3500
      start: 3447
    functionDepth: 3
    functionLinenumber: 3447
    functionLinenumberEnd: 3500
    functionName: expat_start_ns_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_Vectorcall
    - PyUnicode_DecodeUTF8
    - treebuilder_handle_start_ns
    - XMLParserObject_CAST
    - TreeBuilder_CheckExact
    - strlen
    - PyErr_Occurred
    - Py_DECREF
    - Py_XDECREF
    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:3505,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3509,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3516,1
    - Dst: treebuilder_handle_end_ns
      Src: /src/cpython/Modules/_elementtree.c:3521,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3524,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3524,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3529,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3532,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - op
    - prefix_in
    argTypes:
    - void*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3533
      start: 3502
    functionDepth: 3
    functionLinenumber: 3502
    functionLinenumberEnd: 3533
    functionName: expat_end_ns_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - TreeBuilder_CheckExact
    - PyErr_Occurred
    - strlen
    - Py_DECREF
    - treebuilder_handle_end_ns
    - Py_XDECREF
    - 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:3538,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3542,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3546,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3550,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3550,1
    - Dst: treebuilder_handle_comment
      Src: /src/cpython/Modules/_elementtree.c:3554,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3556,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3558,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3558,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_elementtree.c:3562,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - op
    - comment_in
    argTypes:
    - void*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3566
      start: 3535
    functionDepth: 6
    functionLinenumber: 3535
    functionLinenumberEnd: 3566
    functionName: expat_comment_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - TreeBuilder_CheckExact
    - strlen
    - PyErr_Occurred
    - Py_XDECREF
    - treebuilder_handle_comment
    - Py_DECREF
    - 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:3575,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3579,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3582,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3589,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:3593,1
    - Dst: makeuniversal
      Src: /src/cpython/Modules/_elementtree.c:3597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3600,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:3604,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_elementtree.c:3610,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3613,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_elementtree.c:3615,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_elementtree.c:3616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3624,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: 3625
      start: 3568
    functionDepth: 2
    functionLinenumber: 3568
    functionLinenumberEnd: 3625
    functionName: expat_start_doctype_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrWithError
    - PyErr_WarnEx
    - XMLParserObject_CAST
    - PyObject_CallFunctionObjArgs
    - makeuniversal
    - PyErr_Occurred
    - Py_DECREF
    - Py_XDECREF
    - Py_NewRef
    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:3631,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3636,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3640,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3645,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3645,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3648,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3648,1
    - Dst: treebuilder_handle_pi
      Src: /src/cpython/Modules/_elementtree.c:3651,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3652,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3654,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3657,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3657,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_elementtree.c:3660,1
    - Dst: strlen
      Src: /src/cpython/Modules/_elementtree.c:3660,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_elementtree.c:3665,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3668,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_elementtree.c:3674,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: 3676
      start: 3627
    functionDepth: 6
    functionLinenumber: 3627
    functionLinenumberEnd: 3676
    functionName: expat_pi_handler
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_pi
    - PyObject_Vectorcall
    - PyUnicode_DecodeUTF8
    - XMLParserObject_CAST
    - TreeBuilder_CheckExact
    - strlen
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    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:3683,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_elementtree.c:3691,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:3692,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:3693,1
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:3695,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: 3691
        line_start: 3691
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 3698
      start: 3680
    functionDepth: 2
    functionLinenumber: 3680
    functionLinenumberEnd: 3698
    functionName: xmlparser_new
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_elementtree_state
    - Py_INCREF
    - PyType_GetModuleByDef
    - assert
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparser_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_elementtree.c:3704,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_elementtree.c:3707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3710
      start: 3700
    functionDepth: 1
    functionLinenumber: 3700
    functionLinenumberEnd: 3710
    functionName: ignore_attribute_error
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int ignore_attribute_error(PyObject *value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:3726,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_elementtree.c:3730,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3732,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3736,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3738,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3739,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_elementtree.c:3740,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3744,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3745,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3748,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3749,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_elementtree.c:3754,1
    - Dst: treebuilder_new
      Src: /src/cpython/Modules/_elementtree.c:3756,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3758,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3759,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3765,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3766,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3769,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3770,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3773,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3774,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3777,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3778,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3781,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3782,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3785,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3786,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3789,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3790,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3793,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3794,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:3797,1
    - Dst: ignore_attribute_error
      Src: /src/cpython/Modules/_elementtree.c:3798,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3803,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3805,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3810,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3815,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3819,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3824,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3829,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3833,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3837,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3839,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 3
    argNames:
    - self
    - target
    - encoding
    argTypes:
    - XMLParserObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3843
      start: 3721
    functionDepth: 4
    functionLinenumber: 3721
    functionLinenumberEnd: 3843
    functionName: _elementtree_XMLParser___init___impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - ignore_attribute_error
    - Py_INCREF
    - PyErr_NoMemory
    - EXPAT
    - Py_CLEAR
    - PyObject_GetAttrString
    - treebuilder_new
    - PyDict_New
    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:3848,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3849,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_elementtree.c:3849,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3850,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3851,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3852,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3853,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3854,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3855,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3856,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3857,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3858,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3860,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3861,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_elementtree.c:3862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3845
    functionDepth: 1
    functionLinenumber: 3845
    functionLinenumberEnd: 3865
    functionName: xmlparser_gc_traverse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - XMLParserObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:3870,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3875,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3878,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3879,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3880,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3881,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3882,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3883,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3884,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3885,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3886,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3887,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3889,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3890,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:3891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3894
      start: 3867
    functionDepth: 1
    functionLinenumber: 3867
    functionLinenumberEnd: 3894
    functionName: xmlparser_gc_clear
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - XMLParserObject_CAST
    - EXPAT
    - 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:3899,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_elementtree.c:3900,1
    - Dst: xmlparser_gc_clear
      Src: /src/cpython/Modules/_elementtree.c:3901,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_elementtree.c:3902,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3904
      start: 3896
    functionDepth: 2
    functionLinenumber: 3896
    functionLinenumberEnd: 3904
    functionName: xmlparser_dealloc
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - xmlparser_gc_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void xmlparser_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:3910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3907
    functionDepth: 1
    functionLinenumber: 3907
    functionLinenumberEnd: 3915
    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:3923,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3923,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3924,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:3926,1
    - Dst: expat_set_error
      Src: /src/cpython/Modules/_elementtree.c:3930,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3932,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3933,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3934,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: 3922
        line_start: 3922
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 3941
      start: 3918
    functionDepth: 2
    functionLinenumber: 3918
    functionLinenumberEnd: 3941
    functionName: expat_parse
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - expat_set_error
    - EXPAT
    - PyErr_Occurred
    - assert
    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:3956,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:3960,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:3964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3965,1
    - Dst: treebuilder_done
      Src: /src/cpython/Modules/_elementtree.c:3966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:3969,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_elementtree.c:3970,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3975
      start: 3948
    functionDepth: 3
    functionLinenumber: 3948
    functionLinenumberEnd: 3975
    functionName: _elementtree_XMLParser_close_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_done
    - TreeBuilder_CheckExact
    - expat_parse
    - PyObject_CallNoArgs
    - Py_DECREF
    - _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:3986,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:3992,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4002,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4004,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3982
    functionDepth: 3
    functionLinenumber: 3982
    functionLinenumberEnd: 4009
    functionName: _elementtree_XMLParser_flush_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _check_xmlparser
    - EXPAT
    - expat_parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_flush_impl(XMLParserObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/cpython/Modules/_elementtree.c:4025,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_elementtree.c:4029,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_elementtree.c:4031,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4035,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4039,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4041,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_elementtree.c:4046,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_elementtree.c:4049,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4050,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4053,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_elementtree.c:4054,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - XMLParserObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4057
      start: 4019
    functionDepth: 3
    functionLinenumber: 4019
    functionLinenumberEnd: 4057
    functionName: _elementtree_XMLParser_feed_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - EXPAT
    - PyUnicode_Check
    - PyBuffer_Release
    - PyUnicode_AsUTF8AndSize
    - expat_parse
    - _check_xmlparser
    - PyObject_GetBuffer
    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:4078,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:4081,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_elementtree.c:4089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4093,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:4097,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_elementtree.c:4099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4100,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Modules/_elementtree.c:4103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4107,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:4112,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:4112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4113,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:4117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4120,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4123,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:4124,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:4124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4137,1
    - Dst: expat_parse
      Src: /src/cpython/Modules/_elementtree.c:4139,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:4141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4142,1
    - Dst: treebuilder_done
      Src: /src/cpython/Modules/_elementtree.c:4143,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - XMLParserObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4147
      start: 4067
    functionDepth: 3
    functionLinenumber: 4067
    functionLinenumberEnd: 4147
    functionName: _elementtree_XMLParser__parse_whole_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsEncodedString
    - PyBytes_AS_STRING
    - treebuilder_done
    - PyErr_SetString
    - PyUnicode_CheckExact
    - PyObject_CallFunction
    - PyBytes_CheckExact
    - TreeBuilder_CheckExact
    - PyUnicode_GET_LENGTH
    - PyObject_GetAttrString
    - expat_parse
    - Py_DECREF
    - _check_xmlparser
    - PyBytes_GET_SIZE
    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:4169,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/cpython/Modules/_elementtree.c:4173,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4174,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_elementtree.c:4184,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4187,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4190,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4191,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4192,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4193,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4194,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_elementtree.c:4195,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_elementtree.c:4199,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Modules/_elementtree.c:4203,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Modules/_elementtree.c:4208,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Modules/_elementtree.c:4209,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_elementtree.c:4211,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_elementtree.c:4212,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_elementtree.c:4213,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_elementtree.c:4214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4217,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:4218,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4222,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4223,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4223,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4224,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4225,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4225,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4226,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4227,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4227,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4228,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4233,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4234,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4234,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4235,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4240,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4241,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4241,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4242,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4246,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_elementtree.c:4247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_elementtree.c:4247,1
    - Dst: EXPAT
      Src: /src/cpython/Modules/_elementtree.c:4248,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_elementtree.c:4253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_elementtree.c:4259,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: 4261
      start: 4158
    functionDepth: 2
    functionLinenumber: 4158
    functionLinenumberEnd: 4261
    functionName: _elementtree_XMLParser__setevents_impl
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast
    - strcmp
    - PyBytes_Check
    - EXPAT
    - TreeBuilder_CheckExact
    - PyUnicode_FromString
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - PyBytes_AS_STRING
    - PyErr_SetString
    - Py_DECREF
    - _check_xmlparser
    - Py_NewRef
    - PySequence_Fast_GET_SIZE
    - Py_XSETREF
    - Py_CLEAR
    - PyObject_GetAttrString
    - PyErr_Format
    - PySequence_Fast_GET_ITEM
    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:4272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4275
      start: 4269
    functionDepth: 1
    functionLinenumber: 4269
    functionLinenumberEnd: 4275
    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: 4283
      start: 4282
    functionDepth: 0
    functionLinenumber: 4282
    functionLinenumberEnd: 4283
    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: 4452
      start: 4442
    functionDepth: 0
    functionLinenumber: 4442
    functionLinenumberEnd: 4452
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CREATE_TYPE(module, type, spec)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_elementtree_state
      Src: /src/cpython/Modules/_elementtree.c:4456,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_elementtree.c:4459,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_elementtree.c:4460,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_elementtree.c:4461,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_elementtree.c:4462,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_elementtree.c:4464,1
    - Dst: assert
      Src: /src/cpython/Modules/_elementtree.c:4469,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_elementtree.c:4469,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_elementtree.c:4470,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_elementtree.c:4474,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/_elementtree.c:4476,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_elementtree.c:4480,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_elementtree.c:4485,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4493,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4497,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4501,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4505,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4509,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4513,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4517,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_elementtree.c:4521,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_elementtree.c:4525,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_elementtree.c:4528,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_elementtree.c:4538,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_elementtree.c:4539,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 85
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 4468
        line_start: 4468
        source_file: /src/cpython/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 4548
      start: 4453
    functionDepth: 2
    functionLinenumber: 4453
    functionLinenumberEnd: 4548
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - get_elementtree_state
    - PyImport_ImportModule
    - CREATE_TYPE
    - strcmp
    - PyUnicode_InternFromString
    - Py_ARRAY_LENGTH
    - PyErr_SetString
    - PyCapsule_GetPointer
    - PyErr_Occurred
    - assert
    - PyModule_AddObjectRef
    - PyImport_ImportModuleAttrString
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_elementtree.c:4572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4573
      start: 4569
    functionDepth: 1
    functionLinenumber: 4569
    functionLinenumberEnd: 4573
    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: 25
    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_Slots
      Src: /src/cpython/Modules/_testlimitedcapi.c:77,1
    - Dst: _PyTestLimitedCAPI_Init_Sys
      Src: /src/cpython/Modules/_testlimitedcapi.c:80,1
    - Dst: _PyTestLimitedCAPI_Init_ThreadState
      Src: /src/cpython/Modules/_testlimitedcapi.c:83,1
    - Dst: _PyTestLimitedCAPI_Init_Tuple
      Src: /src/cpython/Modules/_testlimitedcapi.c:86,1
    - Dst: _PyTestLimitedCAPI_Init_Unicode
      Src: /src/cpython/Modules/_testlimitedcapi.c:89,1
    - Dst: _PyTestLimitedCAPI_Init_VectorcallLimited
      Src: /src/cpython/Modules/_testlimitedcapi.c:92,1
    - Dst: _PyTestLimitedCAPI_Init_Version
      Src: /src/cpython/Modules/_testlimitedcapi.c:95,1
    - Dst: _PyTestLimitedCAPI_Init_File
      Src: /src/cpython/Modules/_testlimitedcapi.c:98,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 102
    functionName: PyInit__testlimitedcapi
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - _PyTestLimitedCAPI_Init_Version
    - PyUnstable_Module_SetGIL
    - _PyTestLimitedCAPI_Init_Tuple
    - _PyTestLimitedCAPI_Init_Slots
    - _PyTestLimitedCAPI_Init_Float
    - _PyTestLimitedCAPI_Init_Long
    - _PyTestLimitedCAPI_Init_PyOS
    - _PyTestLimitedCAPI_Init_ByteArray
    - _PyTestLimitedCAPI_Init_Object
    - _PyTestLimitedCAPI_Init_Unicode
    - _PyTestLimitedCAPI_Init_Eval
    - _PyTestLimitedCAPI_Init_Dict
    - _PyTestLimitedCAPI_Init_Set
    - _PyTestLimitedCAPI_Init_Codec
    - _PyTestLimitedCAPI_Init_File
    - _PyTestLimitedCAPI_Init_Bytes
    - _PyTestLimitedCAPI_Init_ThreadState
    - _PyTestLimitedCAPI_Init_List
    - _PyTestLimitedCAPI_Init_HeaptypeRelative
    - _PyTestLimitedCAPI_Init_Import
    - _PyTestLimitedCAPI_Init_VectorcallLimited
    - _PyTestLimitedCAPI_Init_Complex
    - _PyTestLimitedCAPI_Init_Sys
    - _PyTestLimitedCAPI_Init_Abstract
    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:
    - _Py_TryIncref
    - GET_WEAKREFS_LISTPTR
    - PyList_Append
    - UNLOCK_WEAKREFS
    - _PyType_SUPPORTS_WEAKREFS
    - PyList_New
    - LOCK_WEAKREFS
    - Py_DECREF
    - Py_TYPE
    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:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: 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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    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:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - func
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    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:146,1
    - Dst: assert
      Src: /src/cpython/Modules/signalmodule.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Modules/signalmodule.c
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    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:159,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/signalmodule.c:159,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/signalmodule.c:160,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/signalmodule.c:164,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: 158
        line_start: 158
        source_file: /src/cpython/Modules/signalmodule.c
    constantsTouched: []
    func_position:
      end: 165
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 165
    functionName: compare_handler
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - PyObject_RichCompareBool
    - 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:179,1
    - Dst: _PyTime_AsTimeval
      Src: /src/cpython/Modules/signalmodule.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - tv
    argTypes:
    - PyObject*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 183
    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: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/signalmodule.c:197,1
    - Dst: double_from_timeval
      Src: /src/cpython/Modules/signalmodule.c:197,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/signalmodule.c:201,1
    - Dst: double_from_timeval
      Src: /src/cpython/Modules/signalmodule.c:201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:203,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/signalmodule.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - iv
    argTypes:
    - struct itimerval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 207
    functionName: itimer_retval
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - double_from_timeval
    - PyFloat_FromDouble
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itimer_retval(struct itimerval *iv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/cpython/Modules/signalmodule.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - signalnum
    - frame
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 228
    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:236,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:237,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/signalmodule.c:238,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/signalmodule.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: report_wakeup_write_error
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    - PyErr_SetFromErrno
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: int
    signature: int report_wakeup_write_error(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/signalmodule.c:251,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/signalmodule.c:255,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/signalmodule.c:256,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/signalmodule.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 260
    functionName: report_wakeup_send_error
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    - PyErr_SetExcFromWindowsErr
    - PyErr_FormatUnraisable
    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:266,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:270,1
    - Dst: _PyEval_SignalReceived
      Src: /src/cpython/Modules/signalmodule.c:272,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Modules/signalmodule.c:295,1
    - Dst: send
      Src: /src/cpython/Modules/signalmodule.c:299,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/signalmodule.c:302,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/signalmodule.c:308,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Modules/signalmodule.c:320,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Modules/signalmodule.c:328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - sig_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 336
    functionName: trip_signal
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - send
    - _Py_write_noraise
    - _PyEval_SignalReceived
    - GetLastError
    - _PyEval_AddPendingCall
    - _PyInterpreterState_Main
    - _Py_atomic_store_int
    linkageType: ''
    returnType: void
    signature: void trip_signal(int sig_num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trip_signal
      Src: /src/cpython/Modules/signalmodule.c:343,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:356,1
    - Dst: SetEvent
      Src: /src/cpython/Modules/signalmodule.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sig_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 369
    functionName: signal_handler
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - SetEvent
    - trip_signal
    linkageType: ''
    returnType: void
    signature: void signal_handler(int sig_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/cpython/Modules/signalmodule.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - seconds
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 389
    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:406,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 415
    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:435,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:440,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 450
    functionName: signal_raise_signal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - raise
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    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:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 441
    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:474,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:492,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:497,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:498,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:499,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:505,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/signalmodule.c:509,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:511,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:513,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:516,1
    - Dst: _PyErr_CheckSignalsTstate
      Src: /src/cpython/Modules/signalmodule.c:523,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:526,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:527,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:531,1
    - Dst: set_handler
      Src: /src/cpython/Modules/signalmodule.c:532,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/signalmodule.c:532,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 3
    argNames:
    - module
    - signalnum
    - handler
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 540
    functionName: signal_signal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - get_signal_state
    - compare_handler
    - _PyErr_CheckSignalsTstate
    - get_handler
    - PyCallable_Check
    - PyOS_setsig
    - _Py_ThreadCanHandleSignals
    - PyErr_SetString
    - _PyErr_SetString
    - _PyThreadState_GET
    - set_handler
    - PyErr_SetFromErrno
    - Py_NewRef
    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:564,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:568,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/signalmodule.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 575
    functionName: signal_getsignal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_NewRef
    - get_handler
    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:598,1
    - Dst: strsignal
      Src: /src/cpython/Modules/signalmodule.c:647,1
    - Dst: strstr
      Src: /src/cpython/Modules/signalmodule.c:649,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/signalmodule.c:653,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 654
    functionName: signal_strsignal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetString
    - strstr
    - strsignal
    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:732,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:733,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/signalmodule.c:736,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:737,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:742,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:743,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:744,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/signalmodule.c:754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:757,1
    - Dst: getsockopt
      Src: /src/cpython/Modules/signalmodule.c:760,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/signalmodule.c:764,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/signalmodule.c:766,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:772,1
    - Dst: _Py_fstat
      Src: /src/cpython/Modules/signalmodule.c:776,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/signalmodule.c:791,1
    - Dst: PyLong_FromSocket_t
      Src: /src/cpython/Modules/signalmodule.c:796,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:798,1
    - Dst: _Py_fstat
      Src: /src/cpython/Modules/signalmodule.c:803,1
    - Dst: _Py_get_blocking
      Src: /src/cpython/Modules/signalmodule.c:806,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/signalmodule.c:810,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:821,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: 823
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 823
    functionName: signal_set_wakeup_fd_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - _PyErr_Format
    - PyImport_ImportModule
    - PyLong_FromLong
    - PyLong_AsInt
    - Py_SAFE_DOWNCAST
    - _Py_ThreadCanHandleSignals
    - _Py_fstat
    - _PyErr_SetString
    - PyLong_AsSocket_t
    - getsockopt
    - PyLong_FromSocket_t
    - _PyThreadState_GET
    - PyErr_SetExcFromWindowsErr
    - PyErr_Occurred
    - Py_DECREF
    - _Py_get_blocking
    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: 837
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 837
    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:862,1
    - Dst: timeval_from_double
      Src: /src/cpython/Modules/signalmodule.c:865,1
    - Dst: it_value::it_value
      Src: /src/cpython/Modules/signalmodule.c:865,1
    - Dst: timeval_from_double
      Src: /src/cpython/Modules/signalmodule.c:868,1
    - Dst: it_interval::it_interval
      Src: /src/cpython/Modules/signalmodule.c:868,1
    - Dst: setitimer
      Src: /src/cpython/Modules/signalmodule.c:874,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:875,1
    - Dst: itimer_retval
      Src: /src/cpython/Modules/signalmodule.c:879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - which
    - seconds
    - interval
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 880
    functionName: signal_setitimer_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - get_signal_state
    - it_value::it_value
    - setitimer
    - it_interval::it_interval
    - itimer_retval
    - 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:898,1
    - Dst: getitimer
      Src: /src/cpython/Modules/signalmodule.c:901,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:902,1
    - Dst: itimer_retval
      Src: /src/cpython/Modules/signalmodule.c:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - which
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 907
    functionName: signal_getitimer_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - itimer_retval
    - get_signal_state
    - PyErr_SetFromErrno
    - getitimer
    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:919,1
    - Dst: sigismember
      Src: /src/cpython/Modules/signalmodule.c:924,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:934,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/signalmodule.c:937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:942,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - mask
    argTypes:
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 945
    functionName: sigset_to_set
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PySet_Add
    - sigismember
    - PySet_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sigset_to_set(sigset_t mask)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_sigmask
      Src: /src/cpython/Modules/signalmodule.c:967,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:970,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:975,1
    - Dst: sigset_to_set
      Src: /src/cpython/Modules/signalmodule.c:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - module
    - how
    - mask
    argTypes:
    - PyObject*
    - int
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 979
    functionName: signal_pthread_sigmask_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - pthread_sigmask
    - PyErr_SetFromErrno
    - sigset_to_set
    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:1001,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1003,1
    - Dst: sigset_to_set
      Src: /src/cpython/Modules/signalmodule.c:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1005
    functionName: signal_sigpending_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - sigpending
    - PyErr_SetFromErrno
    - sigset_to_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigpending_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigwait
      Src: /src/cpython/Modules/signalmodule.c:1032,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1036,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - sigset
    argTypes:
    - PyObject*
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1040
    functionName: signal_sigwait_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - sigwait
    - 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:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1037
    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:1062,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/signalmodule.c:1065,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/signalmodule.c:1071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1072,1
    - Dst: sigemptyset
      Src: /src/cpython/Modules/signalmodule.c:1076,1
    - Dst: sigfillset
      Src: /src/cpython/Modules/signalmodule.c:1076,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1077,1
    - Dst: sigset_to_set
      Src: /src/cpython/Modules/signalmodule.c:1079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1081
    functionName: signal_valid_signals_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - Py_BuildValue
    - PySet_New
    - sigfillset
    - Py_DECREF
    - sigset_to_set
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_valid_signals_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/signalmodule.c:1116,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1120,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1120,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1121,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1121,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1123,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1123,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1124,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1124,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1125,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1125,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1126,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1126,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1128,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1128,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1129,1
    - Dst: PyLong_FromPid
      Src: /src/cpython/Modules/signalmodule.c:1129,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1130,1
    - Dst: _PyLong_FromUid
      Src: /src/cpython/Modules/signalmodule.c:1130,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Modules/signalmodule.c:1131,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1132,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:1137,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/signalmodule.c:1137,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:1139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - state
    - si
    argTypes:
    - _signal_module_state*
    - siginfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1145
    functionName: fill_siginfo
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_New
    - PyStructSequence_SET_ITEM
    - PyErr_Occurred
    - _PyLong_FromUid
    - Py_DECREF
    - PyLong_FromPid
    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:1172,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1183,1
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1185,1
    - Dst: fill_siginfo
      Src: /src/cpython/Modules/signalmodule.c:1186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - module
    - sigset
    argTypes:
    - PyObject*
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1162
    functionDepth: 2
    functionLinenumber: 1162
    functionLinenumberEnd: 1187
    functionName: signal_sigwaitinfo_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - fill_siginfo
    - get_signal_state
    - PyErr_SetFromErrno
    - sigwaitinfo
    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:1211,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/signalmodule.c:1216,1
    - Dst: _PyDeadline_Init
      Src: /src/cpython/Modules/signalmodule.c:1220,1
    - Dst: _PyTime_AsTimespec
      Src: /src/cpython/Modules/signalmodule.c:1225,1
    - Dst: sigtimedwait
      Src: /src/cpython/Modules/signalmodule.c:1231,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1241,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:1245,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Modules/signalmodule.c:1248,1
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1254,1
    - Dst: fill_siginfo
      Src: /src/cpython/Modules/signalmodule.c:1255,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - module
    - sigset
    - timeout_obj
    argTypes:
    - PyObject*
    - sigset_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1205
    functionDepth: 2
    functionLinenumber: 1205
    functionLinenumberEnd: 1256
    functionName: signal_sigtimedwait_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - fill_siginfo
    - get_signal_state
    - _PyDeadline_Init
    - _PyTime_FromSecondsObject
    - PyErr_CheckSignals
    - PyErr_SetString
    - _PyDeadline_Get
    - PyErr_SetFromErrno
    - sigtimedwait
    - _PyTime_AsTimespec
    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:1281,1
    - Dst: pthread_kill
      Src: /src/cpython/Modules/signalmodule.c:1285,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1288,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/signalmodule.c:1293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - module
    - thread_id
    - signalnum
    argTypes:
    - PyObject*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1297
    functionName: signal_pthread_kill_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetFromErrno
    - PyErr_CheckSignals
    - pthread_kill
    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:1324,1
    - Dst: syscall
      Src: /src/cpython/Modules/signalmodule.c:1327,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/signalmodule.c:1328,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: 1332
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1332
    functionName: signal_pidfd_send_signal_impl
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - syscall
    - PyErr_SetFromErrno
    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:1406,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1417,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1420,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1423,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1428,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1431,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1434,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1437,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1440,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1443,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1446,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1449,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1452,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1455,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1458,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1461,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1464,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1467,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1470,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1473,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1476,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1479,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1482,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1485,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1488,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1491,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1494,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1497,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1500,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1503,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1506,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1509,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1512,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1515,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1518,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1521,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1524,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1527,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1530,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1533,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1536,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1539,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1542,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1547,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1550,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1553,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1558,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/signalmodule.c:1561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1567
    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: 1414
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1414
    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:1575,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:1588,1
    - Dst: set_handler
      Src: /src/cpython/Modules/signalmodule.c:1589,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/signalmodule.c:1589,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/signalmodule.c:1590,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:1594,1
    - Dst: PyMapping_GetItemString
      Src: /src/cpython/Modules/signalmodule.c:1596,1
    - Dst: set_handler
      Src: /src/cpython/Modules/signalmodule.c:1602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1603,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - state
    - mod_dict
    argTypes:
    - signal_state_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1570
    functionDepth: 1
    functionLinenumber: 1570
    functionLinenumberEnd: 1607
    functionName: signal_get_set_handlers
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyMapping_GetItemString
    - get_handler
    - PyOS_setsig
    - PyOS_getsig
    - Py_XDECREF
    - Py_DECREF
    - set_handler
    - Py_NewRef
    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:1613,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:1613,1
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1616,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/signalmodule.c:1624,1
    - Dst: signal_add_constants
      Src: /src/cpython/Modules/signalmodule.c:1631,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Modules/signalmodule.c:1636,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/signalmodule.c:1637,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/signalmodule.c:1640,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/signalmodule.c:1644,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/signalmodule.c:1650,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/signalmodule.c:1656,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:1661,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Modules/signalmodule.c:1662,1
    - Dst: signal_get_set_handlers
      Src: /src/cpython/Modules/signalmodule.c:1663,1
    - Dst: assert
      Src: /src/cpython/Modules/signalmodule.c:1668,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/signalmodule.c:1668,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1612
        line_start: 1612
        source_file: /src/cpython/Modules/signalmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1667
        line_start: 1667
        source_file: /src/cpython/Modules/signalmodule.c
    constantsTouched: []
    func_position:
      end: 1670
      start: 1610
    functionDepth: 2
    functionLinenumber: 1610
    functionLinenumberEnd: 1670
    functionName: signal_module_exec
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - get_signal_state
    - signal_add_constants
    - _Py_IsMainInterpreter
    - PyModule_GetDict
    - PyStructSequence_NewType
    - PyDict_SetItemString
    - _PyThreadState_GET
    - PyErr_Occurred
    - assert
    - signal_get_set_handlers
    - PyModule_AddType
    linkageType: ''
    returnType: int
    signature: int signal_module_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_signal_state
      Src: /src/cpython/Modules/signalmodule.c:1677,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/signalmodule.c:1678,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/signalmodule.c:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1674
    functionDepth: 2
    functionLinenumber: 1674
    functionLinenumberEnd: 1681
    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:1686,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/signalmodule.c:1687,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/signalmodule.c:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1690
    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:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1692
    functionDepth: 3
    functionLinenumber: 1692
    functionLinenumberEnd: 1696
    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:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1727
    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:1737,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1738,1
    - Dst: set_handler
      Src: /src/cpython/Modules/signalmodule.c:1739,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1742,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1743,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1745,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/signalmodule.c:1747,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/signalmodule.c:1752,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/signalmodule.c:1757,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/signalmodule.c:1758,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1730
    functionDepth: 2
    functionLinenumber: 1730
    functionLinenumberEnd: 1759
    functionName: _PySignal_Fini
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - compare_handler
    - get_handler
    - PyOS_setsig
    - _Py_atomic_store_int_relaxed
    - CloseHandle
    - Py_CLEAR
    - Py_XDECREF
    - set_handler
    linkageType: ''
    returnType: void
    signature: void _PySignal_Fini(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:1766,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1774,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Modules/signalmodule.c:1776,1
    - Dst: _Py_RunGC
      Src: /src/cpython/Modules/signalmodule.c:1777,1
    - Dst: _PyEval_RaiseAsyncExc
      Src: /src/cpython/Modules/signalmodule.c:1780,1
    - Dst: _PyRunRemoteDebugger
      Src: /src/cpython/Modules/signalmodule.c:1786,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:1789,1
    - Dst: _PyErr_CheckSignalsTstate
      Src: /src/cpython/Modules/signalmodule.c:1790,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1763
    functionDepth: 1
    functionLinenumber: 1763
    functionLinenumberEnd: 1796
    functionName: PyErr_CheckSignals
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 57
    functionsReached:
    - _Py_RunGC
    - _PyErr_CheckSignalsTstate
    - _PyEval_RaiseAsyncExc
    - _Py_ThreadCanHandleSignals
    - _Py_unset_eval_breaker_bit
    - _Py_atomic_load_uintptr_relaxed
    - _PyThreadState_GET
    - _PyRunRemoteDebugger
    linkageType: ''
    returnType: int
    signature: int PyErr_CheckSignals(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CHECK_EMSCRIPTEN_SIGNALS
      Src: /src/cpython/Modules/signalmodule.c:1803,1
    - Dst: _Py_atomic_load_int
      Src: /src/cpython/Modules/signalmodule.c:1804,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:1822,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Modules/signalmodule.c:1824,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1827,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1830,1
    - Dst: get_handler
      Src: /src/cpython/Modules/signalmodule.c:1838,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1840,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1841,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/signalmodule.c:1850,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/signalmodule.c:1853,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/signalmodule.c:1859,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Modules/signalmodule.c:1862,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/signalmodule.c:1864,1
    - Dst: _PyObject_Call
      Src: /src/cpython/Modules/signalmodule.c:1869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1870,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:1877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1881,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1800
    functionDepth: 2
    functionLinenumber: 1800
    functionLinenumberEnd: 1885
    functionName: _PyErr_CheckSignalsTstate
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_load_int
    - compare_handler
    - get_handler
    - Py_BuildValue
    - _Py_atomic_store_int_relaxed
    - _Py_CHECK_EMSCRIPTEN_SIGNALS
    - PyErr_Format
    - _PyObject_Call
    - Py_DECREF
    - _PyFrame_GetFrameObject
    - _Py_atomic_load_int_relaxed
    - _PyThreadState_GetFrame
    - PyErr_FormatUnraisable
    - _Py_atomic_store_int
    linkageType: ''
    returnType: int
    signature: int _PyErr_CheckSignalsTstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/signalmodule.c:1892,1
    - Dst: _PyErr_CheckSignalsTstate
      Src: /src/cpython/Modules/signalmodule.c:1893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1889
    functionDepth: 3
    functionLinenumber: 1889
    functionLinenumberEnd: 1894
    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:1909,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1910,1
    - Dst: compare_handler
      Src: /src/cpython/Modules/signalmodule.c:1911,1
    - Dst: trip_signal
      Src: /src/cpython/Modules/signalmodule.c:1912,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1901
    functionDepth: 2
    functionLinenumber: 1901
    functionLinenumberEnd: 1915
    functionName: PyErr_SetInterruptEx
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 1
    functionsReached:
    - compare_handler
    - trip_signal
    - get_handler
    linkageType: ''
    returnType: int
    signature: int PyErr_SetInterruptEx(int signum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetInterruptEx
      Src: /src/cpython/Modules/signalmodule.c:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1917
    functionDepth: 3
    functionLinenumber: 1917
    functionLinenumberEnd: 1921
    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:1927,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1930,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1933,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/signalmodule.c:1937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/signalmodule.c:1941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1944
    functionName: signal_install_handlers
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - PyImport_ImportModule
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int signal_install_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1959,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1962,1
    - Dst: PyOS_setsig
      Src: /src/cpython/Modules/signalmodule.c:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1955
    functionDepth: 1
    functionLinenumber: 1955
    functionLinenumberEnd: 1967
    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:1975,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/signalmodule.c:1980,1
    - Dst: CreateEvent
      Src: /src/cpython/Modules/signalmodule.c:1987,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/signalmodule.c:1989,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:1995,1
    - Dst: signal_install_handlers
      Src: /src/cpython/Modules/signalmodule.c:1999,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - install_signal_handlers
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1970
    functionDepth: 2
    functionLinenumber: 1970
    functionLinenumberEnd: 2005
    functionName: _PySignal_Init
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - signal_install_handlers
    - _Py_atomic_store_int_relaxed
    - CreateEvent
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: int
    signature: int _PySignal_Init(int install_signal_handlers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Modules/signalmodule.c:2012,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:2013,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:2017,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:2021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2023
    functionName: _PyOS_InterruptOccurred
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_int_relaxed
    - _Py_ThreadCanHandleSignals
    - _Py_EnsureTstateNotNULL
    - _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:2030,1
    - Dst: _PyOS_InterruptOccurred
      Src: /src/cpython/Modules/signalmodule.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2027
    functionDepth: 2
    functionLinenumber: 2027
    functionLinenumberEnd: 2032
    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:2039,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/signalmodule.c:2043,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Modules/signalmodule.c:2045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2036
    functionDepth: 0
    functionLinenumber: 2036
    functionLinenumberEnd: 2047
    functionName: _clear_pending_signals
    functionSourceFile: /src/cpython/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_int_relaxed
    - _Py_atomic_load_int
    - _Py_atomic_store_int
    linkageType: ''
    returnType: void
    signature: void _clear_pending_signals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _clear_pending_signals
      Src: /src/cpython/Modules/signalmodule.c:2055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2056
    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:2063,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Modules/signalmodule.c:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2065
    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: 2077
      start: 2073
    functionDepth: 0
    functionLinenumber: 2073
    functionLinenumberEnd: 2077
    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:87,1
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/cpython/Modules/blake2module.c
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 90
    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:96,1
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/cpython/Modules/blake2module.c
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: blake2_get_state_from_type
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - _PyType_GetModuleState
    - assert
    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:109,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/blake2module.c:110,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/blake2module.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: _blake2_traverse
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - blake2_get_state
    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:118,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/blake2module.c:119,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/blake2module.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: _blake2_clear
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - blake2_get_state
    linkageType: ''
    returnType: int
    signature: int _blake2_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_clear
      Src: /src/cpython/Modules/blake2module.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 128
    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:138,1
    - Dst: __cpuid_count
      Src: /src/cpython/Modules/blake2module.c:139,1
    - Dst: __cpuidex
      Src: /src/cpython/Modules/blake2module.c:142,1
    - Dst: __cpuidex
      Src: /src/cpython/Modules/blake2module.c:146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - Blake2State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 204
    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:209,1
    - Dst: blake2module_init_cpu_features
      Src: /src/cpython/Modules/blake2module.c:210,1
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:232,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/blake2module.c:234,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/blake2module.c:240,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
      Src: /src/cpython/Modules/blake2module.c:248,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: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:253,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/blake2module.c:256,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/blake2module.c:262,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
      Src: /src/cpython/Modules/blake2module.c:270,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
    - Dst: ADD_INT_CONST
      Src: /src/cpython/Modules/blake2module.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 280
    functionName: blake2_exec
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - blake2module_init_cpu_features
    - blake2_get_state
    - PyType_FromModuleAndSpec
    - ADD_INT_CONST
    - PyModule_AddType
    - ADD_INT
    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: 224
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 224
    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: 231
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 231
    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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 306
    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: 326
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 326
    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: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    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:338,1
    - Dst: strcmp
      Src: /src/cpython/Modules/blake2module.c:340,1
    - Dst: strcmp
      Src: /src/cpython/Modules/blake2module.c:347,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 355
    functionName: type_to_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - strcmp
    - blake2_get_state_from_type
    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: 368
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 368
    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: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    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:390,1
    - Dst: HASHLIB_INIT_MUTEX
      Src: /src/cpython/Modules/blake2module.c:394,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/blake2module.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 398
    functionName: new_Blake2Object
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - HASHLIB_INIT_MUTEX
    - PyObject_GC_Track
    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: 412
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 412
    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: 424
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 424
    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: 461
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 461
    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: 465
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 465
    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: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    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: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    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: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    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: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    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:480,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/blake2module.c:481,1
    - Dst: BLAKE2_IMPLNAME
      Src: /src/cpython/Modules/blake2module.c:484,1
    - Dst: MAX_OUT_BYTES
      Src: /src/cpython/Modules/blake2module.c:484,1
    - Dst: CHECK_LENGTH
      Src: /src/cpython/Modules/blake2module.c:500,1
    - Dst: MAX_KEY_BYTES
      Src: /src/cpython/Modules/blake2module.c:500,1
    - Dst: CHECK_LENGTH
      Src: /src/cpython/Modules/blake2module.c:504,1
    - Dst: MAX_SALT_LENGTH
      Src: /src/cpython/Modules/blake2module.c:504,1
    - Dst: CHECK_LENGTH
      Src: /src/cpython/Modules/blake2module.c:508,1
    - Dst: MAX_PERSONAL_BYTES
      Src: /src/cpython/Modules/blake2module.c:508,1
    - Dst: CHECK_TREE
      Src: /src/cpython/Modules/blake2module.c:521,1
    - Dst: CHECK_TREE
      Src: /src/cpython/Modules/blake2module.c:522,1
    - Dst: CHECK_TREE
      Src: /src/cpython/Modules/blake2module.c:523,1
    - Dst: CHECK_TREE
      Src: /src/cpython/Modules/blake2module.c:524,1
    - Dst: MAX_OUT_BYTES
      Src: /src/cpython/Modules/blake2module.c:524,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/blake2module.c:528,1
    - Dst: is_blake2s
      Src: /src/cpython/Modules/blake2module.c:531,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/blake2module.c:533,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: 539
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 539
    functionName: py_blake2_validate_params
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - MAX_PERSONAL_BYTES
    - CHECK_TREE
    - BLAKE2_IMPLNAME
    - PyErr_SetString
    - CHECK_LENGTH
    - is_blake2s
    - PyErr_Format
    - MAX_OUT_BYTES
    - MAX_SALT_LENGTH
    - MAX_KEY_BYTES
    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: 498
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 498
    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: 520
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 520
    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:551,1
    - Dst: type_to_impl
      Src: /src/cpython/Modules/blake2module.c:556,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:577,1
    - Dst: py_blake2_validate_params
      Src: /src/cpython/Modules/blake2module.c:582,1
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:596,1
    - Dst: memcpy
      Src: /src/cpython/Modules/blake2module.c:597,1
    - Dst: assert
      Src: /src/cpython/Modules/blake2module.c:600,1
    - Dst: memcpy
      Src: /src/cpython/Modules/blake2module.c:601,1
    - Dst: BLAKE2_MALLOC
      Src: /src/cpython/Modules/blake2module.c:630,1
    - Dst: BLAKE2_MALLOC
      Src: /src/cpython/Modules/blake2module.c:635,1
    - Dst: BLAKE2_MALLOC
      Src: /src/cpython/Modules/blake2module.c:639,1
    - Dst: BLAKE2_MALLOC
      Src: /src/cpython/Modules/blake2module.c:642,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:645,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/cpython/Modules/blake2module.c:652,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
      Src: /src/cpython/Modules/blake2module.c:655,1
    - Dst: blake2_update_unlocked
      Src: /src/cpython/Modules/blake2module.c:657,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/blake2module.c:659,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/blake2module.c:664,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: 595
        line_start: 595
        source_file: /src/cpython/Modules/blake2module.c
    - condition: (person->buf != NULL)
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/cpython/Modules/blake2module.c
    constantsTouched: []
    func_position:
      end: 666
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 666
    functionName: py_blake2_new
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROR
    - blake2_update_unlocked
    - py_blake2_validate_params
    - HASHLIB_EXTERNAL_INSTRUCTIONS_UNLOCKED
    - type_to_impl
    - new_Blake2Object
    - Py_UNREACHABLE
    - BLAKE2_MALLOC
    - PyBuffer_Release
    - memcpy
    - Py_XDECREF
    - 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: 626
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 626
    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:700,1
    - Dst: py_blake2_new
      Src: /src/cpython/Modules/blake2module.c:703,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: 706
      start: 690
    functionDepth: 4
    functionLinenumber: 690
    functionLinenumberEnd: 706
    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:740,1
    - Dst: py_blake2_new
      Src: /src/cpython/Modules/blake2module.c:743,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: 746
      start: 730
    functionDepth: 4
    functionLinenumber: 730
    functionLinenumberEnd: 746
    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:751,1
    - Dst: BLAKE2_COPY
      Src: /src/cpython/Modules/blake2module.c:763,1
    - Dst: BLAKE2_COPY
      Src: /src/cpython/Modules/blake2module.c:768,1
    - Dst: BLAKE2_COPY
      Src: /src/cpython/Modules/blake2module.c:772,1
    - Dst: BLAKE2_COPY
      Src: /src/cpython/Modules/blake2module.c:775,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:778,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/blake2module.c:785,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - cpy
    argTypes:
    - Blake2Object*
    - Blake2Object*
    assertStmts:
    - condition: (cpy != NULL)
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/cpython/Modules/blake2module.c
    constantsTouched: []
    func_position:
      end: 787
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 787
    functionName: blake2_blake2b_copy_unlocked
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - BLAKE2_COPY
    - 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: 759
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 759
    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:804,1
    - Dst: HASHLIB_ACQUIRE_LOCK
      Src: /src/cpython/Modules/blake2module.c:808,1
    - Dst: blake2_blake2b_copy_unlocked
      Src: /src/cpython/Modules/blake2module.c:809,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/blake2module.c:810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/blake2module.c:812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - Blake2Object*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 816
    functionName: _blake2_blake2b_copy_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_ACQUIRE_LOCK
    - blake2_blake2b_copy_unlocked
    - new_Blake2Object
    - HASHLIB_RELEASE_LOCK
    - Py_DECREF
    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:832,1
    - Dst: HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
      Src: /src/cpython/Modules/blake2module.c:833,1
    - Dst: blake2_update_unlocked
      Src: /src/cpython/Modules/blake2module.c:835,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/blake2module.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - Blake2Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 839
    functionName: _blake2_blake2b_update_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - HASHLIB_EXTERNAL_INSTRUCTIONS_LOCKED
    - GET_BUFFER_VIEW_OR_ERROUT
    - blake2_update_unlocked
    - PyBuffer_Release
    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:847,1
    - Dst: Hacl_Hash_Blake2s_Simd128_digest
      Src: /src/cpython/Modules/blake2module.c:852,1
    - Dst: Hacl_Hash_Blake2b_digest
      Src: /src/cpython/Modules/blake2module.c:856,1
    - Dst: Hacl_Hash_Blake2s_digest
      Src: /src/cpython/Modules/blake2module.c:858,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - digest
    argTypes:
    - Blake2Object*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: blake2_blake2b_compute_digest
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_digest
    - Hacl_Hash_Blake2b_digest
    - Hacl_Hash_Blake2b_Simd256_digest
    - Py_UNREACHABLE
    - Hacl_Hash_Blake2s_digest
    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:875,1
    - Dst: blake2_blake2b_compute_digest
      Src: /src/cpython/Modules/blake2module.c:876,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/blake2module.c:877,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/blake2module.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - Blake2Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 879
    functionName: _blake2_blake2b_digest_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - blake2_blake2b_compute_digest
    - PyBytes_FromStringAndSize
    - HASHLIB_RELEASE_LOCK
    - HASHLIB_ACQUIRE_LOCK
    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:892,1
    - Dst: blake2_blake2b_compute_digest
      Src: /src/cpython/Modules/blake2module.c:893,1
    - Dst: HASHLIB_RELEASE_LOCK
      Src: /src/cpython/Modules/blake2module.c:894,1
    - Dst: _Py_strhex
      Src: /src/cpython/Modules/blake2module.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - Blake2Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 896
    functionName: _blake2_blake2b_hexdigest_impl
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - blake2_blake2b_compute_digest
    - HASHLIB_RELEASE_LOCK
    - HASHLIB_ACQUIRE_LOCK
    - _Py_strhex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_hexdigest_impl(Blake2Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Blake2Object_CAST
      Src: /src/cpython/Modules/blake2module.c:911,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/blake2module.c:912,1
    - Dst: BLAKE2_IMPLNAME
      Src: /src/cpython/Modules/blake2module.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 913
    functionName: py_blake2b_get_name
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - BLAKE2_IMPLNAME
    - PyUnicode_FromString
    - _Blake2Object_CAST
    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:919,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/blake2module.c:920,1
    - Dst: GET_BLAKE2_CONST
      Src: /src/cpython/Modules/blake2module.c:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 921
    functionName: py_blake2b_get_block_size
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_BLAKE2_CONST
    - _Blake2Object_CAST
    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:930,1
    - Dst: Hacl_Hash_Blake2s_Simd128_info
      Src: /src/cpython/Modules/blake2module.c:934,1
    - Dst: Hacl_Hash_Blake2b_info
      Src: /src/cpython/Modules/blake2module.c:937,1
    - Dst: Hacl_Hash_Blake2s_info
      Src: /src/cpython/Modules/blake2module.c:939,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - Blake2Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 943
    functionName: hacl_get_blake2_info
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Hacl_Hash_Blake2s_Simd128_info
    - Py_UNREACHABLE
    - Hacl_Hash_Blake2b_Simd256_info
    - Hacl_Hash_Blake2s_info
    - Hacl_Hash_Blake2b_info
    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:949,1
    - Dst: hacl_get_blake2_info
      Src: /src/cpython/Modules/blake2module.c:950,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/blake2module.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 952
    functionName: py_blake2b_get_digest_size
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - hacl_get_blake2_info
    - PyLong_FromLong
    - _Blake2Object_CAST
    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:982,1
    - Dst: BLAKE2_FREE
      Src: /src/cpython/Modules/blake2module.c:987,1
    - Dst: BLAKE2_FREE
      Src: /src/cpython/Modules/blake2module.c:991,1
    - Dst: BLAKE2_FREE
      Src: /src/cpython/Modules/blake2module.c:994,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/blake2module.c:997,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 1001
    functionName: py_blake2_clear
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - BLAKE2_FREE
    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: 978
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 978
    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:1006,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/blake2module.c:1007,1
    - Dst: py_blake2_clear
      Src: /src/cpython/Modules/blake2module.c:1008,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/blake2module.c:1009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/blake2module.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1011
    functionName: py_blake2_dealloc
    functionSourceFile: /src/cpython/Modules/blake2module.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - py_blake2_clear
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void py_blake2_dealloc(PyObject *self)
  - 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:
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - 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:
    - PyErr_SetString
    - PyUnicode_DecodeUTF8
    - 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: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl/debughelpers.c:29,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:33,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:35,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:37,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/debughelpers.c:38,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_ssl/debughelpers.c:72,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl/debughelpers.c:78,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ssl/debughelpers.c:79,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_ssl/debughelpers.c:82,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl/debughelpers.c:85,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 7
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    assertStmts:
    - condition: (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: 37
        line_start: 37
        source_file: /src/cpython/Modules/_ssl/debughelpers.c
    constantsTouched: []
    func_position:
      end: 86
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 86
    functionName: _PySSL_msg_callback
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - Py_IS_TYPE
    - PyGILState_Ensure
    - get_state_sock
    - PyGILState_Release
    - PyObject_CallFunction
    - _PyErr_ChainExceptions1
    - Py_XDECREF
    - assert
    - PyErr_GetRaisedException
    - Py_NewRef
    - PyWeakref_GetRef
    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:92,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 98
    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:104,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl/debughelpers.c:105,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:107,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ssl/debughelpers.c:110,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:111,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/debughelpers.c:112,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:116,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - op
    - arg
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 120
    functionName: _PySSLContext_set_msg_callback
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyErr_SetString
    - Py_CLEAR
    - SSL_CTX_set_msg_callback
    - PySSLContext_CAST
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: "int _PySSLContext_set_msg_callback(PyObject *op, PyObject *arg,\n
      \                              void *Py_UNUSED(closure))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_ssl/debughelpers.c:130,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ssl/debughelpers.c:132,1
    - Dst: SSL_get_app_data
      Src: /src/cpython/Modules/_ssl/debughelpers.c:134,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/debughelpers.c:135,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_ssl/debughelpers.c:135,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl/debughelpers.c:135,1
    - Dst: get_state_sock
      Src: /src/cpython/Modules/_ssl/debughelpers.c:136,1
    - Dst: assert
      Src: /src/cpython/Modules/_ssl/debughelpers.c:137,1
    - Dst: BIO_printf
      Src: /src/cpython/Modules/_ssl/debughelpers.c:150,1
    - Dst: BIO_flush
      Src: /src/cpython/Modules/_ssl/debughelpers.c:152,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_ssl/debughelpers.c:153,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_ssl/debughelpers.c:159,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_ssl/debughelpers.c:165,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_ssl/debughelpers.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    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: 134
        line_start: 134
        source_file: /src/cpython/Modules/_ssl/debughelpers.c
    - condition: (lock != NULL)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Modules/_ssl/debughelpers.c
    constantsTouched: []
    func_position:
      end: 168
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 168
    functionName: _PySSL_keylog_callback
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - SSL_get_app_data
    - PyErr_SetFromErrnoWithFilenameObject
    - Py_IS_TYPE
    - PyGILState_Ensure
    - get_state_sock
    - PyGILState_Release
    - PyThread_release_lock
    - BIO_printf
    - _PyErr_ChainExceptions1
    - assert
    - PyErr_GetRaisedException
    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:173,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    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:185,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/debughelpers.c:189,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:195,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ssl/debughelpers.c:196,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_ssl/debughelpers.c:212,1
    - Dst: BIO_new_fp
      Src: /src/cpython/Modules/_ssl/debughelpers.c:216,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/debughelpers.c:218,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/_ssl/debughelpers.c:218,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ssl/debughelpers.c:222,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl/debughelpers.c:225,1
    - Dst: BIO_tell
      Src: /src/cpython/Modules/_ssl/debughelpers.c:226,1
    - Dst: BIO_puts
      Src: /src/cpython/Modules/_ssl/debughelpers.c:227,1
    - Dst: BIO_flush
      Src: /src/cpython/Modules/_ssl/debughelpers.c:229,1
    - Dst: PySSL_END_ALLOW_THREADS
      Src: /src/cpython/Modules/_ssl/debughelpers.c:231,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/cpython/Modules/_ssl/debughelpers.c:232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - op
    - arg
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 234
    functionName: _PySSLContext_set_keylog_filename
    functionSourceFile: /src/cpython/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_keylog_callback
    - PySSL_BEGIN_ALLOW_THREADS
    - BIO_puts
    - BIO_tell
    - BIO_flush
    - PySSL_END_ALLOW_THREADS
    - PyErr_SetString
    - get_state_ctx
    - Py_CLEAR
    - PySSLContext_CAST
    - Py_fopen
    - BIO_new_fp
    - Py_NewRef
    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
    - X509_up_ref
    - assert
    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_SetItem
    - sk_X509_num
    - _PySSL_CertificateFromX509
    - PyList_New
    - Py_DECREF
    - sk_X509_value
    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:
    - get_state_cert
    - PEM_write_bio_X509
    - i2d_X509_bio
    - PyErr_SetString
    - BIO_new
    - BIO_free
    - _PySSL_UnicodeFromBIO
    - _setSSLError
    - _PySSL_BytesFromBIO
    - BIO_s_mem
    - PEM_write_bio_X509_AUX
    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:
    - get_state_cert
    - _decode_certificate
    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:137,1
    - Dst: BIO_s_mem
      Src: /src/cpython/Modules/_ssl/cert.c:137,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ssl/cert.c:139,1
    - Dst: X509_NAME_print_ex
      Src: /src/cpython/Modules/_ssl/cert.c:143,1
    - Dst: _setSSLError
      Src: /src/cpython/Modules/_ssl/cert.c:144,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl/cert.c:145,1
    - Dst: _PySSL_UnicodeFromBIO
      Src: /src/cpython/Modules/_ssl/cert.c:148,1
    - Dst: BIO_free
      Src: /src/cpython/Modules/_ssl/cert.c:149,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: 151
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: _x509name_print
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - BIO_new
    - BIO_free
    - _PySSL_UnicodeFromBIO
    - _setSSLError
    - BIO_s_mem
    - X509_NAME_print_ex
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_x509name_print(_sslmodulestate *state, const X509_NAME
      *name,\n                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: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    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:163,1
    - Dst: _x509name_print
      Src: /src/cpython/Modules/_ssl/cert.c:166,1
    - Dst: get_state_cert
      Src: /src/cpython/Modules/_ssl/cert.c:167,1
    - Dst: X509_get_subject_name
      Src: /src/cpython/Modules/_ssl/cert.c:168,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ssl/cert.c:174,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl/cert.c:176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl/cert.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 180
    functionName: certificate_repr
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - _x509name_print
    - get_state_cert
    - PySSLCertificate_CAST
    - PyUnicode_FromFormat
    - X509_get_subject_name
    - Py_DECREF
    - 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:185,1
    - Dst: X509_subject_name_hash
      Src: /src/cpython/Modules/_ssl/cert.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: certificate_hash
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - PySSLCertificate_CAST
    - X509_subject_name_hash
    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:202,1
    - Dst: get_state_cert
      Src: /src/cpython/Modules/_ssl/cert.c:203,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl/cert.c:205,1
    - Dst: X509_cmp
      Src: /src/cpython/Modules/_ssl/cert.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - lhs
    - rhs
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 218
    functionName: certificate_richcompare
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - get_state_cert
    - PySSLCertificate_CAST
    - Py_TYPE
    - 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:223,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl/cert.c:224,1
    - Dst: X509_free
      Src: /src/cpython/Modules/_ssl/cert.c:225,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ssl/cert.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ssl/cert.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: certificate_dealloc
    functionSourceFile: /src/cpython/Modules/_ssl/cert.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - X509_free
    - PySSLCertificate_CAST
    - Py_TYPE
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _ssl_Certificate_public_bytes_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyType_GetModuleState
    - assert
    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:
    - get_io_state
    - PyType_GetModuleByDef
    - assert
    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:
    - PyMem_New
    - GetFullPathNameW
    - _wcsicmp
    - PyUnicode_FSDecoder
    - _Py_get_osfhandle_noraise
    - _get_console_type
    - Py_CLEAR
    - PyLong_AsLong
    - PyErr_Clear
    - PyMem_Free
    - 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:
    - internal_close
    - get_io_state_by_cls
    - PyObject_CallMethodOneArg
    - _PyErr_ChainExceptions1
    - Py_CLEAR
    - PyErr_GetRaisedException
    - _Py_ID
    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:
    - internal_close
    - PyErr_Occurred
    - assert
    - GetLastError
    - _PyIO_get_console_type
    - Py_TYPE
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - PyUnicode_FSDecoder
    - _Py_get_osfhandle_noraise
    - _get_console_type
    - PyMem_Free
    - PyObject_TypeCheck
    - PyErr_WarnEx
    - PyErr_SetString
    - CloseHandle
    - _Py_open_osfhandle_noraise
    - PyErr_Clear
    - CreateFileW
    - PyUnicode_AsWideCharString
    - find_io_state_by_def
    - PyBool_Check
    - PyObject_SetAttr
    - PyLong_AsInt
    - Py_CLEAR
    - memset
    - PyErr_Format
    - PyErr_SetFromErrnoWithFilenameObject
    - _Py_ID
    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:
    - Py_VISIT
    - Py_TYPE
    - winconsoleio_CAST
    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:
    - Py_CLEAR
    - winconsoleio_CAST
    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:
    - _PyObject_GC_UNTRACK
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyIOBase_finalize
    - winconsoleio_CAST
    - 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:
    - PyLong_FromLong
    - err_closed
    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: 15
    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:678,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_io/winconsoleio.c:697,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:702,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:703,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/winconsoleio.c:705,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:716,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 65
    argCount: 3
    argNames:
    - handle
    - maxlen
    - readlen
    argTypes:
    - HANDLE
    - DWORD
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 718
    functionName: read_console_w
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - _PyOS_SigintEvent
    - PyErr_SetFromWindowsErr
    - PyErr_NoMemory
    - GetLastError
    - PyErr_CheckSignals
    - WaitForSingleObjectEx
    - PyMem_Realloc
    - ResetEvent
    - min
    - PyMem_Free
    - PyMem_Malloc
    - SetLastError
    - GetStringTypeW
    - ReadConsoleW
    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:725,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/winconsoleio.c:729,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/winconsoleio.c:735,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Modules/_io/winconsoleio.c:739,1
    - Dst: _copyfrombuf
      Src: /src/cpython/Modules/_io/winconsoleio.c:754,1
    - Dst: read_console_w
      Src: /src/cpython/Modules/_io/winconsoleio.c:764,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:768,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Modules/_io/winconsoleio.c:777,1
    - Dst: _copyfrombuf
      Src: /src/cpython/Modules/_io/winconsoleio.c:780,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Modules/_io/winconsoleio.c:782,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: 784
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 784
    functionName: readinto
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - err_mode
    - WideCharToMultiByte
    - _copyfrombuf
    - err_closed
    - PyErr_Format
    - read_console_w
    - PyMem_Free
    - _Py_get_osfhandle
    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:831,1
    - Dst: readinto
      Src: /src/cpython/Modules/_io/winconsoleio.c:832,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/winconsoleio.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - cls
    - buffer
    argTypes:
    - winconsoleio*
    - PyTypeObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 826
    functionDepth: 4
    functionLinenumber: 826
    functionLinenumberEnd: 837
    functionName: _io__WindowsConsoleIO_readinto_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - readinto
    - PyLong_FromSsize_t
    - 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: 855
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 855
    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:876,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Modules/_io/winconsoleio.c:878,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:884,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/winconsoleio.c:886,1
    - Dst: new_buffersize
      Src: /src/cpython/Modules/_io/winconsoleio.c:894,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:898,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:901,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_io/winconsoleio.c:906,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:909,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/winconsoleio.c:910,1
    - Dst: read_console_w
      Src: /src/cpython/Modules/_io/winconsoleio.c:916,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:919,1
    - Dst: wcsncpy_s
      Src: /src/cpython/Modules/_io/winconsoleio.c:924,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:926,1
    - Dst: _buflen
      Src: /src/cpython/Modules/_io/winconsoleio.c:935,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:937,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/winconsoleio.c:938,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Modules/_io/winconsoleio.c:943,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:948,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:949,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_io/winconsoleio.c:950,1
    - Dst: _buflen
      Src: /src/cpython/Modules/_io/winconsoleio.c:956,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/winconsoleio.c:957,1
    - Dst: _copyfrombuf
      Src: /src/cpython/Modules/_io/winconsoleio.c:958,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/winconsoleio.c:958,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Modules/_io/winconsoleio.c:962,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/winconsoleio.c:963,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/winconsoleio.c:967,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:968,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:969,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_io/winconsoleio.c:970,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/winconsoleio.c:977,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/winconsoleio.c:978,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/winconsoleio.c:979,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:980,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 985
    functionName: _io__WindowsConsoleIO_readall_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - _buflen
    - PyBytes_FromStringAndSize
    - WideCharToMultiByte
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyErr_NoMemory
    - _copyfrombuf
    - PyMem_Free
    - PyBytes_AS_STRING
    - PyMem_Malloc
    - PyMem_Realloc
    - PyErr_SetString
    - wcsncpy_s
    - err_closed
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - _Py_get_osfhandle
    - new_buffersize
    - Py_CLEAR
    - read_console_w
    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:1009,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/winconsoleio.c:1011,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/winconsoleio.c:1012,1
    - Dst: _io__WindowsConsoleIO_readall_impl
      Src: /src/cpython/Modules/_io/winconsoleio.c:1016,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/winconsoleio.c:1018,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/winconsoleio.c:1022,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/winconsoleio.c:1026,1
    - Dst: readinto
      Src: /src/cpython/Modules/_io/winconsoleio.c:1027,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/winconsoleio.c:1027,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/winconsoleio.c:1028,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:1030,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/winconsoleio.c:1034,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_io/winconsoleio.c:1035,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/winconsoleio.c:1036,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - cls
    - size
    argTypes:
    - winconsoleio*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1042
    functionName: _io__WindowsConsoleIO_read_impl
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - readinto
    - get_io_state_by_cls
    - PyBytes_FromStringAndSize
    - err_mode
    - Py_CLEAR
    - err_closed
    - PyErr_Format
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    - _io__WindowsConsoleIO_readall_impl
    - PyBytes_GET_SIZE
    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:1147,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/winconsoleio.c:1148,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/winconsoleio.c:1151,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/winconsoleio.c:1155,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/winconsoleio.c:1160,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/winconsoleio.c:1165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1167
    functionName: winconsoleio_repr
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyErr_SetString
    - Py_TYPE
    - winconsoleio_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winconsoleio_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/winconsoleio.c:1180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1183
    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: 1186
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1186
    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:1208,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/winconsoleio.c:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1210
    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:1215,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/winconsoleio.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1217
    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:1222,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/winconsoleio.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1224
    functionName: get_mode
    functionSourceFile: /src/cpython/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - winconsoleio_CAST
    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:
    - get_io_state
    - PyBytes_Check
    - Py_MIN
    - PyErr_Occurred
    - _PyIO_get_console_type
    - PyUnicode_FromString
    - PyNumber_Check
    - PyObject_IsTrue
    - PyUnicode_Check
    - strchr
    - _PyErr_ChainExceptions1
    - PyLong_AsLong
    - strlen
    - Py_XDECREF
    - PyErr_WarnEx
    - PyErr_SetString
    - PyObject_CallFunction
    - Py_MAX
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyErr_GetRaisedException
    - Py_NewRef
    - _Py_GetConfig
    - PyObject_SetAttr
    - Py_SETREF
    - PyObject_GetAttr
    - PyOS_FSPath
    - PyErr_Format
    - _Py_ID
    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:
    - _PyInterpreterState_GetConfig
    - PyErr_WarnEx
    - _Py_STR
    - _Py_DECLARE_STR
    - _PyInterpreterState_GET
    - Py_NewRef
    - _Py_ID
    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:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 518
    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:529,1
    - Dst: PyLong_AsOff_t
      Src: /src/cpython/Modules/_io/_iomodule.c:534,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/_iomodule.c:535,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_io/_iomodule.c:539,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/_iomodule.c:542,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/_iomodule.c:547,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/_iomodule.c:547,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/_io/_iomodule.c:548,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/_iomodule.c:555,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/_iomodule.c:561,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - item
    - err
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(value))
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/cpython/Modules/_io/_iomodule.c
    constantsTouched: []
    func_position:
      end: 563
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 563
    functionName: PyNumber_AsOff_t
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_GivenExceptionMatches
    - _PyLong_IsNegative
    - PyLong_Check
    - PyErr_Clear
    - PyErr_Occurred
    - assert
    - _PyNumber_Index
    - PyLong_AsOff_t
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    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:567,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:568,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/_iomodule.c:570,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:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 588
    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:593,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:594,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/_iomodule.c:596,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:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 614
    functionName: iomodule_clear
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - get_io_state
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int iomodule_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iomodule_clear
      Src: /src/cpython/Modules/_io/_iomodule.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 620
    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: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    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: 649
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 649
    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:653,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_io/_iomodule.c:656,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/_iomodule.c:660,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_io/_iomodule.c:665,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/_iomodule.c:666,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_io/_iomodule.c:670,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_io/_iomodule.c:677,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:683,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:688,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:690,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:692,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:696,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:697,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:699,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:701,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:703,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:707,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:710,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:715,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/_io/_iomodule.c:716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 721
    functionName: iomodule_exec
    functionSourceFile: /src/cpython/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - get_io_state
    - PyModule_AddIntMacro
    - PyObject_CallFunction
    - ADD_TYPE
    - PyObject_SetAttrString
    - PyModule_AddObjectRef
    - _Py_ID
    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:
    - PyBytes_AS_STRING
    - PyBytes_Check
    - PyErr_SetString
    - PyLong_FromSsize_t
    - _PyObject_CallMethod
    - PyErr_Format
    - memcpy
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _Py_ID
    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:
    - bufferediobase_unsupported
    - get_io_state_by_cls
    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:
    - bufferediobase_unsupported
    - get_io_state_by_cls
    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:
    - bufferediobase_unsupported
    - get_io_state_by_cls
    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:
    - bufferediobase_unsupported
    - get_io_state_by_cls
    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:
    - PyThread_acquire_lock
    - PyThread_acquire_lock_timed
    - _Py_IsInterpreterFinalizing
    - _PyInterpreterState_GET
    - 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: 383
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 383
    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: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    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: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    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: 396
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 396
    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: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    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: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    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: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    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: 412
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 412
    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:417,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:419,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 422
    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:427,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:428,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/bufferedio.c:430,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/bufferedio.c:432,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/bufferedio.c:434,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/bufferedio.c:436,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_io/bufferedio.c:440,1
    - Dst: buffered_clear
      Src: /src/cpython/Modules/_io/bufferedio.c:443,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/bufferedio.c:444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 446
    functionName: buffered_dealloc
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - buffered_clear
    - buffered_CAST
    - _PyObject_GC_UNTRACK
    - PyTypeObject*::tp_free
    - PyMem_Free
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyIOBase_finalize
    - PyThread_free_lock
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void buffered_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:457,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:457,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 462
    functionName: _io__Buffered___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _PyObject_SIZE
    - Py_TYPE
    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:467,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:468,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:468,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:469,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 472
    functionName: buffered_traverse
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - buffered_CAST
    - Py_VISIT
    - Py_TYPE
    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:491,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:493,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - source
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 498
    functionName: _io__Buffered__dealloc_warn_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyErr_Clear
    - PyObject_CallMethodOneArg
    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:516,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:517,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: _io__Buffered_simple_flush_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED
    - _Py_ID
    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:525,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:526,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:526,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/bufferedio.c:529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: buffered_closed
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED_INT
    - PyObject_IsTrue
    - PyObject_GetAttr
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int buffered_closed(buffered *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:544,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:545,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 546
    functionName: _io__Buffered_closed_get_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_GetAttr
    - _Py_ID
    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:560,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:561,1
    - Dst: IS_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:565,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bufferedio.c:569,1
    - Dst: _io__Buffered__dealloc_warn_impl
      Src: /src/cpython/Modules/_io/bufferedio.c:574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:576,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:578,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:581,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/bufferedio.c:582,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:583,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:588,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:591,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:591,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/bufferedio.c:594,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/bufferedio.c:599,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:600,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:607,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 609
    functionName: _io__Buffered_close_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - _io__Buffered__dealloc_warn_impl
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED
    - _PyFile_Flush
    - PyErr_Clear
    - _PyErr_ChainExceptions1
    - Py_CLEAR
    - IS_CLOSED
    - PyMem_Free
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_NewRef
    - _Py_ID
    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:621,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/bufferedio.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 630
    functionName: _io__Buffered_detach_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyFile_Flush
    - CHECK_INITIALIZED
    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:643,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:644,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 645
    functionName: _io__Buffered_seekable_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED
    - _Py_ID
    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:656,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:657,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 658
    functionName: _io__Buffered_readable_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED
    - _Py_ID
    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:669,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:670,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 671
    functionName: _io__Buffered_writable_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED
    - _Py_ID
    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:684,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:685,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 686
    functionName: _io__Buffered_name_get_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_GetAttr
    - _Py_ID
    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:698,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:699,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 700
    functionName: _io__Buffered_mode_get_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_GetAttr
    - _Py_ID
    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:713,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:714,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: _io__Buffered_fileno_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED
    - _Py_ID
    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:726,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:727,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: _io__Buffered_isatty_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED
    - _Py_ID
    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:759,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/bufferedio.c:760,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_io/bufferedio.c:763,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - msg
    - written
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 765
    functionName: _set_BlockingIOError
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyErr_Clear
    - Py_XDECREF
    - PyObject_CallFunction
    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:772,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_io/bufferedio.c:773,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:774,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 781
    functionName: _buffered_check_blocking_error
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    - PyErr_GivenExceptionMatches
    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:788,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:788,1
    - Dst: PyNumber_AsOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:792,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bufferedio.c:794,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 802
    functionName: _buffered_raw_tell
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyNumber_AsOff_t
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:810,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/bufferedio.c:813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:815,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:818,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:821,1
    - Dst: PyNumber_AsOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:825,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bufferedio.c:827,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:828,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - target
    - whence
    argTypes:
    - buffered*
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 835
    functionName: _buffered_raw_seek
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromOff_t
    - PyLong_FromLong
    - PyNumber_AsOff_t
    - PyObject_CallMethodObjArgs
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - _Py_ID
    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:842,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/bufferedio.c:847,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/bufferedio.c:848,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/bufferedio.c:850,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_io/bufferedio.c:854,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_io/bufferedio.c:855,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:857,1
    - Dst: _buffered_raw_tell
      Src: /src/cpython/Modules/_io/bufferedio.c:869,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 872
    functionName: _buffered_init
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    - PyErr_Clear
    - PyMem_Free
    - PyMem_Malloc
    - _buffered_raw_tell
    - PyThread_free_lock
    - PyThread_allocate_lock
    linkageType: ''
    returnType: int
    signature: int _buffered_init(buffered *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_io/bufferedio.c:881,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:884,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:886,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:888,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:889,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_io/bufferedio.c:889,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_io/bufferedio.c:891,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:894,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (env_err != NULL)
      pos:
        line_end: 885
        line_start: 885
        source_file: /src/cpython/Modules/_io/bufferedio.c
    - condition: (EINTR > 0 && EINTR < INT_MAX)
      pos:
        line_end: 887
        line_start: 887
        source_file: /src/cpython/Modules/_io/bufferedio.c
    - condition: (PyLong_CheckExact(env_err->myerrno))
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/cpython/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 901
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 901
    functionName: _PyIO_trap_eintr
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyLong_CheckExact
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_SetRaisedException
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    linkageType: ''
    returnType: int
    signature: int _PyIO_trap_eintr(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:915,1
    - Dst: _buffered_raw_seek
      Src: /src/cpython/Modules/_io/bufferedio.c:921,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:921,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 907
    functionDepth: 3
    functionLinenumber: 907
    functionLinenumberEnd: 927
    functionName: buffered_flush_and_rewind_unlocked
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _bufferedwriter_flush_unlocked
    - _buffered_raw_seek
    - _bufferedreader_reset_buf
    - Py_DECREF
    - RAW_OFFSET
    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:940,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:941,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:943,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:945,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 934
    functionDepth: 4
    functionLinenumber: 934
    functionLinenumberEnd: 949
    functionName: _io__Buffered_flush_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - CHECK_CLOSED
    - CHECK_INITIALIZED
    - buffered_flush_and_rewind_unlocked
    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:965,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:966,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:968,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:972,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:975,1
    - Dst: _bufferedreader_peek_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:977,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:980,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 959
    functionDepth: 4
    functionLinenumber: 959
    functionLinenumberEnd: 982
    functionName: _io__Buffered_peek_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - CHECK_CLOSED
    - CHECK_INITIALIZED
    - Py_CLEAR
    - buffered_flush_and_rewind_unlocked
    - _bufferedreader_peek_unlocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_peek_impl(buffered *self, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:997,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:999,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1004,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1008,1
    - Dst: _bufferedreader_read_all
      Src: /src/cpython/Modules/_io/bufferedio.c:1010,1
    - Dst: _bufferedreader_read_fast
      Src: /src/cpython/Modules/_io/bufferedio.c:1013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1016,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1017,1
    - Dst: _bufferedreader_read_generic
      Src: /src/cpython/Modules/_io/bufferedio.c:1019,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1022,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1024
    functionName: _io__Buffered_read_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - CHECK_CLOSED
    - _bufferedreader_read_fast
    - PyErr_SetString
    - _bufferedreader_read_all
    - CHECK_INITIALIZED
    - _bufferedreader_read_generic
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read_impl(buffered *self, Py_ssize_t n)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1037,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1042,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_io/bufferedio.c:1045,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1051,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1051,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_io/bufferedio.c:1053,1
    - Dst: _bufferedreader_read_fast
      Src: /src/cpython/Modules/_io/bufferedio.c:1054,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:1055,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1059,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1065,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1070,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1072,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_io/bufferedio.c:1074,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1076,1
    - Dst: _bufferedreader_raw_read
      Src: /src/cpython/Modules/_io/bufferedio.c:1080,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_io/bufferedio.c:1081,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1082,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/bufferedio.c:1084,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1091,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts:
    - condition: (res != Py_None)
      pos:
        line_end: 1054
        line_start: 1054
        source_file: /src/cpython/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 1092
      start: 1033
    functionDepth: 4
    functionLinenumber: 1033
    functionLinenumberEnd: 1092
    functionName: _io__Buffered_read1_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - READAHEAD
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - _bufferedreader_raw_read
    - CHECK_CLOSED
    - _bufferedreader_read_fast
    - Py_SAFE_DOWNCAST
    - PyBytesWriter_GetData
    - _bufferedreader_reset_buf
    - PyBytesWriter_Create
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_Discard
    - CHECK_INITIALIZED
    - Py_MIN
    - assert
    - buffered_flush_and_rewind_unlocked
    - Py_DECREF
    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:1100,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1101,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1103,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1103,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1106,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1108,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1110,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1115,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1119,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1122,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1125,1
    - Dst: _bufferedreader_raw_read
      Src: /src/cpython/Modules/_io/bufferedio.c:1134,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1141,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1145,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bufferedio.c:1158,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1169,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1172,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 3
    argNames:
    - self
    - buffer
    - readinto1
    argTypes:
    - buffered*
    - Py_buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1094
    functionDepth: 4
    functionLinenumber: 1094
    functionLinenumberEnd: 1174
    functionName: _buffered_readinto_generic
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - READAHEAD
    - ENTER_BUFFERED
    - _bufferedreader_raw_read
    - LEAVE_BUFFERED
    - CHECK_CLOSED
    - Py_SAFE_DOWNCAST
    - _bufferedreader_fill_buffer
    - _bufferedreader_reset_buf
    - CHECK_INITIALIZED
    - Py_CLEAR
    - PyLong_FromSsize_t
    - memcpy
    - buffered_flush_and_rewind_unlocked
    - Py_NewRef
    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:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1183
    functionDepth: 5
    functionLinenumber: 1183
    functionLinenumberEnd: 1188
    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:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1197
    functionDepth: 5
    functionLinenumber: 1197
    functionLinenumberEnd: 1202
    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:1213,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1218,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1218,1
    - Dst: memchr
      Src: /src/cpython/Modules/_io/bufferedio.c:1222,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1224,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1230,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1236,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/bufferedio.c:1240,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1244,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bufferedio.c:1247,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1248,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1251,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1260,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1264,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1265,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1277,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1284,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bufferedio.c:1291,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1292,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1295,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bufferedio.c:1300,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1301,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1304,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_io/bufferedio.c:1304,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_io/bufferedio.c:1304,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1307,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1309,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 104
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1205
    functionDepth: 4
    functionLinenumber: 1205
    functionLinenumberEnd: 1311
    functionName: _buffered_readline
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - READAHEAD
    - ENTER_BUFFERED
    - PyBytes_Join
    - LEAVE_BUFFERED
    - CHECK_CLOSED
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - _bufferedreader_fill_buffer
    - Py_XSETREF
    - Py_CLEAR
    - PyList_New
    - buffered_flush_and_rewind_unlocked
    - PyList_Append
    - memchr
    - Py_XDECREF
    - Py_DECREF
    - _Py_SINGLETON
    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:1324,1
    - Dst: _buffered_readline
      Src: /src/cpython/Modules/_io/bufferedio.c:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1320
    functionDepth: 5
    functionLinenumber: 1320
    functionLinenumberEnd: 1326
    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:1340,1
    - Dst: _buffered_raw_tell
      Src: /src/cpython/Modules/_io/bufferedio.c:1341,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:1344,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1334
    functionDepth: 3
    functionLinenumber: 1334
    functionLinenumberEnd: 1351
    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:1368,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:1381,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1386,1
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/bufferedio.c:1388,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1388,1
    - Dst: _PyIOBase_check_seekable
      Src: /src/cpython/Modules/_io/bufferedio.c:1389,1
    - Dst: PyNumber_AsOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1393,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bufferedio.c:1394,1
    - Dst: RAW_TELL
      Src: /src/cpython/Modules/_io/bufferedio.c:1409,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1410,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:1414,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1422,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1424,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1429,1
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1434,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1437,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:1442,1
    - Dst: _buffered_raw_seek
      Src: /src/cpython/Modules/_io/bufferedio.c:1443,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1447,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1449,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1452,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 3
    argNames:
    - self
    - targetobj
    - whence
    argTypes:
    - buffered*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1361
    functionDepth: 3
    functionLinenumber: 1361
    functionLinenumberEnd: 1454
    functionName: _io__Buffered_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - READAHEAD
    - ENTER_BUFFERED
    - PyLong_FromOff_t
    - _bufferedwriter_flush_unlocked
    - CHECK_CLOSED
    - PyNumber_AsOff_t
    - _buffered_raw_seek
    - LEAVE_BUFFERED
    - _PyIOBase_check_seekable
    - _bufferedreader_reset_buf
    - CHECK_INITIALIZED
    - Py_CLEAR
    - PyErr_Format
    - PyErr_Occurred
    - RAW_TELL
    - Py_TYPE
    - RAW_OFFSET
    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:1470,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:1471,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/bufferedio.c:1473,1
    - Dst: bufferediobase_unsupported
      Src: /src/cpython/Modules/_io/bufferedio.c:1474,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1476,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1479,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1483,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/bufferedio.c:1485,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1485,1
    - Dst: _buffered_raw_tell
      Src: /src/cpython/Modules/_io/bufferedio.c:1489,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:1490,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:1493,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - cls
    - pos
    argTypes:
    - buffered*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1464
    functionDepth: 4
    functionLinenumber: 1464
    functionLinenumberEnd: 1495
    functionName: _io__Buffered_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - CHECK_CLOSED
    - get_io_state_by_cls
    - PyObject_CallMethodOneArg
    - CHECK_INITIALIZED
    - Py_CLEAR
    - PyErr_Clear
    - _buffered_raw_tell
    - buffered_flush_and_rewind_unlocked
    - bufferediobase_unsupported
    - _Py_ID
    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:1500,1
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:1504,1
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/bufferedio.c:1506,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1506,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1507,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bufferedio.c:1512,1
    - Dst: _buffered_readline
      Src: /src/cpython/Modules/_io/bufferedio.c:1513,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bufferedio.c:1514,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:1517,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1518,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/bufferedio.c:1519,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:1520,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1522,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1523,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:1531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1497
    functionDepth: 5
    functionLinenumber: 1497
    functionLinenumberEnd: 1538
    functionName: buffered_iternext
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - _buffered_readline
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyBytes_Check
    - buffered_CAST
    - CHECK_INITIALIZED
    - PyErr_Format
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyBytes_GET_SIZE
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_iternext(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: buffered_CAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1543,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:1546,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1546,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_io/bufferedio.c:1547,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:1551,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/bufferedio.c:1554,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1554,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_io/bufferedio.c:1557,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/bufferedio.c:1560,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1561,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/bufferedio.c:1562,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:1565,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1540
    functionDepth: 1
    functionLinenumber: 1540
    functionLinenumberEnd: 1572
    functionName: buffered_repr
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - PyObject_GetOptionalAttr
    - buffered_CAST
    - Py_ReprEnter
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    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: 1581
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1581
    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:1599,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1599,1
    - Dst: _PyIOBase_check_readable
      Src: /src/cpython/Modules/_io/bufferedio.c:1600,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1604,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bufferedio.c:1604,1
    - Dst: _buffered_init
      Src: /src/cpython/Modules/_io/bufferedio.c:1609,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1611,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1614,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1615,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: 1620
      start: 1591
    functionDepth: 4
    functionLinenumber: 1591
    functionLinenumberEnd: 1620
    functionName: _io_BufferedReader___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - Py_IS_TYPE
    - Py_XSETREF
    - _bufferedreader_reset_buf
    - _buffered_init
    - _PyIOBase_check_readable
    - Py_NewRef
    - 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:1629,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1631,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/bufferedio.c:1640,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1640,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/bufferedio.c:1641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1647,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:1650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1651,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bufferedio.c:1653,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Modules/_io/bufferedio.c:1654,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:1662,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - self
    - start
    - len
    argTypes:
    - buffered*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1622
    functionDepth: 2
    functionLinenumber: 1622
    functionLinenumberEnd: 1670
    functionName: _bufferedreader_raw_read
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - _PyIO_trap_eintr
    - PyObject_CallMethodOneArg
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - _PyErr_FormatFromCause
    - PyBuffer_FillInfo
    - PyMemoryView_FromBuffer
    - _Py_ID
    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:1676,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1677,1
    - Dst: _bufferedreader_raw_read
      Src: /src/cpython/Modules/_io/bufferedio.c:1681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1672
    functionDepth: 3
    functionLinenumber: 1672
    functionLinenumberEnd: 1687
    functionName: _bufferedreader_fill_buffer
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - Py_SAFE_DOWNCAST
    - _bufferedreader_raw_read
    - VALID_READ_BUFFER
    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:1696,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1696,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1698,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1706,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1709,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1711,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:1713,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1713,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:1717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1718,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/bufferedio.c:1721,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:1722,1
    - Dst: PyBytes_Concat
      Src: /src/cpython/Modules/_io/bufferedio.c:1729,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/bufferedio.c:1736,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bufferedio.c:1742,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:1744,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/bufferedio.c:1748,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1748,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/bufferedio.c:1751,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:1752,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:1755,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_io/bufferedio.c:1761,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_io/bufferedio.c:1761,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:1766,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bufferedio.c:1768,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1772,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1773,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1774,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1775,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1689
    functionDepth: 4
    functionLinenumber: 1689
    functionLinenumberEnd: 1777
    functionName: _bufferedreader_read_all
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - PyBytes_Join
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - PyBytes_Check
    - READAHEAD
    - PyObject_GetOptionalAttr
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - buffered_flush_and_rewind_unlocked
    - _PyObject_CallNoArgs
    - Py_SAFE_DOWNCAST
    - PyErr_SetString
    - Py_DECREF
    - _Py_SINGLETON
    - PyObject_CallMethodNoArgs
    - PyBytes_GET_SIZE
    - Py_XINCREF
    - PyBytes_Concat
    - Py_CLEAR
    - _Py_ID
    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:1786,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1786,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1781
    functionDepth: 1
    functionLinenumber: 1781
    functionLinenumberEnd: 1795
    functionName: _bufferedreader_read_fast
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - Py_SAFE_DOWNCAST
    - READAHEAD
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedreader_read_fast(buffered *self, Py_ssize_t n)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:1805,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1805,1
    - Dst: _bufferedreader_read_fast
      Src: /src/cpython/Modules/_io/bufferedio.c:1807,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_io/bufferedio.c:1809,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_io/bufferedio.c:1813,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1818,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:1825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1828,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1830,1
    - Dst: MINUS_LAST_BLOCK
      Src: /src/cpython/Modules/_io/bufferedio.c:1834,1
    - Dst: _bufferedreader_raw_read
      Src: /src/cpython/Modules/_io/bufferedio.c:1837,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1843,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/bufferedio.c:1845,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:1851,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1859,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1865,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/bufferedio.c:1867,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1871,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:1877,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_io/bufferedio.c:1886,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/bufferedio.c:1889,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts:
    - condition: (remaining <= self->buffer_size)
      pos:
        line_end: 1850
        line_start: 1850
        source_file: /src/cpython/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 1891
      start: 1800
    functionDepth: 4
    functionLinenumber: 1800
    functionLinenumberEnd: 1891
    functionName: _bufferedreader_read_generic
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - READAHEAD
    - _bufferedreader_raw_read
    - _bufferedreader_read_fast
    - Py_SAFE_DOWNCAST
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_Create
    - _bufferedreader_reset_buf
    - assert
    - _bufferedreader_fill_buffer
    - PyBytesWriter_Discard
    - PyBytesWriter_Finish
    - memcpy
    - buffered_flush_and_rewind_unlocked
    - MINUS_LAST_BLOCK
    - PyBytesWriter_GetData
    - Py_DECREF
    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:1898,1
    - Dst: READAHEAD
      Src: /src/cpython/Modules/_io/bufferedio.c:1898,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1906,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1910,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1911,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bufferedio.c:1917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1893
    functionDepth: 4
    functionLinenumber: 1893
    functionLinenumberEnd: 1918
    functionName: _bufferedreader_peek_unlocked
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - READAHEAD
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - _bufferedreader_fill_buffer
    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: 1929
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1929
    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:1951,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1951,1
    - Dst: _PyIOBase_check_writable
      Src: /src/cpython/Modules/_io/bufferedio.c:1952,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1956,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1957,1
    - Dst: _buffered_init
      Src: /src/cpython/Modules/_io/bufferedio.c:1962,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:1964,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1968,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:1969,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: 1974
      start: 1943
    functionDepth: 4
    functionLinenumber: 1943
    functionLinenumberEnd: 1974
    functionName: _io_BufferedWriter___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - Py_INCREF
    - _PyIOBase_check_writable
    - Py_IS_TYPE
    - Py_XSETREF
    - _buffered_init
    - _bufferedwriter_reset_buf
    - 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:1984,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Modules/_io/bufferedio.c:1986,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/bufferedio.c:1996,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:1996,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/bufferedio.c:1998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:1999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2006,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:2010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2011,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bufferedio.c:2013,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - start
    - len
    argTypes:
    - buffered*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 2021
    functionName: _bufferedwriter_raw_write
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyIO_trap_eintr
    - PyObject_CallMethodOneArg
    - PyNumber_AsSsize_t
    - PyErr_Format
    - Py_DECREF
    - PyBuffer_FillInfo
    - PyMemoryView_FromBuffer
    - _Py_ID
    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:2028,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:2031,1
    - Dst: _buffered_raw_seek
      Src: /src/cpython/Modules/_io/bufferedio.c:2033,1
    - Dst: _bufferedwriter_raw_write
      Src: /src/cpython/Modules/_io/bufferedio.c:2040,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2042,1
    - Dst: _set_BlockingIOError
      Src: /src/cpython/Modules/_io/bufferedio.c:2048,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_io/bufferedio.c:2057,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2072,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2023
    functionDepth: 3
    functionLinenumber: 2023
    functionLinenumberEnd: 2077
    functionName: _bufferedwriter_flush_unlocked
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - _buffered_raw_seek
    - Py_SAFE_DOWNCAST
    - PyErr_CheckSignals
    - VALID_WRITE_BUFFER
    - _bufferedwriter_reset_buf
    - _bufferedwriter_raw_write
    - _set_BlockingIOError
    - RAW_OFFSET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedwriter_flush_unlocked(buffered *self)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/bufferedio.c:2095,1
    - Dst: ENTER_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:2097,1
    - Dst: IS_CLOSED
      Src: /src/cpython/Modules/_io/bufferedio.c:2102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:2107,1
    - Dst: VALID_READ_BUFFER
      Src: /src/cpython/Modules/_io/bufferedio.c:2112,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/cpython/Modules/_io/bufferedio.c:2112,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2116,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2118,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/cpython/Modules/_io/bufferedio.c:2119,1
    - Dst: ADJUST_POSITION
      Src: /src/cpython/Modules/_io/bufferedio.c:2122,1
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/cpython/Modules/_io/bufferedio.c:2130,1
    - Dst: _buffered_check_blocking_error
      Src: /src/cpython/Modules/_io/bufferedio.c:2132,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2136,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bufferedio.c:2138,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/cpython/Modules/_io/bufferedio.c:2138,1
    - Dst: memmove
      Src: /src/cpython/Modules/_io/bufferedio.c:2139,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2140,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/bufferedio.c:2146,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:2150,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2151,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2158,1
    - Dst: _set_BlockingIOError
      Src: /src/cpython/Modules/_io/bufferedio.c:2164,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2168,1
    - Dst: RAW_OFFSET
      Src: /src/cpython/Modules/_io/bufferedio.c:2176,1
    - Dst: _buffered_raw_seek
      Src: /src/cpython/Modules/_io/bufferedio.c:2178,1
    - Dst: _bufferedwriter_raw_write
      Src: /src/cpython/Modules/_io/bufferedio.c:2187,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2195,1
    - Dst: ADJUST_POSITION
      Src: /src/cpython/Modules/_io/bufferedio.c:2198,1
    - Dst: _set_BlockingIOError
      Src: /src/cpython/Modules/_io/bufferedio.c:2201,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/bufferedio.c:2205,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_io/bufferedio.c:2213,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2217,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bufferedio.c:2219,1
    - Dst: ADJUST_POSITION
      Src: /src/cpython/Modules/_io/bufferedio.c:2225,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bufferedio.c:2229,1
    - Dst: LEAVE_BUFFERED
      Src: /src/cpython/Modules/_io/bufferedio.c:2232,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 113
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts:
    - condition: (VALID_WRITE_BUFFER(self))
      pos:
        line_end: 2137
        line_start: 2137
        source_file: /src/cpython/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 2234
      start: 2086
    functionDepth: 4
    functionLinenumber: 2086
    functionLinenumberEnd: 2234
    functionName: _io_BufferedWriter_write_impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _bufferedwriter_flush_unlocked
    - _bufferedreader_reset_buf
    - VALID_WRITE_BUFFER
    - memcpy
    - assert
    - _buffered_raw_seek
    - PyLong_FromSsize_t
    - IS_CLOSED
    - VALID_READ_BUFFER
    - ADJUST_POSITION
    - Py_SAFE_DOWNCAST
    - memmove
    - PyErr_SetString
    - CHECK_INITIALIZED
    - PyErr_Clear
    - _buffered_check_blocking_error
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - PyErr_CheckSignals
    - Py_CLEAR
    - _bufferedwriter_raw_write
    - _set_BlockingIOError
    - RAW_OFFSET
    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: 2254
      start: 2253
    functionDepth: 0
    functionLinenumber: 2253
    functionLinenumberEnd: 2254
    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:2278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2278,1
    - Dst: _PyIOBase_check_readable
      Src: /src/cpython/Modules/_io/bufferedio.c:2279,1
    - Dst: _PyIOBase_check_writable
      Src: /src/cpython/Modules/_io/bufferedio.c:2282,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/bufferedio.c:2286,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/bufferedio.c:2292,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2296,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: 2301
      start: 2273
    functionDepth: 3
    functionLinenumber: 2273
    functionLinenumberEnd: 2301
    functionName: _io_BufferedRWPair___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - _PyIOBase_check_writable
    - PyObject_CallFunction
    - _PyIOBase_check_readable
    - Py_CLEAR
    - 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:2306,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:2307,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2307,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:2308,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:2309,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bufferedio.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2303
    functionDepth: 1
    functionLinenumber: 2303
    functionLinenumberEnd: 2312
    functionName: bufferedrwpair_traverse
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - rwpair_CAST
    - Py_VISIT
    - Py_TYPE
    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:2317,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2318,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2319,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2314
    functionDepth: 1
    functionLinenumber: 2314
    functionLinenumberEnd: 2322
    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:2327,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2328,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/bufferedio.c:2329,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/bufferedio.c:2330,1
    - Dst: bufferedrwpair_clear
      Src: /src/cpython/Modules/_io/bufferedio.c:2331,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/bufferedio.c:2332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2324
    functionDepth: 2
    functionLinenumber: 2324
    functionLinenumberEnd: 2334
    functionName: bufferedrwpair_dealloc
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - rwpair_CAST
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - bufferedrwpair_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void bufferedrwpair_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:2341,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:2346,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_io/bufferedio.c:2348,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_io/bufferedio.c:2352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - name
    - args
    argTypes:
    - buffered*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2336
    functionDepth: 1
    functionLinenumber: 2336
    functionLinenumberEnd: 2355
    functionName: _forward_call
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyErr_SetString
    - PyObject_GetAttr
    - PyObject_CallObject
    - Py_DECREF
    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: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_read
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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: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_peek
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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: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_read1
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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: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_readinto
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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: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
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2385
    functionDepth: 2
    functionLinenumber: 2385
    functionLinenumberEnd: 2390
    functionName: bufferedrwpair_readinto1
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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: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
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2392
    functionDepth: 2
    functionLinenumber: 2392
    functionLinenumberEnd: 2397
    functionName: bufferedrwpair_write
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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: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_flush
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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:2409,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2410,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2406
    functionDepth: 2
    functionLinenumber: 2406
    functionLinenumberEnd: 2411
    functionName: bufferedrwpair_readable
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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:2416,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2417,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2413
    functionDepth: 2
    functionLinenumber: 2413
    functionLinenumberEnd: 2418
    functionName: bufferedrwpair_writable
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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:2423,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2425,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2425,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/bufferedio.c:2427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2430,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2432,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2432,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/bufferedio.c:2434,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bufferedio.c:2435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2420
    functionDepth: 2
    functionLinenumber: 2420
    functionLinenumberEnd: 2438
    functionName: bufferedrwpair_close
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - rwpair_CAST
    - _PyErr_ChainExceptions1
    - Py_CLEAR
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    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:2443,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2444,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2450,1
    - Dst: _forward_call
      Src: /src/cpython/Modules/_io/bufferedio.c:2452,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2440
    functionDepth: 2
    functionLinenumber: 2440
    functionLinenumberEnd: 2453
    functionName: bufferedrwpair_isatty
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _forward_call
    - rwpair_CAST
    - _Py_ID
    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:2458,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bufferedio.c:2460,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/bufferedio.c:2464,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/bufferedio.c:2464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2465
    functionName: bufferedrwpair_closed_get
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - rwpair_CAST
    - PyObject_GetAttr
    - _Py_ID
    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:2492,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2492,1
    - Dst: _PyIOBase_check_seekable
      Src: /src/cpython/Modules/_io/bufferedio.c:2493,1
    - Dst: _PyIOBase_check_readable
      Src: /src/cpython/Modules/_io/bufferedio.c:2496,1
    - Dst: _PyIOBase_check_writable
      Src: /src/cpython/Modules/_io/bufferedio.c:2499,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2503,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bufferedio.c:2504,1
    - Dst: _buffered_init
      Src: /src/cpython/Modules/_io/bufferedio.c:2509,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2511,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/cpython/Modules/_io/bufferedio.c:2512,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2515,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/bufferedio.c:2516,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: 2520
      start: 2484
    functionDepth: 4
    functionLinenumber: 2484
    functionLinenumberEnd: 2520
    functionName: _io_BufferedRandom___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - Py_INCREF
    - _PyIOBase_check_writable
    - Py_IS_TYPE
    - Py_XSETREF
    - _PyIOBase_check_seekable
    - _bufferedreader_reset_buf
    - _buffered_init
    - _PyIOBase_check_readable
    - _bufferedwriter_reset_buf
    - 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: 2523
      start: 2522
    functionDepth: 0
    functionLinenumber: 2522
    functionLinenumberEnd: 2523
    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:
    - PyObject_HasAttrWithError
    - _Py_ID
    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:123,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:124,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: 125
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 125
    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:137,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: _io__IOBase_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethod
    - _Py_ID
    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:157,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - cls
    - Py_UNUSED(size)
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 159
    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:176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/iobase.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 185
    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:190,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/iobase.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 195
    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:204,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:204,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/iobase.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:207,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/iobase.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: iobase_check_closed
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_IsTrue
    - PyObject_GetOptionalAttr
    - Py_DECREF
    - _Py_ID
    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:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 226
    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:231,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:231,1
    - Dst: _PyIOBase_check_seekable
      Src: /src/cpython/Modules/_io/iobase.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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:238,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:238,1
    - Dst: _PyIOBase_check_readable
      Src: /src/cpython/Modules/_io/iobase.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 240
    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:245,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:245,1
    - Dst: _PyIOBase_check_writable
      Src: /src/cpython/Modules/_io/iobase.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: iobase_check_writable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - _PyIOBase_check_writable
    - Py_TYPE
    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:252,1
    - Dst: _PyType_Name
      Src: /src/cpython/Modules/_io/iobase.c:253,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: _PyIOBase_cannot_pickle
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - PyErr_Format
    - Py_TYPE
    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:273,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/iobase.c:282,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/iobase.c:283,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_io/iobase.c:284,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:284,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/iobase.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 291
    functionName: _io__IOBase_close_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - iobase_is_closed
    - _PyErr_ChainExceptions1
    - _PyFile_Flush
    - PyErr_GetRaisedException
    - _Py_ID
    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:302,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/iobase.c:306,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:306,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/iobase.c:307,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/iobase.c:311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:312,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/iobase.c:314,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_io/iobase.c:319,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:319,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/iobase.c:320,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:321,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:321,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_io/iobase.c:323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:327,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/iobase.c:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 333
    functionName: iobase_finalize
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - PyObject_IsTrue
    - PyObject_GetOptionalAttr
    - PyObject_CallMethodNoArgs
    - PyErr_Clear
    - PyErr_SetRaisedException
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void iobase_finalize(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_io/iobase.c:342,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/_io/iobase.c:344,1
    - Dst: PyObject_CallFinalizer
      Src: /src/cpython/Modules/_io/iobase.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 349
    functionName: _PyIOBase_finalize
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 2
    functionsReached:
    - PyObject_CallFinalizer
    - Py_REFCNT
    - PyObject_CallFinalizerFromDealloc
    linkageType: ''
    returnType: int
    signature: int _PyIOBase_finalize(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobase_CAST
      Src: /src/cpython/Modules/_io/iobase.c:354,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/iobase.c:355,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:355,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/iobase.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 358
    functionName: iobase_traverse
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_CAST
    - Py_VISIT
    - Py_TYPE
    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:363,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: iobase_clear
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - iobase_CAST
    linkageType: ''
    returnType: int
    signature: int iobase_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobase_CAST
      Src: /src/cpython/Modules/_io/iobase.c:378,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/iobase.c:379,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_io/iobase.c:382,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:382,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/iobase.c:383,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:383,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:387,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/iobase.c:388,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/iobase.c:389,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:390,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/iobase.c:391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 393
    functionName: iobase_dealloc
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - Py_INCREF
    - _PyObject_GC_UNTRACK
    - Py_CLEAR
    - iobase_CAST
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyIOBase_finalize
    - Py_TYPE
    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: 411
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 411
    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:416,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:416,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:420,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - self
    - args
    argTypes:
    - _PyIO_State*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 428
    functionName: _PyIOBase_check_seekable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 3
    functionsReached:
    - PyObject_CallMethodNoArgs
    - Py_CLEAR
    - Py_DECREF
    - iobase_unsupported
    - _Py_ID
    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: 443
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 443
    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:449,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:449,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:453,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - self
    - args
    argTypes:
    - _PyIO_State*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 461
    functionName: _PyIOBase_check_readable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 4
    functionsReached:
    - PyObject_CallMethodNoArgs
    - Py_CLEAR
    - Py_DECREF
    - iobase_unsupported
    - _Py_ID
    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: 476
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 476
    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:482,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:482,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:486,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - self
    - args
    argTypes:
    - _PyIO_State*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 494
    functionName: _PyIOBase_check_writable
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 4
    functionsReached:
    - PyObject_CallMethodNoArgs
    - Py_CLEAR
    - Py_DECREF
    - iobase_unsupported
    - _Py_ID
    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:501,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/iobase.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 505
    functionName: iobase_enter
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_check_closed
    - Py_NewRef
    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:510,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: iobase_exit
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:531,1
    - Dst: iobase_unsupported
      Src: /src/cpython/Modules/_io/iobase.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 533
    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:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 550
    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:577,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:577,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_io/iobase.c:581,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/iobase.c:583,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:587,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_io/iobase.c:592,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Modules/_io/iobase.c:592,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/iobase.c:596,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/iobase.c:601,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/iobase.c:602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:605,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:608,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:610,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:613,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:629,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/iobase.c:632,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:632,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/iobase.c:636,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/iobase.c:641,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/iobase.c:642,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/iobase.c:644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:645,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:649,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:653,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Modules/_io/iobase.c:654,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:655,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/iobase.c:658,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:658,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:659,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:659,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:661,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:663,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:663,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/iobase.c:667,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:667,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:668,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/iobase.c:669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:670,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/iobase.c:673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:674,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 82
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 676
    functionName: _io__IOBase_readline_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Resize
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - memcpy
    - Py_TYPE
    - _PyLong_GetOne
    - PyObject_GetOptionalAttr
    - _PyObject_CallMethod
    - Py_XDECREF
    - PyBytes_AS_STRING
    - _PyIO_trap_eintr
    - PyByteArray_GET_SIZE
    - _Py_ID
    - Py_DECREF
    - PyBytes_GET_SIZE
    - PyByteArray_FromStringAndSize
    - PyErr_Format
    - PyByteArray_AS_STRING
    - PyObject_CallOneArg
    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:681,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/iobase.c:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 685
    functionName: iobase_iter
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_check_closed
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_iter(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:690,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:690,1
    - Dst: PyObject_Size
      Src: /src/cpython/Modules/_io/iobase.c:695,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 702
    functionName: iobase_iternext
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyObject_Size
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_iternext(PyObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/iobase.c:723,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/iobase.c:731,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:736,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_io/iobase.c:740,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_io/iobase.c:747,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/iobase.c:749,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/iobase.c:756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:757,1
    - Dst: PyObject_Size
      Src: /src/cpython/Modules/_io/iobase.c:760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:770,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/iobase.c:774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:775,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - self
    - hint
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 777
    functionName: _io__IOBase_readlines_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - PyObject_CallMethodObjArgs
    - PyObject_Size
    - PyList_New
    - PyErr_Occurred
    - PyList_Append
    - Py_DECREF
    - Py_XDECREF
    - PyIter_Next
    - _Py_ID
    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:796,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_io/iobase.c:799,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_io/iobase.c:804,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/iobase.c:806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:807,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/iobase.c:816,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:816,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/iobase.c:817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:825,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - lines
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 827
    functionName: _io__IOBase_writelines
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyIO_trap_eintr
    - iobase_check_closed
    - PyObject_GetIter
    - PyObject_CallMethodObjArgs
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - _Py_ID
    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: 830
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 830
    functionName: clinic_state
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clinic_state()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:928,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:928,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_io/iobase.c:931,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: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_io/iobase.c:941,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/iobase.c:942,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/iobase.c:943,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/iobase.c:947,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Modules/_io/iobase.c:952,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/iobase.c:955,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:958,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 960
    functionName: _io__RawIOBase_read_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - PyNumber_AsSsize_t
    - Py_CLEAR
    - PyObject_CallMethodObjArgs
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__RawIOBase_read_impl(PyObject *self, Py_ssize_t n)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_io/iobase.c:973,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/iobase.c:979,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/iobase.c:979,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/iobase.c:984,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/iobase.c:987,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Modules/_io/iobase.c:991,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/iobase.c:992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:995,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/iobase.c:998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:999,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/iobase.c:1000,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/iobase.c:1001,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:1004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:1006,1
    - Dst: PyBytesWriter_WriteBytes
      Src: /src/cpython/Modules/_io/iobase.c:1009,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/iobase.c:1010,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/iobase.c:1011,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:1012,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/iobase.c:1013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/iobase.c:1016,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_io/iobase.c:1018,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 1019
    functionName: _io__RawIOBase_readall_impl
    functionSourceFile: /src/cpython/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyIO_trap_eintr
    - PyBytesWriter_Create
    - PyBytes_Check
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyBytesWriter_Finish
    - PyBytesWriter_WriteBytes
    - _PyObject_CallMethod
    - PyBytes_AS_STRING
    - PyBytesWriter_GetSize
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _Py_ID
    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:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    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:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1033
    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_XSETREF
    - Py_NewRef
    - _Py_ID
    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_VISIT
    - nldecoder_object_CAST
    - Py_TYPE
    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:
    - incrementalnewlinedecoder_clear
    - nldecoder_object_CAST
    - PyTypeObject*::tp_free
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - 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:
    - Py_DECREF
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    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:
    - nldecoder_object_CAST
    - PyObject_CallMethodObjArgs
    - memcpy
    - PyUnicode_WRITE
    - PyUnicode_READ_CHAR
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_NoMemory
    - PyUnicode_Substring
    - check_decoded
    - PyMem_Malloc
    - memchr
    - PyMem_Free
    - CHECK_INITIALIZED_DECODER
    - PyUnicode_READ
    - PyUnicode_New
    - Py_DECREF
    - PyUnicode_MAX_CHAR_VALUE
    - Py_NewRef
    - Py_SETREF
    - PyUnicode_GET_LENGTH
    - PyUnicode_FromKindAndData
    - _Py_ID
    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:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - nldecoder_object*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 534
    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:548,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:551,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:552,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/textio.c:555,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:558,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_io/textio.c:561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:564,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:568,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_io/textio.c:571,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - nldecoder_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 578
    functionName: _io_IncrementalNewlineDecoder_getstate_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - Py_INCREF
    - PyErr_SetString
    - Py_BuildValue
    - PyTuple_Check
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyArg_ParseTuple
    - CHECK_INITIALIZED_DECODER
    - _Py_ID
    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:595,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/textio.c:597,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:598,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_io/textio.c:601,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:611,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - nldecoder_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 617
    functionName: _io_IncrementalNewlineDecoder_setstate_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyObject_CallMethod
    - PyTuple_Check
    - PyArg_ParseTuple
    - CHECK_INITIALIZED_DECODER
    - _Py_ID
    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:628,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:633,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - nldecoder_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 636
    functionName: _io_IncrementalNewlineDecoder_reset_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_INITIALIZED_DECODER
    - _Py_ID
    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:641,1
    - Dst: CHECK_INITIALIZED_DECODER
      Src: /src/cpython/Modules/_io/textio.c:642,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/textio.c:646,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/textio.c:648,1
    - Dst: PyUnicode_FromString
      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
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:656,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 663
    functionName: incrementalnewlinedecoder_newlines_get
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - CHECK_INITIALIZED_DECODER
    - nldecoder_object_CAST
    - Py_BuildValue
    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: 731
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 731
    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:741,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Modules/_io/textio.c:742,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: ascii_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - textio_CAST
    - _PyUnicode_AsASCIIString
    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:748,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_io/textio.c:749,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 750
    functionName: utf16be_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - textio_CAST
    - _PyUnicode_EncodeUTF16
    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:755,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_io/textio.c:756,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 757
    functionName: utf16le_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - textio_CAST
    - _PyUnicode_EncodeUTF16
    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:762,1
    - Dst: utf16be_encode
      Src: /src/cpython/Modules/_io/textio.c:766,1
    - Dst: utf16le_encode
      Src: /src/cpython/Modules/_io/textio.c:768,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Modules/_io/textio.c:771,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 772
    functionName: utf16_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - utf16be_encode
    - _PyUnicode_EncodeUTF16
    - utf16le_encode
    - PyUnicode_AsUTF8
    - 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:777,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_io/textio.c:778,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 779
    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:784,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_io/textio.c:785,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 786
    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:791,1
    - Dst: utf32be_encode
      Src: /src/cpython/Modules/_io/textio.c:795,1
    - Dst: utf32le_encode
      Src: /src/cpython/Modules/_io/textio.c:797,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Modules/_io/textio.c:800,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 801
    functionName: utf32_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - utf32be_encode
    - PyUnicode_AsUTF8
    - textio_CAST
    - _PyUnicode_EncodeUTF32
    - utf32le_encode
    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:806,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_io/textio.c:807,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 808
    functionName: utf8_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyUnicode_AsUTF8String
    - textio_CAST
    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:813,1
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/cpython/Modules/_io/textio.c:814,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - text
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 815
    functionName: latin1_encode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsLatin1String
    - textio_CAST
    - PyUnicode_AsUTF8
    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: 822
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 822
    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:851,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - newline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 856
    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:866,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:877,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:877,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_io/textio.c:878,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_io/textio.c:879,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:890,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: 876
        line_start: 876
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 892
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 892
    functionName: set_newline
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_1BYTE_DATA
    - strcmp
    - PyUnicode_KIND
    - Py_XDECREF
    - 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:901,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:901,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/textio.c:905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:906,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:913,1
    - Dst: _PyCodecInfo_GetIncrementalDecoder
      Src: /src/cpython/Modules/_io/textio.c:914,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_io/textio.c:920,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:925,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - codec_info
    - errors
    argTypes:
    - textio*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 929
    functionName: _textiowrapper_set_decoder
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyCodecInfo_GetIncrementalDecoder
    - Py_XSETREF
    - PyObject_IsTrue
    - Py_CLEAR
    - PyObject_CallFunctionObjArgs
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:937,1
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/cpython/Modules/_io/textio.c:938,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/textio.c:940,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:940,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:943,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: 948
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 948
    functionName: _textiowrapper_decode
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyObject_CallMethodObjArgs
    - check_decoded
    - _PyIncrementalNewlineDecoder_decode
    - _Py_ID
    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:957,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:957,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/textio.c:961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:962,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:969,1
    - Dst: _PyCodecInfo_GetIncrementalEncoder
      Src: /src/cpython/Modules/_io/textio.c:971,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:976,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:976,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:979,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_io/textio.c:982,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:989,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - codec_info
    - errors
    argTypes:
    - textio*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 992
    functionName: _textiowrapper_set_encoder
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - _PyUnicode_EqualToASCIIString
    - Py_CLEAR
    - _PyCodecInfo_GetIncrementalEncoder
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:1003,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1004,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:1009,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_io/textio.c:1009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1010,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:1017,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1018,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_io/textio.c:1018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1022,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1026
    functionName: _textiowrapper_fix_encoder_state
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyObject_CallMethodOneArg
    - _PyLong_GetZero
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_fix_encoder_state(textio *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1031,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_io/textio.c:1033,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Modules/_io/textio.c:1036,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Modules/_io/textio.c:1049,1
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Modules/_io/textio.c:1053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - errors
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (errors != NULL && errors != Py_None)
      pos:
        line_end: 1030
        line_start: 1030
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1059
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1059
    functionName: io_check_errors
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - PyCodec_LookupError
    - _PyInterpreterState_GET
    - assert
    - _PyUnicode_AsUTF8NoNUL
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int io_check_errors(PyObject *errors)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Modules/_io/textio.c:1117,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Modules/_io/textio.c:1118,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_io/textio.c:1119,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1127,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1129,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1132,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1135,1
    - Dst: io_check_errors
      Src: /src/cpython/Modules/_io/textio.c:1138,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Modules/_io/textio.c:1141,1
    - Dst: validate_newline
      Src: /src/cpython/Modules/_io/textio.c:1146,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_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1156,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1157,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1158,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1159,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_io/textio.c:1166,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/textio.c:1167,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_io/textio.c:1169,1
    - Dst: _Py_GetLocaleEncodingObject
      Src: /src/cpython/Modules/_io/textio.c:1170,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1174,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1174,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:1178,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/textio.c:1183,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:1188,1
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/cpython/Modules/_io/textio.c:1194,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1196,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1204,1
    - Dst: set_newline
      Src: /src/cpython/Modules/_io/textio.c:1208,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1212,1
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/textio.c:1215,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1215,1
    - Dst: _textiowrapper_set_decoder
      Src: /src/cpython/Modules/_io/textio.c:1217,1
    - Dst: _textiowrapper_set_encoder
      Src: /src/cpython/Modules/_io/textio.c:1221,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1225,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1227,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1228,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1229,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:1231,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1231,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1238,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:1242,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1242,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/textio.c:1245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1246,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_io/textio.c:1251,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1251,1
    - Dst: _textiowrapper_fix_encoder_state
      Src: /src/cpython/Modules/_io/textio.c:1258,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:1266,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: 1173
        line_start: 1173
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1268
      start: 1102
    functionDepth: 3
    functionLinenumber: 1102
    functionLinenumberEnd: 1268
    functionName: _io_TextIOWrapper___init___impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyCodec_LookupTextEncoding
    - strcmp
    - _Py_DECLARE_STR
    - io_check_errors
    - assert
    - _textiowrapper_set_decoder
    - _textiowrapper_set_encoder
    - Py_TYPE
    - set_newline
    - PyUnicode_FromString
    - _PyInterpreterState_GetConfig
    - PyObject_IsTrue
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - PyUnicode_AsUTF8
    - Py_XDECREF
    - validate_newline
    - PyErr_WarnEx
    - _Py_STR
    - Py_IS_TYPE
    - PyErr_SetString
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - find_io_state_by_def
    - PyObject_HasAttrWithError
    - _PyInterpreterState_GET
    - Py_CLEAR
    - _Py_GetLocaleEncodingObject
    - PyErr_Format
    - _PyUnicode_AsUTF8NoNUL
    - _textiowrapper_fix_encoder_state
    - _Py_ID
    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:1281,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/textio.c:1282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - default_value
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1286
    functionName: convert_optional_bool
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int convert_optional_bool(PyObject *obj, int default_value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1302,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_io/textio.c:1305,1
    - Dst: _Py_GetLocaleEncodingObject
      Src: /src/cpython/Modules/_io/textio.c:1306,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1311,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1314,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1317,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:1319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1322,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:1325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1328,1
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/cpython/Modules/_io/textio.c:1333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1336,1
    - Dst: _textiowrapper_set_decoder
      Src: /src/cpython/Modules/_io/textio.c:1339,1
    - Dst: _textiowrapper_set_encoder
      Src: /src/cpython/Modules/_io/textio.c:1340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1341,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1346,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/textio.c:1348,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_io/textio.c:1349,1
    - Dst: _textiowrapper_fix_encoder_state
      Src: /src/cpython/Modules/_io/textio.c:1351,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: 1352
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1352
    functionName: textiowrapper_change_encoding
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyCodec_LookupTextEncoding
    - Py_INCREF
    - Py_SETREF
    - _PyUnicode_EqualToASCIIString
    - PyUnicode_AsUTF8
    - _Py_GetLocaleEncodingObject
    - Py_DECREF
    - _textiowrapper_set_decoder
    - _textiowrapper_set_encoder
    - _textiowrapper_fix_encoder_state
    - _Py_ID
    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:1381,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1382,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1384,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1387,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1388,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1390,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1394,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1396,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1398,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:1404,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/textio.c:1412,1
    - Dst: validate_newline
      Src: /src/cpython/Modules/_io/textio.c:1413,1
    - Dst: convert_optional_bool
      Src: /src/cpython/Modules/_io/textio.c:1418,1
    - Dst: convert_optional_bool
      Src: /src/cpython/Modules/_io/textio.c:1423,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:1429,1
    - Dst: set_newline
      Src: /src/cpython/Modules/_io/textio.c:1434,1
    - Dst: textiowrapper_change_encoding
      Src: /src/cpython/Modules/_io/textio.c:1438,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: 1446
      start: 1370
    functionDepth: 3
    functionLinenumber: 1370
    functionLinenumberEnd: 1446
    functionName: _io_TextIOWrapper_reconfigure_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    - set_newline
    - convert_optional_bool
    - textiowrapper_change_encoding
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - _PyFile_Flush
    - PyErr_Format
    - validate_newline
    - Py_TYPE
    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:1451,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:1459,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1460,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1461,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1462,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1466
    functionName: textiowrapper_clear
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - textio_CAST
    linkageType: ''
    returnType: int
    signature: int textiowrapper_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:1471,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1472,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/textio.c:1474,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/textio.c:1477,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/textio.c:1478,1
    - Dst: textiowrapper_clear
      Src: /src/cpython/Modules/_io/textio.c:1479,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/textio.c:1480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1468
    functionDepth: 2
    functionLinenumber: 1468
    functionLinenumberEnd: 1482
    functionName: textiowrapper_dealloc
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - textiowrapper_clear
    - _PyObject_GC_UNTRACK
    - textio_CAST
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyIOBase_finalize
    - 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:1487,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1488,1
    - Dst: Py_TYPE
      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:1495,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1496,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1497,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1498,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/textio.c:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1502
    functionName: textiowrapper_traverse
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - textio_CAST
    - Py_VISIT
    - Py_TYPE
    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: 1533
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1533
    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: 1540
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1540
    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: 1548
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1548
    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: 1559
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1559
    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:1571,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:1572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1566
    functionDepth: 1
    functionLinenumber: 1566
    functionLinenumberEnd: 1579
    functionName: _io_TextIOWrapper_detach_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyFile_Flush
    - CHECK_ATTACHED
    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:1586,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:1594,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1595,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1597,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1598,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_io/textio.c:1598,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1599,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1599,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/textio.c:1600,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:1601,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1601,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1607,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_io/textio.c:1607,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/textio.c:1608,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_io/textio.c:1613,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:1616,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_io/textio.c:1617,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:1620,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1621,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_io/textio.c:1621,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:1622,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1623,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1626,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:1626,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Modules/_io/textio.c:1627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1628,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:1632,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1640,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:1644,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1644,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/textio.c:1645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1651,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(obj))
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyBytes_Check(obj))
      pos:
        line_end: 1625
        line_start: 1625
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyUnicode_IS_ASCII(pending))
      pos:
        line_end: 1597
        line_start: 1597
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyList_Check(pending))
      pos:
        line_end: 1606
        line_start: 1606
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (pos == self->pending_bytes_count)
      pos:
        line_end: 1634
        line_start: 1634
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyUnicode_GET_LENGTH(pending) == self->pending_bytes_count)
      pos:
        line_end: 1598
        line_start: 1598
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1653
      start: 1583
    functionDepth: 2
    functionLinenumber: 1583
    functionLinenumberEnd: 1653
    functionName: _textiowrapper_writeflush
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyObject_CallMethodOneArg
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - PyList_GET_ITEM
    - memcpy
    - assert
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyUnicode_DATA
    - PyUnicode_Check
    - _PyIO_trap_eintr
    - PyList_Check
    - PyBytes_AsString
    - Py_DECREF
    - PyBytes_AsStringAndSize
    - Py_NewRef
    - PyUnicode_GET_LENGTH
    - PyList_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_writeflush(textio *self)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:1672,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:1673,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:1676,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1679,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1681,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_io/textio.c:1684,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1684,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:1688,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1688,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1690,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_io/textio.c:1700,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1700,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Modules/_io/textio.c:1705,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1707,1
    - Dst: is_asciicompat_encoding
      Src: /src/cpython/Modules/_io/textio.c:1708,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1709,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:1717,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1720,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:1723,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1727,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1733,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:1736,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:1750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1751,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1758,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_io/textio.c:1761,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/textio.c:1762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1764,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1769,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_io/textio.c:1769,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_io/textio.c:1770,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_io/textio.c:1771,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:1775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1779,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:1785,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:1790,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:1796,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:1797,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:1801,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1804,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/textio.c:1807,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 93
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts:
    - condition: (!PyList_CheckExact(self->pending_bytes))
      pos:
        line_end: 1768
        line_start: 1768
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (self->pending_bytes_count == 0)
      pos:
        line_end: 1757
        line_start: 1757
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1808
      start: 1662
    functionDepth: 3
    functionLinenumber: 1662
    functionLinenumberEnd: 1808
    functionName: _io_TextIOWrapper_write_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyObject_CallMethodOneArg
    - PyBytes_Check
    - _textiowrapper_writeflush
    - assert
    - Py_TYPE
    - PyUnicode_FindChar
    - PyLong_FromSsize_t
    - _PyObject_CallMethod
    - is_asciicompat_encoding
    - PyList_New
    - PyList_Append
    - textiowrapper_set_decoded_chars
    - _unsupported
    - Py_INCREF
    - CHECK_CLOSED
    - CHECK_ATTACHED
    - _PyFile_Flush
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyBytes_GET_SIZE
    - Py_NewRef
    - PyList_SET_ITEM
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyList_CheckExact
    - _Py_ID
    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:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1817
    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:1826,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1828,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:1831,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:1837,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:1844,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts:
    - condition: (avail >= 0)
      pos:
        line_end: 1830
        line_start: 1830
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1849
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1849
    functionName: textiowrapper_get_decoded_chars
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - assert
    - Py_NewRef
    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:1871,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:1879,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1880,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/textio.c:1886,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:1887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1889,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_io/textio.c:1892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1895,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:1899,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1900,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1904,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1907,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:1908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1909,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_io/textio.c:1914,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/textio.c:1916,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/_io/textio.c:1916,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:1920,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1921,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:1921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1923,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/textio.c:1927,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:1928,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:1931,1
    - Dst: _textiowrapper_decode
      Src: /src/cpython/Modules/_io/textio.c:1938,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/textio.c:1940,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:1944,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:1945,1
    - Dst: PyBytes_Concat
      Src: /src/cpython/Modules/_io/textio.c:1958,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:1963,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:1968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:1970,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:1975,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:1976,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:1977,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 2
    argNames:
    - self
    - size_hint
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1853
    functionDepth: 4
    functionLinenumber: 1853
    functionLinenumberEnd: 1979
    functionName: textiowrapper_read_chunk
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - PyBytes_Check
    - Py_BuildValue
    - PyTuple_Check
    - PyObject_GetBuffer
    - Py_TYPE
    - _textiowrapper_decode
    - PyLong_FromSsize_t
    - Py_XDECREF
    - PyArg_ParseTuple
    - textiowrapper_set_decoded_chars
    - _unsupported
    - Py_INCREF
    - PyErr_SetString
    - Py_MAX
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyBytes_Concat
    - Py_XSETREF
    - PyBuffer_Release
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - _Py_ID
    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:1994,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:1995,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:1998,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:2001,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2006,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2012,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:2013,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:2018,1
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/cpython/Modules/_io/textio.c:2019,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/textio.c:2022,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2024,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:2025,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2031,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_io/textio.c:2035,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2040,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2041,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2049,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2052,1
    - Dst: textiowrapper_read_chunk
      Src: /src/cpython/Modules/_io/textio.c:2056,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/textio.c:2060,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/textio.c:2068,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2072,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2075,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2076,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2079,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2082,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_io/textio.c:2084,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:2085,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_io/textio.c:2085,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/textio.c:2085,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2088,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2093,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2094,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 1988
    functionDepth: 5
    functionLinenumber: 1988
    functionLinenumberEnd: 2096
    functionName: _io_TextIOWrapper_read_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - textiowrapper_read_chunk
    - _Py_DECLARE_STR
    - _textiowrapper_writeflush
    - PyUnicode_Join
    - PyObject_CallMethodObjArgs
    - textiowrapper_get_decoded_chars
    - PyList_New
    - check_decoded
    - PyList_Append
    - Py_XDECREF
    - textiowrapper_set_decoded_chars
    - _unsupported
    - _PyIO_trap_eintr
    - CHECK_CLOSED
    - Py_IS_TYPE
    - _Py_STR
    - PyErr_SetString
    - CHECK_ATTACHED
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyUnicode_AppendAndDel
    - _PyIncrementalNewlineDecoder_decode
    - Py_XSETREF
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - _Py_ID
    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:2106,1
    - Dst: memchr
      Src: /src/cpython/Modules/_io/textio.c:2107,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2110,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2112,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: 2105
        line_start: 2105
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2118
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2118
    functionName: find_control_char
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - memchr
    - PyUnicode_READ
    - 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:2129,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2146,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2152,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2157,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2166,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_io/textio.c:2167,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2169,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:2169,1
    - Dst: find_control_char
      Src: /src/cpython/Modules/_io/textio.c:2171,1
    - Dst: find_control_char
      Src: /src/cpython/Modules/_io/textio.c:2185,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_io/textio.c:2189,1
    - Dst: find_control_char
      Src: /src/cpython/Modules/_io/textio.c:2196,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: 2168
        line_start: 2168
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2204
      start: 2120
    functionDepth: 2
    functionLinenumber: 2120
    functionLinenumberEnd: 2204
    functionName: _PyIO_find_line_ending
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - find_control_char
    - PyUnicode_GET_LENGTH
    - 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:2213,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:2215,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2229,1
    - Dst: textiowrapper_read_chunk
      Src: /src/cpython/Modules/_io/textio.c:2230,1
    - Dst: _PyIO_trap_eintr
      Src: /src/cpython/Modules/_io/textio.c:2234,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2244,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2245,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:2251,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2256,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_io/textio.c:2257,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2259,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2260,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_io/textio.c:2265,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2266,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_io/textio.c:2267,1
    - Dst: _PyIO_find_line_ending
      Src: /src/cpython/Modules/_io/textio.c:2269,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/textio.c:2294,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:2298,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2302,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2306,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:2311,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2315,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2317,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2323,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_io/textio.c:2324,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2325,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/textio.c:2333,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2337,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2339,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/textio.c:2343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2345,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_io/textio.c:2347,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/textio.c:2347,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2350,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_io/textio.c:2353,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2359,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2360,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2361,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: 2255
        line_start: 2255
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2363
      start: 2206
    functionDepth: 5
    functionLinenumber: 2206
    functionLinenumberEnd: 2363
    functionName: _textiowrapper_readline
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - textiowrapper_read_chunk
    - _PyIO_find_line_ending
    - _textiowrapper_writeflush
    - PyUnicode_Join
    - assert
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_Substring
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - textiowrapper_set_decoded_chars
    - _PyIO_trap_eintr
    - CHECK_CLOSED
    - _Py_STR
    - Py_DECREF
    - Py_NewRef
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - PyUnicode_Concat
    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:2376,1
    - Dst: _textiowrapper_readline
      Src: /src/cpython/Modules/_io/textio.c:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2372
    functionDepth: 6
    functionLinenumber: 2372
    functionLinenumberEnd: 2378
    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:2426,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_io/textio.c:2430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2435,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2437,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2438,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2439,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2440,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - cookie
    - cookieObj
    argTypes:
    - cookie_type*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2444
    functionName: textiowrapper_parse_cookie
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyNumber_Long
    - _PyLong_AsByteArray
    - memcpy
    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:2451,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2452,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2453,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2454,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/textio.c:2455,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/_io/textio.c:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2459
    functionName: textiowrapper_build_cookie
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromByteArray
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_build_cookie(cookie_type *cookie)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2472,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2472,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:2475,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - cookie
    argTypes:
    - textio*
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2461
    functionDepth: 1
    functionLinenumber: 2461
    functionLinenumberEnd: 2483
    functionName: _textiowrapper_decoder_setstate
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _PyObject_CallMethod
    - _Py_ID
    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:2490,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2490,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2494,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2494,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_io/textio.c:2495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - start_of_stream
    argTypes:
    - textio*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2502
    functionName: _textiowrapper_encoder_reset
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - _PyLong_GetZero
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:2508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cookie
    argTypes:
    - textio*
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2504
    functionDepth: 2
    functionLinenumber: 2504
    functionLinenumberEnd: 2510
    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:2546,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:2547,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_io/textio.c:2549,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:2552,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_io/textio.c:2556,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:2561,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:2566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2573,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2574,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2574,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:2581,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:2586,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:2590,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2594,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2595,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2597,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2600,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:2603,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2603,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2604,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:2609,1
    - Dst: _textiowrapper_encoder_reset
      Src: /src/cpython/Modules/_io/textio.c:2610,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2611,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:2621,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_io/textio.c:2627,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:2632,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:2637,1
    - Dst: textiowrapper_parse_cookie
      Src: /src/cpython/Modules/_io/textio.c:2644,1
    - Dst: PyLong_FromOff_t
      Src: /src/cpython/Modules/_io/textio.c:2648,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2651,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2652,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2655,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2657,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:2658,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/cpython/Modules/_io/textio.c:2662,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:2668,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2668,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:2675,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:2676,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:2679,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2680,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:2684,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:2688,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_io/textio.c:2690,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2690,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:2693,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/cpython/Modules/_io/textio.c:2696,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_io/textio.c:2699,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:2700,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/textio.c:2706,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/textio.c:2709,1
    - Dst: _textiowrapper_encoder_setstate
      Src: /src/cpython/Modules/_io/textio.c:2714,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2719,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 147
    argCount: 3
    argNames:
    - self
    - cookieObj
    - whence
    argTypes:
    - textio*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2536
    functionDepth: 3
    functionLinenumber: 2536
    functionLinenumberEnd: 2722
    functionName: _io_TextIOWrapper_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - PyBytes_Check
    - Py_BuildValue
    - PyObject_CallMethodObjArgs
    - textiowrapper_parse_cookie
    - Py_TYPE
    - PyLong_FromOff_t
    - PyUnicode_GetLength
    - _textiowrapper_encoder_setstate
    - _PyObject_CallMethod
    - check_decoded
    - Py_XDECREF
    - _textiowrapper_encoder_reset
    - textiowrapper_set_decoded_chars
    - _unsupported
    - Py_INCREF
    - CHECK_CLOSED
    - PyErr_SetString
    - CHECK_ATTACHED
    - _PyFile_Flush
    - _PyLong_GetZero
    - _textiowrapper_decoder_setstate
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyObject_RichCompareBool
    - Py_XSETREF
    - Py_CLEAR
    - PyErr_Format
    - _Py_ID
    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:2749,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:2750,1
    - Dst: _unsupported
      Src: /src/cpython/Modules/_io/textio.c:2753,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:2757,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:2762,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:2764,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2768,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2768,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2773,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_io/textio.c:2773,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_io/textio.c:2778,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/textio.c:2780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2782,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/textio.c:2783,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2787,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/textio.c:2787,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_io/textio.c:2788,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2791,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_io/textio.c:2791,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:2793,1
    - Dst: textiowrapper_build_cookie
      Src: /src/cpython/Modules/_io/textio.c:2798,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:2804,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2805,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/textio.c:2852,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:2852,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/textio.c:2853,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/cpython/Modules/_io/textio.c:2856,1
    - Dst: DECODER_DECODE
      Src: /src/cpython/Modules/_io/textio.c:2858,1
    - Dst: DECODER_GETSTATE
      Src: /src/cpython/Modules/_io/textio.c:2860,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/cpython/Modules/_io/textio.c:2879,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/textio.c:2885,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/textio.c:2896,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/textio.c:2897,1
    - Dst: DECODER_DECODE
      Src: /src/cpython/Modules/_io/textio.c:2902,1
    - Dst: DECODER_GETSTATE
      Src: /src/cpython/Modules/_io/textio.c:2906,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Modules/_io/textio.c:2922,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2923,1
    - Dst: check_decoded
      Src: /src/cpython/Modules/_io/textio.c:2924,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:2926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2927,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:2931,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2938,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2940,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2943,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_io/textio.c:2946,1
    - Dst: textiowrapper_build_cookie
      Src: /src/cpython/Modules/_io/textio.c:2947,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/textio.c:2951,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2952,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2953,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/textio.c:2954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:2955,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:2956,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 132
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts:
    - condition: (skip_bytes <= PyBytes_GET_SIZE(next_input))
      pos:
        line_end: 2851
        line_start: 2851
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (self->decoded_chars == NULL || PyUnicode_GetLength(self->decoded_chars)
        == 0)
      pos:
        line_end: 2772
        line_start: 2772
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyTuple_Check(self->snapshot))
      pos:
        line_end: 2786
        line_start: 2786
        source_file: /src/cpython/Modules/_io/textio.c
    - condition: (PyBytes_Check(next_input))
      pos:
        line_end: 2790
        line_start: 2790
        source_file: /src/cpython/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2959
      start: 2734
    functionDepth: 3
    functionLinenumber: 2734
    functionLinenumberEnd: 2959
    functionName: _io_TextIOWrapper_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - DECODER_GETSTATE
    - PyObject_CallMethodOneArg
    - PyBytes_Check
    - _textiowrapper_writeflush
    - PyErr_Occurred
    - assert
    - PyTuple_Check
    - PyUnicode_GetLength
    - PyLong_AsLongLong
    - _PyErr_ChainExceptions1
    - DECODER_DECODE
    - PyLong_AsLong
    - _PyObject_CallMethod
    - check_decoded
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - Py_XDECREF
    - textiowrapper_build_cookie
    - _unsupported
    - CHECK_CLOSED
    - Py_SAFE_DOWNCAST
    - PyErr_SetString
    - CHECK_ATTACHED
    - _PyFile_Flush
    - _textiowrapper_decoder_setstate
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyErr_GetRaisedException
    - PyBytes_GET_SIZE
    - PyUnicode_GET_LENGTH
    - _Py_ID
    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: 2838
      start: 2809
    functionDepth: 0
    functionLinenumber: 2809
    functionLinenumberEnd: 2838
    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: 2847
      start: 2839
    functionDepth: 0
    functionLinenumber: 2839
    functionLinenumberEnd: 2847
    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:2972,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:2974,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:2978,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:2978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2968
    functionDepth: 1
    functionLinenumber: 2968
    functionLinenumberEnd: 2979
    functionName: _io_TextIOWrapper_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyFile_Flush
    - _Py_ID
    - CHECK_ATTACHED
    - PyObject_CallMethodOneArg
    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:2986,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:2987,1
    - Dst: CHECK_INITIALIZED
      Src: /src/cpython/Modules/_io/textio.c:2989,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/textio.c:2991,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_io/textio.c:2995,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:2998,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:3004,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3004,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_io/textio.c:3005,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/textio.c:3009,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/textio.c:3012,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3013,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_io/textio.c:3016,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:3020,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3020,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/textio.c:3024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3025,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_io/textio.c:3028,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/textio.c:3032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3034,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/textio.c:3036,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_io/textio.c:3041,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/textio.c:3043,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 2981
    functionDepth: 1
    functionLinenumber: 2981
    functionLinenumberEnd: 3046
    functionName: textiowrapper_repr
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - Py_ReprEnter
    - PyObject_GetOptionalAttr
    - CHECK_INITIALIZED
    - textio_CAST
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_AppendAndDel
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3060,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3061,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3056
    functionDepth: 1
    functionLinenumber: 3056
    functionLinenumberEnd: 3062
    functionName: _io_TextIOWrapper_fileno_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_ATTACHED
    - _Py_ID
    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:3073,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3074,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3069
    functionDepth: 1
    functionLinenumber: 3069
    functionLinenumberEnd: 3075
    functionName: _io_TextIOWrapper_seekable_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_ATTACHED
    - _Py_ID
    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:3086,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3087,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3088
      start: 3082
    functionDepth: 1
    functionLinenumber: 3082
    functionLinenumberEnd: 3088
    functionName: _io_TextIOWrapper_readable_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_ATTACHED
    - _Py_ID
    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:3099,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3100,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3101
      start: 3095
    functionDepth: 1
    functionLinenumber: 3095
    functionLinenumberEnd: 3101
    functionName: _io_TextIOWrapper_writable_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_ATTACHED
    - _Py_ID
    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:3112,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3113,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3108
    functionDepth: 1
    functionLinenumber: 3108
    functionLinenumberEnd: 3114
    functionName: _io_TextIOWrapper_isatty_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodNoArgs
    - CHECK_ATTACHED
    - _Py_ID
    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:3125,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/textio.c:3126,1
    - Dst: _textiowrapper_writeflush
      Src: /src/cpython/Modules/_io/textio.c:3128,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3130,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3121
    functionDepth: 3
    functionLinenumber: 3121
    functionLinenumberEnd: 3131
    functionName: _io_TextIOWrapper_flush_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - _textiowrapper_writeflush
    - CHECK_ATTACHED
    - PyObject_CallMethodNoArgs
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_flush_impl(textio *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3144,1
    - Dst: _io_TextIOWrapper_closed_get_impl
      Src: /src/cpython/Modules/_io/textio.c:3146,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/textio.c:3149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3150,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/textio.c:3163,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3166,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/textio.c:3169,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Modules/_io/textio.c:3172,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/textio.c:3173,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3176,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3176,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/textio.c:3178,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:3179,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3138
    functionDepth: 1
    functionLinenumber: 3138
    functionLinenumberEnd: 3183
    functionName: _io_TextIOWrapper_close_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - PyObject_IsTrue
    - CHECK_ATTACHED
    - _io_TextIOWrapper_closed_get_impl
    - _PyFile_Flush
    - PyObject_CallMethodNoArgs
    - PyErr_Clear
    - _PyErr_ChainExceptions1
    - Py_CLEAR
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    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:3188,1
    - Dst: textio_CAST
      Src: /src/cpython/Modules/_io/textio.c:3190,1
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3192,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_io/textio.c:3195,1
    - Dst: _textiowrapper_readline
      Src: /src/cpython/Modules/_io/textio.c:3197,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_io/textio.c:3200,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3200,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/textio.c:3201,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/textio.c:3202,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/textio.c:3204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3205,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/textio.c:3213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/textio.c:3215,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/textio.c:3216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3222
      start: 3185
    functionDepth: 6
    functionLinenumber: 3185
    functionLinenumberEnd: 3222
    functionName: textiowrapper_iternext_lock_held
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _textiowrapper_readline
    - Py_IS_TYPE
    - CHECK_ATTACHED
    - PyUnicode_Check
    - Py_CLEAR
    - textio_CAST
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - Py_TYPE
    - _Py_ID
    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:3228,1
    - Dst: textiowrapper_iternext_lock_held
      Src: /src/cpython/Modules/_io/textio.c:3229,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/textio.c:3230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3224
    functionDepth: 7
    functionLinenumber: 3224
    functionLinenumberEnd: 3232
    functionName: textiowrapper_iternext
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - textiowrapper_iternext_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_iternext(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/cpython/Modules/_io/textio.c:3244,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/textio.c:3245,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3240
    functionDepth: 1
    functionLinenumber: 3240
    functionLinenumberEnd: 3246
    functionName: _io_TextIOWrapper_name_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - CHECK_ATTACHED
    - _Py_ID
    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:3258,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/textio.c:3259,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3260
      start: 3254
    functionDepth: 1
    functionLinenumber: 3254
    functionLinenumberEnd: 3260
    functionName: _io_TextIOWrapper_closed_get_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 1
    functionsReached:
    - PyObject_GetAttr
    - CHECK_ATTACHED
    - _Py_ID
    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:3273,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/textio.c:3275,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/textio.c:3275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3268
    functionDepth: 1
    functionLinenumber: 3268
    functionLinenumberEnd: 3280
    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:3292,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/textio.c:3293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3294
      start: 3288
    functionDepth: 0
    functionLinenumber: 3288
    functionLinenumberEnd: 3294
    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:3306,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/textio.c:3307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3308
      start: 3302
    functionDepth: 1
    functionLinenumber: 3302
    functionLinenumberEnd: 3308
    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:3321,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:3323,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_io/textio.c:3326,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/textio.c:3327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/textio.c:3330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3316
    functionDepth: 1
    functionLinenumber: 3316
    functionLinenumberEnd: 3336
    functionName: _io_TextIOWrapper__CHUNK_SIZE_set_impl
    functionSourceFile: /src/cpython/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED_INT
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    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:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyErr_SetString
    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
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyBytes_AS_STRING
    - assert
    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: (SHARED_BUF(self))
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/_io/bytesio.c
    - 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: (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:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyBytes_AS_STRING
    - PyBytes_FromStringAndSize
    - Py_SETREF
    - SHARED_BUF
    - memcpy
    - assert
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    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:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - SHARED_BUF
    - unshare_buffer_lock_held
    - assert
    - _PyBytes_Resize
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int resize_buffer_lock_held(bytesio *self, size_t size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:195,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/bytesio.c:199,1
    - Dst: check_closed
      Src: /src/cpython/Modules/_io/bytesio.c:203,1
    - Dst: check_exports
      Src: /src/cpython/Modules/_io/bytesio.c:203,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: 14
    EdgeCount: 14
    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:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyBytes_AS_STRING
    - check_closed
    - SHARED_BUF
    - PyBytes_GET_SIZE
    - Py_MAX
    - PyBuffer_Release
    - resize_buffer_lock_held
    - memset
    - memcpy
    - unshare_buffer_lock_held
    - assert
    - PyObject_GetBuffer
    - check_exports
    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:
    - Py_BEGIN_CRITICAL_SECTION
    - bytesio_CAST
    - Py_END_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:
    - CHECK_CLOSED
    - get_io_state_by_cls
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyMemoryView_FromObject
    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:
    - CHECK_CLOSED
    - PyBytes_FromStringAndSize
    - SHARED_BUF
    - unshare_buffer_lock_held
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyBytes_GET_SIZE
    - Py_NewRef
    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:
    - PyLong_FromSsize_t
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_tell_impl(bytesio *self)'
  - BBCount: 3
    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_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:443,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:446,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts:
    - condition: (self->buf != NULL)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (size <= self->string_size)
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 449
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 449
    functionName: read_bytes_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyBytes_AS_STRING
    - PyBytes_FromStringAndSize
    - assert
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyBytes_GET_SIZE
    - Py_NewRef
    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:469,1
    - Dst: read_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 480
    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:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 500
    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:521,1
    - Dst: scan_eol_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:523,1
    - Dst: read_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 526
    functionName: _io_BytesIO_readline_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - scan_eol_lock_held
    - CHECK_CLOSED
    - 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:549,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/bytesio.c:551,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bytesio.c:553,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:561,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:562,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_io/bytesio.c:567,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:571,1
    - Dst: scan_eol_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:572,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:574,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_io/bytesio.c:577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:590,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 592
    functionName: _io_BytesIO_readlines_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - PyBytes_AS_STRING
    - PyBytes_FromStringAndSize
    - PyList_Append
    - PyLong_Check
    - scan_eol_lock_held
    - PyList_New
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - PyLong_AsSsize_t
    - Py_TYPE
    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:612,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:622,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:626,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:627,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/bytesio.c:628,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:628,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - bytesio*
    - Py_buffer*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 626
        line_start: 626
        source_file: /src/cpython/Modules/_io/bytesio.c
    - condition: (self->pos + len <= PY_SSIZE_T_MAX)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 632
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 632
    functionName: _io_BytesIO_readinto_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - assert
    - PyLong_FromSsize_t
    - memcpy
    - PyBytes_AS_STRING
    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:650,1
    - Dst: CHECK_EXPORTS
      Src: /src/cpython/Modules/_io/bytesio.c:651,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/bytesio.c:659,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bytesio.c:660,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:664,1
    - Dst: resize_buffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:672,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:676,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 677
    functionName: _io_BytesIO_truncate_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - CHECK_EXPORTS
    - resize_buffer_lock_held
    - PyLong_AsLong
    - PyLong_FromSsize_t
    - PyErr_Format
    - PyErr_Occurred
    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:682,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:685,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/bytesio.c:687,1
    - Dst: scan_eol_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:689,1
    - Dst: read_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 695
    functionName: bytesio_iternext_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - CHECK_CLOSED
    - bytesio_CAST
    - scan_eol_lock_held
    - read_bytes_lock_held
    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:701,1
    - Dst: bytesio_iternext_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:702,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 705
    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:727,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:730,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:740,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:748,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:755,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:764,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - bytesio*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 765
    functionName: _io_BytesIO_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - CHECK_CLOSED
    - PyErr_Format
    - PyLong_FromSsize_t
    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:782,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 778
    functionDepth: 4
    functionLinenumber: 778
    functionLinenumberEnd: 784
    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:805,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_io/bytesio.c:807,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_io/bytesio.c:811,1
    - Dst: write_bytes_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:819,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bytesio.c:822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - lines
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 826
    functionName: _io_BytesIO_writelines_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - PyObject_GetIter
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - write_bytes_lock_held
    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:839,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 842
    functionName: _io_BytesIO_close_impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - CHECK_EXPORTS
    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:862,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:864,1
    - Dst: _io_BytesIO_getvalue_impl
      Src: /src/cpython/Modules/_io/bytesio.c:865,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:872,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_io/bytesio.c:875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:877,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/bytesio.c:882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:883,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 885
    functionName: bytesio_getstate_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - bytesio_CAST
    - Py_BuildValue
    - PyDict_Copy
    - _io_BytesIO_getvalue_impl
    - Py_DECREF
    - Py_NewRef
    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:891,1
    - Dst: bytesio_getstate_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:892,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 887
    functionDepth: 4
    functionLinenumber: 887
    functionLinenumberEnd: 895
    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:900,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:906,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:908,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/bytesio.c:913,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:913,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:914,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:916,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:916,1
    - Dst: CHECK_EXPORTS
      Src: /src/cpython/Modules/_io/bytesio.c:919,1
    - Dst: _io_BytesIO_write_impl
      Src: /src/cpython/Modules/_io/bytesio.c:927,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/bytesio.c:927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:930,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/bytesio.c:935,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/bytesio.c:936,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:937,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:939,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/bytesio.c:942,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/bytesio.c:943,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:946,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/bytesio.c:953,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_io/bytesio.c:955,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/bytesio.c:956,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:958,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_io/bytesio.c:964,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:968,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 907
        line_start: 907
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 973
      start: 897
    functionDepth: 5
    functionLinenumber: 897
    functionLinenumberEnd: 973
    functionName: bytesio_setstate_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyTuple_GET_ITEM
    - PyDict_Update
    - bytesio_CAST
    - CHECK_EXPORTS
    - _io_BytesIO_write_impl
    - PyErr_SetString
    - PyLong_Check
    - PyDict_Check
    - PyTuple_Check
    - assert
    - PyErr_Format
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - Py_NewRef
    - Py_TYPE
    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:979,1
    - Dst: bytesio_setstate_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:980,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 975
    functionDepth: 6
    functionLinenumber: 975
    functionLinenumberEnd: 983
    functionName: bytesio_setstate
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytesio_setstate_lock_held
    - Py_END_CRITICAL_SECTION
    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:988,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:989,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/bytesio.c:990,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:991,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:992,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_io/bytesio.c:994,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:996,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:997,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/bytesio.c:998,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/bytesio.c:999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1001
    functionName: bytesio_dealloc
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - bytesio_CAST
    - PyErr_SetString
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void bytesio_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/bytesio.c:1008,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_io/bytesio.c:1009,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_io/bytesio.c:1016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:1018,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/bytesio.c:1019,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: 1007
        line_start: 1007
        source_file: /src/cpython/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 1023
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1023
    functionName: bytesio_new
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    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:1041,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/bytesio.c:1042,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_io/bytesio.c:1047,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_io/bytesio.c:1048,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/bytesio.c:1048,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:1049,1
    - Dst: _io_BytesIO_write_impl
      Src: /src/cpython/Modules/_io/bytesio.c:1053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:1056,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - initvalue
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1033
    functionDepth: 5
    functionLinenumber: 1033
    functionLinenumberEnd: 1062
    functionName: _io_BytesIO___init___impl
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - _io_BytesIO_write_impl
    - Py_XSETREF
    - PyErr_SetString
    - PyBytes_CheckExact
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyBytes_GET_SIZE
    - Py_NewRef
    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:1067,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1069,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Modules/_io/bytesio.c:1070,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:1070,1
    - Dst: SHARED_BUF
      Src: /src/cpython/Modules/_io/bytesio.c:1071,1
    - Dst: _PySys_GetSizeOf
      Src: /src/cpython/Modules/_io/bytesio.c:1072,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_io/bytesio.c:1078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1079
    functionName: bytesio_sizeof_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - bytesio_CAST
    - _PySys_GetSizeOf
    - SHARED_BUF
    - _PyObject_SIZE
    - Py_TYPE
    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:1085,1
    - Dst: bytesio_sizeof_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:1086,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1089
    functionName: bytesio_sizeof
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytesio_sizeof_lock_held
    - Py_END_CRITICAL_SECTION
    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:1094,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1095,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:1095,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1096,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1099
    functionName: bytesio_traverse
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - bytesio_CAST
    - Py_TYPE
    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:1104,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:1105,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:1106,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1110
    functionName: bytesio_clear
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - bytesio_CAST
    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: 1114
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1114
    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:1186,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1187,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_io/bytesio.c:1189,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_io/bytesio.c:1191,1
    - Dst: SHARED_BUF
      Src: /src/cpython/Modules/_io/bytesio.c:1191,1
    - Dst: unshare_buffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:1192,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_io/bytesio.c:1197,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/bytesio.c:1198,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_io/bytesio.c:1200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1202
    functionName: bytesiobuf_getbuffer_lock_held
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - bytesio_CAST
    - SHARED_BUF
    - bytesiobuf_CAST
    - FT_ATOMIC_ADD_SSIZE
    - unshare_buffer_lock_held
    - PyBytes_AS_STRING
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyBuffer_FillInfo
    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:1208,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:1214,1
    - Dst: bytesiobuf_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1214,1
    - Dst: bytesiobuf_getbuffer_lock_held
      Src: /src/cpython/Modules/_io/bytesio.c:1215,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/bytesio.c:1216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1204
    functionDepth: 3
    functionLinenumber: 1204
    functionLinenumberEnd: 1218
    functionName: bytesiobuf_getbuffer
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - bytesiobuf_getbuffer_lock_held
    - bytesiobuf_CAST
    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:1223,1
    - Dst: bytesio_CAST
      Src: /src/cpython/Modules/_io/bytesio.c:1224,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Modules/_io/bytesio.c:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(view)
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1226
    functionName: bytesiobuf_releasebuffer
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesiobuf_CAST
    - FT_ATOMIC_ADD_SSIZE
    - bytesio_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:1231,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1232,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:1232,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/bytesio.c:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1235
    functionName: bytesiobuf_traverse
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesiobuf_CAST
    - Py_VISIT
    - Py_TYPE
    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:1240,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/bytesio.c:1241,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_io/bytesio.c:1243,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/bytesio.c:1244,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/bytesio.c:1245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/bytesio.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1247
    functionName: bytesiobuf_dealloc
    functionSourceFile: /src/cpython/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - bytesiobuf_CAST
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    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: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    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:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    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:105,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/fileio.c:107,1
    - Dst: PyErr_ResourceWarning
      Src: /src/cpython/Modules/_io/fileio.c:108,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_io/fileio.c:110,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_io/fileio.c:111,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_io/fileio.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - op
    - source
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 118
    functionName: fileio_dealloc_warn
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyFileIO_CAST
    - PyErr_ResourceWarning
    - PyErr_ExceptionMatches
    - PyErr_SetRaisedException
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    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:132,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:138,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 146
    functionName: internal_close
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 8
    functionsReached:
    - close
    - PyMem_Free
    - PyErr_SetFromErrno
    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:166,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_io/fileio.c:167,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/fileio.c:168,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/fileio.c:176,1
    - Dst: fileio_dealloc_warn
      Src: /src/cpython/Modules/_io/fileio.c:179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:181,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:184,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/fileio.c:187,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/fileio.c:189,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - fileio*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 195
    functionName: _io_FileIO_close_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - internal_close
    - fileio_dealloc_warn
    - get_io_state_by_cls
    - PyObject_CallMethodOneArg
    - _PyErr_ChainExceptions1
    - Py_CLEAR
    - PyErr_Clear
    - Py_DECREF
    - PyErr_GetRaisedException
    - _Py_ID
    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:200,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_io/fileio.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/cpython/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 218
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 218
    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: 117
    BranchProfiles: []
    Callsites:
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/fileio.c:275,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:275,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:276,1
    - Dst: PyFileIO_Check
      Src: /src/cpython/Modules/_io/fileio.c:276,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/fileio.c:281,1
    - Dst: PyBool_Check
      Src: /src/cpython/Modules/_io/fileio.c:289,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_io/fileio.c:290,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/fileio.c:296,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:298,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:299,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:303,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/_io/fileio.c:308,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_io/fileio.c:311,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_io/fileio.c:315,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_io/fileio.c:318,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:328,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:369,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_io/fileio.c:395,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:406,1
    - Dst: _wopen
      Src: /src/cpython/Modules/_io/fileio.c:416,1
    - Dst: open
      Src: /src/cpython/Modules/_io/fileio.c:418,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_io/fileio.c:422,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_io/fileio.c:428,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_io/fileio.c:440,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/fileio.c:443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:444,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:445,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/fileio.c:450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:451,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:453,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:456,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Modules/_io/fileio.c:465,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:470,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_io/fileio.c:471,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/fileio.c:473,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Modules/_io/fileio.c:477,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_io/fileio.c:484,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_io/fileio.c:485,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:488,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:493,1
    - Dst: S_ISDIR
      Src: /src/cpython/Modules/_io/fileio.c:501,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Modules/_io/fileio.c:503,1
    - Dst: _setmode
      Src: /src/cpython/Modules/_io/fileio.c:511,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_io/fileio.c:514,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/fileio.c:514,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:524,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_io/fileio.c:534,1
    - Dst: internal_close
      Src: /src/cpython/Modules/_io/fileio.c:535,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_io/fileio.c:536,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:538,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:545,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:552,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/fileio.c:553,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:553,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/fileio.c:554,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:561,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:562,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:569,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/fileio.c:571,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/fileio.c:575,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:577,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/fileio.c:580,1
    - Dst: fileio_clear
      Src: /src/cpython/Modules/_io/fileio.c:581,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:583,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/fileio.c:584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:585,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:591,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:598,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:613,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:614,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:628,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:629,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:643,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:644,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:658,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:661,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:662,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:667,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:670,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:690,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:692,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:693,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:696,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:702,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/fileio.c:708,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:719,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:758,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:761,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:762,1
    - Dst: _lseeki64
      Src: /src/cpython/Modules/_io/fileio.c:798,1
    - Dst: lseek
      Src: /src/cpython/Modules/_io/fileio.c:800,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_io/fileio.c:811,1
    - Dst: new_buffersize
      Src: /src/cpython/Modules/_io/fileio.c:818,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:820,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/fileio.c:823,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Modules/_io/fileio.c:827,1
    - Dst: PyBytesWriter_Resize
      Src: /src/cpython/Modules/_io/fileio.c:828,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:833,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_io/fileio.c:834,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:841,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/fileio.c:844,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/fileio.c:847,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_io/fileio.c:853,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:879,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:881,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:882,1
    - Dst: _io_FileIO_readall_impl
      Src: /src/cpython/Modules/_io/fileio.c:886,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_io/fileio.c:892,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_io/fileio.c:896,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:898,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/fileio.c:902,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:904,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_io/fileio.c:910,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:934,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:936,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:937,1
    - Dst: _Py_write
      Src: /src/cpython/Modules/_io/fileio.c:940,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:946,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/fileio.c:952,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/_io/fileio.c:984,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/fileio.c:986,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:988,1
    - Dst: _lseeki64
      Src: /src/cpython/Modules/_io/fileio.c:995,1
    - Dst: lseek
      Src: /src/cpython/Modules/_io/fileio.c:997,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:1010,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_io/fileio.c:1015,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1017,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1044,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1046,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1062,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1064,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:1181,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:1182,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1185,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/fileio.c:1189,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/fileio.c:1189,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1194,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1196,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_io/fileio.c:1199,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1202,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1204,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/fileio.c:1205,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:1208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:1211,1
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1229,1
    - Dst: isatty
      Src: /src/cpython/Modules/_io/fileio.c:1232,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1249,1
    - Dst: S_ISCHR
      Src: /src/cpython/Modules/_io/fileio.c:1250,1
    - Dst: _io_FileIO_isatty_impl
      Src: /src/cpython/Modules/_io/fileio.c:1253,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: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1291,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1297,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/fileio.c:1298,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1298,1
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:1305,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1307,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1310,1
    CyclomaticComplexity: 155
    EdgeCount: 155
    ICount: 518
    argCount: 5
    argNames:
    - self
    - nameobj
    - mode
    - closefd
    - opener
    argTypes:
    - fileio*
    - PyObject*
    - char*
    - int
    - PyObject*
    assertStmts:
    - condition: (currentsize <= PY_SSIZE_T_MAX)
      pos:
        line_end: 718
        line_start: 718
        source_file: /src/cpython/Modules/_io/fileio.c
    - condition: (self->seekable >= 0)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/cpython/Modules/_io/fileio.c
    - condition: (PyFileIO_Check(state, self))
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/cpython/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 1349
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 1349
    functionName: _io_FileIO___init___impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyLong_AsLongLong
    - PyLong_Check
    - PyBytes_AS_STRING
    - Py_INCREF
    - PyErr_WarnEx
    - PyBytesWriter_Create
    - PyErr_SetString
    - isatty
    - err_closed
    - Py_DECREF
    - Py_ReprLeave
    - S_ISCHR
    - _Py_read
    - Py_CLEAR
    - PyBytesWriter_FinishWithSize
    - _PyObject_GC_UNTRACK
    - PyErr_SetFromErrnoWithFilenameObject
    - _io_FileIO_isatty_impl
    - portable_lseek
    - S_ISDIR
    - PyLong_FromLong
    - assert
    - GetLastError
    - _PyIOBase_finalize
    - PyErr_SetFromWindowsErr
    - _lseeki64
    - PyLong_AsLong
    - _Py_write
    - fileio_clear
    - open
    - Py_VISIT
    - PyObject_CallFunction
    - PyUnicode_FSConverter
    - PyBytesWriter_GetSize
    - PyErr_GetRaisedException
    - PyUnicode_AsWideCharString
    - _Py_set_inheritable
    - err_mode
    - PyErr_SetFromErrno
    - _Py_ID
    - internal_close
    - PyFileIO_CAST
    - PyFileIO_Check
    - FT_CLEAR_WEAKREFS
    - Py_TYPE
    - PyUnicode_FromString
    - PyLong_FromLongLong
    - _wopen
    - _io_FileIO_readall_impl
    - ftruncate
    - PyBool_Check
    - get_io_state_by_cls
    - PyErr_CheckSignals
    - PyUnicode_FromFormat
    - PyTypeObject*::tp_free
    - PyMem_New
    - PyBool_FromLong
    - PyErr_Occurred
    - PyErr_NoMemory
    - PyUnicode_FSDecoder
    - PyObject_GetOptionalAttr
    - _Py_fstat_noraise
    - _PyErr_ChainExceptions1
    - PyLong_FromSsize_t
    - PyMem_Free
    - mode_string
    - PyBytesWriter_Resize
    - Py_ReprEnter
    - PyBytesWriter_Discard
    - PyErr_Clear
    - lseek
    - PyBytesWriter_GetData
    - find_io_state_by_def
    - PyObject_SetAttr
    - new_buffersize
    - PyLong_AsInt
    - _setmode
    - PyErr_Format
    - _chsize_s
    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:552,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/fileio.c:553,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:553,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/fileio.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 556
    functionName: fileio_traverse
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyFileIO_CAST
    - Py_VISIT
    - Py_TYPE
    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:561,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/fileio.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 564
    functionName: fileio_clear
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 1
    functionsReached:
    - PyFileIO_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int fileio_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFileIO_CAST
      Src: /src/cpython/Modules/_io/fileio.c:569,1
    - Dst: _PyIOBase_finalize
      Src: /src/cpython/Modules/_io/fileio.c:571,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/fileio.c:575,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/fileio.c:577,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/fileio.c:580,1
    - Dst: fileio_clear
      Src: /src/cpython/Modules/_io/fileio.c:581,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:583,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/fileio.c:584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 586
    functionName: fileio_dealloc
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - fileio_clear
    - PyFileIO_CAST
    - _PyObject_GC_UNTRACK
    - PyTypeObject*::tp_free
    - PyMem_Free
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyIOBase_finalize
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void fileio_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 593
    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:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - action
    argTypes:
    - _PyIO_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 600
    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:613,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 615
    functionName: _io_FileIO_fileno_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_fileno_impl(fileio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:628,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 630
    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:643,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 645
    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:658,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:661,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/fileio.c:662,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:667,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts:
    - condition: (self->seekable >= 0)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/cpython/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 671
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 671
    functionName: _io_FileIO_seekable_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - err_closed
    - PyBool_FromLong
    - assert
    - Py_DECREF
    - portable_lseek
    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:690,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:692,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:693,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:696,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:702,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/fileio.c:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cls
    - buffer
    argTypes:
    - fileio*
    - PyTypeObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 709
    functionName: _io_FileIO_readinto_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - err_mode
    - _Py_read
    - PyErr_Clear
    - err_closed
    - PyLong_FromSsize_t
    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:719,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: 718
        line_start: 718
        source_file: /src/cpython/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 728
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 728
    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: 16
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:758,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:761,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:762,1
    - Dst: _lseeki64
      Src: /src/cpython/Modules/_io/fileio.c:798,1
    - Dst: lseek
      Src: /src/cpython/Modules/_io/fileio.c:800,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_io/fileio.c:811,1
    - Dst: new_buffersize
      Src: /src/cpython/Modules/_io/fileio.c:818,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/fileio.c:820,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/fileio.c:823,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Modules/_io/fileio.c:827,1
    - Dst: PyBytesWriter_Resize
      Src: /src/cpython/Modules/_io/fileio.c:828,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:833,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_io/fileio.c:834,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:841,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/fileio.c:844,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/fileio.c:847,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_io/fileio.c:853,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - fileio*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 854
    functionName: _io_FileIO_readall_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 1
    functionsReached:
    - get_io_state_by_cls
    - new_buffersize
    - PyBytesWriter_GetData
    - PyBytesWriter_FinishWithSize
    - _lseeki64
    - PyBytesWriter_Create
    - err_mode
    - PyErr_SetString
    - PyBytesWriter_Resize
    - PyBytesWriter_Discard
    - _Py_read
    - PyErr_Clear
    - err_closed
    - lseek
    - PyBytesWriter_GetSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readall_impl(fileio *self, PyTypeObject *cls)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:879,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:881,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:882,1
    - Dst: _io_FileIO_readall_impl
      Src: /src/cpython/Modules/_io/fileio.c:886,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_io/fileio.c:892,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_io/fileio.c:896,1
    - Dst: _Py_read
      Src: /src/cpython/Modules/_io/fileio.c:898,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_io/fileio.c:902,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:904,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_io/fileio.c:910,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - cls
    - size
    argTypes:
    - fileio*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 911
    functionName: _io_FileIO_read_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - _io_FileIO_readall_impl
    - get_io_state_by_cls
    - PyBytesWriter_Create
    - err_mode
    - _Py_read
    - PyBytesWriter_Discard
    - PyErr_Clear
    - err_closed
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_GetData
    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:934,1
    - Dst: get_io_state_by_cls
      Src: /src/cpython/Modules/_io/fileio.c:936,1
    - Dst: err_mode
      Src: /src/cpython/Modules/_io/fileio.c:937,1
    - Dst: _Py_write
      Src: /src/cpython/Modules/_io/fileio.c:940,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_io/fileio.c:946,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/fileio.c:952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - cls
    - b
    argTypes:
    - fileio*
    - PyTypeObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 953
    functionName: _io_FileIO_write_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - get_io_state_by_cls
    - err_mode
    - PyErr_Clear
    - err_closed
    - PyLong_FromSsize_t
    - _Py_write
    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:984,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_io/fileio.c:986,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/fileio.c:988,1
    - Dst: _lseeki64
      Src: /src/cpython/Modules/_io/fileio.c:995,1
    - Dst: lseek
      Src: /src/cpython/Modules/_io/fileio.c:997,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_io/fileio.c:1010,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_io/fileio.c:1015,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1017,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: 1019
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 1019
    functionName: portable_lseek
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 2
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromLongLong
    - _lseeki64
    - PyLong_AsLongLong
    - PyLong_AsLong
    - PyErr_Occurred
    - lseek
    - PyErr_SetFromErrno
    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:1044,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - fileio*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1047
    functionName: _io_FileIO_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - err_closed
    - portable_lseek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1062,1
    - Dst: portable_lseek
      Src: /src/cpython/Modules/_io/fileio.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1065
    functionName: _io_FileIO_tell_impl
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - err_closed
    - portable_lseek
    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
    - get_io_state_by_cls
    - err_mode
    - PyLong_AsLongLong
    - PyLong_AsLong
    - err_closed
    - ftruncate
    - PyErr_Occurred
    - PyMem_Free
    - Py_DECREF
    - _chsize_s
    - PyErr_SetFromErrno
    - portable_lseek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_truncate_impl(fileio *self, PyTypeObject *cls, PyObject *posobj)'
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1176
    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:1181,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/fileio.c:1182,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1185,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_io/fileio.c:1189,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/fileio.c:1189,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1194,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1196,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Modules/_io/fileio.c:1199,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_io/fileio.c:1202,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1204,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Modules/_io/fileio.c:1205,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/fileio.c:1208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/fileio.c:1211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1214
    functionName: fileio_repr
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - mode_string
    - PyFileIO_CAST
    - PyUnicode_FromFormat
    - PyObject_GetOptionalAttr
    - Py_ReprEnter
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/cpython/Modules/_io/fileio.c:1229,1
    - Dst: isatty
      Src: /src/cpython/Modules/_io/fileio.c:1232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1236
    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:1249,1
    - Dst: S_ISCHR
      Src: /src/cpython/Modules/_io/fileio.c:1250,1
    - Dst: _io_FileIO_isatty_impl
      Src: /src/cpython/Modules/_io/fileio.c:1253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1254
    functionName: _io_FileIO_isatty_open_only
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyFileIO_CAST
    - S_ISCHR
    - _io_FileIO_isatty_impl
    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: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_closed
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyFileIO_CAST
    - PyBool_FromLong
    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:1290,1
    - Dst: PyBool_FromLong
      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_closefd
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyFileIO_CAST
    - PyBool_FromLong
    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:1297,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/fileio.c:1298,1
    - Dst: mode_string
      Src: /src/cpython/Modules/_io/fileio.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1299
    functionName: fileio_get_mode
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyFileIO_CAST
    - PyUnicode_FromString
    - mode_string
    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:1305,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1307,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_io/fileio.c:1310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1311
    functionName: fileio_get_blksize
    functionSourceFile: /src/cpython/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyFileIO_CAST
    - PyLong_FromLong
    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:
    - Py_DECREF
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Finish
    - 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:
    - PyUnicode_AsUCS4
    - resize_buffer
    - PyUnicodeWriter_Finish
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    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->buf != NULL)
      pos:
        line_end: 194
        line_start: 194
        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: (len >= 0)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/cpython/Modules/_io/stringio.c
    - condition: (self->pos >= 0)
      pos:
        line_end: 195
        line_start: 195
        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
    - PyErr_SetString
    - PyUnicode_AsUCS4
    - Py_SETREF
    - PyUnicode_Check
    - resize_buffer
    - _Py_LATIN1_CHR
    - memset
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - assert
    - Py_DECREF
    - _PyIncrementalNewlineDecoder_decode
    - Py_NewRef
    - PyUnicode_Replace
    - PyUnicodeWriter_WriteStr
    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:
    - PyUnicode_FromKindAndData
    - CHECK_INITIALIZED
    - make_intermediate
    - CHECK_CLOSED
    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
    - PyLong_FromSsize_t
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_tell_impl(stringio *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/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:
    - make_intermediate
    - CHECK_CLOSED
    - CHECK_INITIALIZED
    - PyUnicode_FromKindAndData
    - ENSURE_REALIZED
    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
    - _PyIO_find_line_ending
    - PyUnicode_FromKindAndData
    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:
    - _stringio_readline
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - 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:
    - Py_TYPE
    - CHECK_CLOSED
    - Py_IS_TYPE
    - PyUnicode_Check
    - _stringio_readline
    - CHECK_INITIALIZED
    - stringio_CAST
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - ENSURE_REALIZED
    - _Py_ID
    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_CLOSED
    - resize_buffer
    - CHECK_INITIALIZED
    - PyLong_AsLong
    - PyLong_FromSsize_t
    - PyErr_Format
    - PyErr_Occurred
    - ENSURE_REALIZED
    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:512,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:513,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:516,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:521,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/stringio.c:526,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/stringio.c:543,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - stringio*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 544
    functionName: _io_StringIO_seek_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - PyErr_SetString
    - CHECK_INITIALIZED
    - PyLong_FromSsize_t
    - PyErr_Format
    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:564,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:565,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:566,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:567,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:570,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/stringio.c:571,1
    - Dst: write_str
      Src: /src/cpython/Modules/_io/stringio.c:573,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_io/stringio.c:576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 577
    functionName: _io_StringIO_write_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - write_str
    - PyUnicode_Check
    - CHECK_INITIALIZED
    - PyLong_FromSsize_t
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - 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:597,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_io/stringio.c:599,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
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 605
    functionName: _io_StringIO_close_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - resize_buffer
    - Py_CLEAR
    - PyUnicodeWriter_Discard
    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:610,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/stringio.c:611,1
    - Dst: Py_TYPE
      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
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_io/stringio.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 617
    functionName: stringio_traverse
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - stringio_CAST
    - Py_VISIT
    - Py_TYPE
    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: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
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 628
    functionName: stringio_clear
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - stringio_CAST
    linkageType: ''
    returnType: int
    signature: int stringio_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stringio_CAST
      Src: /src/cpython/Modules/_io/stringio.c:633,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:634,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Modules/_io/stringio.c:635,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/stringio.c:638,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_io/stringio.c:641,1
    - Dst: stringio_clear
      Src: /src/cpython/Modules/_io/stringio.c:642,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_io/stringio.c:643,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_io/stringio.c:644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 646
    functionName: stringio_dealloc
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Discard
    - stringio_clear
    - stringio_CAST
    - PyTypeObject*::tp_free
    - PyMem_Free
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void stringio_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:653,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_io/stringio.c:654,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_io/stringio.c:661,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:663,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_io/stringio.c:664,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: 652
        line_start: 652
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 668
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 668
    functionName: stringio_new
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - assert
    - PyMem_Malloc
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    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:695,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:696,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:698,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_io/stringio.c:701,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:710,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:714,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:715,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:717,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Modules/_io/stringio.c:723,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: Py_CLEAR
      Src: /src/cpython/Modules/_io/stringio.c:727,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:729,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_io/stringio.c:733,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/stringio.c:746,1
    - Dst: find_io_state_by_def
      Src: /src/cpython/Modules/_io/stringio.c:749,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:749,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_io/stringio.c:751,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Modules/_io/stringio.c:762,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:768,1
    - Dst: write_str
      Src: /src/cpython/Modules/_io/stringio.c:772,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:777,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Modules/_io/stringio.c:779,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: 729
        line_start: 728
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 790
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 790
    functionName: _io_StringIO___init___impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - find_io_state_by_def
    - PyUnicodeWriter_Create
    - PyUnicode_FromString
    - PyUnicodeWriter_Discard
    - write_str
    - PyUnicode_GetLength
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - Py_CLEAR
    - PyObject_CallFunctionObjArgs
    - resize_buffer
    - PyErr_Format
    - assert
    - Py_NewRef
    - Py_TYPE
    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:805,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 808
    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:821,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 824
    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:837,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 840
    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:864,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/stringio.c:871,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_io/stringio.c:874,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:876,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_io/stringio.c:881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 860
    functionDepth: 3
    functionLinenumber: 860
    functionLinenumberEnd: 886
    functionName: _io_StringIO___getstate___impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyDict_Copy
    - Py_DECREF
    - _io_StringIO_getvalue_impl
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO___getstate___impl(stringio *self)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:905,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:906,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_io/stringio.c:911,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/stringio.c:911,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:912,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:914,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:914,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_io/stringio.c:919,1
    - Dst: _io_StringIO___init__
      Src: /src/cpython/Modules/_io/stringio.c:922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/stringio.c:926,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/stringio.c:935,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/stringio.c:936,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/cpython/Modules/_io/stringio.c:937,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_io/stringio.c:940,1
    - Dst: resize_buffer
      Src: /src/cpython/Modules/_io/stringio.c:942,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/stringio.c:943,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_io/stringio.c:946,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_io/stringio.c:947,1
    - Dst: assert
      Src: /src/cpython/Modules/_io/stringio.c:951,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/stringio.c:959,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_io/stringio.c:960,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:961,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:963,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/stringio.c:966,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/stringio.c:967,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/stringio.c:970,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_io/stringio.c:977,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_io/stringio.c:979,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_io/stringio.c:980,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_io/stringio.c:982,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_io/stringio.c:988,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_io/stringio.c:992,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - stringio*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/cpython/Modules/_io/stringio.c
    - condition: (item == Py_None)
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/cpython/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 997
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 997
    functionName: _io_StringIO___setstate___impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - resize_buffer
    - memcpy
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyUnicode_Check
    - PyLong_Check
    - _io_StringIO___init__
    - PyMem_Free
    - PyLong_AsSsize_t
    - PyDict_Update
    - CHECK_CLOSED
    - PyErr_SetString
    - Py_DECREF
    - Py_NewRef
    - PyUnicode_AsUCS4Copy
    - PyDict_Check
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyTuple_GetSlice
    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:1009,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_io/stringio.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1011
    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:1023,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1026
    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:1038,1
    - Dst: CHECK_CLOSED
      Src: /src/cpython/Modules/_io/stringio.c:1039,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_io/stringio.c:1043,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/stringio.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1044
    functionName: _io_StringIO_newlines_get_impl
    functionSourceFile: /src/cpython/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - PyObject_GetAttr
    - _Py_ID
    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:61,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:66,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:67,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:73,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:74,1
    - Dst: _io__IOBase_seek_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:78,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: 82
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 82
    functionName: _io__IOBase_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_UnpackKeywords
    - _io__IOBase_seek_impl
    - PyErr_Occurred
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 100
    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:138,1
    - Dst: _io__IOBase_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:148,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: 152
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 152
    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:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 172
    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:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 192
    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: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: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    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: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: 1
    functionLinenumber: 229
    functionLinenumberEnd: 233
    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: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: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    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:272,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:273,1
    - Dst: _io__IOBase_fileno_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:276,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: 277
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: _io__IOBase_fileno
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _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:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 297
    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:323,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:329,1
    - Dst: _io__IOBase_readline_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 337
    functionName: _io__IOBase_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_readline_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readline(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:361,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:367,1
    - Dst: _io__IOBase_readlines_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 375
    functionName: _io__IOBase_readlines
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io__IOBase_readlines_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:406,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:414,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:417,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:419,1
    - Dst: _io__RawIOBase_read_impl
      Src: /src/cpython/Modules/_io/clinic/iobase.c.h:425,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 429
    functionName: _io__RawIOBase_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - _PyNumber_Index
    - _io__RawIOBase_read_impl
    - Py_DECREF
    - 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: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: 3
    functionLinenumber: 443
    functionLinenumberEnd: 447
    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:31,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:32,1
    - Dst: _io__TextIOBase_detach_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:35,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: 36
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: _io__TextIOBase_detach
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _io__TextIOBase_detach_impl
    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:74,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:82,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:83,1
    - Dst: _io__TextIOBase_read_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:87,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: 91
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 91
    functionName: _io__TextIOBase_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_UnpackKeywords
    - _io__TextIOBase_read_impl
    - PyErr_Occurred
    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:129,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:137,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:138,1
    - Dst: _io__TextIOBase_readline_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:142,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: 146
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 146
    functionName: _io__TextIOBase_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _io__TextIOBase_readline_impl
    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:184,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:189,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:190,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:194,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:198,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:199,1
    - Dst: _io__TextIOBase_write_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:202,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: 206
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 206
    functionName: _io__TextIOBase_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _io__TextIOBase_write_impl
    - strlen
    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:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    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:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 264
    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:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    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:325,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:327,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:327,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:327,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:345,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:346,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:351,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:351,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:357,1
    - Dst: _io_IncrementalNewlineDecoder___init___impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 370
    functionName: _io_IncrementalNewlineDecoder___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_IncrementalNewlineDecoder___init___impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:397,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:399,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:399,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:416,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:420,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:429,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:434,1
    - Dst: _io_IncrementalNewlineDecoder_decode_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:435,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 440
    functionName: _io_IncrementalNewlineDecoder_decode
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - _io_IncrementalNewlineDecoder_decode_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_decode(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:458,1
    - Dst: _io_IncrementalNewlineDecoder_getstate_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:459,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 463
    functionName: _io_IncrementalNewlineDecoder_getstate
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_IncrementalNewlineDecoder_getstate_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_getstate(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:482,1
    - Dst: _io_IncrementalNewlineDecoder_setstate_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:483,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 487
    functionName: _io_IncrementalNewlineDecoder_setstate
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_IncrementalNewlineDecoder_setstate_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_setstate(PyObject *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:505,1
    - Dst: _io_IncrementalNewlineDecoder_reset_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:506,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 510
    functionName: _io_IncrementalNewlineDecoder_reset
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_IncrementalNewlineDecoder_reset_impl
    - Py_END_CRITICAL_SECTION
    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:565,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:567,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:567,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:567,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:567,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:567,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:567,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:585,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:586,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:594,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:594,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:607,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:609,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:613,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:614,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:619,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:636,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:638,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:642,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:643,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:648,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:656,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:664,1
    - Dst: _io_TextIOWrapper___init___impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:669,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 90
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 673
    functionName: _io_TextIOWrapper___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _io_TextIOWrapper___init___impl
    - strlen
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:706,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:708,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:708,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:708,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:708,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:708,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:725,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:732,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:766,1
    - Dst: _io_TextIOWrapper_reconfigure_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:767,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:768,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: 772
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 772
    functionName: _io_TextIOWrapper_reconfigure
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_reconfigure_impl
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    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:790,1
    - Dst: _io_TextIOWrapper_detach_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:791,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 795
    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:814,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:815,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:819,1
    - Dst: _io_TextIOWrapper_write_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:820,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 808
    functionDepth: 4
    functionLinenumber: 808
    functionLinenumberEnd: 825
    functionName: _io_TextIOWrapper_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_write_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:844,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:850,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:854,1
    - Dst: _io_TextIOWrapper_read_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:855,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:856,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 838
    functionDepth: 6
    functionLinenumber: 838
    functionLinenumberEnd: 860
    functionName: _io_TextIOWrapper_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _io_TextIOWrapper_read_impl
    - Py_BEGIN_CRITICAL_SECTION
    - _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:879,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:887,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:890,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:892,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:898,1
    - Dst: _io_TextIOWrapper_readline_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:899,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:900,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 873
    functionDepth: 7
    functionLinenumber: 873
    functionLinenumberEnd: 904
    functionName: _io_TextIOWrapper_readline
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_TextIOWrapper_readline_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:942,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:949,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:950,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:954,1
    - Dst: _io_TextIOWrapper_seek_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:955,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 935
    functionDepth: 4
    functionLinenumber: 935
    functionLinenumberEnd: 960
    functionName: _io_TextIOWrapper_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - _io_TextIOWrapper_seek_impl
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    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:982,1
    - Dst: _io_TextIOWrapper_tell_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:983,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 977
    functionDepth: 4
    functionLinenumber: 977
    functionLinenumberEnd: 987
    functionName: _io_TextIOWrapper_tell
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_tell_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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:1006,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1014,1
    - Dst: _io_TextIOWrapper_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1015,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1020
    functionName: _io_TextIOWrapper_truncate
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_TextIOWrapper_truncate_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1038,1
    - Dst: _io_TextIOWrapper_fileno_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1039,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1043
    functionName: _io_TextIOWrapper_fileno
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1061,1
    - Dst: _io_TextIOWrapper_seekable_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1062,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1066
    functionName: _io_TextIOWrapper_seekable
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_seekable_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1084,1
    - Dst: _io_TextIOWrapper_readable_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1085,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1089
    functionName: _io_TextIOWrapper_readable
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_readable_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1107,1
    - Dst: _io_TextIOWrapper_writable_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1108,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1112
    functionName: _io_TextIOWrapper_writable
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_writable_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1130,1
    - Dst: _io_TextIOWrapper_isatty_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1131,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1135
    functionName: _io_TextIOWrapper_isatty
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_isatty_impl
    - Py_END_CRITICAL_SECTION
    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:1153,1
    - Dst: _io_TextIOWrapper_flush_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1154,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1148
    functionDepth: 4
    functionLinenumber: 1148
    functionLinenumberEnd: 1158
    functionName: _io_TextIOWrapper_flush
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_flush_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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:1176,1
    - Dst: _io_TextIOWrapper_close_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1177,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1181
    functionName: _io_TextIOWrapper_close
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_close_impl
    - Py_END_CRITICAL_SECTION
    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:1201,1
    - Dst: _io_TextIOWrapper_name_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1202,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1206
    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:1226,1
    - Dst: _io_TextIOWrapper_closed_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1227,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1231
    functionName: _io_TextIOWrapper_closed_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_closed_get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1251,1
    - Dst: _io_TextIOWrapper_newlines_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1252,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1256
    functionName: _io_TextIOWrapper_newlines_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_newlines_get_impl
    - Py_END_CRITICAL_SECTION
    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:1276,1
    - Dst: _io_TextIOWrapper_errors_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1277,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1281
    functionName: _io_TextIOWrapper_errors_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_TextIOWrapper_errors_get_impl
    - Py_END_CRITICAL_SECTION
    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:1301,1
    - Dst: _io_TextIOWrapper__CHUNK_SIZE_get_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1302,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1306
    functionName: _io_TextIOWrapper__CHUNK_SIZE_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1326,1
    - Dst: _io_TextIOWrapper__CHUNK_SIZE_set_impl
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1327,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/textio.c.h:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1331
    functionName: _io_TextIOWrapper__CHUNK_SIZE_set
    functionSourceFile: /src/cpython/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper__CHUNK_SIZE_set_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:152,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:171,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:181,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:191,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:192,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:196,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:200,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:201,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:210,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:221,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:223,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:227,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:228,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:233,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:244,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:246,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:250,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:251,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:256,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:267,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:269,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:273,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:274,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:279,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:287,1
    - Dst: _io_open_impl
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:297,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: 301
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 301
    functionName: _io_open
    functionSourceFile: /src/cpython/Modules/_io/clinic/_iomodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _io_open_impl
    - strlen
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:332,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:339,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:340,1
    - Dst: _io_text_encoding_impl
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 348
    functionName: _io_text_encoding
    functionSourceFile: /src/cpython/Modules/_io/clinic/_iomodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _io_text_encoding_impl
    - PyErr_Occurred
    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:378,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:380,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:399,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:404,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:405,1
    - Dst: _io_open_code_impl
      Src: /src/cpython/Modules/_io/clinic/_iomodule.c.h:409,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: 413
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 413
    functionName: _io_open_code
    functionSourceFile: /src/cpython/Modules/_io/clinic/_iomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _io_open_code_impl
    - _Py_ID
    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
    - _io_BytesIO_readable_impl
    - Py_END_CRITICAL_SECTION
    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
    - _io_BytesIO_writable_impl
    - Py_END_CRITICAL_SECTION
    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
    - _io_BytesIO_seekable_impl
    - Py_END_CRITICAL_SECTION
    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
    - _io_BytesIO_flush_impl
    - Py_END_CRITICAL_SECTION
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _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:
    - _io_BytesIO_isatty_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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
    - _io_BytesIO_tell_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _Py_convert_optional_to_ssize_t
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_read_impl
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _Py_convert_optional_to_ssize_t
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_read1_impl
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _Py_convert_optional_to_ssize_t
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_readline_impl
    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_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - _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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_readinto_impl
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyObject_GetBuffer
    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:
    - _PyArg_CheckPositional
    - _io_BytesIO_truncate_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _io_BytesIO_seek_impl
    - _PyNumber_Index
    - Py_DECREF
    - 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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _io_BytesIO_write_impl
    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:
    - _PyTuple_CAST
    - _io_BytesIO___init___impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - _io_StringIO_getvalue_impl
    - Py_END_CRITICAL_SECTION
    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
    - _io_StringIO_tell_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _Py_convert_optional_to_ssize_t
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_read_impl
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _Py_convert_optional_to_ssize_t
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_readline_impl
    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:
    - _PyArg_CheckPositional
    - _io_StringIO_truncate_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:202,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:207,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:210,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:212,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:220,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:221,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:225,1
    - Dst: _io_StringIO_seek_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:226,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:227,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 231
    functionName: _io_StringIO_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_StringIO_seek_impl
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:253,1
    - Dst: _io_StringIO_write_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:254,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: _io_StringIO_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_write_impl
    - Py_END_CRITICAL_SECTION
    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:282,1
    - Dst: _io_StringIO_close_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:283,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: _io_StringIO_close
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_close_impl
    - Py_END_CRITICAL_SECTION
    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:315,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:317,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:317,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:335,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:336,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:340,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:340,1
    - Dst: _io_StringIO___init___impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:356,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 360
    functionName: _io_StringIO___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 1
    functionsReached:
    - _io_StringIO___init___impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:379,1
    - Dst: _io_StringIO_readable_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:380,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 384
    functionName: _io_StringIO_readable
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _io_StringIO_readable_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:403,1
    - Dst: _io_StringIO_writable_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:404,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: _io_StringIO_writable
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_writable_impl
    - Py_END_CRITICAL_SECTION
    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:427,1
    - Dst: _io_StringIO_seekable_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:428,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 432
    functionName: _io_StringIO_seekable
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_seekable_impl
    - Py_END_CRITICAL_SECTION
    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:450,1
    - Dst: _io_StringIO___getstate___impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:451,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: _io_StringIO___getstate__
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO___getstate___impl
    - Py_END_CRITICAL_SECTION
    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:473,1
    - Dst: _io_StringIO___setstate___impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:474,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 478
    functionName: _io_StringIO___setstate__
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _io_StringIO___setstate___impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:498,1
    - Dst: _io_StringIO_closed_get_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:499,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 503
    functionName: _io_StringIO_closed_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_closed_get_impl
    - Py_END_CRITICAL_SECTION
    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:523,1
    - Dst: _io_StringIO_line_buffering_get_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:524,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 528
    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:548,1
    - Dst: _io_StringIO_newlines_get_impl
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:549,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_io/clinic/stringio.c.h:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 553
    functionName: _io_StringIO_newlines_get
    functionSourceFile: /src/cpython/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _io_StringIO_newlines_get_impl
    - Py_END_CRITICAL_SECTION
    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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _io_FileIO_close_impl
    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:75,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:77,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:77,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:77,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:77,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:95,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:96,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:102,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:102,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:112,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:113,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:117,1
    - Dst: strlen
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:121,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:122,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:130,1
    - Dst: _io_FileIO___init___impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:140,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 144
    functionName: _io_FileIO___init__
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO___init___impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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: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_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: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: 2
    functionLinenumber: 176
    functionLinenumberEnd: 180
    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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 198
    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:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 216
    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:250,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:255,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:256,1
    - Dst: _io_FileIO_readinto_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:259,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:264,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: 268
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 268
    functionName: _io_FileIO_readinto
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _io_FileIO_readinto_impl
    - PyBuffer_Release
    - _PyArg_BadArgument
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readinto(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/_io/clinic/fileio.c.h:293,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:294,1
    - Dst: _io_FileIO_readall_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:297,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: 298
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 298
    functionName: _io_FileIO_readall
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _io_FileIO_readall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readall(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:341,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:349,1
    - Dst: _io_FileIO_read_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:353,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: 357
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 357
    functionName: _io_FileIO_read
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _io_FileIO_read_impl
    - _Py_convert_optional_to_ssize_t
    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:395,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:400,1
    - Dst: _io_FileIO_write_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:403,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:408,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: 412
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 412
    functionName: _io_FileIO_write
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _io_FileIO_write_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    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:442,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:449,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:450,1
    - Dst: _io_FileIO_seek_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 458
    functionName: _io_FileIO_seek
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _io_FileIO_seek_impl
    - PyErr_Occurred
    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:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 478
    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:517,1
    - Dst: _io_FileIO_truncate_impl
      Src: /src/cpython/Modules/_io/clinic/fileio.c.h:527,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: 531
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 531
    functionName: _io_FileIO_truncate
    functionSourceFile: /src/cpython/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _io_FileIO_truncate_impl
    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:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: _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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _io__BufferedIOBase_readinto_impl
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyObject_GetBuffer
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyBuffer_Release
    - _io__BufferedIOBase_readinto1_impl
    - PyObject_GetBuffer
    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:
    - _io__BufferedIOBase_detach_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:
    - PyLong_AsInt
    - _PyArg_UnpackKeywords
    - _io__BufferedIOBase_read_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - _PyArg_UnpackKeywords
    - _io__BufferedIOBase_read1_impl
    - PyErr_Occurred
    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:
    - _PyArg_UnpackKeywords
    - _io__BufferedIOBase_write_impl
    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:
    - _io__Buffered___sizeof___impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_simple_flush_impl
    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:
    - _io__Buffered_closed_get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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
    - _io__Buffered_close_impl
    - Py_END_CRITICAL_SECTION
    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_END_CRITICAL_SECTION
    - Py_BEGIN_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
    - _io__Buffered_seekable_impl
    - Py_END_CRITICAL_SECTION
    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_END_CRITICAL_SECTION
    - Py_BEGIN_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
    - _io__Buffered_name_get_impl
    - Py_END_CRITICAL_SECTION
    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
    - _io__Buffered_isatty_impl
    - Py_END_CRITICAL_SECTION
    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
    - _io__Buffered_flush_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - _io__Buffered_peek_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _Py_convert_optional_to_ssize_t
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_read_impl
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_read1_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyBuffer_Release
    - _io__Buffered_readinto_impl
    - PyObject_GetBuffer
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _Py_convert_optional_to_ssize_t
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_readline_impl
    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_END_CRITICAL_SECTION
    - Py_BEGIN_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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _io__Buffered_seek_impl
    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_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - _io__Buffered_truncate_impl
    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:
    - _io_BufferedReader___init___impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - _io_BufferedWriter___init___impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_Release
    - _io_BufferedWriter_write_impl
    - PyObject_GetBuffer
    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_CheckPositional
    - PyTuple_GET_ITEM
    - Py_IS_TYPE
    - clinic_state
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_NoKeywords
    - _io_BufferedRWPair___init___impl
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - Py_TYPE
    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
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _io_BufferedRandom___init___impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _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:
    - _io__WindowsConsoleIO___init___impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - PyBuffer_Release
    - _PyArg_BadArgument
    - _io__WindowsConsoleIO_readinto_impl
    - PyObject_GetBuffer
    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:
    - _PyArg_UnpackKeywords
    - _io__WindowsConsoleIO_read_impl
    - _Py_convert_optional_to_ssize_t
    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:
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _io__WindowsConsoleIO_write_impl
    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:
    - PyArg_ParseTuple
    - LLVMFuzzerTestOneInput
    - PyErr_Format
    - PyErr_Occurred
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    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:
    - PyBytes_FromStringAndSize
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - PyFloat_FromString
    linkageType: ''
    returnType: int
    signature: int fuzz_builtin_float(const char* data, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:54,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:56,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:57,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:61,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:62,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:63,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:65,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:66,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: fuzz_builtin_int
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - PyLong_FromUnicodeObject
    - Py_DECREF
    - PyUnicode_FromStringAndSize
    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:73,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:74,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:75,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: fuzz_builtin_unicode
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - PyUnicode_FromStringAndSize
    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:87,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:91,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: init_struct_unpack
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_struct_unpack(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:102,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:110,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:116,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:120,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:123,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:124,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:132,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:133,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:137,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:138,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 145
    functionName: fuzz_struct_unpack
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyObject_CallFunctionObjArgs
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - memchr
    - Py_DECREF
    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:154,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: init_json_loads
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_json_loads(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:169,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:173,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:177,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:180,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:182,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:184,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:187,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 190
    functionName: fuzz_json_loads
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallOneArg
    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:200,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:204,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:209,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:213,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: init_sre_compile
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyLong_AsLong
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_sre_compile(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:236,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:242,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:247,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:251,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:252,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:256,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_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:261,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:264,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:269,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 272
    functionName: fuzz_sre_compile
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyObject_CallFunctionObjArgs
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - Py_DECREF
    - PyLong_FromUnsignedLong
    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:287,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:291,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:294,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 309
    functionName: init_sre_match
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - PyImport_ImportModule
    - PyErr_NoMemory
    - PyMem_RawMalloc
    linkageType: ''
    returnType: int
    signature: int init_sre_match(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:321,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:327,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:329,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 335
    functionName: fuzz_sre_match
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_XDECREF
    - PyObject_GetAttrString
    - Py_DECREF
    - 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:343,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 349
    functionName: init_csv_reader
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_csv_reader(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:357,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:361,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:364,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:371,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:375,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:380,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:386,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:387,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:391,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 393
    functionName: fuzz_csv_reader
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - memchr
    - PyObject_CallMethod
    - Py_DECREF
    - PyIter_Next
    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:399,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 405
    functionName: init_ast_literal_eval
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_ast_literal_eval(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:413,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:417,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:420,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:424,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:426,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: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 439
    functionName: fuzz_ast_literal_eval
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - memchr
    - Py_DECREF
    - PyObject_CallOneArg
    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
    - PyImport_ImportModule
    - PyObject_GetAttrString
    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:
    - PyErr_Print
    - abort
    - PyObject_CallFunction
    - PyObject_CallObject
    - PyErr_Clear
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyObject_CallMethod
    linkageType: ''
    returnType: int
    signature: int fuzz_elementtree_parsewhole(const char* data, size_t size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:560,1
    - Dst: Py_CompileStringExFlags
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:564,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:569,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:569,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:570,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:571,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:573,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:575,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 579
    functionName: fuzz_pycompile
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - abort
    - Py_CompileStringExFlags
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - memcpy
    - PyErr_Occurred
    - Py_DECREF
    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:583,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:584,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:587,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: _run_fuzz
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - fuzzer
    - PyErr_Print
    - PyErr_Occurred
    - abort
    linkageType: ''
    returnType: int
    signature: int _run_fuzz(const uint8_t *data, size_t size, int(*fuzzer)(const
      char* , size_t))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 595
    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:600,1
    - Dst: PyConfig_SetBytesString
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:606,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:607,1
    - Dst: Py_InitializeFromConfig
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:611,1
    - Dst: PyStatus_Exception
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:612,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:615,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:620,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 622
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_InitializeFromConfig
    - Py_ExitStatusException
    - PyStatus_Exception
    - PyConfig_InitPythonConfig
    - PyConfig_SetBytesString
    - PyConfig_Clear
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:632,1
    - Dst: Py_IsInitialized
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:632,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:637,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:640,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:643,1
    - Dst: init_struct_unpack
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:647,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:648,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:649,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:653,1
    - Dst: init_json_loads
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:657,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:658,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:659,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:664,1
    - Dst: init_sre_compile
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:668,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:669,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:670,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:676,1
    - Dst: init_sre_match
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:681,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:682,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:683,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:688,1
    - Dst: init_csv_reader
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:692,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:693,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:694,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:699,1
    - Dst: init_ast_literal_eval
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:703,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:704,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:705,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:710,1
    - Dst: init_elementtree_parsewhole
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:714,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:715,1
    - Dst: abort
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:716,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:721,1
    - Dst: _run_fuzz
      Src: /src/cpython/Modules/_xxtestfuzz/fuzzer.c:724,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (Py_IsInitialized())
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    constantsTouched: []
    func_position:
      end: 727
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 727
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/cpython/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 1
    functionsReached:
    - PyErr_Print
    - init_csv_reader
    - init_ast_literal_eval
    - _run_fuzz
    - init_elementtree_parsewhole
    - abort
    - init_struct_unpack
    - init_sre_match
    - Py_IsInitialized
    - assert
    - init_json_loads
    - init_sre_compile
    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:
    - Py_TYPE
    - PyErr_SetString
    - ZSTD_createDDict
    - assert
    - PyType_GetModuleState
    - PyMutex_IsLocked
    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: Py_DECREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:114,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_zstd/decompressor.c:118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/decompressor.c:119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/decompressor.c:120,1
    - Dst: ZSTD_DCtx_setParameter
      Src: /src/cpython/Modules/_zstd/decompressor.c:125,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/decompressor.c:128,1
    - Dst: set_parameter_error
      Src: /src/cpython/Modules/_zstd/decompressor.c:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - self
    - options
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 134
    functionName: _zstd_set_d_parameters
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - ZSTD_isError
    - PyLong_AsInt
    - PyErr_SetString
    - ZSTD_DCtx_setParameter
    - PyDict_Next
    - PyDict_Check
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - set_parameter_error
    - PyType_GetModuleState
    - Py_TYPE
    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:143,1
    - Dst: ZSTD_DCtx_refDDict
      Src: /src/cpython/Modules/_zstd/decompressor.c:148,1
    - Dst: ZSTD_DCtx_loadDictionary
      Src: /src/cpython/Modules/_zstd/decompressor.c:152,1
    - Dst: ZSTD_DCtx_refPrefix
      Src: /src/cpython/Modules/_zstd/decompressor.c:157,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_zstd/decompressor.c:161,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/decompressor.c:165,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/decompressor.c:166,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: 170
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 170
    functionName: _zstd_load_impl
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - _get_DDict
    - ZSTD_isError
    - Py_UNREACHABLE
    - ZSTD_DCtx_refPrefix
    - set_zstd_error
    - ZSTD_DCtx_loadDictionary
    - ZSTD_DCtx_refDDict
    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:176,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:176,1
    - Dst: _Py_parse_zstd_dict
      Src: /src/cpython/Modules/_zstd/decompressor.c:179,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/decompressor.c:184,1
    - Dst: _zstd_load_impl
      Src: /src/cpython/Modules/_zstd/decompressor.c:185,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/decompressor.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - dict
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 188
    functionName: _zstd_load_d_dict
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - _zstd_load_impl
    - _Py_parse_zstd_dict
    - PyMutex_Lock
    - PyType_GetModuleState
    - 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:224,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:227,1
    - Dst: ZSTD_decompressStream
      Src: /src/cpython/Modules/_zstd/decompressor.c:232,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/decompressor.c:237,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:237,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/decompressor.c:238,1
    - Dst: _OutputBuffer_ReachedMaxLength
      Src: /src/cpython/Modules/_zstd/decompressor.c:255,1
    - Dst: _OutputBuffer_Grow
      Src: /src/cpython/Modules/_zstd/decompressor.c:260,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:263,1
    - Dst: _OutputBuffer_Finish
      Src: /src/cpython/Modules/_zstd/decompressor.c:273,1
    - Dst: _OutputBuffer_OnError
      Src: /src/cpython/Modules/_zstd/decompressor.c:279,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: 226
        line_start: 226
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (out.pos == 0)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    constantsTouched: []
    func_position:
      end: 281
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 281
    functionName: decompress_lock_held
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - _OutputBuffer_ReachedMaxLength
    - _OutputBuffer_Finish
    - ZSTD_decompressStream
    - _OutputBuffer_OnError
    - set_zstd_error
    - _OutputBuffer_Grow
    - assert
    - _OutputBuffer_InitAndGrow
    - PyType_GetModuleState
    - Py_TYPE
    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:237,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/decompressor.c:237,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/decompressor.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: if
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - set_zstd_error
    - PyType_GetModuleState
    - Py_TYPE
    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:286,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/decompressor.c:286,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/decompressor.c:292,1
    - Dst: ZSTD_DCtx_reset
      Src: /src/cpython/Modules/_zstd/decompressor.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressor*
    assertStmts:
    - condition: (PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: decompressor_reset_session_lock_held
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - PyMutex_IsLocked
    - Py_CLEAR
    - ZSTD_DCtx_reset
    - 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:306,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/decompressor.c:306,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/decompressor.c:313,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:315,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:330,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:344,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:348,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:353,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zstd/decompressor.c:360,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zstd/decompressor.c:362,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zstd/decompressor.c:367,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/decompressor.c:372,1
    - Dst: memmove
      Src: /src/cpython/Modules/_zstd/decompressor.c:383,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zstd/decompressor.c:393,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/decompressor.c:400,1
    - Dst: decompress_lock_held
      Src: /src/cpython/Modules/_zstd/decompressor.c:403,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_zstd/decompressor.c:410,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/decompressor.c:434,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zstd/decompressor.c:441,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zstd/decompressor.c:443,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zstd/decompressor.c:450,1
    - Dst: decompressor_reset_session_lock_held
      Src: /src/cpython/Modules/_zstd/decompressor.c:464,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/decompressor.c:466,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: 329
        line_start: 329
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (self->input_buffer_size >= used_now)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (ret == NULL)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (self->input_buffer_size >= self->in_end)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (in.pos == 0)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    - condition: (self->in_end > self->in_begin)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Modules/_zstd/decompressor.c
    constantsTouched: []
    func_position:
      end: 468
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 468
    functionName: stream_decompress_lock_held
    functionSourceFile: /src/cpython/Modules/_zstd/decompressor.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - assert
    - memmove
    - PyErr_SetString
    - decompress_lock_held
    - Py_SIZE
    - decompressor_reset_session_lock_held
    - Py_CLEAR
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - PyMutex_IsLocked
    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:
    - PyObject_GC_New
    - Py_INCREF
    - PyObject_GC_Track
    - _zstd_load_d_dict
    - PyErr_SetString
    - _zstd_set_d_parameters
    - Py_XDECREF
    - ZSTD_createDCtx
    - PyType_GetModuleState
    - 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:
    - ZSTD_freeDCtx
    - Py_CLEAR
    - PyObject_GC_Del
    - ZstdDecompressor_CAST
    - assert
    - PyObject_GC_UnTrack
    - PyMem_Free
    - Py_DECREF
    - Py_TYPE
    - PyMutex_IsLocked
    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_GetConstant
    - PyMutex_Unlock
    - Py_INCREF
    - PyBytes_FromStringAndSize
    - PyMutex_Lock
    - 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:
    - Py_VISIT
    - ZstdDecompressor_CAST
    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:
    - Py_CLEAR
    - ZstdDecompressor_CAST
    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_Format
    - PyLong_AsUnsignedLongLong
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    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:
    - ZSTD_minCLevel
    - ZSTD_CCtx_setParameter
    - ZSTD_maxCLevel
    - set_zstd_error
    - PyErr_Format
    - ZSTD_isError
    - PyType_GetModuleState
    - Py_TYPE
    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:
    - Py_INCREF
    - ZSTD_isError
    - PyLong_AsInt
    - PyErr_SetString
    - PyDict_Next
    - ZSTD_CCtx_setParameter
    - _zstd_set_c_level
    - PyDict_Check
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - set_parameter_error
    - PyType_GetModuleState
    - Py_TYPE
    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:
    - PyCapsule_GetPointer
    - ZSTD_freeCDict
    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_TYPE
    - PyLong_FromLong
    - PyErr_SetString
    - PyCapsule_GetPointer
    - PyCapsule_New
    - PyDict_SetItem
    - PyDict_GetItemRef
    - Py_XDECREF
    - assert
    - ZSTD_createCDict
    - ZSTD_freeCDict
    - PyType_GetModuleState
    - PyMutex_IsLocked
    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
    - Py_UNREACHABLE
    - set_zstd_error
    - _get_CDict
    - ZSTD_CCtx_refPrefix
    - ZSTD_isError
    - ZSTD_CCtx_loadDictionary
    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:
    - PyMutex_Unlock
    - _zstd_load_impl
    - _Py_parse_zstd_dict
    - PyMutex_Lock
    - PyType_GetModuleState
    - 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:
    - PyObject_GC_New
    - _zstd_load_c_dict
    - ZSTD_minCLevel
    - Py_INCREF
    - ZSTD_createCCtx
    - PyLong_AsInt
    - PyErr_SetString
    - PyType_GetModuleState
    - PyLong_Check
    - _zstd_set_c_level
    - ZSTD_maxCLevel
    - _zstd_set_c_parameters
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - PyErr_Format
    - Py_XDECREF
    - PyObject_GC_Track
    - Py_TYPE
    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:
    - ZstdCompressor_CAST
    - Py_CLEAR
    - PyObject_GC_Del
    - ZSTD_freeCCtx
    - assert
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    - PyMutex_IsLocked
    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:
    - Py_TYPE
    - _OutputBuffer_InitWithSize
    - _OutputBuffer_Finish
    - PyErr_NoMemory
    - ZSTD_compressStream2
    - ZSTD_compressBound
    - _OutputBuffer_OnError
    - set_zstd_error
    - _OutputBuffer_Grow
    - assert
    - PyType_GetModuleState
    - PyMutex_IsLocked
    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:
    - set_zstd_error
    - PyType_GetModuleState
    - Py_TYPE
    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:
    - Py_TYPE
    - _OutputBuffer_Finish
    - ZSTD_compressStream2
    - _OutputBuffer_OnError
    - set_zstd_error
    - _OutputBuffer_Grow
    - mt_continue_should_break
    - assert
    - ZSTD_isError
    - _OutputBuffer_InitAndGrow
    - PyType_GetModuleState
    - PyMutex_IsLocked
    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:
    - set_zstd_error
    - PyType_GetModuleState
    - Py_TYPE
    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:612,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/compressor.c:620,1
    - Dst: compress_mt_continue_lock_held
      Src: /src/cpython/Modules/_zstd/compressor.c:624,1
    - Dst: compress_lock_held
      Src: /src/cpython/Modules/_zstd/compressor.c:627,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/cpython/Modules/_zstd/compressor.c:637,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:639,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - data
    - mode
    argTypes:
    - ZstdCompressor*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 642
    functionName: _zstd_ZstdCompressor_compress_impl
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - compress_lock_held
    - PyErr_SetString
    - compress_mt_continue_lock_held
    - PyMutex_Lock
    - ZSTD_CCtx_reset
    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:666,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/compressor.c:674,1
    - Dst: compress_lock_held
      Src: /src/cpython/Modules/_zstd/compressor.c:676,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/cpython/Modules/_zstd/compressor.c:685,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - mode
    argTypes:
    - ZstdCompressor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 690
    functionName: _zstd_ZstdCompressor_flush_impl
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - compress_lock_held
    - PyErr_SetString
    - PyMutex_Lock
    - ZSTD_CCtx_reset
    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:719,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_zstd/compressor.c:722,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/compressor.c:726,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:729,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/cpython/Modules/_zstd/compressor.c:734,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_zstd/compressor.c:735,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_zstd/compressor.c:736,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_zstd/compressor.c:737,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/compressor.c:737,1
    - Dst: set_zstd_error
      Src: /src/cpython/Modules/_zstd/compressor.c:738,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: 718
        line_start: 718
        source_file: /src/cpython/Modules/_zstd/compressor.c
    constantsTouched: []
    func_position:
      end: 743
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 743
    functionName: _zstd_ZstdCompressor_set_pledged_input_size_impl
    functionSourceFile: /src/cpython/Modules/_zstd/compressor.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - PyErr_SetString
    - set_zstd_error
    - assert
    - ZSTD_isError
    - PyMutex_Lock
    - ZSTD_CCtx_setPledgedSrcSize
    - PyType_GetModuleState
    - Py_TYPE
    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:767,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/compressor.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ob
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 770
    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:775,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/compressor.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 778
    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:
    - PyObject_TypeCheck
    - PyTuple_GET_ITEM
    - PyLong_AsInt
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - 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:
    - ZSTD_getErrorName
    - Py_UNREACHABLE
    - PyErr_Format
    - assert
    - 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:
    - Py_ARRAY_LENGTH
    - ZSTD_cParam_getBounds
    - ZSTD_dParam_getBounds
    - PyErr_Format
    - ZSTD_isError
    - PyOS_snprintf
    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:
    - PyMem_New
    - PyTuple_GET_ITEM
    - PyErr_NoMemory
    - PyLong_AsSize_t
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyBytes_GET_SIZE
    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:
    - get_zstd_state
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - calculate_samples_stats
    - Py_CLEAR
    - ZDICT_trainFromBuffer
    - set_zstd_error
    - PyMem_Free
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    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:
    - set_zstd_error
    - get_zstd_state
    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:
    - get_zstd_state
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - calculate_samples_stats
    - Py_SIZE
    - ZDICT_finalizeDictionary
    - Py_CLEAR
    - set_zstd_error
    - PyMem_Free
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    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:
    - set_zstd_error
    - get_zstd_state
    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:
    - get_zstd_state
    - ZSTD_cParam_getBounds
    - Py_BuildValue
    - set_zstd_error
    - 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:
    - PyLong_FromSize_t
    - get_zstd_state
    - ZSTD_getErrorName
    - ZSTD_findFrameCompressedSize
    - PyErr_Format
    - 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:
    - get_zstd_state
    - PyErr_SetString
    - ZSTD_getDictID_fromFrame
    - Py_BuildValue
    - 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_XSETREF
    - Py_INCREF
    - get_zstd_state
    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_AddIntConstant
    - ZSTD_versionNumber
    - PyLong_FromSize_t
    - get_zstd_state
    - ADD_INT_MACRO
    - ZSTD_DStreamOutSize
    - PyErr_NewExceptionWithDoc
    - ADD_INT_CONST_TO_TYPE
    - ZSTD_defaultCLevel
    - PyModule_AddStringConstant
    - ADD_TYPE
    - PyType_Freeze
    - PyModule_Add
    - ZSTD_versionString
    - PyModule_AddType
    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:
    - Py_CLEAR
    - get_zstd_state
    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:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 770
    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:50,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_zstd/zstddict.c:56,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_zstd/zstddict.c:67,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_zstd/zstddict.c:72,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_zstd/zstddict.c:74,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_zstd/zstddict.c:77,1
    - Dst: ZSTD_getDictID_fromDict
      Src: /src/cpython/Modules/_zstd/zstddict.c:81,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_zstd/zstddict.c:85,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_zstd/zstddict.c:89,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_zstd/zstddict.c:94,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: 96
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 96
    functionName: _zstd_ZstdDict_new_impl
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyErr_NoMemory
    - ZSTD_getDictID_fromDict
    - PyErr_SetString
    - memcpy
    - Py_XDECREF
    - PyMem_Malloc
    - PyObject_GC_Track
    - PyDict_New
    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:101,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_zstd/zstddict.c:103,1
    - Dst: ZSTD_freeDDict
      Src: /src/cpython/Modules/_zstd/zstddict.c:107,1
    - Dst: assert
      Src: /src/cpython/Modules/_zstd/zstddict.c:110,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_zstd/zstddict.c:110,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_zstd/zstddict.c:113,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/zstddict.c:114,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_zstd/zstddict.c:116,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_zstd/zstddict.c:117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/zstddict.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyMutex_IsLocked(&self->lock))
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/cpython/Modules/_zstd/zstddict.c
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: ZstdDict_dealloc
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - ZstdDict_CAST
    - Py_CLEAR
    - ZSTD_freeDDict
    - PyTypeObject*::tp_free
    - PyMem_Free
    - assert
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void ZstdDict_dealloc(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZstdDict_CAST
      Src: /src/cpython/Modules/_zstd/zstddict.c:131,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_zstd/zstddict.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: ZstdDict_repr
    functionSourceFile: /src/cpython/Modules/_zstd/zstddict.c
    functionUses: 0
    functionsReached:
    - ZstdDict_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ZstdDict_repr(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_zstd/zstddict.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 153
    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:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    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:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    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:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    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:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    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:243,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_zstd/zstddict.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ob
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    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:251,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_zstd/zstddict.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 254
    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->writer == 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->writer == 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:
    - _PyArg_CheckPositional
    - PyBytes_Check
    - _zstd_train_dict_impl
    - _PyArg_BadArgument
    - PyTuple_Check
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - _zstd_finalize_dict_impl
    - PyBytes_Check
    - _PyArg_BadArgument
    - PyTuple_Check
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _zstd_get_param_bounds_impl
    - PyErr_Occurred
    - _Py_ID
    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:
    - _zstd_get_frame_size_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _Py_ID
    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:
    - _zstd_get_frame_info_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _Py_ID
    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
    - _zstd_set_parameter_types_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyArg_BadArgument
    - _Py_ID
    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:
    - _zstd_ZstdDecompressor_new_impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 118
    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:168,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:170,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:170,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:187,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:191,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:196,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:204,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:207,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:209,1
    - Dst: _zstd_ZstdDecompressor_decompress_impl
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:215,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_zstd/clinic/decompressor.c.h:220,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: 224
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 224
    functionName: _zstd_ZstdDecompressor_decompress
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/decompressor.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _zstd_ZstdDecompressor_decompress_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _zstd_ZstdCompressor_new_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _zstd_ZstdCompressor_compress_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _zstd_ZstdCompressor_flush_impl
    - _Py_ID
    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:287,1
    - Dst: _zstd_ZstdCompressor_set_pledged_input_size_impl
      Src: /src/cpython/Modules/_zstd/clinic/compressor.c.h:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: _zstd_ZstdCompressor_set_pledged_input_size
    functionSourceFile: /src/cpython/Modules/_zstd/clinic/compressor.c.h
    functionUses: 0
    functionsReached:
    - _zstd_ZstdCompressor_set_pledged_input_size_impl
    - zstd_contentsize_converter
    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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBuffer_Release
    - _zstd_ZstdDict_new_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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: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: _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:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 226
    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: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tstate
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: IS_PEP523_HOOKED
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/interpreter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PEP523_HOOKED(tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: stop_tracing_and_jit
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/interpreter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stop_tracing_and_jit(PyThreadState *tstate, _PyInterpreterFrame
      *frame)
  - 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 == 1)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m._bits == 0)
      pos:
        line_end: 40
        line_start: 40
        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 == 0)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m->_bits == 1 || m->_bits == 3)
      pos:
        line_end: 62
        line_start: 62
        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_Unlock
    - assert
    - PyMutex_Lock
    - _Py_atomic_store_int
    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: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:94,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:95,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:97,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:98,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    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: (v == 3)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.m._bits == 0)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 102
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 102
    functionName: test_lock_two_threads
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - pysleep
    - PyMutex_Unlock
    - assert
    - PyEvent_Wait
    - memset
    - PyThread_start_new_thread
    - PyMutex_Lock
    - _Py_atomic_load_uint8_relaxed
    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:124,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:126,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: counter_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - PyMutex_Lock
    - 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:136,1
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:139,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:143,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:147,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:150,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: 149
        line_start: 149
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: test_lock_counter
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyEvent_Wait
    - assert
    - memset
    - PyThread_start_new_thread
    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:163,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:165,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:168,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: slow_counter_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - PyMutex_Lock
    - PyMutex_Unlock
    - pysleep
    linkageType: ''
    returnType: void
    signature: void slow_counter_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:179,1
    - Dst: memset
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:182,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:186,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:190,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:193,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: 192
        line_start: 192
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 195
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 195
    functionName: test_lock_counter_slow
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyEvent_Wait
    - assert
    - memset
    - PyThread_start_new_thread
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lock_counter_slow(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: splitmix64
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t splitmix64(uint64_t *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:251,1
    - Dst: splitmix64
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:256,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:263,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:268,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 279
    functionName: thread_benchmark_locks
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - PyMutex_Unlock
    - _Py_atomic_load_int_relaxed
    - PyMutex_Lock
    - splitmix64
    linkageType: ''
    returnType: void
    signature: void thread_benchmark_locks(void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:323,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:325,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:329,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:331,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:334,1
    - Dst: PyTime_PerfCounter
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:340,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:348,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:352,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:353,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:357,1
    - Dst: PyTime_PerfCounter
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:360,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:366,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:370,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:374,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:377,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:381,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:382,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:383,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 9
    argNames:
    - module
    - num_threads
    - work_inside
    - work_outside
    - time_ms
    - num_acquisitions
    - total_iters
    - num_locks
    - random_locks
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    - int
    - int
    - int
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (end != start)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 385
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 385
    functionName: _testinternalcapi_benchmark_locks_impl
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyMem_Calloc
    - pysleep
    - PyErr_NoMemory
    - assert
    - PyTime_PerfCounter
    - PyEvent_Wait
    - Py_BuildValue
    - PyLong_FromSsize_t
    - PyList_New
    - PyMem_Free
    - PyThread_start_new_thread
    - Py_XDECREF
    - _Py_atomic_store_int
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testinternalcapi_benchmark_locks_impl(PyObject *module,\n
      \                                      Py_ssize_t num_threads,\n                                       int
      work_inside, int work_outside,\n                                       int time_ms,
      int num_acquisitions,\n                                       Py_ssize_t total_iters,\n
      \                                      Py_ssize_t num_locks,\n                                       int
      random_locks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _testinternalcapi_benchmark_locks_impl
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 398
    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:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (*counter == 5)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 411
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 411
    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:419,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:421,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:424,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (res == -1)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (counter == 5)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (res == 0)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 429
    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:446,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:447,1
    - Dst: _PyRWMutex_RUnlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:448,1
    - Dst: _PyRWMutex_RLock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:450,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:451,1
    - Dst: _PyRWMutex_RUnlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:452,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:454,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 457
    functionName: rdlock_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyRWMutex_RLock
    - _PyEvent_Notify
    - _Py_atomic_add_ssize
    - PyEvent_Wait
    - _PyRWMutex_RUnlock
    linkageType: ''
    returnType: void
    signature: void rdlock_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRWMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:464,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:465,1
    - Dst: _PyRWMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:466,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:468,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 471
    functionName: wrlock_thread
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - _Py_atomic_add_ssize
    - PyEvent_Wait
    - _PyRWMutex_Lock
    - _PyRWMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void wrlock_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:480,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 484
    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:491,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:492,1
    - Dst: _PyRWMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:494,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:495,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:498,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:499,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:502,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:503,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:506,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:507,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:508,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:511,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:512,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:513,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:516,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:517,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:518,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:521,1
    - Dst: wait_until
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:522,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:523,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (test_data.rw.bits == 10)
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 0)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 8)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 8)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 1)
      pos:
        line_end: 491
        line_start: 491
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 3)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (test_data.rw.bits == 0)
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 527
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 527
    functionName: test_lock_rwlock
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - assert
    - wait_until
    - PyEvent_Wait
    - PyThread_start_new_thread
    - _PyRWMutex_Lock
    - _PyRWMutex_Unlock
    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:533,1
    - Dst: _PyRecursiveMutex_IsLockedByCurrentThread
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:533,1
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:535,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:536,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:536,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:537,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:537,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:538,1
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:540,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:541,1
    - Dst: _PyRecursiveMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:542,1
    - Dst: _PyRecursiveMutex_Unlock
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:544,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:545,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:546,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:546,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_lock.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyRecursiveMutex_IsLockedByCurrentThread(&m))
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.thread == PyThread_get_thread_ident_ex())
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (PyMutex_IsLocked(&m.mutex))
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.level == 0)
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.level == 1)
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (!PyMutex_IsLocked(&m.mutex))
      pos:
        line_end: 545
        line_start: 545
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.level == 0)
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    - condition: (m.thread == 0)
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/cpython/Modules/_testinternalcapi/test_lock.c
    constantsTouched: []
    func_position:
      end: 550
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 550
    functionName: test_lock_recursive
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_lock.c
    functionUses: 0
    functionsReached:
    - _PyRecursiveMutex_Lock
    - _PyRecursiveMutex_Unlock
    - PyThread_get_thread_ident_ex
    - assert
    - _PyRecursiveMutex_IsLockedByCurrentThread
    - PyMutex_IsLocked
    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:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 572
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: inst
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/testbytecodes.c
    functionUses: 8
    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: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: macro
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/testbytecodes.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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: super
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/testbytecodes.c
    functionUses: 0
    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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: family
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/testbytecodes.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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: pseudo
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/testbytecodes.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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: label
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/testbytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: label(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/testbytecodes.c:150,1
    - Dst: ERROR_IF
      Src: /src/cpython/Modules/_testinternalcapi/testbytecodes.c:151,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/testbytecodes.c:158,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/testbytecodes.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    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: []
    constantsTouched: []
    func_position:
      end: 175
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 175
    functionName: dummy_func
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/testbytecodes.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FromPyObjectBorrow
    - ERROR_IF
    - check_periodics
    - GETITEM
    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: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_targets.h:771,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_targets.h:773,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Modules/_testinternalcapi/test_targets.h:774,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_targets.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 777
    functionName: Py_PRESERVE_NONE_CC::_TAIL_CALL_UNKNOWN_OPCODE
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_targets.h
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PyUnstable_InterpreterFrame_GetLine
    - _PyFrame_GetCode
    - JUMP_TO_LABEL
    linkageType: ''
    returnType: PyObject
    signature: PyObject *Py_PRESERVE_NONE_CC _TAIL_CALL_UNKNOWN_OPCODE(TAIL_CALL_PARAMS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/tuple.c:10,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_testinternalcapi/tuple.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 15
    functionName: tuple_from_pair
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _PyTuple_FromPair
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_from_pair(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testinternalcapi/tuple.c:21,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_testinternalcapi/tuple.c:25,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/tuple.c:25,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/tuple.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: tuple_from_pair_steal
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_NewRef
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_from_pair_steal(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testinternalcapi/tuple.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: _PyTestInternalCapi_Init_Tuple
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/tuple.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestInternalCapi_Init_Tuple(PyObject *m)
  - 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:
    - PyArg_ParseTuple
    - _PySet_Update
    - RETURN_INT
    - NULLABLE
    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_END_CRITICAL_SECTION
    - assert
    - Py_BEGIN_CRITICAL_SECTION
    - _PySet_NextEntryRef
    - Py_BuildValue
    - NULLABLE
    - PyArg_ParseTuple
    - Py_DECREF
    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:26,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:27,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:29,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:30,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:34,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:35,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:35,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:36,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:36,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:36,1
    - Dst: assert_gil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:37,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:37,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:38,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:41,1
    - Dst: PyMutex_IsLocked
      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: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:43,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:44,1
    - Dst: PyMutex_IsLocked
      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: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:46,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:47,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:47,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:48,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:48,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_BEGIN_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_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:54,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:55,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:55,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:57,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (d2 != NULL)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (d1 != NULL)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 60
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 60
    functionName: test_critical_sections
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - assert_nogil
    - _PyCriticalSection_IsActive
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - PyThreadState_GET
    - PyDict_New
    - assert
    - Py_DECREF
    - Py_END_CRITICAL_SECTION2
    - assert_gil
    - PyMutex_IsLocked
    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:65,1
    - Dst: lock_unlock_object
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:67,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - recurse_depth
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: lock_unlock_object
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - lock_unlock_object
    - Py_END_CRITICAL_SECTION
    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:75,1
    - Dst: lock_unlock_two_objects
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:77,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - recurse_depth
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: lock_unlock_two_objects
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 1
    functionsReached:
    - lock_unlock_two_objects
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    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:88,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:89,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:90,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:91,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: Py_BEGIN_CRITICAL_SECTION
      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: lock_unlock_object
      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_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:99,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:100,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:100,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:103,1
    - Dst: lock_unlock_two_objects
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:104,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:105,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:105,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:106,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:106,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:107,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (a != NULL)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 112
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 112
    functionName: test_critical_sections_nest
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - assert_nogil
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - lock_unlock_object
    - lock_unlock_two_objects
    - PyDict_New
    - assert
    - Py_DECREF
    - Py_END_CRITICAL_SECTION2
    - PyMutex_IsLocked
    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:119,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:120,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:122,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:123,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:123,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:127,1
    - Dst: assert_nogil
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:131,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:131,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: test_critical_sections_suspend
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - assert_nogil
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyDict_New
    - assert
    - Py_DECREF
    - PyMutex_IsLocked
    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:152,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:155,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:156,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:158,1
    - Dst: lock_unlock_object
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:159,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:160,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:162,1
    - Dst: lock_unlock_object
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:163,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:164,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:166,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:172,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:173,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: thread_critical_sections
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - PyGILState_Ensure
    - Py_BEGIN_CRITICAL_SECTION
    - lock_unlock_object
    - _Py_atomic_add_ssize
    - PyGILState_Release
    - Py_END_CRITICAL_SECTION2
    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:184,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:185,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:186,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:189,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:190,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:191,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:194,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:200,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: 189
        line_start: 189
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (test_data.obj1 != NULL)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (test_data.obj3 != NULL)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 202
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 202
    functionName: test_critical_sections_threads
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - PyThread_start_new_thread
    - PyEvent_Wait
    - assert
    - Py_DECREF
    - PyDict_New
    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:208,1
    - Dst: usleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 212
    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:227,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:229,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:231,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:235,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:239,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:242,1
    - Dst: PyGC_Collect
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:243,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:244,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:247,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:248,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:249,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:250,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:254,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:255,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:256,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:257,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:260,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:261,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 265
    functionName: thread_gc
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - pysleep
    - Py_END_CRITICAL_SECTION
    - PyGILState_Ensure
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_atomic_add_ssize
    - PyEvent_Wait
    - PyGC_Collect
    - PyGILState_Release
    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:273,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:277,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:280,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:283,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: 276
        line_start: 276
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 285
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 285
    functionName: test_critical_sections_gc
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - PyThread_start_new_thread
    - PyEvent_Wait
    - assert
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_sections_gc(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:294,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:295,1
    - Dst: PyCriticalSection_Begin
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:299,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:300,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:300,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:301,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:301,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:301,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:302,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:302,1
    - Dst: PyCriticalSection_Begin
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:305,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:306,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:306,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:307,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:307,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:307,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:308,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:308,1
    - Dst: PyCriticalSection_End
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:310,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:311,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:311,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:312,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:312,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:312,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:313,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:313,1
    - Dst: PyCriticalSection_End
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:315,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:316,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyThreadState_GET()->critical_section == (uintptr_t)&cs1)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (!PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyCriticalSection_IsActive(PyThreadState_GET()->critical_section))
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyThreadState_GET()->critical_section == (uintptr_t)&cs1)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyCriticalSection_IsActive(PyThreadState_GET()->critical_section))
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyCriticalSection_IsActive(PyThreadState_GET()->critical_section))
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (a != NULL)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyThreadState_GET()->critical_section == (uintptr_t)&cs1)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 320
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 320
    functionName: test_critical_section1_reacquisition
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - PyCriticalSection_Begin
    - _PyCriticalSection_IsActive
    - PyThreadState_GET
    - PyCriticalSection_End
    - PyDict_New
    - _PyThreadState_GET
    - assert
    - Py_DECREF
    - PyMutex_IsLocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_section1_reacquisition(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:325,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:326,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:327,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:328,1
    - Dst: PyCriticalSection2_Begin
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:332,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:333,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:333,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:334,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:334,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:335,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:335,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:335,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:336,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:336,1
    - Dst: PyCriticalSection_Begin
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:344,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:345,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:345,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:346,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:346,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:347,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:347,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:347,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:348,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:348,1
    - Dst: PyCriticalSection_End
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:351,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:352,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:352,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:353,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:353,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:354,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:354,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:354,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:355,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:355,1
    - Dst: PyCriticalSection_Begin
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:360,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:361,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:361,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:362,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:362,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:363,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:363,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:363,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:364,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:364,1
    - Dst: PyCriticalSection_End
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:367,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:368,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:368,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:369,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:369,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:370,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:370,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:370,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:371,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:371,1
    - Dst: PyCriticalSection2_End
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:375,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:376,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:376,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:377,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&b->ob_mutex))
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyCriticalSection_IsActive(PyThreadState_GET()->critical_section))
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: "((_PyThreadState_GET()->critical_section &\n                  ~_Py_CRITICAL_SECTION_MASK)
        == (uintptr_t)&cs)"
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&b->ob_mutex))
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: "((_PyThreadState_GET()->critical_section &\n                  ~_Py_CRITICAL_SECTION_MASK)
        == (uintptr_t)&cs)"
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&b->ob_mutex))
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: "((_PyThreadState_GET()->critical_section &\n                  ~_Py_CRITICAL_SECTION_MASK)
        == (uintptr_t)&cs)"
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyCriticalSection_IsActive(PyThreadState_GET()->critical_section))
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyCriticalSection_IsActive(PyThreadState_GET()->critical_section))
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (!PyMutex_IsLocked(&b->ob_mutex))
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (a != NULL)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyCriticalSection_IsActive(PyThreadState_GET()->critical_section))
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: "((_PyThreadState_GET()->critical_section &\n                  ~_Py_CRITICAL_SECTION_MASK)
        == (uintptr_t)&cs)"
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&b->ob_mutex))
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (_PyCriticalSection_IsActive(PyThreadState_GET()->critical_section))
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&b->ob_mutex))
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: "((_PyThreadState_GET()->critical_section &\n                  ~_Py_CRITICAL_SECTION_MASK)
        == (uintptr_t)&cs)"
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    - condition: (!PyMutex_IsLocked(&a->ob_mutex))
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    constantsTouched: []
    func_position:
      end: 382
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 382
    functionName: test_critical_section2_reacquisition
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - _PyCriticalSection_IsActive
    - PyCriticalSection_Begin
    - PyCriticalSection2_Begin
    - PyCriticalSection2_End
    - PyThreadState_GET
    - PyCriticalSection_End
    - PyDict_New
    - _PyThreadState_GET
    - assert
    - Py_DECREF
    - PyMutex_IsLocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_section2_reacquisition(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:401,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:403,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:404,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:409,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:410,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:411,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 414
    functionName: thread_stw
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - _PyEvent_Notify
    - pysleep
    - Py_END_CRITICAL_SECTION
    - PyGILState_Ensure
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_atomic_add_ssize
    - PyGILState_Release
    linkageType: ''
    returnType: void
    signature: void thread_stw(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:429,1
    - Dst: PyThread_start_joinable_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:439,1
    - Dst: PyEvent_Wait
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:444,1
    - Dst: pysleep
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:445,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:449,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:450,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:452,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:453,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:455,1
    - Dst: PyThread_join_thread
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:458,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 463
    functionName: test_critical_sections_stw
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c
    functionUses: 0
    functionsReached:
    - pysleep
    - _PyEval_StartTheWorld
    - Py_END_CRITICAL_SECTION
    - PyInterpreterState_Get
    - Py_BEGIN_CRITICAL_SECTION
    - PyEvent_Wait
    - _PyEval_StopTheWorld
    - PyThread_start_joinable_thread
    - Py_DECREF
    - PyThread_join_thread
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_sections_stw(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testinternalcapi/test_critical_sections.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 490
    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: PyLong_FromInt64
      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:
    - PyArg_ParseTuple
    - _PyTime_FromSeconds
    - PyLong_FromInt64
    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: PyLong_FromInt64
      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:
    - PyArg_ParseTuple
    - _PyTime_FromSecondsObject
    - PyLong_FromInt64
    - check_time_rounding
    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: PyLong_AsInt64
      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:
    - check_time_rounding
    - PyLong_FromLongLong
    - Py_BuildValue
    - PyLong_AsInt64
    - _PyTime_AsTimeval
    - PyArg_ParseTuple
    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: PyLong_AsInt64
      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:
    - check_time_rounding
    - PyLong_FromLongLong
    - _PyTime_AsTimeval_clamp
    - Py_BuildValue
    - PyLong_AsInt64
    - PyArg_ParseTuple
    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: PyLong_AsInt64
      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:
    - _PyLong_FromTime_t
    - PyLong_AsInt64
    - Py_BuildValue
    - PyArg_ParseTuple
    - _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: PyLong_AsInt64
      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:
    - _PyLong_FromTime_t
    - PyLong_AsInt64
    - Py_BuildValue
    - PyArg_ParseTuple
    - _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: PyLong_AsInt64
      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: PyLong_FromInt64
      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:
    - check_time_rounding
    - PyLong_AsInt64
    - PyLong_FromInt64
    - PyArg_ParseTuple
    - _PyTime_AsMilliseconds
    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: PyLong_AsInt64
      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: PyLong_FromInt64
      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:
    - _PyTime_AsMicroseconds
    - check_time_rounding
    - PyLong_AsInt64
    - PyLong_FromInt64
    - PyArg_ParseTuple
    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:
    - PyArg_ParseTuple
    - _PyTime_ObjectToTime_t
    - check_time_rounding
    - _PyLong_FromTime_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_object_to_time_t(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/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:
    - _PyTime_ObjectToTimeval
    - check_time_rounding
    - _PyLong_FromTime_t
    - Py_BuildValue
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_object_to_timeval(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/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:
    - check_time_rounding
    - _PyLong_FromTime_t
    - Py_BuildValue
    - PyArg_ParseTuple
    - _PyTime_ObjectToTimespec
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:28,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:42,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:45,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:47,1
    - Dst: _Py_Specialize_BinaryOp
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:48,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:49,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:50,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:52,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:53,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:55,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:56,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:61,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:62,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:63,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:64,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:66,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:68,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:70,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:79,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:80,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:81,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:87,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:88,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:89,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:90,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (NB_ADD <= oparg)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg <= NB_OPARG_LAST)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyEval_BinaryOps[oparg])
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 93
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 93
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_Specialize_BinaryOp
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - OPCODE_DEFERRED_INC
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:104,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:115,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:116,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:117,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:118,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:119,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:125,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:126,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:127,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:128,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:129,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:136,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:137,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:138,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:138,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:139,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:139,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:140,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:144,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:146,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:148,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:155,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:155,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:155,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:156,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:161,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:161,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:161,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:162,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:166,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 168
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 168
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyFloat_FromDouble
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_ADD_FLOAT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:179,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:190,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:191,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:192,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:193,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:194,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:200,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:201,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:202,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:203,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:204,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:211,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:212,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:213,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:213,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:214,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:214,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:215,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:215,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:216,1
    - Dst: _PyCompactLong_Add
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:217,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:218,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:219,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:220,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:221,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:229,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:229,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:229,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:230,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:235,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:235,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:235,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:236,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:240,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 242
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 242
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - _PyCompactLong_Add
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyLong_BothAreCompact
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_ADD_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:253,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:265,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:266,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:267,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:268,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:269,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:275,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:276,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:277,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:278,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:279,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:287,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:288,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:289,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:289,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:290,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:290,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:291,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:292,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:294,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:296,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:303,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:303,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:303,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:304,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:309,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:309,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:309,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:310,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:314,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(right_o))
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 316
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 316
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - PyUnicode_Concat
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_ADD_UNICODE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:327,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:340,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:341,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:342,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:344,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:345,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:346,1
    - Dst: _PyBinaryOpSpecializationDescr*::guard
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:348,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:349,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:349,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:350,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:352,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:353,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:354,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:360,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:361,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:362,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:363,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:365,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:366,1
    - Dst: _PyBinaryOpSpecializationDescr*::action
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:367,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:368,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:370,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:372,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:372,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:373,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:373,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:373,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:374,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:374,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:374,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:375,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:384,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:385,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:386,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:392,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:393,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:394,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:395,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (d != NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!d->result_unique || Py_REFCNT(res_o) == 1 || _Py_IsImmortal(res_o))
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!PyFloat_CheckExact(res_o) || Py_REFCNT(res_o) == 1)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (d->result_type == NULL || Py_TYPE(res_o) == d->result_type)
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 398
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 398
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - _PyBinaryOpSpecializationDescr*::action
    - read_obj
    - _PyBinaryOpSpecializationDescr*::guard
    - assert
    - Py_TYPE
    - PyFloat_CheckExact
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - Py_REFCNT
    - _Py_IsImmortal
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_EXTEND)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:409,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:419,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:420,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:421,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:422,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:423,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:429,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:430,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:431,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:432,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:433,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:441,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:442,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:442,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:443,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:443,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:443,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:446,1
    - Dst: CURRENT_OPERAND0_16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:449,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:451,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:452,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:452,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:453,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:454,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:455,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:456,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:458,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:459,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:459,1
    - Dst: PyStackRef_IsHeapSafe
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:459,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:460,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:461,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:462,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:464,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:465,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:466,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:467,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:468,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:471,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:473,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:477,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(right)))
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (next_instr->op.code == STORE_FAST)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_REFCNT(left_o) >= 2 || !PyStackRef_IsHeapSafe(left))
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 451
        line_start: 451
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 479
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 479
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - PyUnicode_Append
    - assert
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - CURRENT_OPERAND0_16
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsHeapSafe
    - Py_REFCNT
    - _Py_DECREF_SPECIALIZED
    - PyUnicode_CheckExact
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_INPLACE_ADD_UNICODE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:490,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:501,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:502,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:503,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:504,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:505,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:511,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:512,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:513,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:514,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:515,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:522,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:523,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:524,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:524,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:525,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:525,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:526,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:530,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:532,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:534,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:541,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:541,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:541,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:542,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:547,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:547,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:547,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:548,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:552,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 554
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 554
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyFloat_FromDouble
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_MULTIPLY_FLOAT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:565,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:576,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:577,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:578,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:579,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:580,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:586,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:587,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:588,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:589,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:590,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:597,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:598,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:599,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:599,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:600,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:600,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:601,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:601,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:602,1
    - Dst: _PyCompactLong_Multiply
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:603,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:604,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:605,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:606,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:607,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:615,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:615,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:615,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:616,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:621,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:621,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:621,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:622,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:626,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 628
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 628
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - _PyLong_CheckExactAndCompact
    - _PyCompactLong_Multiply
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyLong_BothAreCompact
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_MULTIPLY_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:639,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:651,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:652,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:653,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:654,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:655,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:657,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:658,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:659,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:660,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:668,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:669,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:670,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:670,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:671,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:672,1
    - Dst: _PyDict_Subscript
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:673,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:674,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:676,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:678,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:687,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:688,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:689,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:695,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:696,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:697,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:698,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_TYPE(dict)->tp_as_mapping->mp_subscript == _PyDict_Subscript)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 701
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 701
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - _PyDict_Subscript
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_DICT)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:712,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:721,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:722,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:723,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:730,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:730,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:731,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:732,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:733,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:734,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:737,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:739,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:740,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:741,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:743,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:743,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:744,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:746,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:747,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:748,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:750,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:751,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:752,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:753,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:754,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:755,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:757,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:762,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:763,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:767,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:771,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:771,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:772,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:774,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:775,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:776,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:777,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:780,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:781,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:782,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:783,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:785,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFunction_Check(getitem_o))
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 770
        line_start: 770
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 775
        line_start: 775
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 786
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 786
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - _PyFrame_PushUnchecked
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - PyType_HasFeature
    - LOAD_SP
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_GETITEM)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:797,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:809,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:810,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:811,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:812,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:813,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:819,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:820,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:821,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:822,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:823,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:831,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:832,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:833,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:833,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:834,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:834,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:835,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:837,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:840,1
    - Dst: _PyList_GetItemRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:841,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:842,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:844,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:845,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:846,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:848,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:850,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:851,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:852,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:853,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:855,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:856,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:857,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:859,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:866,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:866,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:866,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:867,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:874,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:875,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:876,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:877,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (res_o != NULL)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 821
        line_start: 821
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 880
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 880
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyList_GET_ITEM
    - assert
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_FromPyObjectNew
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyLong_CheckExact
    - _PyLong_CompactValue
    - _PyList_GetItemRef
    - PyStackRef_XCLOSE
    - _PyFrame_GetStackPointer
    - _PyLong_CheckExactAndCompact
    - PyList_CheckExact
    - PyList_GET_SIZE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_LIST_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:891,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:904,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:905,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:906,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:907,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:908,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:914,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:915,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:916,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:917,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:918,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:927,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:928,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:928,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:929,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:929,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:930,1
    - Dst: _PyList_SliceSubscript
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:931,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:932,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:933,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:935,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:937,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:946,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:947,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:948,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:954,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:955,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:956,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:957,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 928
        line_start: 928
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 906
        line_start: 906
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PySlice_Check(sub))
      pos:
        line_end: 927
        line_start: 927
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 960
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 960
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PySlice_Check
    - _PyList_SliceSubscript
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyList_CheckExact
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_LIST_SLICE)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:971,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:983,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:984,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:985,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:986,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:987,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:993,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:994,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:995,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:996,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:997,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:999,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1000,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1001,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1002,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1010,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1011,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1012,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1012,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1013,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1013,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1014,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1015,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1016,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1017,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1020,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1021,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1022,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1023,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1025,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1026,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1027,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1028,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1031,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1036,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1036,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1036,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1037,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1042,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1042,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1042,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1043,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1047,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 985
        line_start: 985
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1000
        line_start: 1000
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1015
        line_start: 1015
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1035
        line_start: 1035
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (c < 128)
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1041
        line_start: 1041
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 995
        line_start: 995
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 1049
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 1049
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - PyUnicode_1BYTE_DATA
    - JUMP_TO_PREDICTED
    - _PyLong_IsNonNegativeCompact
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - PyLong_CheckExact
    - PyUnicode_IS_COMPACT_ASCII
    - PyUnicode_GET_LENGTH
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_FromPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - _Py_SINGLETON
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_STR_INT)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1060,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1072,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1073,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1074,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1075,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1076,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1082,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1083,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1084,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1085,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1086,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1093,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1094,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1095,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1095,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1096,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1096,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1097,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1098,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1099,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1100,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1103,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1104,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1105,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1106,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1112,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1113,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1114,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1114,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1115,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1115,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1116,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1118,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1119,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1120,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1127,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1127,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1127,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1128,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1135,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1136,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1137,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1138,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 1095
        line_start: 1095
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (res_o != NULL)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1084
        line_start: 1084
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1094
        line_start: 1094
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1126
        line_start: 1126
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1074
        line_start: 1074
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1113
        line_start: 1113
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 1114
        line_start: 1114
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 1141
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1141
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyTuple_GET_ITEM
    - _PyLong_IsNonNegativeCompact
    - DISPATCH
    - assert
    - PyStackRef_CLOSE_SPECIALIZED
    - PyTuple_GET_SIZE
    - PyStackRef_FromPyObjectNew
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_CheckExact
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyLong_CheckExact
    - _PyFrame_GetStackPointer
    - _PyLong_CheckExactAndCompact
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_TUPLE_INT)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1152,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1164,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1165,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1166,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1167,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1168,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1174,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1175,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1176,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1177,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1178,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1186,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1187,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1188,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1188,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1189,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1189,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1190,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1191,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1192,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1193,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1196,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1197,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1198,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1199,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1201,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1202,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1202,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1203,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1204,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1205,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1207,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1208,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1211,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1216,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1216,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1216,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1217,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1222,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1222,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1222,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1223,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1227,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1176
        line_start: 1176
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1187
        line_start: 1187
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1191
        line_start: 1191
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1215
        line_start: 1215
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1203
        line_start: 1203
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1166
        line_start: 1166
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1197
        line_start: 1197
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1221
        line_start: 1221
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 1188
        line_start: 1188
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 1229
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1229
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - PyUnicode_READ_CHAR
    - _PyLong_IsNonNegativeCompact
    - _PyLong_CheckExactAndCompact
    - Py_ARRAY_LENGTH
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - PyLong_CheckExact
    - PyUnicode_GET_LENGTH
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_FromPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - _Py_SINGLETON
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_USTR_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1240,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1251,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1252,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1253,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1254,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1255,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1261,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1262,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1263,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1264,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1265,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1272,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1273,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1274,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1274,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1275,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1275,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1276,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1280,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1282,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1284,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1291,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1291,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1291,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1292,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1297,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1297,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1297,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1298,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1302,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1253
        line_start: 1253
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1296
        line_start: 1296
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1263
        line_start: 1263
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1290
        line_start: 1290
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 1304
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1304
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyFloat_FromDouble
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBTRACT_FLOAT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1315,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1326,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1327,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1328,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1329,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1330,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1336,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1337,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1338,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1339,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1340,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1347,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1348,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1349,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1349,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1350,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1350,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1351,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1351,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1352,1
    - Dst: _PyCompactLong_Subtract
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1353,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1354,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1355,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1356,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1357,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1365,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1365,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1365,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1366,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1371,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1371,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1371,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1372,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1376,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1370
        line_start: 1370
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 1348
        line_start: 1348
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1355
        line_start: 1355
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 1350
        line_start: 1350
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 1349
        line_start: 1349
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 1378
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1378
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - _PyCompactLong_Subtract
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyLong_BothAreCompact
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBTRACT_INT)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1387,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1395,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1403,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1404,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1405,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1407,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1408,1
    - Dst: _PyList_BinarySlice
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1409,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1410,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1412,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1413,1
    - Dst: _PyTuple_BinarySlice
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1414,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1415,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1417,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1418,1
    - Dst: _PyUnicode_BinarySlice
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1419,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1420,1
    - Dst: PySlice_New
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1423,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1428,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1430,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1431,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1434,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1438,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1442,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1446,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1447,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1449,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1451,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1453,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1457,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1459
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PySlice_New
    - OPCODE_DEFERRED_INC
    - _PyUnicode_BinarySlice
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - _PyList_BinarySlice
    - INSTRUCTION_STATS
    - PyObject_GetItem
    - JUMP_TO_LABEL
    - Py_DECREF
    - PyStackRef_CLOSE
    - PyUnicode_CheckExact
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyTuple_BinarySlice
    - PyList_CheckExact
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_SLICE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1468,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1476,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1477,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1481,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1484,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1486,1
    - Dst: _PyInterpolation_Build
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1487,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1488,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1491,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1492,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1493,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1494,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1500,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1501,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1502,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1503,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1505,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1506,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1507,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1508,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1510,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1512,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1515,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1517
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - _Py_STR
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - _PyInterpolation_Build
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_INTERPOLATION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1526,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1530,1
    - Dst: _PyList_FromStackRefStealOnSuccess
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1531,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1532,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1534,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1536,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1539,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1541
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - PyStackRef_FromPyObjectStealMortal
    - _PyFrame_GetStackPointer
    - _PyList_FromStackRefStealOnSuccess
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_LIST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1550,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1554,1
    - Dst: _Py_BuildMap_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1555,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1556,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1559,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1560,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1562,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1565,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1543
    functionDepth: 1
    functionLinenumber: 1543
    functionLinenumberEnd: 1567
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _Py_BuildMap_StackRefSteal
    - PyStackRef_FromPyObjectStealMortal
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_MAP)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1576,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1580,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1581,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1582,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1584,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1589,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1591,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1593,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1594,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1601,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1602,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1602,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1603,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1606,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1607,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1608,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1613,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1615,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1616,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1617,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1619,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1622,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1624
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - _PySet_AddTakeRef
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PySet_New
    - PyStackRef_FromPyObjectStealMortal
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_SET)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1633,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1637,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1638,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1639,1
    - Dst: PySlice_New
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1640,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1641,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1646,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1648,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1650,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1652,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1654,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1657,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1659
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PySlice_New
    - PyStackRef_FromPyObjectStealMortal
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_SLICE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1668,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1672,1
    - Dst: _Py_BuildString_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1673,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1674,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1677,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1678,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1680,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1683,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1685
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _Py_BuildString_StackRefSteal
    - _PyFrame_GetStackPointer
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_STRING)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1694,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1700,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1701,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1702,1
    - Dst: _PyTemplate_Build
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1703,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1704,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1706,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1707,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1708,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1709,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1711,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1712,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1713,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1714,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1716,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1721,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1723
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyTemplate_Build
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_TEMPLATE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1732,1
    - Dst: _PyTuple_FromStackRefStealOnSuccess
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1736,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1738,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1740,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1743,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1725
    functionDepth: 1
    functionLinenumber: 1725
    functionLinenumberEnd: 1745
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_FromPyObjectStealMortal
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyTuple_FromStackRefStealOnSuccess
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_TUPLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1754,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1755,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1756,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "Executing a cache.")
      pos:
        line_end: 1754
        line_start: 1754
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 1758
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1758
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - Py_FatalError
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CACHE)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1767,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1780,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1783,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1785,1
    - Dst: _Py_Specialize_Call
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1786,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1786,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1787,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1788,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1790,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1791,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1797,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1797,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1798,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1800,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1803,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1806,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1807,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1808,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1814,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1817,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1821,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1822,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1825,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1826,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1826,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1829,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1830,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1834,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1836,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1838,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1841,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1845,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1846,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1855,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1858,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1859,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1861,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1867,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1868,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1869,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1870,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1872,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1875,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1876
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - DISPATCH
    - PyStackRef_TYPE
    - OPCODE_DEFERRED_INC
    - Py_TYPE
    - DISPATCH_SAME_OPARG
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - _Py_Specialize_Call
    - read_u16
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_VectorCallInstrumentation_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1887,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1899,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1900,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1901,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1902,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1909,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1910,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1911,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1912,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1913,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1914,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1916,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1917,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1918,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1919,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1922,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1923,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1924,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1925,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1931,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1932,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1933,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1938,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1939,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1939,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1940,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1940,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1942,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1943,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1944,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1946,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1948,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1949,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1950,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1951,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1953,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1954,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1955,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1956,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1958,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1960,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1962,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1965,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1966,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1967,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1974,1
    - Dst: _PyFrame_PushTrampolineUnchecked
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1975,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1977,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1978,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1978,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1979,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1979,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1980,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1981,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1982,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1984,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1986,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1988,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1989,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1990,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1991,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:1995,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2000,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2000,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2001,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2002,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2003,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2004,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2007,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2008,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2009,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2010,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2012,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1900
        line_start: 1900
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (tp->tp_flags & Py_TPFLAGS_HEAPTYPE)
      pos:
        line_end: 1942
        line_start: 1942
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyFrame_GetBytecode(shim)[0].op.code == EXIT_INIT_CHECK)
      pos:
        line_end: 1977
        line_start: 1977
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1923
        line_start: 1923
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyType_Check(callable_o))
      pos:
        line_end: 1939
        line_start: 1939
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 1999
        line_start: 1999
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 1938
        line_start: 1938
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (tp->tp_new == PyBaseObject_Type.tp_new)
      pos:
        line_end: 1941
        line_start: 1941
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (tp->tp_alloc == PyType_GenericAlloc)
      pos:
        line_end: 1943
        line_start: 1943
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1949
        line_start: 1949
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyFrame_GetBytecode(shim)[1].op.code == RETURN_VALUE)
      pos:
        line_end: 1978
        line_start: 1978
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2002
        line_start: 2002
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1917
        line_start: 1917
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2013
      start: 1878
    functionDepth: 1
    functionLinenumber: 1878
    functionLinenumberEnd: 2013
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyType_Check
    - DISPATCH
    - _PyFrame_GetBytecode
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - _PyFrame_PushTrampolineUnchecked
    - PyStackRef_FromPyObjectSteal
    - read_u32
    - STAT_INC
    - PyStackRef_DUP
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyEval_FrameClearAndPop
    - LOAD_SP
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - PyType_GenericAlloc
    - _PyThreadState_HasStackSpace
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_ALLOC_AND_ENTER_INIT)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2024,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2034,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2035,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2036,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2037,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2044,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2045,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2046,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2047,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2049,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2049,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2050,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2051,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2052,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2058,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2058,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2059,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2060,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2061,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2063,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2066,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2067,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2068,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2073,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2074,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2075,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2076,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2077,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2078,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2082,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2083,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2084,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2089,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2090,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2090,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2093,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2094,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2095,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2096,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2101,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2104,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2105,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2106,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2107,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2113,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2114,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2115,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2121,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2122,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2123,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2129,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2142,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2142,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2143,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2145,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2146,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2147,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2148,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2151,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2152,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2153,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2154,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2045
        line_start: 2045
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2076
        line_start: 2076
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2113
        line_start: 2113
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 2057
        line_start: 2057
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFunction_Check(callable_o))
      pos:
        line_end: 2089
        line_start: 2089
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2035
        line_start: 2035
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2050
        line_start: 2050
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2105
        line_start: 2105
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2094
        line_start: 2094
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 2141
        line_start: 2141
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2082
        line_start: 2082
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2146
        line_start: 2146
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2157
      start: 2015
    functionDepth: 1
    functionLinenumber: 2015
    functionLinenumberEnd: 2157
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_Check
    - DISPATCH
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - read_u32
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - LOAD_SP
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BOUND_METHOD_EXACT_ARGS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2168,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2178,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2179,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2180,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2181,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2188,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2190,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2191,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2192,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2193,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2196,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2197,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2198,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2199,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2202,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2203,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2204,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2206,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2207,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2208,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2209,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2215,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2216,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2216,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2217,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2217,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2218,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2220,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2221,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2221,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2224,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2225,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2226,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2232,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2233,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2234,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2240,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2242,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2246,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2246,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2248,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2248,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2249,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2250,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2254,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2256,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2258,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2260,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2273,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2273,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2274,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2275,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2276,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2277,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2280,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2281,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2282,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2283,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2191
        line_start: 2191
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2202
        line_start: 2202
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 2215
        line_start: 2215
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyMethod_Type)
      pos:
        line_end: 2216
        line_start: 2216
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2232
        line_start: 2232
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2207
        line_start: 2207
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_FunctionCheck(callable))
      pos:
        line_end: 2220
        line_start: 2220
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 2245
        line_start: 2245
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2275
        line_start: 2275
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2179
        line_start: 2179
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 2272
        line_start: 2272
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2286
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2286
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - PyStackRef_FunctionCheck
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - read_u32
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BOUND_METHOD_GENERAL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2297,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2308,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2309,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2310,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2311,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2312,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2316,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2317,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2318,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2327,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2331,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2332,1
    - Dst: _Py_CallBuiltinClass_StackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2333,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2337,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2339,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2342,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2344,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2345,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2346,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2351,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2352,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2353,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2359,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2360,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2361,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2362,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2366,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2367,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2368,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2370,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2316
        line_start: 2316
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2310
        line_start: 2310
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2374
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2374
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyType_Check
    - DISPATCH
    - assert
    - _Py_CallBuiltinClass_StackRef
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_CLASS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2385,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2396,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2397,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2398,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2399,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2400,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2402,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2403,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2404,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2405,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2414,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2418,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2419,1
    - Dst: _Py_BuiltinCallFast_StackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2420,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2425,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2427,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2430,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2432,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2433,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2434,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2439,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2440,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2441,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2447,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2448,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2449,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2450,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2454,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2455,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2456,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2458,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2398
        line_start: 2398
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2403
        line_start: 2403
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2462
      start: 2376
    functionDepth: 1
    functionLinenumber: 2376
    functionLinenumberEnd: 2462
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyCFunction_GET_FLAGS
    - assert
    - _Py_BuiltinCallFast_StackRef
    - PyCFunction_CheckExact
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_FAST)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2473,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2484,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2485,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2486,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2487,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2488,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2490,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2491,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2492,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2493,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2502,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2506,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2507,1
    - Dst: _Py_BuiltinCallFastWithKeywords_StackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2508,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2509,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2511,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2514,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2516,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2517,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2518,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2523,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2524,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2525,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2531,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2532,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2533,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2534,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2538,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2539,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2540,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2542,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2491
        line_start: 2491
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2486
        line_start: 2486
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2546
      start: 2464
    functionDepth: 1
    functionLinenumber: 2464
    functionLinenumberEnd: 2546
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyCFunction_GET_FLAGS
    - assert
    - PyCFunction_CheckExact
    - _Py_BuiltinCallFastWithKeywords_StackRef
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_FAST_WITH_KEYWORDS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2557,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2572,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2573,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2574,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2575,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2576,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2578,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2579,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2580,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2581,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2584,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2588,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2589,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2590,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2595,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2596,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2597,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2598,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2604,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2605,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2608,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2609,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2611,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2612,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2612,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2612,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2613,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2614,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2615,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2615,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2617,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2621,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2629,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2630,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2631,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2632,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2638,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2639,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2640,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2641,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2645,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2646,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2647,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2649,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2574
        line_start: 2574
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 2614
        line_start: 2614
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2579
        line_start: 2579
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2596
        line_start: 2596
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2588
        line_start: 2588
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2653
      start: 2548
    functionDepth: 1
    functionLinenumber: 2548
    functionLinenumberEnd: 2653
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyCFunction_GET_FLAGS
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyCFunction_CheckExact
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - _Py_ReachedRecursionLimit
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyCFunction_GET_SELF
    - PyStackRef_IsNull
    - _PyCFunction_TrampolineCall
    - PyCFunction_GET_FUNCTION
    - _PyErr_Occurred
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - _Py_LeaveRecursiveCallTstate
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_O)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2664,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2677,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2678,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2679,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2680,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2681,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2688,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2689,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2690,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2691,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2691,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2692,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2694,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2696,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2697,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2698,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2700,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2703,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2705,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2706,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2707,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2716,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2717,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2719,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2719,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2720,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2721,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2721,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2723,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2724,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2725,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2727,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2728,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2729,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2730,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2732,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2733,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2734,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2735,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2737,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2738,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2739,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2740,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2742,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2744,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2750,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2751,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2752,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2753,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2755,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2758,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2718
        line_start: 2718
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2720
        line_start: 2720
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_FUNCTION_EX))
      pos:
        line_end: 2679
        line_start: 2679
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2759
      start: 2655
    functionDepth: 1
    functionLinenumber: 2655
    functionLinenumberEnd: 2759
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PySequence_Tuple
    - DISPATCH
    - PyObject_Call
    - assert
    - Py_TYPE
    - _Py_Check_ArgsIterable
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - PyStackRef_CLOSE
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_EX_NON_PY_GENERAL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2770,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2782,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2783,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2784,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2785,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2792,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2793,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2794,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2795,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2795,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2796,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2798,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2800,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2801,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2802,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2804,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2807,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2809,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2810,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2811,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2817,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2818,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2819,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2820,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2821,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2824,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2825,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2826,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2833,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2834,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2835,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2835,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2836,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2836,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2837,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2838,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2838,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2839,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2839,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2840,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2841,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2842,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2842,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2844,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2845,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2846,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2849,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2851,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2853,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2855,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2869,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2869,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2870,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2871,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2872,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2873,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2876,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2877,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2878,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2879,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2881,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_FUNCTION_EX))
      pos:
        line_end: 2819
        line_start: 2819
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_FUNCTION_EX))
      pos:
        line_end: 2783
        line_start: 2783
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_FUNCTION_EX))
      pos:
        line_end: 2824
        line_start: 2824
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(func) == &PyFunction_Type)
      pos:
        line_end: 2835
        line_start: 2835
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (((PyFunctionObject *)func)->vectorcall == _PyFunction_Vectorcall)
      pos:
        line_end: 2836
        line_start: 2836
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2838
        line_start: 2838
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2834
        line_start: 2834
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2871
        line_start: 2871
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 2868
        line_start: 2868
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 2882
      start: 2761
    functionDepth: 1
    functionLinenumber: 2761
    functionLinenumberEnd: 2882
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyStackRef_AsPyObjectSteal
    - PySequence_Tuple
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - _Py_Check_ArgsIterable
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - JUMP_TO_PREDICTED
    - _PyEvalFramePushAndInit_Ex
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_EX_PY)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2891,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2906,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2909,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2911,1
    - Dst: _Py_Specialize_CallFunctionEx
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2912,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2913,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2914,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2916,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2917,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2923,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2924,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2925,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2926,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2927,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2929,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2931,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2932,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2933,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2935,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2938,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2940,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2941,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2942,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2952,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2953,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2955,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2955,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2957,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2958,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2959,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2959,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2960,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2960,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2961,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2962,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2964,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2965,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2968,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2970,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2972,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2973,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2974,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2975,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2975,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2977,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2978,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2981,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2984,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2985,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2988,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2990,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2991,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2992,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2998,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:2999,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3001,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3002,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3002,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3003,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3003,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3004,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3004,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3005,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3006,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3007,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3007,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3009,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3010,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3011,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3014,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3016,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3018,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3020,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3022,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3024,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3025,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3025,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3026,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3027,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3027,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3029,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3030,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3031,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3034,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3035,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3036,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3037,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3039,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3040,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3041,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3042,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3044,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3045,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3046,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3047,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3049,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3051,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3057,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3058,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3059,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3060,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3062,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3065,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 129
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 3026
        line_start: 3026
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2958
        line_start: 2958
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ( 2u == 1 + INLINE_CACHE_ENTRIES_CALL_FUNCTION_EX)
      pos:
        line_end: 3019
        line_start: 3019
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 3003
        line_start: 3003
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2954
        line_start: 2954
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2959
        line_start: 2959
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 3001
        line_start: 3001
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 3024
        line_start: 3024
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3066
      start: 2884
    functionDepth: 1
    functionLinenumber: 2884
    functionLinenumberEnd: 3066
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyFunction_Check
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - PyObject_Call
    - PyMethod_Check
    - assert
    - OPCODE_DEFERRED_INC
    - PyTuple_GET_SIZE
    - Py_TYPE
    - DISPATCH_SAME_OPARG
    - _Py_call_instrumentation_2args
    - _Py_Check_ArgsIterable
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - read_u16
    - _PyEvalFramePushAndInit_Ex
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - _Py_Specialize_CallFunctionEx
    - PyDict_CheckExact
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyErr_Occurred
    - Py_CLEAR
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_call_instrumentation_exc2
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_FUNCTION_EX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3075,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3082,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3083,1
    - Dst: func
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3084,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3084,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3085,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3087,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3090,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3096,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3097,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3098,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= MAX_INTRINSIC_1)
      pos:
        line_end: 3081
        line_start: 3081
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3101
      start: 3068
    functionDepth: 1
    functionLinenumber: 3068
    functionLinenumberEnd: 3101
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - func
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_INTRINSIC_1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3110,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3121,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3122,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3123,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3124,1
    - Dst: func
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3125,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3126,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3128,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3130,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3139,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3140,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3141,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3147,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3148,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3149,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3150,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= MAX_INTRINSIC_2)
      pos:
        line_end: 3120
        line_start: 3120
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3153
      start: 3103
    functionDepth: 1
    functionLinenumber: 3103
    functionLinenumberEnd: 3153
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - func
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_INTRINSIC_2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3164,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3176,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3177,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3178,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3179,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3185,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3188,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3189,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3190,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3197,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3198,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3199,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3200,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3201,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3202,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3204,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3208,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3209,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3210,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3211,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3213,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3214,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3215,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3216,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3218,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3219,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3220,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3221,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3223,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3223,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3223,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3227,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3177
        line_start: 3177
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3188
        line_start: 3188
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ((!PyStackRef_IsNull(res)) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3222
        line_start: 3222
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3229
      start: 3155
    functionDepth: 1
    functionLinenumber: 3155
    functionLinenumberEnd: 3229
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    - PyObject_IsInstance
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_ISINSTANCE)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3238,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3252,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3255,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3257,1
    - Dst: _Py_Specialize_CallKw
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3258,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3258,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3259,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3260,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3262,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3263,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3269,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3269,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3270,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3272,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3275,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3278,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3279,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3280,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3287,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3288,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3291,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3295,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3296,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3297,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3300,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3301,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3301,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3304,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3305,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3309,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3311,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3312,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3313,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3314,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3316,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3318,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3320,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3324,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3325,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3334,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3337,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3338,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3340,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3344,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3345,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( 4u == 1 + INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 3317
        line_start: 3317
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3346
      start: 3231
    functionDepth: 1
    functionLinenumber: 3231
    functionLinenumberEnd: 3346
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - _Py_Specialize_CallKw
    - DISPATCH
    - assert
    - PyStackRef_TYPE
    - OPCODE_DEFERRED_INC
    - PyTuple_GET_SIZE
    - Py_TYPE
    - DISPATCH_SAME_OPARG
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - PyStackRef_FromPyObjectSteal
    - read_u16
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_VectorCallInstrumentation_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3357,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3368,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3369,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3370,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3371,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3378,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3379,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3380,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3381,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3382,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3383,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3386,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3387,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3388,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3389,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3392,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3393,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3394,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3396,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3397,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3398,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3399,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3405,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3405,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3407,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3408,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3408,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3409,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3410,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3411,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3411,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3414,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3415,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3416,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3423,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3426,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3430,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3431,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3432,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3432,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3433,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3434,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3434,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3435,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3436,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3440,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3442,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3443,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3444,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3445,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3447,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3449,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3451,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3464,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3464,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3465,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3466,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3467,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3468,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3471,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3472,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3473,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3474,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3476,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3397
        line_start: 3397
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_FunctionCheck(callable))
      pos:
        line_end: 3410
        line_start: 3410
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 3463
        line_start: 3463
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3369
        line_start: 3369
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyMethod_Type)
      pos:
        line_end: 3407
        line_start: 3407
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3381
        line_start: 3381
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3387
        line_start: 3387
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3392
        line_start: 3392
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 3404
        line_start: 3404
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 3431
        line_start: 3431
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 3466
        line_start: 3466
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3477
      start: 3348
    functionDepth: 1
    functionLinenumber: 3348
    functionLinenumberEnd: 3477
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyStackRef_FunctionCheck
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - read_u32
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW_BOUND_METHOD)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3488,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3501,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3502,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3503,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3504,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3505,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3507,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3508,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3509,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3510,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3519,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3523,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3527,1
    - Dst: _Py_VectorCall_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3528,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3533,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3536,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3537,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3539,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3545,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3546,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3547,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3548,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3550,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3508
        line_start: 3508
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3503
        line_start: 3503
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (opcode != INSTRUMENTED_CALL)
      pos:
        line_end: 3518
        line_start: 3518
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3554
      start: 3479
    functionDepth: 1
    functionLinenumber: 3479
    functionLinenumberEnd: 3554
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_Check
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_IsNull
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - check_periodics
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - _Py_VectorCall_StackRefSteal
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW_NON_PY)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3565,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3575,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3576,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3577,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3578,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3584,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3585,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3586,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3587,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3588,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3589,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3593,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3594,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3595,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3601,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3602,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3603,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3611,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3614,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3618,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3619,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3620,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3620,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3621,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3622,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3622,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3623,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3624,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3628,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3630,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3631,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3632,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3633,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3635,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3637,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3639,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3652,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3652,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3653,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3654,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3655,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3656,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3659,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3660,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3661,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3662,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3664,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3593
        line_start: 3593
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 3654
        line_start: 3654
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3587
        line_start: 3587
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3601
        line_start: 3601
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 3619
        line_start: 3619
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3576
        line_start: 3576
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 3651
        line_start: 3651
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3665
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3665
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - read_u32
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW_PY)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3676,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3690,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3691,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3692,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3693,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3699,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3702,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3703,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3704,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3710,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3711,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3712,1
    - Dst: PyObject_Length
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3713,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3714,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3716,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3718,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3719,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3719,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3721,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3725,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3733,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3734,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3735,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3736,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3742,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3743,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3744,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3745,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3718
        line_start: 3718
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3691
        line_start: 3691
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3702
        line_start: 3702
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3748
      start: 3667
    functionDepth: 1
    functionLinenumber: 3667
    functionLinenumberEnd: 3748
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - PyObject_Length
    - PyLong_FromSsize_t
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_LEN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3759,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3774,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3777,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3778,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3779,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3785,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3786,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3787,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3788,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3793,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3794,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3795,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3796,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3797,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3804,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3805,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3806,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3807,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3808,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3809,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3811,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3812,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3812,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3813,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3815,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3827,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3828,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3829,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3830,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3836,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3837,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3838,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3839,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3841,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3795
        line_start: 3795
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3807
        line_start: 3807
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3786
        line_start: 3786
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 3803
        line_start: 3803
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3777
        line_start: 3777
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3842
      start: 3750
    functionDepth: 1
    functionLinenumber: 3750
    functionLinenumberEnd: 3842
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyList_AppendTakeRef
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - UNLOCK_OBJECT
    - UPDATE_MISS_STATS
    - LOCK_OBJECT
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_LIST_APPEND)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3853,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3866,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3868,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3869,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3870,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3871,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3874,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3875,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3876,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3879,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3883,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3884,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3885,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3887,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3888,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3889,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3890,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3891,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3892,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3897,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3901,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3905,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3906,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3907,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3908,1
    - Dst: _PyCFunctionFast_CAST
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3909,1
    - Dst: _PyCallMethodDescriptorFast_StackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3910,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3917,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3919,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3922,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3924,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3925,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3926,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3930,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3931,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3932,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3938,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3939,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3940,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3941,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3945,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3946,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3947,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3949,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3952,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3869
        line_start: 3869
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3874
        line_start: 3874
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3883
        line_start: 3883
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3890
        line_start: 3890
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (self != NULL)
      pos:
        line_end: 3905
        line_start: 3905
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 3953
      start: 3844
    functionDepth: 1
    functionLinenumber: 3844
    functionLinenumberEnd: 3953
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - _PyCFunctionFast_CAST
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyCallMethodDescriptorFast_StackRef
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_FAST)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3964,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3977,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3979,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3980,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3981,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3982,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3985,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3986,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3987,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3991,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3996,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3997,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:3998,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4000,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4001,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4002,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4003,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4004,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4009,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4013,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4017,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4018,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4019,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4020,1
    - Dst: _PyCFunctionFastWithKeywords_CAST
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4021,1
    - Dst: _PyCallMethodDescriptorFastWithKeywords_StackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4022,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4029,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4031,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4034,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4036,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4037,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4038,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4042,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4043,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4044,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4050,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4051,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4052,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4053,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4057,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4058,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4059,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4061,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4064,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3996
        line_start: 3996
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4002
        line_start: 4002
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (self != NULL)
      pos:
        line_end: 4017
        line_start: 4017
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3985
        line_start: 3985
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3980
        line_start: 3980
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4065
      start: 3955
    functionDepth: 1
    functionLinenumber: 3955
    functionLinenumberEnd: 4065
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - check_periodics
    - _PyCFunctionFastWithKeywords_CAST
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - _PyCallMethodDescriptorFastWithKeywords_StackRef
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4076,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4092,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4094,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4095,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4096,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4097,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4100,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4101,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4102,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4105,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4109,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4110,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4111,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4113,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4114,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4115,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4116,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4117,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4118,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4123,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4124,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4125,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4126,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4131,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4133,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4133,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4134,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4138,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4139,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4141,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4142,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4143,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4144,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4145,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4145,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4147,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4151,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4159,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4160,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4161,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4162,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4168,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4169,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4170,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4171,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4175,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4176,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4177,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4179,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4109
        line_start: 4109
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4116
        line_start: 4116
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4095
        line_start: 4095
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4124
        line_start: 4124
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 4144
        line_start: 4144
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4100
        line_start: 4100
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 1 || !PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 4132
        line_start: 4132
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4183
      start: 4067
    functionDepth: 1
    functionLinenumber: 4067
    functionLinenumberEnd: 4183
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - _Py_ReachedRecursionLimit
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - _Py_LeaveRecursiveCallTstate
    - PyStackRef_IsNull
    - _PyCFunction_TrampolineCall
    - _PyErr_Occurred
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_NOARGS)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4194,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4211,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4213,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4214,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4215,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4216,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4219,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4220,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4221,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4224,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4228,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4229,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4230,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4232,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4233,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4234,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4235,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4236,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4237,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4242,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4243,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4244,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4245,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4250,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4253,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4256,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4258,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4259,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4260,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4261,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4262,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4263,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4264,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4264,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4266,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4271,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4280,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4281,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4282,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4283,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4289,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4290,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4291,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4292,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4298,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4299,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4300,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4301,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4305,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4306,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4307,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4309,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4312,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4243
        line_start: 4243
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4219
        line_start: 4219
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4228
        line_start: 4228
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4235
        line_start: 4235
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 4263
        line_start: 4263
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4214
        line_start: 4214
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4313
      start: 4185
    functionDepth: 1
    functionLinenumber: 4185
    functionLinenumberEnd: 4313
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - _Py_ReachedRecursionLimit
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - _Py_LeaveRecursiveCallTstate
    - PyStackRef_IsNull
    - _PyCFunction_TrampolineCall
    - _PyErr_Occurred
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_O)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4324,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4336,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4337,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4338,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4339,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4340,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4342,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4343,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4344,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4345,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4353,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4357,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4361,1
    - Dst: _Py_VectorCall_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4362,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4367,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4370,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4371,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4373,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4379,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4380,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4381,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4382,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4384,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4343
        line_start: 4343
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4338
        line_start: 4338
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (opcode != INSTRUMENTED_CALL)
      pos:
        line_end: 4352
        line_start: 4352
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4388
      start: 4315
    functionDepth: 1
    functionLinenumber: 4315
    functionLinenumberEnd: 4388
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_Check
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_IsNull
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - check_periodics
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - _Py_VectorCall_StackRefSteal
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_NON_PY_GENERAL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4399,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4408,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4409,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4410,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4411,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4417,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4418,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4419,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4420,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4421,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4422,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4426,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4427,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4428,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4434,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4435,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4435,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4438,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4439,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4440,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4441,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4446,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4449,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4450,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4451,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4452,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4458,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4459,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4460,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4466,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4467,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4468,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4474,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4487,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4487,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4488,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4490,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4491,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4492,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4493,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4496,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4497,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4498,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4499,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4409
        line_start: 4409
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4458
        line_start: 4458
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 4486
        line_start: 4486
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFunction_Check(callable_o))
      pos:
        line_end: 4434
        line_start: 4434
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4439
        line_start: 4439
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4420
        line_start: 4420
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4450
        line_start: 4450
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 4491
        line_start: 4491
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4502
      start: 4390
    functionDepth: 1
    functionLinenumber: 4390
    functionLinenumberEnd: 4502
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_Check
    - DISPATCH
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - read_u32
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - LOAD_SP
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_PY_EXACT_ARGS)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4513,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4522,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4523,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4524,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4525,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4531,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4532,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4533,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4534,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4535,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4536,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4540,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4541,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4542,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4548,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4549,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4550,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4557,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4559,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4563,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4563,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4564,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4565,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4565,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4566,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4567,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4571,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4573,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4575,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4577,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4590,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4590,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4591,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4592,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4593,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4594,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4597,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4598,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4599,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4600,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4523
        line_start: 4523
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4540
        line_start: 4540
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 4589
        line_start: 4589
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 4592
        line_start: 4592
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4534
        line_start: 4534
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4548
        line_start: 4548
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 4562
        line_start: 4562
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4603
      start: 4504
    functionDepth: 1
    functionLinenumber: 4504
    functionLinenumberEnd: 4603
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - read_u32
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_PY_GENERAL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4614,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4627,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4628,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4629,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4630,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4636,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4638,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4639,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4640,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4646,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4647,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4648,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4649,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4650,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4651,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4653,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4656,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4663,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4664,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4665,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4666,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4670,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4671,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4672,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4674,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4638
        line_start: 4638
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4628
        line_start: 4628
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 4646
        line_start: 4646
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4678
      start: 4605
    functionDepth: 1
    functionLinenumber: 4605
    functionLinenumberEnd: 4678
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyObject_Str
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - check_periodics
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_STR_1)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4689,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4702,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4703,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4704,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4705,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4711,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4713,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4714,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4715,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4721,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4722,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4723,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4724,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4725,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4726,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4728,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4731,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4738,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4739,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4740,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4741,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4745,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4746,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4747,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4749,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4713
        line_start: 4713
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4703
        line_start: 4703
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 4721
        line_start: 4721
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4753
      start: 4680
    functionDepth: 1
    functionLinenumber: 4680
    functionLinenumberEnd: 4753
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PySequence_Tuple
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - check_periodics
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_TUPLE_1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4764,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4777,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4778,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4779,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4780,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4786,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4788,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4789,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4790,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4796,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4797,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4798,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4800,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4800,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4807,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4808,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4809,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4810,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4788
        line_start: 4788
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4778
        line_start: 4778
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 4796
        line_start: 4796
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4813
      start: 4755
    functionDepth: 1
    functionLinenumber: 4755
    functionLinenumberEnd: 4813
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_TYPE_1)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4822,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4829,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4830,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4831,1
    - Dst: _PyEval_CheckExceptStarTypeValid
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4832,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4833,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4835,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4839,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4843,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4844,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4846,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4847,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4851,1
    - Dst: _PyEval_ExceptionGroupMatch
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4852,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4857,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4861,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4862,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4864,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4866,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4868,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4870,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4872,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4873,1
    - Dst: PyErr_SetHandledException
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4874,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4875,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4877,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4878,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4882,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((match_o == NULL) == (rest_o == NULL))
      pos:
        line_end: 4867
        line_start: 4867
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4884
      start: 4815
    functionDepth: 1
    functionLinenumber: 4815
    functionLinenumberEnd: 4884
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_CLOSE
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - Py_IsNone
    - _PyEval_CheckExceptStarTypeValid
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyEval_ExceptionGroupMatch
    - PyErr_SetHandledException
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CHECK_EG_MATCH)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4893,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4899,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4900,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4901,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4901,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4902,1
    - Dst: _PyEval_CheckExceptTypeValid
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4903,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4904,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4906,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4908,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4909,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4910,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4912,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4913,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4914,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4915,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4919,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyExceptionInstance_Check(left_o))
      pos:
        line_end: 4900
        line_start: 4900
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4921
      start: 4886
    functionDepth: 1
    functionLinenumber: 4886
    functionLinenumberEnd: 4921
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - _PyEval_CheckExceptTypeValid
    linkageType: ''
    returnType: void
    signature: void TARGET(CHECK_EXC_MATCH)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4932,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4944,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4946,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4948,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4948,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4949,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4950,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4951,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4953,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4954,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4958,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4962,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4966,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4970,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4971,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4973,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4978,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4979,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4979,1
    - Dst: monitor_reraise
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4980,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4981,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4987,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (throwflag)
      pos:
        line_end: 4945
        line_start: 4945
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (exc_value && PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 4947
        line_start: 4947
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 4989
      start: 4923
    functionDepth: 1
    functionLinenumber: 4923
    functionLinenumberEnd: 4989
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - PyStackRef_FromPyObjectNew
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - _PyErr_SetRaisedException
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void TARGET(CLEANUP_THROW)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:4998,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5009,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5012,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5014,1
    - Dst: _Py_Specialize_CompareOp
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5015,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5016,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5017,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5019,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5020,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5025,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5026,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5027,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5028,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5029,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5033,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5037,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5038,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5040,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5042,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5045,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5047,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5048,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5050,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5055,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5060,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5061,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((oparg >> 5) <= Py_GE)
      pos:
        line_end: 5026
        line_start: 5026
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5062
      start: 4991
    functionDepth: 1
    functionLinenumber: 4991
    functionLinenumberEnd: 5062
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - OPCODE_DEFERRED_INC
    - DISPATCH_SAME_OPARG
    - PyObject_IsTrue
    - PyObject_RichCompare
    - PyStackRef_FromPyObjectSteal
    - read_u16
    - INSTRUCTION_STATS
    - _Py_Specialize_CompareOp
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - Py_DECREF
    - PyStackRef_CLOSE
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5073,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5084,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5085,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5086,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5087,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5088,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5094,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5095,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5096,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5097,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5098,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5105,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5106,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5107,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5108,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5109,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5110,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5118,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5118,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5118,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5119,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5124,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5124,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5124,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5125,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5129,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5117
        line_start: 5117
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5096
        line_start: 5096
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5123
        line_start: 5123
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5086
        line_start: 5086
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5131
      start: 5064
    functionDepth: 1
    functionLinenumber: 5064
    functionLinenumberEnd: 5131
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - PyFloat_AS_DOUBLE
    - DISPATCH
    - INSTRUCTION_STATS
    - COMPARISON_BIT
    - PyFloat_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_FLOAT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5142,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5153,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5154,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5155,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5156,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5157,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5163,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5164,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5165,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5166,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5167,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5174,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5175,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5176,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5176,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5177,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5177,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5178,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5179,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5179,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5180,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5181,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5182,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5183,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5191,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5191,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5191,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5192,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5197,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5197,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5197,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5198,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5202,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5196
        line_start: 5196
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5165
        line_start: 5165
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: "(_PyLong_DigitCount((PyLongObject *)left_o) <= 1 &&\n                   _PyLong_DigitCount((PyLongObject
        *)right_o) <= 1)"
      pos:
        line_end: 5179
        line_start: 5178
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5155
        line_start: 5155
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyLong_IsCompact((PyLongObject *)left_o))
      pos:
        line_end: 5175
        line_start: 5175
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyLong_IsCompact((PyLongObject *)right_o))
      pos:
        line_end: 5176
        line_start: 5176
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5190
        line_start: 5190
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5204
      start: 5133
    functionDepth: 1
    functionLinenumber: 5133
    functionLinenumberEnd: 5204
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyLong_CompactValue
    - JUMP_TO_PREDICTED
    - _PyLong_IsCompact
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - COMPARISON_BIT
    - _PyLong_DigitCount
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_INT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5215,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5227,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5228,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5229,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5230,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5231,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5237,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5238,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5239,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5240,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5241,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5249,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5250,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5251,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5252,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5253,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5256,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5257,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5258,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5264,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5264,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5264,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5265,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5270,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5270,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5270,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5271,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5275,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5229
        line_start: 5229
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ((oparg >> 5) == Py_EQ || (oparg >> 5) == Py_NE)
      pos:
        line_end: 5252
        line_start: 5252
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (eq == 0 || eq == 1)
      pos:
        line_end: 5255
        line_start: 5255
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ((oparg & 0xf) == COMPARISON_NOT_EQUALS || (oparg & 0xf) == COMPARISON_EQUALS)
      pos:
        line_end: 5256
        line_start: 5256
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5263
        line_start: 5263
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5239
        line_start: 5239
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS)
      pos:
        line_end: 5257
        line_start: 5257
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5269
        line_start: 5269
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5277
      start: 5206
    functionDepth: 1
    functionLinenumber: 5206
    functionLinenumberEnd: 5277
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _PyUnicode_Equal
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_STR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5286,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5299,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5302,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5304,1
    - Dst: _Py_Specialize_ContainsOp
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5305,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5306,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5307,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5309,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5310,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5316,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5317,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5318,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5319,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5320,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5322,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5333,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5334,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5335,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5341,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5342,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5343,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5344,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5279
    functionDepth: 1
    functionLinenumber: 5279
    functionLinenumberEnd: 5347
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PySequence_Contains
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - PyStackRef_XCLOSE
    - _Py_Specialize_ContainsOp
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5358,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5370,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5371,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5372,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5373,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5374,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5382,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5383,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5384,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5384,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5385,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5386,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5387,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5388,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5390,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5401,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5402,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5403,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5409,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5410,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5411,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5412,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyAnyDict_CheckExact(right_o))
      pos:
        line_end: 5383
        line_start: 5383
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CONTAINS_OP))
      pos:
        line_end: 5372
        line_start: 5372
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5415
      start: 5349
    functionDepth: 1
    functionLinenumber: 5349
    functionLinenumberEnd: 5415
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyAnyDict_CheckExact
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - PyDict_Contains
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP_DICT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5426,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5438,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5439,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5440,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5441,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5442,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5450,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5451,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5452,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5452,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5453,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5454,1
    - Dst: _PySet_Contains
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5455,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5456,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5458,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5469,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5470,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5471,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5477,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5478,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5479,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5480,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CONTAINS_OP))
      pos:
        line_end: 5440
        line_start: 5440
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyAnySet_CheckExact(right_o))
      pos:
        line_end: 5451
        line_start: 5451
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5483
      start: 5417
    functionDepth: 1
    functionLinenumber: 5417
    functionLinenumberEnd: 5483
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyAnySet_CheckExact
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - _PySet_Contains
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP_SET)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5492,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5497,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5499,1
    - Dst: conv_fn
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5500,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5500,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5501,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5503,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5504,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5505,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5506,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5508,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5510,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5513,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg >= FVC_STR && oparg <= FVC_ASCII)
      pos:
        line_end: 5496
        line_start: 5496
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5515
      start: 5485
    functionDepth: 1
    functionLinenumber: 5485
    functionLinenumberEnd: 5515
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - conv_fn
    linkageType: ''
    returnType: void
    signature: void TARGET(CONVERT_VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5524,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5528,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5531,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5533
      start: 5517
    functionDepth: 1
    functionLinenumber: 5517
    functionLinenumberEnd: 5533
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - PyStackRef_DUP
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(COPY)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5542,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5543,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5544,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5544,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5545,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5547,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5550,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5551,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 5543
        line_start: 5543
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == co->co_nfreevars)
      pos:
        line_end: 5546
        line_start: 5546
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5554
      start: 5535
    functionDepth: 1
    functionLinenumber: 5535
    functionLinenumberEnd: 5554
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_FunctionCheck
    - PyStackRef_FromPyObjectNew
    - PyTuple_GET_ITEM
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_AsPyObjectBorrow
    linkageType: ''
    returnType: void
    signature: void TARGET(COPY_FREE_VARS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5563,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5566,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5567,1
    - Dst: PyObject_DelAttr
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5568,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5568,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5569,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5571,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5572,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5573,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5574,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5576,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5579
      start: 5556
    functionDepth: 1
    functionLinenumber: 5556
    functionLinenumberEnd: 5579
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyObject_DelAttr
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5588,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5589,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5589,1
    - Dst: PyCell_SwapTakeRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5590,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5592,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5593,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5593,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5594,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5595,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5598,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5599,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5601
      start: 5581
    functionDepth: 1
    functionLinenumber: 5581
    functionLinenumberEnd: 5601
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - _PyFrame_GetCode
    - DISPATCH
    - PyCell_SwapTakeRef
    - INSTRUCTION_STATS
    - _PyEval_FormatExcUnbound
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_DEREF)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5610,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5611,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5612,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5613,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5614,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5616,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5616,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5618,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5619,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5621,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5622,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5623,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5624,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5625,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5627
      start: 5603
    functionDepth: 1
    functionLinenumber: 5603
    functionLinenumberEnd: 5627
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - _PyEval_FormatExcCheckArg
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyTuple_GetItem
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_FAST)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5636,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5637,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5638,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5639,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5639,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5640,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5642,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5645,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5646,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5648,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5649,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5652
      start: 5629
    functionDepth: 1
    functionLinenumber: 5629
    functionLinenumberEnd: 5652
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_FormatExcCheckArg
    - GLOBALS
    - DISPATCH
    - PyDict_Pop
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_GLOBAL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5661,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5662,1
    - Dst: LOCALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5663,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5666,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5667,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5669,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5670,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5672,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5673,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5674,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5676,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5677,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5680,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5681,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5654
    functionDepth: 1
    functionLinenumber: 5654
    functionLinenumberEnd: 5684
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - LOCALS
    - _PyEval_FormatExcCheckArg
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - PyObject_DelItem
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5693,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5698,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5699,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5699,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5700,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5704,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5708,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5709,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5711,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5713,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5716
      start: 5686
    functionDepth: 1
    functionLinenumber: 5686
    functionLinenumberEnd: 5716
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyObject_DelItem
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_SUBSCR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5725,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5736,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5737,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5738,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5740,1
    - Dst: _PyDict_MergeUniq
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5741,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5742,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5744,1
    - Dst: _PyEval_FormatKwargsError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5745,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5746,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5747,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5748,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5756,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5757,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5758,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5759,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5762
      start: 5718
    functionDepth: 1
    functionLinenumber: 5718
    functionLinenumberEnd: 5762
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_FormatKwargsError
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyDict_MergeUniq
    - JUMP_TO_LABEL
    - Py_XDECREF
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(DICT_MERGE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5771,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5780,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5781,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5782,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5783,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5784,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5786,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5788,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5789,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5790,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5790,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5791,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5793,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5797,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5798,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5801,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5802,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5803,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5806,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5814,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5815,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5816,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5817,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5820
      start: 5764
    functionDepth: 1
    functionLinenumber: 5764
    functionLinenumberEnd: 5820
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyObject_HasAttrWithError
    - _PyErr_Format
    - PyDict_Update
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_ExceptionMatches
    - JUMP_TO_LABEL
    - _PyErr_ChainExceptions1
    - PyStackRef_XCLOSE
    - _PyErr_GetRaisedException
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void TARGET(DICT_UPDATE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5831,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5836,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5838,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5839,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5839,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5840,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5841,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5842,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5844,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5848,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5852,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5853,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5855,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5858,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5859,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5860,1
    - Dst: monitor_reraise
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5861,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5862,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 5838
        line_start: 5838
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5865
      start: 5822
    functionDepth: 1
    functionLinenumber: 5822
    functionLinenumberEnd: 5865
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - Py_INCREF
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - _PyErr_SetRaisedException
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(END_ASYNC_FOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5873,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5877,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5878,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5879,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5880,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5882
      start: 5867
    functionDepth: 1
    functionLinenumber: 5867
    functionLinenumberEnd: 5882
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(END_FOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5891,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5903,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5904,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5905,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5906,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5908
      start: 5884
    functionDepth: 1
    functionLinenumber: 5884
    functionLinenumberEnd: 5908
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(END_SEND)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5919,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5922,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5924,1
    - Dst: _PyJit_EnterExecutorShouldStopTracing
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5928,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5930,1
    - Dst: DISPATCH_GOTO_NON_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5934,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5936,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5938,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5938,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5939,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5940,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5941,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5942,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5943,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5948,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5950,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5952,1
    - Dst: TIER1_TO_TIER2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5954,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5956,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (executor->vm_data.index == INSTR_OFFSET() - 1)
      pos:
        line_end: 5937
        line_start: 5937
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 5939
        line_start: 5939
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (executor->vm_data.code == code)
      pos:
        line_end: 5938
        line_start: 5938
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (executor != tstate->interp->cold_executor)
      pos:
        line_end: 5951
        line_start: 5951
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 5940
        line_start: 5940
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5958
      start: 5910
    functionDepth: 1
    functionLinenumber: 5910
    functionLinenumberEnd: 5958
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - Py_FatalError
    - TIER1_TO_TIER2
    - _PyFrame_GetCode
    - assert
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _Py_atomic_load_uintptr_relaxed
    - INSTR_OFFSET
    - DISPATCH_GOTO
    - DISPATCH_GOTO_NON_TRACING
    - PAUSE_ADAPTIVE_COUNTER
    - IS_JIT_TRACING
    - _PyJit_EnterExecutorShouldStopTracing
    linkageType: ''
    returnType: void
    signature: void TARGET(ENTER_EXECUTOR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5967,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5970,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5971,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5972,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5974,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5974,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5975,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5976,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5979,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5981
      start: 5960
    functionDepth: 1
    functionLinenumber: 5960
    functionLinenumberEnd: 5981
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyErr_Format
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(EXIT_INIT_CHECK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5990,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5992,1
    - Dst: PRE_DISPATCH_GOTO
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5995,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:5996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg)
      pos:
        line_end: 5991
        line_start: 5991
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 5997
      start: 5983
    functionDepth: 1
    functionLinenumber: 5983
    functionLinenumberEnd: 5997
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH_GOTO
    - INSTRUCTION_STATS
    - PRE_DISPATCH_GOTO
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(EXTENDED_ARG)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6006,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6010,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6011,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6012,1
    - Dst: PyObject_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6013,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6014,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6016,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6017,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6018,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6019,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6021,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6023,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6031,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6033
      start: 5999
    functionDepth: 1
    functionLinenumber: 5999
    functionLinenumberEnd: 6033
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - PyObject_Format
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(FORMAT_SIMPLE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6042,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6048,1
    - Dst: PyObject_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6049,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6049,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6049,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6053,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6057,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6058,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6060,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6062,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6064,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6067,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6069
      start: 6035
    functionDepth: 1
    functionLinenumber: 6035
    functionLinenumberEnd: 6069
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - PyObject_Format
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(FORMAT_WITH_SPEC)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6078,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6089,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6092,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6094,1
    - Dst: _Py_Specialize_ForIter
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6095,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6096,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6097,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6099,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6100,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6105,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6106,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6107,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6108,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6109,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6110,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6112,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6114,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6121,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6123
      start: 6071
    functionDepth: 1
    functionLinenumber: 6071
    functionLinenumberEnd: 6123
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - PyStackRef_IsError
    - read_u16
    - DISPATCH
    - _PyForIter_VirtualIteratorNext
    - _Py_Specialize_ForIter
    - INSTRUCTION_STATS
    - PyStackRef_IsValid
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6134,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6142,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6143,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6144,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6145,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6151,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6152,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6153,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6154,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6155,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6157,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6158,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6159,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6160,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6162,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6164,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6169,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6174,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6174,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6175,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6176,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6177,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6178,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6181,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6182,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6183,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6184,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6143
        line_start: 6143
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6153
        line_start: 6153
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6158
        line_start: 6158
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 6173
        line_start: 6173
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 6176
        line_start: 6176
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 6187
      start: 6125
    functionDepth: 1
    functionLinenumber: 6125
    functionLinenumberEnd: 6187
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - gen_try_set_executing
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - _PyFrame_StackPush
    - LOAD_SP
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_GEN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6198,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6208,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6209,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6210,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6211,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6212,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6214,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6214,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6216,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6216,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6217,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6218,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6219,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6228,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6229,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6229,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6230,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6231,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6231,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6232,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6233,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6235,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6241,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6242,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6242,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6244,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6244,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6245,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6246,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6247,1
    - Dst: _PyList_GetItemRefNoLock
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6248,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6248,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6249,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6251,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6252,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6253,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6256,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6257,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6259,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6262,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6262,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6262,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6264,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6269,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6210
        line_start: 6210
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_IsTaggedInt(null_or_index))
      pos:
        line_end: 6213
        line_start: 6213
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6217
        line_start: 6217
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6251
        line_start: 6251
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyList_CheckExact(list_o))
      pos:
        line_end: 6241
        line_start: 6241
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: "(_Py_IsOwnedByCurrentThread(list_o) ||\n                  _PyObject_GC_IS_SHARED(list_o))"
      pos:
        line_end: 6244
        line_start: 6243
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(list_o) == &PyList_Type)
      pos:
        line_end: 6228
        line_start: 6228
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 6271
      start: 6189
    functionDepth: 1
    functionLinenumber: 6189
    functionLinenumberEnd: 6271
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyList_GET_ITEM
    - assert
    - _PyObject_GC_IS_SHARED
    - Py_TYPE
    - JUMPBY
    - PyStackRef_FromPyObjectNew
    - PyStackRef_IsTaggedInt
    - _PyList_GetItemRefNoLock
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _Py_IsOwnedByCurrentThread
    - PyStackRef_UntagInt
    - PyStackRef_TagInt
    - PyStackRef_IncrementTaggedIntNoOverflow
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyList_GET_SIZE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_LIST)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6282,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6291,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6292,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6293,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6294,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6297,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6298,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6299,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6300,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6306,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6307,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6307,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6309,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6309,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6311,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6313,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6314,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6319,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6320,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6320,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6322,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6322,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6324,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6328,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6330,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6332,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6336,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6292
        line_start: 6292
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6298
        line_start: 6298
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (r->len > 0)
      pos:
        line_end: 6323
        line_start: 6323
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 6319
        line_start: 6319
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyObject_IsUniquelyReferenced((PyObject *)r))
      pos:
        line_end: 6321
        line_start: 6321
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyObject_IsUniquelyReferenced((PyObject *)r))
      pos:
        line_end: 6308
        line_start: 6308
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 6306
        line_start: 6306
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 6338
      start: 6273
    functionDepth: 1
    functionLinenumber: 6273
    functionLinenumberEnd: 6338
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - PyLong_FromLong
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyObject_IsUniquelyReferenced
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_RANGE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6349,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6359,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6360,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6361,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6362,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6363,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6365,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6365,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6369,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6371,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6371,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6372,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6373,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6373,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6374,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6375,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6377,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6382,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6383,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6383,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6384,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6385,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6385,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6386,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6386,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6387,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6392,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((size_t)i < (size_t)PyTuple_GET_SIZE(tuple_o))
      pos:
        line_end: 6384
        line_start: 6384
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6361
        line_start: 6361
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_IsTaggedInt(null_or_index))
      pos:
        line_end: 6364
        line_start: 6364
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 6370
        line_start: 6370
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 6382
        line_start: 6382
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 6394
      start: 6340
    functionDepth: 1
    functionLinenumber: 6340
    functionLinenumberEnd: 6394
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - PyTuple_GET_ITEM
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_IsTaggedInt
    - PyStackRef_TagInt
    - JUMPBY
    - PyStackRef_IncrementTaggedIntNoOverflow
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - PyStackRef_UntagInt
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_TUPLE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6405,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6414,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6415,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6416,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6417,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6423,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6424,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6425,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6426,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6427,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6432,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6434,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6435,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6437,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6438,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6443,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6415
        line_start: 6415
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 6445
      start: 6396
    functionDepth: 1
    functionLinenumber: 6396
    functionLinenumberEnd: 6445
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - Py_TYPE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - JUMPBY
    - PyStackRef_TagInt
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    - PyStackRef_UntagInt
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_VIRTUAL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6454,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6459,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6461,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6466,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6467,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6471,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6473,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6474,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6475,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6476,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6477,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6479,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6481,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6483,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6484,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6485,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6486,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6488,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6490,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6491,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6492,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6493,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6497,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6498,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6499,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6501,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6504,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6505,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6506
      start: 6447
    functionDepth: 1
    functionLinenumber: 6447
    functionLinenumberEnd: 6506
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_AITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6515,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6519,1
    - Dst: _PyEval_GetANext
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6520,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6520,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6521,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6523,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6525,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6528,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6530
      start: 6508
    functionDepth: 1
    functionLinenumber: 6508
    functionLinenumberEnd: 6530
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyEval_GetANext
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ANEXT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6539,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6543,1
    - Dst: _PyEval_GetAwaitable
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6544,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6544,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6545,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6547,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6548,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6549,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6550,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6552,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6554,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6557,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6532
    functionDepth: 1
    functionLinenumber: 6532
    functionLinenumberEnd: 6559
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyEval_GetAwaitable
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_AWAITABLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6568,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6578,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6581,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6583,1
    - Dst: _Py_Specialize_GetIter
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6584,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6585,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6586,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6588,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6589,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6594,1
    - Dst: _PyEval_GetIter
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6595,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6596,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6597,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6598,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6605,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6607
      start: 6561
    functionDepth: 1
    functionLinenumber: 6561
    functionLinenumberEnd: 6607
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - _Py_Specialize_GetIter
    - _PyEval_GetIter
    - read_u16
    - PyStackRef_IsError
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6618,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6626,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6626,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6628,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6629,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6630,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6632,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6640,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (GET_ITER))
      pos:
        line_end: 6628
        line_start: 6628
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 6642
      start: 6609
    functionDepth: 1
    functionLinenumber: 6609
    functionLinenumberEnd: 6642
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ITER_SELF)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6653,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6661,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6661,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6663,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6664,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6665,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6667,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6671,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6675,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (GET_ITER))
      pos:
        line_end: 6663
        line_start: 6663
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 6677
      start: 6644
    functionDepth: 1
    functionLinenumber: 6644
    functionLinenumberEnd: 6677
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_TagInt
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ITER_VIRTUAL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6686,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6690,1
    - Dst: PyObject_Length
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6691,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6691,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6692,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6694,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6696,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6698,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6700,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6703,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6705
      start: 6679
    functionDepth: 1
    functionLinenumber: 6679
    functionLinenumberEnd: 6705
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyObject_Length
    - PyLong_FromSsize_t
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_LEN)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6714,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6718,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6720,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6720,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6721,1
    - Dst: _PyEval_LazyImportFrom
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6722,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6723,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6724,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6727,1
    - Dst: _PyEval_ImportFrom
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6728,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6729,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6730,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6733,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6735,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6738,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6740
      start: 6707
    functionDepth: 1
    functionLinenumber: 6707
    functionLinenumberEnd: 6740
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_ImportFrom
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyEval_LazyImportFrom
    - GETITEM
    - JUMP_TO_LABEL
    - PyLazyImport_CheckExact
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(IMPORT_FROM)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6749,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6755,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6758,1
    - Dst: _PyEval_LazyImportName
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6759,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6759,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6759,1
    - Dst: LOCALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6760,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6761,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6762,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6764,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6767,1
    - Dst: _PyEval_ImportName
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6768,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6768,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6768,1
    - Dst: LOCALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6769,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6770,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6771,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6772,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6774,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6778,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6782,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6783,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6785,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6787,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6789,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6792,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6794
      start: 6742
    functionDepth: 1
    functionLinenumber: 6742
    functionLinenumberEnd: 6794
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_ImportName
    - LOCALS
    - PyStackRef_FromPyObjectSteal
    - GLOBALS
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - BUILTINS
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyEval_LazyImportName
    linkageType: ''
    returnType: void
    signature: void TARGET(IMPORT_NAME)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6805,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6818,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6818,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6819,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6821,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6824,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6827,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6828,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6829,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6837,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6838,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6841,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6844,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6851,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6852,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6856,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6858,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6866,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6869,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6873,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6874,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6877,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6878,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6878,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6879,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6880,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6884,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6886,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6888,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6891,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6893,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6894,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6903,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6906,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6907,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6909,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6915,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6916,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6917,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6918,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6920,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6923,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6924
      start: 6796
    functionDepth: 1
    functionLinenumber: 6796
    functionLinenumberEnd: 6924
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - DISPATCH
    - PyStackRef_TYPE
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _Py_call_instrumentation_2args
    - _PyEvalFramePushAndInit
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_VectorCallInstrumentation_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6935,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6949,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6950,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6951,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6952,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6952,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6953,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6955,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6957,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6958,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6959,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6961,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6964,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6966,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6967,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6968,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6978,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6979,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6981,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6981,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6983,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6984,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6985,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6985,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6986,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6986,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6987,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6988,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6990,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6991,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6994,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6996,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6998,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:6999,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7000,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7001,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7001,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7003,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7004,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7007,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7010,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7011,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7014,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7016,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7017,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7018,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7024,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7025,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7027,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7028,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7028,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7029,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7029,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7030,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7030,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7031,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7032,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7033,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7033,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7035,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7036,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7037,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7040,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7042,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7044,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7046,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7048,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7050,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7051,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7051,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7052,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7053,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7053,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7055,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7056,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7057,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7060,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7061,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7062,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7063,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7065,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7066,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7067,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7068,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7070,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7071,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7072,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7073,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7075,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7077,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7083,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7084,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7085,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7086,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7088,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7091,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 7050
        line_start: 7050
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 7027
        line_start: 7027
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 7052
        line_start: 7052
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ( 2u == 1 + INLINE_CACHE_ENTRIES_CALL_FUNCTION_EX)
      pos:
        line_end: 7045
        line_start: 7045
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 7029
        line_start: 7029
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 6984
        line_start: 6984
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 6980
        line_start: 6980
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 6985
        line_start: 6985
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7092
      start: 6926
    functionDepth: 1
    functionLinenumber: 6926
    functionLinenumberEnd: 7092
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyFunction_Check
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - PyObject_Call
    - PyMethod_Check
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - _Py_call_instrumentation_2args
    - _Py_Check_ArgsIterable
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - _PyEvalFramePushAndInit_Ex
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyErr_Occurred
    - Py_CLEAR
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_call_instrumentation_exc2
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL_FUNCTION_EX)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7103,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7116,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7116,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7117,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7119,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7122,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7125,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7126,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7127,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7133,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7136,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7139,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7144,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7147,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7148,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7151,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7153,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7160,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7161,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7164,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7168,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7169,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7170,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7173,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7174,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7174,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7175,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7176,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7180,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7182,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7183,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7184,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7185,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7187,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7189,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7191,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7193,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7194,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7203,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7206,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7207,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7209,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7213,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7214,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( 4u == 1 + INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 7188
        line_start: 7188
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7215
      start: 7094
    functionDepth: 1
    functionLinenumber: 7094
    functionLinenumberEnd: 7215
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - DISPATCH
    - assert
    - PyStackRef_TYPE
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _Py_call_instrumentation_2args
    - _PyEvalFramePushAndInit
    - PyStackRef_FromPyObjectSteal
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_VectorCallInstrumentation_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL_KW)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7226,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7231,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7232,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7238,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7240,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7241,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7241,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7242,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7243,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7244,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7246,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7250,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7254,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7255,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7257,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7260,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7261,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7262,1
    - Dst: monitor_reraise
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7263,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7264,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((next_instr-oparg)->op.code == END_SEND || (next_instr-oparg)->op.code
        >= MIN_INSTRUMENTED_OPCODE)
      pos:
        line_end: 7230
        line_start: 7230
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 7240
        line_start: 7240
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7268
      start: 7217
    functionDepth: 1
    functionLinenumber: 7217
    functionLinenumberEnd: 7268
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - Py_INCREF
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - _PyErr_SetRaisedException
    - INSTRUMENTED_JUMP
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_END_ASYNC_FOR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7278,1
    - Dst: PyStackRef_GenCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7283,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7284,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7285,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7285,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7286,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7288,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7292,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7293,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7294,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7295,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7297
      start: 7270
    functionDepth: 1
    functionLinenumber: 7270
    functionLinenumberEnd: 7297
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - monitor_stop_iteration
    - JUMP_TO_LABEL
    - PyStackRef_GenCheck
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_END_FOR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7308,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7316,1
    - Dst: PyGen_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7317,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7317,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7318,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7319,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7319,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7320,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7322,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7329,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7330,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7331,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7332,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7334
      start: 7299
    functionDepth: 1
    functionLinenumber: 7299
    functionLinenumberEnd: 7334
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyCoro_CheckExact
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - monitor_stop_iteration
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyGen_Check
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_END_SEND)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7345,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7352,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7353,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7354,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7355,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7356,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7357,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7359,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7361,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7364,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7368,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7370
      start: 7336
    functionDepth: 1
    functionLinenumber: 7336
    functionLinenumberEnd: 7370
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_IsError
    - DISPATCH
    - _PyForIter_VirtualIteratorNext
    - INSTRUCTION_STATS
    - PyStackRef_IsValid
    - JUMP_TO_LABEL
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_FOR_ITER)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7381,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7383,1
    - Dst: _Py_call_instrumentation_instruction
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7384,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7386,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7388,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7392,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7394,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (next_opcode > 0 && next_opcode < 256)
      pos:
        line_end: 7393
        line_start: 7393
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7397
      start: 7372
    functionDepth: 1
    functionLinenumber: 7372
    functionLinenumberEnd: 7397
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PAUSE_ADAPTIVE_COUNTER
    - assert
    - _Py_call_instrumentation_instruction
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - DISPATCH_GOTO
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_INSTRUCTION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7408,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7412,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7413,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7414,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7416,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7421,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7424
      start: 7399
    functionDepth: 1
    functionLinenumber: 7399
    functionLinenumberEnd: 7424
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - INSTRUMENTED_JUMP
    - check_periodics
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_JUMP_BACKWARD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7435,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7436,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7438
      start: 7426
    functionDepth: 1
    functionLinenumber: 7426
    functionLinenumberEnd: 7438
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUMENTED_JUMP
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_JUMP_FORWARD)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7450,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7454,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7455,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7459,1
    - Dst: _Py_call_instrumentation_line
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7460,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7462,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7465,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7469,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7474,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7478
      start: 7440
    functionDepth: 1
    functionLinenumber: 7440
    functionLinenumberEnd: 7478
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PAUSE_ADAPTIVE_COUNTER
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetBytecode
    - JUMP_TO_LABEL
    - _Py_call_instrumentation_line
    - DISPATCH_GOTO
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_LINE)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7489,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7502,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7503,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7504,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7507,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7508,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7511,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7513,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7517,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7521,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7525,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7526,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7528,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7529,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7535,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7536,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7537,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7542,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7543,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7546,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7549,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7550,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7553,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7555,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7556,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7557,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7561,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7565,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7569,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7573,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7574,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7576,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7578,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7580,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7581,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7583,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7584,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7586,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7588,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7599,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7601
      start: 7480
    functionDepth: 1
    functionLinenumber: 7480
    functionLinenumberEnd: 7601
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - PyObject_Vectorcall
    - INSTRUCTION_STATS
    - _Py_call_instrumentation_2args
    - PyObject_GetAttr
    - JUMP_TO_LABEL
    - GETITEM
    - Py_CLEAR
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - _Py_call_instrumentation_exc2
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_LOAD_SUPER_ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7613,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7615,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7617
      start: 7603
    functionDepth: 1
    functionLinenumber: 7603
    functionLinenumberEnd: 7617
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUMENTED_JUMP
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_NOT_TAKEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7629,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7635,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7637,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7638,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7639,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7640,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7642
      start: 7619
    functionDepth: 1
    functionLinenumber: 7619
    functionLinenumberEnd: 7642
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_ITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7653,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7657,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7657,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7658,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7659,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7661,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7664,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 7656
        line_start: 7656
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7666
      start: 7644
    functionDepth: 1
    functionLinenumber: 7644
    functionLinenumberEnd: 7666
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_IsFalse
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - INSTRUMENTED_JUMP
    - assert
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_JUMP_IF_FALSE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7677,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7681,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7682,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7684,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7688,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7689,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7690,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7691,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7695,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7697
      start: 7668
    functionDepth: 1
    functionLinenumber: 7668
    functionLinenumberEnd: 7697
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - RECORD_BRANCH_TAKEN
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_JUMP_IF_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7708,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7712,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7713,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7716,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7717,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7718,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7719,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7720,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7726
      start: 7699
    functionDepth: 1
    functionLinenumber: 7699
    functionLinenumberEnd: 7726
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - RECORD_BRANCH_TAKEN
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_JUMP_IF_NOT_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7737,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7741,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7741,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7742,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7743,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7745,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7748,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 7740
        line_start: 7740
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7750
      start: 7728
    functionDepth: 1
    functionLinenumber: 7728
    functionLinenumberEnd: 7750
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsTrue
    - INSTRUMENTED_JUMP
    - assert
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_JUMP_IF_TRUE)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7761,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7768,1
    - Dst: _PyEval_GetExecutableCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7770,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7770,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7771,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7773,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7775,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7779,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7792,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7793,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7793,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7795,1
    - Dst: _Py_Instrument
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7796,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7796,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7797,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7799,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7802,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7810,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7811,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7812,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7814,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7820,1
    - Dst: _Py_call_instrumentation
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7821,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7823,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7825,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7831,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7832
      start: 7752
    functionDepth: 1
    functionLinenumber: 7752
    functionLinenumberEnd: 7832
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _Py_Instrument
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetBytecode
    - JUMP_TO_LABEL
    - _Py_atomic_load_uintptr_relaxed
    - check_periodics
    - _PyEval_GetExecutableCode
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_RESUME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7843,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7851,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7852,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7854,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7855,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7857,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7863,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7868,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7871,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7872,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7873,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7873,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7874,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7875,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7878,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7879,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7880,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7882,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7886,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7867
        line_start: 7867
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 7872
        line_start: 7872
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7888
      start: 7834
    functionDepth: 1
    functionLinenumber: 7834
    functionLinenumberEnd: 7888
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - LOAD_IP
    - PyStackRef_MakeHeapSafe
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_call_instrumentation_arg
    - _Py_LeaveRecursiveCallPy
    - JUMP_TO_LABEL
    - DTRACE_FUNCTION_RETURN
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyEval_FrameClearAndPop
    - ASSERT_WITHIN_STACK_BOUNDS
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_RETURN_VALUE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7899,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7907,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7908,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7910,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7911,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7913,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7917,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7923,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7928,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7930,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7931,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7932,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7935,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7936,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7937,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7940,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7945,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7946,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7948,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7949,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7950,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7951,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7951,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7952,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7955,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7956,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7958,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7962,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7963,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7927
        line_start: 7927
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1)
      pos:
        line_end: 7930
        line_start: 7930
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 7945
        line_start: 7945
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (i >= 0 && i <= INT_MAX)
      pos:
        line_end: 7949
        line_start: 7949
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (opcode == SEND || opcode == FOR_ITER)
      pos:
        line_end: 7951
        line_start: 7951
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 7931
        line_start: 7931
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7964
      start: 7890
    functionDepth: 1
    functionLinenumber: 7890
    functionLinenumberEnd: 7964
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_MakeHeapSafe
    - DISPATCH
    - PyStackRef_IsNone
    - _PyFrame_GetBytecode
    - assert
    - _PyGen_GetGeneratorFromFrame
    - _Py_call_instrumentation_arg
    - _PyFrame_GetCode
    - INSTRUCTION_STATS
    - _Py_LeaveRecursiveCallPy
    - JUMP_TO_LABEL
    - _Py_GetBaseCodeUnit
    - DTRACE_FUNCTION_RETURN
    - LLTRACE_RESUME_FRAME
    - FT_ATOMIC_STORE_INT8_RELEASE
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_YIELD_VALUE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7973,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7976,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7977,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7977,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7979,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7979,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7980,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7982,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7986,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7987,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7988,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7990,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7991,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7992,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7993,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:7997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner == FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7975
        line_start: 7975
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 7978
        line_start: 7978
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 7976
        line_start: 7976
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (frame == &entry.frame)
      pos:
        line_end: 7981
        line_start: 7981
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 7985
        line_start: 7985
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 7999
      start: 7966
    functionDepth: 1
    functionLinenumber: 7966
    functionLinenumberEnd: 7999
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_CLOSE
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _PyErr_Occurred
    - _PyFrame_IsIncomplete
    - LLTRACE_RESUME_FRAME
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(INTERPRETER_EXIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8008,1
    - Dst: Py_Is
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8019,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8019,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8019,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8029,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8030,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8031,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8037,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8038,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8039,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8040,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8043
      start: 8001
    functionDepth: 1
    functionLinenumber: 8001
    functionLinenumberEnd: 8043
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - Py_Is
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(IS_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8052,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8062,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8064,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8070,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8071,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8072,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8074,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8079,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8079,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8080,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 8078
        line_start: 8078
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8083
      start: 8045
    functionDepth: 1
    functionLinenumber: 8045
    functionLinenumberEnd: 8083
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - INSTR_OFFSET
    - check_periodics
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8094,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8099,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8100,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8101,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8103,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8108,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8108,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8109,1
    - Dst: backoff_counter_triggers
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8116,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8117,1
    - Dst: _PyJit_TryInitializeTracing
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8125,1
    - Dst: ENTER_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8128,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8131,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8135,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 8107
        line_start: 8107
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8140
      start: 8085
    functionDepth: 1
    functionLinenumber: 8085
    functionLinenumberEnd: 8140
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - ENTER_TRACING
    - JUMP_TO_LABEL
    - backoff_counter_triggers
    - INSTR_OFFSET
    - restart_backoff_counter
    - ADVANCE_ADAPTIVE_COUNTER
    - check_periodics
    - _PyFrame_GetStackPointer
    - IS_JIT_TRACING
    - _PyJit_TryInitializeTracing
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD_JIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8149,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8150,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8150,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8151,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 8149
        line_start: 8149
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8153
      start: 8142
    functionDepth: 1
    functionLinenumber: 8142
    functionLinenumberEnd: 8153
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - INSTR_OFFSET
    - assert
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD_NO_INTERRUPT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8162,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8167,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8168,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8169,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8171,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8176,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8176,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8177,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 8175
        line_start: 8175
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8180
      start: 8155
    functionDepth: 1
    functionLinenumber: 8155
    functionLinenumberEnd: 8180
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - INSTR_OFFSET
    - check_periodics
    - _PyFrame_GetStackPointer
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD_NO_JIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8189,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8190,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8192
      start: 8182
    functionDepth: 1
    functionLinenumber: 8182
    functionLinenumberEnd: 8192
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_FORWARD)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8201,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8206,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8206,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8207,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8209,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8212,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8214
      start: 8194
    functionDepth: 1
    functionLinenumber: 8194
    functionLinenumberEnd: 8214
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyList_AppendTakeRef
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LIST_APPEND)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8223,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8232,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8233,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8234,1
    - Dst: _PyList_Extend
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8235,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8236,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8238,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8240,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8240,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8242,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8243,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8244,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8246,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8247,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8249,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8251,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8251,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8258,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8259,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8260,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8261,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_IsNone(none_val))
      pos:
        line_end: 8250
        line_start: 8250
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8264
      start: 8216
    functionDepth: 1
    functionLinenumber: 8216
    functionLinenumberEnd: 8264
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PySequence_Check
    - _PyErr_Format
    - _PyList_Extend
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_ExceptionMatches
    - JUMP_TO_LABEL
    - Py_IsNone
    - _PyErr_Clear
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(LIST_EXTEND)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8273,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8283,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8286,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8287,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8289,1
    - Dst: _Py_Specialize_LoadAttr
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8290,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8291,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8292,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8294,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8295,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8302,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8304,1
    - Dst: _Py_LoadAttr_StackRefSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8305,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8306,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8307,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8308,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8312,1
    - Dst: _PyObject_GetAttrStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8313,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8313,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8314,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8317,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8318,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8319,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8320,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8321,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8322,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8329,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8331
      start: 8266
    functionDepth: 1
    functionLinenumber: 8266
    functionLinenumberEnd: 8331
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyObject_GetAttrStackRef
    - GETITEM
    - JUMP_TO_LABEL
    - _Py_LoadAttr_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - _Py_Specialize_LoadAttr
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8342,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8351,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8352,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8353,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8354,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8355,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8356,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8358,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8359,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8360,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8361,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8362,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8368,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8369,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8370,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8371,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8372,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8376,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8377,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8387,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8354
        line_start: 8354
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8369
        line_start: 8369
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8360
        line_start: 8360
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8357
        line_start: 8357
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8389
      start: 8333
    functionDepth: 1
    functionLinenumber: 8333
    functionLinenumberEnd: 8389
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyType_Check
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_CLASS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8400,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8409,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8410,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8410,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8411,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8412,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8413,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8414,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8415,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8420,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8421,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8422,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8423,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8424,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8425,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8427,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8428,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8429,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8430,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8431,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8436,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8437,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8438,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8439,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8440,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8444,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8445,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8455,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 8410
        line_start: 8410
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8413
        line_start: 8413
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8429
        line_start: 8429
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8423
        line_start: 8423
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8426
        line_start: 8426
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8437
        line_start: 8437
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8457
      start: 8391
    functionDepth: 1
    functionLinenumber: 8391
    functionLinenumberEnd: 8457
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyType_Check
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_CLASS_WITH_METACLASS_CHECK)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8468,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8476,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8477,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8477,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8478,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8479,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8480,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8481,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8482,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8487,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8488,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8489,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8490,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8495,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8496,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8497,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8498,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8498,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8500,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8502,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8503,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8504,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8507,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8508,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8509,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8510,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8511,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8513,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8514,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8515,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8516,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8518,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8519,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8532,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8532,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8533,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8535,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8536,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8537,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8538,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8541,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8542,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8543,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8544,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8546,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8496
        line_start: 8496
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 8536
        line_start: 8536
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (func_version != 0)
      pos:
        line_end: 8499
        line_start: 8499
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_IS_TYPE(getattribute, &PyFunction_Type))
      pos:
        line_end: 8497
        line_start: 8497
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8502
        line_start: 8502
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8477
        line_start: 8477
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8480
        line_start: 8480
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8488
        line_start: 8488
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8509
        line_start: 8509
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 8506
        line_start: 8506
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 8531
        line_start: 8531
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8547
      start: 8459
    functionDepth: 1
    functionLinenumber: 8459
    functionLinenumberEnd: 8547
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - read_obj
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - PyStackRef_Unwrap
    - read_u32
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - LOAD_SP
    - IS_PEP523_HOOKED
    - GETITEM
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8558,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8569,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8570,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8570,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8571,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8572,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8573,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8574,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8575,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8580,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8581,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8581,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8582,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8582,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8583,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8583,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8584,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8585,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8586,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8591,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8592,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8594,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8596,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8597,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8598,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8601,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8604,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8605,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8606,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8610,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8612,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8619,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8620,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8621,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8632,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8633,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8581
        line_start: 8581
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8570
        line_start: 8570
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8573
        line_start: 8573
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 8580
        line_start: 8580
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8584
        line_start: 8584
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8596
        line_start: 8596
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8604
        line_start: 8604
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8634
      start: 8549
    functionDepth: 1
    functionLinenumber: 8549
    functionLinenumberEnd: 8634
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyObject_InlineValues
    - DISPATCH
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _Py_TryIncrefCompareStackRef
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - FT_ATOMIC_LOAD_UINT8
    - read_u32
    - STAT_INC
    - read_u16
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_INSTANCE_VALUE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8645,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8654,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8655,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8655,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8656,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8657,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8658,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8659,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8660,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8665,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8666,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8667,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8669,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8670,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8671,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8677,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8678,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8679,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8680,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8681,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8681,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8681,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8682,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8688,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 8655
        line_start: 8655
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8669
        line_start: 8669
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8680
        line_start: 8680
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8658
        line_start: 8658
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 8677
        line_start: 8677
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8679
        line_start: 8679
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8690
      start: 8636
    functionDepth: 1
    functionLinenumber: 8636
    functionLinenumberEnd: 8690
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyType_HasFeature
    - PyStackRef_FromPyObjectNew
    - read_u16
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_METHOD_LAZY_DICT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8701,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8710,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8711,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8711,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8712,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8713,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8714,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8715,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8716,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8722,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8723,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8724,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8724,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8725,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8726,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8727,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8727,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8727,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8728,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8734,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8714
        line_start: 8714
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8725
        line_start: 8725
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8711
        line_start: 8711
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(PyStackRef_AsPyObjectBorrow(owner))->tp_dictoffset == 0)
      pos:
        line_end: 8723
        line_start: 8723
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8726
        line_start: 8726
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 8722
        line_start: 8722
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8736
      start: 8692
    functionDepth: 1
    functionLinenumber: 8692
    functionLinenumberEnd: 8736
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyType_HasFeature
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_METHOD_NO_DICT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8747,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8756,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8757,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8757,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8758,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8759,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8760,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8761,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8762,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8767,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8768,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8768,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8769,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8770,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8771,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8772,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8773,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8778,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8779,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8779,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8782,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8783,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8784,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8785,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8790,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8791,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8792,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8793,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8794,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8794,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8794,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8795,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8801,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 8757
        line_start: 8757
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8760
        line_start: 8760
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8767
        line_start: 8767
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 8790
        line_start: 8790
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8771
        line_start: 8771
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8792
        line_start: 8792
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8783
        line_start: 8783
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8793
        line_start: 8793
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8803
      start: 8738
    functionDepth: 1
    functionLinenumber: 8738
    functionLinenumberEnd: 8803
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyObject_InlineValues
    - _PyType_HasFeature
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - FT_ATOMIC_LOAD_UINT8
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_METHOD_WITH_VALUES)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8814,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8825,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8826,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8827,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8828,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8829,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8830,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8831,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8834,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8835,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8836,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8837,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8838,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8839,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8841,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8842,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8842,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8843,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8844,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8846,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8847,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8848,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8851,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8854,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8855,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8856,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8860,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8862,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8869,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8870,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8871,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8882,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8883,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8829
        line_start: 8829
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8837
        line_start: 8837
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 8840
        line_start: 8840
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (index < FT_ATOMIC_LOAD_SSIZE_RELAXED(keys->dk_nentries))
      pos:
        line_end: 8841
        line_start: 8841
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8854
        line_start: 8854
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (dict != NULL)
      pos:
        line_end: 8833
        line_start: 8833
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8846
        line_start: 8846
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8884
      start: 8805
    functionDepth: 1
    functionLinenumber: 8805
    functionLinenumberEnd: 8884
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - DK_UNICODE_ENTRIES
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _Py_TryIncrefCompareStackRef
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - read_u32
    - STAT_INC
    - read_u16
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_MODULE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8895,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8903,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8904,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8904,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8905,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8906,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8907,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8908,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8909,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8915,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8916,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8917,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8917,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8917,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8918,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8919,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8921,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8922,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8923,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8924,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8925,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8929,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8915
        line_start: 8915
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(PyStackRef_AsPyObjectBorrow(owner))->tp_dictoffset == 0)
      pos:
        line_end: 8916
        line_start: 8916
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8904
        line_start: 8904
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8907
        line_start: 8907
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8918
        line_start: 8918
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8931
      start: 8886
    functionDepth: 1
    functionLinenumber: 8886
    functionLinenumberEnd: 8931
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_NONDESCRIPTOR_NO_DICT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8942,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8950,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8951,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8951,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8952,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8953,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8954,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8955,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8956,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8961,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8962,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8962,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8963,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8964,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8965,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8966,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8967,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8972,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8973,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8973,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8976,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8977,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8978,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8979,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8984,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8985,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8986,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8987,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8989,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8990,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8991,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8992,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8993,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8997,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:8998,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8984
        line_start: 8984
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8977
        line_start: 8977
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8986
        line_start: 8986
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8965
        line_start: 8965
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8951
        line_start: 8951
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8954
        line_start: 8954
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8961
        line_start: 8961
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 8999
      start: 8933
    functionDepth: 1
    functionLinenumber: 8933
    functionLinenumberEnd: 8999
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyObject_InlineValues
    - DISPATCH
    - read_obj
    - assert
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - FT_ATOMIC_LOAD_UINT8
    - read_u32
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyStackRef_CLOSE
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9010,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9018,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9019,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9019,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9020,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9021,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9022,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9023,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9024,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9029,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9030,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9031,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9032,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9037,1
    - Dst: read_obj
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9038,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9039,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9040,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9040,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9043,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9044,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9045,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9048,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9049,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9050,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9051,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9053,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9054,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9054,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9056,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9069,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9069,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9070,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9072,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9073,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9074,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9075,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9078,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9079,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9080,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9081,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9083,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 9038
        line_start: 9038
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 9068
        line_start: 9068
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9022
        line_start: 9022
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_IS_TYPE(fget, &PyFunction_Type))
      pos:
        line_end: 9039
        line_start: 9039
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9049
        line_start: 9049
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 9073
        line_start: 9073
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 9019
        line_start: 9019
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9030
        line_start: 9030
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9043
        line_start: 9043
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9084
      start: 9001
    functionDepth: 1
    functionLinenumber: 9001
    functionLinenumberEnd: 9084
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - read_obj
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - PyStackRef_Unwrap
    - read_u32
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - LOAD_SP
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_PROPERTY)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9095,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9106,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9107,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9107,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9108,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9109,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9110,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9111,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9112,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9117,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9118,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9120,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9122,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9123,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9124,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9127,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9129,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9130,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9131,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9134,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9136,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9143,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9144,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9145,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9156,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9129
        line_start: 9129
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9122
        line_start: 9122
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 9107
        line_start: 9107
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9110
        line_start: 9110
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9158
      start: 9086
    functionDepth: 1
    functionLinenumber: 9086
    functionLinenumberEnd: 9158
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_PTR
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - _PyFrame_SetStackPointer
    - read_u16
    - JUMP_TO_PREDICTED
    - _Py_TryIncrefCompareStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_SLOT)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9169,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9180,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9181,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9181,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9182,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9183,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9184,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9185,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9186,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9191,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9192,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9193,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9193,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9194,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9196,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9197,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9198,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9200,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9201,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9201,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9203,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9203,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9204,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9205,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9206,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9210,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9212,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9213,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9214,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9217,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9220,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9221,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9222,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9225,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9226,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9228,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9229,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9230,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9233,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9236,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9237,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9238,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9241,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9243,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9246,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9247,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9248,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9252,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9260,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9261,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9262,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9273,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9274,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9196
        line_start: 9196
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9212
        line_start: 9212
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 9181
        line_start: 9181
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9184
        line_start: 9184
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9228
        line_start: 9228
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 9200
        line_start: 9200
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9204
        line_start: 9204
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9220
        line_start: 9220
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9236
        line_start: 9236
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 9192
        line_start: 9192
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9246
        line_start: 9246
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9275
      start: 9160
    functionDepth: 1
    functionLinenumber: 9160
    functionLinenumberEnd: 9275
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - DK_UNICODE_ENTRIES
    - _PyObject_GC_IS_SHARED
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _PyObject_GetManagedDict
    - _Py_TryIncrefCompareStackRef
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - read_u32
    - STAT_INC
    - read_u16
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _Py_IsOwnedByCurrentThread
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - FT_ATOMIC_LOAD_PTR
    - GETITEM
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_WITH_HINT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9284,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9287,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9288,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9288,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9288,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9289,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9291,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9294,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9295,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9297,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9298,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9300,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9303,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9305
      start: 9277
    functionDepth: 1
    functionLinenumber: 9277
    functionLinenumberEnd: 9305
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyMapping_GetOptionalItem2
    - PyStackRef_FromPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_SetString
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - BUILTINS
    - ASSERT_WITHIN_STACK_BOUNDS
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_BUILD_CLASS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9314,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9316,1
    - Dst: PyStackRef_DupImmortal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9317,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9320,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg < NUM_COMMON_CONSTANTS)
      pos:
        line_end: 9315
        line_start: 9315
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9322
      start: 9307
    functionDepth: 1
    functionLinenumber: 9307
    functionLinenumberEnd: 9322
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_DupImmortal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_COMMON_CONSTANT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9331,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9334,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9335,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9338,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9340
      start: 9324
    functionDepth: 1
    functionLinenumber: 9324
    functionLinenumberEnd: 9340
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_FromPyObjectBorrow
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_CONST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9349,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9351,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9351,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9352,1
    - Dst: _PyCell_GetStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9353,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9354,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9355,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9358,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9359,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9360,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9360,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9361,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9362,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9366,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9368
      start: 9342
    functionDepth: 1
    functionLinenumber: 9342
    functionLinenumberEnd: 9368
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyEval_FormatExcUnbound
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyCell_GetStackRef
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_DEREF)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9377,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9379,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9379,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9379,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9380,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9380,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9383,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 9378
        line_start: 9378
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9385
      start: 9370
    functionDepth: 1
    functionLinenumber: 9370
    functionLinenumberEnd: 9385
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - GETLOCAL
    - PyStackRef_DUP
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9394,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9396,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9397,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9400,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9402
      start: 9387
    functionDepth: 1
    functionLinenumber: 9387
    functionLinenumberEnd: 9402
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - GETLOCAL
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_AND_CLEAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9411,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9413,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9413,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9413,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9414,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9414,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9417,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 9412
        line_start: 9412
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9419
      start: 9404
    functionDepth: 1
    functionLinenumber: 9404
    functionLinenumberEnd: 9419
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - GETLOCAL
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_Borrow
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_BORROW)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9428,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9433,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9433,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9434,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9434,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9438,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9440
      start: 9421
    functionDepth: 1
    functionLinenumber: 9421
    functionLinenumberEnd: 9440
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - GETLOCAL
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_Borrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_BORROW_LOAD_FAST_BORROW)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9449,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9451,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9452,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9453,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9454,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9456,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9456,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9458,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9459,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9461,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9464,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9466
      start: 9442
    functionDepth: 1
    functionLinenumber: 9442
    functionLinenumberEnd: 9466
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - _PyEval_FormatExcCheckArg
    - PyStackRef_DUP
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyTuple_GetItem
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_CHECK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9475,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9480,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9480,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9481,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9481,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9485,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9487
      start: 9468
    functionDepth: 1
    functionLinenumber: 9468
    functionLinenumberEnd: 9487
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - GETLOCAL
    - PyStackRef_DUP
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_LOAD_FAST)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9496,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9501,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9502,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9503,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9503,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9504,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9504,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9506,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9507,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9508,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9510,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9513,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9513,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9514,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9516,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9517,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9517,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9518,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9519,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9523,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9524,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9525,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9526,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9527,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9530,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (class_dict)
      pos:
        line_end: 9501
        line_start: 9501
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus)
      pos:
        line_end: 9502
        line_start: 9502
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9532
      start: 9489
    functionDepth: 1
    functionLinenumber: 9489
    functionLinenumberEnd: 9532
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyMapping_GetOptionalItem2
    - GETLOCAL
    - PyTuple_GET_ITEM
    - PyCell_GetRef
    - _PyFrame_GetCode
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _PyEval_FormatExcUnbound
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FROM_DICT_OR_DEREF)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9541,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9545,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9547,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9548,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9548,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9549,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9551,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9552,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9553,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9554,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9556,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9559,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9559,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9560,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9560,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9562,1
    - Dst: _PyDict_LoadGlobal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9563,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9563,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9564,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9566,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9568,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9569,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9570,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9572,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9574,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9576,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9577,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9578,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9579,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9580,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9582,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9587,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9588,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9588,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9589,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9591,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9594,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9595,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9595,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9596,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9598,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9601,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9602,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9605,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9606,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9609,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9610,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9611,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9612,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9613,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9615,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9620,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9623,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9624,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9625
      start: 9534
    functionDepth: 1
    functionLinenumber: 9534
    functionLinenumberEnd: 9625
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - BUILTINS
    - PyStackRef_FromPyObjectSteal
    - _PyMapping_GetOptionalItem2
    - _PyEval_FormatExcCheckArg
    - GLOBALS
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - _PyImport_LoadLazyImportTstate
    - PyStackRef_CLOSE
    - _PyErr_Occurred
    - _PyDict_LoadGlobal
    - GETITEM
    - Py_SETREF
    - PyLazyImport_CheckExact
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FROM_DICT_OR_GLOBALS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9634,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9642,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9645,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9646,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9648,1
    - Dst: _Py_Specialize_LoadGlobal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9649,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9649,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9649,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9650,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9651,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9653,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9654,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9663,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9664,1
    - Dst: _PyEval_LoadGlobalStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9665,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9665,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9665,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9666,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9667,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9668,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9679,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9681
      start: 9627
    functionDepth: 1
    functionLinenumber: 9627
    functionLinenumberEnd: 9681
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - GLOBALS
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - _PyEval_LoadGlobalStackRef
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _Py_Specialize_LoadGlobal
    - _PyFrame_GetStackPointer
    - BUILTINS
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9692,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9699,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9700,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9701,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9702,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9703,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9704,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9706,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9707,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9708,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9709,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9710,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9712,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9716,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9717,1
    - Dst: BUILTINS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9718,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9719,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9720,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9721,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9722,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9724,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9725,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9726,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9727,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9728,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9730,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9731,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9732,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9734,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9735,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9736,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9739,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9741,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9742,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9743,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9746,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9748,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9759,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9760,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9708
        line_start: 9708
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 9729
        line_start: 9729
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9734
        line_start: 9734
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9741
        line_start: 9741
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 9711
        line_start: 9711
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9720
        line_start: 9720
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9702
        line_start: 9702
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9726
        line_start: 9726
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9761
      start: 9683
    functionDepth: 1
    functionLinenumber: 9683
    functionLinenumberEnd: 9761
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - read_u16
    - JUMP_TO_PREDICTED
    - GLOBALS
    - _Py_TryIncrefCompareStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - DK_UNICODE_ENTRIES
    - UPDATE_MISS_STATS
    - BUILTINS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL_BUILTIN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9772,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9782,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9783,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9784,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9785,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9786,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9787,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9788,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9790,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9791,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9792,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9793,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9794,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9796,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9797,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9798,1
    - Dst: DK_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9798,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9799,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9801,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9802,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9803,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9806,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9808,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9809,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9810,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9813,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9815,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9826,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9827,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9786
        line_start: 9786
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9801
        line_start: 9801
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9792
        line_start: 9792
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 9795
        line_start: 9795
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (index < DK_SIZE(keys))
      pos:
        line_end: 9797
        line_start: 9797
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9808
        line_start: 9808
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9828
      start: 9763
    functionDepth: 1
    functionLinenumber: 9763
    functionLinenumberEnd: 9828
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - DK_SIZE
    - PyStackRef_FromPyObjectNew
    - read_u16
    - JUMP_TO_PREDICTED
    - GLOBALS
    - _Py_TryIncrefCompareStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - DK_UNICODE_ENTRIES
    - UPDATE_MISS_STATS
    - FT_ATOMIC_LOAD_PTR_RELAXED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL_MODULE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9837,1
    - Dst: LOCALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9839,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9841,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9842,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9844,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9845,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9847,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9850,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9852
      start: 9830
    functionDepth: 1
    functionLinenumber: 9830
    functionLinenumberEnd: 9852
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - LOCALS
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_SetString
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_LOCALS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9861,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9863,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9864,1
    - Dst: _PyEval_LoadName
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9865,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9866,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9868,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9870,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9871,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9872,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9873,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9876,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9877,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9878,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9880,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9881,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9881,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9882,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9886,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9887,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9888,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9890,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9891,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9892,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9894,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9897,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9898,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9899
      start: 9854
    functionDepth: 1
    functionLinenumber: 9854
    functionLinenumberEnd: 9899
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyImport_LoadLazyImportTstate
    - GLOBALS
    - DISPATCH
    - INSTRUCTION_STATS
    - Py_SETREF
    - GETITEM
    - JUMP_TO_LABEL
    - _PyEval_LoadName
    - PyDict_SetItem
    - PyLazyImport_CheckExact
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9908,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9910,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9912,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9915,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg < _PY_NSMALLPOSINTS)
      pos:
        line_end: 9909
        line_start: 9909
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9917
      start: 9901
    functionDepth: 1
    functionLinenumber: 9901
    functionLinenumberEnd: 9917
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_FromPyObjectBorrow
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SMALL_INT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9926,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9941,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9942,1
    - Dst: _PyObject_LookupSpecialMethod
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9943,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9944,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9947,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9948,1
    - Dst: _PyEval_SpecialMethodCanSuggest
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9949,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9952,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9953,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9953,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9954,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9955,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9956,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9957,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9959,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 9952
        line_start: 9952
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (errfmt != NULL)
      pos:
        line_end: 9953
        line_start: 9953
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 9963
      start: 9919
    functionDepth: 1
    functionLinenumber: 9919
    functionLinenumberEnd: 9963
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_Occurred
    - _PyEval_SpecialMethodCanSuggest
    - JUMP_TO_LABEL
    - _PyObject_LookupSpecialMethod
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SPECIAL)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9972,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9986,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9990,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9992,1
    - Dst: _Py_Specialize_LoadSuperAttr
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9993,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9994,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9995,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9997,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:9998,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10004,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10005,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10006,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10009,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10010,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10013,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10015,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10019,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10023,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10027,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10028,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10030,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10031,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10037,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10038,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10039,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10044,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10045,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10048,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10051,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10052,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10055,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10057,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10058,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10059,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10063,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10067,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10071,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10075,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10076,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10078,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10080,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10082,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10083,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10085,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10086,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10088,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10090,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10101,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10103
      start: 9965
    functionDepth: 1
    functionLinenumber: 9965
    functionLinenumberEnd: 10103
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - DISPATCH_SAME_OPARG
    - _Py_call_instrumentation_2args
    - PyStackRef_FromPyObjectSteal
    - read_u16
    - _Py_Specialize_LoadSuperAttr
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - Py_DECREF
    - PyStackRef_CLOSE
    - PyObject_Vectorcall
    - PyObject_GetAttr
    - GETITEM
    - Py_CLEAR
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_call_instrumentation_exc2
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SUPER_ATTR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10114,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10124,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10125,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10126,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10127,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10129,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10130,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10131,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10133,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10134,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10135,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10136,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10138,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10139,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10140,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10141,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10145,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10149,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10153,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10154,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10156,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10158,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10160,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10163,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 10134
        line_start: 10134
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!(oparg & 1))
      pos:
        line_end: 10126
        line_start: 10126
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 10129
        line_start: 10129
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10165
      start: 10105
    functionDepth: 1
    functionLinenumber: 10105
    functionLinenumberEnd: 10165
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - _PySuper_Lookup
    - PyType_Check
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SUPER_ATTR_ATTR)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10176,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10188,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10189,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10190,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10192,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10193,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10194,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10196,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10197,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10198,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10199,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10205,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10206,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10207,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10208,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10214,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10215,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10216,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10217,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10220,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10226,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10227,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10228,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10229,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10234,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10235,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10239,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10243,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10244,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10246,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10247,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10252,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10253,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg & 1)
      pos:
        line_end: 10189
        line_start: 10189
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 10192
        line_start: 10192
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 10197
        line_start: 10197
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10254
      start: 10167
    functionDepth: 1
    functionLinenumber: 10167
    functionLinenumberEnd: 10254
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - _PySuper_Lookup
    - PyType_Check
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SUPER_ATTR_METHOD)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10263,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10264,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10264,1
    - Dst: PyCell_New
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10265,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10267,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10269,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10270,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10270,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10271,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10272,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10273,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10275
      start: 10256
    functionDepth: 1
    functionLinenumber: 10256
    functionLinenumberEnd: 10275
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - PyCell_New
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(MAKE_CELL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10284,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10292,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10293,1
    - Dst: PyFunction_New
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10295,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10295,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10296,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10298,1
    - Dst: _PyFunction_SetVersion
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10301,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10303,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10309,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10310,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10311,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10314
      start: 10277
    functionDepth: 1
    functionLinenumber: 10277
    functionLinenumberEnd: 10314
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GLOBALS
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyFunction_New
    - _PyFunction_SetVersion
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(MAKE_FUNCTION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10323,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10330,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10331,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10331,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10332,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10333,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10335,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10336,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10338,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10340,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10343,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 10330
        line_start: 10330
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10345
      start: 10316
    functionDepth: 1
    functionLinenumber: 10316
    functionLinenumberEnd: 10345
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyDict_CheckExact
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyDict_SetItem_Take2
    linkageType: ''
    returnType: void
    signature: void TARGET(MAP_ADD)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10354,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10368,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10368,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10368,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10369,1
    - Dst: _PyEval_MatchClass
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10370,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10371,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10372,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10373,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10374,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10376,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10376,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10377,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10380,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10381,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10395,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10396,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10397,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10403,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10404,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10405,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10406,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10412,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10413,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10414,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10415,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(PyStackRef_AsPyObjectBorrow(names)))
      pos:
        line_end: 10367
        line_start: 10367
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(attrs_o))
      pos:
        line_end: 10375
        line_start: 10375
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10418
      start: 10347
    functionDepth: 1
    functionLinenumber: 10347
    functionLinenumberEnd: 10418
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _PyErr_Occurred
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - _PyEval_MatchClass
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - PyTuple_CheckExact
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_CLASS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10427,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10433,1
    - Dst: _PyEval_MatchKeys
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10434,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10435,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10435,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10436,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10438,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10440,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10443,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10445
      start: 10420
    functionDepth: 1
    functionLinenumber: 10420
    functionLinenumberEnd: 10445
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_MatchKeys
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_KEYS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10454,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10458,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10462,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10464
      start: 10447
    functionDepth: 1
    functionLinenumber: 10447
    functionLinenumberEnd: 10464
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - PyStackRef_TYPE
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_MAPPING)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10473,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10477,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10481,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10483
      start: 10466
    functionDepth: 1
    functionLinenumber: 10466
    functionLinenumberEnd: 10483
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - PyStackRef_TYPE
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_SEQUENCE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10492,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10494
      start: 10485
    functionDepth: 1
    functionLinenumber: 10485
    functionLinenumberEnd: 10494
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10503,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10505
      start: 10496
    functionDepth: 1
    functionLinenumber: 10496
    functionLinenumberEnd: 10505
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(NOT_TAKEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10514,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10518,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10519,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10520,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10521,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10522,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10524,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10526
      start: 10507
    functionDepth: 1
    functionLinenumber: 10507
    functionLinenumberEnd: 10526
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - Py_XSETREF
    - INSTRUCTION_STATS
    - PyStackRef_IsNone
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_EXCEPT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10535,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10542,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10543,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10544,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10545,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10547
      start: 10528
    functionDepth: 1
    functionLinenumber: 10528
    functionLinenumberEnd: 10547
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_ITER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10558,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10562,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10562,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10563,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10564,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10565,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10567,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10561
        line_start: 10561
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10569
      start: 10549
    functionDepth: 1
    functionLinenumber: 10549
    functionLinenumberEnd: 10569
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_IsFalse
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - assert
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_JUMP_IF_FALSE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10580,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10588,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10593,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10597,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10598,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10604,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10604,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10605,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10606,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10607,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10610,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10603
        line_start: 10603
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10612
      start: 10571
    functionDepth: 1
    functionLinenumber: 10571
    functionLinenumberEnd: 10612
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - assert
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsTrue
    - _PyFrame_GetStackPointer
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_JUMP_IF_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10623,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10631,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10636,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10640,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10641,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10647,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10647,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10648,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10649,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10650,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10653,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10646
        line_start: 10646
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10655
      start: 10614
    functionDepth: 1
    functionLinenumber: 10614
    functionLinenumberEnd: 10655
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - assert
    - PyStackRef_IsFalse
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_JUMP_IF_NOT_NONE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10666,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10670,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10670,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10671,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10672,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10673,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10675,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10669
        line_start: 10669
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10677
      start: 10657
    functionDepth: 1
    functionLinenumber: 10657
    functionLinenumberEnd: 10677
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsTrue
    - assert
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_JUMP_IF_TRUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10686,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10690,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10691,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10692,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10693,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10695
      start: 10679
    functionDepth: 1
    functionLinenumber: 10679
    functionLinenumberEnd: 10695
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_TOP)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10704,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10711,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10716,1
    - Dst: PyStackRef_ExceptionInstanceCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10716,1
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10717,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10722,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_ExceptionInstanceCheck(exc))
      pos:
        line_end: 10715
        line_start: 10715
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10724
      start: 10697
    functionDepth: 1
    functionLinenumber: 10697
    functionLinenumberEnd: 10724
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_ExceptionInstanceCheck
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_AsPyObjectNew
    - assert
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(PUSH_EXC_INFO)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10733,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10738,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10740
      start: 10726
    functionDepth: 1
    functionLinenumber: 10726
    functionLinenumberEnd: 10740
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(PUSH_NULL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10751,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10754,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10755,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10756,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10758,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10759,1
    - Dst: do_raise
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10760,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10761,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10763,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10764,1
    - Dst: monitor_reraise
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10765,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10766,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg < 3)
      pos:
        line_end: 10753
        line_start: 10753
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 0)
      pos:
        line_end: 10762
        line_start: 10762
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10769
      start: 10742
    functionDepth: 1
    functionLinenumber: 10742
    functionLinenumberEnd: 10769
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - PyStackRef_AsPyObjectSteal
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - do_raise
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(RAISE_VARARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10780,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10785,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10786,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10788,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10788,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10790,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10790,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10792,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10793,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10794,1
    - Dst: monitor_reraise
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10795,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg >= 0 && oparg <= 2)
      pos:
        line_end: 10785
        line_start: 10785
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 10789
        line_start: 10789
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10797
      start: 10771
    functionDepth: 1
    functionLinenumber: 10771
    functionLinenumberEnd: 10797
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - PyStackRef_AsPyObjectSteal
    - INSTRUCTION_STATS
    - _PyFrame_GetBytecode
    - JUMP_TO_LABEL
    - _PyErr_SetRaisedException
    - assert
    - PyExceptionInstance_Check
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_UntagInt
    linkageType: ''
    returnType: void
    signature: void TARGET(RERAISE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10806,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10807,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10808,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "Executing RESERVED instruction.")
      pos:
        line_end: 10806
        line_start: 10806
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10810
      start: 10799
    functionDepth: 1
    functionLinenumber: 10799
    functionLinenumberEnd: 10810
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - Py_FatalError
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(RESERVED)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10819,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10828,1
    - Dst: _PyEval_GetExecutableCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10830,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10830,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10831,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10833,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10835,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10839,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10852,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10853,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10853,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10855,1
    - Dst: _Py_Instrument
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10856,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10856,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10857,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10859,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10862,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10868,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10870,1
    - Dst: _Py_Specialize_Resume
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10871,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10872,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10878,1
    - Dst: check_periodics
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10879,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10880,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10882,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10886,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10887
      start: 10812
    functionDepth: 1
    functionLinenumber: 10812
    functionLinenumberEnd: 10887
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _Py_Instrument
    - read_u16
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetBytecode
    - JUMP_TO_LABEL
    - _Py_atomic_load_uintptr_relaxed
    - _Py_Specialize_Resume
    - check_periodics
    - _PyEval_GetExecutableCode
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(RESUME)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10898,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10903,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10904,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10905,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10909,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10910,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10910,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10911,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10913,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10914,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10915,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10920,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10921,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10922,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10903
        line_start: 10903
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ((version & _PY_EVAL_EVENTS_MASK) == 0)
      pos:
        line_end: 10910
        line_start: 10910
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10913
        line_start: 10913
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10920
        line_start: 10920
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10926
      start: 10889
    functionDepth: 1
    functionLinenumber: 10889
    functionLinenumberEnd: 10926
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _Py_atomic_load_uintptr_relaxed
    - assert
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(RESUME_CHECK)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10937,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10944,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10945,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10946,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10950,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10951,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10951,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10952,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10954,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10955,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10956,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10961,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10962,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10963,1
    - Dst: backoff_counter_triggers
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10972,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10973,1
    - Dst: _PyJit_TryInitializeTracing
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10981,1
    - Dst: ENTER_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10984,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10987,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10991,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:10995,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10944
        line_start: 10944
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10954
        line_start: 10954
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10961
        line_start: 10961
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ((version & _PY_EVAL_EVENTS_MASK) == 0)
      pos:
        line_end: 10951
        line_start: 10951
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 10996
      start: 10928
    functionDepth: 1
    functionLinenumber: 10928
    functionLinenumberEnd: 10996
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - ENTER_TRACING
    - UPDATE_MISS_STATS
    - _Py_atomic_load_uintptr_relaxed
    - backoff_counter_triggers
    - ADVANCE_ADAPTIVE_COUNTER
    - assert
    - IS_JIT_TRACING
    - _PyJit_TryInitializeTracing
    - JUMP_TO_PREDICTED
    - restart_backoff_counter
    linkageType: ''
    returnType: void
    signature: void TARGET(RESUME_CHECK_JIT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11005,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11007,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11007,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11008,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11009,1
    - Dst: _Py_MakeCoro
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11010,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11011,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11013,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11015,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11015,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11016,1
    - Dst: _PyFrame_Copy
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11019,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11020,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11023,1
    - Dst: _PyThreadState_PopFrame
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11025,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11027,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11028,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11029,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11030,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11033,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->frame_obj == NULL)
      pos:
        line_end: 11019
        line_start: 11019
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 11006
        line_start: 11006
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (STACK_LEVEL() <= 2)
      pos:
        line_end: 11014
        line_start: 11014
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11035
      start: 10998
    functionDepth: 1
    functionLinenumber: 10998
    functionLinenumberEnd: 11035
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_FunctionCheck
    - _PyFrame_SetStackPointer
    - LOAD_IP
    - _Py_MakeCoro
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _Py_LeaveRecursiveCallPy
    - JUMP_TO_LABEL
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_PopFrame
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_Copy
    - PyStackRef_FromPyObjectStealMortal
    - ASSERT_WITHIN_STACK_BOUNDS
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void TARGET(RETURN_GENERATOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11044,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11051,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11056,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11059,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11060,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11061,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11061,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11062,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11063,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11066,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11067,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11068,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11070,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11074,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 11055
        line_start: 11055
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 11060
        line_start: 11060
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11076
      start: 11037
    functionDepth: 1
    functionLinenumber: 11037
    functionLinenumberEnd: 11076
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - LOAD_IP
    - PyStackRef_MakeHeapSafe
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_LeaveRecursiveCallPy
    - _PyFrame_GetStackPointer
    - DTRACE_FUNCTION_RETURN
    - LLTRACE_RESUME_FRAME
    - assert
    - _PyEval_FrameClearAndPop
    - ASSERT_WITHIN_STACK_BOUNDS
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void TARGET(RETURN_VALUE)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11085,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11096,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11099,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11101,1
    - Dst: _Py_Specialize_Send
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11102,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11103,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11104,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11106,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11107,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11114,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11115,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11116,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11117,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11117,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11118,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11122,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11122,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11124,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11127,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11129,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11131,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11133,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11133,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11134,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11135,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11136,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11137,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11138,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11139,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11141,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11143,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11148,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11149,1
    - Dst: _PyIter_Send
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11150,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11151,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11153,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11156,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11157,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11158,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11159,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11160,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11162,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 11114
        line_start: 11114
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ( 2u + oparg <= UINT16_MAX)
      pos:
        line_end: 11126
        line_start: 11126
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (gen_frame->previous == NULL)
      pos:
        line_end: 11128
        line_start: 11128
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11170
      start: 11078
    functionDepth: 1
    functionLinenumber: 11078
    functionLinenumberEnd: 11170
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_IsError
    - PyStackRef_MakeHeapSafe
    - DISPATCH
    - PyStackRef_IsNone
    - gen_try_set_executing
    - assert
    - OPCODE_DEFERRED_INC
    - Py_TYPE
    - JUMPBY
    - DISPATCH_SAME_OPARG
    - PyStackRef_FromPyObjectSteal
    - read_u16
    - _PyForIter_VirtualIteratorNext
    - INSTRUCTION_STATS
    - PyStackRef_IsValid
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - _PyFrame_StackPush
    - PyStackRef_IsNull
    - _Py_Specialize_Send
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyIter_Send
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11181,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11193,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11194,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11195,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11196,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11197,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11204,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11205,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11205,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11206,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11208,1
    - Dst: _PyAsyncGenASend_Send
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11209,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11210,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11212,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11215,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11216,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11217,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11218,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11221,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11223,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11230,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11195
        line_start: 11195
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyAsyncGenASend_CheckExact(iter_o))
      pos:
        line_end: 11204
        line_start: 11204
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11232
      start: 11172
    functionDepth: 1
    functionLinenumber: 11172
    functionLinenumberEnd: 11232
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyAsyncGenASend_CheckExact
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - _PyAsyncGenASend_Send
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND_ASYNC_GEN)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11243,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11252,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11253,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11254,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11255,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11262,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11263,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11264,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11265,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11266,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11268,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11269,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11270,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11271,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11273,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11275,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11275,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11278,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11281,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11286,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11286,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11287,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11289,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11290,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11291,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11292,1
    - Dst: LOAD_SP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11295,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11296,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11297,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11298,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11253
        line_start: 11253
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 11290
        line_start: 11290
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11264
        line_start: 11264
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11269
        line_start: 11269
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: ( 2u + oparg <= UINT16_MAX)
      pos:
        line_end: 11277
        line_start: 11277
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 11285
        line_start: 11285
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11301
      start: 11234
    functionDepth: 1
    functionLinenumber: 11234
    functionLinenumberEnd: 11301
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_MakeHeapSafe
    - DISPATCH
    - gen_try_set_executing
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - _PyFrame_StackPush
    - LOAD_SP
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND_GEN)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11312,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11324,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11325,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11326,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11327,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11333,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11334,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11335,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11336,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11344,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11345,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11346,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11347,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11348,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11353,1
    - Dst: JUMPBY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11356,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11357,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11359,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11360,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11325
        line_start: 11325
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11334
        line_start: 11334
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11365
      start: 11303
    functionDepth: 1
    functionLinenumber: 11303
    functionLinenumberEnd: 11365
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - Py_TYPE
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - JUMPBY
    - PyStackRef_TagInt
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    - PyStackRef_UntagInt
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND_VIRTUAL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11374,1
    - Dst: LOCALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11375,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11376,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11377,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11379,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11380,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11383,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11384,1
    - Dst: LOCALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11384,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11384,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11385,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11387,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11390,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11391,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11392,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11394,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11396,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11397,1
    - Dst: LOCALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11397,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11399,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11400,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11402,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11407,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11408,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11411
      start: 11367
    functionDepth: 1
    functionLinenumber: 11367
    functionLinenumberEnd: 11411
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - _PyMapping_GetOptionalItem2
    - LOCALS
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyDict_New
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - PyObject_SetItem
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void TARGET(SETUP_ANNOTATIONS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11420,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11425,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11426,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11426,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11427,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11428,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11430,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11433,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11435
      start: 11413
    functionDepth: 1
    functionLinenumber: 11413
    functionLinenumberEnd: 11435
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - _PySet_AddTakeRef
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_ADD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11444,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11450,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11451,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11453,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11453,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11455,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11457,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11461,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 11452
        line_start: 11452
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (offset != 0)
      pos:
        line_end: 11454
        line_start: 11454
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (*ptr == NULL)
      pos:
        line_end: 11456
        line_start: 11456
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11463
      start: 11437
    functionDepth: 1
    functionLinenumber: 11437
    functionLinenumberEnd: 11463
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_FUNCTION_ATTRIBUTE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11472,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11481,1
    - Dst: _PySet_Update
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11482,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11482,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11483,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11484,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11486,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11494,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11495,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11496,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11497,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11500
      start: 11465
    functionDepth: 1
    functionLinenumber: 11465
    functionLinenumberEnd: 11500
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PySet_Update
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_UPDATE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11509,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11518,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11521,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11522,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11524,1
    - Dst: _Py_Specialize_StoreAttr
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11525,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11526,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11527,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11529,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11530,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11537,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11538,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11539,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11539,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11540,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11544,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11548,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11549,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11551,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11553,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11557
      start: 11502
    functionDepth: 1
    functionLinenumber: 11502
    functionLinenumberEnd: 11557
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyObject_SetAttr
    - PyStackRef_CLOSE
    - DISPATCH
    - _Py_Specialize_StoreAttr
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11568,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11577,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11577,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11578,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11579,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11580,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11586,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11587,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11588,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11589,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11590,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11591,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11593,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11594,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11595,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11601,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11602,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11603,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11603,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11604,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11605,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11605,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11606,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11608,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11609,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11610,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11617,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11618,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11619,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11620,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11620,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11623,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11623,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11625,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11627,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11629,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11633,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11634,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11635,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11636,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11642,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11643,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11644,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11645,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11647,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11608
        line_start: 11608
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 11587
        line_start: 11587
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11593
        line_start: 11593
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 11602
        line_start: 11602
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyObject_GetManagedDict(owner_o) == NULL)
      pos:
        line_end: 11619
        line_start: 11619
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11578
        line_start: 11578
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 11601
        line_start: 11601
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11648
      start: 11559
    functionDepth: 1
    functionLinenumber: 11559
    functionLinenumberEnd: 11648
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyObject_InlineValues
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - assert
    - Py_TYPE
    - _PyObject_GetManagedDict
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - Py_XDECREF
    - FT_ATOMIC_LOAD_UINT8
    - read_u32
    - STAT_INC
    - read_u16
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - UNLOCK_OBJECT
    - _PyDictValues_AddToInsertionOrder
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - LOCK_OBJECT
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR_INSTANCE_VALUE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11659,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11668,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11669,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11669,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11670,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11671,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11672,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11673,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11674,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11680,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11681,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11682,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11683,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11684,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11685,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11688,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11690,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11690,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11691,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11695,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11696,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11697,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11698,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11704,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11705,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11706,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11707,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 11669
        line_start: 11669
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11672
        line_start: 11672
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11683
        line_start: 11683
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11710
      start: 11650
    functionDepth: 1
    functionLinenumber: 11650
    functionLinenumberEnd: 11710
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - assert
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - Py_XDECREF
    - read_u32
    - STAT_INC
    - read_u16
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - UNLOCK_OBJECT
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - LOCK_OBJECT
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR_SLOT)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11721,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11730,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11731,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11731,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11732,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11733,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11734,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11735,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11736,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11742,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11743,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11744,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11744,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11745,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11747,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11748,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11749,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11751,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11752,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11753,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11754,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11756,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11756,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11757,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11760,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11762,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11763,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11764,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11767,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11769,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11771,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11772,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11773,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11778,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11780,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11781,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11782,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11785,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11786,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11786,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11787,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11788,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11788,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11789,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11790,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11794,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11795,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11796,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11797,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11803,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11804,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11805,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11806,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11808,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 11731
        line_start: 11731
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11734
        line_start: 11734
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11747
        line_start: 11747
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11752
        line_start: 11752
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 11755
        line_start: 11755
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11780
        line_start: 11780
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 11743
        line_start: 11743
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11762
        line_start: 11762
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11771
        line_start: 11771
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 11809
      start: 11712
    functionDepth: 1
    functionLinenumber: 11712
    functionLinenumberEnd: 11809
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - assert
    - DK_UNICODE_ENTRIES
    - Py_TYPE
    - _PyObject_GetManagedDict
    - _PyDict_NotifyEvent
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - Py_XDECREF
    - read_u32
    - STAT_INC
    - read_u16
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyDict_CheckExact
    - UNLOCK_OBJECT
    - GETITEM
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - LOCK_OBJECT
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR_WITH_HINT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11818,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11821,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11821,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11822,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11823,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11823,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11824,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11826,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11828
      start: 11811
    functionDepth: 1
    functionLinenumber: 11811
    functionLinenumberEnd: 11828
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - PyCell_SetTakeRef
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_DEREF)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11837,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11843,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11844,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11851,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11852,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11853,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11854,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11857
      start: 11830
    functionDepth: 1
    functionLinenumber: 11830
    functionLinenumberEnd: 11857
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11866,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11872,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11873,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11874,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11874,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11876,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11877,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11878,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11880
      start: 11859
    functionDepth: 1
    functionLinenumber: 11859
    functionLinenumberEnd: 11880
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - PyStackRef_DUP
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_FAST_LOAD_FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11889,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11896,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11897,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11899,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11900,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11901,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11902,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11903,1
    - Dst: GETLOCAL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11904,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11906,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11907,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11908,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11909,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11882
    functionDepth: 1
    functionLinenumber: 11882
    functionLinenumberEnd: 11911
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_FAST_STORE_FAST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11920,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11923,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11924,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11925,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11925,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11925,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11926,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11928,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11929,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11930,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11931,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11933,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11936
      start: 11913
    functionDepth: 1
    functionLinenumber: 11913
    functionLinenumberEnd: 11936
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - GLOBALS
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - PyDict_SetItem
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_GLOBAL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11945,1
    - Dst: GETITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11948,1
    - Dst: LOCALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11949,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11952,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11953,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11955,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11957,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11958,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11959,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11960,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11961,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11963,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11964,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11965,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11965,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11966,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11969,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11970,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11970,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11971,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11974,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11975,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11976,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11977,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11979,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11982
      start: 11938
    functionDepth: 1
    functionLinenumber: 11938
    functionLinenumberEnd: 11982
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - LOCALS
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - PyDict_SetItem
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyDict_CheckExact
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyObject_SetItem
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_NAME)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11991,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:11999,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12008,1
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12009,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12009,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12010,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12012,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12019,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12020,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12021,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12021,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12021,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12022,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12023,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12026,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12030,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12034,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12035,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12037,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12039,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12043
      start: 11984
    functionDepth: 1
    functionLinenumber: 11984
    functionLinenumberEnd: 12043
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyBuildSlice_ConsumeRefs
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyObject_SetItem
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SLICE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12052,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12063,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12066,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12068,1
    - Dst: _Py_Specialize_StoreSubscr
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12069,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12070,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12071,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12073,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12074,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12080,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12081,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12081,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12081,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12081,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12085,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12089,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12093,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12094,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12096,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12098,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12102
      start: 12045
    functionDepth: 1
    functionLinenumber: 12045
    functionLinenumberEnd: 12102
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_Specialize_StoreSubscr
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyObject_SetItem
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SUBSCR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12113,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12123,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12124,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12125,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12126,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12127,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12129,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12130,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12131,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12132,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12141,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12142,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12142,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12143,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12144,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12145,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12146,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12147,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12148,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12151,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12152,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12153,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12154,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12155,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12163,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12164,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12165,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12166,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_TYPE(dict)->tp_as_mapping->mp_ass_subscript == _PyDict_StoreSubscript)
      pos:
        line_end: 12141
        line_start: 12141
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12130
        line_start: 12130
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12125
        line_start: 12125
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12169
      start: 12104
    functionDepth: 1
    functionLinenumber: 12104
    functionLinenumberEnd: 12169
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _PyDict_SetItem_Take2
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SUBSCR_DICT)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12180,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12191,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12192,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12193,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12194,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12195,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12201,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12202,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12203,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12204,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12205,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12214,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12215,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12216,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12216,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12217,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12217,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12218,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12219,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12220,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12221,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12222,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12224,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12229,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12231,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12232,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12233,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12236,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12237,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12238,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12238,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12239,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12240,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12241,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12247,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12249,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12250,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12255,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12255,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12255,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12256,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12262,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12263,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12264,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12265,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12193
        line_start: 12193
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (old_value != NULL)
      pos:
        line_end: 12239
        line_start: 12239
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 12254
        line_start: 12254
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 12216
        line_start: 12216
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12231
        line_start: 12231
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12203
        line_start: 12203
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 12215
        line_start: 12215
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12220
        line_start: 12220
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12268
      start: 12171
    functionDepth: 1
    functionLinenumber: 12171
    functionLinenumberEnd: 12268
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - PyList_GET_ITEM
    - assert
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_AsPyObjectBorrow
    - STAT_INC
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyLong_CheckExact
    - Py_DECREF
    - _PyLong_CompactValue
    - _PyList_ITEMS
    - UNLOCK_OBJECT
    - PyStackRef_XCLOSE
    - _PyFrame_GetStackPointer
    - _PyLong_CheckExactAndCompact
    - PyList_CheckExact
    - PyList_GET_SIZE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - LOCK_OBJECT
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SUBSCR_LIST_INT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12277,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12288
      start: 12270
    functionDepth: 1
    functionLinenumber: 12270
    functionLinenumberEnd: 12288
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(SWAP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12297,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12306,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12309,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12311,1
    - Dst: _Py_Specialize_ToBool
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12312,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12313,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12314,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12316,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12317,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12323,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12324,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12324,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12325,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12327,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12328,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12329,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12330,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12332,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12338,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12340
      start: 12290
    functionDepth: 1
    functionLinenumber: 12290
    functionLinenumberEnd: 12340
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyObject_IsTrue
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _Py_Specialize_ToBool
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12351,1
    - Dst: read_u32
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12361,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12362,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12362,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12363,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12364,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12365,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12366,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12367,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12380,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12381,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12382,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 12362
        line_start: 12362
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12365
        line_start: 12365
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12385
      start: 12342
    functionDepth: 1
    functionLinenumber: 12342
    functionLinenumberEnd: 12385
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_ALWAYS_TRUE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12396,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12402,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12403,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12404,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12405,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12407,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12403
        line_start: 12403
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12409
      start: 12387
    functionDepth: 1
    functionLinenumber: 12387
    functionLinenumberEnd: 12409
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_BoolCheck
    - assert
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_BOOL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12420,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12428,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12429,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12430,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12431,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12432,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12439,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12440,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12441,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12447,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12447,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12447,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12448,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12430
        line_start: 12430
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 12446
        line_start: 12446
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12452
      start: 12411
    functionDepth: 1
    functionLinenumber: 12411
    functionLinenumberEnd: 12452
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyLong_IsZero
    - JUMP_TO_PREDICTED
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_INT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12463,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12472,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12473,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12474,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12475,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12476,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12484,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12485,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12485,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12486,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12487,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12494,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12495,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12496,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12474
        line_start: 12474
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyList_CheckExact(value_o))
      pos:
        line_end: 12484
        line_start: 12484
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12499
      start: 12454
    functionDepth: 1
    functionLinenumber: 12454
    functionLinenumberEnd: 12499
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyList_GET_SIZE
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_LIST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12510,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12517,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12518,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12519,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12520,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12522,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12518
        line_start: 12518
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12526
      start: 12501
    functionDepth: 1
    functionLinenumber: 12501
    functionLinenumberEnd: 12526
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - assert
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12537,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12545,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12546,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12547,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12548,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12549,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12556,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12557,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12558,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12564,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12564,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12564,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12565,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12547
        line_start: 12547
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 12563
        line_start: 12563
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12569
      start: 12528
    functionDepth: 1
    functionLinenumber: 12528
    functionLinenumberEnd: 12569
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - _Py_STR
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_STR)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12581,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12584,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12584,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12598,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12599,1
    - Dst: _PyJit_translate_single_bytecode_to_trace
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12600,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12601,1
    - Dst: LEAVE_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12603,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12604,1
    - Dst: stop_tracing_and_jit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12605,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12606,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12608,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12610,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12613,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12614,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12615,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12619,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12621,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12622,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12622,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12623,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12627,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12627,1
    - Dst: IS_CONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12631,1
    - Dst: trigger_backoff_counter
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12632,1
    - Dst: doesnt_escape
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12637,1
    - Dst: DISPATCH_GOTO_NON_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12640,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12643,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (IS_JIT_TRACING())
      pos:
        line_end: 12583
        line_start: 12583
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (tracer != NULL)
      pos:
        line_end: 12597
        line_start: 12597
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12645
      start: 12571
    functionDepth: 1
    functionLinenumber: 12571
    functionLinenumberEnd: 12645
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyJit_translate_single_bytecode_to_trace
    - stop_tracing_and_jit
    - LEAVE_TRACING
    - DISPATCH
    - PyStackRef_IsNone
    - assert
    - IS_JIT_TRACING
    - INSTRUCTION_STATS
    - trigger_backoff_counter
    - JUMP_TO_LABEL
    - IS_CONDITIONAL_JUMP_OPCODE
    - Py_NewRef
    - Py_FatalError
    - doesnt_escape
    - Py_SETREF
    - Py_CLEAR
    - DISPATCH_GOTO_NON_TRACING
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void TARGET(TRACE_RECORD)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12654,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12661,1
    - Dst: PyNumber_Invert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12662,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12662,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12663,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12665,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12667,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12674,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12675,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12676,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12679
      start: 12647
    functionDepth: 1
    functionLinenumber: 12647
    functionLinenumberEnd: 12679
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyNumber_Invert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_INVERT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12688,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12695,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12696,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12696,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12697,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12699,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12701,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12708,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12709,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12710,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12713
      start: 12681
    functionDepth: 1
    functionLinenumber: 12681
    functionLinenumberEnd: 12713
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyNumber_Negative
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_NEGATIVE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12722,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12726,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12726,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12727,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(value))
      pos:
        line_end: 12725
        line_start: 12725
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12731
      start: 12715
    functionDepth: 1
    functionLinenumber: 12715
    functionLinenumberEnd: 12731
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_IsFalse
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_BoolCheck
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_NOT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12740,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12745,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12747,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12748,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12750,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12751,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12753,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12756,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12758
      start: 12733
    functionDepth: 1
    functionLinenumber: 12733
    functionLinenumberEnd: 12758
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - _PyEval_UnpackIterableStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_EX)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12767,1
    - Dst: read_u16
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12776,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12779,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12781,1
    - Dst: _Py_Specialize_UnpackSequence
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12782,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12783,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12784,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12786,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12787,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12795,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12797,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12798,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12800,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12801,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12803,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12807,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12809
      start: 12760
    functionDepth: 1
    functionLinenumber: 12760
    functionLinenumberEnd: 12809
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - PyStackRef_AsPyObjectSteal
    - read_u16
    - _Py_Specialize_UnpackSequence
    - _PyEval_UnpackIterableStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12820,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12828,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12829,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12830,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12831,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12832,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12840,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12841,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12841,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12842,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12843,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12844,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12845,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12847,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12848,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12850,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12851,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12852,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12855,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12856,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12858,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12860,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12862,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12863,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12864,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12865,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12867,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyList_CheckExact(seq_o))
      pos:
        line_end: 12840
        line_start: 12840
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12850
        line_start: 12850
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12830
        line_start: 12830
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12843
        line_start: 12843
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12868
      start: 12811
    functionDepth: 1
    functionLinenumber: 12811
    functionLinenumberEnd: 12868
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - UNLOCK_OBJECT
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyList_GET_SIZE
    - _PyList_ITEMS
    - UPDATE_MISS_STATS
    - LOCK_OBJECT
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE_LIST)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12879,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12887,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12888,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12889,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12890,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12891,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12899,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12900,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12900,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12901,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12902,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12903,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12904,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12906,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12907,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12909,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12912,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12913,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12914,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12915,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12889
        line_start: 12889
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12902
        line_start: 12902
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 12899
        line_start: 12899
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12918
      start: 12870
    functionDepth: 1
    functionLinenumber: 12870
    functionLinenumberEnd: 12918
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyTuple_ITEMS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE_TUPLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12929,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12938,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12939,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12940,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12941,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12942,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12949,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12950,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12951,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12951,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12952,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12953,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12954,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12955,1
    - Dst: STAT_INC
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12957,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12958,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12958,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12959,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12959,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12963,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12964,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12965,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12966,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12953
        line_start: 12953
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12940
        line_start: 12940
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 12950
        line_start: 12950
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 2)
      pos:
        line_end: 12948
        line_start: 12948
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 12969
      start: 12920
    functionDepth: 1
    functionLinenumber: 12920
    functionLinenumberEnd: 12969
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - PyTuple_GET_ITEM
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE_TWO_TUPLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12978,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12989,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12990,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12991,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12991,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12992,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12993,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12997,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:12997,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13001,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13002,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13003,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13004,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13006,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13008,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13009,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13010,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13012,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13014,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13017,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_IsTaggedInt(lasti))
      pos:
        line_end: 12996
        line_start: 12996
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (val_o && PyExceptionInstance_Check(val_o))
      pos:
        line_end: 12990
        line_start: 12990
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13019
      start: 12971
    functionDepth: 1
    functionLinenumber: 12971
    functionLinenumberEnd: 13019
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyObject_Vectorcall
    - PyExceptionInstance_Class
    - INSTRUCTION_STATS
    - PyStackRef_IsTaggedInt
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - PyException_GetTraceback
    - Py_XDECREF
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyExceptionInstance_Check
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(WITH_EXCEPT_START)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13028,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13035,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13040,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13042,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13043,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13044,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13047,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13048,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13049,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13052,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13057,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13058,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13060,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13061,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13062,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13063,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13063,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13064,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13067,1
    - Dst: LOAD_IP
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13068,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13070,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13074,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (i >= 0 && i <= INT_MAX)
      pos:
        line_end: 13061
        line_start: 13061
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (opcode == SEND || opcode == FOR_ITER)
      pos:
        line_end: 13063
        line_start: 13063
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 13043
        line_start: 13043
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1)
      pos:
        line_end: 13042
        line_start: 13042
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 13039
        line_start: 13039
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 13057
        line_start: 13057
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13076
      start: 13021
    functionDepth: 1
    functionLinenumber: 13021
    functionLinenumberEnd: 13076
    functionName: TARGET
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 0
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyGen_GetGeneratorFromFrame
    - PyStackRef_MakeHeapSafe
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_LeaveRecursiveCallPy
    - PyStackRef_IsNone
    - _PyFrame_GetBytecode
    - DTRACE_FUNCTION_RETURN
    - _Py_GetBaseCodeUnit
    - _PyFrame_GetStackPointer
    - LLTRACE_RESUME_FRAME
    - FT_ATOMIC_STORE_INT8_RELEASE
    - assert
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(YIELD_VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13107,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13107,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 13106
        line_start: 13106
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13109
      start: 13104
    functionDepth: 1
    functionLinenumber: 13104
    functionLinenumberEnd: 13109
    functionName: LABEL
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 138
    functionsReached:
    - WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(pop_2_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13114,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13114,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 13113
        line_start: 13113
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13116
      start: 13111
    functionDepth: 1
    functionLinenumber: 13111
    functionLinenumberEnd: 13116
    functionName: LABEL
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 139
    functionsReached:
    - WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(pop_1_error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13121,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13122,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13123,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13125,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13128,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13128,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13130,1
    - Dst: STOP_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13131,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13132,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13133,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13134,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13135,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13136,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13137,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13139,1
    - Dst: PyTraceBack_Here
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13140,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13141,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13144,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13145,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 13127
        line_start: 13127
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 13132
        line_start: 13132
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13147
      start: 13118
    functionDepth: 1
    functionLinenumber: 13118
    functionLinenumberEnd: 13147
    functionName: LABEL
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 140
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_MonitorRaise
    - STOP_TRACING
    - _PyFrame_GetStackPointer
    - _PyErr_SetString
    - _PyErr_Occurred
    - _PyFrame_IsIncomplete
    - JUMP_TO_LABEL
    - assert
    - _PyFrame_GetFrameObject
    - PyTraceBack_Here
    linkageType: ''
    returnType: void
    signature: void LABEL(error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STOP_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13151,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13152,1
    - Dst: get_exception_handler
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13154,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13154,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13156,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13156,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13157,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13159,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13160,1
    - Dst: monitor_unwind
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13162,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13163,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13165,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13165,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13166,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13167,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13169,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13170,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13173,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13174,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13175,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13177,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13178,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13178,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13179,1
    - Dst: monitor_handled
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13180,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13182,1
    - Dst: lltrace_resume_frame
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13186,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13189,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 13155
        line_start: 13155
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (frame->stackpointer >= new_top)
      pos:
        line_end: 13166
        line_start: 13166
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (STACK_LEVEL() >= level)
      pos:
        line_end: 13164
        line_start: 13164
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13194
      start: 13149
    functionDepth: 1
    functionLinenumber: 13149
    functionLinenumberEnd: 13194
    functionName: LABEL
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 141
    functionsReached:
    - DISPATCH
    - _PyFrame_GetBytecode
    - _PyErr_GetRaisedException
    - assert
    - _PyFrame_Stackbase
    - monitor_unwind
    - INSTR_OFFSET
    - _PyInterpreterFrame_LASTI
    - PyStackRef_FromPyObjectSteal
    - get_exception_handler
    - STOP_TRACING
    - _PyFrame_GetCode
    - JUMP_TO_LABEL
    - _PyFrame_StackPush
    - _PyErr_Occurred
    - _PyFrame_StackPop
    - PyStackRef_TagInt
    - PyStackRef_XCLOSE
    - lltrace_resume_frame
    - _PyFrame_GetStackPointer
    - monitor_handled
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void LABEL(exception_unwind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13198,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13198,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13199,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 13197
        line_start: 13197
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13201
      start: 13196
    functionDepth: 1
    functionLinenumber: 13196
    functionLinenumberEnd: 13201
    functionName: LABEL
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 142
    functionsReached:
    - DTRACE_FUNCTION_RETURN
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(exit_unwind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13205,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13205,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13206,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13207,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13210,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13215,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13219,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13220,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13221,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13222,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13228,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 13204
        line_start: 13204
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 13206
        line_start: 13206
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (frame == &entry.frame)
      pos:
        line_end: 13214
        line_start: 13214
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 13218
        line_start: 13218
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13230
      start: 13203
    functionDepth: 1
    functionLinenumber: 13203
    functionLinenumberEnd: 13230
    functionName: LABEL
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 143
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_GetStackPointer
    - _Py_LeaveRecursiveCallPy
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyEval_FrameClearAndPop
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void LABEL(exit_unwind_notrace)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursivePy
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13234,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13236,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13238,1
    - Dst: maybe_lltrace_resume_frame
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13241,1
    - Dst: GLOBALS
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13241,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13243,1
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13246,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13246,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13248,1
    - Dst: DISPATCH
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 13245
        line_start: 13245
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13253
      start: 13232
    functionDepth: 1
    functionLinenumber: 13232
    functionLinenumberEnd: 13253
    functionName: LABEL
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 144
    functionsReached:
    - maybe_lltrace_resume_frame
    - GLOBALS
    - DISPATCH
    - _PyFrame_GetStackPointer
    - _Py_EnterRecursivePy
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - DTRACE_FUNCTION_ENTRY
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(start_frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13261,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13261,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13263,1
    - Dst: _PyJit_translate_single_bytecode_to_trace
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13264,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13265,1
    - Dst: LEAVE_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13266,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13267,1
    - Dst: stop_tracing_and_jit
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13268,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13269,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13271,1
    - Dst: DISPATCH_GOTO_NON_TRACING
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13273,1
    - Dst: Py_FatalError
      Src: /src/cpython/Modules/_testinternalcapi/test_cases.c.h:13275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (IS_JIT_TRACING())
      pos:
        line_end: 13260
        line_start: 13260
        source_file: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    constantsTouched: []
    func_position:
      end: 13277
      start: 13258
    functionDepth: 1
    functionLinenumber: 13258
    functionLinenumberEnd: 13277
    functionName: LABEL
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/test_cases.c.h
    functionUses: 145
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyJit_translate_single_bytecode_to_trace
    - Py_FatalError
    - stop_tracing_and_jit
    - LEAVE_TRACING
    - assert
    - JUMP_TO_LABEL
    - DISPATCH_GOTO_NON_TRACING
    - _PyFrame_GetStackPointer
    - IS_JIT_TRACING
    linkageType: ''
    returnType: void
    signature: void LABEL(stop_tracing)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:40,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:45,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:47,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:48,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:50,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: PyLong_AsInt
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:72,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:73,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:79,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:80,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:88,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:90,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:91,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:93,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:103,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:106,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:108,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:116,1
    - Dst: _testinternalcapi_benchmark_locks_impl
      Src: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h:121,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 94
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 125
    functionName: _testinternalcapi_benchmark_locks
    functionSourceFile: /src/cpython/Modules/_testinternalcapi/clinic/test_lock.c.h
    functionUses: 0
    functionsReached:
    - _testinternalcapi_benchmark_locks_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyObject_IsTrue
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:
    - PyCapsule_GetPointer
    - PyMem_Free
    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:
    - get_module_state_by_class
    - _CFieldObject_CAST
    - _ctypes_get_fielddesc
    - assert
    - PyCArrayTypeObject_Check
    - PyStgInfo_FromType
    - PyUnicode_FromObject
    - PyUnicode_CheckExact
    - PyErr_SetString
    - PyErr_Format
    - PyErr_Occurred
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    - PyLong_AsSsize_t
    - Py_NewRef
    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:
    - _CDataObject_CAST
    - _pack_legacy_size
    - get_module_state_by_class
    - _CFieldObject_CAST
    - CDataObject_Check
    - PyErr_SetString
    - PyCData_set
    - Py_TYPE
    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:
    - _CDataObject_CAST
    - _pack_legacy_size
    - get_module_state_by_class
    - _CFieldObject_CAST
    - PyCData_get
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - CDataObject_Check
    - PyErr_SetString
    - Py_NewRef
    - Py_TYPE
    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:
    - _pack_legacy_size
    - PyLong_FromSsize_t
    - _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:
    - PyLong_FromLong
    - _CFieldObject_CAST
    - PyNumber_Multiply
    - PyLong_FromSsize_t
    - Py_XDECREF
    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_VISIT
    - _CFieldObject_CAST
    - Py_TYPE
    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:
    - PyObject_GC_UnTrack
    - PyCField_clear
    - Py_DECREF
    - Py_TYPE
    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:
    - _CFieldObject_CAST
    - PyUnicode_FromFormat
    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: 25
    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
    - NUM_BITS
    - assert
    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
    - NUM_BITS
    - assert
    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
    - NUM_BITS
    - assert
    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
    - NUM_BITS
    - assert
    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
    - assert
    - memcpy
    - NUM_BITS
    - PyErr_Occurred
    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
    - NUM_BITS
    - assert
    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
    - assert
    - memcpy
    - NUM_BITS
    - PyErr_Occurred
    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
    - NUM_BITS
    - assert
    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: Zd_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - assert
    - memcpy
    - NUM_BITS
    - PyErr_Occurred
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zd_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: Zd_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - memcpy
    - NUM_BITS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zd_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:798,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:798,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_ctypes/cfield.c:799,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:801,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:805,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:806,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:811,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:812,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:817,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == 2*sizeof(double)))
      pos:
        line_end: 797
        line_start: 797
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 818
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 818
    functionName: Zd_set_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack8
    - _RET
    - NUM_BITS
    - PyErr_Occurred
    - assert
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zd_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:823,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:823,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:825,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:825,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:826,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:828,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:828,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:829,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: 822
        line_start: 822
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 831
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 831
    functionName: Zd_get_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack8
    - PyComplex_FromDoubles
    - NUM_BITS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zd_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:837,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:837,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_ctypes/cfield.c:838,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:840,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:844,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:845,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: 836
        line_start: 836
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 846
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 846
    functionName: Zf_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - assert
    - memcpy
    - NUM_BITS
    - PyErr_Occurred
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zf_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:851,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:851,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:854,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:855,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: 850
        line_start: 850
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 856
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 856
    functionName: Zf_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - memcpy
    - NUM_BITS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zf_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:861,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:861,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_ctypes/cfield.c:862,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:864,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:868,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:869,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:874,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:875,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (NUM_BITS(size) || (size == 2*sizeof(float)))
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 881
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 881
    functionName: Zf_set_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyFloat_Pack4
    - NUM_BITS
    - PyErr_Occurred
    - assert
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zf_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:886,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:886,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:888,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:888,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:889,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:891,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:891,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:892,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: 885
        line_start: 885
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 894
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 894
    functionName: Zf_get_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - PyFloat_Unpack4
    - NUM_BITS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zf_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:900,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:900,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_ctypes/cfield.c:901,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:903,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:907,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:908,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: 899
        line_start: 899
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 909
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 909
    functionName: Zg_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - assert
    - memcpy
    - NUM_BITS
    - PyErr_Occurred
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zg_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:914,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:914,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:917,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_ctypes/cfield.c:918,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: 913
        line_start: 913
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 919
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 919
    functionName: Zg_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromDoubles
    - memcpy
    - NUM_BITS
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Zg_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:927,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:927,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:930,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:931,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:934,1
    - Dst: PyFloat_Pack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:937,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:940,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: 926
        line_start: 926
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 941
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 941
    functionName: d_set_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack8
    - _RET
    - PyFloat_AsDouble
    - NUM_BITS
    - PyErr_Occurred
    - 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:946,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:946,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:948,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:948,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:950,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Modules/_ctypes/cfield.c:950,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: 945
        line_start: 945
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 952
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 952
    functionName: d_get_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack8
    - PyFloat_FromDouble
    - NUM_BITS
    - assert
    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:958,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:958,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:961,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:962,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:964,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:965,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: 957
        line_start: 957
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 966
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 966
    functionName: f_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyFloat_AsDouble
    - assert
    - memcpy
    - NUM_BITS
    - PyErr_Occurred
    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:971,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:971,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:973,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:974,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: 970
        line_start: 970
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 975
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 975
    functionName: f_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_FromDouble
    - NUM_BITS
    - assert
    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:980,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:980,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:983,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:984,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:987,1
    - Dst: PyFloat_Pack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:990,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:993,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: 979
        line_start: 979
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 994
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 994
    functionName: f_set_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - PyFloat_AsDouble
    - PyFloat_Pack4
    - NUM_BITS
    - PyErr_Occurred
    - 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:999,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:999,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:1001,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:1001,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/cfield.c:1003,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Modules/_ctypes/cfield.c:1003,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: 998
        line_start: 998
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1005
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1005
    functionName: f_get_sw
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack4
    - PyFloat_FromDouble
    - NUM_BITS
    - assert
    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:1021,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1021,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:1024,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1026,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:1030,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: 1020
        line_start: 1020
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1031
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1031
    functionName: O_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - NUM_BITS
    - PyErr_Occurred
    - assert
    - Py_NewRef
    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:1036,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1036,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:1039,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: 1035
        line_start: 1035
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1040
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1040
    functionName: O_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - NUM_BITS
    - assert
    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:1047,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1047,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1048,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1049,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1050,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1053,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/cfield.c:1056,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1057,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1059,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1060,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1061,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1064,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Modules/_ctypes/cfield.c:1067,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1068,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1070,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_ctypes/cfield.c:1072,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:1073,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1077,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1081,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1083,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: 1046
        line_start: 1046
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1088
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1088
    functionName: c_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyBytes_AS_STRING
    - _RET
    - PyBytes_Check
    - PyErr_SetString
    - PyLong_Check
    - PyByteArray_GET_SIZE
    - NUM_BITS
    - PyErr_Format
    - assert
    - PyErr_Occurred
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_AS_STRING
    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:1094,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1094,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/cfield.c:1095,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: 1093
        line_start: 1093
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1096
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1096
    functionName: c_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - NUM_BITS
    - assert
    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:1102,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1102,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1105,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1106,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1112,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_ctypes/cfield.c:1114,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1115,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_ctypes/cfield.c:1117,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1120,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1129,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: 1101
        line_start: 1101
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1130
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1130
    functionName: u_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - assert
    - PyUnicode_Check
    - NUM_BITS
    - PyErr_Format
    - PyUnicode_AsWideChar
    - PyUnicode_GET_LENGTH
    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:1136,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1136,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1137,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: 1135
        line_start: 1135
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1138
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1138
    functionName: u_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - NUM_BITS
    - assert
    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:1161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1162
    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:1170,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1171,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1173,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1177,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1184,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1186,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/cfield.c:1191,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:1195,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: 1183
        line_start: 1183
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1196
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1196
    functionName: U_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_Format
    - assert
    - PyUnicode_AsWideChar
    - Py_NewRef
    - Py_TYPE
    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:1212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1213
    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:1221,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1222,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1224,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/cfield.c:1228,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/cfield.c:1230,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1238,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/cfield.c:1244,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ptr
    - value
    - length
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1247
    functionName: s_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 2
    functionsReached:
    - _RET
    - PyBytes_Check
    - memcpy
    - strlen
    - PyBytes_AS_STRING
    - PyErr_Format
    - Py_TYPE
    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:1255,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1257,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1258,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/cfield.c:1259,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1260,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1262,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1264,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1266,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1268,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1272
    functionName: z_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - _RET
    - PyBytes_Check
    - PyLong_AsUnsignedLongLongMask
    - PyLong_Check
    - PyErr_Format
    - PyBytes_AsString
    - Py_NewRef
    - Py_TYPE
    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:1279,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/cfield.c:1280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1284
    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:1296,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1298,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1300,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1302,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1306,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1307,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1309,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1315,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_ctypes/cfield.c:1318,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/cfield.c:1320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1325
    functionName: Z_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - PyLong_AsUnsignedLongLongMask
    - PyUnicode_Check
    - PyCapsule_New
    - PyLong_Check
    - PyErr_Format
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - Py_NewRef
    - Py_TYPE
    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:1333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1337
    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:1350,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/cfield.c:1351,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1353,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1360,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1365,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/cfield.c:1366,1
    - Dst: SysAllocStringLen
      Src: /src/cpython/Modules/_ctypes/cfield.c:1369,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/cfield.c:1370,1
    - Dst: SysFreeString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1376,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1383
    functionName: X_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _RET
    - SysAllocStringLen
    - SysFreeString
    - PyErr_SetString
    - PyUnicode_Check
    - PyErr_Format
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - Py_TYPE
    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:1392,1
    - Dst: SysStringLen
      Src: /src/cpython/Modules/_ctypes/cfield.c:1392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1386
    functionDepth: 1
    functionLinenumber: 1386
    functionLinenumberEnd: 1399
    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:1406,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1406,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1410,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/cfield.c:1413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/cfield.c:1414,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1420,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Modules/_ctypes/cfield.c:1425,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/cfield.c:1428,1
    - Dst: _RET
      Src: /src/cpython/Modules/_ctypes/cfield.c:1432,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: 1405
        line_start: 1405
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1433
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1433
    functionName: P_set
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - _RET
    - PyErr_SetString
    - PyLong_AsUnsignedLongLongMask
    - PyLong_Check
    - NUM_BITS
    - PyErr_Occurred
    - 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:1438,1
    - Dst: NUM_BITS
      Src: /src/cpython/Modules/_ctypes/cfield.c:1438,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/cfield.c:1442,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: 1437
        line_start: 1437
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1443
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1443
    functionName: P_get
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - NUM_BITS
    - PyLong_FromVoidPtr
    - assert
    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:1517,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1525,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1526,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1527,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1528,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1529,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1530,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1531,1
    - Dst: _PACK
      Src: /src/cpython/Modules/_ctypes/cfield.c:1532,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_ctypes/cfield.c:1540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - nbytes
    - is_signed
    argTypes:
    - Py_ssize_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1541
    functionName: _ctypes_fixint_fielddesc
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - _PACK
    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: 1517
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1517
    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: 1559
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1559
    functionName: FIXINT_FIELDDESC_FOR
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXINT_FIELDDESC_FOR(C_TYPE)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1628,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1631,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1634,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1637,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1640,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1643,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1646,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1649,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1652,1
    - Dst: FIXINT_FIELDDESC_FOR
      Src: /src/cpython/Modules/_ctypes/cfield.c:1654,1
    - Dst: TABLE_ENTRY_SW
      Src: /src/cpython/Modules/_ctypes/cfield.c:1678,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1681,1
    - Dst: TABLE_ENTRY_SW
      Src: /src/cpython/Modules/_ctypes/cfield.c:1682,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1683,1
    - Dst: TABLE_ENTRY_SW
      Src: /src/cpython/Modules/_ctypes/cfield.c:1684,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1685,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1688,1
    - Dst: TABLE_ENTRY_SW
      Src: /src/cpython/Modules/_ctypes/cfield.c:1689,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1690,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1693,1
    - Dst: _ctypes_fixint_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:1693,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1695,1
    - Dst: _ctypes_fixint_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:1695,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1697,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1698,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1699,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1700,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1701,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1703,1
    - Dst: TABLE_ENTRY
      Src: /src/cpython/Modules/_ctypes/cfield.c:1705,1
    - Dst: _ctypes_fixint_fielddesc
      Src: /src/cpython/Modules/_ctypes/cfield.c:1714,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1729,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sizeof(formattable.simple_type_chars) == 23)
      pos:
        line_end: 1728
        line_start: 1728
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1756
      start: 1563
    functionDepth: 2
    functionLinenumber: 1563
    functionLinenumberEnd: 1756
    functionName: _ctypes_init_fielddesc
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - TABLE_ENTRY
    - TABLE_ENTRY_SW
    - FIXINT_FIELDDESC_FOR
    - assert
    - _ctypes_fixint_fielddesc
    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: 1669
      start: 1664
    functionDepth: 0
    functionLinenumber: 1664
    functionLinenumberEnd: 1669
    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: 1673
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1673
    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: 1678
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1678
    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: 1763
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1763
    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: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1765
    functionDepth: 0
    functionLinenumber: 1765
    functionLinenumberEnd: 1773
    functionName: _ctypes_get_complex_type_formats
    functionSourceFile: /src/cpython/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      _ctypes_get_complex_type_formats(void)'
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1831,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1832,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/cfield.c:1833,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 105
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts:
    - condition: (result->pffi_type)
      pos:
        line_end: 1830
        line_start: 1830
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    - condition: (result->setfunc)
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    - condition: (result->getfunc)
      pos:
        line_end: 1832
        line_start: 1832
        source_file: /src/cpython/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1835
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1835
    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:
    - malloc
    - vprintf
    - va_end
    - lpVtbl::Release
    - memcpy
    - lpVtbl::AddRef
    - free
    - sqrt
    - csqrtl
    - strchr
    - Xfree
    - strlen
    - f
    - s
    - csqrt
    - strcpy
    - EXPORT
    - strtok
    - va_start
    - printf
    - Xalloc
    - c
    - qsort
    - memset
    - csqrtf
    - func
    - wcslen
    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_end
    - va_start
    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:
    - malloc
    - strlen
    - strcpy
    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:
    - malloc
    - memcpy
    - wcslen
    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:
    - printf
    - Xfree
    - Xalloc
    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: 5
    EdgeCount: 5
    ICount: 24
    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: 999
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 999
    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: 1011
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1011
    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: 1028
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1028
    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: 1039
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1039
    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: 1045
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1045
    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: 1138
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1138
    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: 1145
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1145
    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: 1153
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1153
    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: 1162
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1162
    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: 1172
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1172
    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: 1183
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1183
    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: 1195
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1195
    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: 1208
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1208
    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: 1222
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1222
    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: 1237
      start: 1224
    functionDepth: 0
    functionLinenumber: 1224
    functionLinenumberEnd: 1237
    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:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inp
    argTypes:
    - S2H
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1242
    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:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1243
    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:1255,1
    - Dst: IUnknown*::lpVtbl::Release
      Src: /src/cpython/Modules/_ctypes/_ctypes_test.c:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - punk
    argTypes:
    - IUnknown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1260
    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:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - callback
    - a
    - b
    argTypes:
    - _test_i38748_funcType
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1273
    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:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1281
    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:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1305
    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:
    - PyCapsule_GetPointer
    - PyMem_Free
    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:
    - PyMem_Calloc
    - PyCapsule_IsValid
    - PyErr_SetString
    - PyCapsule_GetPointer
    - PyCapsule_New
    - PyDict_SetItem
    - PyMem_Free
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - PyThreadState_GetDict
    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
    - get_module_state
    - _ctypes_get_errobj
    - 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:
    - get_module_state
    - PyLong_FromLong
    - _ctypes_get_errobj
    - PyArg_ParseTuple
    - Py_DECREF
    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:
    - iswspace
    - FormatMessageW
    - MAKELANGID
    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:
    - PyArg_ParseTuple
    - PyErr_SetFromWindowsErr
    - PyLong_FromLong
    - FAILED
    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_New
    - memset
    - PyObject_GC_Track
    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:
    - _PyCArgObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:
    - Py_CLEAR
    - _PyCArgObject_CAST
    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
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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: strlen
      Src: /src/cpython/Modules/_ctypes/callproc.c:516,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:523,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:527,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:531,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:535,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:540,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_ctypes/callproc.c:544,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_ctypes/callproc.c:544,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:549,1
    - Dst: is_literal_char
      Src: /src/cpython/Modules/_ctypes/callproc.c:553,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:554,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:558,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:569,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/callproc.c:577,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 579
    functionName: PyCArg_repr
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - is_literal_char
    - strcmp
    - _PyCArgObject_CAST
    - PyFloat_FromDouble
    - PyUnicode_FromFormat
    - strlen
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCArg_repr(PyObject *op)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/callproc.c:665,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:670,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:672,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/callproc.c:674,1
    - Dst: StgInfo*::paramfunc
      Src: /src/cpython/Modules/_ctypes/callproc.c:675,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/callproc.c:676,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/callproc.c:680,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/callproc.c:685,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:688,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/callproc.c:689,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:700,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:702,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callproc.c:703,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ctypes/callproc.c:704,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:705,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callproc.c:706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:707,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:715,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_ctypes/callproc.c:717,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:718,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:722,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_ctypes/callproc.c:724,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Modules/_ctypes/callproc.c:727,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/callproc.c:729,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/callproc.c:737,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/callproc.c:737,1
    - Dst: ConvParam
      Src: /src/cpython/Modules/_ctypes/callproc.c:747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:748,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:751,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/callproc.c:753,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: 671
        line_start: 671
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    - condition: (info)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    constantsTouched: []
    func_position:
      end: 756
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 756
    functionName: ConvParam
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 1
    functionsReached:
    - ConvParam
    - Py_END_CRITICAL_SECTION
    - PyBytes_Check
    - memcpy
    - PyErr_Occurred
    - assert
    - PyStgInfo_FromObject
    - PyUnicode_Check
    - StgInfo*::paramfunc
    - PyLong_Check
    - PyCapsule_New
    - PyLong_AsLong
    - PyObject_GetOptionalAttr
    - PyMem_Free
    - Py_SAFE_DOWNCAST
    - PyErr_SetString
    - PyErr_Clear
    - PyLong_AsUnsignedLong
    - PyBytes_AsString
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - Py_NewRef
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Format
    - PyCArg_CheckExact
    - _Py_ID
    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: 767
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 767
    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: 777
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 777
    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:789,1
    - Dst: can_return_struct_as_int
      Src: /src/cpython/Modules/_ctypes/callproc.c:801,1
    - Dst: can_return_struct_as_sint64
      Src: /src/cpython/Modules/_ctypes/callproc.c:803,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - st
    - obj
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 808
    functionName: _ctypes_get_ffi_type
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - can_return_struct_as_sint64
    - PyStgInfo_FromType
    - can_return_struct_as_int
    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:998,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/callproc.c:1005,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_ctypes/callproc.c:1009,1
    - Dst: _ctypes_simple_instance
      Src: /src/cpython/Modules/_ctypes/callproc.c:1012,1
    - Dst: StgInfo*::getfunc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1013,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1019,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1020,1
    - Dst: PyCData_FromBaseObj
      Src: /src/cpython/Modules/_ctypes/callproc.c:1024,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_ctypes/callproc.c:1029,1
    - Dst: _PyTraceback_Add
      Src: /src/cpython/Modules/_ctypes/callproc.c:1031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1032,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: 1034
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1034
    functionName: GetResult
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - _PyTraceback_Add
    - PyLong_FromLong
    - _ctypes_get_fielddesc
    - StgInfo*::getfunc
    - PyStgInfo_FromType
    - _ctypes_simple_instance
    - PyObject_CallFunction
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallOneArg
    - PyCData_FromBaseObj
    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:1044,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Modules/_ctypes/callproc.c:1045,1
    - Dst: va_end
      Src: /src/cpython/Modules/_ctypes/callproc.c:1046,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:1051,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callproc.c:1051,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ctypes/callproc.c:1052,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/callproc.c:1053,1
    - Dst: PyType_GetName
      Src: /src/cpython/Modules/_ctypes/callproc.c:1054,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/callproc.c:1054,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_ctypes/callproc.c:1056,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_ctypes/callproc.c:1057,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1057,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ctypes/callproc.c:1063,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/_ctypes/callproc.c:1066,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_ctypes/callproc.c:1068,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_ctypes/callproc.c:1071,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Modules/_ctypes/callproc.c:1072,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1072,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_ctypes/callproc.c:1077,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1079,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1080,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - exc_class
    - fmt
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    - condition: (exc != NULL)
      pos:
        line_end: 1052
        line_start: 1052
        source_file: /src/cpython/Modules/_ctypes/callproc.c
    constantsTouched: []
    func_position:
      end: 1081
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1081
    functionName: _ctypes_extend_error
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetObject
    - PyObject_Str
    - PyUnicode_FromFormatV
    - va_start
    - va_end
    - PyErr_Clear
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - PyErr_GetRaisedException
    - PyUnicode_AppendAndDel
    - PyType_GetName
    - Py_TYPE
    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:1104,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_ctypes/callproc.c:1105,1
    - Dst: ISupportErrorInfo*::lpVtbl::InterfaceSupportsErrorInfo
      Src: /src/cpython/Modules/_ctypes/callproc.c:1108,1
    - Dst: ISupportErrorInfo*::lpVtbl::Release
      Src: /src/cpython/Modules/_ctypes/callproc.c:1109,1
    - Dst: FAILED
      Src: /src/cpython/Modules/_ctypes/callproc.c:1110,1
    - Dst: GetErrorInfo
      Src: /src/cpython/Modules/_ctypes/callproc.c:1113,1
    - Dst: IErrorInfo*::lpVtbl::GetDescription
      Src: /src/cpython/Modules/_ctypes/callproc.c:1117,1
    - Dst: IErrorInfo*::lpVtbl::GetGUID
      Src: /src/cpython/Modules/_ctypes/callproc.c:1118,1
    - Dst: IErrorInfo*::lpVtbl::GetHelpContext
      Src: /src/cpython/Modules/_ctypes/callproc.c:1119,1
    - Dst: IErrorInfo*::lpVtbl::GetHelpFile
      Src: /src/cpython/Modules/_ctypes/callproc.c:1120,1
    - Dst: IErrorInfo*::lpVtbl::GetSource
      Src: /src/cpython/Modules/_ctypes/callproc.c:1121,1
    - Dst: IErrorInfo*::lpVtbl::Release
      Src: /src/cpython/Modules/_ctypes/callproc.c:1123,1
    - Dst: ProgIDFromCLSID
      Src: /src/cpython/Modules/_ctypes/callproc.c:1129,1
    - Dst: FormatError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1131,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ctypes/callproc.c:1132,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_ctypes/callproc.c:1139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1140,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/_ctypes/callproc.c:1142,1
    - Dst: SysFreeString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1145,1
    - Dst: SysFreeString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1147,1
    - Dst: SysFreeString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1149,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: 1152
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1152
    functionName: GetComError
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - IErrorInfo*::lpVtbl::Release
    - IErrorInfo*::lpVtbl::GetSource
    - ProgIDFromCLSID
    - FAILED
    - ISupportErrorInfo*::lpVtbl::Release
    - IErrorInfo*::lpVtbl::GetDescription
    - PyErr_SetObject
    - SysFreeString
    - Py_BuildValue
    - GetErrorInfo
    - IErrorInfo*::lpVtbl::GetHelpFile
    - IErrorInfo*::lpVtbl::GetHelpContext
    - IUnknown*::lpVtbl::QueryInterface
    - Py_DECREF
    - IErrorInfo*::lpVtbl::GetGUID
    - FormatError
    - LocalFree
    - ISupportErrorInfo*::lpVtbl::InterfaceSupportsErrorInfo
    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: 1159
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1159
    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: 1160
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1160
    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:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1365
    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:1379,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1382,1
    - Dst: FormatError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1383,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/callproc.c:1385,1
    - Dst: LocalFree
      Src: /src/cpython/Modules/_ctypes/callproc.c:1386,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1391
    functionName: format_error
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 4
    functionsReached:
    - PyUnicode_FromWideChar
    - PyUnicode_FromString
    - GetLastError
    - PyArg_ParseTuple
    - FormatError
    - LocalFree
    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:1407,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1410,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1414,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Modules/_ctypes/callproc.c:1422,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1423,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:1428,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1435,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1438,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:1440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1442
    functionName: load_library
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyLong_FromLong
    - PySys_Audit
    - LoadLibraryExW
    - PyErr_Format
    - GetLastError
    - PyArg_ParseTuple
    - PyUnicode_AsWideCharString
    - PyLong_FromVoidPtr
    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:1453,1
    - Dst: FreeLibrary
      Src: /src/cpython/Modules/_ctypes/callproc.c:1457,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_ctypes/callproc.c:1458,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1465
    functionName: free_library
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetFromWindowsErr
    - FreeLibrary
    - GetLastError
    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:1476,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1480,1
    - Dst: ConvParam
      Src: /src/cpython/Modules/_ctypes/callproc.c:1481,1
    - Dst: ConvParam
      Src: /src/cpython/Modules/_ctypes/callproc.c:1481,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:1488,1
    - Dst: IUnknown*::lpVtbl::AddRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:1491,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/callproc.c:1493,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1496,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1470
    functionDepth: 2
    functionLinenumber: 1470
    functionLinenumberEnd: 1499
    functionName: copy_com_pointer
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - ConvParam
    - get_module_state
    - PyLong_FromLong
    - IUnknown*::lpVtbl::AddRef
    - Py_XDECREF
    - PyArg_ParseTuple
    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:1516,1
    - Dst: dlsym
      Src: /src/cpython/Modules/_ctypes/callproc.c:1518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1520
    functionName: load_dyld_shared_cache_contains_path
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - dlsym
    - dlopen
    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:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1526
    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:1539,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ctypes/callproc.c:1545,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/callproc.c:1547,1
    - Dst: _dyld_shared_cache_contains_path
      Src: /src/cpython/Modules/_ctypes/callproc.c:1549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1550,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1563
    functionName: py_dyld_shared_cache_contains_path
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - PyUnicode_FSConverter
    - Py_DECREF
    - _dyld_shared_cache_contains_path
    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:1577,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_ctypes/callproc.c:1581,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/callproc.c:1583,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1588,1
    - Dst: dlopen
      Src: /src/cpython/Modules/_ctypes/callproc.c:1591,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1592,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/callproc.c:1594,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1596,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1599,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1602,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1566
    functionDepth: 1
    functionLinenumber: 1566
    functionLinenumberEnd: 1603
    functionName: py_dl_open
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetString
    - PyLong_FromVoidPtr
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - PyUnicode_FSConverter
    - _PyErr_SetLocaleString
    - dlopen
    - dlerror
    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:1609,1
    - Dst: dlclose
      Src: /src/cpython/Modules/_ctypes/callproc.c:1611,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/callproc.c:1612,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1614,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1621
    functionName: py_dl_close
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - dlclose
    - PyErr_SetString
    - PyArg_ParseTuple
    - _PyErr_SetLocaleString
    - dlerror
    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:1629,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1632,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/callproc.c:1645,1
    - Dst: dlsym
      Src: /src/cpython/Modules/_ctypes/callproc.c:1647,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1649,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/callproc.c:1652,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1654,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:1659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1661
    functionName: py_dl_sym
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - dlsym
    - PyErr_Format
    - PyArg_ParseTuple
    - _PyErr_SetLocaleString
    - PyLong_FromVoidPtr
    - dlerror
    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:1676,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1682,1
    - Dst: _ctypes_callproc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1695
    functionName: call_function
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - get_module_state
    - _ctypes_callproc
    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:1709,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1715,1
    - Dst: _ctypes_callproc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1728
    functionName: call_cdeclfunction
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - get_module_state
    - _ctypes_callproc
    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:1746,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/callproc.c:1749,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/callproc.c:1753,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:1756,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/callproc.c:1758,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/callproc.c:1759,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/callproc.c:1760,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1742
    functionDepth: 1
    functionLinenumber: 1742
    functionLinenumberEnd: 1766
    functionName: _ctypes_sizeof
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyStgInfo_FromType
    - CDataObject_Check
    - PyErr_SetString
    - PyLong_FromSsize_t
    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:1776,1
    - Dst: PyStgInfo_FromAny
      Src: /src/cpython/Modules/_ctypes/callproc.c:1778,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/callproc.c:1782,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1787
    functionName: align_func
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyErr_SetString
    - PyStgInfo_FromAny
    - PyLong_FromSsize_t
    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:1805,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/callproc.c:1807,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:1813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - obj
    - offset
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1801
    functionDepth: 2
    functionLinenumber: 1801
    functionLinenumberEnd: 1816
    functionName: _ctypes_byref_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_NewRef
    - 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:1831,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1835
    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:1841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1837
    functionDepth: 1
    functionLinenumber: 1837
    functionLinenumberEnd: 1843
    functionName: converter
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 14
    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:1849,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/callproc.c:1852,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/callproc.c:1855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1856
    functionName: My_PyObj_FromPtr
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PySys_Audit
    - Py_NewRef
    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:1861,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1858
    functionDepth: 1
    functionLinenumber: 1858
    functionLinenumberEnd: 1864
    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:1869,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1872
    functionName: My_Py_DECREF
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      My_Py_DECREF(PyObject *self, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/callproc.c:1887,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/callproc.c:1889,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1894,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:1899,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:1905,1
    - Dst: _CDataObject_HasExternalBuffer
      Src: /src/cpython/Modules/_ctypes/callproc.c:1914,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1917,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/callproc.c:1919,1
    - Dst: memmove
      Src: /src/cpython/Modules/_ctypes/callproc.c:1920,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_ctypes/callproc.c:1924,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/callproc.c:1926,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - module
    - obj
    - size
    argTypes:
    - PyObject*
    - CDataObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1883
    functionDepth: 1
    functionLinenumber: 1883
    functionLinenumberEnd: 1932
    functionName: _ctypes_resize_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyMem_Calloc
    - PyErr_NoMemory
    - _CDataObject_HasExternalBuffer
    - memmove
    - PyMem_Realloc
    - PyErr_SetString
    - PyStgInfo_FromObject
    - PyErr_Format
    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:1939,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/_ctypes/callproc.c:1941,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/callproc.c:1941,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_ctypes/callproc.c:1945,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/callproc.c:1945,1
    - Dst: PyObject_Call
      Src: /src/cpython/Modules/_ctypes/callproc.c:1950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1960,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1934
    functionDepth: 1
    functionLinenumber: 1934
    functionLinenumberEnd: 1962
    functionName: unpickle
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - PyObject_GetAttr
    - PyObject_Call
    - PyArg_ParseTuple
    - Py_DECREF
    - _Py_ID
    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:1970,1
    - Dst: PyStgInfo_FromAny
      Src: /src/cpython/Modules/_ctypes/callproc.c:1972,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/callproc.c:1976,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/callproc.c:1980,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/callproc.c:1984,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/callproc.c:1984,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/callproc.c:1986,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/callproc.c:1987,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ctypes/callproc.c:1990,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1991
    functionName: buffer_info
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyErr_SetString
    - Py_BuildValue
    - PyStgInfo_FromAny
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffer_info(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_ctypes/callproc.c:1998,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/callproc.c:2002,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_ctypes/callproc.c:2002,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_ctypes/callproc.c:2003,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/callproc.c:2009,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/callproc.c:2012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1994
    functionDepth: 1
    functionLinenumber: 1994
    functionLinenumberEnd: 2015
    functionName: _ctypes_getattr
    functionSourceFile: /src/cpython/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_WarnEx
    - PyUnicode_Check
    - PyUnicode_EqualToUTF8
    - PyErr_Format
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_getattr(PyObject *Py_UNUSED(self), PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:53,1
    - Dst: sysconf
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:59,1
    - Dst: getpagesize
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:61,1
    - Dst: VirtualAlloc
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:71,1
    - Dst: mmap
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:79,1
    - Dst: _PyAnnotateMemoryMap
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:87,1
    - Dst: printf
      Src: /src/cpython/Modules/_ctypes/malloc_closure.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 100
    functionName: more_core
    functionSourceFile: /src/cpython/Modules/_ctypes/malloc_closure.c
    functionUses: 0
    functionsReached:
    - _PyAnnotateMemoryMap
    - sysconf
    - GetSystemInfo
    - getpagesize
    - VirtualAlloc
    - printf
    - mmap
    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:
    - PyErr_NoMemory
    - strcpy
    - ctype_free_stginfo_members
    - memcpy
    - strlen
    - PyMem_Malloc
    - Py_XINCREF
    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:
    - MakeFields
    - get_module_state_by_class
    - PySequence_Fast
    - PySequence_Fast_GET_SIZE
    - PyObject_SetAttr
    - Py_IS_TYPE
    - Py_XNewRef
    - PyErr_SetString
    - PyObject_GetAttr
    - PyObject_GetAttrString
    - assert
    - Py_DECREF
    - PyArg_ParseTuple
    - PyTypeObject*::tp_alloc
    - PySequence_Fast_GET_ITEM
    - Py_NewRef
    - Py_TYPE
    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:
    - MakeFields
    - PySequence_Fast
    - PySequence_Fast_GET_SIZE
    - Py_IS_TYPE
    - PyObject_GetAttr
    - get_module_state_by_def
    - PyObject_GetOptionalAttr
    - PyErr_Format
    - Py_DECREF
    - PySequence_Fast_GET_ITEM
    - Py_TYPE
    - _Py_ID
    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: (info)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/cpython/Modules/_ctypes/stgdict.c
    - condition: (prop_obj)
      pos:
        line_end: 398
        line_start: 398
        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:
    - PyMem_New
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyUnicode_AsUTF8AndSize
    - memcpy
    - PyErr_Occurred
    - assert
    - stginfo_set_dict_final_lock_held
    - PyTuple_GET_SIZE
    - _replace_array_elements
    - Py_TYPE
    - PyType_IsSubtype
    - PyErr_NoMemory
    - PyCArrayTypeObject_Check
    - PyStgInfo_FromType
    - STGINFO_UNLOCK
    - get_module_state_by_def
    - PyMem_Free
    - PyMem_Malloc
    - Py_XDECREF
    - PyLong_AsSsize_t
    - STGINFO_LOCK
    - Py_SAFE_DOWNCAST
    - PyErr_SetString
    - MakeAnonFields
    - PyImport_ImportModuleAttrString
    - PyObject_SetAttr
    - PyObject_Vectorcall
    - PyObject_GetAttr
    - Py_CLEAR
    - memset
    - PyTuple_Pack
    - PyErr_Format
    - stginfo_get_dict_final
    - _Py_ID
    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: (dummy_index < (num_ffi_type_pointers))
      pos:
        line_end: 687
        line_start: 687
        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: (info)
      pos:
        line_end: 656
        line_start: 656
        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: (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: (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: 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
    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:
    - PyType_IsSubtype
    - PyTuple_GET_ITEM
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyCArrayTypeObject_Check
    - PyStgInfo_FromType
    - memset
    - memcpy
    - PyErr_Format
    - assert
    - PyMem_Free
    - PyTuple_GET_SIZE
    - Py_TYPE
    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:
    - PyUnicode_FromString
    - PyLong_FromLong
    - PyErr_SetString
    - PyUnicode_Check
    - TEST_FIELD
    - memset
    - PyUnicode_CompareWithASCIIString
    - PyList_New
    - APPEND
    - Py_DECREF
    - PyErr_Format
    - Py_NewRef
    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: 82
    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:
    - _PyType_GetModuleState
    - assert
    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:
    - get_module_state
    - PyType_GetModuleByDef
    - assert
    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: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    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: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    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: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    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:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 442
    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:447,1
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Modules/_ctypes/ctypes.h:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: stginfo_set_dict_final_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_STORE_UINT8
    - _Py_CRITICAL_SECTION_ASSERT_MUTEX_LOCKED
    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:457,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/ctypes.h:460,1
    - Dst: stginfo_set_dict_final_lock_held
      Src: /src/cpython/Modules/_ctypes/ctypes.h:461,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/ctypes.h:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 463
    functionName: stginfo_set_dict_final
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached:
    - stginfo_get_dict_final
    - STGINFO_LOCK
    - stginfo_set_dict_final_lock_held
    - STGINFO_UNLOCK
    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: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    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: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    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:577,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_ctypes/ctypes.h:581,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/ctypes.h:582,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: 581
        line_start: 581
        source_file: /src/cpython/Modules/_ctypes/ctypes.h
    constantsTouched: []
    func_position:
      end: 589
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 589
    functionName: _stginfo_from_type
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached:
    - PyObject_GetTypeData
    - assert
    - PyObject_IsInstance
    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:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - type
    - result
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 595
    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:600,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/ctypes.h:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - obj
    - result
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 601
    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:606,1
    - Dst: _stginfo_from_type
      Src: /src/cpython/Modules/_ctypes/ctypes.h:607,1
    - Dst: _stginfo_from_type
      Src: /src/cpython/Modules/_ctypes/ctypes.h:609,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/ctypes.h:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - obj
    - result
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 610
    functionName: PyStgInfo_FromAny
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 2
    functionsReached:
    - _stginfo_from_type
    - Py_TYPE
    - PyType_Check
    linkageType: ''
    returnType: int
    signature: int PyStgInfo_FromAny(ctypes_state *state, PyObject *obj, StgInfo **result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetBaseByToken_DuringGC
      Src: /src/cpython/Modules/_ctypes/ctypes.h:621,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/ctypes.h:621,1
    - Dst: PyObject_GetTypeData_DuringGC
      Src: /src/cpython/Modules/_ctypes/ctypes.h:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 626
    functionName: _PyStgInfo_FromType_DuringGC
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached:
    - PyType_GetBaseByToken_DuringGC
    - Py_TYPE
    - PyObject_GetTypeData_DuringGC
    linkageType: ''
    returnType: StgInfo
    signature: 'StgInfo *

      _PyStgInfo_FromType_DuringGC(PyObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/ctypes.h:632,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/ctypes.h:633,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_ctypes/ctypes.h:638,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/ctypes.h:640,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_ctypes/ctypes.h:645,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/ctypes.h:650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - type
    argTypes:
    - ctypes_state*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 654
    functionName: PyStgInfo_Init
    functionSourceFile: /src/cpython/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached:
    - PyObject_GetTypeData
    - PyErr_Format
    - PyType_GetModule
    - Py_NewRef
    - PyObject_IsInstance
    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: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    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: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    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: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    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: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    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:158,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:159,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:159,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:160,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - myself
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: _DictRemover_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _DictRemoverObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:168,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:169,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 172
    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:177,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:178,1
    - Dst: _DictRemover_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:179,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: _DictRemover_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _DictRemover_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:187,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:189,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:190,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:193,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - myself
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 197
    functionName: _DictRemover_call
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItem
    - _DictRemoverObject_CAST
    - PyErr_FormatUnraisable
    - Py_CLEAR
    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:226,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:231,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:232,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:233,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:234,1
    - Dst: PyWeakref_NewProxy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:237,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:242,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: 231
        line_start: 231
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (remover->key == NULL)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 244
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 244
    functionName: PyDict_SetItemProxy
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyWeakref_NewProxy
    - PyDict_SetItem
    - assert
    - Py_DECREF
    - _PyObject_CallNoArgs
    - Py_NewRef
    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:249,1
    - Dst: PyWeakref_CheckProxy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:251,1
    - Dst: PyWeakref_GetRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dict
    - key
    - presult
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: _PyDict_GetItemProxy
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyWeakref_GetRef
    - PyDict_GetItemRef
    - Py_DECREF
    - PyWeakref_CheckProxy
    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: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:313,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:315,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:320,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - code
    - big_endian
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 322
    functionName: _ctypes_alloc_format_string_for_type
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PyErr_NoMemory
    - strlen
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      _ctypes_alloc_format_string_for_type(const char *code, int big_endian)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:337,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:337,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:340,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:342,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:343,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:345,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:349,1
    - Dst: strcat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - prefix
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 354
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 354
    functionName: _ctypes_alloc_format_string
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - strcat
    - PyErr_NoMemory
    - strcpy
    - assert
    - strlen
    - PyMem_Malloc
    - PyErr_Occurred
    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:374,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:375,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:377,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:382,1
    - Dst: strcat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:385,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:388,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:390,1
    - Dst: strcat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:392,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:395,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:396,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: 398
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 398
    functionName: _ctypes_alloc_format_string_with_shape
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - strcat
    - _ctypes_alloc_format_string
    - PyErr_NoMemory
    - strcpy
    - strlen
    - PyMem_Malloc
    - PyMem_Free
    - sprintf
    linkageType: ''
    returnType: char
    signature: "char *\n_ctypes_alloc_format_string_with_shape(int ndim, const Py_ssize_t
      *shape,\n                                       const char *prefix, const char
      *suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: _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:416,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:417,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:417,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - myself
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: StructParam_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _StructParamObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:425,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 428
    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:433,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:434,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:435,1
    - Dst: StructParam_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:436,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:437,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: StructParam_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - StructParam_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - PyMem_Free
    - _StructParamObject_CAST
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void StructParam_dealloc(PyObject *myself)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStgInfo_FromType_DuringGC
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:469,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:471,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:472,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:473,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:474,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:475,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:479,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:479,1
    - Dst: tp_traverse
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 481
    functionName: CType_Type_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - tp_traverse
    - _PyStgInfo_FromType_DuringGC
    - Py_VISIT
    - 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:486,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:487,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:488,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:489,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:490,1
    - Dst: Py_CLEAR
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 494
    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:499,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:501,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:503,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:505,1
    - Dst: ctype_clear_stginfo
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - StgInfo*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 508
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 508
    functionName: ctype_free_stginfo_members
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - ctype_clear_stginfo
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void ctype_free_stginfo_members(StgInfo *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStgInfo_FromType_DuringGC
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:513,1
    - Dst: ctype_clear_stginfo
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:515,1
    - Dst: tp_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: CType_Type_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyStgInfo_FromType_DuringGC
    - ctype_clear_stginfo
    - tp_clear
    linkageType: ''
    returnType: int
    signature: int CType_Type_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStgInfo_FromType_DuringGC
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:523,1
    - Dst: ctype_free_stginfo_members
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:525,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:528,1
    - Dst: tp_dealloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 531
    functionName: CType_Type_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyStgInfo_FromType_DuringGC
    - ctype_free_stginfo_members
    - Py_DECREF
    - tp_dealloc
    - 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:545,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:546,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:546,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:548,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:550,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:555,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 564
    functionName: _ctypes_CType_Type___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - PyStgInfo_FromType
    - Py_SIZE
    - PyLong_FromSsize_t
    - strlen
    - 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:576,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:576,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:578,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:582,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:586,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:587,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:588,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 597
    functionName: _ctypes_CType_Type___pointer_type___get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyStgInfo_FromType
    - STGINFO_UNLOCK
    - get_module_state_by_def
    - PyErr_Format
    - STGINFO_LOCK
    - 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:609,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:609,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:611,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:615,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:618,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:619,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:619,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 622
    functionName: _ctypes_CType_Type___pointer_type___set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_XNewRef
    - PyStgInfo_FromType
    - STGINFO_UNLOCK
    - get_module_state_by_def
    - PyErr_Format
    - STGINFO_LOCK
    - 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:668,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:674,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:678,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:684,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:686,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:692,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:695,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:700,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:705,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:706,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:709,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 717
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 717
    functionName: StructUnionType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyCArgObject_new
    - assert
    - PyStgInfo_FromObject
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:725,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:731,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:737,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:741,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:741,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:744,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:750,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:756,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:757,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:760,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:762,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:763,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:766,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:771,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:779,1
    - Dst: PyCStgInfo_clone
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:781,1
    - Dst: stginfo_set_dict_final_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:783,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:785,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 4
    argNames:
    - self
    - args
    - kwds
    - isStruct
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 789
    functionName: StructUnionType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_alloc_format_string
    - PyType_GetDict
    - PyObject_SetAttr
    - PyStgInfo_FromType
    - PyStgInfo_Init
    - STGINFO_UNLOCK
    - get_module_state_by_def
    - Py_CLEAR
    - PyDict_Contains
    - stginfo_set_dict_final_lock_held
    - Py_DECREF
    - PyDict_GetItemRef
    - PyCStgInfo_clone
    - STGINFO_LOCK
    - Py_TYPE
    - _Py_ID
    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:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 791
    functionDepth: 4
    functionLinenumber: 791
    functionLinenumberEnd: 795
    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:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 801
    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:828,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:829,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:833,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:834,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:836,1
    - Dst: PyCData_AtAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 838
    functionName: CDataType_from_address_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_AtAddress
    - get_module_state_by_class
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nCDataType_from_address_impl(PyObject *type, PyTypeObject
      *cls,\n                            PyObject *value)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:866,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:868,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:872,1
    - Dst: PyMemoryView_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:876,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:880,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:885,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:889,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:892,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:901,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:907,1
    - Dst: PyCData_AtAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:911,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:913,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:918,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - type
    - cls
    - obj
    - offset
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 923
    functionName: CDataType_from_buffer_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_AtAddress
    - get_module_state_by_class
    - PyMemoryView_GET_BUFFER
    - PySys_Audit
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyErr_Format
    - Py_DECREF
    - KeepRef
    - PyBuffer_IsContiguous
    - PyMemoryView_FromObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nCDataType_from_buffer_impl(PyObject *type, PyTypeObject
      *cls, PyObject *obj,\n                           Py_ssize_t offset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:953,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:955,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:959,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:964,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:970,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:975,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:977,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:977,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - type
    - cls
    - buffer
    - offset
    argTypes:
    - PyObject*
    - PyTypeObject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyObject_IsUniquelyReferenced(result))
      pos:
        line_end: 976
        line_start: 976
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 981
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 981
    functionName: CDataType_from_buffer_copy_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - PySys_Audit
    - PyErr_SetString
    - PyStgInfo_FromType
    - memcpy
    - PyErr_Format
    - assert
    - generic_pycdata_new
    - _PyObject_IsUniquelyReferenced
    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:1006,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1010,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1013,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1016,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1020,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1021,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1022,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1030,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1042,1
    - Dst: dlsym
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1044,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1048,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1048,1
    - Dst: PyCData_AtAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1049,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1053,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1055,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1060,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - type
    - cls
    - dll
    - name
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1062
    functionName: CDataType_in_dll_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_AtAddress
    - PySys_Audit
    - dlsym
    - PyErr_SetString
    - get_module_state_by_def
    - PyLong_Check
    - PyObject_GetAttrString
    - PyErr_Occurred
    - Py_DECREF
    - GetProcAddress
    - PyErr_Format
    - _PyErr_SetLocaleString
    - PyLong_AsVoidPtr
    - Py_TYPE
    - dlerror
    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:1080,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1084,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1086,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1087,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1092,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1098,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1102,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1105,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1106,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1112,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1112,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1117,1
    - Dst: CDataType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1121,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1122,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1125,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1075
    functionDepth: 3
    functionLinenumber: 1075
    functionLinenumberEnd: 1130
    functionName: CDataType_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - get_module_state_by_class
    - CDataType_from_param_impl
    - _Py_EnterRecursiveCall
    - PyStgInfo_FromType
    - _Py_LeaveRecursiveCall
    - PyObject_GetOptionalAttr
    - _Py_ID
    - PyErr_Format
    - Py_DECREF
    - PyCArg_CheckExact
    - Py_NewRef
    - Py_TYPE
    - PyObject_IsInstance
    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:1145,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1148,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1148,1
    - Dst: PyCArrayType_from_ctype
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1150
    functionName: CType_Type_repeat
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyCArrayType_from_ctype
    - PyErr_Format
    - get_module_state_by_def
    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:1156,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1157,1
    - Dst: PyCStructUnionType_update_stginfo
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1159,1
    - Dst: tp_setattro
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1164,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: 1165
      start: 1152
    functionDepth: 4
    functionLinenumber: 1152
    functionLinenumberEnd: 1165
    functionName: _structunion_setattro
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - tp_setattro
    - PyCStructUnionType_update_stginfo
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    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:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1167
    functionDepth: 5
    functionLinenumber: 1167
    functionLinenumberEnd: 1171
    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:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1173
    functionDepth: 5
    functionLinenumber: 1173
    functionLinenumberEnd: 1177
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1234,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1235,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1240,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1244,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1247,1
    - Dst: STGINFO_LOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1253,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1255,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1255,1
    - Dst: _ctypes_alloc_format_string_with_shape
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1260,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1263,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1265,1
    - Dst: STGINFO_UNLOCK
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - st
    - self
    - stginfo
    - proto
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1231
    functionDepth: 3
    functionLinenumber: 1231
    functionLinenumberEnd: 1273
    functionName: PyCPointerType_SetProto
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_alloc_format_string
    - PyType_Check
    - Py_XSETREF
    - PyErr_SetString
    - PyStgInfo_FromType
    - _ctypes_alloc_format_string_with_shape
    - STGINFO_UNLOCK
    - PyErr_Format
    - PyMem_Free
    - STGINFO_LOCK
    - Py_NewRef
    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:1278,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1281,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1290
    functionName: PyCPointerType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_NewRef
    - PyCArgObject_new
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCPointerType_paramfunc(ctypes_state *st, CDataObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1298,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1307,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1307,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1308,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1313,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1319,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1319,1
    - Dst: PyCPointerType_SetProto
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1324,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1292
    functionDepth: 4
    functionLinenumber: 1292
    functionLinenumberEnd: 1331
    functionName: PyCPointerType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_get_fielddesc
    - PyStgInfo_Init
    - get_module_state_by_def
    - PyTuple_GetItem
    - PyCPointerType_SetProto
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_TYPE
    - _Py_ID
    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:1347,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1349,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1353,1
    - Dst: PyCPointerType_SetProto
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1358,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1361,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cls
    - type
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1342
    functionDepth: 4
    functionLinenumber: 1342
    functionLinenumberEnd: 1365
    functionName: PyCPointerType_set_type_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - PyObject_SetAttr
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyCPointerType_SetProto
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCPointerType_set_type_impl(PyTypeObject *self, PyTypeObject
      *cls,\n                             PyObject *type)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1387,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1390,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1392,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1396,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1405,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1411,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1413,1
    - Dst: _byref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1414,1
    - Dst: PointerObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1421,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1421,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1426,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1429,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1430,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1435,1
    - Dst: CDataType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1438,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (v)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1439
      start: 1380
    functionDepth: 4
    functionLinenumber: 1380
    functionLinenumberEnd: 1439
    functionName: PyCPointerType_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_class
    - Py_INCREF
    - CDataType_from_param_impl
    - _byref
    - PyObject_IsSubclass
    - PyStgInfo_FromType
    - PyErr_SetString
    - PyStgInfo_FromObject
    - ArrayObject_Check
    - PointerObject_Check
    - assert
    - Py_NewRef
    - PyObject_IsInstance
    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:1494,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1497,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1502,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1507,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1509,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - CDataObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1514
    functionName: _ctypes_PyCArrayType_Type_raw_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_GetBuffer
    - memcpy
    - 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:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1527
    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:1545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1547
    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:1563,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1568,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1569,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1571,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1574,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1575,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1579,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1583,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - CDataObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1590
    functionName: _ctypes_PyCArrayType_Type_value_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyBytes_Check
    - PyErr_SetString
    - memcpy
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyBytes_GET_SIZE
    - 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:1601,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1604,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1598
    functionDepth: 1
    functionLinenumber: 1598
    functionLinenumberEnd: 1611
    functionName: WCharArray_get_value_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - _CDataObject_CAST
    - _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:1617,1
    - Dst: WCharArray_get_value_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1618,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1621
    functionName: WCharArray_get_value
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - WCharArray_get_value_lock_held
    - Py_END_CRITICAL_SECTION
    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:1626,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1627,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1630,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1634,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1635,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1637,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1642,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1648,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1650,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - op
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 1647
        line_start: 1647
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1656
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1656
    functionName: WCharArray_set_value_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - assert
    - PyErr_SetString
    - PyUnicode_Check
    - PyErr_Format
    - PyUnicode_AsWideChar
    - Py_TYPE
    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:1662,1
    - Dst: WCharArray_set_value_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1663,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1658
    functionDepth: 2
    functionLinenumber: 1658
    functionLinenumberEnd: 1666
    functionName: WCharArray_set_value
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - WCharArray_set_value_lock_held
    - Py_END_CRITICAL_SECTION
    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:1687,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - type
    - gsp
    argTypes:
    - PyTypeObject*
    - PyGetSetDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1681
    functionDepth: 1
    functionLinenumber: 1681
    functionLinenumberEnd: 1697
    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:1702,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1703,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1699
    functionDepth: 2
    functionLinenumber: 1699
    functionLinenumberEnd: 1711
    functionName: PyCArrayType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_NewRef
    - PyCArgObject_new
    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:1724,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1724,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1728,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1734,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1735,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1740,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1741,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1742,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1748,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1749,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1750,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1751,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1757,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1757,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1761,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1766,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1766,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1767,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1773,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1777,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1782,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1783,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1787,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1789,1
    - Dst: memmove
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1794,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1800,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1824,1
    - Dst: add_getset
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1825,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1828,1
    - Dst: add_getset
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1829,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1835,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 101
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (iteminfo->format)
      pos:
        line_end: 1781
        line_start: 1781
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1837
      start: 1713
    functionDepth: 3
    functionLinenumber: 1713
    functionLinenumberEnd: 1837
    functionName: PyCArrayType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_alloc_format_string
    - PyErr_Occurred
    - assert
    - Py_TYPE
    - PyErr_NoMemory
    - PyStgInfo_FromType
    - _PyLong_IsNegative
    - PyObject_GetOptionalAttr
    - get_module_state_by_def
    - PyLong_Check
    - add_getset
    - Py_XDECREF
    - PyMem_Malloc
    - PyLong_AsSsize_t
    - memmove
    - PyErr_SetString
    - PyStgInfo_Init
    - Py_DECREF
    - _ctypes_get_fielddesc
    - PyErr_ExceptionMatches
    - _Py_ID
    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:1903,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1904,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1906,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1908,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1915,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1920,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1924,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1926,1
    - Dst: PointerObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1926,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1929,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1932,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1935,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1939,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1940,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1943,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1947,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1950,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1951,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1955,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1955,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1960,1
    - Dst: c_wchar_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1964,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1965,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1968,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1970,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (it)
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1972
      start: 1894
    functionDepth: 3
    functionLinenumber: 1894
    functionLinenumberEnd: 1972
    functionName: c_wchar_p_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - ArrayObject_Check
    - assert
    - struct fielddesc*::setfunc
    - Py_TYPE
    - PyCArgObject_new
    - _Py_EnterRecursiveCall
    - PyStgInfo_FromType
    - PyUnicode_Check
    - PyStgInfo_FromObject
    - PyObject_GetOptionalAttr
    - PyObject_IsInstance
    - Py_DECREF
    - Py_NewRef
    - get_module_state_by_class
    - _ctypes_get_fielddesc
    - _Py_LeaveRecursiveCall
    - c_wchar_p_from_param_impl
    - PyErr_Format
    - PyCArg_CheckExact
    - PointerObject_Check
    - _Py_ID
    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:1992,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1993,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1995,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:1997,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2004,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2009,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2013,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2015,1
    - Dst: PointerObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2015,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2018,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2021,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2024,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2028,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2029,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2032,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2036,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2039,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2040,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2044,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2044,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2049,1
    - Dst: c_char_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2053,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2054,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2057,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2059,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (it)
      pos:
        line_end: 2020
        line_start: 2020
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2061
      start: 1983
    functionDepth: 3
    functionLinenumber: 1983
    functionLinenumberEnd: 2061
    functionName: c_char_p_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyBytes_Check
    - ArrayObject_Check
    - assert
    - struct fielddesc*::setfunc
    - Py_TYPE
    - PyCArgObject_new
    - _Py_EnterRecursiveCall
    - PyStgInfo_FromType
    - PyStgInfo_FromObject
    - PyObject_GetOptionalAttr
    - PyObject_IsInstance
    - _Py_ID
    - Py_DECREF
    - Py_NewRef
    - get_module_state_by_class
    - _ctypes_get_fielddesc
    - _Py_LeaveRecursiveCall
    - PyErr_Format
    - PyCArg_CheckExact
    - PointerObject_Check
    - c_char_p_from_param_impl
    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:2083,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2087,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2089,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2091,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2098,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2105,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2107,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2109,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2116,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2122,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2124,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2126,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2133,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2139,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2144,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2147,1
    - Dst: PointerObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2147,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2149,1
    - Dst: PyCArg_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2152,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2155,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2156,1
    - Dst: PyCFuncPtrObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2160,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2164,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2169,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2177,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2181,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2183,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2187,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2190,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2195,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2197,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2198,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2199,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2204,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2204,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2209,1
    - Dst: c_void_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2212,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2213,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2214,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2217,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2219,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 103
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2072
    functionDepth: 3
    functionLinenumber: 2072
    functionLinenumberEnd: 2221
    functionName: c_void_p_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - strcmp
    - Py_END_CRITICAL_SECTION
    - PyBytes_Check
    - ArrayObject_Check
    - struct fielddesc*::setfunc
    - Py_TYPE
    - PyCArgObject_new
    - _Py_EnterRecursiveCall
    - PyUnicode_Check
    - PyStgInfo_FromObject
    - PyUnicode_AsUTF8
    - PyLong_Check
    - PyObject_GetOptionalAttr
    - PyCFuncPtrObject_Check
    - _CDataObject_CAST
    - Py_INCREF
    - CDataObject_Check
    - _Py_ID
    - Py_DECREF
    - Py_NewRef
    - get_module_state_by_class
    - c_void_p_from_param_impl
    - _ctypes_get_fielddesc
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_LeaveRecursiveCall
    - PyErr_Format
    - PyCArg_CheckExact
    - PointerObject_Check
    - PyObject_IsInstance
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_void_p_from_param_impl(PyObject *type, PyTypeObject *cls, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2233,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2238,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2240,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2243,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - stginfo
    - fmt
    argTypes:
    - StgInfo*
    - struct fielddesc*
    assertStmts:
    - condition: (fmt->pffi_type->type == FFI_TYPE_COMPLEX)
      pos:
        line_end: 2232
        line_start: 2232
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (!fmt->pffi_type->elements)
      pos:
        line_end: 2246
        line_start: 2246
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2251
      start: 2223
    functionDepth: 1
    functionLinenumber: 2223
    functionLinenumberEnd: 2251
    functionName: set_stginfo_ffi_type_pointer
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyMem_Malloc
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: int
    signature: int set_stginfo_ffi_type_pointer(StgInfo *stginfo, struct fielddesc
      *fmt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2262,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2267,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2267,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2271,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2274,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2278,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2279,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2280,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2281,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2282,1
    - Dst: tp_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2288,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2294,1
    - Dst: set_stginfo_ffi_type_pointer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2298,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    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: 2270
        line_start: 2270
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2310
      start: 2257
    functionDepth: 2
    functionLinenumber: 2257
    functionLinenumberEnd: 2310
    functionName: CreateSwappedType
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_INCREF
    - PyTuple_New
    - PyStgInfo_Init
    - set_stginfo_ffi_type_pointer
    - PyTuple_SET_ITEM
    - tp_new
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyUnicode_Concat
    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:2315,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2321,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2324,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2325,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2326,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2328,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2329,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2331,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2335,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2335,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2338,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 2323
        line_start: 2323
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (fmt)
      pos:
        line_end: 2325
        line_start: 2325
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (fd)
      pos:
        line_end: 2328
        line_start: 2328
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (strcmp(fd->code, fmt) == 0)
      pos:
        line_end: 2334
        line_start: 2334
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2341
      start: 2312
    functionDepth: 3
    functionLinenumber: 2312
    functionLinenumberEnd: 2341
    functionName: PyCSimpleType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - strcmp
    - PyCArgObject_new
    - _ctypes_get_fielddesc
    - PyStgInfo_FromObject
    - PyUnicode_AsUTF8
    - memcpy
    - assert
    - Py_NewRef
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCSimpleType_paramfunc(ctypes_state *st, CDataObject *self)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2352,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2355,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2355,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2359,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2362,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2365,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2366,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2370,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2374,1
    - Dst: _ctypes_get_complex_type_formats
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2376,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2378,1
    - Dst: _ctypes_get_simple_type_chars
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2382,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2386,1
    - Dst: _ctypes_get_simple_type_chars
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2389,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2394,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2394,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2395,1
    - Dst: set_stginfo_ffi_type_pointer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2399,1
    - Dst: _ctypes_alloc_format_string_for_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2408,1
    - Dst: _ctypes_alloc_format_string_for_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2413,1
    - Dst: PyDescr_NewClassMethod
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2465,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2471,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2474,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2477,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2484,1
    - Dst: CreateSwappedType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2489,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2496,1
    - Dst: assert
      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: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2508,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2509,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2510,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2511,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2515,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2516,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 127
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (sw_info)
      pos:
        line_end: 2498
        line_start: 2498
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2522
      start: 2344
    functionDepth: 3
    functionLinenumber: 2344
    functionLinenumberEnd: 2522
    functionName: PyCSimpleType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_get_complex_type_formats
    - _ctypes_alloc_format_string
    - PyErr_Occurred
    - assert
    - Py_TYPE
    - PyUnicode_FromString
    - PyStgInfo_FromType
    - _ctypes_get_simple_type_chars
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - tp_init
    - PyUnicode_AsUTF8
    - get_module_state_by_def
    - set_stginfo_ffi_type_pointer
    - PyObject_SetAttrString
    - Py_XDECREF
    - PyDescr_NewClassMethod
    - PyErr_SetString
    - PyStgInfo_Init
    - CreateSwappedType
    - Py_DECREF
    - _ctypes_get_fielddesc
    - PyUnicode_InternInPlace
    - PyDict_SetItem
    - PyErr_Format
    - _ctypes_alloc_format_string_for_type
    - _Py_ID
    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:2553,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2557,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2560,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2562,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2566,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2572,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2573,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2575,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2576,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2578,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2582,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2582,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2585,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2589,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2591,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2591,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2592,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2597,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2598,1
    - Dst: PyCSimpleType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2601,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2602,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2603,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2604,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2608,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2611,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - type
    - cls
    - value
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (fd)
      pos:
        line_end: 2575
        line_start: 2575
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (fmt)
      pos:
        line_end: 2572
        line_start: 2572
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (strcmp(fd->code, fmt) == 0)
      pos:
        line_end: 2581
        line_start: 2581
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2614
      start: 2540
    functionDepth: 3
    functionLinenumber: 2540
    functionLinenumberEnd: 2614
    functionName: PyCSimpleType_from_param_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - strcmp
    - PyErr_SetRaisedException
    - assert
    - struct fielddesc*::setfunc
    - PyCSimpleType_from_param_impl
    - PyCArgObject_new
    - _Py_EnterRecursiveCall
    - PyStgInfo_FromType
    - PyObject_GetOptionalAttr
    - PyUnicode_AsUTF8
    - PyObject_IsInstance
    - Py_XDECREF
    - PyErr_SetString
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_NewRef
    - get_module_state_by_class
    - _ctypes_get_fielddesc
    - _Py_LeaveRecursiveCall
    - _Py_ID
    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:2650,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2652,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2659,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2660,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2668,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2679,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2733,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2735,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2736,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2737,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2745,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - st
    - ob
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2644
    functionDepth: 1
    functionLinenumber: 2644
    functionLinenumberEnd: 2747
    functionName: converters_from_argtypes
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyErr_SetString
    - PyObject_GetOptionalAttr
    - PyTuple_SET_ITEM
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    - _Py_ID
    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:2755,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2762,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2762,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2765,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2766,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2768,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2772,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2775,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2775,1
    - Dst: converters_from_argtypes
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2781,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2788,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2788,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2793,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2794,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2797,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2800,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2804,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2804,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - st
    - attrdict
    - stginfo
    argTypes:
    - ctypes_state*
    - PyObject*
    - StgInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2749
    functionDepth: 3
    functionLinenumber: 2749
    functionLinenumberEnd: 2825
    functionName: make_funcptrtype_dict
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - converters_from_argtypes
    - _ctypes_get_fielddesc
    - PyCallable_Check
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyObject_GetOptionalAttr
    - PyLong_Check
    - Py_XDECREF
    - Py_DECREF
    - PyDict_GetItemRef
    - _Py_ID
    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:2830,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2833,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - st
    - self
    argTypes:
    - ctypes_state*
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2827
    functionDepth: 2
    functionLinenumber: 2827
    functionLinenumberEnd: 2842
    functionName: PyCFuncPtrType_paramfunc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_NewRef
    - PyCArgObject_new
    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:2847,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2852,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2852,1
    - Dst: PyStgInfo_Init
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2855,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2869,1
    - Dst: make_funcptrtype_dict
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2874,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2844
    functionDepth: 4
    functionLinenumber: 2844
    functionLinenumberEnd: 2881
    functionName: PyCFuncPtrType_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_alloc_format_string
    - PyType_GetDict
    - PyStgInfo_Init
    - make_funcptrtype_dict
    - get_module_state_by_def
    - Py_DECREF
    - Py_TYPE
    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:2909,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2914,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2920,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2902
    functionDepth: 1
    functionLinenumber: 2902
    functionLinenumberEnd: 2926
    functionName: PyCData_GetContainer
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:2932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - target
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2928
    functionDepth: 2
    functionLinenumber: 2928
    functionLinenumberEnd: 2936
    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:2945,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2946,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2946,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2951,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2955,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2955,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - target
    - index
    argTypes:
    - CDataObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2938
    functionDepth: 1
    functionLinenumber: 2938
    functionLinenumberEnd: 2959
    functionName: unique_key
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyErr_SetString
    - Py_BUILD_ASSERT
    - sprintf
    - PyUnicode_FromStringAndSize
    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:2964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2971,1
    - Dst: PyCData_GetContainer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2976,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2979,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2980,1
    - Dst: unique_key
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2985,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:2990,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - target
    - index
    - keep
    argTypes:
    - CDataObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2961
    functionDepth: 2
    functionLinenumber: 2961
    functionLinenumberEnd: 2992
    functionName: KeepRef_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_XSETREF
    - unique_key
    - PyCData_GetContainer
    - PyDict_SetItem
    - Py_DECREF
    - PyDict_CheckExact
    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:3016,1
    - Dst: KeepRef_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3017,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - target
    - index
    - keep
    argTypes:
    - CDataObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 3012
    functionDepth: 3
    functionLinenumber: 3012
    functionLinenumberEnd: 3020
    functionName: KeepRef
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - KeepRef_lock_held
    - Py_END_CRITICAL_SECTION
    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:3036,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3037,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3038,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3039,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 3033
    functionDepth: 1
    functionLinenumber: 3033
    functionLinenumberEnd: 3042
    functionName: PyCData_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:3047,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3048,1
    - Dst: _CDataObject_HasExternalBuffer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3050,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3051,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3055
    functionName: PyCData_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - _CDataObject_HasExternalBuffer
    - PyMem_Free
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PyCData_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3060,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3061,1
    - Dst: PyCData_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3062,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3057
    functionDepth: 2
    functionLinenumber: 3057
    functionLinenumberEnd: 3065
    functionName: PyCData_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:3084,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3089,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3092,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3094,1
    - Dst: PyCData_item_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - st
    - type
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts:
    - condition: (stg_info)
      pos:
        line_end: 3091
        line_start: 3091
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (elem_type)
      pos:
        line_end: 3093
        line_start: 3093
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3100
      start: 3081
    functionDepth: 3
    functionLinenumber: 3081
    functionLinenumberEnd: 3100
    functionName: PyCData_item_type
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyCArrayTypeObject_Check
    - PyCData_item_type
    - PyStgInfo_FromType
    - assert
    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:3105,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3107,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3107,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3107,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3109,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3112,1
    - Dst: PyCData_item_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3114,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3114,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3122,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3125,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - myself
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (info)
      pos:
        line_end: 3111
        line_start: 3111
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (item_info)
      pos:
        line_end: 3124
        line_start: 3124
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3140
      start: 3102
    functionDepth: 4
    functionLinenumber: 3102
    functionLinenumberEnd: 3140
    functionName: PyCData_NewGetBuffer
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - PyStgInfo_FromType
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - PyCData_item_type
    - assert
    - Py_NewRef
    - Py_TYPE
    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:3148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3150
      start: 3145
    functionDepth: 1
    functionLinenumber: 3145
    functionLinenumberEnd: 3150
    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:3165,1
    - Dst: get_module_state_by_class
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3167,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3169,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3172,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3175,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3179,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3184,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3185,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - myself
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 3171
        line_start: 3171
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3187
      start: 3161
    functionDepth: 3
    functionLinenumber: 3161
    functionLinenumberEnd: 3187
    functionName: _ctypes_PyCData___reduce___impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - get_module_state_by_class
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - PyStgInfo_FromObject
    - Py_BuildValue
    - PyObject_GetAttrString
    - assert
    - Py_TYPE
    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:3204,1
    - Dst: memmove
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3209,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3210,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3214,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3215,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3217,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3218,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3222,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: 3226
      start: 3199
    functionDepth: 1
    functionLinenumber: 3199
    functionLinenumberEnd: 3226
    functionName: _ctypes_PyCData___setstate___impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - PyDict_Update
    - memmove
    - PyDict_Check
    - PyErr_Format
    - PyObject_GetAttrString
    - Py_DECREF
    - Py_TYPE
    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:3238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3234
    functionDepth: 0
    functionLinenumber: 3234
    functionLinenumberEnd: 3239
    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:3275,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3275,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3276,1
    - Dst: stginfo_get_dict_final
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3276,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3292,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3294,1
    - Dst: memset
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - obj
    - info
    argTypes:
    - CDataObject*
    - StgInfo*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 3274
        line_start: 3274
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (stginfo_get_dict_final(info) == 1)
      pos:
        line_end: 3275
        line_start: 3275
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3302
      start: 3268
    functionDepth: 2
    functionLinenumber: 3268
    functionLinenumberEnd: 3302
    functionName: PyCData_MallocBuffer
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - assert
    - Py_REFCNT
    - memset
    - PyMem_Malloc
    - stginfo_get_dict_final
    linkageType: ''
    returnType: int
    signature: int PyCData_MallocBuffer(CDataObject *obj, StgInfo *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3310,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3310,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3313,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3317,1
    - Dst: stginfo_set_dict_final
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3322,1
    - Dst: tp_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3323,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3327,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3327,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3331,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3331,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3334,1
    - Dst: PyCData_MallocBuffer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3338,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3341,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: 3309
        line_start: 3309
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(st, cmem))
      pos:
        line_end: 3326
        line_start: 3326
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(st, base))
      pos:
        line_end: 3330
        line_start: 3330
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3345
      start: 3304
    functionDepth: 3
    functionLinenumber: 3304
    functionLinenumberEnd: 3345
    functionName: PyCData_FromBaseObj
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - tp_alloc
    - PyType_Check
    - assert
    - PyErr_SetString
    - PyStgInfo_FromType
    - CDataObject_Check
    - PyCData_MallocBuffer
    - memcpy
    - stginfo_set_dict_final
    - Py_DECREF
    - Py_NewRef
    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:3355,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3359,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3359,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3362,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3366,1
    - Dst: stginfo_set_dict_final
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3371,1
    - Dst: tp_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3373,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3377,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3377,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: 3358
        line_start: 3358
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(st, pd))
      pos:
        line_end: 3376
        line_start: 3376
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3382
      start: 3350
    functionDepth: 3
    functionLinenumber: 3350
    functionLinenumberEnd: 3382
    functionName: PyCData_AtAddress
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 3
    functionsReached:
    - tp_alloc
    - PyType_Check
    - PySys_Audit
    - PyErr_SetString
    - PyStgInfo_FromType
    - CDataObject_Check
    - stginfo_set_dict_final
    - 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:3393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - obj
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3397
      start: 3389
    functionDepth: 1
    functionLinenumber: 3389
    functionLinenumberEnd: 3397
    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:3405,1
    - Dst: getfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3406,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3407,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3410,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3412,1
    - Dst: _ctypes_simple_instance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3415,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3417,1
    - Dst: StgInfo*::getfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3418,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3419,1
    - Dst: PyCData_FromBaseObj
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3422,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: 3409
        line_start: 3409
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3423
      start: 3399
    functionDepth: 4
    functionLinenumber: 3399
    functionLinenumberEnd: 3423
    functionName: PyCData_get
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - StgInfo*::getfunc
    - PyStgInfo_FromType
    - _ctypes_simple_instance
    - getfunc
    - assert
    - PyCData_FromBaseObj
    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:3433,1
    - Dst: setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3439,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3442,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3444,1
    - Dst: StgInfo*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3449,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3456,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3456,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3457,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3460,1
    - Dst: _ctypes_extend_error
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3462,1
    - Dst: _PyCData_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3468,1
    - Dst: PyCPointerTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3470,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3474,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3477,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3483,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3487,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3488,1
    - Dst: GetKeepedObjects
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3489,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3490,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3494,1
    - Dst: PyCPointerTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3497,1
    - Dst: ArrayObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3498,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3502,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3505,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3506,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3509,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3512,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3514,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3518,1
    - Dst: GetKeepedObjects
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3521,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3522,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3534,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3536,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3538,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: (PyType_Check(type))
      pos:
        line_end: 3455
        line_start: 3455
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (p2)
      pos:
        line_end: 3508
        line_start: 3508
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (p1)
      pos:
        line_end: 3504
        line_start: 3504
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3541
      start: 3428
    functionDepth: 3
    functionLinenumber: 3428
    functionLinenumberEnd: 3541
    functionName: _PyCData_set
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - _ctypes_extend_error
    - PyType_Check
    - Py_END_CRITICAL_SECTION
    - PyCPointerTypeObject_Check
    - GetKeepedObjects
    - ArrayObject_Check
    - memcpy
    - PyTuple_Check
    - assert
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyStgInfo_FromType
    - PyStgInfo_FromObject
    - setfunc
    - StgInfo*::setfunc
    - _PyCData_set
    - CDataObject_Check
    - _PyTuple_FromPair
    - PyObject_CallObject
    - Py_DECREF
    - Py_NewRef
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Format
    - PyObject_IsInstance
    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:3552,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3557,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3558,1
    - Dst: _PyCData_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3563,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3571,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: 3572
      start: 3547
    functionDepth: 4
    functionLinenumber: 3547
    functionLinenumberEnd: 3572
    functionName: PyCData_set
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 3
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyCData_set
    - CDataObject_Check
    - PyErr_SetString
    - 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:3579,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3579,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3581
      start: 3576
    functionDepth: 1
    functionLinenumber: 3576
    functionLinenumberEnd: 3581
    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:3590,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3594,1
    - Dst: stginfo_set_dict_final
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3599,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3601,1
    - Dst: PyCData_MallocBuffer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3610,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3611,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: 3615
      start: 3583
    functionDepth: 3
    functionLinenumber: 3583
    functionLinenumberEnd: 3615
    functionName: generic_pycdata_new
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyCData_MallocBuffer
    - stginfo_set_dict_final
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    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:3626,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3627,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - field
    - value
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3631
      start: 3621
    functionDepth: 1
    functionLinenumber: 3621
    functionLinenumberEnd: 3631
    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:3642,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3646,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3649,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3650,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3651,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - field
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3656
      start: 3638
    functionDepth: 1
    functionLinenumber: 3638
    functionLinenumberEnd: 3656
    functionName: atomic_xgetref
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_atomic_load_ptr
    - _Py_TryIncrefCompare
    - Py_XNewRef
    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:3673,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3674,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3678,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3669
    functionDepth: 2
    functionLinenumber: 3669
    functionLinenumberEnd: 3681
    functionName: _ctypes_CFuncPtr_errcheck_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyErr_SetString
    - atomic_xsetref
    - Py_XINCREF
    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:3696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3699
      start: 3691
    functionDepth: 0
    functionLinenumber: 3691
    functionLinenumberEnd: 3699
    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:3713,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3714,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3717,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3717,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3717,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3719,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3722,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3723,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3727,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3727,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3730,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3731,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3707
    functionDepth: 3
    functionLinenumber: 3707
    functionLinenumberEnd: 3734
    functionName: _ctypes_CFuncPtr_restype_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyCallable_Check
    - PyStgInfo_FromType
    - atomic_xsetref
    - PyErr_SetString
    - get_module_state_by_def
    - PyObject_GetOptionalAttr
    - Py_TYPE
    - _Py_ID
    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:3749,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3751,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3751,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3751,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3753,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3756,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 3755
        line_start: 3755
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3762
      start: 3744
    functionDepth: 3
    functionLinenumber: 3744
    functionLinenumberEnd: 3762
    functionName: _ctypes_CFuncPtr_restype_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - assert
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_CFuncPtr_restype_get_impl(PyCFuncPtrObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3775,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3776,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3778,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3779,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3779,1
    - Dst: converters_from_argtypes
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3781,1
    - Dst: _validate_paramflags
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3787,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3790,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3791,1
    - Dst: atomic_xsetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3795
      start: 3770
    functionDepth: 2
    functionLinenumber: 3770
    functionLinenumberEnd: 3795
    functionName: _ctypes_CFuncPtr_argtypes_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - atomic_xsetref
    - get_module_state_by_def
    - _validate_paramflags
    - converters_from_argtypes
    - Py_DECREF
    - 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:3810,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3812,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3812,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3812,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3814,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3817,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 3816
        line_start: 3816
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3823
      start: 3805
    functionDepth: 3
    functionLinenumber: 3805
    functionLinenumberEnd: 3823
    functionName: _ctypes_CFuncPtr_argtypes_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - assert
    - Py_NewRef
    - Py_TYPE
    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:3841,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3849,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3857,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3857,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3859,1
    - Dst: alloca
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3870,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3870,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3874,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3876,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - handle
    - name
    - type
    argTypes:
    - void*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3883
      start: 3833
    functionDepth: 3
    functionLinenumber: 3833
    functionLinenumberEnd: 3883
    functionName: FindAddress
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyStgInfo_FromType
    - get_module_state_by_def
    - alloca
    - strlen
    - GetProcAddress
    - sprintf
    - 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:3890,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3893,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3897,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3902,1
    - Dst: strchr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3904,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3904,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3908,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3910,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3911,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3913,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: 3915
      start: 3887
    functionDepth: 3
    functionLinenumber: 3887
    functionLinenumberEnd: 3915
    functionName: _check_outarg_type
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyCArrayTypeObject_Check
    - Py_SAFE_DOWNCAST
    - PyStgInfo_FromType
    - PyUnicode_Check
    - strchr
    - PyCPointerTypeObject_Check
    - PyUnicode_AsUTF8
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _check_outarg_type(ctypes_state *st, PyObject *arg, Py_ssize_t
      index)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3924,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3928,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3940,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3941,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3946,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3947,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3948,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3954,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3959,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3960,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3962,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3966,1
    - Dst: _check_outarg_type
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3974,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3978,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - st
    - type
    - paramflags
    - argtypes
    argTypes:
    - ctypes_state*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3918
    functionDepth: 4
    functionLinenumber: 3918
    functionLinenumberEnd: 3985
    functionName: _validate_paramflags
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyUnicode_Check
    - PyTuple_Check
    - _check_outarg_type
    - PyArg_ParseTuple
    - PyErr_Format
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int _validate_paramflags(ctypes_state *st, PyTypeObject *type, PyObject
      *paramflags, PyObject *argtypes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3992,1
    - Dst: MAKEINTRESOURCEA
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3996,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:3996,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4000,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4001,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4004,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4005,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4011
      start: 3987
    functionDepth: 1
    functionLinenumber: 3987
    functionLinenumberEnd: 4011
    functionName: _get_name
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 3
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - PyLong_Check
    - PyBytes_AS_STRING
    - MAKEINTRESOURCEA
    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:4026,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4031,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4039,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4047,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4052,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4059,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4062,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4065,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4066,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4070,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4071,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4074,1
    - Dst: FindAddress
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4080,1
    - Dst: IS_INTRESOURCE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4082,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4083,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4087,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4090,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4103,1
    - Dst: dlsym
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4105,1
    - Dst: dlerror
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4109,1
    - Dst: _PyErr_SetLocaleString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4112,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4117,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4122,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4122,1
    - Dst: _validate_paramflags
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4124,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4130,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4134,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4140,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4142,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4146,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 77
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4148
      start: 4014
    functionDepth: 5
    functionLinenumber: 4014
    functionLinenumberEnd: 4148
    functionName: PyCFuncPtr_FromDll
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PySequence_Tuple
    - PyErr_Occurred
    - IS_INTRESOURCE
    - _PyErr_SetLocaleString
    - Py_XNewRef
    - PyLong_AsVoidPtr
    - Py_TYPE
    - PySys_Audit
    - KeepRef
    - get_module_state_by_def
    - PyLong_Check
    - _validate_paramflags
    - PyArg_ParseTuple
    - FindAddress
    - Py_INCREF
    - PyErr_SetString
    - Py_DECREF
    - Py_NewRef
    - dlsym
    - PyObject_GetAttrString
    - PyErr_Format
    - generic_pycdata_new
    - dlerror
    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:4161,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4166,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4166,1
    - Dst: _validate_paramflags
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4167,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4170,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4176
      start: 4151
    functionDepth: 5
    functionLinenumber: 4151
    functionLinenumberEnd: 4176
    functionName: PyCFuncPtr_FromVtblIndex
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state_by_def
    - _validate_paramflags
    - PyArg_ParseTuple
    - generic_pycdata_new
    - 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:4199,1
    - Dst: GenericPyCData_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4200,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4202,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4202,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4202,1
    - Dst: PyCFuncPtr_FromDll
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4203,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4206,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4206,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4206,1
    - Dst: PyCFuncPtr_FromVtblIndex
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4207,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4210,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4211,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4211,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4213,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4213,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4214,1
    - Dst: GenericPyCData_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4216,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4223,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4225,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4226,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4247,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4247,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4249,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4254,1
    - Dst: _ctypes_alloc_callback
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4260,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4270,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4274,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4279,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4281,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4285
      start: 4192
    functionDepth: 6
    functionLinenumber: 4192
    functionLinenumberEnd: 4285
    functionName: PyCFuncPtr_new
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyCFuncPtr_FromVtblIndex
    - PyTuple_Check
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyLong_AsVoidPtr
    - Py_TYPE
    - PyCFuncPtr_FromDll
    - PyCallable_Check
    - PyStgInfo_FromType
    - KeepRef
    - get_module_state_by_def
    - PyLong_Check
    - PyArg_ParseTuple
    - _ctypes_alloc_callback
    - Py_INCREF
    - PyErr_SetString
    - Py_DECREF
    - Py_NewRef
    - GenericPyCData_new
    - generic_pycdata_new
    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:4296,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4297,1
    - Dst: PyCArgObject_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - st
    - obj
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4291
    functionDepth: 2
    functionLinenumber: 4291
    functionLinenumberEnd: 4313
    functionName: _byref
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyErr_SetString
    - CDataObject_Check
    - PyCArgObject_new
    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:4320,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4321,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4323,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4326,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4339,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4342,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: 4345
      start: 4315
    functionDepth: 1
    functionLinenumber: 4315
    functionLinenumberEnd: 4345
    functionName: _get_arg
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyErr_Format
    - PyDict_GetItemRef
    - PyTuple_GET_SIZE
    - Py_NewRef
    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:4384,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4387,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4387,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4389,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4392,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4393,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4404,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4413,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4414,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4414,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4415,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4416,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4423,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4425,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4426,1
    - Dst: _get_arg
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4435,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4438,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4452,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4453,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4458,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4460,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4466,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4470,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4471,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4477,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4478,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4482,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4494,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4499,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4510,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4510,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4526,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: 4528
      start: 4365
    functionDepth: 3
    functionLinenumber: 4365
    functionLinenumberEnd: 4528
    functionName: _build_callargs
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - PyTuple_GET_ITEM
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyCArrayTypeObject_Check
    - PyStgInfo_FromType
    - _get_arg
    - PyUnicode_Check
    - PyTuple_SET_ITEM
    - _PyLong_GetZero
    - PyErr_Format
    - Py_DECREF
    - PyTuple_GetSlice
    - PyTuple_GET_SIZE
    - _PyObject_CallNoArgs
    - Py_NewRef
    - PyTuple_New
    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:4549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4552,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4559,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4568,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4571,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4574,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4578,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4579,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4579,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4582,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4592,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 5
    argNames:
    - result
    - callargs
    - outmask
    - inoutmask
    - numretvals
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4538
    functionDepth: 1
    functionLinenumber: 4538
    functionLinenumberEnd: 4594
    functionName: _build_result
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - PyTuple_SET_ITEM
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyTuple_New
    - _Py_ID
    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:4606,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4612,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4612,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4612,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4614,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4617,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4619,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4621,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4623,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4625,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4627,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4629,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4631,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4633,1
    - Dst: atomic_xgetref
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4636,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4643,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4645,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4649,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4650,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4657,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4663,1
    - Dst: _build_callargs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4670,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4678,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4678,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4680,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4688,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4697,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4698,1
    - Dst: _ctypes_callproc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4707,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4737,1
    - Dst: _build_result
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4739,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4741,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4742,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4743,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4744,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4745,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 3
    argNames:
    - op
    - inargs
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 4616
        line_start: 4616
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4747
      start: 4596
    functionDepth: 4
    functionLinenumber: 4596
    functionLinenumberEnd: 4747
    functionName: PyCFuncPtr_call
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - atomic_xgetref
    - assert
    - PyTuple_GET_SIZE
    - Py_XNewRef
    - Py_TYPE
    - _PyCFuncPtrObject_CAST
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - PyTuple_GetItem
    - Py_XDECREF
    - _build_result
    - Py_SAFE_DOWNCAST
    - PyErr_SetString
    - CDataObject_Check
    - PyObject_CallFunctionObjArgs
    - Py_DECREF
    - _build_callargs
    - PyErr_Format
    - _ctypes_callproc
    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:4752,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4753,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4754,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4755,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4756,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4757,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4758,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4759,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4760,1
    - Dst: PyCData_traverse
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4762
      start: 4749
    functionDepth: 2
    functionLinenumber: 4749
    functionLinenumberEnd: 4762
    functionName: PyCFuncPtr_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyCFuncPtrObject_CAST
    - Py_VISIT
    - PyCData_traverse
    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:4767,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4768,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4769,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4770,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4771,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4772,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4773,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4774,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4775,1
    - Dst: PyCData_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4777
      start: 4764
    functionDepth: 2
    functionLinenumber: 4764
    functionLinenumberEnd: 4777
    functionName: PyCFuncPtr_clear
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyCFuncPtrObject_CAST
    - Py_CLEAR
    - PyCData_clear
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4782,1
    - Dst: PyCFuncPtr_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4783,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4784,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4779
    functionDepth: 3
    functionLinenumber: 4779
    functionLinenumberEnd: 4787
    functionName: PyCFuncPtr_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyCFuncPtr_clear
    - 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:4792,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4797,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4800,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4803
      start: 4789
    functionDepth: 1
    functionLinenumber: 4789
    functionLinenumberEnd: 4803
    functionName: PyCFuncPtr_repr
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyCFuncPtrObject_CAST
    - PyUnicode_FromFormat
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFuncPtrObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4814
      start: 4805
    functionDepth: 1
    functionLinenumber: 4805
    functionLinenumberEnd: 4814
    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:4858,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4858,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4860,1
    - Dst: _init_pos_args
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4864,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4872,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4875,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4877,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4878,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4880,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4880,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4881,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4883,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4890,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4892,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4899,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4902,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4904,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4911,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4912,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4918,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4919,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: (attrdict)
      pos:
        line_end: 4877
        line_start: 4877
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (info)
      pos:
        line_end: 4874
        line_start: 4874
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4924
      start: 4850
    functionDepth: 3
    functionLinenumber: 4850
    functionLinenumberEnd: 4924
    functionName: _init_pos_args
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - PyType_GetDict
    - PyObject_SetAttr
    - PyStgInfo_FromType
    - PySequence_GetItem
    - get_module_state_by_def
    - Py_CLEAR
    - PyDict_Contains
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_Format
    - PyTuple_GET_SIZE
    - _init_pos_args
    - PyDict_GetItemWithError
    - Py_TYPE
    - _Py_ID
    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:4932,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4933,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4937,1
    - Dst: _init_pos_args
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4938,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4938,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4942,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4943,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4952,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:4953,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4958
      start: 4926
    functionDepth: 4
    functionLinenumber: 4926
    functionLinenumberEnd: 4958
    functionName: Struct_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - PyErr_SetString
    - PyDict_Next
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - _init_pos_args
    - 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:5001,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5002,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5006,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5009,1
    - Dst: PySequence_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5010,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 4995
    functionDepth: 1
    functionLinenumber: 4995
    functionLinenumberEnd: 5014
    functionName: Array_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PySequence_SetItem
    - PyTuple_Check
    - PyTuple_GET_SIZE
    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:5019,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5021,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5025,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5030,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5030,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5030,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5032,1
    - Dst: PyCData_get
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - myself
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5044
      start: 5016
    functionDepth: 5
    functionLinenumber: 5016
    functionLinenumberEnd: 5044
    functionName: Array_item_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyCData_get
    - PyErr_SetString
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - Py_TYPE
    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:5050,1
    - Dst: Array_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5051,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - myself
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5054
      start: 5046
    functionDepth: 6
    functionLinenumber: 5046
    functionLinenumberEnd: 5054
    functionName: Array_item
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Array_item_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:5059,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5061,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5063,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5064,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5066,1
    - Dst: Array_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5070,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5072,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5078,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5081,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5083,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5083,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5083,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5085,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5088,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5091,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5094,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5097,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5102,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5105,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5109,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5112,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5119,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5120,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5123,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5128,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5131,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5136,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5138,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5147,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5148,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5152,1
    - Dst: Array_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5160,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5163,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5168,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 2
    argNames:
    - myself
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5087
        line_start: 5087
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (iteminfo)
      pos:
        line_end: 5093
        line_start: 5093
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5172
      start: 5056
    functionDepth: 6
    functionLinenumber: 5056
    functionLinenumberEnd: 5172
    functionName: Array_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyMem_New
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - assert
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_NoMemory
    - PyStgInfo_FromType
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - PyList_New
    - PyMem_Free
    - PyMem_Malloc
    - PyIndex_Check
    - PyUnicode_FromWideChar
    - _CDataObject_CAST
    - PySlice_AdjustIndices
    - PyErr_SetString
    - Py_DECREF
    - Py_GetConstant
    - Array_item_lock_held
    - PyList_SET_ITEM
    - _ctypes_get_fielddesc
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    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:5179,1
    - Dst: Array_subscript_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5180,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - myself
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5183
      start: 5175
    functionDepth: 7
    functionLinenumber: 5175
    functionLinenumberEnd: 5183
    functionName: Array_subscript
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Array_subscript_lock_held
    - Py_END_CRITICAL_SECTION
    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:5188,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5190,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5195,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5200,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5200,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5200,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5202,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5205,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5208,1
    - Dst: PyCData_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5216,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: 5204
        line_start: 5204
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5218
      start: 5185
    functionDepth: 5
    functionLinenumber: 5185
    functionLinenumberEnd: 5218
    functionName: Array_ass_item_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - PyCData_set
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - assert
    - Py_TYPE
    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:5224,1
    - Dst: Array_ass_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5225,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - myself
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5228
      start: 5220
    functionDepth: 6
    functionLinenumber: 5220
    functionLinenumberEnd: 5228
    functionName: Array_ass_item
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Array_ass_item_lock_held
    - Py_END_CRITICAL_SECTION
    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:5234,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5237,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5242,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5245,1
    - Dst: Array_ass_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5249,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5251,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5255,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5258,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5263,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5265,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5270,1
    - Dst: Array_ass_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5275,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5282,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - myself
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5286
      start: 5231
    functionDepth: 6
    functionLinenumber: 5231
    functionLinenumberEnd: 5286
    functionName: Array_ass_subscript_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - PySlice_Check
    - PySlice_AdjustIndices
    - PyErr_SetString
    - PySequence_Length
    - PyNumber_AsSsize_t
    - Array_ass_item_lock_held
    - PySequence_GetItem
    - PySlice_Unpack
    - PyErr_Occurred
    - Py_DECREF
    - PyIndex_Check
    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:5292,1
    - Dst: Array_ass_subscript_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5293,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - myself
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5296
      start: 5288
    functionDepth: 7
    functionLinenumber: 5288
    functionLinenumberEnd: 5296
    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:5302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5304
      start: 5299
    functionDepth: 1
    functionLinenumber: 5299
    functionLinenumberEnd: 5304
    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:5351,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5352,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5355,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5355,1
    - Dst: _PyDict_GetItemProxy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5362,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5366,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5369,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5373,1
    - Dst: sprintf
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5376,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5389,1
    - Dst: PyDict_SetItemProxy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - st
    - itemtype
    - length
    argTypes:
    - ctypes_state*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (st->array_cache != NULL)
      pos:
        line_end: 5350
        line_start: 5350
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5399
      start: 5344
    functionDepth: 2
    functionLinenumber: 5344
    functionLinenumberEnd: 5399
    functionName: PyCArrayType_from_ctype
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - sprintf
    - PyDict_SetItemProxy
    - PyErr_SetString
    - PyObject_CallFunction
    - PyLong_FromSsize_t
    - _PyDict_GetItemProxy
    - assert
    - _PyTuple_FromPairSteal
    - Py_DECREF
    - Py_NewRef
    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:5425,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5430,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5430,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5430,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5432,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5435,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5436,1
    - Dst: StgInfo*::setfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5438,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - CDataObject*
    - PyObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 5434
        line_start: 5434
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (info->setfunc)
      pos:
        line_end: 5435
        line_start: 5435
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5444
      start: 5418
    functionDepth: 4
    functionLinenumber: 5418
    functionLinenumberEnd: 5444
    functionName: _ctypes_Simple_value_set_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - assert
    - KeepRef
    - StgInfo*::setfunc
    - Py_TYPE
    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:5451,1
    - Dst: _ctypes_Simple_value_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5456
      start: 5447
    functionDepth: 1
    functionLinenumber: 5447
    functionLinenumberEnd: 5456
    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:5469,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5469,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5469,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5471,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5474,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5475,1
    - Dst: StgInfo*::getfunc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 5473
        line_start: 5473
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (info->getfunc)
      pos:
        line_end: 5474
        line_start: 5474
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5479
      start: 5465
    functionDepth: 3
    functionLinenumber: 5465
    functionLinenumberEnd: 5479
    functionName: _ctypes_Simple_value_get_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - StgInfo*::getfunc
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - assert
    - Py_TYPE
    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:5498,1
    - Dst: _ctypes_simple_instance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5499,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5499,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5500,1
    - Dst: _ctypes_Simple_value_get
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5504
      start: 5494
    functionDepth: 2
    functionLinenumber: 5494
    functionLinenumberEnd: 5504
    functionName: Simple_from_outparm_impl
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_Simple_value_get
    - get_module_state_by_class
    - _ctypes_simple_instance
    - 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:5515,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5516,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5517,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5520
      start: 5511
    functionDepth: 1
    functionLinenumber: 5511
    functionLinenumberEnd: 5520
    functionName: Simple_bool
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - memcmp
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:5527,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5527,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5527,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5529,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5530,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5531,1
    - Dst: _ctypes_Simple_value_get
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5534,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5538,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5542
      start: 5523
    functionDepth: 1
    functionLinenumber: 5523
    functionLinenumberEnd: 5542
    functionName: Simple_repr
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _ctypes_Simple_value_get
    - PyUnicode_FromFormat
    - get_module_state_by_def
    - Py_DECREF
    - 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:5571,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5572,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5579,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5584,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5584,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5584,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5586,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5589,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5592,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5595,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5598,1
    - Dst: PyCData_get
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - myself
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5588
        line_start: 5588
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (proto)
      pos:
        line_end: 5591
        line_start: 5591
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (iteminfo)
      pos:
        line_end: 5597
        line_start: 5597
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5606
      start: 5568
    functionDepth: 5
    functionLinenumber: 5568
    functionLinenumberEnd: 5606
    functionName: Pointer_item_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyCData_get
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - assert
    - Py_TYPE
    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:5612,1
    - Dst: Pointer_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5613,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5616
      start: 5608
    functionDepth: 6
    functionLinenumber: 5608
    functionLinenumberEnd: 5616
    functionName: Pointer_item
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:5621,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5622,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5628,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5635,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5640,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5640,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5640,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5642,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5645,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5648,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5651,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5654,1
    - Dst: PyCData_set
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5660,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: 5644
        line_start: 5644
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (proto)
      pos:
        line_end: 5647
        line_start: 5647
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (iteminfo)
      pos:
        line_end: 5653
        line_start: 5653
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5662
      start: 5618
    functionDepth: 5
    functionLinenumber: 5618
    functionLinenumberEnd: 5662
    functionName: Pointer_ass_item_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - PyStgInfo_FromType
    - PyCData_set
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - assert
    - Py_TYPE
    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:5668,1
    - Dst: Pointer_ass_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5669,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5672
      start: 5664
    functionDepth: 6
    functionLinenumber: 5664
    functionLinenumberEnd: 5672
    functionName: Pointer_ass_item
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Pointer_ass_item_lock_held
    - Py_END_CRITICAL_SECTION
    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:5677,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5678,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5680,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5685,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5687,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5690,1
    - Dst: PyCData_FromBaseObj
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5689
        line_start: 5689
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5693
      start: 5674
    functionDepth: 4
    functionLinenumber: 5674
    functionLinenumberEnd: 5693
    functionName: Pointer_get_contents_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - assert
    - Py_TYPE
    - PyCData_FromBaseObj
    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:5699,1
    - Dst: Pointer_get_contents_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5700,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5703
      start: 5695
    functionDepth: 5
    functionLinenumber: 5695
    functionLinenumberEnd: 5703
    functionName: Pointer_get_contents
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - Pointer_get_contents_lock_held
    - Py_END_CRITICAL_SECTION
    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:5708,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5711,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5714,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5718,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5718,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5718,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5720,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5723,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5724,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5725,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5726,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5730,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5733,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5746,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5747,1
    - Dst: GetKeepedObjects
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5750,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5754,1
    - Dst: KeepRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5722
        line_start: 5722
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (stginfo->proto)
      pos:
        line_end: 5723
        line_start: 5723
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5756
      start: 5705
    functionDepth: 4
    functionLinenumber: 5705
    functionLinenumberEnd: 5756
    functionName: Pointer_set_contents_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - PyErr_SetString
    - CDataObject_Check
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - GetKeepedObjects
    - PyErr_Format
    - assert
    - KeepRef
    - Py_TYPE
    - PyObject_IsInstance
    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:5762,1
    - Dst: Pointer_set_contents_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5763,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5766
      start: 5758
    functionDepth: 5
    functionLinenumber: 5758
    functionLinenumberEnd: 5766
    functionName: Pointer_set_contents
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Pointer_set_contents_lock_held
    - Py_BEGIN_CRITICAL_SECTION2
    - 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:5778,1
    - Dst: Pointer_set_contents
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5783
      start: 5774
    functionDepth: 6
    functionLinenumber: 5774
    functionLinenumberEnd: 5783
    functionName: Pointer_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Pointer_set_contents
    - PyArg_UnpackTuple
    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:5788,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5788,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5790,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5794,1
    - Dst: generic_pycdata_new
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5799
      start: 5785
    functionDepth: 4
    functionLinenumber: 5785
    functionLinenumberEnd: 5799
    functionName: Pointer_new
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyStgInfo_FromType
    - get_module_state_by_def
    - generic_pycdata_new
    - 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:5805,1
    - Dst: Pointer_item_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5809,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5813,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: 5817
      start: 5801
    functionDepth: 6
    functionLinenumber: 5801
    functionLinenumberEnd: 5817
    functionName: copy_pointer_to_list_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Pointer_item_lock_held
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyList_SET_ITEM
    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:5822,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5823,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5824,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5825,1
    - Dst: Pointer_item
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5827,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5829,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5844,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5846,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5849,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5856,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5864,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5866,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5870,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5874,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5876,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5886,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5886,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5886,1
    - Dst: PyStgInfo_FromObject
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5888,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5891,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5893,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5895,1
    - Dst: assert
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5898,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5899,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5903,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5906,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5908,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5910,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5913,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5915,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5916,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5921,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5922,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5923,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5926,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5930,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5933,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5935,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5937,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5940,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5942,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5943,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5948,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5949,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5950,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5954,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5959,1
    - Dst: copy_pointer_to_list_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5960,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5963,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5970,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 108
    argCount: 2
    argNames:
    - myself
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (stginfo)
      pos:
        line_end: 5890
        line_start: 5890
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (proto)
      pos:
        line_end: 5892
        line_start: 5892
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    - condition: (iteminfo)
      pos:
        line_end: 5897
        line_start: 5897
        source_file: /src/cpython/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5974
      start: 5819
    functionDepth: 7
    functionLinenumber: 5819
    functionLinenumberEnd: 5974
    functionName: Pointer_subscript
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyMem_New
    - Py_END_CRITICAL_SECTION
    - Pointer_item
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - assert
    - Py_TYPE
    - PyErr_NoMemory
    - PyStgInfo_FromType
    - PyStgInfo_FromObject
    - get_module_state_by_def
    - PyList_New
    - PyMem_Free
    - PyMem_Malloc
    - PyIndex_Check
    - copy_pointer_to_list_lock_held
    - PyUnicode_FromWideChar
    - _CDataObject_CAST
    - PyErr_SetString
    - Py_DECREF
    - Py_GetConstant
    - _ctypes_get_fielddesc
    - Py_BEGIN_CRITICAL_SECTION
    - PyNumber_AsSsize_t
    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:5980,1
    - Dst: _CDataObject_CAST
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5981,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:5982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5984
      start: 5976
    functionDepth: 1
    functionLinenumber: 5976
    functionLinenumberEnd: 5984
    functionName: Pointer_bool
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_CAST
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int Pointer_bool(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6025,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6025,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6028,1
    - Dst: PySequence_GetSlice
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6031,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6031,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6035,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6039,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6042,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6045,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6048,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6049,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6052
      start: 6018
    functionDepth: 1
    functionLinenumber: 6018
    functionLinenumberEnd: 6052
    functionName: comerror_init
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_SETREF
    - PyObject_SetAttrString
    - _PyArg_NoKeywords
    - PyArg_ParseTuple
    - Py_DECREF
    - PySequence_GetSlice
    - Py_TYPE
    - PyTuple_GET_SIZE
    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:6057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6058
      start: 6054
    functionDepth: 0
    functionLinenumber: 6054
    functionLinenumberEnd: 6058
    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:6063,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6063,1
    - Dst: tp_traverse
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6065
      start: 6060
    functionDepth: 1
    functionLinenumber: 6060
    functionLinenumberEnd: 6065
    functionName: comerror_traverse
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - tp_traverse
    - Py_VISIT
    - Py_TYPE
    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:6070,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6071,1
    - Dst: comerror_clear
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6072,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6075
      start: 6067
    functionDepth: 1
    functionLinenumber: 6067
    functionLinenumberEnd: 6075
    functionName: comerror_dealloc
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - comerror_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:6099,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6103,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6103,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6105
      start: 6096
    functionDepth: 1
    functionLinenumber: 6096
    functionLinenumberEnd: 6105
    functionName: string_at
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PySys_Audit
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      string_at(const char *ptr, int size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyCPointerTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6110,1
    - Dst: PyCFuncPtrTypeObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6113,1
    - Dst: PyStgInfo_FromType
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6117,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6121,1
    - Dst: strchr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6122,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6122,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6127,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6129,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - st
    - arg
    argTypes:
    - ctypes_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6133
      start: 6107
    functionDepth: 3
    functionLinenumber: 6107
    functionLinenumberEnd: 6133
    functionName: cast_check_pointertype
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCFuncPtrTypeObject_Check
    - PyType_Check
    - PyStgInfo_FromType
    - PyUnicode_Check
    - strchr
    - PyCPointerTypeObject_Check
    - PyUnicode_AsUTF8
    - PyErr_Format
    - Py_TYPE
    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:6138,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6139,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6139,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6141,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6145,1
    - Dst: cast_check_pointertype
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6148,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6151,1
    - Dst: CDataObject_Check
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6161,1
    - Dst: PyCData_GetContainer
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6173,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6174,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6178,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6179,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6182,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6186,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6196,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - ptr
    - src
    - ctype
    argTypes:
    - void*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6198
      start: 6135
    functionDepth: 4
    functionLinenumber: 6135
    functionLinenumberEnd: 6198
    functionName: cast_lock_held
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - CDataObject_Check
    - PyCData_GetContainer
    - PyType_GetModuleByDef
    - PyDict_SetItem
    - cast_check_pointertype
    - PyLong_FromVoidPtr
    - memcpy
    - Py_DECREF
    - PyDict_CheckExact
    - _PyObject_CallNoArgs
    - Py_XNewRef
    - Py_TYPE
    - PyDict_New
    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:6204,1
    - Dst: cast_lock_held
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6205,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - src
    - ctype
    argTypes:
    - void*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6208
      start: 6200
    functionDepth: 5
    functionLinenumber: 6200
    functionLinenumberEnd: 6208
    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:6214,1
    - Dst: wcslen
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6218,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6220
      start: 6210
    functionDepth: 1
    functionLinenumber: 6210
    functionLinenumberEnd: 6220
    functionName: wstring_at
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PySys_Audit
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wstring_at(const wchar_t *ptr, int size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6225,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6230,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - size
    - readonly
    argTypes:
    - void*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6237
      start: 6222
    functionDepth: 1
    functionLinenumber: 6222
    functionLinenumberEnd: 6237
    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:6262,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6268,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6269,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6270,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6273,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6280,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6282,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6284,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6286,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6288,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6290,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6298,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6300,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6302,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6304,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6306,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6308,1
    - Dst: MOD_ADD_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6316,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6323,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6324,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6334
      start: 6239
    functionDepth: 1
    functionLinenumber: 6239
    functionLinenumberEnd: 6334
    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: 6246
      start: 6242
    functionDepth: 0
    functionLinenumber: 6242
    functionLinenumberEnd: 6246
    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: 6254
      start: 6246
    functionDepth: 0
    functionLinenumber: 6246
    functionLinenumberEnd: 6254
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 5
    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: 6261
      start: 6255
    functionDepth: 0
    functionLinenumber: 6255
    functionLinenumberEnd: 6261
    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:6347,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6350,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6350,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6351,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6351,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6352,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6352,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6354,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6354,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6355,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6355,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6356,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6356,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6357,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6357,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6359,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6359,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6360,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6360,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6361,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6361,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6362,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6362,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6363,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6363,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6364,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6364,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6376,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6376,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6377,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6377,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6378,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6378,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6379,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6379,1
    - Dst: MOD_ADD
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6380,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6383
      start: 6337
    functionDepth: 1
    functionLinenumber: 6337
    functionLinenumberEnd: 6383
    functionName: _ctypes_add_objects
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyLong_FromLong
    - PyLong_FromSsize_t
    - MOD_ADD
    - Py_NewRef
    - PyLong_FromVoidPtr
    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: 6346
      start: 6340
    functionDepth: 0
    functionLinenumber: 6340
    functionLinenumberEnd: 6346
    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:6394,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6396,1
    - Dst: Py_ffi_closure_free
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6399,1
    - Dst: _ctypes_init_fielddesc
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6401,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6403,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6404,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6409,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6414,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6420,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6422,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6428,1
    - Dst: _ctypes_add_types
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6433,1
    - Dst: _ctypes_add_objects
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6437,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6441
      start: 6386
    functionDepth: 3
    functionLinenumber: 6386
    functionLinenumberEnd: 6441
    functionName: _ctypes_mod_exec
    functionSourceFile: /src/cpython/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - get_module_state
    - _ctypes_add_objects
    - PyErr_NoMemory
    - PyUnicode_InternFromString
    - _ctypes_add_types
    - _ctypes_init_fielddesc
    - Py_ffi_closure_alloc
    - Py_ffi_closure_free
    - PyObject_GetAttrString
    - PyDict_New
    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: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:6453,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6454,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6455,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6456,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6457,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6458,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6459,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6460,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6461,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6462,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6463,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6464,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6465,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6466,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6467,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6468,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6469,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6470,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6472,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6476
      start: 6444
    functionDepth: 1
    functionLinenumber: 6444
    functionLinenumberEnd: 6476
    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: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:6487,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6488,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6489,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6490,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6491,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6492,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6493,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6494,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6495,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6496,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6497,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6498,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6499,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6500,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6501,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6502,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6503,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6504,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6506,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_ctypes/_ctypes.c:6508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6510
      start: 6478
    functionDepth: 1
    functionLinenumber: 6478
    functionLinenumberEnd: 6510
    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:6515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6516
      start: 6512
    functionDepth: 0
    functionLinenumber: 6512
    functionLinenumberEnd: 6516
    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:6541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6542
      start: 6538
    functionDepth: 1
    functionLinenumber: 6538
    functionLinenumberEnd: 6542
    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_VISIT
    - Py_TYPE
    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:
    - CThunkObject_clear
    - PyObject_GC_Del
    - Py_ffi_closure_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:
    - IUnknown*::lpVtbl::AddRef
    - PyDict_Contains
    - _Py_ID
    - _PyType_GetDict
    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: (setfunc)
      pos:
        line_end: 222
        line_start: 222
        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: (PyTuple_Check(converters))
      pos:
        line_end: 124
        line_start: 124
        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:
    - alloca
    - memcpy
    - PyTuple_Check
    - GetLastError
    - assert
    - PyTuple_GET_SIZE
    - PyStgInfo_FromType
    - Py_XDECREF
    - setfunc
    - _PyObject_CallNoArgs
    - PyErr_WarnEx
    - CDataObject_Check
    - _ctypes_simple_instance
    - _ctypes_get_errobj
    - Py_DECREF
    - PySequence_Fast_ITEMS
    - _ctypes_get_fielddesc
    - TryAddRef
    - StgInfo*::getfunc
    - PyObject_Vectorcall
    - PyErr_Format
    - SetLastError
    - PyErr_FormatUnraisable
    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:
    - get_module_state_by_class
    - PyGILState_Ensure
    - 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_NewVar
    - memset
    - PyObject_GC_Track
    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: (CThunk_CheckExact(st, (PyObject *)p))
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/cpython/Modules/_ctypes/callbacks.c
    - condition: (PyTuple_Check(converters))
      pos:
        line_end: 341
        line_start: 341
        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:
    - PyErr_NoMemory
    - PySequence_Fast_ITEMS
    - Py_SAFE_DOWNCAST
    - ffi_prep_closure_loc
    - PyStgInfo_FromType
    - PyErr_SetString
    - ffi_prep_closure
    - Py_ffi_closure_alloc
    - CThunkObject_new
    - ffi_prep_cif
    - PyTuple_Check
    - assert
    - _ctypes_get_ffi_type
    - CThunk_CheckExact
    - PyTuple_GET_SIZE
    - PyErr_Format
    - Py_XDECREF
    - Py_NewRef
    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_Initialize
    - Py_IsInitialized
    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:
    - PyObject_CallFunctionObjArgs
    - PyErr_FormatUnraisable
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyLong_FromVoidPtr
    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
    - Call_GetClassObject
    - PyGILState_Release
    - LoadPython
    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:
    - PyErr_FormatUnraisable
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_CallNoArgs
    - PyImport_ImportModuleAttrString
    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_Ensure
    - Call_CanUnloadNow
    - PyGILState_Release
    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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyCField_new_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - clinic_state
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_byref_impl
    - _PyArg_BadArgument
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:
    - PyObject_TypeCheck
    - _ctypes_addressof_impl
    - Py_END_CRITICAL_SECTION
    - clinic_state
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    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:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - _ctypes_resize_impl
    - Py_END_CRITICAL_SECTION
    - clinic_state
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:
    - _PyArg_UnpackKeywords
    - CDataType_from_address_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_address(PyObject *type, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 6
    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: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:180,1
    - Dst: CDataType_from_buffer_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:186,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 190
    functionName: CDataType_from_buffer
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - CDataType_from_buffer_impl
    - PyErr_SetString
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:228,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:233,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:241,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:244,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:246,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:251,1
    - Dst: CDataType_from_buffer_copy_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:257,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:262,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 5
    argNames:
    - type
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 266
    functionName: CDataType_from_buffer_copy
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - CDataType_from_buffer_copy_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyObject_GetBuffer
    - 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:304,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:310,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:311,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:315,1
    - Dst: strlen
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:319,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:320,1
    - Dst: CDataType_in_dll_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:323,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: 327
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 327
    functionName: CDataType_in_dll
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - CDataType_in_dll_impl
    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:361,1
    - Dst: CDataType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:367,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: 371
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 371
    functionName: CDataType_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - CDataType_from_param_impl
    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:405,1
    - Dst: PyCPointerType_set_type_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:411,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: 415
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 415
    functionName: PyCPointerType_set_type
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyCPointerType_set_type_impl
    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:450,1
    - Dst: PyCPointerType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:456,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: 460
      start: 430
    functionDepth: 5
    functionLinenumber: 430
    functionLinenumberEnd: 460
    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:480,1
    - Dst: _ctypes_PyCArrayType_Type_raw_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:481,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: _ctypes_PyCArrayType_Type_raw_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_PyCArrayType_Type_raw_set_impl
    - Py_END_CRITICAL_SECTION
    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:505,1
    - Dst: _ctypes_PyCArrayType_Type_raw_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:506,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 510
    functionName: _ctypes_PyCArrayType_Type_raw_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_PyCArrayType_Type_raw_get_impl
    - Py_END_CRITICAL_SECTION
    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:530,1
    - Dst: _ctypes_PyCArrayType_Type_value_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:531,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 535
    functionName: _ctypes_PyCArrayType_Type_value_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_PyCArrayType_Type_value_get_impl
    - Py_END_CRITICAL_SECTION
    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:555,1
    - Dst: _ctypes_PyCArrayType_Type_value_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:556,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 560
    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:593,1
    - Dst: c_wchar_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:599,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: 603
      start: 573
    functionDepth: 4
    functionLinenumber: 573
    functionLinenumberEnd: 603
    functionName: c_wchar_p_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - c_wchar_p_from_param_impl
    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:636,1
    - Dst: c_char_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:642,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: 646
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 646
    functionName: c_char_p_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - c_char_p_from_param_impl
    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:679,1
    - Dst: c_void_p_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:685,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: 689
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 689
    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:724,1
    - Dst: PyCSimpleType_from_param_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:730,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: 734
      start: 704
    functionDepth: 4
    functionLinenumber: 704
    functionLinenumberEnd: 734
    functionName: PyCSimpleType_from_param
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyCSimpleType_from_param_impl
    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:752,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:753,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:756,1
    - Dst: _ctypes_PyCData___reduce___impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:757,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:758,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: 762
      start: 747
    functionDepth: 4
    functionLinenumber: 747
    functionLinenumberEnd: 762
    functionName: _ctypes_PyCData___reduce__
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _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:784,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:788,1
    - Dst: _ctypes_PyCData___setstate___impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:789,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - myself
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 794
    functionName: _ctypes_PyCData___setstate__
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - _ctypes_PyCData___setstate___impl
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_ParseStack
    - Py_END_CRITICAL_SECTION
    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:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 812
    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:832,1
    - Dst: _ctypes_CFuncPtr_errcheck_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:833,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 837
    functionName: _ctypes_CFuncPtr_errcheck_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:864,1
    - Dst: _ctypes_CFuncPtr_errcheck_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:865,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 869
    functionName: _ctypes_CFuncPtr_errcheck_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_CFuncPtr_errcheck_get_impl
    - Py_END_CRITICAL_SECTION
    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:889,1
    - Dst: _ctypes_CFuncPtr_restype_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:890,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 884
    functionDepth: 4
    functionLinenumber: 884
    functionLinenumberEnd: 894
    functionName: _ctypes_CFuncPtr_restype_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_CFuncPtr_restype_set_impl
    - Py_END_CRITICAL_SECTION
    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:921,1
    - Dst: _ctypes_CFuncPtr_restype_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:922,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 916
    functionDepth: 4
    functionLinenumber: 916
    functionLinenumberEnd: 926
    functionName: _ctypes_CFuncPtr_restype_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_CFuncPtr_restype_get_impl
    - Py_END_CRITICAL_SECTION
    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:946,1
    - Dst: _ctypes_CFuncPtr_argtypes_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:947,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 941
    functionDepth: 3
    functionLinenumber: 941
    functionLinenumberEnd: 951
    functionName: _ctypes_CFuncPtr_argtypes_set
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_CFuncPtr_argtypes_set_impl
    - Py_END_CRITICAL_SECTION
    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:978,1
    - Dst: _ctypes_CFuncPtr_argtypes_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:979,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 973
    functionDepth: 4
    functionLinenumber: 973
    functionLinenumberEnd: 983
    functionName: _ctypes_CFuncPtr_argtypes_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ctypes_CFuncPtr_argtypes_get_impl
    - Py_END_CRITICAL_SECTION
    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:1003,1
    - Dst: _ctypes_Simple_value_set_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1004,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 998
    functionDepth: 5
    functionLinenumber: 998
    functionLinenumberEnd: 1008
    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:1028,1
    - Dst: _ctypes_Simple_value_get_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1029,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1023
    functionDepth: 4
    functionLinenumber: 1023
    functionLinenumberEnd: 1033
    functionName: _ctypes_Simple_value_get
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 2
    functionsReached:
    - _ctypes_Simple_value_get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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:1049,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1050,1
    - Dst: Simple_from_outparm_impl
      Src: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h:1053,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: 1054
      start: 1046
    functionDepth: 3
    functionLinenumber: 1046
    functionLinenumberEnd: 1054
    functionName: Simple_from_outparm
    functionSourceFile: /src/cpython/Modules/_ctypes/clinic/_ctypes.c.h
    functionUses: 0
    functionsReached:
    - Simple_from_outparm_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 7
    functionsReached:
    - ns
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(XmlGetUtf8InternalEncoding)(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:48,1
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:50,1
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:53,1
    - Dst: ns
      Src: /src/cpython/Modules/expat/xmltok_ns.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 7
    functionsReached:
    - ns
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(XmlGetUtf16InternalEncoding)(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initScan
      Src: /src/cpython/Modules/expat/xmltok_ns.c:68,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 8
    functionsReached:
    - NS
    - initScan
    linkageType: ''
    returnType: int
    signature: "int NS(initScanProlog)(const ENCODING *enc, const char *ptr, const
      char *end,\n                   const char **nextTokPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initScan
      Src: /src/cpython/Modules/expat/xmltok_ns.c:75,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 9
    functionsReached:
    - NS
    - initScan
    linkageType: ''
    returnType: int
    signature: "int NS(initScanContent)(const ENCODING *enc, const char *ptr, const
      char *end,\n                    const char **nextTokPtr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getEncodingIndex
      Src: /src/cpython/Modules/expat/xmltok_ns.c:82,1
    - Dst: SET_INIT_ENC_INDEX
      Src: /src/cpython/Modules/expat/xmltok_ns.c:85,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:86,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - encPtr
    - name
    argTypes:
    - INIT_ENCODING*
    - ENCODING**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 10
    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:100,1
    - Dst: streqci
      Src: /src/cpython/Modules/expat/xmltok_ns.c:104,1
    - Dst: getEncodingIndex
      Src: /src/cpython/Modules/expat/xmltok_ns.c:106,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - enc
    - ptr
    - end
    argTypes:
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 11
    functionsReached:
    - NS
    - XmlUtf8Convert
    - streqci
    - getEncodingIndex
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doParseXmlDecl
      Src: /src/cpython/Modules/expat/xmltok_ns.c:118,1
    - Dst: NS
      Src: /src/cpython/Modules/expat/xmltok_ns.c:118,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: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: NS
    functionSourceFile: /src/cpython/Modules/expat/xmltok_ns.c
    functionUses: 12
    functionsReached:
    - NS
    - doParseXmlDecl
    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: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    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:
    - UNUSED_P
    - _INTERNAL_trim_to_complete_utf8_characters
    - memcpy
    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:
    - UNUSED_P
    - LITTLE2_BYTE_TO_ASCII
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      little2_byteToAscii(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/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:
    - toAscii
    - isSpace
    linkageType: ''
    returnType: int
    signature: "int parsePseudoAttribute(const ENCODING *enc, const char *ptr, const
      char *end,\n                     const char **namePtr, const char **nameEndPtr,\n
      \                    const char **valPtr, const char **nextTokPtr)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: parsePseudoAttribute
      Src: /src/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:
    - encodingFinder
    - parsePseudoAttribute
    - toAscii
    - isSpace
    - 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:
    - struct unknown_encoding*::convert
    - XmlUtf8Encode
    - memcpy
    - AS_UNKNOWN_ENCODING
    - AS_NORMAL_ENCODING
    linkageType: ''
    returnType: enum XML_Convert_Result
    signature: "enum XML_Convert_Result unknown_toUtf8(const ENCODING *enc, const
      char **fromP, const char *fromLim,\n               char **toP, const char *toLim)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/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:
    - checkCharRefNumber
    - XmlUtf8Encode
    - UCS2_GET_NAMING
    - memcpy
    linkageType: ''
    returnType: ENCODING
    signature: "ENCODING *\nXmlInitUnknownEncoding(void *mem, const 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:
    - INIT_ENC_INDEX
    - XmlTok
    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: 12
    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: 53
    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: 12
    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: 53
    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, const 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: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: EXPAT_FMT_LLX
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_LLX(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_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: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    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: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    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: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    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: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    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: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: EXPAT_FMT_LLX
    functionSourceFile: /src/cpython/Modules/expat/internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_FMT_LLX(midpart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    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: 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:
    - (
    - midpart
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    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: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    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: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    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:
    - HAS_CHAR
    - CHAR_MATCHES
    - INVALID_CASES
    - REQUIRE_CHAR
    - MINBPC
    - BYTE_TYPE
    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:
    - HAS_CHAR
    - REQUIRE_CHAR
    - PREFIX
    - MINBPC
    - REQUIRE_CHARS
    - BYTE_TYPE
    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:
    - CHECK_NMSTRT_CASES
    - HAS_CHAR
    - CHAR_MATCHES
    - CHECK_NAME_CASES
    - REQUIRE_CHAR
    - INVALID_CASES
    - PREFIX
    - MINBPC
    - BYTE_TYPE
    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
    - MINBPC
    - REQUIRE_CHARS
    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:
    - HAS_CHAR
    - CHAR_MATCHES
    - LEAD_CASE
    - REQUIRE_CHAR
    - INVALID_CASES
    - MINBPC
    - BYTE_TYPE
    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:
    - CHECK_NMSTRT_CASES
    - HAS_CHAR
    - CHECK_NAME_CASES
    - REQUIRE_CHAR
    - MINBPC
    - BYTE_TYPE
    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:
    - BYTE_TYPE
    - MINBPC
    - HAS_CHAR
    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:
    - HAS_CHAR
    - CHAR_MATCHES
    - PREFIX
    - MINBPC
    - BYTE_TYPE
    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:
    - CHECK_NMSTRT_CASES
    - HAS_CHAR
    - CHECK_NAME_CASES
    - REQUIRE_CHAR
    - PREFIX
    - MINBPC
    - BYTE_TYPE
    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:
    - CHECK_NMSTRT_CASES
    - HAS_CHAR
    - CHAR_MATCHES
    - CHECK_NAME_CASES
    - REQUIRE_CHAR
    - INVALID_CASES
    - PREFIX
    - MINBPC
    - BYTE_TYPE
    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:
    - CHECK_NMSTRT_CASES
    - HAS_CHAR
    - CHAR_MATCHES
    - CHECK_NAME_CASES
    - REQUIRE_CHAR
    - PREFIX
    - MINBPC
    - BYTE_TYPE
    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:
    - HAS_CHAR
    - CHAR_MATCHES
    - LEAD_CASE
    - INVALID_CASES
    - HAS_CHARS
    - PREFIX
    - MINBPC
    - BYTE_TYPE
    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:
    - CHECK_NMSTRT_CASES
    - HAS_CHAR
    - CHECK_NAME_CASES
    - REQUIRE_CHAR
    - MINBPC
    - BYTE_TYPE
    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:
    - CHECK_NMSTRT_CASES
    - HAS_CHAR
    - CHECK_NAME_CASES
    - REQUIRE_CHAR
    - BYTE_TYPE
    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:
    - BYTE_TYPE
    - MINBPC
    - INVALID_CASES
    - HAS_CHAR
    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:
    - IS_NMSTRT_CHAR_MINBPC
    - HAS_CHAR
    - CHAR_MATCHES
    - LEAD_CASE
    - REQUIRE_CHAR
    - CHECK_NAME_CASES
    - IS_NAME_CHAR_MINBPC
    - PREFIX
    - MINBPC
    - REQUIRE_CHARS
    - BYTE_TYPE
    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:
    - HAS_CHAR
    - LEAD_CASE
    - PREFIX
    - MINBPC
    - BYTE_TYPE
    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:
    - HAS_CHAR
    - LEAD_CASE
    - PREFIX
    - MINBPC
    - BYTE_TYPE
    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:
    - HAS_CHAR
    - CHAR_MATCHES
    - INVALID_CASES
    - REQUIRE_CHAR
    - MINBPC
    - BYTE_TYPE
    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:
    - HAS_CHAR
    - BYTE_TO_ASCII
    - CHAR_MATCHES
    - MINBPC
    - BYTE_TYPE
    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_TYPE
    - BYTE_TO_ASCII
    - LEAD_CASE
    - 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
    - BYTE_TO_ASCII
    - CHAR_MATCHES
    - 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
    - BYTE_TO_ASCII
    - CHAR_MATCHES
    - 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
    - LEAD_CASE
    - MINBPC
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      PREFIX(nameLength)(const ENCODING *enc, const char *ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 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:
    - BYTE_TYPE
    - LEAD_CASE
    - MINBPC
    - HAS_CHAR
    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
    - common
    - MIN_BYTES_PER_CHAR
    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
    - common
    - MIN_BYTES_PER_CHAR
    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
    - common
    - MIN_BYTES_PER_CHAR
    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:
    - common
    - internalSubset
    linkageType: ''
    returnType: int
    signature: "int externalSubset1(PROLOG_STATE *state, int tok, const char *ptr,
      const char *end,\n                const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/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
    - common
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int entity10(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/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
    - common
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int notation4(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/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
    - common
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int attlist1(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/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
    - common
    - MIN_BYTES_PER_CHAR
    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
    - common
    - MIN_BYTES_PER_CHAR
    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
    - common
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int declClose(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/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: 382
    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: 52
    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_round
    - SIP_U8TO64_LE
    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_init
    - sip24_update
    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
    - siphash24
    - SIP_U8TO64_LE
    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: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    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: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    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: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    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: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    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: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    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: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    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: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    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: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    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: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    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: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    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: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    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: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    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: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    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: 646
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 646
    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: 647
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 647
    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: 648
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 648
    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: 649
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 649
    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: 650
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 650
    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: 651
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 651
    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: 655
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 655
    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: 792
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 792
    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: 793
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 793
    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: 794
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 794
    functionName: FREE
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE(parser, p)
  - 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: 796
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 796
    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: 797
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 797
    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: 798
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 798
    functionName: FREE
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE(parser, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:807,1
    - Dst: EXPAT_FMT_ULL
      Src: /src/cpython/Modules/expat/xmlparse.c:809,1
    - Dst: EXPAT_FMT_ULL
      Src: /src/cpython/Modules/expat/xmlparse.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rootParser
    - newTotal
    - peakTotal
    - sourceLine
    argTypes:
    - XML_Parser
    - XmlBigCount
    - XmlBigCount
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 813
    functionName: expat_heap_stat
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - EXPAT_FMT_ULL
    linkageType: ''
    returnType: void
    signature: "void expat_heap_stat(XML_Parser rootParser, char operator, XmlBigCount
      absDiff,\n                XmlBigCount newTotal, XmlBigCount peakTotal, int sourceLine)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:818,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:819,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:831,1
    - Dst: expat_heap_stat
      Src: /src/cpython/Modules/expat/xmlparse.c:843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - rootParser
    - increase
    - sourceLine
    argTypes:
    - XML_Parser
    - XmlBigCount
    - int
    assertStmts:
    - condition: (rootParser != NULL)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (newTotal > 0)
      pos:
        line_end: 830
        line_start: 830
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (increase > 0)
      pos:
        line_end: 818
        line_start: 818
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 847
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 847
    functionName: expat_heap_increase_tolerable
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - expat_heap_stat
    - assert
    linkageType: ''
    returnType: bool
    signature: "bool expat_heap_increase_tolerable(XML_Parser rootParser, XmlBigCount
      increase,\n                              int sourceLine)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:860,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:861,1
    - Dst: expat_heap_increase_tolerable
      Src: /src/cpython/Modules/expat/xmlparse.c:870,1
    - Dst: XML_Parser::m_mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:876,1
    - Dst: expat_heap_stat
      Src: /src/cpython/Modules/expat/xmlparse.c:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - parser
    - size
    - sourceLine
    argTypes:
    - XML_Parser
    - size_t
    - int
    assertStmts:
    - condition: (rootParser->m_parentParser == NULL)
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 901
      start: 852
    functionDepth: 3
    functionLinenumber: 852
    functionLinenumberEnd: 901
    functionName: expat_malloc
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XML_Parser::m_mem::malloc_fcn
    - assert
    - expat_heap_stat
    - expat_heap_increase_tolerable
    - getRootParserOf
    linkageType: ''
    returnType: void
    signature: 'void *

      #  endif

      expat_malloc(XML_Parser parser, size_t size, int sourceLine)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:909,1
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:915,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:916,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:925,1
    - Dst: expat_heap_stat
      Src: /src/cpython/Modules/expat/xmlparse.c:930,1
    - Dst: XML_Parser::m_mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - parser
    - ptr
    - sourceLine
    argTypes:
    - XML_Parser
    - void*
    - int
    assertStmts:
    - condition: (parser != NULL)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (rootParser->m_alloc_tracker.bytesAllocated >= bytesAllocated)
      pos:
        line_end: 924
        line_start: 924
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (rootParser->m_parentParser == NULL)
      pos:
        line_end: 915
        line_start: 915
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 937
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 937
    functionName: expat_free
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - expat_heap_stat
    - XML_Parser::m_mem::free_fcn
    - getRootParserOf
    - assert
    linkageType: ''
    returnType: void
    signature: void expat_free(XML_Parser parser, void *ptr, int sourceLine)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:945,1
    - Dst: expat_malloc
      Src: /src/cpython/Modules/expat/xmlparse.c:948,1
    - Dst: expat_free
      Src: /src/cpython/Modules/expat/xmlparse.c:952,1
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:956,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:957,1
    - Dst: expat_heap_increase_tolerable
      Src: /src/cpython/Modules/expat/xmlparse.c:971,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:978,1
    - Dst: XML_Parser::m_mem::realloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:981,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:990,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:994,1
    - Dst: expat_heap_stat
      Src: /src/cpython/Modules/expat/xmlparse.c:1005,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - parser
    - ptr
    - size
    - sourceLine
    argTypes:
    - XML_Parser
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (parser != NULL)
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (rootParser->m_parentParser == NULL)
      pos:
        line_end: 956
        line_start: 956
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (SIZE_MAX - sizeof(size_t) - EXPAT_MALLOC_PADDING >= size)
      pos:
        line_end: 977
        line_start: 977
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: "((XmlBigCount)-1 - rootParser->m_alloc_tracker.bytesAllocated\n
        \          >= absDiff)"
      pos:
        line_end: 990
        line_start: 989
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (rootParser->m_alloc_tracker.bytesAllocated >= absDiff)
      pos:
        line_end: 993
        line_start: 993
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 1014
      start: 942
    functionDepth: 4
    functionLinenumber: 942
    functionLinenumberEnd: 1014
    functionName: expat_realloc
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - expat_heap_stat
    - expat_free
    - XML_Parser::m_mem::realloc_fcn
    - expat_malloc
    - assert
    - expat_heap_increase_tolerable
    - getRootParserOf
    linkageType: ''
    returnType: void
    signature: 'void *

      #  endif

      expat_realloc(XML_Parser parser, void *ptr, size_t size, int sourceLine)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserCreate_MM
      Src: /src/cpython/Modules/expat/xmlparse.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encodingName
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1020
    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:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encodingName
    - nsSep
    argTypes:
    - XML_Char*
    - XML_Char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1026
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/cpython/Modules/expat/xmlparse.c:1046,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/expat/xmlparse.c:1052,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (gettimeofday_res == 0)
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 1063
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1063
    functionName: gather_time_entropy
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - gettimeofday
    - assert
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long gather_time_entropy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getDebugLevel
      Src: /src/cpython/Modules/expat/xmlparse.c:1069,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:1070,1
    - Dst: EXPAT_FMT_LLX
      Src: /src/cpython/Modules/expat/xmlparse.c:1071,1
    - Dst: EXPAT_FMT_LLX
      Src: /src/cpython/Modules/expat/xmlparse.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - label
    - entropy_128
    argTypes:
    - char*
    - struct sipkey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1077
    functionName: ENTROPY_DEBUG
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - EXPAT_FMT_LLX
    - getDebugLevel
    linkageType: ''
    returnType: struct sipkey
    signature: struct sipkey ENTROPY_DEBUG(const char *label, struct sipkey entropy_128)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writeRandomBytes_arc4random_buf
      Src: /src/cpython/Modules/expat/xmlparse.c:1085,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1086,1
    - Dst: writeRandomBytes_arc4random
      Src: /src/cpython/Modules/expat/xmlparse.c:1088,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1089,1
    - Dst: writeRandomBytes_rand_s
      Src: /src/cpython/Modules/expat/xmlparse.c:1093,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1094,1
    - Dst: writeRandomBytes_getentropy
      Src: /src/cpython/Modules/expat/xmlparse.c:1097,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1098,1
    - Dst: writeRandomBytes_getrandom_nonblock
      Src: /src/cpython/Modules/expat/xmlparse.c:1102,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1103,1
    - Dst: writeRandomBytes_dev_urandom
      Src: /src/cpython/Modules/expat/xmlparse.c:1107,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1108,1
    - Dst: gather_time_entropy
      Src: /src/cpython/Modules/expat/xmlparse.c:1114,1
    - Dst: getpid
      Src: /src/cpython/Modules/expat/xmlparse.c:1117,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1123,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:1126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1129
    functionName: generate_hash_secret_salt
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - writeRandomBytes_arc4random_buf
    - writeRandomBytes_getentropy
    - writeRandomBytes_dev_urandom
    - gather_time_entropy
    - writeRandomBytes_rand_s
    - ENTROPY_DEBUG
    - writeRandomBytes_getrandom_nonblock
    - getpid
    - writeRandomBytes_arc4random
    linkageType: ''
    returnType: struct sipkey
    signature: struct sipkey generate_hash_secret_salt(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:1134,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:1143,1
    - Dst: EXPAT_MIN
      Src: /src/cpython/Modules/expat/xmlparse.c:1145,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:1148,1
    - Dst: XML_Parser::m_processor
      Src: /src/cpython/Modules/expat/xmlparse.c:1168,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: 1194
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1194
    functionName: callProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - EXPAT_SAFE_PTR_DIFF
    - XML_Parser::m_processor
    - EXPAT_MIN
    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:1200,1
    - Dst: setContext
      Src: /src/cpython/Modules/expat/xmlparse.c:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1196
    functionDepth: 3
    functionLinenumber: 1196
    functionLinenumberEnd: 1210
    functionName: startParsing
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - setContext
    - generate_hash_secret_salt
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool startParsing(XML_Parser parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parserCreate
      Src: /src/cpython/Modules/expat/xmlparse.c:1216,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: 1217
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1217
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologStateInit
      Src: /src/cpython/Modules/expat/xmlparse.c:1418,1
    - Dst: copyString
      Src: /src/cpython/Modules/expat/xmlparse.c:1420,1
    - Dst: XmlInitEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:1423,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:1466,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:1495,1
    - Dst: getDebugLevel
      Src: /src/cpython/Modules/expat/xmlparse.c:1496,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:1502,1
    - Dst: getDebugLevel
      Src: /src/cpython/Modules/expat/xmlparse.c:1503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 80
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1505
    functionName: parserInit
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - getDebugLevel
    - copyString
    - memset
    - XmlPrologStateInit
    - XmlInitEncoding
    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: 1516
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1516
    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:1534,1
    - Dst: moveToFreeBindingList
      Src: /src/cpython/Modules/expat/xmlparse.c:1564,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1565,1
    - Dst: XML_Parser::m_unknownEncodingRelease
      Src: /src/cpython/Modules/expat/xmlparse.c:1567,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:1568,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:1569,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1570,1
    - Dst: parserInit
      Src: /src/cpython/Modules/expat/xmlparse.c:1572,1
    - Dst: dtdReset
      Src: /src/cpython/Modules/expat/xmlparse.c:1573,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1575
    functionName: XML_ParserReset
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - FREE
    - parserInit
    - poolClear
    - moveToFreeBindingList
    - XML_Parser::m_unknownEncodingRelease
    - dtdReset
    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: 1588
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1588
    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:1598,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1602,1
    - Dst: copyString
      Src: /src/cpython/Modules/expat/xmlparse.c:1609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1590
    functionDepth: 1
    functionLinenumber: 1590
    functionLinenumberEnd: 1614
    functionName: XML_SetEncoding
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - parserBusy
    - FREE
    - copyString
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_SetEncoding(XML_Parser parser, const XML_Char *encodingName)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parserCreate
      Src: /src/cpython/Modules/expat/xmlparse.c:1722,1
    - Dst: parserCreate
      Src: /src/cpython/Modules/expat/xmlparse.c:1725,1
    - Dst: dtdCopy
      Src: /src/cpython/Modules/expat/xmlparse.c:1771,1
    - Dst: setContext
      Src: /src/cpython/Modules/expat/xmlparse.c:1772,1
    - Dst: XML_ParserFree
      Src: /src/cpython/Modules/expat/xmlparse.c:1773,1
    - Dst: XmlPrologStateInitExternalEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:1787,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 93
    argCount: 3
    argNames:
    - oldParser
    - context
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1792
    functionName: XML_ExternalEntityParserCreate
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_ParserFree
    - XmlPrologStateInitExternalEntity
    - dtdCopy
    - 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:1801,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - bindings
    - parser
    argTypes:
    - BINDING*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1794
    functionDepth: 1
    functionLinenumber: 1794
    functionLinenumberEnd: 1804
    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:1824,1
    - Dst: destroyBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:1825,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1826,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1840,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1854,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1868,1
    - Dst: destroyBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:1870,1
    - Dst: destroyBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:1871,1
    - Dst: poolDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:1872,1
    - Dst: poolDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:1873,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1874,1
    - Dst: dtdDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:1883,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1884,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1886,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1888,1
    - Dst: XML_Parser::m_mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:1892,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1893,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1894,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1895,1
    - Dst: XML_Parser::m_unknownEncodingRelease
      Src: /src/cpython/Modules/expat/xmlparse.c:1897,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:1898,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1806
    functionDepth: 2
    functionLinenumber: 1806
    functionLinenumberEnd: 1899
    functionName: XML_ParserFree
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - FREE
    - destroyBindings
    - XML_Parser::m_mem::free_fcn
    - XML_Parser::m_unknownEncodingRelease
    - dtdDestroy
    - poolDestroy
    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: 1905
      start: 1901
    functionDepth: 0
    functionLinenumber: 1901
    functionLinenumberEnd: 1905
    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:1913,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:1918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - useDTD
    argTypes:
    - XML_Parser
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1921
    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:1928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - do_nst
    argTypes:
    - XML_Parser
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1931
    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: 1941
      start: 1933
    functionDepth: 0
    functionLinenumber: 1933
    functionLinenumberEnd: 1941
    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:1948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - p
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1943
    functionDepth: 1
    functionLinenumber: 1943
    functionLinenumberEnd: 1955
    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: 1962
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1962
    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: 1969
      start: 1964
    functionDepth: 0
    functionLinenumber: 1964
    functionLinenumberEnd: 1969
    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: 1976
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 1976
    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: 1984
      start: 1979
    functionDepth: 0
    functionLinenumber: 1979
    functionLinenumberEnd: 1984
    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: 1994
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1994
    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: 2000
      start: 1996
    functionDepth: 0
    functionLinenumber: 1996
    functionLinenumberEnd: 2000
    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: 2006
      start: 2002
    functionDepth: 0
    functionLinenumber: 2002
    functionLinenumberEnd: 2006
    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: 2013
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2013
    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: 2020
      start: 2015
    functionDepth: 0
    functionLinenumber: 2015
    functionLinenumberEnd: 2020
    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: 2026
      start: 2022
    functionDepth: 0
    functionLinenumber: 2022
    functionLinenumberEnd: 2026
    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: 2036
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2036
    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: 2043
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2043
    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: 2050
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2050
    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: 2058
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2058
    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: 2066
      start: 2060
    functionDepth: 0
    functionLinenumber: 2060
    functionLinenumberEnd: 2066
    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: 2075
      start: 2068
    functionDepth: 0
    functionLinenumber: 2068
    functionLinenumberEnd: 2075
    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: 2082
      start: 2077
    functionDepth: 0
    functionLinenumber: 2077
    functionLinenumberEnd: 2082
    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: 2088
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2088
    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: 2095
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2095
    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: 2101
      start: 2097
    functionDepth: 0
    functionLinenumber: 2097
    functionLinenumberEnd: 2101
    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: 2111
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2111
    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: 2118
      start: 2113
    functionDepth: 0
    functionLinenumber: 2113
    functionLinenumberEnd: 2118
    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: 2125
      start: 2120
    functionDepth: 0
    functionLinenumber: 2120
    functionLinenumberEnd: 2125
    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: 2132
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2132
    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: 2139
      start: 2134
    functionDepth: 0
    functionLinenumber: 2134
    functionLinenumberEnd: 2139
    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: 2149
      start: 2141
    functionDepth: 0
    functionLinenumber: 2141
    functionLinenumberEnd: 2149
    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: 2156
      start: 2151
    functionDepth: 0
    functionLinenumber: 2151
    functionLinenumberEnd: 2156
    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: 2165
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2165
    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: 2171
      start: 2167
    functionDepth: 0
    functionLinenumber: 2167
    functionLinenumberEnd: 2171
    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: 2177
      start: 2173
    functionDepth: 0
    functionLinenumber: 2173
    functionLinenumberEnd: 2177
    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: 2183
      start: 2179
    functionDepth: 0
    functionLinenumber: 2179
    functionLinenumberEnd: 2183
    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: 2189
      start: 2185
    functionDepth: 0
    functionLinenumber: 2185
    functionLinenumberEnd: 2189
    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:2197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - parser
    - peParsing
    argTypes:
    - XML_Parser
    - enum XML_ParamEntityParsing
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2205
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:2213,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:2214,1
    - Dst: parserBusy
      Src: /src/cpython/Modules/expat/xmlparse.c:2217,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:2227,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:2229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - parser
    - hash_salt
    argTypes:
    - XML_Parser
    - unsigned long
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 2213
        line_start: 2213
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2233
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2233
    functionName: XML_SetHashSalt
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - parserBusy
    - ENTROPY_DEBUG
    - getRootParserOf
    - assert
    linkageType: ''
    returnType: int
    signature: int XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:2243,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:2244,1
    - Dst: parserBusy
      Src: /src/cpython/Modules/expat/xmlparse.c:2247,1
    - Dst: sip_tokey
      Src: /src/cpython/Modules/expat/xmlparse.c:2250,1
    - Dst: ENTROPY_DEBUG
      Src: /src/cpython/Modules/expat/xmlparse.c:2254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - parser
    - entropy
    argTypes:
    - XML_Parser
    - uint8_t[]
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 2243
        line_start: 2243
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2257
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2257
    functionName: XML_SetHashSalt16Bytes
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - parserBusy
    - sip_tokey
    - ENTROPY_DEBUG
    - assert
    - getRootParserOf
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool XML_SetHashSalt16Bytes(XML_Parser parser, const uint8_t entropy[16])
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: startParsing
      Src: /src/cpython/Modules/expat/xmlparse.c:2274,1
    - Dst: callProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:2303,1
    - Dst: XmlUpdatePosition
      Src: /src/cpython/Modules/expat/xmlparse.c:2326,1
    - Dst: XML_GetBuffer
      Src: /src/cpython/Modules/expat/xmlparse.c:2334,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2349,1
    - Dst: XML_GetBuffer
      Src: /src/cpython/Modules/expat/xmlparse.c:2360,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:2364,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2365,1
    - Dst: XML_ParseBuffer
      Src: /src/cpython/Modules/expat/xmlparse.c:2367,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: 2363
        line_start: 2363
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2368
      start: 2259
    functionDepth: 4
    functionLinenumber: 2259
    functionLinenumberEnd: 2368
    functionName: XML_Parse
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - callProcessor
    - XmlUpdatePosition
    - XML_ParseBuffer
    - memcpy
    - assert
    - startParsing
    - XML_GetBuffer
    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:2397,1
    - Dst: callProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:2413,1
    - Dst: XmlUpdatePosition
      Src: /src/cpython/Modules/expat/xmlparse.c:2435,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 3
    argNames:
    - parser
    - len
    - isFinal
    argTypes:
    - XML_Parser
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2370
    functionDepth: 4
    functionLinenumber: 2370
    functionLinenumberEnd: 2439
    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:2462,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2469,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2476,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2488,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2490,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2492,1
    - Dst: memmove
      Src: /src/cpython/Modules/expat/xmlparse.c:2496,1
    - Dst: memmove
      Src: /src/cpython/Modules/expat/xmlparse.c:2502,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2503,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2506,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2512,1
    - Dst: XML_Parser::m_mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:2525,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2533,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2534,1
    - Dst: XML_Parser::m_mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:2539,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2543,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:2553,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2554,1
    - Dst: XML_Parser::m_mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:2558,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/cpython/Modules/expat/xmlparse.c:2561,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 2
    argNames:
    - parser
    - len
    argTypes:
    - XML_Parser
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2441
    functionDepth: 1
    functionLinenumber: 2441
    functionLinenumberEnd: 2573
    functionName: XML_GetBuffer
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_Parser::m_mem::malloc_fcn
    - memmove
    - XML_Parser::m_mem::free_fcn
    - memcpy
    - EXPAT_SAFE_PTR_DIFF
    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: 2578
      start: 2575
    functionDepth: 0
    functionLinenumber: 2575
    functionLinenumberEnd: 2578
    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:2611,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - parser
    - resumable
    argTypes:
    - XML_Parser
    - XML_Bool
    assertStmts:
    - condition: (0)
      pos:
        line_end: 2610
        line_start: 2610
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2614
      start: 2580
    functionDepth: 0
    functionLinenumber: 2580
    functionLinenumberEnd: 2614
    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:2628,1
    - Dst: XmlUpdatePosition
      Src: /src/cpython/Modules/expat/xmlparse.c:2650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2616
    functionDepth: 2
    functionLinenumber: 2616
    functionLinenumberEnd: 2654
    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:2660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - parser
    - status
    argTypes:
    - XML_Parser
    - XML_ParsingStatus*
    assertStmts:
    - condition: (status != NULL)
      pos:
        line_end: 2659
        line_start: 2659
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2662
      start: 2656
    functionDepth: 0
    functionLinenumber: 2656
    functionLinenumberEnd: 2662
    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: 2669
      start: 2664
    functionDepth: 0
    functionLinenumber: 2664
    functionLinenumberEnd: 2669
    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: 2679
      start: 2671
    functionDepth: 0
    functionLinenumber: 2671
    functionLinenumberEnd: 2679
    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: 2688
      start: 2681
    functionDepth: 0
    functionLinenumber: 2681
    functionLinenumberEnd: 2688
    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: 2708
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2708
    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:2715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2710
    functionDepth: 1
    functionLinenumber: 2710
    functionLinenumberEnd: 2720
    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:2727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2732
    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: XML_Parser::m_mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:2741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parser
    - model
    argTypes:
    - XML_Parser
    - XML_Content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2734
    functionDepth: 0
    functionLinenumber: 2734
    functionLinenumberEnd: 2742
    functionName: XML_FreeContentModel
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_Parser::m_mem::free_fcn
    linkageType: ''
    returnType: void
    signature: void XML_FreeContentModel(XML_Parser parser, XML_Content *model)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_Parser::m_mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:2751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parser
    - size
    argTypes:
    - XML_Parser
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2752
    functionName: XML_MemMalloc
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XML_Parser::m_mem::malloc_fcn
    linkageType: ''
    returnType: void
    signature: 'void *XMLCALL

      XML_MemMalloc(XML_Parser parser, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_Parser::m_mem::realloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:2761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parser
    - ptr
    - size
    argTypes:
    - XML_Parser
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2754
    functionDepth: 0
    functionLinenumber: 2754
    functionLinenumberEnd: 2762
    functionName: XML_MemRealloc
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XML_Parser::m_mem::realloc_fcn
    linkageType: ''
    returnType: void
    signature: 'void *XMLCALL

      XML_MemRealloc(XML_Parser parser, void *ptr, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_Parser::m_mem::free_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:2772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parser
    - ptr
    argTypes:
    - XML_Parser
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2764
    functionDepth: 0
    functionLinenumber: 2764
    functionLinenumberEnd: 2773
    functionName: XML_MemFree
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XML_Parser::m_mem::free_fcn
    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:2781,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:2785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2775
    functionDepth: 1
    functionLinenumber: 2775
    functionLinenumberEnd: 2788
    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:2796,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2798,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2800,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2802,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2804,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2806,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2808,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2810,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2812,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2814,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2816,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2818,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2820,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2822,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2824,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2826,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2828,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2830,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2832,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2834,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2836,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2838,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2840,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2842,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2844,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2846,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2849,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2852,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2854,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2856,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2858,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2860,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2862,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2864,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2866,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2868,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2870,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2873,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2876,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2878,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2882,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2885,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2889,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 94
    argCount: 1
    argNames:
    - code
    argTypes:
    - enum XML_Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2790
    functionDepth: 1
    functionLinenumber: 2790
    functionLinenumberEnd: 2896
    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:2911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2898
    functionDepth: 1
    functionLinenumber: 2898
    functionLinenumberEnd: 2915
    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: 2909
      start: 2908
    functionDepth: 0
    functionLinenumber: 2908
    functionLinenumberEnd: 2909
    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: 2910
      start: 2909
    functionDepth: 0
    functionLinenumber: 2909
    functionLinenumberEnd: 2910
    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: 2926
      start: 2917
    functionDepth: 0
    functionLinenumber: 2917
    functionLinenumberEnd: 2926
    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:2931,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2933,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2936,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2939,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2942,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2945,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2949,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2952,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2955,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2958,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2964,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2968,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2971,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2974,1
    - Dst: XML_L
      Src: /src/cpython/Modules/expat/xmlparse.c:2977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2928
    functionDepth: 1
    functionLinenumber: 2928
    functionLinenumberEnd: 2983
    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:2990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - maximumAmplificationFactor
    argTypes:
    - XML_Parser
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2996
      start: 2986
    functionDepth: 0
    functionLinenumber: 2986
    functionLinenumberEnd: 2996
    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: 3006
      start: 2998
    functionDepth: 0
    functionLinenumber: 2998
    functionLinenumberEnd: 3006
    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:
    - Dst: isnan
      Src: /src/cpython/Modules/expat/xmlparse.c:3012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - maximumAmplificationFactor
    argTypes:
    - XML_Parser
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 3008
    functionDepth: 0
    functionLinenumber: 3008
    functionLinenumberEnd: 3019
    functionName: XML_SetAllocTrackerMaximumAmplification
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - isnan
    linkageType: ''
    returnType: XML_Bool
    signature: "XML_Bool XML_SetAllocTrackerMaximumAmplification(XML_Parser parser,\n
      \                                       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: 3029
      start: 3021
    functionDepth: 0
    functionLinenumber: 3021
    functionLinenumberEnd: 3029
    functionName: XML_SetAllocTrackerActivationThreshold
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XML_Bool
    signature: "XML_Bool XML_SetAllocTrackerActivationThreshold(\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: 3039
      start: 3032
    functionDepth: 0
    functionLinenumber: 3032
    functionLinenumberEnd: 3039
    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:3064,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3070,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:3088,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3046
    functionDepth: 1
    functionLinenumber: 3046
    functionLinenumberEnd: 3093
    functionName: storeRawNames
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - REALLOC
    - ROUND_UP
    - memcpy
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool storeRawNames(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doContent
      Src: /src/cpython/Modules/expat/xmlparse.c:3098,1
    - Dst: storeRawNames
      Src: /src/cpython/Modules/expat/xmlparse.c:3103,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: 3107
      start: 3095
    functionDepth: 2
    functionLinenumber: 3095
    functionLinenumberEnd: 3107
    functionName: contentProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - doContent
    - storeRawNames
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error contentProcessor(XML_Parser parser, const char *start,
      const char *end,\n                 const char **endPtr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initializeEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:3112,1
    - Dst: externalEntityInitProcessor2
      Src: /src/cpython/Modules/expat/xmlparse.c:3116,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: 3117
      start: 3109
    functionDepth: 1
    functionLinenumber: 3109
    functionLinenumberEnd: 3117
    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:3123,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:3127,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:3129,1
    - Dst: externalEntityInitProcessor3
      Src: /src/cpython/Modules/expat/xmlparse.c:3161,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: 3162
      start: 3119
    functionDepth: 1
    functionLinenumber: 3119
    functionLinenumberEnd: 3162
    functionName: externalEntityInitProcessor2
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingDiffTolerated
    - externalEntityInitProcessor3
    - accountingOnAbort
    - 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:3170,1
    - Dst: processXmlDecl
      Src: /src/cpython/Modules/expat/xmlparse.c:3180,1
    - Dst: externalEntityContentProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:3213,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: 3214
      start: 3164
    functionDepth: 1
    functionLinenumber: 3164
    functionLinenumberEnd: 3214
    functionName: externalEntityInitProcessor3
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - processXmlDecl
    - externalEntityContentProcessor
    - 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:3220,1
    - Dst: storeRawNames
      Src: /src/cpython/Modules/expat/xmlparse.c:3224,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: 3228
      start: 3216
    functionDepth: 2
    functionLinenumber: 3216
    functionLinenumberEnd: 3228
    functionName: externalEntityContentProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - doContent
    - storeRawNames
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalEntityContentProcessor(XML_Parser parser, const
      char *start,\n                               const char *end, const char **endPtr)"
  - BBCount: 108
    BranchProfiles: []
    Callsites:
    - Dst: XmlContentTok
      Src: /src/cpython/Modules/expat/xmlparse.c:3250,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:3256,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:3258,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3272,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3274,1
    - Dst: XmlPredefinedEntityName
      Src: /src/cpython/Modules/expat/xmlparse.c:3314,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:3321,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3326,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3328,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:3331,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:3335,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:3336,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3348,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3350,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3361,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3364,1
    - Dst: processEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:3367,1
    - Dst: getContext
      Src: /src/cpython/Modules/expat/xmlparse.c:3373,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3377,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:3381,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3383,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3396,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3399,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:3401,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3412,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:3421,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3433,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:3443,1
    - Dst: storeAtts
      Src: /src/cpython/Modules/expat/xmlparse.c:3445,1
    - Dst: XML_Parser::m_startElementHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3449,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3452,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:3453,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:3464,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3465,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3468,1
    - Dst: storeAtts
      Src: /src/cpython/Modules/expat/xmlparse.c:3469,1
    - Dst: freeBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:3472,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3475,1
    - Dst: XML_Parser::m_startElementHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3477,1
    - Dst: XML_Parser::m_endElementHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3484,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3488,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:3489,1
    - Dst: freeBindings
      Src: /src/cpython/Modules/expat/xmlparse.c:3490,1
    - Dst: epilogProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:3499,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3510,1
    - Dst: memcmp
      Src: /src/cpython/Modules/expat/xmlparse.c:3512,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:3540,1
    - Dst: XML_Parser::m_endElementHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3542,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3544,1
    - Dst: XML_Parser::m_endNamespaceDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3548,1
    - Dst: epilogProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:3562,1
    - Dst: XmlCharRefNumber
      Src: /src/cpython/Modules/expat/xmlparse.c:3567,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3572,1
    - Dst: XmlEncode
      Src: /src/cpython/Modules/expat/xmlparse.c:3573,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3575,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3582,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3584,1
    - Dst: XML_Parser::m_startCdataSectionHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3589,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3604,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3608,1
    - Dst: doCdataSection
      Src: /src/cpython/Modules/expat/xmlparse.c:3610,1
    - Dst: MUST_CONVERT
      Src: /src/cpython/Modules/expat/xmlparse.c:3624,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:3626,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3627,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3631,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3635,1
    - Dst: MUST_CONVERT
      Src: /src/cpython/Modules/expat/xmlparse.c:3652,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:3655,1
    - Dst: charDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3658,1
    - Dst: charDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:3666,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3669,1
    - Dst: reportProcessingInstruction
      Src: /src/cpython/Modules/expat/xmlparse.c:3672,1
    - Dst: reportComment
      Src: /src/cpython/Modules/expat/xmlparse.c:3676,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:3688,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 356
    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: 3711
      start: 3230
    functionDepth: 1
    functionLinenumber: 3230
    functionLinenumberEnd: 3711
    functionName: doContent
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_Parser::m_startCdataSectionHandler
    - XML_Parser::m_skippedEntityHandler
    - charDataHandler
    - XmlNameLength
    - MUST_CONVERT
    - poolFinish
    - XML_T
    - reportProcessingInstruction
    - reportComment
    - lookup
    - accountingDiffTolerated
    - XML_Parser::m_startElementHandler
    - reportDefault
    - getContext
    - XmlCharRefNumber
    - XmlContentTok
    - XmlConvert
    - XML_Parser::m_endElementHandler
    - XML_Parser::m_endNamespaceDeclHandler
    - doCdataSection
    - REALLOC
    - XML_Parser::m_characterDataHandler
    - poolStoreString
    - memcmp
    - MALLOC
    - poolDiscard
    - XML_Parser::m_externalEntityRefHandler
    - XmlPredefinedEntityName
    - accountingOnAbort
    - FREE
    - freeBindings
    - poolClear
    - storeAtts
    - epilogProcessor
    - XmlEncode
    - processEntity
    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:3726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - bindings
    argTypes:
    - XML_Parser
    - BINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3717
    functionDepth: 0
    functionLinenumber: 3717
    functionLinenumberEnd: 3733
    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: 62
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:3764,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:3766,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:3769,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:3774,1
    - Dst: setElementTypePrefix
      Src: /src/cpython/Modules/expat/xmlparse.c:3775,1
    - Dst: XmlGetAttributes
      Src: /src/cpython/Modules/expat/xmlparse.c:3781,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3814,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:3833,1
    - Dst: XmlGetAttributes
      Src: /src/cpython/Modules/expat/xmlparse.c:3842,1
    - Dst: getAttributeId
      Src: /src/cpython/Modules/expat/xmlparse.c:3853,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3854,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:3861,1
    - Dst: storeAttributeValue
      Src: /src/cpython/Modules/expat/xmlparse.c:3894,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:3899,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3900,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:3903,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:3908,1
    - Dst: addBinding
      Src: /src/cpython/Modules/expat/xmlparse.c:3914,1
    - Dst: addBinding
      Src: /src/cpython/Modules/expat/xmlparse.c:3946,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4010,1
    - Dst: copy_salt_to_sipkey
      Src: /src/cpython/Modules/expat/xmlparse.c:4037,1
    - Dst: sip24_init
      Src: /src/cpython/Modules/expat/xmlparse.c:4038,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:4041,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:4065,1
    - Dst: sip24_update
      Src: /src/cpython/Modules/expat/xmlparse.c:4069,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4071,1
    - Dst: sip24_update
      Src: /src/cpython/Modules/expat/xmlparse.c:4074,1
    - Dst: keylen
      Src: /src/cpython/Modules/expat/xmlparse.c:4074,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:4077,1
    - Dst: sip24_final
      Src: /src/cpython/Modules/expat/xmlparse.c:4081,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:4092,1
    - Dst: PROBE_STEP
      Src: /src/cpython/Modules/expat/xmlparse.c:4101,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:4110,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:4116,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:4117,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4148,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4191,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:4195,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:4199,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:4204,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:4209,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 277
    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: 4213
      start: 3745
    functionDepth: 3
    functionLinenumber: 3745
    functionLinenumberEnd: 4213
    functionName: storeAtts
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableInit
    - sip24_init
    - PROBE_STEP
    - keylen
    - XmlNameLength
    - memcpy
    - sip24_final
    - poolFinish
    - XML_T
    - lookup
    - XmlGetAttributes
    - setElementTypePrefix
    - copy_salt_to_sipkey
    - sip24_update
    - REALLOC
    - poolStoreString
    - poolStart
    - MALLOC
    - poolAppendChar
    - addBinding
    - FREE
    - storeAttributeValue
    - getAttributeId
    - poolCopyString
    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: 4324
      start: 4215
    functionDepth: 0
    functionLinenumber: 4215
    functionLinenumberEnd: 4324
    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:4361,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4364,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4365,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4366,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4368,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4368,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4369,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4372,1
    - Dst: is_rfc3986_uri_char
      Src: /src/cpython/Modules/expat/xmlparse.c:4403,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4438,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4446,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4464,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:4466,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:4472,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:4479,1
    - Dst: XML_Parser::m_startNamespaceDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4487,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: 4490
      start: 4329
    functionDepth: 1
    functionLinenumber: 4329
    functionLinenumberEnd: 4490
    functionName: addBinding
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - REALLOC
    - XML_Parser::m_startNamespaceDeclHandler
    - FREE
    - MALLOC
    - is_rfc3986_uri_char
    - memcpy
    - XML_T
    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:4498,1
    - Dst: externalEntityContentProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4506,1
    - Dst: contentProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4509,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: 4513
      start: 4495
    functionDepth: 3
    functionLinenumber: 4495
    functionLinenumberEnd: 4513
    functionName: cdataSectionProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - doCdataSection
    - contentProcessor
    - externalEntityContentProcessor
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error cdataSectionProcessor(XML_Parser parser, const char
      *start, const char *end,\n                      const char **endPtr)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: XmlCdataSectionTok
      Src: /src/cpython/Modules/expat/xmlparse.c:4538,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4540,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4541,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:4545,1
    - Dst: XML_Parser::m_endCdataSectionHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4551,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4555,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4559,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4569,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4571,1
    - Dst: MUST_CONVERT
      Src: /src/cpython/Modules/expat/xmlparse.c:4576,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:4579,1
    - Dst: charDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4582,1
    - Dst: charDataHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4590,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4593,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: 4642
      start: 4518
    functionDepth: 1
    functionLinenumber: 4518
    functionLinenumberEnd: 4642
    functionName: doCdataSection
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - UNUSED_P
    - XML_Parser::m_characterDataHandler
    - accountingOnAbort
    - accountingDiffTolerated
    - charDataHandler
    - reportDefault
    - XML_Parser::m_endCdataSectionHandler
    - MUST_CONVERT
    - XmlConvert
    - XmlCdataSectionTok
    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:4653,1
    - Dst: prologProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4659,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: 4662
      start: 4649
    functionDepth: 1
    functionLinenumber: 4649
    functionLinenumberEnd: 4662
    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:4697,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4699,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4701,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4709,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: 4745
      start: 4667
    functionDepth: 1
    functionLinenumber: 4667
    functionLinenumberEnd: 4745
    functionName: doIgnoreSection
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingDiffTolerated
    - XmlIgnoreSectionTok
    - accountingOnAbort
    - reportDefault
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error doIgnoreSection(XML_Parser parser, const ENCODING *enc,
      const char **startPtr,\n                const char *end, const char **nextPtr,
      XML_Bool haveMore)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: handleUnknownEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:4776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4777
      start: 4749
    functionDepth: 1
    functionLinenumber: 4749
    functionLinenumberEnd: 4777
    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:4791,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:4793,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:4816,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:4818,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:4821,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:4825,1
    - Dst: XML_Parser::m_xmlDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4830,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:4833,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:4851,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:4853,1
    - Dst: handleUnknownEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:4857,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:4858,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:4866,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: 4869
      start: 4779
    functionDepth: 1
    functionLinenumber: 4779
    functionLinenumberEnd: 4869
    functionName: processXmlDecl
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingOnAbort
    - poolStoreString
    - poolClear
    - accountingDiffTolerated
    - XML_Parser::m_xmlDeclHandler
    - handleUnknownEncoding
    - XmlNameLength
    - reportDefault
    - poolFinish
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
      const char *s,\n               const char *next)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XML_Parser::m_unknownEncodingHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:4881,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:4884,1
    - Dst: XmlSizeOfUnknownEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:4884,1
    - Dst: XML_Encoding::release
      Src: /src/cpython/Modules/expat/xmlparse.c:4887,1
    - Dst: XML_Encoding::release
      Src: /src/cpython/Modules/expat/xmlparse.c:4900,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4903
      start: 4871
    functionDepth: 1
    functionLinenumber: 4871
    functionLinenumberEnd: 4903
    functionName: handleUnknownEncoding
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_Encoding::release
    - XML_Parser::m_unknownEncodingHandler
    - MALLOC
    - XmlSizeOfUnknownEncoding
    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:4908,1
    - Dst: prologProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4912,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: 4913
      start: 4905
    functionDepth: 2
    functionLinenumber: 4905
    functionLinenumberEnd: 4913
    functionName: prologInitProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - initializeEncoding
    - prologProcessor
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error prologInitProcessor(XML_Parser parser, const char *s,
      const char *end,\n                    const char **nextPtr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: initializeEncoding
      Src: /src/cpython/Modules/expat/xmlparse.c:4920,1
    - Dst: entityValueInitProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4930,1
    - Dst: externalParEntProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4933,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: 4935
      start: 4917
    functionDepth: 2
    functionLinenumber: 4917
    functionLinenumberEnd: 4935
    functionName: externalParEntInitProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - entityValueInitProcessor
    - initializeEncoding
    - externalParEntProcessor
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalParEntInitProcessor(XML_Parser parser, const
      char *s, const char *end,\n                            const char **nextPtr)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:4946,1
    - Dst: storeEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:4969,1
    - Dst: processXmlDecl
      Src: /src/cpython/Modules/expat/xmlparse.c:4973,1
    - Dst: entityValueProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:4986,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:4998,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:5000,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: 5019
      start: 4937
    functionDepth: 2
    functionLinenumber: 4937
    functionLinenumberEnd: 5019
    functionName: entityValueInitProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingOnAbort
    - accountingDiffTolerated
    - processXmlDecl
    - XmlPrologTok
    - entityValueProcessor
    - storeEntityValue
    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:5027,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:5051,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:5053,1
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:5058,1
    - Dst: doProlog
      Src: /src/cpython/Modules/expat/xmlparse.c:5062,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: 5065
      start: 5021
    functionDepth: 1
    functionLinenumber: 5021
    functionLinenumberEnd: 5065
    functionName: externalParEntProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingDiffTolerated
    - accountingOnAbort
    - XmlPrologTok
    - doProlog
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalParEntProcessor(XML_Parser parser, const char
      *s, const char *end,\n                        const char **nextPtr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:5076,1
    - Dst: storeEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5097,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5110
      start: 5067
    functionDepth: 1
    functionLinenumber: 5067
    functionLinenumberEnd: 5110
    functionName: entityValueProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlPrologTok
    - storeEntityValue
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error entityValueProcessor(XML_Parser parser, const char
      *s, const char *end,\n                     const char **nextPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:5118,1
    - Dst: doProlog
      Src: /src/cpython/Modules/expat/xmlparse.c:5119,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: 5122
      start: 5114
    functionDepth: 1
    functionLinenumber: 5114
    functionLinenumberEnd: 5122
    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:5155,1
    - Dst: XmlTokenRole
      Src: /src/cpython/Modules/expat/xmlparse.c:5207,1
    - Dst: XmlTokenRole
      Src: /src/cpython/Modules/expat/xmlparse.c:5221,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:5231,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:5232,1
    - Dst: processXmlDecl
      Src: /src/cpython/Modules/expat/xmlparse.c:5239,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5248,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5251,1
    - Dst: XML_Parser::m_startDoctypeDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5259,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5263,1
    - Dst: processXmlDecl
      Src: /src/cpython/Modules/expat/xmlparse.c:5269,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5279,1
    - Dst: XmlIsPublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5287,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5289,1
    - Dst: normalizePublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5294,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5295,1
    - Dst: XmlIsPublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5302,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5307,1
    - Dst: normalizePublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5311,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5313,1
    - Dst: XML_Parser::m_startDoctypeDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5328,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5331,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5344,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5357,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5363,1
    - Dst: XML_Parser::m_endDoctypeDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5377,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5391,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5397,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5403,1
    - Dst: contentProcessor
      Src: /src/cpython/Modules/expat/xmlparse.c:5416,1
    - Dst: getElementType
      Src: /src/cpython/Modules/expat/xmlparse.c:5418,1
    - Dst: getAttributeId
      Src: /src/cpython/Modules/expat/xmlparse.c:5423,1
    - Dst: poolAppendString
      Src: /src/cpython/Modules/expat/xmlparse.c:5469,1
    - Dst: poolAppend
      Src: /src/cpython/Modules/expat/xmlparse.c:5471,1
    - Dst: defineAttribute
      Src: /src/cpython/Modules/expat/xmlparse.c:5480,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5486,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5487,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5488,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:5490,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5490,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:5491,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5491,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5494,1
    - Dst: XML_Parser::m_attlistDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5497,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5504,1
    - Dst: storeAttributeValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5510,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:5516,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5517,1
    - Dst: defineAttribute
      Src: /src/cpython/Modules/expat/xmlparse.c:5519,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5524,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5525,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5526,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:5528,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5528,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:5529,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:5529,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5532,1
    - Dst: XML_Parser::m_attlistDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5535,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5539,1
    - Dst: callStoreEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5549,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:5553,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:5555,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5556,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5559,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5566,1
    - Dst: storeSelfEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5574,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5580,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5596,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5601,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5615,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5621,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5632,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5637,1
    - Dst: storeSelfEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:5651,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5659,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5669,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5672,1
    - Dst: XML_Parser::m_unparsedEntityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5675,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5682,1
    - Dst: XmlPredefinedEntityName
      Src: /src/cpython/Modules/expat/xmlparse.c:5691,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5696,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5699,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5704,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5707,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5719,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5726,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5729,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5734,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5737,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5749,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5761,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5764,1
    - Dst: XmlIsPublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5769,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5773,1
    - Dst: normalizePublicId
      Src: /src/cpython/Modules/expat/xmlparse.c:5778,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:5780,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5786,1
    - Dst: XML_Parser::m_notationDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5792,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5797,1
    - Dst: XML_Parser::m_notationDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5802,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:5807,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:5824,1
    - Dst: doIgnoreSection
      Src: /src/cpython/Modules/expat/xmlparse.c:5826,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:5844,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:5865,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:5874,1
    - Dst: nextScaffoldPart
      Src: /src/cpython/Modules/expat/xmlparse.c:5883,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:5886,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:5924,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:5928,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:5929,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5967,1
    - Dst: processEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:5978,1
    - Dst: entityTrackingOnOpen
      Src: /src/cpython/Modules/expat/xmlparse.c:5987,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:5988,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:5991,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:5995,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6009,1
    - Dst: getElementType
      Src: /src/cpython/Modules/expat/xmlparse.c:6017,1
    - Dst: XML_Parser::m_mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:6035,1
    - Dst: XML_Parser::m_elementDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6045,1
    - Dst: nextScaffoldPart
      Src: /src/cpython/Modules/expat/xmlparse.c:6080,1
    - Dst: getElementType
      Src: /src/cpython/Modules/expat/xmlparse.c:6085,1
    - Dst: build_model
      Src: /src/cpython/Modules/expat/xmlparse.c:6124,1
    - Dst: XML_Parser::m_elementDeclHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6128,1
    - Dst: reportProcessingInstruction
      Src: /src/cpython/Modules/expat/xmlparse.c:6139,1
    - Dst: reportComment
      Src: /src/cpython/Modules/expat/xmlparse.c:6144,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:6178,1
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:6194,1
    CyclomaticComplexity: 271
    EdgeCount: 271
    ICount: 769
    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: 5885
        line_start: 5885
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6198
      start: 5124
    functionDepth: 3
    functionLinenumber: 5124
    functionLinenumberEnd: 6198
    functionName: doProlog
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - nextScaffoldPart
    - XML_Parser::m_skippedEntityHandler
    - poolAppendString
    - XML_Parser::m_unparsedEntityDeclHandler
    - assert
    - XML_Parser::m_endDoctypeDeclHandler
    - poolFinish
    - XML_T
    - reportProcessingInstruction
    - reportComment
    - lookup
    - getElementType
    - accountingDiffTolerated
    - poolLength
    - reportDefault
    - UNUSED_P
    - REALLOC
    - poolStoreString
    - poolStart
    - poolAppend
    - XML_Parser::m_mem::malloc_fcn
    - processXmlDecl
    - MALLOC
    - XML_Parser::m_elementDeclHandler
    - poolAppendChar
    - doIgnoreSection
    - callStoreEntityValue
    - XML_Parser::m_entityDeclHandler
    - poolDiscard
    - XML_Parser::m_externalEntityRefHandler
    - build_model
    - XmlIsPublicId
    - entityTrackingOnOpen
    - entityTrackingOnClose
    - defineAttribute
    - XmlPredefinedEntityName
    - XML_Parser::m_notationDeclHandler
    - accountingOnAbort
    - poolClear
    - XmlTokenRole
    - getAttributeId
    - storeAttributeValue
    - XML_Parser::m_attlistDeclHandler
    - normalizePublicId
    - XML_Parser::m_notStandaloneHandler
    - XML_Parser::m_startDoctypeDeclHandler
    - XmlPrologTok
    - processEntity
    - storeSelfEntityValue
    - contentProcessor
    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:6207,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:6209,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:6211,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:6220,1
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:6231,1
    - Dst: reportProcessingInstruction
      Src: /src/cpython/Modules/expat/xmlparse.c:6234,1
    - Dst: reportComment
      Src: /src/cpython/Modules/expat/xmlparse.c:6238,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: 6276
      start: 6200
    functionDepth: 1
    functionLinenumber: 6200
    functionLinenumberEnd: 6276
    functionName: epilogProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - accountingOnAbort
    - accountingDiffTolerated
    - XmlPrologTok
    - reportDefault
    - reportProcessingInstruction
    - reportComment
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error epilogProcessor(XML_Parser parser, const char *s, const
      char *end,\n                const char **nextPtr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:6304,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:6312,1
    - Dst: entityTrackingOnOpen
      Src: /src/cpython/Modules/expat/xmlparse.c:6319,1
    - Dst: triggerReenter
      Src: /src/cpython/Modules/expat/xmlparse.c:6334,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: 6303
        line_start: 6303
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6337
      start: 6278
    functionDepth: 1
    functionLinenumber: 6278
    functionLinenumberEnd: 6337
    functionName: processEntity
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - triggerReenter
    - entityTrackingOnOpen
    - MALLOC
    - assert
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error processEntity(XML_Parser parser, ENTITY *entity, XML_Bool
      betweenDecl,\n              enum EntityType type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6342,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6343,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6344,1
    - Dst: XmlPrologTok
      Src: /src/cpython/Modules/expat/xmlparse.c:6364,1
    - Dst: doProlog
      Src: /src/cpython/Modules/expat/xmlparse.c:6365,1
    - Dst: doContent
      Src: /src/cpython/Modules/expat/xmlparse.c:6369,1
    - Dst: triggerReenter
      Src: /src/cpython/Modules/expat/xmlparse.c:6394,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6400,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:6406,1
    - Dst: triggerReenter
      Src: /src/cpython/Modules/expat/xmlparse.c:6417,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts:
    - condition: (parser->m_openInternalEntities == openEntity)
      pos:
        line_end: 6405
        line_start: 6405
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6419
      start: 6339
    functionDepth: 4
    functionLinenumber: 6339
    functionLinenumberEnd: 6419
    functionName: internalEntityProcessor
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - doProlog
    - XmlPrologTok
    - doContent
    - triggerReenter
    - assert
    - entityTrackingOnClose
    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:6424,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6425,1
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6426,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: 6428
      start: 6421
    functionDepth: 1
    functionLinenumber: 6421
    functionLinenumberEnd: 6428
    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:6439,1
    - Dst: appendAttributeValue
      Src: /src/cpython/Modules/expat/xmlparse.c:6454,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6477,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:6483,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6500,1
    - Dst: poolLastChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6500,1
    - Dst: poolChop
      Src: /src/cpython/Modules/expat/xmlparse.c:6501,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6502,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:6502,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: 6482
        line_start: 6482
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6505
      start: 6430
    functionDepth: 1
    functionLinenumber: 6430
    functionLinenumberEnd: 6505
    functionName: storeAttributeValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - appendAttributeValue
    - poolChop
    - poolLastChar
    - poolLength
    - poolAppendChar
    - assert
    - XML_T
    - 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:6513,1
    - Dst: XmlAttributeValueTok
      Src: /src/cpython/Modules/expat/xmlparse.c:6519,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:6521,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:6522,1
    - Dst: XmlCharRefNumber
      Src: /src/cpython/Modules/expat/xmlparse.c:6543,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6550,1
    - Dst: poolLastChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6550,1
    - Dst: XmlEncode
      Src: /src/cpython/Modules/expat/xmlparse.c:6552,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6563,1
    - Dst: poolAppend
      Src: /src/cpython/Modules/expat/xmlparse.c:6568,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6576,1
    - Dst: poolLastChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6576,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6578,1
    - Dst: XmlPredefinedEntityName
      Src: /src/cpython/Modules/expat/xmlparse.c:6585,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:6592,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:6596,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:6600,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:6605,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6606,1
    - Dst: processEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:6671,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: 6698
      start: 6507
    functionDepth: 2
    functionLinenumber: 6507
    functionLinenumberEnd: 6698
    functionName: appendAttributeValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - UNUSED_P
    - XmlPredefinedEntityName
    - XmlAttributeValueTok
    - lookup
    - accountingOnAbort
    - poolStoreString
    - poolAppend
    - accountingDiffTolerated
    - poolLength
    - poolLastChar
    - XmlEncode
    - poolAppendChar
    - poolDiscard
    - XmlCharRefNumber
    - processEntity
    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: 33
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/cpython/Modules/expat/xmlparse.c:6712,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:6718,1
    - Dst: XmlEntityValueTok
      Src: /src/cpython/Modules/expat/xmlparse.c:6733,1
    - Dst: accountingDiffTolerated
      Src: /src/cpython/Modules/expat/xmlparse.c:6735,1
    - Dst: accountingOnAbort
      Src: /src/cpython/Modules/expat/xmlparse.c:6737,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:6748,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:6755,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6756,1
    - Dst: entityTrackingOnOpen
      Src: /src/cpython/Modules/expat/xmlparse.c:6777,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:6778,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6781,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6786,1
    - Dst: processEntity
      Src: /src/cpython/Modules/expat/xmlparse.c:6793,1
    - Dst: poolAppend
      Src: /src/cpython/Modules/expat/xmlparse.c:6809,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:6818,1
    - Dst: XmlCharRefNumber
      Src: /src/cpython/Modules/expat/xmlparse.c:6827,1
    - Dst: XmlEncode
      Src: /src/cpython/Modules/expat/xmlparse.c:6834,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:6845,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 142
    argCount: 6
    argNames:
    - parser
    - enc
    - entityTextPtr
    - entityTextEnd
    - account
    - nextPtr
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    - enum XML_Account
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6887
      start: 6701
    functionDepth: 2
    functionLinenumber: 6701
    functionLinenumberEnd: 6887
    functionName: storeEntityValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - UNUSED_P
    - lookup
    - accountingOnAbort
    - XmlEntityValueTok
    - poolStoreString
    - poolAppend
    - accountingDiffTolerated
    - XmlEncode
    - poolGrow
    - poolDiscard
    - XML_Parser::m_externalEntityRefHandler
    - XmlCharRefNumber
    - processEntity
    - entityTrackingOnOpen
    - entityTrackingOnClose
    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:6898,1
    - Dst: storeEntityValue
      Src: /src/cpython/Modules/expat/xmlparse.c:6912,1
    - Dst: entityTrackingOnClose
      Src: /src/cpython/Modules/expat/xmlparse.c:6935,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:6941,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: 6940
        line_start: 6940
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 6958
      start: 6889
    functionDepth: 3
    functionLinenumber: 6889
    functionLinenumberEnd: 6958
    functionName: callStoreEntityValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - entityTrackingOnClose
    - storeEntityValue
    - assert
    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:6970,1
    - Dst: poolAppendString
      Src: /src/cpython/Modules/expat/xmlparse.c:6971,1
    - Dst: poolAppendString
      Src: /src/cpython/Modules/expat/xmlparse.c:6972,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:6973,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:6977,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:6978,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:6979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - entity
    argTypes:
    - XML_Parser
    - ENTITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6982
      start: 6962
    functionDepth: 1
    functionLinenumber: 6962
    functionLinenumberEnd: 6982
    functionName: storeSelfEntityValue
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolStart
    - poolAppendString
    - poolLength
    - poolDiscard
    - poolFinish
    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:6990,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7004,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7005
      start: 6986
    functionDepth: 1
    functionLinenumber: 6986
    functionLinenumberEnd: 7005
    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:7015,1
    - Dst: XmlNameLength
      Src: /src/cpython/Modules/expat/xmlparse.c:7019,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:7020,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:7023,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:7024,1
    - Dst: XmlSkipS
      Src: /src/cpython/Modules/expat/xmlparse.c:7024,1
    - Dst: normalizeLines
      Src: /src/cpython/Modules/expat/xmlparse.c:7028,1
    - Dst: XML_Parser::m_processingInstructionHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:7029,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7030,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: 7032
      start: 7007
    functionDepth: 2
    functionLinenumber: 7007
    functionLinenumberEnd: 7032
    functionName: reportProcessingInstruction
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - XML_Parser::m_processingInstructionHandler
    - poolStoreString
    - poolClear
    - XmlSkipS
    - reportDefault
    - XmlNameLength
    - normalizeLines
    - poolFinish
    linkageType: ''
    returnType: int
    signature: "int reportProcessingInstruction(XML_Parser parser, const ENCODING
      *enc,\n                            const char *start, const char *end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reportDefault
      Src: /src/cpython/Modules/expat/xmlparse.c:7040,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:7043,1
    - Dst: normalizeLines
      Src: /src/cpython/Modules/expat/xmlparse.c:7048,1
    - Dst: XML_Parser::m_commentHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:7049,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7050,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: 7052
      start: 7034
    functionDepth: 2
    functionLinenumber: 7034
    functionLinenumberEnd: 7052
    functionName: reportComment
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - poolStoreString
    - poolClear
    - XML_Parser::m_commentHandler
    - reportDefault
    - normalizeLines
    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:7057,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:7088,1
    - Dst: XML_Parser::m_defaultHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:7090,1
    - Dst: XML_Parser::m_defaultHandler
      Src: /src/cpython/Modules/expat/xmlparse.c:7096,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: 7099
      start: 7054
    functionDepth: 1
    functionLinenumber: 7054
    functionLinenumberEnd: 7099
    functionName: reportDefault
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 9
    functionsReached:
    - XML_Parser::m_defaultHandler
    - MUST_CONVERT
    - XmlConvert
    linkageType: ''
    returnType: void
    signature: "void reportDefault(XML_Parser parser, const ENCODING *enc, const char
      *s,\n              const char *end)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7109,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7119,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7144,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7159,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    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: 7166
      start: 7101
    functionDepth: 1
    functionLinenumber: 7101
    functionLinenumberEnd: 7166
    functionName: defineAttribute
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - REALLOC
    - lookup
    - 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:7173,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7177,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7180,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7180,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7182,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7182,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7186,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:7187,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - parser
    - elementType
    argTypes:
    - XML_Parser
    - ELEMENT_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7195
      start: 7168
    functionDepth: 1
    functionLinenumber: 7168
    functionLinenumberEnd: 7195
    functionName: setElementTypePrefix
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - lookup
    - poolStart
    - poolAppendChar
    - poolDiscard
    - poolFinish
    - XML_T
    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:7203,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7203,1
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:7205,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7210,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7215,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:7217,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7220,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7220,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7221,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7221,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7222,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7223,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7223,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7224,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7227,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7234,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7237,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7240,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7240,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7242,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7243,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7246,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:7247,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7249,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: 7256
      start: 7197
    functionDepth: 1
    functionLinenumber: 7197
    functionLinenumberEnd: 7256
    functionName: getAttributeId
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - lookup
    - poolStoreString
    - poolStart
    - poolAppendChar
    - poolDiscard
    - poolFinish
    - XML_T
    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:7269,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7269,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7275,1
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7302,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7307,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7319,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7322,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7324,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7324,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7330,1
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7335,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7338,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7343,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7346,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7351,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7351,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 52
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7354
      start: 7260
    functionDepth: 1
    functionLinenumber: 7260
    functionLinenumberEnd: 7354
    functionName: getContext
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - XML_T
    - hashTableIterInit
    - poolAppendChar
    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:7365,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7366,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7368,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7368,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7370,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7371,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7374,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7377,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7378,1
    - Dst: poolLength
      Src: /src/cpython/Modules/expat/xmlparse.c:7380,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7383,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7383,1
    - Dst: poolCopyStringNoFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:7385,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7386,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7391,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:7396,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7398,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7403,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7405,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7407,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7409,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7409,1
    - Dst: addBinding
      Src: /src/cpython/Modules/expat/xmlparse.c:7411,1
    - Dst: poolStart
      Src: /src/cpython/Modules/expat/xmlparse.c:7411,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:7415,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7416,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7420,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 2
    argNames:
    - parser
    - context
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7426
      start: 7356
    functionDepth: 2
    functionLinenumber: 7356
    functionLinenumberEnd: 7426
    functionName: setContext
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - lookup
    - poolStart
    - poolLength
    - poolAppendChar
    - poolDiscard
    - poolCopyStringNoFinish
    - poolFinish
    - XML_T
    - addBinding
    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:7446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - publicId
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7447
      start: 7428
    functionDepth: 1
    functionLinenumber: 7428
    functionLinenumberEnd: 7447
    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: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7451,1
    - Dst: poolInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7454,1
    - Dst: poolInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7455,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7456,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7457,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7458,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7459,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7479
      start: 7449
    functionDepth: 1
    functionLinenumber: 7449
    functionLinenumberEnd: 7479
    functionName: dtdCreate
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - hashTableInit
    - poolInit
    - MALLOC
    linkageType: ''
    returnType: DTD
    signature: 'DTD *

      dtdCreate(XML_Parser parser)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7484,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7486,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7489,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7491,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7493,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7496,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7498,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7499,1
    - Dst: hashTableClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7500,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7501,1
    - Dst: poolClear
      Src: /src/cpython/Modules/expat/xmlparse.c:7502,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7508,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - p
    - parser
    argTypes:
    - DTD*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7521
      start: 7481
    functionDepth: 1
    functionLinenumber: 7481
    functionLinenumberEnd: 7521
    functionName: dtdReset
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - hashTableDestroy
    - FREE
    - poolClear
    - hashTableClear
    - hashTableIterInit
    linkageType: ''
    returnType: void
    signature: void dtdReset(DTD *p, XML_Parser parser)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7526,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7528,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7531,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7533,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7535,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7537,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7539,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7540,1
    - Dst: hashTableDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7541,1
    - Dst: poolDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7542,1
    - Dst: poolDestroy
      Src: /src/cpython/Modules/expat/xmlparse.c:7543,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7545,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7546,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - p
    - isDocEntity
    - parser
    argTypes:
    - DTD*
    - XML_Bool
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7549
      start: 7523
    functionDepth: 1
    functionLinenumber: 7523
    functionLinenumberEnd: 7549
    functionName: dtdDestroy
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - hashTableDestroy
    - FREE
    - hashTableIterInit
    - poolDestroy
    linkageType: ''
    returnType: void
    signature: void dtdDestroy(DTD *p, XML_Bool isDocEntity, XML_Parser parser)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7561,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7564,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7567,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7570,1
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7574,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7581,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:7586,1
    - Dst: XML_T
      Src: /src/cpython/Modules/expat/xmlparse.c:7586,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7588,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7592,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7602,1
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7609,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7615,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7618,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7621,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7627,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7640,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7646,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7650,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7654,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7659,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7665,1
    - Dst: copyEntityTable
      Src: /src/cpython/Modules/expat/xmlparse.c:7674,1
    - Dst: copyEntityTable
      Src: /src/cpython/Modules/expat/xmlparse.c:7679,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 87
    argCount: 4
    argNames:
    - oldParser
    - newDtd
    - oldDtd
    - parser
    argTypes:
    - XML_Parser
    - DTD*
    - DTD*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7698
      start: 7554
    functionDepth: 1
    functionLinenumber: 7554
    functionLinenumberEnd: 7698
    functionName: dtdCopy
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - lookup
    - hashTableInit
    - copyEntityTable
    - XML_T
    - MALLOC
    - poolAppendChar
    - poolCopyString
    - hashTableIterInit
    linkageType: ''
    returnType: int
    signature: "int dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd,\n
      \       XML_Parser parser)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/cpython/Modules/expat/xmlparse.c:7707,1
    - Dst: hashTableIterNext
      Src: /src/cpython/Modules/expat/xmlparse.c:7712,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7715,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:7718,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7722,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7731,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7738,1
    - Dst: poolCopyStringN
      Src: /src/cpython/Modules/expat/xmlparse.c:7745,1
    - Dst: poolCopyString
      Src: /src/cpython/Modules/expat/xmlparse.c:7752,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: 7761
      start: 7700
    functionDepth: 1
    functionLinenumber: 7700
    functionLinenumberEnd: 7761
    functionName: copyEntityTable
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - lookup
    - poolCopyString
    - hashTableIterInit
    - poolCopyStringN
    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: 7771
      start: 7765
    functionDepth: 0
    functionLinenumber: 7765
    functionLinenumberEnd: 7771
    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: 7779
      start: 7773
    functionDepth: 0
    functionLinenumber: 7773
    functionLinenumberEnd: 7779
    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: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:7783,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:7784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - key
    argTypes:
    - XML_Parser
    - struct sipkey*
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 7783
        line_start: 7783
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 7787
      start: 7781
    functionDepth: 1
    functionLinenumber: 7781
    functionLinenumberEnd: 7787
    functionName: copy_salt_to_sipkey
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - getRootParserOf
    - assert
    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:7794,1
    - Dst: sip24_init
      Src: /src/cpython/Modules/expat/xmlparse.c:7795,1
    - Dst: sip24_update
      Src: /src/cpython/Modules/expat/xmlparse.c:7796,1
    - Dst: keylen
      Src: /src/cpython/Modules/expat/xmlparse.c:7796,1
    - Dst: sip24_final
      Src: /src/cpython/Modules/expat/xmlparse.c:7797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - s
    argTypes:
    - XML_Parser
    - KEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7798
      start: 7789
    functionDepth: 3
    functionLinenumber: 7789
    functionLinenumberEnd: 7798
    functionName: hash
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 7
    functionsReached:
    - copy_salt_to_sipkey
    - sip24_init
    - keylen
    - sip24_update
    - sip24_final
    linkageType: ''
    returnType: unsigned long FASTCALL
    signature: unsigned long FASTCALL hash(XML_Parser parser, KEY s)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7811,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:7816,1
    - Dst: hash
      Src: /src/cpython/Modules/expat/xmlparse.c:7817,1
    - Dst: hash
      Src: /src/cpython/Modules/expat/xmlparse.c:7819,1
    - Dst: keyeq
      Src: /src/cpython/Modules/expat/xmlparse.c:7824,1
    - Dst: PROBE_STEP
      Src: /src/cpython/Modules/expat/xmlparse.c:7827,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7851,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:7854,1
    - Dst: hash
      Src: /src/cpython/Modules/expat/xmlparse.c:7857,1
    - Dst: PROBE_STEP
      Src: /src/cpython/Modules/expat/xmlparse.c:7862,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7867,1
    - Dst: PROBE_STEP
      Src: /src/cpython/Modules/expat/xmlparse.c:7875,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:7880,1
    - Dst: memset
      Src: /src/cpython/Modules/expat/xmlparse.c:7883,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: 7887
      start: 7800
    functionDepth: 1
    functionLinenumber: 7800
    functionLinenumberEnd: 7887
    functionName: lookup
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 25
    functionsReached:
    - FREE
    - PROBE_STEP
    - keyeq
    - MALLOC
    - hash
    - memset
    linkageType: ''
    returnType: NAMED
    signature: 'NAMED *

      lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - table
    argTypes:
    - HASH_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7897
      start: 7889
    functionDepth: 1
    functionLinenumber: 7889
    functionLinenumberEnd: 7897
    functionName: hashTableClear
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void hashTableClear(HASH_TABLE *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7903,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - HASH_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7905
      start: 7899
    functionDepth: 1
    functionLinenumber: 7899
    functionLinenumberEnd: 7905
    functionName: hashTableDestroy
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void hashTableDestroy(HASH_TABLE *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - parser
    argTypes:
    - HASH_TABLE*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7914
      start: 7907
    functionDepth: 0
    functionLinenumber: 7907
    functionLinenumberEnd: 7914
    functionName: hashTableInit
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hashTableInit(HASH_TABLE *p, XML_Parser parser)
  - 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: 7920
      start: 7916
    functionDepth: 0
    functionLinenumber: 7916
    functionLinenumberEnd: 7920
    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: 7930
      start: 7922
    functionDepth: 0
    functionLinenumber: 7922
    functionLinenumberEnd: 7930
    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
    - parser
    argTypes:
    - STRING_POOL*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7940
      start: 7932
    functionDepth: 0
    functionLinenumber: 7932
    functionLinenumberEnd: 7940
    functionName: poolInit
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poolInit(STRING_POOL *pool, XML_Parser parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pool
    argTypes:
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7959
      start: 7942
    functionDepth: 0
    functionLinenumber: 7942
    functionLinenumberEnd: 7959
    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: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7966,1
    - Dst: FREE
      Src: /src/cpython/Modules/expat/xmlparse.c:7972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pool
    argTypes:
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7975
      start: 7961
    functionDepth: 1
    functionLinenumber: 7961
    functionLinenumberEnd: 7975
    functionName: poolDestroy
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void poolDestroy(STRING_POOL *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:7980,1
    - Dst: XmlConvert
      Src: /src/cpython/Modules/expat/xmlparse.c:7983,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:7988,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: 7992
      start: 7977
    functionDepth: 1
    functionLinenumber: 7977
    functionLinenumberEnd: 7992
    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:7997,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:8001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - STRING_POOL*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8003
      start: 7994
    functionDepth: 1
    functionLinenumber: 7994
    functionLinenumberEnd: 8003
    functionName: poolCopyString
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 4
    functionsReached:
    - poolFinish
    - poolAppendChar
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *FASTCALL

      poolCopyString(STRING_POOL *pool, const XML_Char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:8011,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - STRING_POOL*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8020
      start: 8007
    functionDepth: 1
    functionLinenumber: 8007
    functionLinenumberEnd: 8020
    functionName: poolCopyStringNoFinish
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolAppendChar
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *FASTCALL

      poolCopyStringNoFinish(STRING_POOL *pool, const XML_Char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:8024,1
    - Dst: poolAppendChar
      Src: /src/cpython/Modules/expat/xmlparse.c:8039,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:8043,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pool
    - s
    - n
    argTypes:
    - STRING_POOL*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8045
      start: 8022
    functionDepth: 1
    functionLinenumber: 8022
    functionLinenumberEnd: 8045
    functionName: poolCopyStringN
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolGrow
    - poolFinish
    - poolAppendChar
    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:8050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - STRING_POOL*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8055
      start: 8047
    functionDepth: 1
    functionLinenumber: 8047
    functionLinenumberEnd: 8055
    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:8060,1
    - Dst: poolGrow
      Src: /src/cpython/Modules/expat/xmlparse.c:8062,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: 8066
      start: 8057
    functionDepth: 2
    functionLinenumber: 8057
    functionLinenumberEnd: 8066
    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: 8094
      start: 8068
    functionDepth: 0
    functionLinenumber: 8068
    functionLinenumberEnd: 8094
    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:8113,1
    - Dst: poolBytesToAllocateFor
      Src: /src/cpython/Modules/expat/xmlparse.c:8140,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:8144,1
    - Dst: poolBytesToAllocateFor
      Src: /src/cpython/Modules/expat/xmlparse.c:8180,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:8184,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:8191,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 1
    argNames:
    - pool
    argTypes:
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8197
      start: 8096
    functionDepth: 1
    functionLinenumber: 8096
    functionLinenumberEnd: 8197
    functionName: poolGrow
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 4
    functionsReached:
    - REALLOC
    - poolBytesToAllocateFor
    - MALLOC
    - memcpy
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool poolGrow(STRING_POOL *pool)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:8215,1
    - Dst: REALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:8243,1
    - Dst: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:8249,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8271
      start: 8199
    functionDepth: 1
    functionLinenumber: 8199
    functionLinenumberEnd: 8271
    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: XML_Parser::m_mem::malloc_fcn
      Src: /src/cpython/Modules/expat/xmlparse.c:8306,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8401
      start: 8273
    functionDepth: 0
    functionLinenumber: 8273
    functionLinenumberEnd: 8401
    functionName: build_model
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_Parser::m_mem::malloc_fcn
    linkageType: ''
    returnType: XML_Content
    signature: 'XML_Content *

      build_model(XML_Parser parser)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: poolStoreString
      Src: /src/cpython/Modules/expat/xmlparse.c:8407,1
    - Dst: lookup
      Src: /src/cpython/Modules/expat/xmlparse.c:8412,1
    - Dst: hashTableInit
      Src: /src/cpython/Modules/expat/xmlparse.c:8417,1
    - Dst: getRootParserOf
      Src: /src/cpython/Modules/expat/xmlparse.c:8417,1
    - Dst: poolDiscard
      Src: /src/cpython/Modules/expat/xmlparse.c:8419,1
    - Dst: poolFinish
      Src: /src/cpython/Modules/expat/xmlparse.c:8421,1
    - Dst: setElementTypePrefix
      Src: /src/cpython/Modules/expat/xmlparse.c:8422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - parser
    - enc
    - ptr
    - end
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8426
      start: 8403
    functionDepth: 3
    functionLinenumber: 8403
    functionLinenumberEnd: 8426
    functionName: getElementType
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - lookup
    - hashTableInit
    - poolStoreString
    - setElementTypePrefix
    - poolDiscard
    - poolFinish
    - getRootParserOf
    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: MALLOC
      Src: /src/cpython/Modules/expat/xmlparse.c:8441,1
    - Dst: memcpy
      Src: /src/cpython/Modules/expat/xmlparse.c:8445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - parser
    argTypes:
    - XML_Char*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8447
      start: 8428
    functionDepth: 1
    functionLinenumber: 8428
    functionLinenumberEnd: 8447
    functionName: copyString
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - MALLOC
    - memcpy
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *

      copyString(const XML_Char *s, XML_Parser parser)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rootParser
    argTypes:
    - XML_Parser
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8464
        line_start: 8464
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8467
      start: 8451
    functionDepth: 0
    functionLinenumber: 8451
    functionLinenumberEnd: 8467
    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:8471,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8472,1
    - Dst: accountingGetCurrentAmplification
      Src: /src/cpython/Modules/expat/xmlparse.c:8479,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8480,1
    - Dst: EXPAT_FMT_ULL
      Src: /src/cpython/Modules/expat/xmlparse.c:8481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - originParser
    - epilog
    argTypes:
    - XML_Parser
    - char*
    assertStmts:
    - condition: (! rootParser->m_parentParser)
      pos:
        line_end: 8471
        line_start: 8471
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8486
      start: 8469
    functionDepth: 1
    functionLinenumber: 8469
    functionLinenumberEnd: 8486
    functionName: accountingReportStats
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - accountingGetCurrentAmplification
    - assert
    - fprintf
    - EXPAT_FMT_ULL
    - getRootParserOf
    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:8490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - originParser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8491
      start: 8488
    functionDepth: 2
    functionLinenumber: 8488
    functionLinenumberEnd: 8491
    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:8498,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8500,1
    - Dst: EXPAT_FMT_PTRDIFF_T
      Src: /src/cpython/Modules/expat/xmlparse.c:8501,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8515,1
    - Dst: unsignedCharToPrintable
      Src: /src/cpython/Modules/expat/xmlparse.c:8515,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8519,1
    - Dst: unsignedCharToPrintable
      Src: /src/cpython/Modules/expat/xmlparse.c:8519,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8521,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8524,1
    - Dst: unsignedCharToPrintable
      Src: /src/cpython/Modules/expat/xmlparse.c:8524,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8527,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: 8497
        line_start: 8497
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8528
      start: 8493
    functionDepth: 1
    functionLinenumber: 8493
    functionLinenumberEnd: 8528
    functionName: accountingReportDiff
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - EXPAT_FMT_PTRDIFF_T
    - unsignedCharToPrintable
    - 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:8550,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8551,1
    - Dst: accountingGetCurrentAmplification
      Src: /src/cpython/Modules/expat/xmlparse.c:8570,1
    - Dst: accountingReportStats
      Src: /src/cpython/Modules/expat/xmlparse.c:8577,1
    - Dst: accountingReportDiff
      Src: /src/cpython/Modules/expat/xmlparse.c:8578,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: 8550
        line_start: 8550
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8583
      start: 8530
    functionDepth: 2
    functionLinenumber: 8530
    functionLinenumberEnd: 8583
    functionName: accountingDiffTolerated
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 11
    functionsReached:
    - accountingReportDiff
    - accountingReportStats
    - accountingGetCurrentAmplification
    - assert
    - getRootParserOf
    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: 8590
      start: 8585
    functionDepth: 0
    functionLinenumber: 8585
    functionLinenumberEnd: 8590
    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: 8597
      start: 8592
    functionDepth: 0
    functionLinenumber: 8592
    functionLinenumberEnd: 8597
    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:8602,1
    - Dst: fprintf
      Src: /src/cpython/Modules/expat/xmlparse.c:8612,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: 8601
        line_start: 8601
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8621
      start: 8599
    functionDepth: 0
    functionLinenumber: 8599
    functionLinenumberEnd: 8621
    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:8625,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8626,1
    - Dst: entityTrackingReportStats
      Src: /src/cpython/Modules/expat/xmlparse.c:8635,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: 8625
        line_start: 8625
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8636
      start: 8623
    functionDepth: 1
    functionLinenumber: 8623
    functionLinenumberEnd: 8636
    functionName: entityTrackingOnOpen
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - entityTrackingReportStats
    - getRootParserOf
    - 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:8640,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:8641,1
    - Dst: entityTrackingReportStats
      Src: /src/cpython/Modules/expat/xmlparse.c:8643,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: 8640
        line_start: 8640
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8645
      start: 8638
    functionDepth: 1
    functionLinenumber: 8638
    functionLinenumberEnd: 8645
    functionName: entityTrackingOnClose
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 5
    functionsReached:
    - entityTrackingReportStats
    - getRootParserOf
    - 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:8657,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: 8656
        line_start: 8656
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 8662
      start: 8649
    functionDepth: 0
    functionLinenumber: 8649
    functionLinenumberEnd: 8662
    functionName: getRootParserOf
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 11
    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:9183,1
    - Dst: assert
      Src: /src/cpython/Modules/expat/xmlparse.c:9186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 519
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts:
    - condition: (0)
      pos:
        line_end: 9182
        line_start: 9182
        source_file: /src/cpython/Modules/expat/xmlparse.c
    - condition: (0)
      pos:
        line_end: 9185
        line_start: 9185
        source_file: /src/cpython/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 9188
      start: 8666
    functionDepth: 0
    functionLinenumber: 8666
    functionLinenumberEnd: 9188
    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:9194,1
    - Dst: strtoul
      Src: /src/cpython/Modules/expat/xmlparse.c:9202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - variableName
    - defaultDebugLevel
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9209
      start: 9192
    functionDepth: 0
    functionLinenumber: 9192
    functionLinenumberEnd: 9209
    functionName: getDebugLevel
    functionSourceFile: /src/cpython/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - getenv
    - strtoul
    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: 686
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 686
    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:63,1
    - Dst: btowc
      Src: /src/cpython/Modules/_sre/sre.c:63,1
    - Dst: isalnum
      Src: /src/cpython/Modules/_sre/sre.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: sre_isalnum
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - iswalnum
    - btowc
    - isalnum
    linkageType: ''
    returnType: int
    signature: int sre_isalnum(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: towlower
      Src: /src/cpython/Modules/_sre/sre.c:71,1
    - Dst: btowc
      Src: /src/cpython/Modules/_sre/sre.c:71,1
    - Dst: tolower
      Src: /src/cpython/Modules/_sre/sre.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: sre_tolower
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - tolower
    - towlower
    - btowc
    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:79,1
    - Dst: btowc
      Src: /src/cpython/Modules/_sre/sre.c:79,1
    - Dst: toupper
      Src: /src/cpython/Modules/_sre/sre.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    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: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: LOCAL
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 17
    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: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: LOCAL
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 17
    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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    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: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    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: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    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: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    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: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    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: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    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: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    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:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    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: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    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:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    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: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    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: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    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: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    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: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    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: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    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:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    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:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    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:189,1
    - Dst: SRE_IS_DIGIT
      Src: /src/cpython/Modules/_sre/sre.c:191,1
    - Dst: SRE_IS_SPACE
      Src: /src/cpython/Modules/_sre/sre.c:193,1
    - Dst: SRE_IS_SPACE
      Src: /src/cpython/Modules/_sre/sre.c:195,1
    - Dst: SRE_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:197,1
    - Dst: SRE_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:199,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre.c:201,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre.c:203,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:206,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:208,1
    - Dst: SRE_UNI_IS_DIGIT
      Src: /src/cpython/Modules/_sre/sre.c:211,1
    - Dst: SRE_UNI_IS_DIGIT
      Src: /src/cpython/Modules/_sre/sre.c:213,1
    - Dst: SRE_UNI_IS_SPACE
      Src: /src/cpython/Modules/_sre/sre.c:215,1
    - Dst: SRE_UNI_IS_SPACE
      Src: /src/cpython/Modules/_sre/sre.c:217,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:219,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/cpython/Modules/_sre/sre.c:221,1
    - Dst: SRE_UNI_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre.c:223,1
    - Dst: SRE_UNI_IS_LINEBREAK
      Src: /src/cpython/Modules/_sre/sre.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 2
    argNames:
    - category
    - ch
    argTypes:
    - SRE_CODE
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 228
    functionName: sre_category
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - SRE_UNI_IS_WORD
    - SRE_UNI_IS_LINEBREAK
    - SRE_IS_DIGIT
    - SRE_IS_WORD
    - SRE_IS_LINEBREAK
    - SRE_UNI_IS_DIGIT
    - SRE_LOC_IS_WORD
    - SRE_UNI_IS_SPACE
    - SRE_IS_SPACE
    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:234,1
    - Dst: sre_upper_locale
      Src: /src/cpython/Modules/_sre/sre.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - pattern
    - ch
    argTypes:
    - SRE_CODE
    - SRE_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: char_loc_ignore
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - sre_lower_locale
    - sre_upper_locale
    linkageType: ''
    returnType: void
    signature: void char_loc_ignore(SRE_CODE pattern, SRE_CODE ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 249
    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:254,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:261,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_sre/sre.c:262,1
    - Dst: data_stack_dealloc
      Src: /src/cpython/Modules/_sre/sre.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - state
    - size
    argTypes:
    - SRE_STATE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 271
    functionName: data_stack_grow
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - INIT_TRACE
    - TRACE
    - data_stack_dealloc
    - PyMem_Realloc
    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:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 306
    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: 328
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 328
    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:339,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 350
    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: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    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: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    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: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    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:388,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state)
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 391
    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: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    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: 402
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 402
    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: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    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: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    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: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    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: 423
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 423
    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:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 439
    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:454,1
    - Dst: sre_upper_unicode
      Src: /src/cpython/Modules/_sre/sre.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 455
    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:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 470
    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:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 485
    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:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 499
    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:512,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_sre/sre.c:513,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/_sre/sre.c:514,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_sre/sre.c:516,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sre/sre.c:520,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sre/sre.c:521,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:522,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:531,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:532,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: 537
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 537
    functionName: getstring
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_SetString
    - PyUnicode_Check
    - PyBuffer_Release
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyObject_GetBuffer
    - Py_TYPE
    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:549,1
    - Dst: PyMem_New
      Src: /src/cpython/Modules/_sre/sre.c:551,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sre/sre.c:553,1
    - Dst: getstring
      Src: /src/cpython/Modules/_sre/sre.c:560,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:565,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:570,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:597,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:611,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:614,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: 616
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 616
    functionName: state_init
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - PyErr_SetString
    - getstring
    - PyBuffer_Release
    - memset
    - PyMem_Free
    - Py_NewRef
    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:622,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sre/sre.c:623,1
    - Dst: data_stack_dealloc
      Src: /src/cpython/Modules/_sre/sre.c:624,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sre/sre.c:626,1
    - Dst: repeat_pool_clear
      Src: /src/cpython/Modules/_sre/sre.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 630
    functionName: state_fini
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - repeat_pool_clear
    - PyBuffer_Release
    - PyMem_Free
    - Py_XDECREF
    - data_stack_dealloc
    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: 635
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 635
    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:641,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:642,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:643,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sre/sre.c:645,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/_sre/sre.c:649,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: 651
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 651
    functionName: getslice
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBytes_CheckExact
    - PyUnicode_Substring
    - PyBytes_GET_SIZE
    - Py_NewRef
    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:668,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:669,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:673,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:680,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: 681
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 681
    functionName: state_getslice
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - getslice
    - STATE_OFFSET
    linkageType: ''
    returnType: void
    signature: void state_getslice(SRE_STATE* state, Py_ssize_t index, PyObject* string,
      int empty)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:689,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sre/sre.c:695,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - status
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 707
    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:712,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:713,1
    - Dst: Py_TYPE
      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:716,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 721
    functionName: pattern_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PatternObject_CAST
    - Py_TYPE
    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: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:729,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 734
    functionName: pattern_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PatternObject_CAST
    linkageType: ''
    returnType: int
    signature: int pattern_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:739,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sre/sre.c:740,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_sre/sre.c:741,1
    - Dst: _PatternObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:741,1
    - Dst: pattern_clear
      Src: /src/cpython/Modules/_sre/sre.c:742,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sre/sre.c:743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 745
    functionName: pattern_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - pattern_clear
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - _PatternObject_CAST
    - 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:751,1
    - Dst: sre_ucs2_match
      Src: /src/cpython/Modules/_sre/sre.c:753,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:754,1
    - Dst: sre_ucs4_match
      Src: /src/cpython/Modules/_sre/sre.c:755,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: 753
        line_start: 753
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 756
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 756
    functionName: sre_match
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    functionsReached:
    - sre_ucs2_match
    - sre_ucs4_match
    - sre_ucs1_match
    - assert
    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:762,1
    - Dst: sre_ucs2_search
      Src: /src/cpython/Modules/_sre/sre.c:764,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:765,1
    - Dst: sre_ucs4_search
      Src: /src/cpython/Modules/_sre/sre.c:766,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: 764
        line_start: 764
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 767
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 767
    functionName: sre_search
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - sre_ucs4_search
    - sre_ucs1_search
    - sre_ucs2_search
    - assert
    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:787,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:792,1
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre.c:795,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:798,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:798,1
    - Dst: sre_match
      Src: /src/cpython/Modules/_sre/sre.c:800,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:800,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:802,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:802,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:803,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:804,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:808,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:809,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: 811
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 811
    functionName: _sre_SRE_Pattern_prefixmatch_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - INIT_TRACE
    - state_fini
    - sre_match
    - state_init
    - PyErr_Occurred
    - PatternObject_GetCode
    - TRACE
    - pattern_new_match
    - get_sre_module_state_by_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_prefixmatch_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:832,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:837,1
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre.c:840,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:843,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:843,1
    - Dst: sre_match
      Src: /src/cpython/Modules/_sre/sre.c:846,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:846,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:848,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:848,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:849,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:850,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:854,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:855,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: 857
      start: 826
    functionDepth: 3
    functionLinenumber: 826
    functionLinenumberEnd: 857
    functionName: _sre_SRE_Pattern_fullmatch_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - INIT_TRACE
    - state_fini
    - sre_match
    - state_init
    - PyErr_Occurred
    - PatternObject_GetCode
    - TRACE
    - pattern_new_match
    - 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:880,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:885,1
    - Dst: INIT_TRACE
      Src: /src/cpython/Modules/_sre/sre.c:888,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:889,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:889,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:891,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:891,1
    - Dst: TRACE
      Src: /src/cpython/Modules/_sre/sre.c:893,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:893,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:895,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:896,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:900,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:901,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: 903
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 903
    functionName: _sre_SRE_Pattern_search_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - INIT_TRACE
    - state_fini
    - sre_search
    - state_init
    - PyErr_Occurred
    - PatternObject_GetCode
    - TRACE
    - pattern_new_match
    - 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:925,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:928,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:930,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:938,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:942,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:942,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:943,1
    - Dst: pattern_error
      Src: /src/cpython/Modules/_sre/sre.c:949,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:956,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:957,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:958,1
    - Dst: state_getslice
      Src: /src/cpython/Modules/_sre/sre.c:964,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sre/sre.c:969,1
    - Dst: state_getslice
      Src: /src/cpython/Modules/_sre/sre.c:973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:975,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:978,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:984,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:996,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:997,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: 1000
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 1000
    functionName: _sre_SRE_Pattern_findall_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - pattern_error
    - state_fini
    - state_getslice
    - PyList_Append
    - sre_search
    - STATE_OFFSET
    - state_init
    - PyTuple_SET_ITEM
    - getslice
    - PyList_New
    - state_reset
    - PyErr_Occurred
    - PatternObject_GetCode
    - Py_DECREF
    - PyTuple_New
    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:1023,1
    - Dst: pattern_scanner
      Src: /src/cpython/Modules/_sre/sre.c:1028,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_sre/sre.c:1032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1033,1
    - Dst: PyCallIter_New
      Src: /src/cpython/Modules/_sre/sre.c:1037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1038,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: 1041
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1041
    functionName: _sre_SRE_Pattern_finditer_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyCallIter_New
    - PyObject_GetAttrString
    - pattern_scanner
    - Py_DECREF
    - 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:1060,1
    - Dst: pattern_scanner
      Src: /src/cpython/Modules/_sre/sre.c:1062,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: 1063
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1063
    functionName: _sre_SRE_Pattern_scanner_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - get_sre_module_state_by_class
    - pattern_scanner
    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:1087,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:1089,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:1092,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1094,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:1103,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:1107,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:1107,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1108,1
    - Dst: pattern_error
      Src: /src/cpython/Modules/_sre/sre.c:1114,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1119,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1120,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1121,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1125,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1126,1
    - Dst: state_getslice
      Src: /src/cpython/Modules/_sre/sre.c:1132,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1136,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1148,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1149,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1154,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1162,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1163,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: 1086
        line_start: 1086
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 1166
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1166
    functionName: _sre_SRE_Pattern_split_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - pattern_error
    - state_fini
    - PyList_Append
    - state_getslice
    - sre_search
    - STATE_OFFSET
    - state_init
    - getslice
    - PyList_New
    - state_reset
    - assert
    - PatternObject_GetCode
    - PyErr_Occurred
    - Py_DECREF
    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:1173,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_sre/sre.c:1175,1
    - Dst: _Py_atomic_compare_exchange_ptr
      Src: /src/cpython/Modules/_sre/sre.c:1181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1182,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sre/sre.c:1186,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sre/sre.c:1191,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sre/sre.c:1193,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:1196,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sre/sre.c:1196,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sre/sre.c:1197,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_sre/sre.c:1200,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_sre/sre.c:1200,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sre/sre.c:1201,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sre/sre.c:1211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1212,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:1215,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sre/sre.c:1216,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:1218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1219,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - module_state
    - pattern
    argTypes:
    - _sremodulestate*
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1223
    functionName: compile_template
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_PTR
    - Py_XSETREF
    - PyObject_Vectorcall
    - PyUnicode_CheckExact
    - PyUnicode_Check
    - PyBytes_CheckExact
    - PyErr_Clear
    - _Py_atomic_compare_exchange_ptr
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyObject_CheckBuffer
    - 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:1249,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1251,1
    - Dst: getstring
      Src: /src/cpython/Modules/_sre/sre.c:1257,1
    - Dst: memchr
      Src: /src/cpython/Modules/_sre/sre.c:1260,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Modules/_sre/sre.c:1262,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sre/sre.c:1264,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:1268,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1270,1
    - Dst: compile_template
      Src: /src/cpython/Modules/_sre/sre.c:1274,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:1278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:1278,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1279,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sre/sre.c:1280,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1281,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:1290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1291,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:1295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1297,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1298,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:1306,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:1310,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:1310,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1311,1
    - Dst: pattern_error
      Src: /src/cpython/Modules/_sre/sre.c:1317,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1321,1
    - Dst: STATE_OFFSET
      Src: /src/cpython/Modules/_sre/sre.c:1322,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1326,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1331,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:1339,1
    - Dst: expand_template
      Src: /src/cpython/Modules/_sre/sre.c:1343,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:1347,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sre/sre.c:1348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1350,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1355,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1361,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1374,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1379,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1386,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:1389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1391,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1395,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_sre/sre.c:1400,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_sre/sre.c:1402,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1404,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_sre/sre.c:1410,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1415,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:1416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1417,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: 1277
        line_start: 1277
        source_file: /src/cpython/Modules/_sre/sre.c
    - condition: (filter_type == CALLABLE)
      pos:
        line_end: 1346
        line_start: 1346
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 1420
      start: 1227
    functionDepth: 3
    functionLinenumber: 1227
    functionLinenumberEnd: 1420
    functionName: pattern_subx
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - expand_template
    - PyBytes_Join
    - pattern_error
    - state_fini
    - getstring
    - PyUnicode_Join
    - Py_BuildValue
    - getslice
    - PyErr_Occurred
    - assert
    - PatternObject_GetCode
    - Py_TYPE
    - PyCallable_Check
    - PyUnicode_FindChar
    - PyList_New
    - PyList_Append
    - memchr
    - Py_SIZE
    - sre_search
    - state_init
    - PyErr_Clear
    - Py_DECREF
    - pattern_new_match
    - Py_NewRef
    - compile_template
    - Py_SETREF
    - PyBuffer_Release
    - state_reset
    - STATE_OFFSET
    - PyList_GET_SIZE
    - PyObject_CallOneArg
    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:1440,1
    - Dst: pattern_subx
      Src: /src/cpython/Modules/_sre/sre.c:1442,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: 1443
      start: 1435
    functionDepth: 4
    functionLinenumber: 1435
    functionLinenumberEnd: 1443
    functionName: _sre_SRE_Pattern_sub_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - pattern_subx
    - get_sre_module_state_by_class
    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:1464,1
    - Dst: pattern_subx
      Src: /src/cpython/Modules/_sre/sre.c:1466,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: 1467
      start: 1458
    functionDepth: 4
    functionLinenumber: 1458
    functionLinenumberEnd: 1467
    functionName: _sre_SRE_Pattern_subn_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - pattern_subx
    - get_sre_module_state_by_class
    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:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1474
    functionDepth: 0
    functionLinenumber: 1474
    functionLinenumberEnd: 1479
    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:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - PatternObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1494
    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:1513,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sre/sre.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - count
    - exception
    argTypes:
    - PatternObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1516
    functionName: _sre_SRE_Pattern__fail_after_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_INCREF
    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:1536,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:1548,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_sre/sre.c:1552,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sre/sre.c:1554,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1562,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_sre/sre.c:1567,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sre/sre.c:1571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1572,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1575,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_sre/sre.c:1578,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sre/sre.c:1580,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_sre/sre.c:1583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1584,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_sre/sre.c:1587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1589,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_sre/sre.c:1592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1596,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1598
    functionName: pattern_repr
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_ARRAY_LENGTH
    - PyList_Size
    - PyUnicode_FromFormat
    - PyUnicode_Join
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - _PatternObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pattern_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PatternObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:1606,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_sre/sre.c:1608,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Modules/_sre/sre.c:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1610
    functionName: pattern_groupindex
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyDictProxy_New
    - _PatternObject_CAST
    - 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:1634,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1638,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Modules/_sre/sre.c:1640,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:1655,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_sre/sre.c:1656,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1657,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:1662,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sre/sre.c:1667,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1670,1
    - Dst: getstring
      Src: /src/cpython/Modules/_sre/sre.c:1682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1684,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:1688,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1691,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1697,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1698,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1699,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1700,1
    - Dst: _validate
      Src: /src/cpython/Modules/_sre/sre.c:1704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1705,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: 1710
      start: 1626
    functionDepth: 2
    functionLinenumber: 1626
    functionLinenumberEnd: 1710
    functionName: _sre_compile_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_NewVar
    - _validate
    - PyErr_SetString
    - getstring
    - PyList_GET_ITEM
    - Py_NewRef
    - PyBuffer_Release
    - get_sre_module_state
    - PyErr_Occurred
    - PyLong_AsUnsignedLong
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyList_GET_SIZE
    - PyObject_GC_Track
    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:1732,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1734,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Modules/_sre/sre.c:1739,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:1743,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:1743,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:1745,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:1745,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:1746,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:1748,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1752,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:1757,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:1759,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_sre/sre.c:1759,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/_sre/sre.c:1760,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:1760,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sre/sre.c:1765,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sre/sre.c:1767,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:1771,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sre/sre.c:1772,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - module
    - pattern
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1724
    functionDepth: 2
    functionLinenumber: 1724
    functionLinenumberEnd: 1774
    functionName: _sre_template_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_NewVar
    - Py_SET_SIZE
    - Py_XNewRef
    - PyBytes_Check
    - PyErr_SetString
    - PyList_GET_ITEM
    - PyUnicode_Check
    - PyBytes_GET_SIZE
    - get_sre_module_state
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - PyList_GET_SIZE
    - PyLong_AsSsize_t
    - Py_NewRef
    - PyObject_GC_Track
    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: 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:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1809
    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: 1840
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1840
    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: 1926
      start: 1842
    functionDepth: 0
    functionLinenumber: 1842
    functionLinenumberEnd: 1926
    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:1937,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:1952,1
    - Dst: _validate_charset
      Src: /src/cpython/Modules/_sre/sre.c:2006,1
    - Dst: _validate_charset
      Src: /src/cpython/Modules/_sre/sre.c:2060,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2067,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2081,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2112,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2132,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2150,1
    - Dst: GET_SKIP_ADJ
      Src: /src/cpython/Modules/_sre/sre.c:2175,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2202,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2203,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2205,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2208,1
    - Dst: _validate_inner
      Src: /src/cpython/Modules/_sre/sre.c:2221,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2232,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2241,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: 2243
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 2243
    functionName: _validate_inner
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    functionsReached:
    - VTRACE
    - _validate_inner
    - _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:2251,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: 2252
      start: 2245
    functionDepth: 2
    functionLinenumber: 2245
    functionLinenumberEnd: 2252
    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:2257,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:2259,1
    - Dst: VTRACE
      Src: /src/cpython/Modules/_sre/sre.c:2263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2254
    functionDepth: 3
    functionLinenumber: 2254
    functionLinenumberEnd: 2265
    functionName: _validate
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 1
    functionsReached:
    - VTRACE
    - PyErr_SetString
    - _validate_outer
    linkageType: ''
    returnType: int
    signature: int _validate(PatternObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MatchObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2273,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2274,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2274,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2275,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2276,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2270
    functionDepth: 1
    functionLinenumber: 2270
    functionLinenumberEnd: 2279
    functionName: match_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _MatchObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2284,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2285,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2286,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2281
    functionDepth: 1
    functionLinenumber: 2281
    functionLinenumberEnd: 2289
    functionName: match_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _MatchObject_CAST
    linkageType: ''
    returnType: int
    signature: int match_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2294,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sre/sre.c:2295,1
    - Dst: match_clear
      Src: /src/cpython/Modules/_sre/sre.c:2296,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sre/sre.c:2297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2291
    functionDepth: 2
    functionLinenumber: 2291
    functionLinenumberEnd: 2299
    functionName: match_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - match_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void match_dealloc(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:2311,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2316,1
    - Dst: getstring
      Src: /src/cpython/Modules/_sre/sre.c:2319,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_sre/sre.c:2325,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/_sre/sre.c:2326,1
    - Dst: getslice
      Src: /src/cpython/Modules/_sre/sre.c:2327,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sre/sre.c:2329,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: 2310
        line_start: 2310
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 2331
      start: 2301
    functionDepth: 2
    functionLinenumber: 2301
    functionLinenumberEnd: 2331
    functionName: match_getslice_by_index
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - getstring
    - PyBuffer_Release
    - Py_MIN
    - getslice
    - assert
    - Py_NewRef
    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:2342,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2343,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_sre/sre.c:2349,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sre/sre.c:2350,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2351,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:2357,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:2358,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:2364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts:
    - condition: ((size_t)i <= SRE_MAXGROUPS)
      pos:
        line_end: 2363
        line_start: 2363
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 2366
      start: 2333
    functionDepth: 1
    functionLinenumber: 2333
    functionLinenumberEnd: 2366
    functionName: match_getindex
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyLong_Check
    - PyIndex_Check
    - PyErr_Occurred
    - PyLong_AsSsize_t
    - PyDict_GetItemWithError
    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:2371,1
    - Dst: match_getslice_by_index
      Src: /src/cpython/Modules/_sre/sre.c:2377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - index
    - def
    argTypes:
    - MatchObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2368
    functionDepth: 3
    functionLinenumber: 2368
    functionLinenumberEnd: 2378
    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:2393,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2393,1
    - Dst: compile_template
      Src: /src/cpython/Modules/_sre/sre.c:2394,1
    - Dst: expand_template
      Src: /src/cpython/Modules/_sre/sre.c:2398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2389
    functionDepth: 2
    functionLinenumber: 2389
    functionLinenumberEnd: 2401
    functionName: _sre_SRE_Match_expand_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - expand_template
    - compile_template
    - Py_DECREF
    - get_sre_module_state_by_class
    - Py_TYPE
    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:2406,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:2410,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2414,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/_sre/sre.c:2414,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2417,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2417,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sre/sre.c:2421,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2425,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2429,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2432,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2403
    functionDepth: 4
    functionLinenumber: 2403
    functionLinenumberEnd: 2437
    functionName: match_group
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - match_getslice
    - _MatchObject_CAST
    - PyTuple_SET_ITEM
    - _PyLong_GetZero
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    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:2442,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2439
    functionDepth: 4
    functionLinenumber: 2439
    functionLinenumberEnd: 2444
    functionName: match_getitem
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _MatchObject_CAST
    - match_getslice
    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:2462,1
    - Dst: match_getslice_by_index
      Src: /src/cpython/Modules/_sre/sre.c:2468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2470,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2455
    functionDepth: 3
    functionLinenumber: 2455
    functionLinenumberEnd: 2477
    functionName: _sre_SRE_Match_groups_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_SET_ITEM
    - match_getslice_by_index
    - PyTuple_New
    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:2499,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_sre/sre.c:2503,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Modules/_sre/sre.c:2504,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sre/sre.c:2506,1
    - Dst: match_getslice
      Src: /src/cpython/Modules/_sre/sre.c:2507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2509,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2510,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/cpython/Modules/_sre/sre.c:2513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2515,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2517,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_sre/sre.c:2522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2489
    functionDepth: 4
    functionLinenumber: 2489
    functionLinenumberEnd: 2525
    functionName: _sre_SRE_Match_groupdict_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItem_KnownHash
    - Py_INCREF
    - match_getslice
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_CLEAR
    - Py_DECREF
    - _PyDict_Next
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_getindex
      Src: /src/cpython/Modules/_sre/sre.c:2540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2536
    functionDepth: 2
    functionLinenumber: 2536
    functionLinenumberEnd: 2548
    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:2563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2559
    functionDepth: 2
    functionLinenumber: 2559
    functionLinenumberEnd: 2571
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2576,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2582,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_sre/sre.c:2586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - i1
    - i2
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2574
    functionDepth: 1
    functionLinenumber: 2574
    functionLinenumberEnd: 2587
    functionName: _pair
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - _PyTuple_FromPairSteal
    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:2603,1
    - Dst: _pair
      Src: /src/cpython/Modules/_sre/sre.c:2610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2599
    functionDepth: 2
    functionLinenumber: 2599
    functionLinenumberEnd: 2611
    functionName: _sre_SRE_Match_span_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - match_getindex
    - _pair
    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:2620,1
    - Dst: _pair
      Src: /src/cpython/Modules/_sre/sre.c:2625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2627,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2630,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2613
    functionDepth: 2
    functionLinenumber: 2613
    functionLinenumberEnd: 2636
    functionName: match_regs
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _pair
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_regs(MatchObject* self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2643
    functionDepth: 0
    functionLinenumber: 2643
    functionLinenumberEnd: 2648
    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:2662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2658
    functionDepth: 0
    functionLinenumber: 2658
    functionLinenumberEnd: 2663
    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:2677,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_sre/sre.c:2679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2674
    functionDepth: 1
    functionLinenumber: 2674
    functionLinenumberEnd: 2681
    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:2686,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:2689,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:2691,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2683
    functionDepth: 1
    functionLinenumber: 2683
    functionLinenumberEnd: 2696
    functionName: match_lastgroup_get
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _MatchObject_CAST
    - PyTuple_GET_ITEM
    - Py_NewRef
    - PyTuple_GET_SIZE
    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:2701,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2703,1
    - Dst: match_regs
      Src: /src/cpython/Modules/_sre/sre.c:2705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2698
    functionDepth: 3
    functionLinenumber: 2698
    functionLinenumberEnd: 2706
    functionName: match_regs_get
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - match_regs
    - _MatchObject_CAST
    - Py_NewRef
    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:2711,1
    - Dst: match_getslice_by_index
      Src: /src/cpython/Modules/_sre/sre.c:2713,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_sre/sre.c:2716,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2718,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2708
    functionDepth: 3
    functionLinenumber: 2708
    functionLinenumberEnd: 2722
    functionName: match_repr
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - match_getslice_by_index
    - PyUnicode_FromFormat
    - _MatchObject_CAST
    - Py_DECREF
    - 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:2742,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sre/sre.c:2748,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:2751,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:2771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2774,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sre/sre.c:2785,1
    - Dst: pattern_error
      Src: /src/cpython/Modules/_sre/sre.c:2796,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: 2798
      start: 2725
    functionDepth: 2
    functionLinenumber: 2725
    functionLinenumberEnd: 2798
    functionName: pattern_new_match
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 4
    functionsReached:
    - Py_INCREF
    - PyObject_GC_NewVar
    - pattern_error
    - PyErr_SetString
    - Py_DECREF
    - Py_NewRef
    - PyObject_GC_Track
    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:2807,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2808,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2808,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2804
    functionDepth: 1
    functionLinenumber: 2804
    functionLinenumberEnd: 2811
    functionName: scanner_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _ScannerObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:2816,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:2817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2813
    functionDepth: 1
    functionLinenumber: 2813
    functionLinenumberEnd: 2819
    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:2824,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sre/sre.c:2825,1
    - Dst: _ScannerObject_CAST
      Src: /src/cpython/Modules/_sre/sre.c:2826,1
    - Dst: state_fini
      Src: /src/cpython/Modules/_sre/sre.c:2827,1
    - Dst: scanner_clear
      Src: /src/cpython/Modules/_sre/sre.c:2828,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sre/sre.c:2829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2821
    functionDepth: 3
    functionLinenumber: 2821
    functionLinenumberEnd: 2831
    functionName: scanner_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - scanner_clear
    - _ScannerObject_CAST
    - state_fini
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void scanner_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_int
      Src: /src/cpython/Modules/_sre/sre.c:2837,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:2843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ScannerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2848
    functionName: scanner_begin
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_int
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int scanner_begin(ScannerObject* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:2853,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Modules/_sre/sre.c:2853,1
    - Dst: FT_ATOMIC_STORE_INT
      Src: /src/cpython/Modules/_sre/sre.c:2854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - ScannerObject*
    assertStmts:
    - condition: (FT_ATOMIC_LOAD_INT_RELAXED(self->executing))
      pos:
        line_end: 2852
        line_start: 2852
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 2855
      start: 2850
    functionDepth: 1
    functionLinenumber: 2850
    functionLinenumberEnd: 2855
    functionName: scanner_end
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_INT
    - FT_ATOMIC_LOAD_INT_RELAXED
    - 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:2869,1
    - Dst: scanner_begin
      Src: /src/cpython/Modules/_sre/sre.c:2874,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2878,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:2882,1
    - Dst: sre_match
      Src: /src/cpython/Modules/_sre/sre.c:2886,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:2886,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:2887,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2888,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:2892,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2902,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ScannerObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2865
    functionDepth: 3
    functionLinenumber: 2865
    functionLinenumberEnd: 2904
    functionName: _sre_SRE_Scanner_prefixmatch_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - scanner_end
    - sre_match
    - state_reset
    - PyErr_Occurred
    - PatternObject_GetCode
    - pattern_new_match
    - get_sre_module_state_by_class
    - scanner_begin
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_prefixmatch_impl(ScannerObject *self, PyTypeObject *cls)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:2919,1
    - Dst: scanner_begin
      Src: /src/cpython/Modules/_sre/sre.c:2924,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2928,1
    - Dst: state_reset
      Src: /src/cpython/Modules/_sre/sre.c:2932,1
    - Dst: sre_search
      Src: /src/cpython/Modules/_sre/sre.c:2936,1
    - Dst: PatternObject_GetCode
      Src: /src/cpython/Modules/_sre/sre.c:2936,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sre/sre.c:2937,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2938,1
    - Dst: pattern_new_match
      Src: /src/cpython/Modules/_sre/sre.c:2942,1
    - Dst: scanner_end
      Src: /src/cpython/Modules/_sre/sre.c:2952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - ScannerObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2915
    functionDepth: 3
    functionLinenumber: 2915
    functionLinenumberEnd: 2954
    functionName: _sre_SRE_Scanner_search_impl
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - scanner_end
    - sre_search
    - state_reset
    - PyErr_Occurred
    - PatternObject_GetCode
    - pattern_new_match
    - get_sre_module_state_by_class
    - 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:2966,1
    - Dst: state_init
      Src: /src/cpython/Modules/_sre/sre.c:2973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:2974,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sre/sre.c:2978,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sre/sre.c:2981,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: 2983
      start: 2956
    functionDepth: 3
    functionLinenumber: 2956
    functionLinenumberEnd: 2983
    functionName: pattern_scanner
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - Py_INCREF
    - state_init
    - Py_DECREF
    - PyObject_GC_Track
    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:2991,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2992,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:2992,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2993,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:2994,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:2995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2988
    functionDepth: 1
    functionLinenumber: 2988
    functionLinenumberEnd: 2998
    functionName: template_traverse
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_VISIT
    - Py_TYPE
    - _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/Modules/_sre/sre.c:3003,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3004,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:3005,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 3000
    functionDepth: 1
    functionLinenumber: 3000
    functionLinenumberEnd: 3009
    functionName: template_clear
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_SIZE
    - _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:3014,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sre/sre.c:3015,1
    - Dst: template_clear
      Src: /src/cpython/Modules/_sre/sre.c:3016,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sre/sre.c:3017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:3018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 3011
    functionDepth: 0
    functionLinenumber: 3011
    functionLinenumberEnd: 3019
    functionName: template_dealloc
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - template_clear
    - 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:3024,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:3025,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_sre/sre.c:3035,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:3036,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sre/sre.c:3038,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sre/sre.c:3042,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:3045,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:3046,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sre/sre.c:3049,1
    - Dst: match_getslice_by_index
      Src: /src/cpython/Modules/_sre/sre.c:3052,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:3057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:3059,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sre/sre.c:3063,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sre/sre.c:3067,1
    - Dst: _PyUnicode_JoinArray
      Src: /src/cpython/Modules/_sre/sre.c:3068,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_sre/sre.c:3068,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_sre/sre.c:3071,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_sre/sre.c:3072,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Modules/_sre/sre.c:3072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:3077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sre/sre.c:3081,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - self
    - match
    argTypes:
    - TemplateObject*
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3021
    functionDepth: 3
    functionLinenumber: 3021
    functionLinenumberEnd: 3085
    functionName: expand_template
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 2
    functionsReached:
    - match_getslice_by_index
    - PyBytes_Join
    - Py_SET_SIZE
    - _Py_STR
    - Py_ARRAY_LENGTH
    - PyErr_SetString
    - PyList_GET_ITEM
    - PyUnicode_Check
    - Py_SIZE
    - PyList_New
    - Py_DECREF
    - _PyUnicode_JoinArray
    - Py_NewRef
    - _Py_SINGLETON
    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:3091,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_sre/sre.c:3095,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Modules/_sre/sre.c:3100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3088
    functionDepth: 1
    functionLinenumber: 3088
    functionLinenumberEnd: 3111
    functionName: pattern_hash
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _PatternObject_CAST
    - 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:3116,1
    - Dst: get_sre_module_state_by_class
      Src: /src/cpython/Modules/_sre/sre.c:3117,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3125,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sre/sre.c:3132,1
    - Dst: memcmp
      Src: /src/cpython/Modules/_sre/sre.c:3146,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_sre/sre.c:3150,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sre/sre.c:3159,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - lefto
    - righto
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3113
    functionDepth: 1
    functionLinenumber: 3113
    functionLinenumberEnd: 3160
    functionName: pattern_richcompare
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_IS_TYPE
    - memcmp
    - PyBool_FromLong
    - get_sre_module_state_by_class
    - Py_TYPE
    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: 3194
      start: 3193
    functionDepth: 0
    functionLinenumber: 3193
    functionLinenumberEnd: 3194
    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: 3253
      start: 3252
    functionDepth: 0
    functionLinenumber: 3252
    functionLinenumberEnd: 3253
    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: 3308
      start: 3307
    functionDepth: 0
    functionLinenumber: 3307
    functionLinenumberEnd: 3308
    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:3360,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3362,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3363,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3364,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3365,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sre/sre.c:3366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3357
    functionDepth: 2
    functionLinenumber: 3357
    functionLinenumberEnd: 3369
    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:3374,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3376,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3377,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3378,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3379,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sre/sre.c:3380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3371
    functionDepth: 2
    functionLinenumber: 3371
    functionLinenumberEnd: 3383
    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:3388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3389
      start: 3385
    functionDepth: 3
    functionLinenumber: 3385
    functionLinenumberEnd: 3389
    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: 3398
      start: 3391
    functionDepth: 0
    functionLinenumber: 3391
    functionLinenumberEnd: 3398
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 5
    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: 3405
      start: 3399
    functionDepth: 0
    functionLinenumber: 3399
    functionLinenumberEnd: 3405
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:3413,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_sre/sre.c:3413,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:3414,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_sre/sre.c:3414,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:3415,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:3416,1
    - Dst: assert
      Src: /src/cpython/Modules/_sre/sre.c:3417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - methods
    argTypes:
    - PyMethodDef*
    assertStmts:
    - condition: (strcmp(prefixmatch_md->ml_name, "prefixmatch") == 0)
      pos:
        line_end: 3412
        line_start: 3412
        source_file: /src/cpython/Modules/_sre/sre.c
    - condition: (match_md->ml_meth == prefixmatch_md->ml_meth)
      pos:
        line_end: 3414
        line_start: 3414
        source_file: /src/cpython/Modules/_sre/sre.c
    - condition: (strcmp(match_md->ml_name, "match") == 0)
      pos:
        line_end: 3413
        line_start: 3413
        source_file: /src/cpython/Modules/_sre/sre.c
    - condition: (match_md->ml_flags == prefixmatch_md->ml_flags)
      pos:
        line_end: 3415
        line_start: 3415
        source_file: /src/cpython/Modules/_sre/sre.c
    - condition: (match_md->ml_doc == prefixmatch_md->ml_doc)
      pos:
        line_end: 3416
        line_start: 3416
        source_file: /src/cpython/Modules/_sre/sre.c
    constantsTouched: []
    func_position:
      end: 3418
      start: 3408
    functionDepth: 0
    functionLinenumber: 3408
    functionLinenumberEnd: 3418
    functionName: _assert_match_aliases_prefixmatch
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - strcmp
    - assert
    linkageType: ''
    returnType: void
    signature: void _assert_match_aliases_prefixmatch(PyMethodDef *methods)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _assert_match_aliases_prefixmatch
      Src: /src/cpython/Modules/_sre/sre.c:3427,1
    - Dst: _assert_match_aliases_prefixmatch
      Src: /src/cpython/Modules/_sre/sre.c:3428,1
    - Dst: get_sre_module_state
      Src: /src/cpython/Modules/_sre/sre.c:3432,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3433,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3434,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3435,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_sre/sre.c:3436,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_sre/sre.c:3438,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_sre/sre.c:3442,1
    - Dst: ADD_ULONG_CONSTANT
      Src: /src/cpython/Modules/_sre/sre.c:3446,1
    - Dst: ADD_ULONG_CONSTANT
      Src: /src/cpython/Modules/_sre/sre.c:3447,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_sre/sre.c:3449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 3421
    functionDepth: 2
    functionLinenumber: 3421
    functionLinenumberEnd: 3457
    functionName: sre_exec
    functionSourceFile: /src/cpython/Modules/_sre/sre.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - CREATE_TYPE
    - ADD_ULONG_CONSTANT
    - _assert_match_aliases_prefixmatch
    - PyModule_AddStringConstant
    - get_sre_module_state
    linkageType: ''
    returnType: int
    signature: int sre_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_sre/sre.c:3481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3478
    functionDepth: 1
    functionLinenumber: 3478
    functionLinenumberEnd: 3482
    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_UNI_IS_WORD
    - SRE_IS_WORD
    - SRE_IS_LINEBREAK
    - SRE_LOC_IS_WORD
    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
    - sre_lower_locale
    - sre_upper_locale
    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:
    - INIT_TRACE
    - char_loc_ignore
    - sre_lower_ascii
    - sre_lower_unicode
    - SRE
    - SRE_IS_LINEBREAK
    - TRACE
    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:
    - DATA_LOOKUP_AT
    - RETURN_ON_ERROR
    - 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:
    - DO_JUMP
    - RETURN_ON_ERROR
    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:
    - DO_JUMP
    - RETURN_ON_ERROR
    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:
    - MARK_POP
    - MARK_POP_DISCARD
    - DO_JUMP0
    - RETURN_ON_ERROR
    - MARK_PUSH
    - LASTMARK_RESTORE
    - 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:
    - INIT_TRACE
    - SRE
    - assert
    - TRACE
    - RESET_CAPTURE_GROUP
    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:
    - _sre_getcodesize_impl
    - PyLong_FromLong
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - PyBool_FromLong
    - PyErr_Occurred
    - _sre_ascii_iscased_impl
    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:
    - PyLong_AsInt
    - _sre_unicode_iscased_impl
    - PyBool_FromLong
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - PyLong_FromLong
    - _sre_ascii_tolower_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - _sre_unicode_tolower_impl
    - PyLong_FromLong
    - PyErr_Occurred
    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_prefixmatch_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_prefixmatch
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _sre_SRE_Pattern_prefixmatch_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_prefixmatch(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:
    - _sre_SRE_Pattern_fullmatch_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sre_SRE_Pattern_search_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sre_SRE_Pattern_findall_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sre_SRE_Pattern_finditer_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sre_SRE_Pattern_scanner_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _sre_SRE_Pattern_split_impl
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - _sre_SRE_Pattern_sub_impl
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sre_SRE_Pattern_subn_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - _sre_SRE_Pattern__fail_after_impl
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyArg_BadArgument
    - PyList_Check
    - PyDict_Check
    - PyErr_Occurred
    - PyTuple_Check
    - _PyNumber_Index
    - _sre_compile_impl
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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
    - PyList_Check
    - _PyArg_BadArgument
    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
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sre_SRE_Match_groups_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sre_SRE_Match_groupdict_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - _sre_SRE_Match_start_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyLong_FromSsize_t
    - _sre_SRE_Match_end_impl
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - _sre_SRE_Match_span_impl
    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_prefixmatch_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_prefixmatch
    functionSourceFile: /src/cpython/Modules/_sre/clinic/sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Scanner_prefixmatch_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_prefixmatch(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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _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:51,1
    - Dst: sqlite3_stricmp
      Src: /src/cpython/Modules/_sqlite/connection.c:61,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - level
    argTypes:
    - char*
    assertStmts:
    - condition: (level != NULL)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 69
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 69
    functionName: get_isolation_level
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - sqlite3_stricmp
    - 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:74,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:77,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Modules/_sqlite/connection.c:78,1
    - Dst: get_isolation_level
      Src: /src/cpython/Modules/_sqlite/connection.c:82,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - str_or_none
    - result
    argTypes:
    - PyObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: isolation_level_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_Check
    - Py_IsNone
    - _PyUnicode_AsUTF8NoNUL
    - get_isolation_level
    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:99,1
    - Dst: Py_IsFalse
      Src: /src/cpython/Modules/_sqlite/connection.c:103,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:107,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_sqlite/connection.c:108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - val
    - result
    argTypes:
    - PyObject*
    - enum autocommit_mode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: autocommit_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_IsFalse
    - PyErr_SetString
    - Py_IsTrue
    - PyLong_Check
    - PyLong_AsLong
    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:123,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:124,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/cpython/Modules/_sqlite/connection.c:127,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - result
    argTypes:
    - PyObject*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: sqlite3_int64_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - PyErr_SetString
    - _pysqlite_long_as_int64
    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: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    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: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    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:157,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/connection.c:163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:164,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/connection.c:171,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - state
    - maxsize
    argTypes:
    - pysqlite_Connection*
    - pysqlite_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: new_statement_cache
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Vectorcall
    - 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:181,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:183,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/connection.c:185,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/connection.c:186,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - sql
    argTypes:
    - pysqlite_Connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: connection_exec_stmt
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_finalize
    - set_error_from_db
    - sqlite3_prepare_v2
    - strlen
    linkageType: ''
    returnType: int
    signature: int connection_exec_stmt(pysqlite_Connection *self, const char *sql)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_sqlite/connection.c:237,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/_sqlite/connection.c:242,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:249,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_sqlite/connection.c:250,1
    - Dst: connection_close
      Src: /src/cpython/Modules/_sqlite/connection.c:251,1
    - Dst: sqlite3_open_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:260,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_sqlite/connection.c:260,1
    - Dst: sqlite3_busy_timeout
      Src: /src/cpython/Modules/_sqlite/connection.c:264,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:270,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/connection.c:274,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:274,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:276,1
    - Dst: new_statement_cache
      Src: /src/cpython/Modules/_sqlite/connection.c:281,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/connection.c:287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:289,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/_sqlite/connection.c:300,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:303,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:304,1
    - Dst: PySys_Audit
      Src: /src/cpython/Modules/_sqlite/connection.c:321,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:328,1
    - Dst: sqlite3_close
      Src: /src/cpython/Modules/_sqlite/connection.c:337,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:338,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    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: 337
        line_start: 337
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 340
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 340
    functionName: pysqlite_connection_init_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - assert
    - sqlite3_busy_timeout
    - Py_TYPE
    - connection_close
    - new_statement_cache
    - PyErr_NoMemory
    - PySys_Audit
    - pysqlite_get_state_by_type
    - PyList_New
    - PyBytes_AS_STRING
    - sqlite3_open_v2
    - PyUnicode_FSConverter
    - Py_DECREF
    - Py_NewRef
    - connection_exec_stmt
    - set_error_from_db
    - sqlite3_close
    - PyThread_get_thread_ident
    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: 377
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 377
    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:381,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:382,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:382,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:383,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:384,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:385,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/connection.c:386,1
    - Dst: VISIT_CALLBACK_CONTEXT
      Src: /src/cpython/Modules/_sqlite/connection.c:387,1
    - Dst: VISIT_CALLBACK_CONTEXT
      Src: /src/cpython/Modules/_sqlite/connection.c:388,1
    - Dst: VISIT_CALLBACK_CONTEXT
      Src: /src/cpython/Modules/_sqlite/connection.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 392
    functionName: connection_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - VISIT_CALLBACK_CONTEXT
    - Py_VISIT
    - _pysqlite_Connection_CAST
    - Py_TYPE
    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:398,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - callback_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 401
    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:406,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:407,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:408,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:409,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:410,1
    - Dst: clear_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:411,1
    - Dst: clear_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:412,1
    - Dst: clear_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: connection_clear
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - clear_callback_context
    - Py_CLEAR
    - _pysqlite_Connection_CAST
    linkageType: ''
    returnType: int
    signature: int connection_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:420,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:421,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 423
    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:430,1
    - Dst: sqlite3_trace_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:431,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:432,1
    - Dst: sqlite3_progress_handler
      Src: /src/cpython/Modules/_sqlite/connection.c:434,1
    - Dst: sqlite3_set_authorizer
      Src: /src/cpython/Modules/_sqlite/connection.c:436,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (rc == SQLITE_OK)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (rc == SQLITE_OK)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 438
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 438
    functionName: remove_callbacks
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_progress_handler
    - sqlite3_trace_v2
    - sqlite3_set_authorizer
    - 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:449,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:451,1
    - Dst: sqlite3_close_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 467
    functionName: connection_close
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - sqlite3_close_v2
    - connection_exec_stmt
    - sqlite3_get_autocommit
    linkageType: ''
    returnType: int
    signature: int connection_close(pysqlite_Connection *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:473,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Modules/_sqlite/connection.c:477,1
    - Dst: _Py_IsInterpreterFinalizing
      Src: /src/cpython/Modules/_sqlite/connection.c:478,1
    - Dst: remove_callbacks
      Src: /src/cpython/Modules/_sqlite/connection.c:480,1
    - Dst: PyErr_ResourceWarning
      Src: /src/cpython/Modules/_sqlite/connection.c:485,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:487,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_sqlite/connection.c:488,1
    - Dst: connection_close
      Src: /src/cpython/Modules/_sqlite/connection.c:493,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/connection.c:495,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_sqlite/connection.c:498,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:503,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 504
    functionName: connection_finalize
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - connection_close
    - _Py_IsInterpreterFinalizing
    - PyInterpreterState_Get
    - PyErr_ResourceWarning
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - remove_callbacks
    - PyErr_SetRaisedException
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void connection_finalize(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Modules/_sqlite/connection.c:509,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:512,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/connection.c:513,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_sqlite/connection.c:514,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/connection.c:515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 517
    functionName: connection_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - PyTypeObject*::tp_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:533,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:533,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/connection.c:541,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/_sqlite/connection.c:544,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:545,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:548,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/connection.c:553,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/connection.c:554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - factory
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 558
    functionName: pysqlite_connection_cursor_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - pysqlite_check_thread
    - Py_INCREF
    - pysqlite_check_connection
    - Py_XSETREF
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    - PyObject_CallOneArg
    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:584,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:584,1
    - Dst: sqlite3_blob_open
      Src: /src/cpython/Modules/_sqlite/connection.c:592,1
    - Dst: set_error_from_code
      Src: /src/cpython/Modules/_sqlite/connection.c:596,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:600,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_sqlite/connection.c:604,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:609,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sqlite/connection.c:614,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:617,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/connection.c:621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:622,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:630,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: 632
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 632
    functionName: blobopen_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - pysqlite_check_thread
    - pysqlite_check_connection
    - set_error_from_code
    - set_error_from_db
    - sqlite3_blob_open
    - PyWeakref_NewRef
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    - Py_NewRef
    - PyObject_GC_Track
    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:646,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:651,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/connection.c:652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:653,1
    - Dst: pysqlite_close_all_blobs
      Src: /src/cpython/Modules/_sqlite/connection.c:658,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:659,1
    - Dst: connection_close
      Src: /src/cpython/Modules/_sqlite/connection.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 665
    functionName: pysqlite_connection_close_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - connection_close
    - pysqlite_check_thread
    - PyErr_SetString
    - Py_CLEAR
    - pysqlite_get_state_by_type
    - pysqlite_close_all_blobs
    - 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:675,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:675,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:676,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 688
    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:702,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:702,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:707,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:708,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:714,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:717,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 722
    functionName: pysqlite_connection_commit_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - connection_exec_stmt
    - pysqlite_check_connection
    - 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:736,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:736,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:741,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:742,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:748,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:751,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 756
    functionName: pysqlite_connection_rollback_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - connection_exec_stmt
    - pysqlite_check_connection
    - 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:762,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:763,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/cpython/Modules/_sqlite/connection.c:764,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:765,1
    - Dst: sqlite3_result_int64
      Src: /src/cpython/Modules/_sqlite/connection.c:767,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:768,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/connection.c:769,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:770,1
    - Dst: sqlite3_result_double
      Src: /src/cpython/Modules/_sqlite/connection.c:773,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:774,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:776,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:781,1
    - Dst: sqlite3_result_text
      Src: /src/cpython/Modules/_sqlite/connection.c:785,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_sqlite/connection.c:786,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/connection.c:788,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:792,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:794,1
    - Dst: sqlite3_result_blob
      Src: /src/cpython/Modules/_sqlite/connection.c:797,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:798,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:800,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:801,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/connection.c:804,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - context
    - py_val
    argTypes:
    - sqlite3_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 808
    functionName: _pysqlite_set_result
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _pysqlite_long_as_int64
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - sqlite3_result_null
    - PyObject_GetBuffer
    - sqlite3_result_double
    - Py_TYPE
    - sqlite3_user_data
    - PyUnicode_Check
    - PyLong_Check
    - PyObject_CheckBuffer
    - PyFloat_AsDouble
    - PyErr_SetString
    - sqlite3_result_blob
    - PyFloat_Check
    - sqlite3_result_text
    - sqlite3_result_int64
    - PyBuffer_Release
    - PyErr_Format
    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:819,1
    - Dst: sqlite3_value_type
      Src: /src/cpython/Modules/_sqlite/connection.c:826,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_sqlite/connection.c:828,1
    - Dst: sqlite3_value_int64
      Src: /src/cpython/Modules/_sqlite/connection.c:828,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_sqlite/connection.c:831,1
    - Dst: sqlite3_value_double
      Src: /src/cpython/Modules/_sqlite/connection.c:831,1
    - Dst: sqlite3_context_db_handle
      Src: /src/cpython/Modules/_sqlite/connection.c:834,1
    - Dst: sqlite3_value_text
      Src: /src/cpython/Modules/_sqlite/connection.c:835,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/connection.c:837,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:838,1
    - Dst: sqlite3_value_bytes
      Src: /src/cpython/Modules/_sqlite/connection.c:842,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:843,1
    - Dst: sqlite3_context_db_handle
      Src: /src/cpython/Modules/_sqlite/connection.c:847,1
    - Dst: sqlite3_value_blob
      Src: /src/cpython/Modules/_sqlite/connection.c:848,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/connection.c:850,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:851,1
    - Dst: sqlite3_value_bytes
      Src: /src/cpython/Modules/_sqlite/connection.c:855,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:856,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:861,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/connection.c:868,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:874,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 876
    functionName: _pysqlite_build_py_params
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_blob
    - sqlite3_value_int64
    - sqlite3_errcode
    - PyErr_NoMemory
    - sqlite3_value_double
    - PyLong_FromLongLong
    - sqlite3_value_text
    - PyFloat_FromDouble
    - PyBytes_FromStringAndSize
    - sqlite3_value_bytes
    - sqlite3_context_db_handle
    - PyTuple_SET_ITEM
    - sqlite3_value_type
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    - PyUnicode_FromStringAndSize
    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:881,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:882,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_sqlite/connection.c:884,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/connection.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - callback_context*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx->state != NULL)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 890
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 890
    functionName: print_or_clear_traceback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_FormatUnraisable
    - 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:896,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:896,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:897,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/cpython/Modules/_sqlite/connection.c:898,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:900,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/cpython/Modules/_sqlite/connection.c:901,1
    - Dst: sqlite3_result_error
      Src: /src/cpython/Modules/_sqlite/connection.c:904,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:906,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - context
    - msg
    argTypes:
    - sqlite3_context*
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 908
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 908
    functionName: set_sqlite_error
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_user_data
    - sqlite3_result_error_nomem
    - sqlite3_result_error
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - sqlite3_result_error_toobig
    - print_or_clear_traceback
    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:913,1
    - Dst: _pysqlite_build_py_params
      Src: /src/cpython/Modules/_sqlite/connection.c:919,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:921,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:922,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_sqlite/connection.c:923,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:925,1
    - Dst: _pysqlite_set_result
      Src: /src/cpython/Modules/_sqlite/connection.c:930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:931,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:934,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:937,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 938
    functionName: func_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_user_data
    - Py_DECREF
    - _pysqlite_set_result
    - _pysqlite_build_py_params
    - PyGILState_Ensure
    - set_sqlite_error
    - PyGILState_Release
    - PyObject_CallObject
    - incref_callback_context
    - decref_callback_context
    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:943,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:950,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:951,1
    - Dst: sqlite3_aggregate_context
      Src: /src/cpython/Modules/_sqlite/connection.c:953,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:955,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:956,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:960,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:962,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_sqlite/connection.c:968,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:970,1
    - Dst: _pysqlite_build_py_params
      Src: /src/cpython/Modules/_sqlite/connection.c:975,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_sqlite/connection.c:980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:981,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:984,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:989,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:990,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:991,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:993,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - context
    - argc
    - params
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 940
    functionDepth: 3
    functionLinenumber: 940
    functionLinenumberEnd: 994
    functionName: step_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_user_data
    - sqlite3_aggregate_context
    - PyErr_NoMemory
    - _pysqlite_build_py_params
    - PyGILState_Ensure
    - set_sqlite_error
    - PyObject_GetAttr
    - PyGILState_Release
    - PyObject_CallObject
    - decref_callback_context
    - PyObject_CallNoArgs
    - Py_XDECREF
    - incref_callback_context
    - Py_DECREF
    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:999,1
    - Dst: sqlite3_aggregate_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1005,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:1018,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:1020,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1021,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:1022,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1025,1
    - Dst: _pysqlite_set_result
      Src: /src/cpython/Modules/_sqlite/connection.c:1029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1030,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:1033,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/connection.c:1034,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1040,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:1045,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1049,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1050
    functionName: final_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_user_data
    - sqlite3_aggregate_context
    - Py_DECREF
    - _pysqlite_set_result
    - PyGILState_Ensure
    - set_sqlite_error
    - PyGILState_Release
    - PyObject_CallMethodNoArgs
    - _PyErr_ChainExceptions1
    - PyErr_ExceptionMatches
    - PyErr_SetRaisedException
    - incref_callback_context
    - PyErr_GetRaisedException
    - decref_callback_context
    linkageType: ''
    returnType: void
    signature: void final_callback(sqlite3_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_sqlite/connection.c:1061,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:1063,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_sqlite/connection.c:1067,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:1069,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:1070,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/connection.c:1071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - cls
    - callable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1073
    functionName: create_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - pysqlite_get_state
    - PyMem_Malloc
    - PyType_GetModule
    - Py_NewRef
    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:1078,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1079,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1080,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1081,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_sqlite/connection.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - callback_context*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1077
        line_start: 1077
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx->refcount == 0)
      pos:
        line_end: 1078
        line_start: 1078
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1083
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1083
    functionName: free_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    - assert
    linkageType: ''
    returnType: void
    signature: void free_callback_context(callback_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1088,1
    - Dst: PyGILState_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:1088,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1089,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - callback_context*
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1087
        line_start: 1087
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx->refcount > 0)
      pos:
        line_end: 1089
        line_start: 1089
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx != NULL)
      pos:
        line_end: 1088
        line_start: 1088
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1092
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1092
    functionName: incref_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 3
    functionsReached:
    - PyGILState_Check
    - assert
    linkageType: ''
    returnType: void
    signature: void incref_callback_context(callback_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1097,1
    - Dst: PyGILState_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:1097,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1098,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1099,1
    - Dst: free_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - callback_context*
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx != NULL)
      pos:
        line_end: 1097
        line_start: 1097
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (ctx->refcount > 0)
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1104
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1104
    functionName: decref_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 3
    functionsReached:
    - PyGILState_Check
    - free_callback_context
    - assert
    linkageType: ''
    returnType: void
    signature: void decref_callback_context(callback_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1109,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1113,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: 1108
        line_start: 1108
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1115
      start: 1106
    functionDepth: 3
    functionLinenumber: 1106
    functionLinenumberEnd: 1115
    functionName: set_callback_context
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - decref_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:1123,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1124,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1117
    functionDepth: 3
    functionLinenumber: 1117
    functionLinenumberEnd: 1127
    functionName: destructor_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - decref_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:1132,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1133,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:1135,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: 1132
        line_start: 1132
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1141
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1141
    functionName: check_num_params
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_limit
    - PyErr_Format
    - assert
    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:1167,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1167,1
    - Dst: check_num_params
      Src: /src/cpython/Modules/_sqlite/connection.c:1170,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1177,1
    - Dst: sqlite3_create_function_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:1181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1189,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: 1193
      start: 1157
    functionDepth: 2
    functionLinenumber: 1157
    functionLinenumberEnd: 1193
    functionName: pysqlite_connection_create_function_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - sqlite3_create_function_v2
    - pysqlite_check_connection
    - PyErr_SetString
    - create_callback_context
    - check_num_params
    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:1206,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:1208,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1209,1
    - Dst: sqlite3_aggregate_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1212,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1213,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1214,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Modules/_sqlite/connection.c:1216,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1218,1
    - Dst: _pysqlite_build_py_params
      Src: /src/cpython/Modules/_sqlite/connection.c:1223,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1225,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_sqlite/connection.c:1231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1232,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1238,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1241,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1242,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - context
    - argc
    - params
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 1212
        line_start: 1212
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (*cls != NULL)
      pos:
        line_end: 1213
        line_start: 1213
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1244
      start: 1203
    functionDepth: 3
    functionLinenumber: 1203
    functionLinenumberEnd: 1244
    functionName: inverse_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_user_data
    - sqlite3_aggregate_context
    - _pysqlite_build_py_params
    - PyGILState_Ensure
    - set_sqlite_error
    - PyObject_GetAttr
    - PyGILState_Release
    - PyObject_CallObject
    - decref_callback_context
    - Py_XDECREF
    - assert
    - incref_callback_context
    - Py_DECREF
    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:1255,1
    - Dst: sqlite3_user_data
      Src: /src/cpython/Modules/_sqlite/connection.c:1257,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1258,1
    - Dst: sqlite3_aggregate_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1261,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1262,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1263,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:1265,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1266,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/connection.c:1269,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1270,1
    - Dst: _pysqlite_set_result
      Src: /src/cpython/Modules/_sqlite/connection.c:1275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1276,1
    - Dst: set_sqlite_error
      Src: /src/cpython/Modules/_sqlite/connection.c:1278,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 1261
        line_start: 1261
        source_file: /src/cpython/Modules/_sqlite/connection.c
    - condition: (*cls != NULL)
      pos:
        line_end: 1262
        line_start: 1262
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1285
      start: 1252
    functionDepth: 3
    functionLinenumber: 1252
    functionLinenumberEnd: 1285
    functionName: value_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_user_data
    - sqlite3_aggregate_context
    - _pysqlite_set_result
    - Py_DECREF
    - PyGILState_Ensure
    - set_sqlite_error
    - PyGILState_Release
    - PyErr_ExceptionMatches
    - assert
    - incref_callback_context
    - PyObject_CallMethodNoArgs
    - decref_callback_context
    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:1310,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1311,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1316,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1316,1
    - Dst: check_num_params
      Src: /src/cpython/Modules/_sqlite/connection.c:1319,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/connection.c:1325,1
    - Dst: sqlite3_create_window_function
      Src: /src/cpython/Modules/_sqlite/connection.c:1326,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1330,1
    - Dst: sqlite3_create_window_function
      Src: /src/cpython/Modules/_sqlite/connection.c:1334,1
    - Dst: set_error_from_code
      Src: /src/cpython/Modules/_sqlite/connection.c:1346,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: 1350
      start: 1304
    functionDepth: 2
    functionLinenumber: 1304
    functionLinenumberEnd: 1350
    functionName: create_window_function_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - pysqlite_check_connection
    - set_error_from_code
    - PyErr_SetString
    - create_callback_context
    - Py_IsNone
    - sqlite3_libversion_number
    - sqlite3_create_window_function
    - check_num_params
    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:1374,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1374,1
    - Dst: check_num_params
      Src: /src/cpython/Modules/_sqlite/connection.c:1377,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1381,1
    - Dst: sqlite3_create_function_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:1385,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1392,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: 1396
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1396
    functionName: pysqlite_connection_create_aggregate_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - sqlite3_create_function_v2
    - pysqlite_check_connection
    - PyErr_SetString
    - create_callback_context
    - check_num_params
    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:1403,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1409,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_sqlite/connection.c:1411,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1415,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:1419,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/connection.c:1420,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:1421,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1429,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1432,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - ctx_vp
    - action
    - arg1
    - arg2
    - dbname
    - access_attempt_source
    argTypes:
    - void*
    - int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1398
    functionDepth: 3
    functionLinenumber: 1398
    functionLinenumberEnd: 1435
    functionName: authorizer_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyGILState_Ensure
    - PyObject_CallFunction
    - PyGILState_Release
    - PyLong_Check
    - decref_callback_context
    - PyErr_Occurred
    - incref_callback_context
    - print_or_clear_traceback
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int authorizer_callback(void *ctx_vp, 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:1440,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1446,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:1448,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/connection.c:1454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1455,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1458,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1461,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ctx_vp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1437
    functionDepth: 3
    functionLinenumber: 1437
    functionLinenumberEnd: 1464
    functionName: progress_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyObject_IsTrue
    - PyGILState_Release
    - decref_callback_context
    - PyObject_CallNoArgs
    - incref_callback_context
    - print_or_clear_traceback
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int progress_callback(void *ctx_vp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Modules/_sqlite/connection.c:1479,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1482,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/connection.c:1484,1
    - Dst: sqlite3_expanded_sql
      Src: /src/cpython/Modules/_sqlite/connection.c:1487,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/connection.c:1489,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/connection.c:1490,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:1491,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1495,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1497,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/connection.c:1500,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/connection.c:1503,1
    - Dst: sqlite3_free
      Src: /src/cpython/Modules/_sqlite/connection.c:1504,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/connection.c:1507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1508,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1509,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:1511,1
    - Dst: print_or_clear_traceback
      Src: /src/cpython/Modules/_sqlite/connection.c:1512,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1516,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1517,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - type
    - ctx_vp
    - stmt
    - sql
    argTypes:
    - unsigned int
    - void*
    - void*
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1483
        line_start: 1483
        source_file: /src/cpython/Modules/_sqlite/connection.c
    constantsTouched: []
    func_position:
      end: 1519
      start: 1472
    functionDepth: 3
    functionLinenumber: 1472
    functionLinenumberEnd: 1519
    functionName: trace_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_expanded_sql
    - PyUnicode_FromString
    - sqlite3_errcode
    - PyErr_NoMemory
    - PyGILState_Ensure
    - PyErr_SetString
    - PyGILState_Release
    - decref_callback_context
    - sqlite3_free
    - sqlite3_db_handle
    - Py_XDECREF
    - assert
    - incref_callback_context
    - print_or_clear_traceback
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: int trace_callback(unsigned int type, void *ctx_vp, void *stmt, void
      *sql)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1537,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1537,1
    - Dst: sqlite3_set_authorizer
      Src: /src/cpython/Modules/_sqlite/connection.c:1543,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1544,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1547,1
    - Dst: sqlite3_set_authorizer
      Src: /src/cpython/Modules/_sqlite/connection.c:1551,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1552,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1555,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - cls
    - callable
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1531
    functionDepth: 4
    functionLinenumber: 1531
    functionLinenumberEnd: 1561
    functionName: pysqlite_connection_set_authorizer_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - set_callback_context
    - pysqlite_check_thread
    - pysqlite_check_connection
    - sqlite3_set_authorizer
    - PyErr_SetString
    - create_callback_context
    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:1588,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1588,1
    - Dst: sqlite3_progress_handler
      Src: /src/cpython/Modules/_sqlite/connection.c:1594,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1595,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1598,1
    - Dst: sqlite3_progress_handler
      Src: /src/cpython/Modules/_sqlite/connection.c:1602,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1603,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: 1606
      start: 1582
    functionDepth: 4
    functionLinenumber: 1582
    functionLinenumberEnd: 1606
    functionName: pysqlite_connection_set_progress_handler_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - set_callback_context
    - pysqlite_check_thread
    - pysqlite_check_connection
    - sqlite3_progress_handler
    - create_callback_context
    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:1625,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1625,1
    - Dst: sqlite3_trace_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:1637,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1638,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1641,1
    - Dst: sqlite3_trace_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:1645,1
    - Dst: set_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - cls
    - callable
    argTypes:
    - pysqlite_Connection*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1619
    functionDepth: 4
    functionLinenumber: 1619
    functionLinenumberEnd: 1650
    functionName: pysqlite_connection_set_trace_callback_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - set_callback_context
    - pysqlite_check_thread
    - pysqlite_check_connection
    - create_callback_context
    - sqlite3_trace_v2
    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:1669,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1674,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1674,1
    - Dst: sqlite3_enable_load_extension
      Src: /src/cpython/Modules/_sqlite/connection.c:1678,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - onoff
    argTypes:
    - pysqlite_Connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1662
    functionDepth: 2
    functionLinenumber: 1662
    functionLinenumberEnd: 1687
    functionName: pysqlite_connection_enable_load_extension_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - pysqlite_check_connection
    - PySys_Audit
    - PyErr_SetString
    - sqlite3_enable_load_extension
    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:1709,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1713,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1713,1
    - Dst: sqlite3_load_extension
      Src: /src/cpython/Modules/_sqlite/connection.c:1717,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - extension_name
    - entrypoint
    argTypes:
    - pysqlite_Connection*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1700
    functionDepth: 2
    functionLinenumber: 1700
    functionLinenumberEnd: 1724
    functionName: pysqlite_connection_load_extension_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - sqlite3_load_extension
    - pysqlite_check_connection
    - PySys_Audit
    - PyErr_SetString
    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:1730,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:1731,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/_sqlite/connection.c:1734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1740
    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:1745,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1746,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_sqlite/connection.c:1750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1742
    functionDepth: 2
    functionLinenumber: 1742
    functionLinenumberEnd: 1753
    functionName: pysqlite_connection_get_isolation_level
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - PyUnicode_FromString
    - _pysqlite_Connection_CAST
    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:1758,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1759,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/connection.c:1762,1
    - Dst: sqlite3_total_changes
      Src: /src/cpython/Modules/_sqlite/connection.c:1762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1755
    functionDepth: 2
    functionLinenumber: 1755
    functionLinenumberEnd: 1763
    functionName: pysqlite_connection_get_total_changes
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - sqlite3_total_changes
    - PyLong_FromLong
    - _pysqlite_Connection_CAST
    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:1768,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1769,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:1772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1765
    functionDepth: 2
    functionLinenumber: 1765
    functionLinenumberEnd: 1776
    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:1783,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:1785,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/connection.c:1788,1
    - Dst: pysqlite_connection_commit_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:1792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1796,1
    - Dst: isolation_level_converter
      Src: /src/cpython/Modules/_sqlite/connection.c:1799,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: 1803
      start: 1778
    functionDepth: 3
    functionLinenumber: 1778
    functionLinenumberEnd: 1803
    functionName: pysqlite_connection_set_isolation_level
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _pysqlite_Connection_CAST
    - Py_IsNone
    - pysqlite_connection_commit_impl
    - Py_DECREF
    - isolation_level_converter
    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:1810,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:1812,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:1812,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_sqlite/connection.c:1816,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_sqlite/connection.c:1819,1
    - Dst: pysqlite_statement_create
      Src: /src/cpython/Modules/_sqlite/connection.c:1822,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - op
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1805
    functionDepth: 2
    functionLinenumber: 1805
    functionLinenumberEnd: 1828
    functionName: pysqlite_connection_call
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - pysqlite_check_connection
    - pysqlite_statement_create
    - _pysqlite_Connection_CAST
    - _PyArg_NoKeywords
    - PyArg_ParseTuple
    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:1847,1
    - Dst: _pysqlite_query_execute
      Src: /src/cpython/Modules/_sqlite/connection.c:1852,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:1854,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - sql
    - parameters
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1840
    functionDepth: 2
    functionLinenumber: 1840
    functionLinenumberEnd: 1861
    functionName: pysqlite_connection_execute_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _pysqlite_query_execute
    - pysqlite_connection_cursor_impl
    - Py_XDECREF
    - Py_CLEAR
    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:1880,1
    - Dst: _pysqlite_query_execute
      Src: /src/cpython/Modules/_sqlite/connection.c:1885,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:1887,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - sql
    - parameters
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1873
    functionDepth: 2
    functionLinenumber: 1873
    functionLinenumberEnd: 1894
    functionName: pysqlite_connection_executemany_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _pysqlite_query_execute
    - pysqlite_connection_cursor_impl
    - Py_XDECREF
    - Py_CLEAR
    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:1912,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Modules/_sqlite/connection.c:1918,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/connection.c:1920,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - script_obj
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1905
    functionDepth: 2
    functionLinenumber: 1905
    functionLinenumberEnd: 1927
    functionName: pysqlite_connection_executescript_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyObject_CallMethodObjArgs
    - pysqlite_connection_cursor_impl
    - Py_XDECREF
    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:1935,1
    - Dst: incref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1943,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:1947,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:1951,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:1955,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/connection.c:1962,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Modules/_sqlite/connection.c:1968,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:1969,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/connection.c:1970,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:1981,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1982,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1983,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:1984,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Modules/_sqlite/connection.c:1985,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 5
    argNames:
    - context
    - text1_length
    - text1_data
    - text2_length
    - text2_data
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1931
    functionDepth: 3
    functionLinenumber: 1931
    functionLinenumberEnd: 1987
    functionName: collation_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyGILState_Ensure
    - PyObject_Vectorcall
    - PyGILState_Release
    - PyErr_Clear
    - PyErr_Occurred
    - Py_XDECREF
    - incref_callback_context
    - decref_callback_context
    - PyUnicode_FromStringAndSize
    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:2001,1
    - Dst: sqlite3_interrupt
      Src: /src/cpython/Modules/_sqlite/connection.c:2005,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:2007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1995
    functionDepth: 2
    functionLinenumber: 1995
    functionLinenumberEnd: 2011
    functionName: pysqlite_connection_interrupt_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_interrupt
    - Py_NewRef
    - pysqlite_check_connection
    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:2032,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Modules/_sqlite/connection.c:2036,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/connection.c:2038,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2039,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_sqlite/connection.c:2045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2047,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/connection.c:2051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - filter
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2027
    functionDepth: 2
    functionLinenumber: 2027
    functionLinenumberEnd: 2055
    functionName: pysqlite_connection_iterdump_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - PyObject_Vectorcall
    - PyErr_SetString
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    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:2082,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2082,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2086,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2091,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:2095,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2096,1
    - Dst: sqlite3_backup_init
      Src: /src/cpython/Modules/_sqlite/connection.c:2107,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2111,1
    - Dst: sqlite3_backup_step
      Src: /src/cpython/Modules/_sqlite/connection.c:2117,1
    - Dst: sqlite3_backup_remaining
      Src: /src/cpython/Modules/_sqlite/connection.c:2121,1
    - Dst: sqlite3_backup_pagecount
      Src: /src/cpython/Modules/_sqlite/connection.c:2122,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_sqlite/connection.c:2123,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2132,1
    - Dst: sqlite3_backup_finish
      Src: /src/cpython/Modules/_sqlite/connection.c:2145,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2149,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: 2154
      start: 2070
    functionDepth: 2
    functionLinenumber: 2070
    functionLinenumberEnd: 2154
    functionName: pysqlite_connection_backup_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_backup_step
    - pysqlite_check_thread
    - pysqlite_check_connection
    - PyCallable_Check
    - sqlite3_backup_finish
    - PyErr_SetString
    - set_error_from_db
    - sqlite3_backup_init
    - PyObject_CallFunction
    - sqlite3_backup_pagecount
    - Py_DECREF
    - sqlite3_backup_remaining
    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:2174,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2174,1
    - Dst: sqlite3_create_collation_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:2182,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Modules/_sqlite/connection.c:2186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2187,1
    - Dst: create_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:2190,1
    - Dst: sqlite3_create_collation_v2
      Src: /src/cpython/Modules/_sqlite/connection.c:2194,1
    - Dst: decref_callback_context
      Src: /src/cpython/Modules/_sqlite/connection.c:2205,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2207,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: 2212
      start: 2167
    functionDepth: 3
    functionLinenumber: 2167
    functionLinenumberEnd: 2212
    functionName: pysqlite_connection_create_collation_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_collation_v2
    - pysqlite_check_thread
    - pysqlite_check_connection
    - PyCallable_Check
    - PyErr_SetString
    - create_callback_context
    - set_error_from_db
    - decref_callback_context
    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:2234,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2234,1
    - Dst: sqlite3_serialize
      Src: /src/cpython/Modules/_sqlite/connection.c:2246,1
    - Dst: sqlite3_serialize
      Src: /src/cpython/Modules/_sqlite/connection.c:2249,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:2254,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/connection.c:2258,1
    - Dst: sqlite3_free
      Src: /src/cpython/Modules/_sqlite/connection.c:2260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - pysqlite_Connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2230
    functionDepth: 2
    functionLinenumber: 2230
    functionLinenumberEnd: 2263
    functionName: serialize_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_serialize
    - pysqlite_check_thread
    - pysqlite_check_connection
    - PyBytes_FromStringAndSize
    - sqlite3_free
    - PyErr_Format
    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:2291,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2291,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2307,1
    - Dst: sqlite3_malloc64
      Src: /src/cpython/Modules/_sqlite/connection.c:2312,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/connection.c:2314,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_sqlite/connection.c:2321,1
    - Dst: sqlite3_deserialize
      Src: /src/cpython/Modules/_sqlite/connection.c:2322,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - data
    - name
    argTypes:
    - pysqlite_Connection*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2286
    functionDepth: 2
    functionLinenumber: 2286
    functionLinenumberEnd: 2330
    functionName: deserialize_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - pysqlite_check_thread
    - PyErr_NoMemory
    - pysqlite_check_connection
    - PyErr_SetString
    - set_error_from_db
    - sqlite3_deserialize
    - memcpy
    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:2346,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/connection.c:2349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2342
    functionDepth: 2
    functionLinenumber: 2342
    functionLinenumberEnd: 2350
    functionName: pysqlite_connection_enter_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - pysqlite_check_connection
    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:2376,1
    - Dst: pysqlite_connection_rollback_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:2379,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:2386,1
    - Dst: pysqlite_connection_rollback_impl
      Src: /src/cpython/Modules/_sqlite/connection.c:2387,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/connection.c:2389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2392,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_sqlite/connection.c:2393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/connection.c:2398,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: 2401
      start: 2366
    functionDepth: 3
    functionLinenumber: 2366
    functionLinenumberEnd: 2401
    functionName: pysqlite_connection_exit_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions1
    - pysqlite_connection_rollback_impl
    - PyErr_SetRaisedException
    - pysqlite_connection_commit_impl
    - Py_DECREF
    - PyErr_GetRaisedException
    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:2424,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2424,1
    - Dst: sqlite3_limit
      Src: /src/cpython/Modules/_sqlite/connection.c:2428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2430,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/connection.c:2433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - category
    - limit
    argTypes:
    - pysqlite_Connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2420
    functionDepth: 2
    functionLinenumber: 2420
    functionLinenumberEnd: 2434
    functionName: setlimit_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - PyLong_FromLong
    - pysqlite_check_connection
    - PyErr_SetString
    - 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:2450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - category
    argTypes:
    - pysqlite_Connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2446
    functionDepth: 3
    functionLinenumber: 2446
    functionLinenumberEnd: 2451
    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: 2495
      start: 2453
    functionDepth: 0
    functionLinenumber: 2453
    functionLinenumberEnd: 2495
    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:2512,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2512,1
    - Dst: is_int_config
      Src: /src/cpython/Modules/_sqlite/connection.c:2515,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:2516,1
    - Dst: sqlite3_db_config
      Src: /src/cpython/Modules/_sqlite/connection.c:2520,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2522,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/connection.c:2526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - op
    - enable
    argTypes:
    - pysqlite_Connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2508
    functionDepth: 2
    functionLinenumber: 2508
    functionLinenumberEnd: 2530
    functionName: setconfig_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - is_int_config
    - pysqlite_check_thread
    - pysqlite_check_connection
    - PyErr_SetString
    - set_error_from_db
    - PyErr_Format
    - 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:2546,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2546,1
    - Dst: is_int_config
      Src: /src/cpython/Modules/_sqlite/connection.c:2549,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/connection.c:2550,1
    - Dst: sqlite3_db_config
      Src: /src/cpython/Modules/_sqlite/connection.c:2555,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/connection.c:2557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - pysqlite_Connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2542
    functionDepth: 2
    functionLinenumber: 2542
    functionLinenumberEnd: 2561
    functionName: getconfig_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - is_int_config
    - pysqlite_check_thread
    - pysqlite_check_connection
    - set_error_from_db
    - PyErr_Format
    - 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:2566,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2567,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2567,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_sqlite/connection.c:2576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2563
    functionDepth: 2
    functionLinenumber: 2563
    functionLinenumberEnd: 2577
    functionName: get_autocommit
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 4
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyLong_FromLong
    - _pysqlite_Connection_CAST
    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:2582,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/connection.c:2583,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/connection.c:2583,1
    - Dst: autocommit_converter
      Src: /src/cpython/Modules/_sqlite/connection.c:2586,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:2590,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:2591,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/connection.c:2597,1
    - Dst: connection_exec_stmt
      Src: /src/cpython/Modules/_sqlite/connection.c:2598,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - op
    - val
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2579
    functionDepth: 2
    functionLinenumber: 2579
    functionLinenumberEnd: 2604
    functionName: set_autocommit
    functionSourceFile: /src/cpython/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - connection_exec_stmt
    - pysqlite_check_connection
    - _pysqlite_Connection_CAST
    - sqlite3_get_autocommit
    - autocommit_converter
    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:2609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2606
    functionDepth: 1
    functionLinenumber: 2606
    functionLinenumberEnd: 2610
    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:2700,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/connection.c:2704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2707
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:67,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: get_module_state_by_cursor
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_get_state_by_type
    - Py_TYPE
    linkageType: ''
    returnType: pysqlite_state
    signature: 'pysqlite_state *

      get_module_state_by_cursor(pysqlite_Cursor *cursor)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_cursor
      Src: /src/cpython/Modules/_sqlite/cursor.c:75,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:77,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:77,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:78,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:79,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:80,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:83,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:83,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cursor
    - error_message
    - chain_exceptions
    argTypes:
    - pysqlite_Cursor*
    - char*
    - int
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 86
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 86
    functionName: cursor_sqlite3_internal_error
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyErr_ChainExceptions1
    - PyErr_Occurred
    - assert
    - PyErr_GetRaisedException
    - get_module_state_by_cursor
    linkageType: ''
    returnType: void
    signature: "void cursor_sqlite3_internal_error(pysqlite_Cursor *cursor,\n                              const
      char *error_message,\n                              int chain_exceptions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cursor_sqlite3_internal_error
      Src: /src/cpython/Modules/_sqlite/cursor.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cursor
    - chain_exceptions
    argTypes:
    - pysqlite_Cursor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: cursor_cannot_reset_stmt_error
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - cursor_sqlite3_internal_error
    linkageType: ''
    returnType: void
    signature: void cursor_cannot_reset_stmt_error(pysqlite_Cursor *cursor, int chain_exceptions)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor_locked
      Src: /src/cpython/Modules/_sqlite/cursor.c:115,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:119,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:120,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:121,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:122,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:124,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:125,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:127,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:128,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:134,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:135,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/cursor.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - self
    - connection
    argTypes:
    - pysqlite_Cursor*
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 144
    functionName: pysqlite_cursor_init_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - pysqlite_check_thread
    - Py_XSETREF
    - Py_CLEAR
    - check_cursor_locked
    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:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Statement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 158
    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:163,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:164,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:164,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:165,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:166,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:167,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:168,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:169,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_sqlite/cursor.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: cursor_traverse
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - _pysqlite_Cursor_CAST
    - Py_VISIT
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int cursor_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Cursor_CAST
      Src: /src/cpython/Modules/_sqlite/cursor.c:177,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:178,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:179,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:180,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:181,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:182,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:185,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:186,1
    - Dst: cursor_cannot_reset_stmt_error
      Src: /src/cpython/Modules/_sqlite/cursor.c:188,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_sqlite/cursor.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 194
    functionName: cursor_clear
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - cursor_cannot_reset_stmt_error
    - _pysqlite_Cursor_CAST
    - Py_CLEAR
    - stmt_reset
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: int
    signature: int cursor_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Cursor_CAST
      Src: /src/cpython/Modules/_sqlite/cursor.c:199,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:200,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/cursor.c:201,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Modules/_sqlite/cursor.c:202,1
    - Dst: PyTypeObject*::tp_clear
      Src: /src/cpython/Modules/_sqlite/cursor.c:203,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/cursor.c:204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: cursor_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_clear
    - _pysqlite_Cursor_CAST
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:216,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Modules/_sqlite/cursor.c:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:221,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_sqlite/cursor.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:227,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: 230
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 230
    functionName: _pysqlite_get_converter
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyDict_GetItemWithError
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pysqlite_get_converter(pysqlite_state *state, const char
      *keystr,\n                        Py_ssize_t keylen)"
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:244,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:244,1
    - Dst: sqlite3_column_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:249,1
    - Dst: sqlite3_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:253,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:255,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:256,1
    - Dst: _pysqlite_get_converter
      Src: /src/cpython/Modules/_sqlite/cursor.c:266,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:268,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:269,1
    - Dst: sqlite3_column_decltype
      Src: /src/cpython/Modules/_sqlite/cursor.c:278,1
    - Dst: if
      Src: /src/cpython/Modules/_sqlite/cursor.c:285,1
    - Dst: _pysqlite_get_converter
      Src: /src/cpython/Modules/_sqlite/cursor.c:287,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:289,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:290,1
    - Dst: if
      Src: /src/cpython/Modules/_sqlite/cursor.c:303,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:303,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:304,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:330,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:332,1
    - Dst: sqlite3_data_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:355,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:358,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:366,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:368,1
    - Dst: sqlite3_column_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:381,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:383,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:384,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:387,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:390,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:391,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/cursor.c:395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:396,1
    - Dst: sqlite3_column_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:400,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:403,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_sqlite/cursor.c:405,1
    - Dst: sqlite3_column_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:405,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_sqlite/cursor.c:407,1
    - Dst: sqlite3_column_double
      Src: /src/cpython/Modules/_sqlite/cursor.c:407,1
    - Dst: sqlite3_column_text
      Src: /src/cpython/Modules/_sqlite/cursor.c:409,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:410,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:411,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:415,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:417,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/cursor.c:418,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/cursor.c:419,1
    - Dst: sqlite3_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:420,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:422,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_sqlite/cursor.c:425,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_sqlite/cursor.c:427,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:427,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:431,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_sqlite/cursor.c:433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:434,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:438,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:440,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_sqlite/cursor.c:442,1
    - Dst: sqlite3_column_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:446,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:447,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:448,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:452,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:453,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:460,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:469,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:481,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:481,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:482,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:487,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:488,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:491,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/cursor.c:496,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/cursor.c:497,1
    - Dst: check_cursor_locked
      Src: /src/cpython/Modules/_sqlite/cursor.c:498,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:504,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:511,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:512,1
    - Dst: strcat
      Src: /src/cpython/Modules/_sqlite/cursor.c:514,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/cursor.c:515,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:517,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/cursor.c:518,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:523,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/cursor.c:536,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:545,1
    - Dst: sqlite3_bind_null
      Src: /src/cpython/Modules/_sqlite/cursor.c:561,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:565,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:567,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:569,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:571,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:573,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:575,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_sqlite/cursor.c:577,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:585,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:586,1
    - Dst: sqlite3_bind_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:588,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/cursor.c:592,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:593,1
    - Dst: sqlite3_bind_double
      Src: /src/cpython/Modules/_sqlite/cursor.c:595,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:604,1
    - Dst: sqlite3_bind_text
      Src: /src/cpython/Modules/_sqlite/cursor.c:608,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/cursor.c:612,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:616,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/cursor.c:618,1
    - Dst: sqlite3_bind_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:621,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/cursor.c:622,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:626,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:628,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:644,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:644,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:645,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:645,1
    - Dst: sqlite3_bind_parameter_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:665,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:670,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:671,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:672,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:673,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_sqlite/cursor.c:675,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:681,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:688,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:690,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:698,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:699,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:700,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:701,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_sqlite/cursor.c:702,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:703,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_sqlite/cursor.c:705,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:711,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:718,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:725,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:728,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:729,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:730,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:731,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:739,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:742,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_sqlite/cursor.c:750,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:757,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:763,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:770,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:777,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:780,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:781,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:782,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:783,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:788,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 333
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts:
    - condition: (cur->connection != NULL)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (len <= 9)
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (cur->connection->state != NULL)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (self->isolation_level != NULL)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 791
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 791
    functionName: pysqlite_build_row_cast_map
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - sqlite3_db_handle
    - PyUnicode_Decode
    - sqlite3_bind_parameter_count
    - PyUnicode_FromStringAndSize
    - pysqlite_check_connection
    - PyLong_Check
    - pysqlite_get_state_by_type
    - PySequence_Check
    - PyErr_SetString
    - sqlite3_bind_null
    - PyTuple_SET_ITEM
    - sqlite3_column_blob
    - Py_DECREF
    - sqlite3_column_text
    - PyTuple_New
    - sqlite3_bind_double
    - Py_XSETREF
    - need_adapt
    - Py_CLEAR
    - sqlite3_data_count
    - sqlite3_column_bytes
    - pysqlite_check_thread
    - PyList_GET_ITEM
    - sqlite3_prepare_v2
    - PyUnicode_AsUTF8AndSize
    - assert
    - PyUnicode_Check
    - sqlite3_column_count
    - PyMapping_GetOptionalItemString
    - PyObject_CheckBuffer
    - sqlite3_column_name
    - PyFloat_AsDouble
    - _pysqlite_get_converter
    - PyObject_CallFunction
    - PyErr_GetRaisedException
    - sqlite3_bind_text
    - PyOS_snprintf
    - PyByteArray_FromStringAndSize
    - sqlite3_errcode
    - set_error_from_db
    - PyDict_Check
    - PyByteArray_CheckExact
    - PyList_GET_SIZE
    - sqlite3_bind_int64
    - sqlite3_finalize
    - _pysqlite_long_as_int64
    - sqlite3_column_decltype
    - PyObject_GetBuffer
    - Py_TYPE
    - PyLong_FromLongLong
    - check_cursor_locked
    - PyFloat_CheckExact
    - PyList_Append
    - sqlite3_bind_parameter_name
    - PyTuple_CheckExact
    - bind_param
    - PyFloat_Check
    - PyList_GetItem
    - Py_NewRef
    - sqlite3_step
    - PyObject_Vectorcall
    - PyUnicode_CheckExact
    - PyBuffer_Release
    - PyList_CheckExact
    - strcat
    - PyTuple_GET_ITEM
    - PyFloat_FromDouble
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_XNewRef
    - sqlite3_bind_blob
    - sqlite3_column_double
    - PyErr_NoMemory
    - PyErr_SetObject
    - _PyErr_ChainExceptions1
    - PyList_New
    - strlen
    - sqlite3_column_int64
    - sqlite3_column_type
    - pysqlite_microprotocols_adapt
    - PySequence_GetItem
    - PyLong_CheckExact
    - PyErr_Clear
    - if
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PySequence_Size
    - PyObject_CallOneArg
    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:330,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - colname
    argTypes:
    - pysqlite_Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 333
    functionName: _pysqlite_build_column_name
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_build_column_name(pysqlite_Cursor *self, const char *colname)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_data_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:355,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:358,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:366,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:368,1
    - Dst: sqlite3_column_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:381,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:383,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:384,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:387,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:390,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:391,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_sqlite/cursor.c:395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:396,1
    - Dst: sqlite3_column_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:400,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:403,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_sqlite/cursor.c:405,1
    - Dst: sqlite3_column_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:405,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_sqlite/cursor.c:407,1
    - Dst: sqlite3_column_double
      Src: /src/cpython/Modules/_sqlite/cursor.c:407,1
    - Dst: sqlite3_column_text
      Src: /src/cpython/Modules/_sqlite/cursor.c:409,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:410,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:411,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:415,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:417,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_sqlite/cursor.c:418,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/cursor.c:419,1
    - Dst: sqlite3_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:420,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:422,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Modules/_sqlite/cursor.c:425,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Modules/_sqlite/cursor.c:427,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:427,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:431,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_sqlite/cursor.c:433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:434,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:438,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:440,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_sqlite/cursor.c:442,1
    - Dst: sqlite3_column_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:446,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:447,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:448,1
    - Dst: sqlite3_column_bytes
      Src: /src/cpython/Modules/_sqlite/cursor.c:452,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:453,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:460,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 461
    functionName: _pysqlite_fetch_one_row
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyFloat_FromDouble
    - PyList_GET_ITEM
    - PyUnicode_Decode
    - PyUnicode_FromStringAndSize
    - sqlite3_column_double
    - PyErr_NoMemory
    - PyErr_SetObject
    - PyLong_FromLongLong
    - strlen
    - sqlite3_column_int64
    - sqlite3_column_type
    - sqlite3_column_name
    - PyErr_SetString
    - PyObject_CallFunction
    - PyErr_Clear
    - PyTuple_SET_ITEM
    - sqlite3_column_blob
    - Py_DECREF
    - sqlite3_column_text
    - Py_NewRef
    - PyTuple_New
    - sqlite3_column_bytes
    - PyOS_snprintf
    - PyByteArray_FromStringAndSize
    - sqlite3_errcode
    - PyErr_ExceptionMatches
    - sqlite3_data_count
    - PyList_GET_SIZE
    - PyObject_CallOneArg
    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:481,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:481,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:482,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:487,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:488,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:491,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/cursor.c:496,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/cursor.c:497,1
    - Dst: check_cursor_locked
      Src: /src/cpython/Modules/_sqlite/cursor.c:498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - cur
    argTypes:
    - pysqlite_Cursor*
    assertStmts:
    - condition: (cur->connection->state != NULL)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (cur->connection != NULL)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 499
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 499
    functionName: check_cursor
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - pysqlite_check_connection
    - PyErr_SetString
    - pysqlite_get_state_by_type
    - check_cursor_locked
    - assert
    - 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:504,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:511,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:512,1
    - Dst: strcat
      Src: /src/cpython/Modules/_sqlite/cursor.c:514,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/cursor.c:515,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:517,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/cursor.c:518,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts:
    - condition: (self->isolation_level != NULL)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (len <= 9)
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 528
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 528
    functionName: begin_transaction
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - strcat
    - sqlite3_step
    - sqlite3_finalize
    - set_error_from_db
    - sqlite3_prepare_v2
    - strlen
    - 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:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - operation
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 537
    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:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - statement
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 549
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_null
      Src: /src/cpython/Modules/_sqlite/cursor.c:561,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:565,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:567,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:569,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:571,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:573,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:575,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Modules/_sqlite/cursor.c:577,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:585,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:586,1
    - Dst: sqlite3_bind_int64
      Src: /src/cpython/Modules/_sqlite/cursor.c:588,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/cursor.c:592,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:593,1
    - Dst: sqlite3_bind_double
      Src: /src/cpython/Modules/_sqlite/cursor.c:595,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/cursor.c:599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:604,1
    - Dst: sqlite3_bind_text
      Src: /src/cpython/Modules/_sqlite/cursor.c:608,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/cursor.c:612,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:616,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/cursor.c:618,1
    - Dst: sqlite3_bind_blob
      Src: /src/cpython/Modules/_sqlite/cursor.c:621,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/cursor.c:622,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:626,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:628,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 4
    argNames:
    - state
    - self
    - pos
    - parameter
    argTypes:
    - pysqlite_state*
    - pysqlite_Statement*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 634
    functionName: bind_param
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 1
    functionsReached:
    - sqlite3_bind_int64
    - _pysqlite_long_as_int64
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - PyObject_GetBuffer
    - Py_TYPE
    - sqlite3_bind_blob
    - PyUnicode_Check
    - PyLong_Check
    - PyFloat_CheckExact
    - PyObject_CheckBuffer
    - PyFloat_AsDouble
    - PyErr_SetString
    - PyFloat_Check
    - PyLong_CheckExact
    - sqlite3_bind_null
    - sqlite3_bind_text
    - sqlite3_bind_double
    - PyUnicode_CheckExact
    - PyBuffer_Release
    - PyErr_Format
    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:644,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:644,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:645,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:645,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - state
    - obj
    argTypes:
    - pysqlite_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 650
    functionName: need_adapt
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CheckExact
    - PyLong_CheckExact
    - PyFloat_CheckExact
    - PyByteArray_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:665,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: PySequence_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:668,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:670,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:671,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:672,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/cursor.c:673,1
    - Dst: PySequence_Size
      Src: /src/cpython/Modules/_sqlite/cursor.c:675,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:681,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:688,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:690,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:698,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:699,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:700,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Modules/_sqlite/cursor.c:701,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_sqlite/cursor.c:702,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:703,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/_sqlite/cursor.c:705,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:711,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:718,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:725,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:728,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:729,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:730,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:731,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:739,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:742,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_sqlite/cursor.c:750,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:757,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:763,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:770,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:777,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:780,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:781,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:782,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:783,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:788,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 3
    argNames:
    - state
    - self
    - parameters
    argTypes:
    - pysqlite_state*
    - pysqlite_Statement*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 790
    functionName: bind_parameters
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - sqlite3_db_handle
    - PyTuple_GET_SIZE
    - Py_XNewRef
    - sqlite3_bind_parameter_count
    - _PyErr_ChainExceptions1
    - PyMapping_GetOptionalItemString
    - sqlite3_bind_parameter_name
    - PyTuple_CheckExact
    - PySequence_Check
    - pysqlite_microprotocols_adapt
    - PyErr_SetString
    - bind_param
    - PySequence_GetItem
    - Py_DECREF
    - PyList_GetItem
    - PyErr_GetRaisedException
    - Py_NewRef
    - set_error_from_db
    - need_adapt
    - PyDict_Check
    - PySequence_Size
    - PyErr_Format
    - PyList_CheckExact
    - PyList_GET_SIZE
    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:739,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:742,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Modules/_sqlite/cursor.c:750,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/cursor.c:757,1
    - Dst: need_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:763,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/cpython/Modules/_sqlite/cursor.c:767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:770,1
    - Dst: bind_param
      Src: /src/cpython/Modules/_sqlite/cursor.c:776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:777,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/cursor.c:780,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:781,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:782,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/cursor.c:783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 787
    functionName: if
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 2
    functionsReached:
    - pysqlite_microprotocols_adapt
    - bind_param
    - set_error_from_db
    - need_adapt
    - _PyErr_ChainExceptions1
    - PyErr_GetRaisedException
    - sqlite3_db_handle
    - PyErr_Format
    - PyMapping_GetOptionalItemString
    - sqlite3_bind_parameter_name
    - Py_DECREF
    linkageType: ''
    returnType: else
    signature: else if (PyDict_Check(parameters))
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor
      Src: /src/cpython/Modules/_sqlite/cursor.c:804,1
    - Dst: PyIter_Check
      Src: /src/cpython/Modules/_sqlite/cursor.c:811,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:813,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_sqlite/cursor.c:816,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:822,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:828,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:833,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:839,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Modules/_sqlite/cursor.c:841,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:848,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:849,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:853,1
    - Dst: get_statement_from_cache
      Src: /src/cpython/Modules/_sqlite/cursor.c:858,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:859,1
    - Dst: sqlite3_stmt_readonly
      Src: /src/cpython/Modules/_sqlite/cursor.c:865,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:866,1
    - Dst: sqlite3_stmt_busy
      Src: /src/cpython/Modules/_sqlite/cursor.c:871,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:872,1
    - Dst: pysqlite_statement_create
      Src: /src/cpython/Modules/_sqlite/cursor.c:873,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:879,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/cursor.c:889,1
    - Dst: begin_transaction
      Src: /src/cpython/Modules/_sqlite/cursor.c:891,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:896,1
    - Dst: sqlite3_stmt_busy
      Src: /src/cpython/Modules/_sqlite/cursor.c:896,1
    - Dst: PyIter_Next
      Src: /src/cpython/Modules/_sqlite/cursor.c:898,1
    - Dst: bind_parameters
      Src: /src/cpython/Modules/_sqlite/cursor.c:903,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:904,1
    - Dst: stmt_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:908,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:910,1
    - Dst: PyErr_Print
      Src: /src/cpython/Modules/_sqlite/cursor.c:913,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/cursor.c:915,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:918,1
    - Dst: pysqlite_build_row_cast_map
      Src: /src/cpython/Modules/_sqlite/cursor.c:922,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Modules/_sqlite/cursor.c:923,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:928,1
    - Dst: sqlite3_column_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:930,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:933,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:933,1
    - Dst: sqlite3_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:939,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_sqlite/cursor.c:941,1
    - Dst: _pysqlite_build_column_name
      Src: /src/cpython/Modules/_sqlite/cursor.c:944,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_sqlite/cursor.c:948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:951,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_sqlite/cursor.c:955,1
    - Dst: sqlite3_changes
      Src: /src/cpython/Modules/_sqlite/cursor.c:961,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:963,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:967,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/cpython/Modules/_sqlite/cursor.c:974,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_sqlite/cursor.c:977,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:982,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:983,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:984,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:988,1
    - Dst: sqlite3_db_handle
      Src: /src/cpython/Modules/_sqlite/cursor.c:990,1
    - Dst: sqlite3_errcode
      Src: /src/cpython/Modules/_sqlite/cursor.c:991,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:994,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:995,1
    - Dst: cursor_cannot_reset_stmt_error
      Src: /src/cpython/Modules/_sqlite/cursor.c:997,1
    - Dst: sqlite3_stmt_busy
      Src: /src/cpython/Modules/_sqlite/cursor.c:1003,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:1004,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:1006,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:1010,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:1010,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1012,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1013,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1014,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:1018,1
    - Dst: cursor_cannot_reset_stmt_error
      Src: /src/cpython/Modules/_sqlite/cursor.c:1019,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 179
    argCount: 4
    argNames:
    - self
    - multiple
    - operation
    - second_argument
    argTypes:
    - pysqlite_Cursor*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1009
        line_start: 1009
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (!sqlite3_stmt_busy(self->statement->st))
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (rc == SQLITE_ROW || rc == SQLITE_DONE)
      pos:
        line_end: 927
        line_start: 927
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 1021
      start: 793
    functionDepth: 4
    functionLinenumber: 793
    functionLinenumberEnd: 1021
    functionName: _pysqlite_query_execute
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 2
    functionsReached:
    - _pysqlite_build_column_name
    - PyIter_Check
    - PyObject_GetIter
    - sqlite3_db_handle
    - PyErr_Occurred
    - assert
    - _PyErr_FormatFromCause
    - PyIter_Next
    - PyErr_NoMemory
    - PyLong_FromLongLong
    - get_statement_from_cache
    - stmt_reset
    - PyList_New
    - sqlite3_column_count
    - PyList_Append
    - Py_XDECREF
    - pysqlite_build_row_cast_map
    - sqlite3_last_insert_rowid
    - check_cursor
    - cursor_cannot_reset_stmt_error
    - Py_INCREF
    - sqlite3_stmt_busy
    - sqlite3_column_name
    - PyErr_SetString
    - PyErr_Clear
    - PyTuple_SET_ITEM
    - begin_transaction
    - Py_DECREF
    - sqlite3_changes
    - Py_NewRef
    - PyTuple_New
    - PyErr_Print
    - bind_parameters
    - pysqlite_statement_create
    - stmt_step
    - Py_XSETREF
    - sqlite3_errcode
    - Py_SETREF
    - set_error_from_db
    - Py_CLEAR
    - sqlite3_stmt_readonly
    - PyTuple_Pack
    - sqlite3_get_autocommit
    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:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - sql
    - parameters
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1033
    functionDepth: 5
    functionLinenumber: 1033
    functionLinenumberEnd: 1039
    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:1056,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: 1057
      start: 1051
    functionDepth: 5
    functionLinenumber: 1051
    functionLinenumberEnd: 1057
    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:1073,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/cursor.c:1077,1
    - Dst: sqlite3_limit
      Src: /src/cpython/Modules/_sqlite/cursor.c:1078,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:1081,1
    - Dst: sqlite3_get_autocommit
      Src: /src/cpython/Modules/_sqlite/cursor.c:1089,1
    - Dst: sqlite3_exec
      Src: /src/cpython/Modules/_sqlite/cursor.c:1094,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/cursor.c:1108,1
    - Dst: sqlite3_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:1112,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/cursor.c:1114,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_sqlite/cursor.c:1129,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:1132,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - self
    - sql_script
    argTypes:
    - pysqlite_Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1068
    functionDepth: 3
    functionLinenumber: 1068
    functionLinenumberEnd: 1134
    functionName: pysqlite_cursor_executescript_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - PyErr_SetString
    - sqlite3_exec
    - sqlite3_finalize
    - sqlite3_prepare_v2
    - set_error_from_db
    - strlen
    - sqlite3_get_autocommit
    - sqlite3_limit
    - Py_NewRef
    - check_cursor
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npysqlite_cursor_executescript_impl(pysqlite_Cursor *self,\n
      \                                  const char *sql_script)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Cursor_CAST
      Src: /src/cpython/Modules/_sqlite/cursor.c:1139,1
    - Dst: check_cursor
      Src: /src/cpython/Modules/_sqlite/cursor.c:1140,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:1149,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/cursor.c:1150,1
    - Dst: sqlite3_data_count
      Src: /src/cpython/Modules/_sqlite/cursor.c:1150,1
    - Dst: _pysqlite_fetch_one_row
      Src: /src/cpython/Modules/_sqlite/cursor.c:1153,1
    - Dst: stmt_step
      Src: /src/cpython/Modules/_sqlite/cursor.c:1158,1
    - Dst: sqlite3_changes
      Src: /src/cpython/Modules/_sqlite/cursor.c:1161,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:1163,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:1164,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/cursor.c:1170,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:1171,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:1172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1173,1
    - Dst: Py_IsNone
      Src: /src/cpython/Modules/_sqlite/cursor.c:1179,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_sqlite/cursor.c:1182,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1183,1
    - Dst: cursor_cannot_reset_stmt_error
      Src: /src/cpython/Modules/_sqlite/cursor.c:1188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (stmt != NULL)
      pos:
        line_end: 1148
        line_start: 1148
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    - condition: (sqlite3_data_count(stmt) != 0)
      pos:
        line_end: 1149
        line_start: 1149
        source_file: /src/cpython/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 1190
      start: 1136
    functionDepth: 4
    functionLinenumber: 1136
    functionLinenumberEnd: 1190
    functionName: pysqlite_cursor_iternext
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - cursor_cannot_reset_stmt_error
    - stmt_step
    - PyObject_Vectorcall
    - set_error_from_db
    - Py_SETREF
    - _pysqlite_Cursor_CAST
    - stmt_reset
    - Py_CLEAR
    - Py_IsNone
    - assert
    - sqlite3_data_count
    - sqlite3_changes
    - Py_DECREF
    - _pysqlite_fetch_one_row
    - check_cursor
    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:1204,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:1205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1198
    functionDepth: 5
    functionLinenumber: 1198
    functionLinenumberEnd: 1210
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:1228,1
    - Dst: pysqlite_cursor_iternext
      Src: /src/cpython/Modules/_sqlite/cursor.c:1233,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:1234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1235,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:1242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - maxrows
    argTypes:
    - pysqlite_Cursor*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1221
    functionDepth: 5
    functionLinenumber: 1221
    functionLinenumberEnd: 1248
    functionName: pysqlite_cursor_fetchmany_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_iternext
    - PyList_New
    - PyErr_Occurred
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_fetchmany_impl(pysqlite_Cursor *self, uint32_t maxrows)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_sqlite/cursor.c:1263,1
    - Dst: pysqlite_cursor_iternext
      Src: /src/cpython/Modules/_sqlite/cursor.c:1268,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_sqlite/cursor.c:1269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1270,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1273,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/cursor.c:1276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/cursor.c:1277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1256
    functionDepth: 5
    functionLinenumber: 1256
    functionLinenumberEnd: 1282
    functionName: pysqlite_cursor_fetchall_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_iternext
    - PyList_New
    - PyErr_Occurred
    - PyList_Append
    - Py_DECREF
    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: 1298
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1298
    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: 1316
      start: 1310
    functionDepth: 0
    functionLinenumber: 1310
    functionLinenumberEnd: 1316
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor_locked
      Src: /src/cpython/Modules/_sqlite/cursor.c:1328,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/cursor.c:1333,1
    - Dst: pysqlite_get_state_by_type
      Src: /src/cpython/Modules/_sqlite/cursor.c:1334,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/cursor.c:1335,1
    - Dst: pysqlite_check_thread
      Src: /src/cpython/Modules/_sqlite/cursor.c:1339,1
    - Dst: pysqlite_check_connection
      Src: /src/cpython/Modules/_sqlite/cursor.c:1339,1
    - Dst: stmt_reset
      Src: /src/cpython/Modules/_sqlite/cursor.c:1344,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_sqlite/cursor.c:1348,1
    - Dst: cursor_cannot_reset_stmt_error
      Src: /src/cpython/Modules/_sqlite/cursor.c:1350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1324
    functionDepth: 4
    functionLinenumber: 1324
    functionLinenumberEnd: 1358
    functionName: pysqlite_cursor_close_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - cursor_cannot_reset_stmt_error
    - pysqlite_check_thread
    - pysqlite_check_connection
    - PyErr_SetString
    - stmt_reset
    - check_cursor_locked
    - pysqlite_get_state_by_type
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_close_impl(pysqlite_Cursor *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUInt32
      Src: /src/cpython/Modules/_sqlite/cursor.c:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1370
    functionName: _sqlite3_Cursor_arraysize_get_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUInt32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sqlite3_Cursor_arraysize_get_impl(pysqlite_Cursor *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUInt32
      Src: /src/cpython/Modules/_sqlite/cursor.c:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1382
    functionName: _sqlite3_Cursor_arraysize_set_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUInt32
    linkageType: ''
    returnType: int
    signature: int _sqlite3_Cursor_arraysize_set_impl(pysqlite_Cursor *self, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_sqlite/cursor.c:1441,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/cursor.c:1445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1448
    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: 7
    functionsReached:
    - pysqlite_get_state
    - PyType_GetModuleByDef
    - assert
    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:
    - Py_CLEAR
    - _pysqlite_Row_CAST
    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:
    - _pysqlite_Row_CAST
    - Py_VISIT
    - Py_TYPE
    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
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:
    - PyObject_RichCompareBool
    - PyUnicode_1BYTE_DATA
    - PyUnicode_IS_ASCII
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - Py_TOLOWER
    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:
    - equal_ignore_case
    - PySlice_Check
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyUnicode_Check
    - PyObject_GetItem
    - PyTuple_GetItem
    - PyLong_Check
    - _pysqlite_Row_CAST
    - Py_IsNone
    - PyErr_Occurred
    - PyErr_Format
    - PyTuple_GET_SIZE
    - Py_XNewRef
    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:
    - _pysqlite_Row_CAST
    - PyTuple_GET_SIZE
    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:
    - PyTuple_GET_ITEM
    - Py_IsNone
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - PyTuple_GET_SIZE
    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_RichCompareBool
    - _pysqlite_Row_CAST
    - pysqlite_get_state_by_type
    - PyBool_FromLong
    - PyObject_RichCompare
    - 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:
    - PyUnicode_FromString
    - PyLong_FromLong
    - PyUnicode_InternFromString
    - PyErr_SetObject
    - PyObject_Vectorcall
    - pysqlite_error_name
    - PyObject_SetAttrString
    - Py_XDECREF
    - Py_DECREF
    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
    - sqlite3_errstr
    - assert
    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: 6
    argCount: 2
    argNames:
    - state
    - db
    argTypes:
    - pysqlite_state*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: set_error_from_db
    functionSourceFile: /src/cpython/Modules/_sqlite/util.c
    functionUses: 15
    functionsReached:
    - sqlite3_errcode
    - raise_exception
    - sqlite3_errmsg
    - get_exception_class
    - sqlite3_extended_errcode
    linkageType: ''
    returnType: int
    signature: int set_error_from_db(pysqlite_state *state, sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Modules/_sqlite/util.c:166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/util.c:167,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/_sqlite/util.c:177,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/util.c:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - py_val
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 186
    functionName: _pysqlite_long_as_int64
    functionSourceFile: /src/cpython/Modules/_sqlite/util.c
    functionUses: 4
    functionsReached:
    - PyErr_SetString
    - _PyLong_AsByteArray
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    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_ITEM
    - PyObject_Vectorcall
    - PyUnicode_EqualToUTF8
    - pysqlite_get_state
    - PyErr_Format
    - PyTuple_GET_SIZE
    - 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:
    - PyDict_SetItem
    - pysqlite_get_state
    - Py_XDECREF
    - 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:
    - PyModule_AddObjectRef
    - pysqlite_get_state
    - PyDict_New
    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:
    - sqlite3_keyword_name
    - set_error_from_code
    - PyTuple_SET_ITEM
    - pysqlite_get_state
    - PyModule_Add
    - Py_DECREF
    - sqlite3_keyword_count
    - PyTuple_New
    - PyUnicode_FromStringAndSize
    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:
    - Py_VISIT
    - pysqlite_get_state
    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:
    - Py_CLEAR
    - pysqlite_get_state
    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
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 673
    functionDepth: 4
    functionLinenumber: 673
    functionLinenumberEnd: 778
    functionName: module_exec
    functionSourceFile: /src/cpython/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - add_integer_constants
    - pysqlite_row_setup_types
    - get_threadsafety
    - ADD_TYPE
    - pysqlite_microprotocols_init
    - add_error_constants
    - ADD_EXCEPTION
    - sqlite3_libversion
    - load_functools_lru_cache
    - PyModule_AddIntMacro
    - add_keyword_tuple
    - PyErr_SetString
    - pysqlite_blob_setup_types
    - pysqlite_get_state
    - converters_init
    - ADD_INTERNED
    - PyModule_AddIntConstant
    - sqlite3_errstr
    - PyModule_AddStringConstant
    - sqlite3_libversion_number
    - pysqlite_connection_setup_types
    - sqlite3_initialize
    - pysqlite_cursor_setup_types
    - pysqlite_prepare_protocol_setup_types
    - pysqlite_statement_setup_types
    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: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    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_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:
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: _pysqlite_Statement_CAST
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _pysqlite_Statement_CAST(op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/statement.c:44,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/statement.c:44,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/statement.c:46,1
    - Dst: sqlite3_limit
      Src: /src/cpython/Modules/_sqlite/statement.c:52,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/statement.c:54,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/statement.c:58,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/statement.c:59,1
    - Dst: sqlite3_prepare_v2
      Src: /src/cpython/Modules/_sqlite/statement.c:68,1
    - Dst: set_error_from_db
      Src: /src/cpython/Modules/_sqlite/statement.c:72,1
    - Dst: lstrip_sql
      Src: /src/cpython/Modules/_sqlite/statement.c:76,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/statement.c:77,1
    - Dst: lstrip_sql
      Src: /src/cpython/Modules/_sqlite/statement.c:85,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/_sqlite/statement.c:87,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/_sqlite/statement.c:88,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/_sqlite/statement.c:89,1
    - Dst: PyOS_strnicmp
      Src: /src/cpython/Modules/_sqlite/statement.c:90,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_sqlite/statement.c:93,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_sqlite/statement.c:102,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/statement.c:106,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/statement.c:106,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/statement.c:107,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_sqlite/statement.c:108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/statement.c:109,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_sqlite/statement.c:110,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - connection
    - sql
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(sql))
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/cpython/Modules/_sqlite/statement.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/cpython/Modules/_sqlite/statement.c
    constantsTouched: []
    func_position:
      end: 113
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 113
    functionName: pysqlite_statement_create
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - PyErr_SetString
    - sqlite3_finalize
    - set_error_from_db
    - PyUnicode_Check
    - sqlite3_prepare_v2
    - PyUnicode_AsUTF8AndSize
    - lstrip_sql
    - PyOS_strnicmp
    - _PyErr_ChainExceptions1
    - PyErr_GetRaisedException
    - strlen
    - assert
    - sqlite3_limit
    - PyErr_Occurred
    - PyObject_GC_Track
    linkageType: ''
    returnType: pysqlite_Statement
    signature: 'pysqlite_Statement *

      pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_Statement_CAST
      Src: /src/cpython/Modules/_sqlite/statement.c:118,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/statement.c:119,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_sqlite/statement.c:120,1
    - Dst: sqlite3_finalize
      Src: /src/cpython/Modules/_sqlite/statement.c:124,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_sqlite/statement.c:128,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/statement.c:128,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/statement.c:129,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_sqlite/statement.c:130,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_sqlite/statement.c:133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/statement.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: stmt_dealloc
    functionSourceFile: /src/cpython/Modules/_sqlite/statement.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - sqlite3_finalize
    - PyType_GetModuleState
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - _pysqlite_Statement_CAST
    - Py_DECREF
    - PyErr_FormatUnraisable
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void stmt_dealloc(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - sql
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 193
    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:212,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/statement.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 219
    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:
    - PyModule_AddObjectRef
    - pysqlite_get_state
    - PyDict_New
    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:
    - PyDict_SetItem
    - Py_DECREF
    - PyTuple_Pack
    - assert
    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:
    - PyErr_SetString
    - PyObject_GetOptionalAttr
    - PyErr_Clear
    - PyTuple_Pack
    - PyErr_ExceptionMatches
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_NewRef
    - Py_TYPE
    - PyObject_CallOneArg
    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_VISIT
    - Py_TYPE
    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:
    - Py_CLEAR
    - _pysqlite_Blob_CAST
    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:
    - close_blob
    - PyTypeObject*::tp_clear
    - _pysqlite_Blob_CAST
    - PyTypeObject*::tp_free
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:
    - PyErr_SetString
    - pysqlite_check_thread
    - pysqlite_check_connection
    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:
    - close_blob
    - pysqlite_check_thread
    - pysqlite_check_connection
    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:
    - close_blob
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    - 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: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:121,1
    - Dst: set_error_from_code
      Src: /src/cpython/Modules/_sqlite/blob.c:122,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:123,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/blob.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    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
    - condition: (rc != SQLITE_OK)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/cpython/Modules/_sqlite/blob.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Modules/_sqlite/blob.c
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: blob_seterror
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - set_error_from_code
    - PyErr_Occurred
    - 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:132,1
    - Dst: blob_seterror
      Src: /src/cpython/Modules/_sqlite/blob.c:136,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_sqlite/blob.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - offset
    argTypes:
    - pysqlite_Blob*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: read_single
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - blob_seterror
    - sqlite3_blob_read
    - PyLong_FromUnsignedLong
    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:145,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:145,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:146,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:146,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_sqlite/blob.c:148,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_sqlite/blob.c:152,1
    - Dst: sqlite3_blob_read
      Src: /src/cpython/Modules/_sqlite/blob.c:156,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_sqlite/blob.c:160,1
    - Dst: blob_seterror
      Src: /src/cpython/Modules/_sqlite/blob.c:161,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_sqlite/blob.c:164,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: 144
        line_start: 144
        source_file: /src/cpython/Modules/_sqlite/blob.c
    - condition: (offset < sqlite3_blob_bytes(self->blob))
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/cpython/Modules/_sqlite/blob.c
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: read_multiple
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_read
    - PyBytesWriter_Create
    - blob_seterror
    - PyBytesWriter_Discard
    - PyBytesWriter_Finish
    - sqlite3_blob_bytes
    - assert
    - PyBytesWriter_GetData
    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:186,1
    - Dst: sqlite3_blob_bytes
      Src: /src/cpython/Modules/_sqlite/blob.c:192,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:198,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/_sqlite/blob.c:200,1
    - Dst: read_multiple
      Src: /src/cpython/Modules/_sqlite/blob.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - pysqlite_Blob*
    - int
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Modules/_sqlite/blob.c
    constantsTouched: []
    func_position:
      end: 209
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 209
    functionName: blob_read_impl
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - read_multiple
    - Py_GetConstant
    - sqlite3_blob_bytes
    - assert
    - check_blob
    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:215,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:218,1
    - Dst: assert
      Src: /src/cpython/Modules/_sqlite/blob.c:222,1
    - Dst: sqlite3_blob_write
      Src: /src/cpython/Modules/_sqlite/blob.c:225,1
    - Dst: blob_seterror
      Src: /src/cpython/Modules/_sqlite/blob.c:229,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: 221
        line_start: 221
        source_file: /src/cpython/Modules/_sqlite/blob.c
    constantsTouched: []
    func_position:
      end: 233
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 233
    functionName: inner_write
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - blob_seterror
    - sqlite3_blob_write
    - sqlite3_blob_bytes
    - 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:
    - inner_write
    - check_blob
    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
    - sqlite3_blob_bytes
    - check_blob
    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:
    - PyLong_FromLong
    - check_blob
    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:
    - _pysqlite_Blob_CAST
    - sqlite3_blob_bytes
    - 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_SetString
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    - sqlite3_blob_bytes
    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:
    - read_single
    - get_subscript_index
    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
    - PySlice_Unpack
    - sqlite3_blob_bytes
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_slice_info
      Src: /src/cpython/Modules/_sqlite/blob.c:436,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_sqlite/blob.c:441,1
    - Dst: read_multiple
      Src: /src/cpython/Modules/_sqlite/blob.c:445,1
    - Dst: read_multiple
      Src: /src/cpython/Modules/_sqlite/blob.c:448,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_sqlite/blob.c:453,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/blob.c:455,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_sqlite/blob.c:458,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_sqlite/blob.c:460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/blob.c:464,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_sqlite/blob.c:465,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 432
    functionDepth: 5
    functionLinenumber: 432
    functionLinenumberEnd: 466
    functionName: subscript_slice
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - read_multiple
    - PyBytesWriter_GetData
    - PyBytes_FromStringAndSize
    - get_slice_info
    - PyBytesWriter_Create
    - PyBytesWriter_Finish
    - PyBytes_AS_STRING
    - Py_DECREF
    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:471,1
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:472,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:476,1
    - Dst: subscript_index
      Src: /src/cpython/Modules/_sqlite/blob.c:477,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:479,1
    - Dst: subscript_slice
      Src: /src/cpython/Modules/_sqlite/blob.c:480,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 468
    functionDepth: 6
    functionLinenumber: 468
    functionLinenumberEnd: 485
    functionName: blob_subscript
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - subscript_slice
    - PyErr_SetString
    - _pysqlite_Blob_CAST
    - subscript_index
    - check_blob
    - PyIndex_Check
    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:491,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:495,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_sqlite/blob.c:496,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/blob.c:498,1
    - Dst: get_subscript_index
      Src: /src/cpython/Modules/_sqlite/blob.c:501,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_sqlite/blob.c:506,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/blob.c:507,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_sqlite/blob.c:508,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:512,1
    - Dst: inner_write
      Src: /src/cpython/Modules/_sqlite/blob.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 487
    functionDepth: 5
    functionLinenumber: 487
    functionLinenumberEnd: 518
    functionName: ass_subscript_index
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - get_subscript_index
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Clear
    - PyErr_Format
    - PyErr_Occurred
    - inner_write
    - 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:524,1
    - Dst: get_slice_info
      Src: /src/cpython/Modules/_sqlite/blob.c:530,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/blob.c:539,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:545,1
    - Dst: inner_write
      Src: /src/cpython/Modules/_sqlite/blob.c:549,1
    - Dst: read_multiple
      Src: /src/cpython/Modules/_sqlite/blob.c:552,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_sqlite/blob.c:554,1
    - Dst: inner_write
      Src: /src/cpython/Modules/_sqlite/blob.c:558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_sqlite/blob.c:559,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/blob.c:562,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - pysqlite_Blob*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 520
    functionDepth: 5
    functionLinenumber: 520
    functionLinenumberEnd: 564
    functionName: ass_subscript_slice
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - read_multiple
    - get_slice_info
    - PyErr_SetString
    - PyBuffer_Release
    - PyBytes_AS_STRING
    - Py_DECREF
    - inner_write
    - PyObject_GetBuffer
    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:569,1
    - Dst: check_blob
      Src: /src/cpython/Modules/_sqlite/blob.c:570,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:574,1
    - Dst: ass_subscript_index
      Src: /src/cpython/Modules/_sqlite/blob.c:575,1
    - Dst: PySlice_Check
      Src: /src/cpython/Modules/_sqlite/blob.c:577,1
    - Dst: ass_subscript_slice
      Src: /src/cpython/Modules/_sqlite/blob.c:578,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/blob.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - op
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 566
    functionDepth: 6
    functionLinenumber: 566
    functionLinenumberEnd: 583
    functionName: blob_ass_subscript
    functionSourceFile: /src/cpython/Modules/_sqlite/blob.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - ass_subscript_slice
    - PyErr_SetString
    - ass_subscript_index
    - _pysqlite_Blob_CAST
    - check_blob
    - PyIndex_Check
    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:627,1
    - Dst: pysqlite_get_state
      Src: /src/cpython/Modules/_sqlite/blob.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 634
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - pysqlite_complete_statement_impl
    - strlen
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - pysqlite_register_converter_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:
    - PyLong_AsInt
    - pysqlite_enable_callback_trace_impl
    - PyErr_Occurred
    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:
    - clinic_state
    - pysqlite_adapt_impl
    - _PyArg_CheckPositional
    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:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state
    - _PyArg_BadArgument
    - pysqlite_row_new_impl
    - PyTuple_Check
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:20,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:23,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:24,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:25,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:28,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:28,1
    - Dst: PyObject_TypeCheck
      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: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:31,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:32,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:32,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:32,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:35,1
    - Dst: pysqlite_cursor_init_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:36,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: pysqlite_cursor_init
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - Py_IS_TYPE
    - clinic_state
    - _PyArg_BadArgument
    - pysqlite_cursor_init_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - 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:62,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:65,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:66,1
    - Dst: pysqlite_cursor_execute_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 79
    functionName: pysqlite_cursor_execute
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_execute_impl
    - _PyArg_CheckPositional
    - PyUnicode_Check
    - _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:101,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:104,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:105,1
    - Dst: pysqlite_cursor_executemany_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: pysqlite_cursor_executemany
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - pysqlite_cursor_executemany_impl
    - PyUnicode_Check
    - _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:135,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:136,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:140,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:144,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:145,1
    - Dst: pysqlite_cursor_executescript_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 152
    functionName: pysqlite_cursor_executescript
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_executescript_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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: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: 6
    functionLinenumber: 166
    functionLinenumberEnd: 170
    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:200,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:202,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:219,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:222,1
    - Dst: _PyLong_UInt32_Converter
      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: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 238
    functionName: pysqlite_cursor_fetchmany
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyLong_UInt32_Converter
    - PyTuple_GET_SIZE
    - pysqlite_cursor_fetchmany_impl
    - _Py_ID
    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: 6
    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: 5
    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: _sqlite3_Cursor_arraysize_get_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: _sqlite3_Cursor_arraysize_get
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - _sqlite3_Cursor_arraysize_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sqlite3_Cursor_arraysize_get(PyObject *self, void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sqlite3_Cursor_arraysize_set_impl
      Src: /src/cpython/Modules/_sqlite/clinic/cursor.c.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 373
    functionName: _sqlite3_Cursor_arraysize_set
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/cursor.c.h
    functionUses: 0
    functionsReached:
    - _sqlite3_Cursor_arraysize_set_impl
    linkageType: ''
    returnType: int
    signature: int _sqlite3_Cursor_arraysize_set(PyObject *self, PyObject *value,
      void *Py_UNUSED(context))
  - 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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - blob_read_impl
    - PyErr_Occurred
    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:
    - PyObject_GetBuffer
    - blob_write_impl
    - 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:126,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:129,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:130,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:136,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:137,1
    - Dst: blob_seek_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 145
    functionName: blob_seek
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - blob_seek_impl
    - PyErr_Occurred
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 163
    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:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 181
    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:204,1
    - Dst: blob_exit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/blob.c.h:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: blob_exit
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/blob.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - blob_exit_impl
    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
    - _PyTuple_CAST
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    - clinic_state
    - _PyArg_UnpackKeywords
    - PyFloat_AsDouble
    - PyLong_AsInt
    - PyObject_IsTrue
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - isolation_level_converter
    - autocommit_converter
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - pysqlite_connection_cursor_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - blobopen_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - sqlite3_int64_converter
    - _Py_ID
    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:
    - pysqlite_connection_create_function_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyLong_AsInt
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - create_window_function_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    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:
    - pysqlite_connection_create_aggregate_impl
    - PyLong_AsInt
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    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: 5
    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:718,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:720,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:740,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:746,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:747,1
    - Dst: pysqlite_connection_set_progress_handler_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:750,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: 754
      start: 705
    functionDepth: 5
    functionLinenumber: 705
    functionLinenumberEnd: 754
    functionName: pysqlite_connection_set_progress_handler
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - pysqlite_connection_set_progress_handler_impl
    - PyErr_Occurred
    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:790,1
    - Dst: pysqlite_connection_set_trace_callback_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:796,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: 800
      start: 770
    functionDepth: 5
    functionLinenumber: 770
    functionLinenumberEnd: 800
    functionName: pysqlite_connection_set_trace_callback
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_set_trace_callback_impl
    - _PyArg_UnpackKeywords
    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:823,1
    - Dst: pysqlite_connection_enable_load_extension_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 831
    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:864,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:866,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:883,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:887,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:892,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:893,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:897,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:901,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:902,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:911,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:913,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:917,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:918,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:923,1
    - Dst: pysqlite_connection_load_extension_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:927,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: 931
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 931
    functionName: pysqlite_connection_load_extension
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - pysqlite_connection_load_extension_impl
    - _Py_ID
    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:955,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:958,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:959,1
    - Dst: pysqlite_connection_execute_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:968,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 972
    functionName: pysqlite_connection_execute
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_execute_impl
    - _PyArg_CheckPositional
    - PyUnicode_Check
    - _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:994,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:997,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:998,1
    - Dst: pysqlite_connection_executemany_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 987
    functionDepth: 3
    functionLinenumber: 987
    functionLinenumberEnd: 1007
    functionName: pysqlite_connection_executemany
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - pysqlite_connection_executemany_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - script_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1022
    functionDepth: 3
    functionLinenumber: 1022
    functionLinenumberEnd: 1030
    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:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 3
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    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:1079,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1081,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1098,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1101,1
    - Dst: pysqlite_connection_iterdump_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1111,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: 1115
      start: 1066
    functionDepth: 3
    functionLinenumber: 1066
    functionLinenumberEnd: 1115
    functionName: pysqlite_connection_iterdump
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_iterdump_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1146,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1148,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1148,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1148,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1148,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1148,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1165,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1172,1
    - Dst: PyObject_TypeCheck
      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: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1178,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1178,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1186,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1187,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1201,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1202,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1206,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1210,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1211,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1218,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1219,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1223,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1224,1
    - Dst: pysqlite_connection_backup_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1229,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: 1233
      start: 1133
    functionDepth: 3
    functionLinenumber: 1133
    functionLinenumberEnd: 1233
    functionName: pysqlite_connection_backup
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyFloat_AS_DOUBLE
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - clinic_state
    - PyErr_SetString
    - PyFloat_AsDouble
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - pysqlite_connection_backup_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1271,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1276,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1277,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1281,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1286,1
    - Dst: pysqlite_connection_create_collation_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1290,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: 1294
      start: 1250
    functionDepth: 4
    functionLinenumber: 1250
    functionLinenumberEnd: 1294
    functionName: pysqlite_connection_create_collation
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - pysqlite_connection_create_collation_impl
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:1331,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1333,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1350,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1353,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1361,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1362,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1366,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1371,1
    - Dst: serialize_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1375,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: 1379
      start: 1318
    functionDepth: 3
    functionLinenumber: 1318
    functionLinenumberEnd: 1379
    functionName: serialize
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 2
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - serialize_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1424,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1426,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1443,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1447,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1452,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1454,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1458,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1463,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1470,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1471,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1475,1
    - Dst: strlen
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1479,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1480,1
    - Dst: deserialize_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1484,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1489,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: 1493
      start: 1411
    functionDepth: 3
    functionLinenumber: 1411
    functionLinenumberEnd: 1493
    functionName: deserialize
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 1
    functionsReached:
    - deserialize_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - PyBuffer_FillInfo
    - _Py_ID
    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:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1511
    functionDepth: 3
    functionLinenumber: 1511
    functionLinenumberEnd: 1515
    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:1541,1
    - Dst: pysqlite_connection_exit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1533
    functionDepth: 4
    functionLinenumber: 1533
    functionLinenumberEnd: 1551
    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:1582,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1585,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1586,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1589,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1590,1
    - Dst: setlimit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1575
    functionDepth: 3
    functionLinenumber: 1575
    functionLinenumberEnd: 1597
    functionName: setlimit
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - setlimit_impl
    - PyErr_Occurred
    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:1620,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1621,1
    - Dst: getlimit_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1614
    functionDepth: 4
    functionLinenumber: 1614
    functionLinenumberEnd: 1628
    functionName: getlimit
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - getlimit_impl
    - PyErr_Occurred
    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:1652,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1655,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1656,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1662,1
    - Dst: setconfig_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1667,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1645
    functionDepth: 3
    functionLinenumber: 1645
    functionLinenumberEnd: 1671
    functionName: setconfig
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyObject_IsTrue
    - PyErr_Occurred
    - setconfig_impl
    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:1695,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1696,1
    - Dst: getconfig_impl
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1699,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1700,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_sqlite/clinic/connection.c.h:1703,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1688
    functionDepth: 3
    functionLinenumber: 1688
    functionLinenumberEnd: 1707
    functionName: getconfig
    functionSourceFile: /src/cpython/Modules/_sqlite/clinic/connection.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - getconfig_impl
    - PyBool_FromLong
    - PyErr_Occurred
    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_NoMemory
    - PyErr_SetExcFromWindowsErr
    - PyErr_Format
    - PyErr_SetFromErrno
    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:
    - WSAGetLastError
    - PyErr_SetExcFromWindowsErr
    - closesocket
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multiprocessing_closesocket_impl(PyObject *module, HANDLE handle)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:112,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:116,1
    - Dst: recv
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:120,1
    - Dst: PyBytesWriter_Discard
      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: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - handle
    - size
    argTypes:
    - PyObject*
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 128
    functionName: _multiprocessing_recv_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - PyErr_SetExcFromWindowsErr
    - PyBytesWriter_FinishWithSize
    - PyBytesWriter_GetData
    - recv
    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:145,1
    - Dst: send
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:148,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:152,1
    - Dst: WSAGetLastError
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:152,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - handle
    - buf
    argTypes:
    - PyObject*
    - HANDLE
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: _multiprocessing_send_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - send
    - PyLong_FromLong
    - Py_MIN
    - 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:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    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:199,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:206,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:218,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:221,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:231,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:236,1
    - Dst: ADD_FLAG
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:257,1
    - Dst: ADD_FLAG
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:260,1
    - Dst: ADD_FLAG
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:263,1
    - Dst: ADD_FLAG
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:266,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_multiprocessing/multiprocessing.c:269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 274
    functionName: multiprocessing_exec
    functionSourceFile: /src/cpython/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ADD_FLAG
    - PyType_FromModuleAndSpec
    - PyDict_SetItemString
    - PyModule_Add
    - Py_DECREF
    - PyModule_AddType
    - PyDict_New
    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: 255
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 255
    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:
    - PyErr_CheckSignals
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - shm_open
    - strlen
    - PyErr_SetFromErrnoWithFilenameObject
    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:
    - PyErr_CheckSignals
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_SetFromErrnoWithFilenameObject
    - 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: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    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: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    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: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    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: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    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: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    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:73,1
    - Dst: ReleaseSemaphore
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - handle
    - value
    argTypes:
    - HANDLE
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 85
    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:112,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:113,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:119,1
    - Dst: ISMINE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:127,1
    - Dst: WaitForSingleObjectEx
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:133,1
    - Dst: GetCurrentThreadId
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:134,1
    - Dst: _PyOS_IsMainThread
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:142,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:143,1
    - Dst: assert
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:144,1
    - Dst: ResetEvent
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:154,1
    - Dst: WaitForMultipleObjectsEx
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:155,1
    - Dst: GetCurrentThreadId
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:163,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:168,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:170,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:172,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: 143
        line_start: 143
        source_file: /src/cpython/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 177
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 177
    functionName: _multiprocessing_SemLock_acquire_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - _PyOS_SigintEvent
    - PyErr_SetFromWindowsErr
    - PyFloat_AsDouble
    - assert
    - WaitForSingleObjectEx
    - PyErr_SetString
    - ResetEvent
    - GetCurrentThreadId
    - ISMINE
    - PyErr_Occurred
    - _PyOS_IsMainThread
    - WaitForMultipleObjectsEx
    - PyErr_Format
    - PyErr_SetFromErrno
    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:163,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:168,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:170,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 176
    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:191,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:192,1
    - Dst: assert
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:201,1
    - Dst: ReleaseSemaphore
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:204,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:205,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:206,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts:
    - condition: (self->count == 1)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/cpython/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: _multiprocessing_SemLock_release_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - ReleaseSemaphore
    - assert
    - PyErr_SetString
    - ISMINE
    - GetLastError
    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: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    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: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    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: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    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: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    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: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    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: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    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: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    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:258,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:264,1
    - Dst: select
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:288,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:293,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - sem
    - deadline
    - _save
    argTypes:
    - sem_t*
    - struct timespec*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 301
    functionName: sem_timedwait_save
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - select
    - gettimeofday
    - PyErr_CheckSignals
    - sem_trywait
    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: 299
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 299
    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:323,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:330,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:331,1
    - Dst: gettimeofday
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:339,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:340,1
    - Dst: sem_trywait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:353,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:355,1
    - Dst: sem_wait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:363,1
    - Dst: sem_timedwait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:366,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:372,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:382,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:386,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 3
    argNames:
    - self
    - blocking
    - timeout_obj
    argTypes:
    - SemLockObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 389
    functionName: _multiprocessing_SemLock_acquire_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - PyFloat_AsDouble
    - sem_timedwait
    - PyErr_CheckSignals
    - sem_trywait
    - sem_wait
    - ISMINE
    - PyErr_Occurred
    - PyErr_SetFromErrno
    - 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:403,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:404,1
    - Dst: assert
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:413,1
    - Dst: sem_trywait
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:419,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:421,1
    - Dst: sem_post
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:427,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:431,1
    - Dst: sem_getvalue
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:442,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:443,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:445,1
    - Dst: sem_post
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:452,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:453,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts:
    - condition: (self->count == 1)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/cpython/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 457
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 457
    functionName: _multiprocessing_SemLock_release_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - sem_getvalue
    - PyErr_SetString
    - sem_trywait
    - ISMINE
    - assert
    - sem_post
    - PyErr_SetFromErrno
    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:469,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: 479
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 479
    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:503,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:508,1
    - Dst: strlen
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:508,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:510,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:512,1
    - Dst: SEM_CLEAR_ERROR
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:515,1
    - Dst: SEM_CREATE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:516,1
    - Dst: SEM_GET_LAST_ERROR
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:518,1
    - Dst: SEM_UNLINK
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:521,1
    - Dst: newsemlockobject
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:524,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:531,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:532,1
    - Dst: SEM_CLOSE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:535,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:536,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: 538
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 538
    functionName: _multiprocessing_SemLock_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - SEM_UNLINK
    - SEM_CLEAR_ERROR
    - PyErr_NoMemory
    - strcpy
    - _PyMp_SetError
    - PyErr_SetString
    - SEM_CLOSE
    - SEM_GET_LAST_ERROR
    - strlen
    - PyMem_Malloc
    - SEM_CREATE
    - PyErr_Occurred
    - PyMem_Free
    - newsemlockobject
    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:561,1
    - Dst: strlen
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:561,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:563,1
    - Dst: strcpy
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:564,1
    - Dst: sem_open
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:569,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:571,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:572,1
    - Dst: newsemlockobject
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:578,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: 579
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 579
    functionName: _multiprocessing_SemLock__rebuild_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - sem_open
    - PyErr_NoMemory
    - strcpy
    - strlen
    - PyMem_Malloc
    - PyMem_Free
    - PyErr_SetFromErrno
    - newsemlockobject
    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:584,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:585,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:586,1
    - Dst: SEM_CLOSE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:588,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:589,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:590,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 592
    functionName: semlock_dealloc
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - SEM_CLOSE
    - PyTypeObject*::tp_free
    - PyMem_Free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - _SemLockObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void semlock_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 606
    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:619,1
    - Dst: ISMINE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 620
    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:633,1
    - Dst: SEM_GETVALUE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:637,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:638,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 645
    functionName: _multiprocessing_SemLock__get_value_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    - PyLong_FromLong
    - SEM_GETVALUE
    - _PyMp_SetError
    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:658,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:661,1
    - Dst: sem_post
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:663,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:664,1
    - Dst: SEM_GETVALUE
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:669,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:670,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 673
    functionName: _multiprocessing_SemLock__is_zero_impl
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - _PyMp_SetError
    - SEM_GETVALUE
    - sem_trywait
    - PyBool_FromLong
    - sem_post
    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: 687
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 687
    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:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 701
    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:721,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: 722
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 722
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEM_UNLINK
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:791,1
    - Dst: _PyMp_SetError
      Src: /src/cpython/Modules/_multiprocessing/semaphore.c:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 797
    functionName: _PyMp_sem_unlink
    functionSourceFile: /src/cpython/Modules/_multiprocessing/semaphore.c
    functionUses: 1
    functionsReached:
    - SEM_UNLINK
    - _PyMp_SetError
    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:
    - _multiprocessing_closesocket_impl
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - _multiprocessing_recv_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    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:
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - _multiprocessing_send_impl
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyLong_AsVoidPtr
    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:
    - _multiprocessing_sem_unlink_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - _multiprocessing_SemLock_acquire_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - _multiprocessing_SemLock_release_impl
    - Py_END_CRITICAL_SECTION
    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_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - _multiprocessing_SemLock_acquire_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - _multiprocessing_SemLock_release_impl
    - Py_END_CRITICAL_SECTION
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - strlen
    - _multiprocessing_SemLock_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - _multiprocessing_SemLock___enter___impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - _multiprocessing_SemLock___exit___impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:
    - PyLong_FromLong
    - _posixshmem_shm_open_impl
    - PyErr_Occurred
    - PyArg_ParseTupleAndKeywords
    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:
    - _posixshmem_shm_unlink_impl
    - PyErr_Format
    - PyUnicode_Check
    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_clockid_converter
    - time_clock_gettime_impl
    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_clockid_converter
    - time_clock_gettime_ns_impl
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - signal_default_int_handler_impl
    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:
    - PyLong_AsInt
    - PyLong_FromLong
    - signal_alarm_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - signal_raise_signal_impl
    - PyErr_Occurred
    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:161,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:164,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:165,1
    - Dst: signal_signal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 173
    functionName: signal_signal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - signal_signal_impl
    - PyErr_Occurred
    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:199,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:200,1
    - Dst: signal_getsignal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: signal_getsignal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - signal_getsignal_impl
    - PyErr_Occurred
    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:231,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:232,1
    - Dst: signal_strsignal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 239
    functionName: signal_strsignal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - signal_strsignal_impl
    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:265,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:268,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:269,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:272,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:273,1
    - Dst: signal_siginterrupt_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 280
    functionName: signal_siginterrupt
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - signal_siginterrupt_impl
    - PyErr_Occurred
    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:315,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:317,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:334,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:338,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:347,1
    - Dst: signal_set_wakeup_fd_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:352,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: 356
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 356
    functionName: signal_set_wakeup_fd
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - signal_set_wakeup_fd_impl
    - _Py_ID
    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:386,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:389,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:390,1
    - Dst: signal_setitimer_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: signal_setitimer
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - signal_setitimer_impl
    - PyErr_Occurred
    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:427,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:428,1
    - Dst: signal_getitimer_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 435
    functionName: signal_getitimer
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - signal_getitimer_impl
    - PyErr_Occurred
    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:460,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:463,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:464,1
    - Dst: _Py_Sigset_Converter
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:467,1
    - Dst: signal_pthread_sigmask_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 474
    functionName: signal_pthread_sigmask
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_pthread_sigmask_impl
    - _PyArg_CheckPositional
    - _Py_Sigset_Converter
    - PyLong_AsInt
    - PyErr_Occurred
    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:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 499
    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:527,1
    - Dst: signal_sigwait_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 534
    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:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 559
    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:585,1
    - Dst: signal_sigwaitinfo_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 592
    functionName: signal_sigwaitinfo
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Sigset_Converter
    - signal_sigwaitinfo_impl
    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:620,1
    - Dst: _Py_Sigset_Converter
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:623,1
    - Dst: signal_sigtimedwait_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 631
    functionName: signal_sigtimedwait
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _Py_Sigset_Converter
    - signal_sigtimedwait_impl
    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:657,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:660,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:661,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:665,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:673,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:680,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:681,1
    - Dst: signal_pthread_kill_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 688
    functionName: signal_pthread_kill
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - PyLong_AsInt
    - signal_pthread_kill_impl
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyErr_Occurred
    - PyIndex_Check
    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:716,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:719,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:720,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:723,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:724,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:734,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:735,1
    - Dst: signal_pidfd_send_signal_impl
      Src: /src/cpython/Modules/clinic/signalmodule.c.h:739,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 743
    functionName: signal_pidfd_send_signal
    functionSourceFile: /src/cpython/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - signal_pidfd_send_signal_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pidfd_send_signal(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:38,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:40,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:57,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:63,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:69,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:72,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:73,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:77,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:81,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:82,1
    - Dst: _symtable_symtable_impl
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:90,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/symtablemodule.c.h:94,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: 97
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 97
    functionName: _symtable_symtable
    functionSourceFile: /src/cpython/Modules/clinic/symtablemodule.c.h
    functionUses: 0
    functionsReached:
    - _symtable_symtable_impl
    - PyVarObject_HEAD_INIT
    - PyUnicode_FSDecoder
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - 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:
    - _elementtree_Element___copy___impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:
    - _elementtree_Element___deepcopy___impl
    - PyDict_Check
    - _PyArg_BadArgument
    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:
    - PyLong_FromSize_t
    - PyErr_Occurred
    - _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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _elementtree_Element_find_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _elementtree_Element_findall_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _elementtree_Element_iterfind_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _elementtree_Element_get_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _elementtree_Element_iter_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _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:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - _elementtree_Element_insert_impl
    - clinic_state
    - _PyArg_BadArgument
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:
    - _PyArg_UnpackKeywords
    - PyDict_Check
    - _elementtree_Element_makeelement_impl
    - _PyArg_BadArgument
    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:
    - PyObject_TypeCheck
    - clinic_state
    - _elementtree_Element_remove_impl
    - _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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _elementtree_TreeBuilder___init___impl
    - PyObject_IsTrue
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - _elementtree__set_factories_impl
    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:
    - _PyArg_CheckPositional
    - _elementtree_TreeBuilder_pi_impl
    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:
    - _PyArg_CheckPositional
    - PyDict_Check
    - _elementtree_TreeBuilder_start_impl
    - _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:
    - _elementtree_XMLParser___init___impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - _elementtree_XMLParser__setevents_impl
    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:
    - _thread_lock_acquire_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _thread_lock_acquire_lock_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - _thread_lock___exit___impl
    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_NoPositional
    - clinic_state
    - lock_new_impl
    - _PyArg_NoKeywords
    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:
    - _thread_RLock_acquire_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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_NoPositional
    - clinic_state
    - _PyArg_NoKeywords
    - rlock_new_impl
    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:
    - _thread_set_name_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _Py_ID
    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:
    - pwd_getpwnam_impl
    - PyUnicode_Check
    - _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: 5
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: _ssl__SSLSocket_do_handshake
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_do_handshake_impl
    - Py_END_CRITICAL_SECTION
    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
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_ssl.c.h:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 9
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: _ssl__test_decode_cert
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__test_decode_cert_impl
    - Py_XDECREF
    - PyUnicode_FSConverter
    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:91,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:97,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:102,1
    - Dst: _ssl__SSLSocket_getpeercert_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:103,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 85
    functionDepth: 9
    functionLinenumber: 85
    functionLinenumberEnd: 108
    functionName: _ssl__SSLSocket_getpeercert
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _ssl__SSLSocket_getpeercert_impl
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    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:126,1
    - Dst: _ssl__SSLSocket_get_verified_chain_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:127,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: _ssl__SSLSocket_get_verified_chain
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_get_verified_chain_impl
    - Py_END_CRITICAL_SECTION
    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:149,1
    - Dst: _ssl__SSLSocket_get_unverified_chain_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:150,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: _ssl__SSLSocket_get_unverified_chain
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_get_unverified_chain_impl
    - Py_END_CRITICAL_SECTION
    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:172,1
    - Dst: _ssl__SSLSocket_shared_ciphers_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:173,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 177
    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:195,1
    - Dst: _ssl__SSLSocket_cipher_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:196,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: _ssl__SSLSocket_cipher
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_cipher_impl
    - Py_END_CRITICAL_SECTION
    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:218,1
    - Dst: _ssl__SSLSocket_group_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:219,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 223
    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:241,1
    - Dst: _ssl__SSLSocket_client_sigalg_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:242,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: _ssl__SSLSocket_client_sigalg
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_client_sigalg_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_client_sigalg(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:264,1
    - Dst: _ssl__SSLSocket_server_sigalg_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:265,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: _ssl__SSLSocket_server_sigalg
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_server_sigalg_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_server_sigalg(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:287,1
    - Dst: _ssl__SSLSocket_version_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:288,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: _ssl__SSLSocket_version
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_version_impl
    - Py_END_CRITICAL_SECTION
    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:310,1
    - Dst: _ssl__SSLSocket_selected_alpn_protocol_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:311,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: _ssl__SSLSocket_selected_alpn_protocol
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_selected_alpn_protocol_impl
    - Py_END_CRITICAL_SECTION
    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:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 332
    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:364,1
    - Dst: _ssl__SSLSocket_context_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:365,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.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: 1
    functionLinenumber: 359
    functionLinenumberEnd: 369
    functionName: _ssl__SSLSocket_context_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_context_get_impl
    - Py_END_CRITICAL_SECTION
    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:389,1
    - Dst: _ssl__SSLSocket_context_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:390,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: _ssl__SSLSocket_context_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_context_set_impl
    - Py_END_CRITICAL_SECTION
    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:421,1
    - Dst: _ssl__SSLSocket_server_side_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:422,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 426
    functionName: _ssl__SSLSocket_server_side_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_server_side_get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:453,1
    - Dst: _ssl__SSLSocket_server_hostname_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:454,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 458
    functionName: _ssl__SSLSocket_server_hostname_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_server_hostname_get_impl
    - Py_END_CRITICAL_SECTION
    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:487,1
    - Dst: _ssl__SSLSocket_owner_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:488,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 492
    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:512,1
    - Dst: _ssl__SSLSocket_owner_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:513,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 517
    functionName: _ssl__SSLSocket_owner_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_owner_set_impl
    - Py_END_CRITICAL_SECTION
    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:536,1
    - Dst: _ssl__SSLSocket_uses_ktls_for_send_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:537,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: _ssl__SSLSocket_uses_ktls_for_send
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_uses_ktls_for_send_impl
    - Py_END_CRITICAL_SECTION
    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:560,1
    - Dst: _ssl__SSLSocket_uses_ktls_for_recv_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:561,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: _ssl__SSLSocket_uses_ktls_for_recv
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_uses_ktls_for_recv_impl
    - Py_END_CRITICAL_SECTION
    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:597,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:600,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:601,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/_ssl.c.h:604,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Modules/clinic/_ssl.c.h:607,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:613,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:614,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:618,1
    - Dst: _ssl__SSLSocket_sendfile_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:619,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:620,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 588
    functionDepth: 5
    functionLinenumber: 588
    functionLinenumberEnd: 624
    functionName: _ssl__SSLSocket_sendfile
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - Py_off_t_converter
    - _PyLong_Size_t_Converter
    - PyErr_Occurred
    - _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:648,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:651,1
    - Dst: _ssl__SSLSocket_write_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:652,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:653,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 642
    functionDepth: 5
    functionLinenumber: 642
    functionLinenumberEnd: 662
    functionName: _ssl__SSLSocket_write
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_write_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_Release
    - PyObject_GetBuffer
    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:681,1
    - Dst: _ssl__SSLSocket_pending_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:682,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 676
    functionDepth: 4
    functionLinenumber: 676
    functionLinenumberEnd: 686
    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:707,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_ssl.c.h:709,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_ssl.c.h:714,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:720,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:723,1
    - Dst: _ssl__SSLSocket_read_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:724,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:725,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:730,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 699
    functionDepth: 5
    functionLinenumber: 699
    functionLinenumberEnd: 734
    functionName: _ssl__SSLSocket_read
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyBuffer_Release
    - _ssl__SSLSocket_read_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    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:753,1
    - Dst: _ssl__SSLSocket_shutdown_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:754,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 748
    functionDepth: 5
    functionLinenumber: 748
    functionLinenumberEnd: 758
    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:791,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:793,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:810,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:813,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:821,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:822,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:826,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:830,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:831,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:835,1
    - Dst: _ssl__SSLSocket_get_channel_binding_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:836,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:837,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: 841
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 841
    functionName: _ssl__SSLSocket_get_channel_binding
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _ssl__SSLSocket_get_channel_binding_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:860,1
    - Dst: _ssl__SSLSocket_verify_client_post_handshake_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:861,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 865
    functionName: _ssl__SSLSocket_verify_client_post_handshake
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:892,1
    - Dst: _ssl__SSLSocket_session_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:893,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 897
    functionName: _ssl__SSLSocket_session_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_session_get_impl
    - Py_END_CRITICAL_SECTION
    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:917,1
    - Dst: _ssl__SSLSocket_session_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:918,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 912
    functionDepth: 4
    functionLinenumber: 912
    functionLinenumberEnd: 922
    functionName: _ssl__SSLSocket_session_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLSocket_session_set_impl
    - Py_END_CRITICAL_SECTION
    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:949,1
    - Dst: _ssl__SSLSocket_session_reused_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:950,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 954
    functionName: _ssl__SSLSocket_session_reused_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_session_reused_get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:963,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:967,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_ssl.c.h:970,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:970,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:973,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_ssl.c.h:973,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:974,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:977,1
    - Dst: _ssl__SSLContext_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:978,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:979,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 959
    functionDepth: 4
    functionLinenumber: 959
    functionLinenumberEnd: 983
    functionName: _ssl__SSLContext
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_impl
    - PyErr_Occurred
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - get_state_type
    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:1002,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1003,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1007,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1011,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1012,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1015,1
    - Dst: _ssl__SSLContext_set_ciphers_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1016,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1017,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1021
    functionName: _ssl__SSLContext_set_ciphers
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _ssl__SSLContext_set_ciphers_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ciphers(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1041,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1042,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1046,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1050,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1051,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1054,1
    - Dst: _ssl__SSLContext_set_ciphersuites_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1055,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1056,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1035
    functionDepth: 4
    functionLinenumber: 1035
    functionLinenumberEnd: 1060
    functionName: _ssl__SSLContext_set_ciphersuites
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - _ssl__SSLContext_set_ciphersuites_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ciphersuites(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1078,1
    - Dst: _ssl__SSLContext_get_ciphers_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1079,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1073
    functionDepth: 4
    functionLinenumber: 1073
    functionLinenumberEnd: 1083
    functionName: _ssl__SSLContext_get_ciphers
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_get_ciphers_impl
    - Py_END_CRITICAL_SECTION
    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:1102,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1103,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1107,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1111,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1112,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1115,1
    - Dst: _ssl__SSLContext_set_groups_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1116,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1096
    functionDepth: 4
    functionLinenumber: 1096
    functionLinenumberEnd: 1121
    functionName: _ssl__SSLContext_set_groups
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _ssl__SSLContext_set_groups_impl
    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:1147,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1149,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1166,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1169,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1177,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1182,1
    - Dst: _ssl__SSLContext_get_groups_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1183,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1184,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: 1188
      start: 1134
    functionDepth: 4
    functionLinenumber: 1134
    functionLinenumberEnd: 1188
    functionName: _ssl__SSLContext_get_groups
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - _ssl__SSLContext_get_groups_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_groups(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1208,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1209,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1213,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1217,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1218,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1221,1
    - Dst: _ssl__SSLContext_set_client_sigalgs_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1222,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1202
    functionDepth: 4
    functionLinenumber: 1202
    functionLinenumberEnd: 1227
    functionName: _ssl__SSLContext_set_client_sigalgs
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_set_client_sigalgs_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_client_sigalgs(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1247,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1248,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1252,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1256,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1257,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1260,1
    - Dst: _ssl__SSLContext_set_server_sigalgs_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1261,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1241
    functionDepth: 4
    functionLinenumber: 1241
    functionLinenumberEnd: 1266
    functionName: _ssl__SSLContext_set_server_sigalgs
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _ssl__SSLContext_set_server_sigalgs_impl
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_server_sigalgs(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1286,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1289,1
    - Dst: _ssl__SSLContext__set_alpn_protocols_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1290,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1291,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1280
    functionDepth: 2
    functionLinenumber: 1280
    functionLinenumberEnd: 1300
    functionName: _ssl__SSLContext__set_alpn_protocols
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _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:1320,1
    - Dst: _ssl__SSLContext_verify_mode_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1321,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1315
    functionDepth: 2
    functionLinenumber: 1315
    functionLinenumberEnd: 1325
    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:1345,1
    - Dst: _ssl__SSLContext_verify_mode_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1346,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1340
    functionDepth: 3
    functionLinenumber: 1340
    functionLinenumberEnd: 1350
    functionName: _ssl__SSLContext_verify_mode_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_verify_mode_set_impl
    - Py_END_CRITICAL_SECTION
    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:1370,1
    - Dst: _ssl__SSLContext_verify_flags_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1371,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1375
    functionName: _ssl__SSLContext_verify_flags_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_verify_flags_get_impl
    - Py_END_CRITICAL_SECTION
    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:1395,1
    - Dst: _ssl__SSLContext_verify_flags_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1396,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1390
    functionDepth: 4
    functionLinenumber: 1390
    functionLinenumberEnd: 1400
    functionName: _ssl__SSLContext_verify_flags_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_verify_flags_set_impl
    - Py_END_CRITICAL_SECTION
    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:1420,1
    - Dst: _ssl__SSLContext_minimum_version_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1421,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1425
    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:1446,1
    - Dst: _ssl__SSLContext_minimum_version_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1447,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1441
    functionDepth: 3
    functionLinenumber: 1441
    functionLinenumberEnd: 1451
    functionName: _ssl__SSLContext_minimum_version_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1471,1
    - Dst: _ssl__SSLContext_maximum_version_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1472,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1476
    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:1497,1
    - Dst: _ssl__SSLContext_maximum_version_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1498,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1492
    functionDepth: 3
    functionLinenumber: 1492
    functionLinenumberEnd: 1502
    functionName: _ssl__SSLContext_maximum_version_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_maximum_version_set_impl
    - Py_END_CRITICAL_SECTION
    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:1529,1
    - Dst: _ssl__SSLContext_num_tickets_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1530,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1524
    functionDepth: 2
    functionLinenumber: 1524
    functionLinenumberEnd: 1534
    functionName: _ssl__SSLContext_num_tickets_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_num_tickets_get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1554,1
    - Dst: _ssl__SSLContext_num_tickets_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1555,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1549
    functionDepth: 2
    functionLinenumber: 1549
    functionLinenumberEnd: 1559
    functionName: _ssl__SSLContext_num_tickets_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1586,1
    - Dst: _ssl__SSLContext_security_level_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1587,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1591
    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:1611,1
    - Dst: _ssl__SSLContext_options_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1612,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1616
    functionName: _ssl__SSLContext_options_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_options_get_impl
    - Py_END_CRITICAL_SECTION
    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:1636,1
    - Dst: _ssl__SSLContext_options_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1637,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1631
    functionDepth: 3
    functionLinenumber: 1631
    functionLinenumberEnd: 1641
    functionName: _ssl__SSLContext_options_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_options_set_impl
    - Py_END_CRITICAL_SECTION
    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:1661,1
    - Dst: _ssl__SSLContext__host_flags_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1662,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1666
    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:1686,1
    - Dst: _ssl__SSLContext__host_flags_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1687,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1681
    functionDepth: 2
    functionLinenumber: 1681
    functionLinenumberEnd: 1691
    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:1711,1
    - Dst: _ssl__SSLContext_check_hostname_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1712,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1706
    functionDepth: 2
    functionLinenumber: 1706
    functionLinenumberEnd: 1716
    functionName: _ssl__SSLContext_check_hostname_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_check_hostname_get_impl
    - Py_END_CRITICAL_SECTION
    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:1736,1
    - Dst: _ssl__SSLContext_check_hostname_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1737,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1731
    functionDepth: 3
    functionLinenumber: 1731
    functionLinenumberEnd: 1741
    functionName: _ssl__SSLContext_check_hostname_set
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_check_hostname_set_impl
    - Py_END_CRITICAL_SECTION
    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:1761,1
    - Dst: _ssl__SSLContext_protocol_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1762,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1766
    functionName: _ssl__SSLContext_protocol_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1793,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1795,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1795,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1795,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1812,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1817,1
    - Dst: _ssl__SSLContext_load_cert_chain_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1834,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: 1838
      start: 1780
    functionDepth: 5
    functionLinenumber: 1780
    functionLinenumberEnd: 1838
    functionName: _ssl__SSLContext_load_cert_chain
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _ssl__SSLContext_load_cert_chain_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1869,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1869,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1869,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1886,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1891,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1913,1
    - Dst: _ssl__SSLContext_load_verify_locations_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1914,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1915,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: 1919
      start: 1854
    functionDepth: 5
    functionLinenumber: 1854
    functionLinenumberEnd: 1919
    functionName: _ssl__SSLContext_load_verify_locations
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_load_verify_locations_impl
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1937,1
    - Dst: _ssl__SSLContext_load_dh_params_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1938,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - filepath
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1932
    functionDepth: 4
    functionLinenumber: 1932
    functionLinenumberEnd: 1942
    functionName: _ssl__SSLContext_load_dh_params
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_load_dh_params_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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:1971,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1973,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1973,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1973,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1973,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1973,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1990,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:1997,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2002,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2002,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2003,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2003,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2007,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2032,1
    - Dst: _ssl__SSLContext__wrap_socket_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2033,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2034,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: 2038
      start: 1958
    functionDepth: 6
    functionLinenumber: 1958
    functionLinenumberEnd: 2038
    functionName: _ssl__SSLContext__wrap_socket
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - get_state_ctx
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyTuple_GET_SIZE
    - _ssl__SSLContext__wrap_socket_impl
    - _Py_ID
    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:2068,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2070,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2070,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2070,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2070,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2070,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2070,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2087,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2095,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2100,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2100,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2101,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2101,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2105,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2105,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2106,1
    - Dst: get_state_ctx
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2106,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2110,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2135,1
    - Dst: _ssl__SSLContext__wrap_bio_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2136,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2137,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: 2141
      start: 2055
    functionDepth: 6
    functionLinenumber: 2055
    functionLinenumberEnd: 2141
    functionName: _ssl__SSLContext__wrap_bio
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _ssl__SSLContext__wrap_bio_impl
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - get_state_ctx
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyTuple_GET_SIZE
    - _Py_ID
    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:2159,1
    - Dst: _ssl__SSLContext_session_stats_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2160,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2154
    functionDepth: 2
    functionLinenumber: 2154
    functionLinenumberEnd: 2164
    functionName: _ssl__SSLContext_session_stats
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_session_stats_impl
    - Py_END_CRITICAL_SECTION
    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:2182,1
    - Dst: _ssl__SSLContext_set_default_verify_paths_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2183,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2177
    functionDepth: 4
    functionLinenumber: 2177
    functionLinenumberEnd: 2187
    functionName: _ssl__SSLContext_set_default_verify_paths
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_set_default_verify_paths_impl
    - Py_END_CRITICAL_SECTION
    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:2205,1
    - Dst: _ssl__SSLContext_set_ecdh_curve_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2206,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2200
    functionDepth: 4
    functionLinenumber: 2200
    functionLinenumberEnd: 2210
    functionName: _ssl__SSLContext_set_ecdh_curve
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_set_ecdh_curve_impl
    - Py_END_CRITICAL_SECTION
    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:2243,1
    - Dst: _ssl__SSLContext_sni_callback_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2244,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2248
    functionName: _ssl__SSLContext_sni_callback_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_sni_callback_get_impl
    - Py_END_CRITICAL_SECTION
    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:2268,1
    - Dst: _ssl__SSLContext_sni_callback_set_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2269,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2263
    functionDepth: 2
    functionLinenumber: 2263
    functionLinenumberEnd: 2273
    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:2298,1
    - Dst: _ssl__SSLContext_cert_store_stats_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2299,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2293
    functionDepth: 2
    functionLinenumber: 2293
    functionLinenumberEnd: 2303
    functionName: _ssl__SSLContext_cert_store_stats
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl__SSLContext_cert_store_stats_impl
    - Py_END_CRITICAL_SECTION
    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:2336,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2338,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2355,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2358,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2366,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2371,1
    - Dst: _ssl__SSLContext_get_ca_certs_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2372,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2373,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: 2377
      start: 2323
    functionDepth: 9
    functionLinenumber: 2323
    functionLinenumberEnd: 2377
    functionName: _ssl__SSLContext_get_ca_certs
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - _ssl__SSLContext_get_ca_certs_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:2404,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2406,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2425,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2431,1
    - Dst: _ssl__SSLContext_set_psk_client_callback_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2432,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2433,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: 2437
      start: 2391
    functionDepth: 4
    functionLinenumber: 2391
    functionLinenumberEnd: 2437
    functionName: _ssl__SSLContext_set_psk_client_callback
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _ssl__SSLContext_set_psk_client_callback_impl
    - _Py_ID
    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:2465,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2467,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2467,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2484,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2488,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2500,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2502,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2506,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2507,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2512,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2516,1
    - Dst: _ssl__SSLContext_set_psk_server_callback_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2517,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2518,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: 2522
      start: 2452
    functionDepth: 4
    functionLinenumber: 2452
    functionLinenumberEnd: 2522
    functionName: _ssl__SSLContext_set_psk_server_callback
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - _ssl__SSLContext_set_psk_server_callback_impl
    - _Py_ID
    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:2531,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2534,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2538,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2541,1
    - Dst: _ssl_MemoryBIO_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2542,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2543,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2527
    functionDepth: 2
    functionLinenumber: 2527
    functionLinenumberEnd: 2547
    functionName: _ssl_MemoryBIO
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_NoPositional
    - _PyArg_NoKeywords
    - get_state_type
    - _ssl_MemoryBIO_impl
    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:2574,1
    - Dst: _ssl_MemoryBIO_pending_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2575,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2569
    functionDepth: 2
    functionLinenumber: 2569
    functionLinenumberEnd: 2579
    functionName: _ssl_MemoryBIO_pending_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:2606,1
    - Dst: _ssl_MemoryBIO_eof_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2607,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2601
    functionDepth: 2
    functionLinenumber: 2601
    functionLinenumberEnd: 2611
    functionName: _ssl_MemoryBIO_eof_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:2636,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2642,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2643,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2647,1
    - Dst: _ssl_MemoryBIO_read_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2648,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2649,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2630
    functionDepth: 4
    functionLinenumber: 2630
    functionLinenumberEnd: 2653
    functionName: _ssl_MemoryBIO_read
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_MemoryBIO_read_impl
    - PyErr_Occurred
    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:2675,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2678,1
    - Dst: _ssl_MemoryBIO_write_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2679,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2680,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2669
    functionDepth: 4
    functionLinenumber: 2669
    functionLinenumberEnd: 2689
    functionName: _ssl_MemoryBIO_write
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _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:2710,1
    - Dst: _ssl_MemoryBIO_write_eof_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2711,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2715
    functionName: _ssl_MemoryBIO_write_eof
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_MemoryBIO_write_eof_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:2742,1
    - Dst: _ssl_SSLSession_time_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2743,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2737
    functionDepth: 2
    functionLinenumber: 2737
    functionLinenumberEnd: 2747
    functionName: _ssl_SSLSession_time_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_SSLSession_time_get_impl
    - Py_END_CRITICAL_SECTION
    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:2774,1
    - Dst: _ssl_SSLSession_timeout_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2775,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2769
    functionDepth: 1
    functionLinenumber: 2769
    functionLinenumberEnd: 2779
    functionName: _ssl_SSLSession_timeout_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_SSLSession_timeout_get_impl
    - Py_END_CRITICAL_SECTION
    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:2806,1
    - Dst: _ssl_SSLSession_ticket_lifetime_hint_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2807,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2811
    functionName: _ssl_SSLSession_ticket_lifetime_hint_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_SSLSession_ticket_lifetime_hint_get_impl
    - Py_END_CRITICAL_SECTION
    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:2838,1
    - Dst: _ssl_SSLSession_id_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2839,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2833
    functionDepth: 2
    functionLinenumber: 2833
    functionLinenumberEnd: 2843
    functionName: _ssl_SSLSession_id_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_SSLSession_id_get_impl
    - Py_END_CRITICAL_SECTION
    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:2870,1
    - Dst: _ssl_SSLSession_has_ticket_get_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2871,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2865
    functionDepth: 1
    functionLinenumber: 2865
    functionLinenumberEnd: 2875
    functionName: _ssl_SSLSession_has_ticket_get
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_SSLSession_has_ticket_get_impl
    - Py_END_CRITICAL_SECTION
    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:2899,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2902,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2904,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2908,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2913,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2917,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2918,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2922,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2923,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2927,1
    - Dst: _ssl_RAND_add_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2928,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2929,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2934,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2938
      start: 2892
    functionDepth: 2
    functionLinenumber: 2892
    functionLinenumberEnd: 2938
    functionName: _ssl_RAND_add
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _ssl_RAND_add_impl
    - PyFloat_AS_DOUBLE
    - PyFloat_AsDouble
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyUnicode_Check
    - PyBuffer_Release
    - PyUnicode_AsUTF8AndSize
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyBuffer_FillInfo
    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:2958,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2959,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2962,1
    - Dst: _ssl_RAND_bytes_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2963,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2952
    functionDepth: 3
    functionLinenumber: 2952
    functionLinenumberEnd: 2968
    functionName: _ssl_RAND_bytes
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_RAND_bytes_impl
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    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:2990,1
    - Dst: _ssl_RAND_status_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2991,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:2992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2985
    functionDepth: 2
    functionLinenumber: 2985
    functionLinenumberEnd: 2995
    functionName: _ssl_RAND_status
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_RAND_status_impl
    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:3016,1
    - Dst: _ssl_get_default_verify_paths_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3017,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 3011
    functionDepth: 2
    functionLinenumber: 3011
    functionLinenumberEnd: 3021
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl_get_sigalgs_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3034
    functionDepth: 2
    functionLinenumber: 3034
    functionLinenumberEnd: 3038
    functionName: _ssl_get_sigalgs
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_get_sigalgs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_get_sigalgs(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3068,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3070,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3070,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3087,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3091,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3096,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3097,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3101,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3106,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3112,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3117,1
    - Dst: _ssl_txt2obj_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3118,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3119,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: 3123
      start: 3055
    functionDepth: 6
    functionLinenumber: 3055
    functionLinenumberEnd: 3123
    functionName: _ssl_txt2obj
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _ssl_txt2obj_impl
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:3143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3144,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3147,1
    - Dst: _ssl_nid2obj_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3148,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3137
    functionDepth: 6
    functionLinenumber: 3137
    functionLinenumberEnd: 3153
    functionName: _ssl_nid2obj
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_nid2obj_impl
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    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:3188,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3190,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3209,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3214,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3215,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3219,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3223,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3224,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3227,1
    - Dst: _ssl_enum_certificates_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3228,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3229,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: 3233
      start: 3175
    functionDepth: 3
    functionLinenumber: 3175
    functionLinenumberEnd: 3233
    functionName: _ssl_enum_certificates
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_enum_certificates_impl
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    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:3269,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3271,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3290,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3295,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3296,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3300,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3304,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3305,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3308,1
    - Dst: _ssl_enum_crls_impl
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3309,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_ssl.c.h:3310,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: 3314
      start: 3256
    functionDepth: 3
    functionLinenumber: 3256
    functionLinenumberEnd: 3314
    functionName: _ssl_enum_crls
    functionSourceFile: /src/cpython/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - Py_BEGIN_CRITICAL_SECTION
    - _ssl_enum_crls_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    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:
    - PyLong_FromLong
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _opcode_stack_effect_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyErr_Occurred
    - _opcode_is_valid_impl
    - _Py_ID
    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
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyErr_Occurred
    - _opcode_has_const_impl
    - _Py_ID
    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
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyErr_Occurred
    - _opcode_has_jump_impl
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - _opcode_has_free_impl
    - PyErr_Occurred
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _opcode_has_local_impl
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyErr_Occurred
    - _opcode_has_exc_impl
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _opcode_get_executor_impl
    - _Py_ID
    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
    - PyLong_FromSize_t
    - PyErr_Occurred
    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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _pickle_Pickler___init___impl
    - _Py_ID
    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
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:
    - _PyArg_UnpackKeywords
    - _pickle_Unpickler_find_class_impl
    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:
    - PyLong_FromSize_t
    - _pickle_Unpickler___sizeof___impl
    - PyErr_Occurred
    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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _pickle_Unpickler___init___impl
    - strlen
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _pickle_dumps_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _pickle_load_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - _pickle_loads_impl
    - _Py_ID
    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:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - os_stat_impl
    - FSTATAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_lstat_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - FSTATAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:237,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:239,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:239,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:239,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:239,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:239,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:256,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:257,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:263,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:268,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:272,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:280,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:291,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:292,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:300,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:307,1
    - Dst: os_statx_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:312,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:316,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 319
    functionName: os_statx
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - dir_fd_converter
    - PyErr_WarnEx
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_statx_impl
    - PyObject_IsTrue
    - path_converter
    - PyLong_AsNativeBytes
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_statx(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:375,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:377,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:394,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:395,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:402,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:407,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:410,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:411,1
    - Dst: FACCESSAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:418,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:426,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:434,1
    - Dst: os_access_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:439,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:440,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:443,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:447,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: 450
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 450
    functionName: os_access
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - FACCESSAT_DIR_FD_CONVERTER
    - PyBool_FromLong
    - os_access_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:475,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:476,1
    - Dst: os_ttyname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 483
    functionName: os_ttyname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_ttyname_impl
    - PyErr_Occurred
    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:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 505
    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:538,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:540,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:557,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:559,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:564,1
    - Dst: os_chdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:567,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:571,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: 574
      start: 525
    functionDepth: 5
    functionLinenumber: 525
    functionLinenumberEnd: 574
    functionName: os_chdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_chdir_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - _Py_ID
    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:606,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:608,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:627,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:632,1
    - Dst: os_fchdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:636,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: 640
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 640
    functionName: os_fchdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_AsFileDescriptor
    - os_fchdir_impl
    - _Py_ID
    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:695,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:697,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:697,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:697,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:697,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:714,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:715,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:720,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:725,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:728,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:729,1
    - Dst: FCHMODAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:736,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:743,1
    - Dst: os_chmod_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:748,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:752,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: 755
      start: 682
    functionDepth: 5
    functionLinenumber: 682
    functionLinenumberEnd: 755
    functionName: os_chmod
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_chmod_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - FCHMODAT_DIR_FD_CONVERTER
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:794,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:796,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:796,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:816,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:821,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:822,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:825,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:826,1
    - Dst: os_fchmod_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:829,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: 833
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 833
    functionName: os_fchmod
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - os_fchmod_impl
    - _Py_ID
    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:867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:869,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:869,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:886,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:889,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:894,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:897,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:898,1
    - Dst: os_lchmod_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:901,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:905,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: 908
      start: 854
    functionDepth: 5
    functionLinenumber: 854
    functionLinenumberEnd: 908
    functionName: os_lchmod
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyErr_Occurred
    - os_lchmod_impl
    - _Py_ID
    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:946,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:948,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:948,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:948,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:965,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:966,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:970,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:975,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:978,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:979,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:983,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:991,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1001,1
    - Dst: os_chflags_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1006,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1010,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: 1013
      start: 933
    functionDepth: 5
    functionLinenumber: 933
    functionLinenumberEnd: 1013
    functionName: os_chflags
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - os_chflags_impl
    - PyTuple_GET_SIZE
    - PyIndex_Check
    - _Py_ID
    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:1047,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1049,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1049,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1066,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1069,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1074,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1077,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1078,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1082,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1090,1
    - Dst: os_lchflags_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1097,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1101,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: 1104
      start: 1034
    functionDepth: 5
    functionLinenumber: 1034
    functionLinenumberEnd: 1104
    functionName: os_lchflags
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyErr_WarnEx
    - os_lchflags_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    - _Py_ID
    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:1135,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1137,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1154,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1156,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1161,1
    - Dst: os_chroot_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1164,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1168,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: 1171
      start: 1122
    functionDepth: 5
    functionLinenumber: 1122
    functionLinenumberEnd: 1171
    functionName: os_chroot
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os_chroot_impl
    - _Py_ID
    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:1202,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1204,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1223,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1228,1
    - Dst: os_fsync_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1232,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: 1236
      start: 1189
    functionDepth: 4
    functionLinenumber: 1189
    functionLinenumberEnd: 1236
    functionName: os_fsync
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fsync_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_AsFileDescriptor
    - _Py_ID
    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:1257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1258
    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:1289,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1291,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1310,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1315,1
    - Dst: os_fdatasync_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1319,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: 1323
      start: 1276
    functionDepth: 4
    functionLinenumber: 1276
    functionLinenumberEnd: 1323
    functionName: os_fdatasync
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_fdatasync_impl
    - PyObject_AsFileDescriptor
    - _Py_ID
    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:1381,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1383,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1383,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1383,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1383,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1383,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1400,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1401,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1407,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1412,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1415,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1418,1
    - Dst: FCHOWNAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1425,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1432,1
    - Dst: os_chown_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1437,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1441,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: 1444
      start: 1368
    functionDepth: 5
    functionLinenumber: 1368
    functionLinenumberEnd: 1444
    functionName: os_chown
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_chown_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - _Py_Uid_Converter
    - FCHOWNAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - _Py_Gid_Converter
    - _Py_ID
    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:1477,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1479,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1479,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1479,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1500,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1505,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1506,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1509,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1512,1
    - Dst: os_fchown_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1515,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: 1519
      start: 1464
    functionDepth: 3
    functionLinenumber: 1464
    functionLinenumberEnd: 1519
    functionName: os_fchown
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_fchown_impl
    - _Py_Uid_Converter
    - PyErr_Occurred
    - _Py_Gid_Converter
    - _Py_ID
    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:1553,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1555,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1555,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1555,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1572,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1576,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1581,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1584,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1587,1
    - Dst: os_lchown_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1590,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1594,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: 1597
      start: 1540
    functionDepth: 5
    functionLinenumber: 1540
    functionLinenumberEnd: 1597
    functionName: os_lchown
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - _Py_Uid_Converter
    - os_lchown_impl
    - _Py_Gid_Converter
    - _Py_ID
    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:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1613
    functionDepth: 5
    functionLinenumber: 1613
    functionLinenumberEnd: 1617
    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:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1631
    functionDepth: 5
    functionLinenumber: 1631
    functionLinenumberEnd: 1635
    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:1677,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1679,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1679,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1679,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1679,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1679,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1696,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1697,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1698,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1703,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1708,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1711,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1718,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1726,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1733,1
    - Dst: os_link_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1738,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1742,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1744,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: 1747
      start: 1664
    functionDepth: 4
    functionLinenumber: 1664
    functionLinenumberEnd: 1747
    functionName: os_link
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - dir_fd_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_link_impl
    - PyObject_IsTrue
    - path_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1787,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1789,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1806,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1807,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1809,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1817,1
    - Dst: os_listdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1821,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1825,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: 1828
      start: 1774
    functionDepth: 6
    functionLinenumber: 1774
    functionLinenumberEnd: 1828
    functionName: os_listdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - os_listdir_impl
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1846
    functionDepth: 2
    functionLinenumber: 1846
    functionLinenumberEnd: 1850
    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:1873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1870
    functionDepth: 2
    functionLinenumber: 1870
    functionLinenumberEnd: 1874
    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:1907,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1909,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1926,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1928,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1933,1
    - Dst: os_listmounts_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1936,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1940,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: 1943
      start: 1894
    functionDepth: 3
    functionLinenumber: 1894
    functionLinenumberEnd: 1943
    functionName: os_listmounts
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_listmounts_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - _Py_ID
    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:1974,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1976,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1993,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:1995,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2000,1
    - Dst: os__path_isdevdrive_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2003,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2007,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: 2010
      start: 1961
    functionDepth: 3
    functionLinenumber: 1961
    functionLinenumberEnd: 2010
    functionName: os__path_isdevdrive
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os__path_isdevdrive_impl
    - _Py_ID
    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:2031,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2033,1
    - Dst: os__getfullpathname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2036,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2027
    functionDepth: 4
    functionLinenumber: 2027
    functionLinenumberEnd: 2043
    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:2065,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2067,1
    - Dst: os__getfinalpathname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2070,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2061
    functionDepth: 4
    functionLinenumber: 2061
    functionLinenumberEnd: 2077
    functionName: os__getfinalpathname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - os__getfinalpathname_impl
    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:2099,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2101,1
    - Dst: os__findfirstfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2104,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2095
    functionDepth: 5
    functionLinenumber: 2095
    functionLinenumberEnd: 2111
    functionName: os__findfirstfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os__findfirstfile_impl
    - 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:2142,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2144,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2161,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2163,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2168,1
    - Dst: os__getvolumepathname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2171,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2175,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: 2178
      start: 2129
    functionDepth: 4
    functionLinenumber: 2129
    functionLinenumberEnd: 2178
    functionName: os__getvolumepathname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os__getvolumepathname_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - _Py_ID
    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:2200,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2202,1
    - Dst: os__path_splitroot_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2205,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2196
    functionDepth: 3
    functionLinenumber: 2196
    functionLinenumberEnd: 2212
    functionName: os__path_splitroot
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os__path_splitroot_impl
    - 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:2243,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2245,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2262,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2265,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2270,1
    - Dst: os__path_exists_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2273,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2274,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2277,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2281,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: 2284
      start: 2230
    functionDepth: 5
    functionLinenumber: 2230
    functionLinenumberEnd: 2284
    functionName: os__path_exists
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os__path_exists_impl
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:2315,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2317,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2334,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2337,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2342,1
    - Dst: os__path_lexists_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2345,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2346,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2349,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2353,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: 2356
      start: 2302
    functionDepth: 5
    functionLinenumber: 2302
    functionLinenumberEnd: 2356
    functionName: os__path_lexists
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyBool_FromLong
    - PyErr_Occurred
    - os__path_lexists_impl
    - _Py_ID
    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:2378,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2381,1
    - Dst: os__path_isdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2384,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2385,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2388,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2374
    functionDepth: 5
    functionLinenumber: 2374
    functionLinenumberEnd: 2395
    functionName: os__path_isdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - path_converter
    - os__path_isdir_impl
    - PyBool_FromLong
    - PyErr_Occurred
    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:2426,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2428,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2445,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2448,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2453,1
    - Dst: os__path_isfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2456,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2457,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2460,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2464,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: 2467
      start: 2413
    functionDepth: 5
    functionLinenumber: 2413
    functionLinenumberEnd: 2467
    functionName: os__path_isfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os__path_isfile_impl
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:2498,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2500,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2517,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2520,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2525,1
    - Dst: os__path_islink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2528,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2529,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2532,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2536,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: 2539
      start: 2485
    functionDepth: 5
    functionLinenumber: 2485
    functionLinenumberEnd: 2539
    functionName: os__path_islink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyBool_FromLong
    - PyErr_Occurred
    - os__path_islink_impl
    - _Py_ID
    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:2570,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2572,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2589,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2592,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2597,1
    - Dst: os__path_isjunction_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2600,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2601,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2604,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2608,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: 2611
      start: 2557
    functionDepth: 5
    functionLinenumber: 2557
    functionLinenumberEnd: 2611
    functionName: os__path_isjunction
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyBool_FromLong
    - PyErr_Occurred
    - os__path_isjunction_impl
    - _Py_ID
    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:2633,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2635,1
    - Dst: os__path_splitroot_ex_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2638,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2629
    functionDepth: 3
    functionLinenumber: 2629
    functionLinenumberEnd: 2645
    functionName: os__path_splitroot_ex
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - path_cleanup
    - PATH_T_INITIALIZE
    - os__path_splitroot_ex_impl
    - 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:2672,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2674,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2691,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2693,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2698,1
    - Dst: os__path_normpath_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2701,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2705,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: 2708
      start: 2659
    functionDepth: 3
    functionLinenumber: 2659
    functionLinenumberEnd: 2708
    functionName: os__path_normpath
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PATH_T_INITIALIZE
    - os__path_normpath_impl
    - _Py_ID
    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:2744,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2746,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2746,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2746,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2763,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2764,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2768,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2773,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2780,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2781,1
    - Dst: MKDIRAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2792,1
    - Dst: os_mkdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2796,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2800,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: 2803
      start: 2731
    functionDepth: 5
    functionLinenumber: 2731
    functionLinenumberEnd: 2803
    functionName: os_mkdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_mkdir_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - MKDIRAT_DIR_FD_CONVERTER
    - path_converter
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:2825,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2826,1
    - Dst: os_nice_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2819
    functionDepth: 3
    functionLinenumber: 2819
    functionLinenumberEnd: 2833
    functionName: os_nice
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_nice_impl
    - PyErr_Occurred
    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:2864,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2866,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2866,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2886,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2891,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2892,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2895,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2896,1
    - Dst: os_getpriority_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2899,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: 2903
      start: 2851
    functionDepth: 3
    functionLinenumber: 2851
    functionLinenumberEnd: 2903
    functionName: os_getpriority
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - os_getpriority_impl
    - _Py_ID
    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:2934,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2936,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2936,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2936,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2957,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2962,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2963,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2966,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2967,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2970,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2971,1
    - Dst: os_setpriority_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:2974,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: 2978
      start: 2921
    functionDepth: 3
    functionLinenumber: 2921
    functionLinenumberEnd: 2978
    functionName: os_setpriority
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_setpriority_impl
    - PyErr_Occurred
    - _Py_ID
    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:3015,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3017,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3017,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3017,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3017,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3034,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3035,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3036,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3040,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3045,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3048,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3055,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3062,1
    - Dst: os_rename_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3066,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3070,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3072,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: 3075
      start: 3002
    functionDepth: 5
    functionLinenumber: 3002
    functionLinenumberEnd: 3075
    functionName: os_rename
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - dir_fd_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os_rename_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:3110,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3112,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3112,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3112,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3112,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3129,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3130,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3131,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3135,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3140,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3143,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3150,1
    - Dst: dir_fd_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3157,1
    - Dst: os_replace_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3161,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3165,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3167,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: 3170
      start: 3097
    functionDepth: 5
    functionLinenumber: 3097
    functionLinenumberEnd: 3170
    functionName: os_replace
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - dir_fd_converter
    - os_replace_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    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:3203,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3205,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3205,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3222,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3223,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3226,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3231,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3237,1
    - Dst: os_rmdir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3241,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3245,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: 3248
      start: 3190
    functionDepth: 5
    functionLinenumber: 3190
    functionLinenumberEnd: 3248
    functionName: os_rmdir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - UNLINKAT_DIR_FD_CONVERTER
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os_rmdir_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:3277,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3279,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3299,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3304,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3305,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3308,1
    - Dst: os_system_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3312,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3313,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3316,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3320,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: 3323
      start: 3264
    functionDepth: 2
    functionLinenumber: 3264
    functionLinenumberEnd: 3323
    functionName: os_system
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_system_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyErr_Occurred
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - _Py_ID
    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:3354,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3356,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3376,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3381,1
    - Dst: os_system_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3384,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3385,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3388,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3392,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: 3395
      start: 3341
    functionDepth: 2
    functionLinenumber: 3341
    functionLinenumberEnd: 3395
    functionName: os_system
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyVarObject_HEAD_INIT
    - os_system_impl
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyUnicode_FSConverter
    - Py_XDECREF
    - _Py_ID
    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:3419,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3420,1
    - Dst: os_umask_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3427
      start: 3413
    functionDepth: 3
    functionLinenumber: 3413
    functionLinenumberEnd: 3427
    functionName: os_umask
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_umask_impl
    - PyErr_Occurred
    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:3462,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3464,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3464,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3481,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3482,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3485,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3490,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3496,1
    - Dst: os_unlink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3500,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3504,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: 3507
      start: 3449
    functionDepth: 5
    functionLinenumber: 3449
    functionLinenumberEnd: 3507
    functionName: os_unlink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_unlink_impl
    - UNLINKAT_DIR_FD_CONVERTER
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    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:3540,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3542,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3542,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3559,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3560,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3563,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3568,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3574,1
    - Dst: os_remove_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3578,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3582,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: 3585
      start: 3527
    functionDepth: 6
    functionLinenumber: 3527
    functionLinenumberEnd: 3585
    functionName: os_remove
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - UNLINKAT_DIR_FD_CONVERTER
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyTuple_GET_SIZE
    - os_remove_impl
    - _Py_ID
    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:3607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3604
    functionDepth: 3
    functionLinenumber: 3604
    functionLinenumberEnd: 3608
    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:3662,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3664,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3664,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3664,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3664,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3664,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3681,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3682,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3688,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3693,1
    - Dst: FUTIMENSAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3716,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3723,1
    - Dst: os_utime_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3728,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3732,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: 3735
      start: 3649
    functionDepth: 5
    functionLinenumber: 3649
    functionLinenumberEnd: 3735
    functionName: os_utime
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - FUTIMENSAT_DIR_FD_CONVERTER
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_utime_impl
    - PyObject_IsTrue
    - path_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    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:3762,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3764,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3783,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3788,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3789,1
    - Dst: os__exit_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3792,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: 3796
      start: 3749
    functionDepth: 1
    functionLinenumber: 3749
    functionLinenumberEnd: 3796
    functionName: os__exit
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - os__exit_impl
    - _Py_ID
    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:3821,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3824,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3827,1
    - Dst: os_execv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3831,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3835,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3838
      start: 3817
    functionDepth: 4
    functionLinenumber: 3817
    functionLinenumberEnd: 3838
    functionName: os_execv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - _PyArg_CheckPositional
    - path_cleanup
    - os_execv_impl
    - 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:3876,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3878,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3878,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3878,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3895,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3899,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3904,1
    - Dst: os_execve_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3909,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3913,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: 3916
      start: 3863
    functionDepth: 4
    functionLinenumber: 3863
    functionLinenumberEnd: 3916
    functionName: os_execve
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os_execve_impl
    - _Py_ID
    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:3975,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3977,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3977,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3977,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3977,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3977,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3977,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3977,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3994,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:3995,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4006,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4011,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4032,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4041,1
    - Dst: os_posix_spawn_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4063,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4067,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: 4070
      start: 3962
    functionDepth: 5
    functionLinenumber: 3962
    functionLinenumberEnd: 4070
    functionName: os_posix_spawn
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - os_posix_spawn_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:4129,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4131,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4131,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4131,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4131,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4131,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4131,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4131,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4148,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4149,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4160,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4165,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4186,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4195,1
    - Dst: os_posix_spawnp_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4217,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4221,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: 4224
      start: 4116
    functionDepth: 5
    functionLinenumber: 4116
    functionLinenumberEnd: 4224
    functionName: os_posix_spawnp
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - os_posix_spawnp_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:4254,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4257,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4260,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4261,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4264,1
    - Dst: os_spawnv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4268,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4275
      start: 4249
    functionDepth: 3
    functionLinenumber: 4249
    functionLinenumberEnd: 4275
    functionName: os_spawnv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - _PyArg_CheckPositional
    - path_cleanup
    - PyLong_AsInt
    - os_spawnv_impl
    - path_converter
    - PyErr_Occurred
    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:4308,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4312,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4315,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4316,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4319,1
    - Dst: os_spawnve_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4324,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4303
    functionDepth: 4
    functionLinenumber: 4303
    functionLinenumberEnd: 4331
    functionName: os_spawnve
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - _PyArg_CheckPositional
    - path_cleanup
    - os_spawnve_impl
    - PyLong_AsInt
    - path_converter
    - PyErr_Occurred
    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:4375,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4377,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4394,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4399,1
    - Dst: os_register_at_fork_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4421,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: 4425
      start: 4362
    functionDepth: 3
    functionLinenumber: 4362
    functionLinenumberEnd: 4425
    functionName: os_register_at_fork
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_register_at_fork_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:4448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4449
      start: 4445
    functionDepth: 4
    functionLinenumber: 4445
    functionLinenumberEnd: 4449
    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:4472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4473
      start: 4469
    functionDepth: 4
    functionLinenumber: 4469
    functionLinenumberEnd: 4473
    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:4504,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4506,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4525,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4530,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4531,1
    - Dst: os_sched_get_priority_max_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4534,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: 4538
      start: 4491
    functionDepth: 3
    functionLinenumber: 4491
    functionLinenumberEnd: 4538
    functionName: os_sched_get_priority_max
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_sched_get_priority_max_impl
    - PyErr_Occurred
    - _Py_ID
    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:4569,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4571,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4590,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4595,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4596,1
    - Dst: os_sched_get_priority_min_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4599,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: 4603
      start: 4556
    functionDepth: 3
    functionLinenumber: 4556
    functionLinenumberEnd: 4603
    functionName: os_sched_get_priority_min
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - os_sched_get_priority_min_impl
    - _Py_ID
    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:4629,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4630,1
    - Dst: os_sched_getscheduler_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4637
      start: 4623
    functionDepth: 3
    functionLinenumber: 4623
    functionLinenumberEnd: 4637
    functionName: os_sched_getscheduler
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_sched_getscheduler_impl
    - PyLong_AsPid
    - PyErr_Occurred
    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:4668,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4670,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4688,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4691,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4691,1
    - Dst: os_sched_param_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4701
      start: 4655
    functionDepth: 2
    functionLinenumber: 4655
    functionLinenumberEnd: 4701
    functionName: os_sched_param
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_sched_param_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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:4731,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4734,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4735,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4738,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4739,1
    - Dst: os_sched_setscheduler_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4743,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4747
      start: 4723
    functionDepth: 4
    functionLinenumber: 4723
    functionLinenumberEnd: 4747
    functionName: os_sched_setscheduler
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyLong_AsPid
    - PyErr_Occurred
    - os_sched_setscheduler_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setscheduler(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4774,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4775,1
    - Dst: os_sched_getparam_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4782
      start: 4768
    functionDepth: 3
    functionLinenumber: 4768
    functionLinenumberEnd: 4782
    functionName: os_sched_getparam
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsPid
    - os_sched_getparam_impl
    - PyErr_Occurred
    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:4810,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4813,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4814,1
    - Dst: os_sched_setparam_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4818,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4822
      start: 4803
    functionDepth: 4
    functionLinenumber: 4803
    functionLinenumberEnd: 4822
    functionName: os_sched_setparam
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_sched_setparam_impl
    - PyLong_AsPid
    - PyErr_Occurred
    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:4849,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4850,1
    - Dst: os_sched_rr_get_interval_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4853,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4854,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4857,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4861
      start: 4842
    functionDepth: 3
    functionLinenumber: 4842
    functionLinenumberEnd: 4861
    functionName: os_sched_rr_get_interval
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_sched_rr_get_interval_impl
    - PyLong_AsPid
    - PyFloat_FromDouble
    - PyErr_Occurred
    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:4882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4883
      start: 4879
    functionDepth: 3
    functionLinenumber: 4879
    functionLinenumberEnd: 4883
    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:4910,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4913,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4914,1
    - Dst: os_sched_setaffinity_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4918,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4922
      start: 4903
    functionDepth: 3
    functionLinenumber: 4903
    functionLinenumberEnd: 4922
    functionName: os_sched_setaffinity
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsPid
    - os_sched_setaffinity_impl
    - PyErr_Occurred
    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:4948,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4949,1
    - Dst: os_sched_getaffinity_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4956
      start: 4942
    functionDepth: 3
    functionLinenumber: 4942
    functionLinenumberEnd: 4956
    functionName: os_sched_getaffinity
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsPid
    - PyErr_Occurred
    - os_sched_getaffinity_impl
    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:4985,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4986,1
    - Dst: os_posix_openpt_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4989,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4990,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:4993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4978
    functionDepth: 3
    functionLinenumber: 4978
    functionLinenumberEnd: 4997
    functionName: os_posix_openpt
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_posix_openpt_impl
    - PyLong_FromLong
    - PyErr_Occurred
    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:5026,1
    - Dst: os_grantpt_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5034
      start: 5020
    functionDepth: 3
    functionLinenumber: 5020
    functionLinenumberEnd: 5034
    functionName: os_grantpt
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_grantpt_impl
    - PyObject_AsFileDescriptor
    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:5063,1
    - Dst: os_unlockpt_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5071
      start: 5057
    functionDepth: 3
    functionLinenumber: 5057
    functionLinenumberEnd: 5071
    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:5101,1
    - Dst: os_ptsname_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5109
      start: 5095
    functionDepth: 4
    functionLinenumber: 5095
    functionLinenumberEnd: 5109
    functionName: os_ptsname
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_ptsname_impl
    - PyObject_AsFileDescriptor
    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:5133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5134
      start: 5130
    functionDepth: 3
    functionLinenumber: 5130
    functionLinenumberEnd: 5134
    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:5162,1
    - Dst: os_login_tty_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5170
      start: 5156
    functionDepth: 3
    functionLinenumber: 5156
    functionLinenumberEnd: 5170
    functionName: os_login_tty
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - os_login_tty_impl
    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:5197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5198
      start: 5194
    functionDepth: 4
    functionLinenumber: 5194
    functionLinenumberEnd: 5198
    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:5219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5220
      start: 5216
    functionDepth: 2
    functionLinenumber: 5216
    functionLinenumberEnd: 5220
    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:5241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5242
      start: 5238
    functionDepth: 2
    functionLinenumber: 5238
    functionLinenumberEnd: 5242
    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:5263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5264
      start: 5260
    functionDepth: 2
    functionLinenumber: 5260
    functionLinenumberEnd: 5264
    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:5285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5286
      start: 5282
    functionDepth: 1
    functionLinenumber: 5282
    functionLinenumberEnd: 5286
    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:5316,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5319,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5320,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5324,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5328,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5329,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5332,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5333,1
    - Dst: os_getgrouplist_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5336,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5340
      start: 5309
    functionDepth: 2
    functionLinenumber: 5309
    functionLinenumberEnd: 5340
    functionName: os_getgrouplist
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - os_getgrouplist_impl
    - strlen
    - PyErr_Occurred
    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:5370,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5373,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5374,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5378,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5382,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5383,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5386,1
    - Dst: os_getgrouplist_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5389,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5393
      start: 5363
    functionDepth: 2
    functionLinenumber: 5363
    functionLinenumberEnd: 5393
    functionName: os_getgrouplist
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - os_getgrouplist_impl
    - strlen
    - _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:5414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5415
      start: 5411
    functionDepth: 3
    functionLinenumber: 5411
    functionLinenumberEnd: 5415
    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:5444,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5447,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5450,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5451,1
    - Dst: os_initgroups_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5454,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5461
      start: 5437
    functionDepth: 2
    functionLinenumber: 5437
    functionLinenumberEnd: 5461
    functionName: os_initgroups
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - os_initgroups_impl
    - PyErr_Occurred
    - PyUnicode_FSConverter
    - Py_XDECREF
    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:5490,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5493,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5496,1
    - Dst: os_initgroups_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5499,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5503,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5483
    functionDepth: 2
    functionLinenumber: 5483
    functionLinenumberEnd: 5506
    functionName: os_initgroups
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_initgroups_impl
    - Py_XDECREF
    - PyUnicode_FSConverter
    - _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:5537,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5539,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5558,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5563,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5564,1
    - Dst: os_getpgid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5567,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: 5571
      start: 5524
    functionDepth: 3
    functionLinenumber: 5524
    functionLinenumberEnd: 5571
    functionName: os_getpgid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_getpgid_impl
    - PyLong_AsPid
    - PyErr_Occurred
    - _Py_ID
    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:5592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5593
      start: 5589
    functionDepth: 1
    functionLinenumber: 5589
    functionLinenumberEnd: 5593
    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:5614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5615
      start: 5611
    functionDepth: 3
    functionLinenumber: 5611
    functionLinenumberEnd: 5615
    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:5640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5641
      start: 5637
    functionDepth: 3
    functionLinenumber: 5637
    functionLinenumberEnd: 5641
    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:5662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5663
      start: 5659
    functionDepth: 3
    functionLinenumber: 5659
    functionLinenumberEnd: 5663
    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:5684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5685
      start: 5681
    functionDepth: 2
    functionLinenumber: 5681
    functionLinenumberEnd: 5685
    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:5710,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5713,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5714,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5719,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5724,1
    - Dst: os_kill_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5729,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5733
      start: 5703
    functionDepth: 3
    functionLinenumber: 5703
    functionLinenumberEnd: 5733
    functionName: os_kill
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_kill_impl
    - PyLong_AsPid
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:5758,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5761,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5762,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5765,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5766,1
    - Dst: os_killpg_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5773
      start: 5751
    functionDepth: 3
    functionLinenumber: 5751
    functionLinenumberEnd: 5773
    functionName: os_killpg
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyLong_AsPid
    - PyErr_Occurred
    - os_killpg_impl
    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:5797,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5798,1
    - Dst: os_plock_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5805
      start: 5791
    functionDepth: 3
    functionLinenumber: 5791
    functionLinenumberEnd: 5805
    functionName: os_plock
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_plock_impl
    - PyErr_Occurred
    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:5829,1
    - Dst: os_setuid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5836
      start: 5823
    functionDepth: 3
    functionLinenumber: 5823
    functionLinenumberEnd: 5836
    functionName: os_setuid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Uid_Converter
    - os_setuid_impl
    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:5860,1
    - Dst: os_seteuid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5867
      start: 5854
    functionDepth: 3
    functionLinenumber: 5854
    functionLinenumberEnd: 5867
    functionName: os_seteuid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Uid_Converter
    - os_seteuid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_seteuid(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5891,1
    - Dst: os_setegid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5898
      start: 5885
    functionDepth: 3
    functionLinenumber: 5885
    functionLinenumberEnd: 5898
    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:5923,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5926,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5929,1
    - Dst: os_setreuid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5932,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5936
      start: 5916
    functionDepth: 3
    functionLinenumber: 5916
    functionLinenumberEnd: 5936
    functionName: os_setreuid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_setreuid_impl
    - _Py_Uid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setreuid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5961,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5964,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5967,1
    - Dst: os_setregid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:5970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5974
      start: 5954
    functionDepth: 3
    functionLinenumber: 5954
    functionLinenumberEnd: 5974
    functionName: os_setregid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _Py_Gid_Converter
    - os_setregid_impl
    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:5998,1
    - Dst: os_setgid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6005
      start: 5992
    functionDepth: 3
    functionLinenumber: 5992
    functionLinenumberEnd: 6005
    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:6052,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6054,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6073,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6078,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6079,1
    - Dst: os_wait3_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6082,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: 6086
      start: 6039
    functionDepth: 4
    functionLinenumber: 6039
    functionLinenumberEnd: 6086
    functionName: os_wait3
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_wait3_impl
    - PyErr_Occurred
    - _Py_ID
    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:6120,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6122,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6122,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6142,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6147,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6148,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6151,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6152,1
    - Dst: os_wait4_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6155,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: 6159
      start: 6107
    functionDepth: 4
    functionLinenumber: 6107
    functionLinenumberEnd: 6159
    functionName: os_wait4
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyLong_AsPid
    - PyErr_Occurred
    - os_wait4_impl
    - _Py_ID
    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:6196,1
    - Dst: idtype_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6199,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6202,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6203,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6206,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6207,1
    - Dst: os_waitid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6210,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6214
      start: 6188
    functionDepth: 3
    functionLinenumber: 6188
    functionLinenumberEnd: 6214
    functionName: os_waitid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_waitid_impl
    - PyLong_AsInt
    - idtype_t_converter
    - PyLong_AsPid
    - PyErr_Occurred
    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:6244,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6248,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6251,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6252,1
    - Dst: os_waitpid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6255,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6259
      start: 6237
    functionDepth: 3
    functionLinenumber: 6237
    functionLinenumberEnd: 6259
    functionName: os_waitpid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_waitpid_impl
    - PyLong_AsInt
    - PyLong_AsPid
    - PyErr_Occurred
    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:6289,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6293,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6296,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6297,1
    - Dst: os_waitpid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6300,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6304
      start: 6282
    functionDepth: 3
    functionLinenumber: 6282
    functionLinenumberEnd: 6304
    functionName: os_waitpid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_waitpid_impl
    - PyLong_AsInt
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    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:6328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6329
      start: 6325
    functionDepth: 3
    functionLinenumber: 6325
    functionLinenumberEnd: 6329
    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:6363,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6365,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6365,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6382,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6386,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6391,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6392,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6398,1
    - Dst: os_pidfd_open_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6402,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: 6406
      start: 6350
    functionDepth: 3
    functionLinenumber: 6350
    functionLinenumberEnd: 6406
    functionName: os_pidfd_open
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_pidfd_open_impl
    - PyLong_AsPid
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyLong_UnsignedInt_Converter
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pidfd_open(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:6445,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6447,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6447,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6447,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6464,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6469,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6474,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6475,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6478,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6479,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6485,1
    - Dst: os_pidfd_getfd_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6489,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6493
      start: 6432
    functionDepth: 3
    functionLinenumber: 6432
    functionLinenumberEnd: 6493
    functionName: os_pidfd_getfd
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - os_pidfd_getfd_impl
    - _PyLong_UnsignedInt_Converter
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pidfd_getfd(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: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: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6548,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6552,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6557,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6564,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6565,1
    - Dst: os_setns_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6569,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: 6573
      start: 6516
    functionDepth: 3
    functionLinenumber: 6516
    functionLinenumberEnd: 6573
    functionName: os_setns
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setns_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:6607,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6609,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6628,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6633,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6634,1
    - Dst: os_unshare_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6637,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: 6641
      start: 6594
    functionDepth: 3
    functionLinenumber: 6594
    functionLinenumberEnd: 6641
    functionName: os_unshare
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_unshare_impl
    - PyErr_Occurred
    - _Py_ID
    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:6679,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6681,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6681,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6698,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6699,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6702,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6707,1
    - Dst: READLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6713,1
    - Dst: os_readlink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6717,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6721,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: 6724
      start: 6666
    functionDepth: 5
    functionLinenumber: 6666
    functionLinenumberEnd: 6724
    functionName: os_readlink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os_readlink_impl
    - PyTuple_GET_SIZE
    - READLINKAT_DIR_FD_CONVERTER
    - _Py_ID
    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:6767,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6769,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6769,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6769,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6769,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6786,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6787,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6788,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6792,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6797,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6800,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6807,1
    - Dst: SYMLINKAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6819,1
    - Dst: os_symlink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6823,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6827,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6829,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: 6832
      start: 6754
    functionDepth: 4
    functionLinenumber: 6754
    functionLinenumberEnd: 6832
    functionName: os_symlink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - SYMLINKAT_DIR_FD_CONVERTER
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - os_symlink_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:6855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6856
      start: 6852
    functionDepth: 4
    functionLinenumber: 6852
    functionLinenumberEnd: 6856
    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:6901,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6903,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6920,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6924,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6929,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6930,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6936,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6937,1
    - Dst: os_timerfd_create_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6941,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: 6945
      start: 6888
    functionDepth: 2
    functionLinenumber: 6888
    functionLinenumberEnd: 6945
    functionName: os_timerfd_create
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_timerfd_create_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:6986,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6988,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6988,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:6988,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7005,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7011,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7016,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7024,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7025,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7033,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7034,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7038,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7039,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7047,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7048,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7052,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7053,1
    - Dst: os_timerfd_settime_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7058,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: 7062
      start: 6973
    functionDepth: 3
    functionLinenumber: 6973
    functionLinenumberEnd: 7062
    functionName: os_timerfd_settime
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_timerfd_settime_impl
    - PyFloat_AS_DOUBLE
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:7103,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7105,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7105,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7105,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7122,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7128,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7133,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7141,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7142,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7150,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7151,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7158,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7159,1
    - Dst: os_timerfd_settime_ns_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7163,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: 7167
      start: 7090
    functionDepth: 3
    functionLinenumber: 7090
    functionLinenumberEnd: 7167
    functionName: os_timerfd_settime_ns
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyLong_AsLongLong
    - os_timerfd_settime_ns_impl
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:7194,1
    - Dst: os_timerfd_gettime_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7202
      start: 7188
    functionDepth: 3
    functionLinenumber: 7188
    functionLinenumberEnd: 7202
    functionName: os_timerfd_gettime
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_timerfd_gettime_impl
    - PyObject_AsFileDescriptor
    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:7229,1
    - Dst: os_timerfd_gettime_ns_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7237
      start: 7223
    functionDepth: 3
    functionLinenumber: 7223
    functionLinenumberEnd: 7237
    functionName: os_timerfd_gettime_ns
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_timerfd_gettime_ns_impl
    - PyObject_AsFileDescriptor
    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:7261,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7262,1
    - Dst: os_getsid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7269
      start: 7255
    functionDepth: 3
    functionLinenumber: 7255
    functionLinenumberEnd: 7269
    functionName: os_getsid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsPid
    - PyErr_Occurred
    - os_getsid_impl
    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:7290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7291
      start: 7287
    functionDepth: 3
    functionLinenumber: 7287
    functionLinenumberEnd: 7291
    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:7316,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7319,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7320,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7323,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7324,1
    - Dst: os_setpgid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7331
      start: 7309
    functionDepth: 3
    functionLinenumber: 7309
    functionLinenumberEnd: 7331
    functionName: os_setpgid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsPid
    - PyErr_Occurred
    - os_setpgid_impl
    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:7355,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7356,1
    - Dst: os_tcgetpgrp_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7363
      start: 7349
    functionDepth: 3
    functionLinenumber: 7349
    functionLinenumberEnd: 7363
    functionName: os_tcgetpgrp
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - os_tcgetpgrp_impl
    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:7388,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7391,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7392,1
    - Dst: PyLong_AsPid
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7395,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7396,1
    - Dst: os_tcsetpgrp_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7399,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7403
      start: 7381
    functionDepth: 3
    functionLinenumber: 7381
    functionLinenumberEnd: 7403
    functionName: os_tcsetpgrp
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - os_tcsetpgrp_impl
    - PyLong_AsPid
    - PyErr_Occurred
    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:7438,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7440,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7440,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7440,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7440,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7457,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7458,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7464,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7469,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7472,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7473,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7480,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7481,1
    - Dst: OPENAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7492,1
    - Dst: os_open_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7496,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7497,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7500,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7504,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: 7507
      start: 7425
    functionDepth: 3
    functionLinenumber: 7425
    functionLinenumberEnd: 7507
    functionName: os_open
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyLong_FromLong
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os_open_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - OPENAT_DIR_FD_CONVERTER
    - _Py_ID
    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:7534,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7536,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7555,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7560,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7561,1
    - Dst: os_close_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7564,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: 7568
      start: 7521
    functionDepth: 3
    functionLinenumber: 7521
    functionLinenumberEnd: 7568
    functionName: os_close
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_close_impl
    - PyErr_Occurred
    - _Py_ID
    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:7589,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7592,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7593,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7596,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7597,1
    - Dst: os_closerange_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7604
      start: 7582
    functionDepth: 1
    functionLinenumber: 7582
    functionLinenumberEnd: 7604
    functionName: os_closerange
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - os_closerange_impl
    - PyErr_Occurred
    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:7625,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7626,1
    - Dst: os_dup_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7629,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7630,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7633,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7637
      start: 7618
    functionDepth: 2
    functionLinenumber: 7618
    functionLinenumberEnd: 7637
    functionName: os_dup
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_dup_impl
    - PyLong_FromLong
    - PyErr_Occurred
    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:7666,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7668,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7668,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7668,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7685,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7691,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7696,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7697,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7700,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7701,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7707,1
    - Dst: os_dup2_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7712,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7713,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7716,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: 7720
      start: 7653
    functionDepth: 1
    functionLinenumber: 7653
    functionLinenumberEnd: 7720
    functionName: os_dup2
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyErr_Occurred
    - os_dup2_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:7753,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7756,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7757,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7760,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7761,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7764,1
    - Dst: os_lockf_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7767,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7771
      start: 7745
    functionDepth: 3
    functionLinenumber: 7745
    functionLinenumberEnd: 7771
    functionName: os_lockf
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - Py_off_t_converter
    - os_lockf_impl
    - PyErr_Occurred
    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:7809,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7812,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7813,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7816,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7819,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7820,1
    - Dst: os_lseek_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7823,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7824,1
    - Dst: PyLong_FromPy_off_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7827,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7831
      start: 7800
    functionDepth: 3
    functionLinenumber: 7800
    functionLinenumberEnd: 7831
    functionName: os_lseek
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_lseek_impl
    - PyLong_AsInt
    - Py_off_t_converter
    - PyErr_Occurred
    - PyLong_FromPy_off_t
    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:7852,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7855,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7856,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7861,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7864,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7866,1
    - Dst: os_read_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7871,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7875
      start: 7845
    functionDepth: 3
    functionLinenumber: 7845
    functionLinenumberEnd: 7875
    functionName: os_read
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_Occurred
    - os_read_impl
    - _PyNumber_Index
    - Py_DECREF
    - 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:7907,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7910,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7911,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7914,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7915,1
    - Dst: os_readinto_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7918,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7919,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7922,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7927,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7931
      start: 7899
    functionDepth: 2
    functionLinenumber: 7899
    functionLinenumberEnd: 7931
    functionName: os_readinto
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_readinto_impl
    - PyLong_AsInt
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - PyObject_GetBuffer
    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:7963,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7966,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7967,1
    - Dst: os_readv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7971,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7972,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:7975,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7979
      start: 7955
    functionDepth: 3
    functionLinenumber: 7955
    functionLinenumberEnd: 7979
    functionName: os_readv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_readv_impl
    - PyLong_AsInt
    - PyLong_FromSsize_t
    - PyErr_Occurred
    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:8008,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8011,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8012,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8017,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8020,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8022,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8027,1
    - Dst: os_pread_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8030,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8034
      start: 8000
    functionDepth: 3
    functionLinenumber: 8000
    functionLinenumberEnd: 8034
    functionName: os_pread
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - Py_off_t_converter
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - os_pread_impl
    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:8079,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8082,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8083,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8087,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8093,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8094,1
    - Dst: os_preadv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8098,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8099,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8102,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8106
      start: 8069
    functionDepth: 3
    functionLinenumber: 8069
    functionLinenumberEnd: 8106
    functionName: os_preadv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_preadv_impl
    - PyLong_AsInt
    - Py_off_t_converter
    - PyLong_FromSsize_t
    - PyErr_Occurred
    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:8130,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8133,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8134,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8137,1
    - Dst: os_write_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8140,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8141,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8144,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8153
      start: 8122
    functionDepth: 2
    functionLinenumber: 8122
    functionLinenumberEnd: 8153
    functionName: os_write
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - os_write_impl
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - PyObject_GetBuffer
    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:8185,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8187,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8187,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8187,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8187,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8187,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8187,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8187,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8204,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8213,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8218,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8219,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8222,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8223,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8226,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8229,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: os_sendfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8252,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: 8256
      start: 8172
    functionDepth: 3
    functionLinenumber: 8172
    functionLinenumberEnd: 8256
    functionName: os_sendfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_off_t_converter
    - os_sendfile_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8290,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8292,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8292,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8292,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8292,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8292,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8292,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8292,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8309,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8318,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8323,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8324,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8327,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8328,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8331,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8336,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8339,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8341,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8346,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8366,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8367,1
    - Dst: os_sendfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8371,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8375
      start: 8277
    functionDepth: 3
    functionLinenumber: 8277
    functionLinenumberEnd: 8375
    functionName: os_sendfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_off_t_converter
    - PyErr_SetString
    - os_sendfile_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sendfile(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:8407,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8409,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8409,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8409,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8409,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8431,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8436,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8437,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8440,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8441,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8447,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8449,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8450,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8457,1
    - Dst: os_sendfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8462,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8466
      start: 8394
    functionDepth: 3
    functionLinenumber: 8394
    functionLinenumberEnd: 8466
    functionName: os_sendfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - os_sendfile_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:8492,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8495,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8496,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8499,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8500,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8503,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8504,1
    - Dst: os__fcopyfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8507,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8511
      start: 8484
    functionDepth: 3
    functionLinenumber: 8484
    functionLinenumberEnd: 8511
    functionName: os__fcopyfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - os__fcopyfile_impl
    - PyErr_Occurred
    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:8543,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8545,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8564,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8570,1
    - Dst: os_fstat_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8573,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: 8577
      start: 8530
    functionDepth: 5
    functionLinenumber: 8530
    functionLinenumberEnd: 8577
    functionName: os_fstat
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fstat_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    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:8601,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8602,1
    - Dst: os_isatty_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8605,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8606,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8613
      start: 8594
    functionDepth: 1
    functionLinenumber: 8594
    functionLinenumberEnd: 8613
    functionName: os_isatty
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_isatty_impl
    - PyBool_FromLong
    - PyErr_Occurred
    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:8635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8636
      start: 8632
    functionDepth: 0
    functionLinenumber: 8632
    functionLinenumberEnd: 8636
    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:8666,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8667,1
    - Dst: os_pipe2_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8674
      start: 8660
    functionDepth: 3
    functionLinenumber: 8660
    functionLinenumberEnd: 8674
    functionName: os_pipe2
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_pipe2_impl
    - PyErr_Occurred
    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:8703,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8706,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8707,1
    - Dst: os_writev_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8711,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8712,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8715,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8719
      start: 8695
    functionDepth: 3
    functionLinenumber: 8695
    functionLinenumberEnd: 8719
    functionName: os_writev
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - os_writev_impl
    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:8750,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8753,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8754,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8757,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8760,1
    - Dst: os_pwrite_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8763,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8764,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8767,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8772,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8776
      start: 8741
    functionDepth: 3
    functionLinenumber: 8741
    functionLinenumberEnd: 8776
    functionName: os_pwrite
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - Py_off_t_converter
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - PyObject_GetBuffer
    - 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:8824,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8827,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8828,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8832,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8838,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8839,1
    - Dst: os_pwritev_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8843,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8844,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8847,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8851
      start: 8814
    functionDepth: 3
    functionLinenumber: 8814
    functionLinenumberEnd: 8851
    functionName: os_pwritev
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - Py_off_t_converter
    - PyLong_FromSsize_t
    - os_pwritev_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pwritev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8898,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8900,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8900,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8900,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8900,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8900,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8917,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8924,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8929,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8930,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8933,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8934,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8939,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8942,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8944,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8949,1
    - Dst: os_copy_file_range_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:8965,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8969
      start: 8885
    functionDepth: 3
    functionLinenumber: 8885
    functionLinenumberEnd: 8969
    functionName: os_copy_file_range
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyErr_Occurred
    - os_copy_file_range_impl
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_copy_file_range(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:9020,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9022,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9022,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9022,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9022,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9022,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9022,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9039,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9047,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9052,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9053,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9056,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9057,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9062,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9065,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9067,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9072,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9092,1
    - Dst: os_splice_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9096,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9100
      start: 9007
    functionDepth: 3
    functionLinenumber: 9007
    functionLinenumberEnd: 9100
    functionName: os_splice
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - os_splice_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _PyLong_UnsignedInt_Converter
    - _Py_ID
    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:9137,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9139,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9139,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9139,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9156,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9157,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9161,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9166,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9174,1
    - Dst: MKFIFOAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9185,1
    - Dst: os_mkfifo_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9189,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9193,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: 9196
      start: 9124
    functionDepth: 3
    functionLinenumber: 9124
    functionLinenumberEnd: 9196
    functionName: os_mkfifo
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyErr_Occurred
    - MKFIFOAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - os_mkfifo_impl
    - _Py_ID
    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:9241,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9243,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9243,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9243,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9243,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9260,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9261,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9266,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9271,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9278,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9279,1
    - Dst: _Py_Dev_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9287,1
    - Dst: MKNODAT_DIR_FD_CONVERTER
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9298,1
    - Dst: os_mknod_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9302,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9306,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: 9309
      start: 9228
    functionDepth: 3
    functionLinenumber: 9228
    functionLinenumberEnd: 9309
    functionName: os_mknod
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - _Py_Dev_Converter
    - path_cleanup
    - os_mknod_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - MKNODAT_DIR_FD_CONVERTER
    - path_converter
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:9333,1
    - Dst: os_major_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9340
      start: 9327
    functionDepth: 2
    functionLinenumber: 9327
    functionLinenumberEnd: 9340
    functionName: os_major
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Dev_Converter
    - os_major_impl
    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:9364,1
    - Dst: os_minor_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9371
      start: 9358
    functionDepth: 2
    functionLinenumber: 9358
    functionLinenumberEnd: 9371
    functionName: os_minor
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Dev_Converter
    - os_minor_impl
    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:9397,1
    - Dst: _Py_Dev_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9400,1
    - Dst: _Py_Dev_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9403,1
    - Dst: os_makedev_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9406,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9407,1
    - Dst: _PyLong_FromDev
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9410,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9414
      start: 9389
    functionDepth: 2
    functionLinenumber: 9389
    functionLinenumberEnd: 9414
    functionName: os_makedev
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Dev_Converter
    - _PyArg_CheckPositional
    - _PyLong_FromDev
    - PyErr_Occurred
    - 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:9439,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9442,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9443,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9446,1
    - Dst: os_ftruncate_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9449,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9453
      start: 9432
    functionDepth: 3
    functionLinenumber: 9432
    functionLinenumberEnd: 9453
    functionName: os_ftruncate
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - Py_off_t_converter
    - PyErr_Occurred
    - os_ftruncate_impl
    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:9488,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9490,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9490,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9507,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9510,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9515,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9518,1
    - Dst: os_truncate_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9521,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9525,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: 9528
      start: 9475
    functionDepth: 4
    functionLinenumber: 9475
    functionLinenumberEnd: 9528
    functionName: os_truncate
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_off_t_converter
    - path_converter
    - os_truncate_impl
    - _Py_ID
    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:9559,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9562,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9563,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9566,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9569,1
    - Dst: os_posix_fallocate_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9572,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9576
      start: 9551
    functionDepth: 3
    functionLinenumber: 9551
    functionLinenumberEnd: 9576
    functionName: os_posix_fallocate
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_posix_fallocate_impl
    - PyLong_AsInt
    - Py_off_t_converter
    - PyErr_Occurred
    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:9612,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9615,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9616,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9619,1
    - Dst: Py_off_t_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9622,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9625,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9626,1
    - Dst: os_posix_fadvise_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9629,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9633
      start: 9603
    functionDepth: 3
    functionLinenumber: 9603
    functionLinenumberEnd: 9633
    functionName: os_posix_fadvise
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - Py_off_t_converter
    - PyErr_Occurred
    - 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:9658,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9661,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9662,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9666,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9667,1
    - Dst: os_putenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9671,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9675
      start: 9651
    functionDepth: 4
    functionLinenumber: 9651
    functionLinenumberEnd: 9675
    functionName: os_putenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_putenv_impl
    - PyUnicode_Check
    - _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:9700,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9703,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9706,1
    - Dst: os_putenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9709,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9713,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9715,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9718
      start: 9693
    functionDepth: 4
    functionLinenumber: 9693
    functionLinenumberEnd: 9718
    functionName: os_putenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_putenv_impl
    - Py_XDECREF
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_putenv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9742,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9743,1
    - Dst: os_unsetenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9751
      start: 9736
    functionDepth: 4
    functionLinenumber: 9736
    functionLinenumberEnd: 9751
    functionName: os_unsetenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_unsetenv_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:9775,1
    - Dst: os_unsetenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9778,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9785
      start: 9769
    functionDepth: 4
    functionLinenumber: 9769
    functionLinenumberEnd: 9785
    functionName: os_unsetenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_unsetenv_impl
    - Py_XDECREF
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unsetenv(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os__clearenv_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9806
      start: 9802
    functionDepth: 3
    functionLinenumber: 9802
    functionLinenumberEnd: 9806
    functionName: os__clearenv
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__clearenv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__clearenv(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9828,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9829,1
    - Dst: os_strerror_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9836
      start: 9822
    functionDepth: 2
    functionLinenumber: 9822
    functionLinenumberEnd: 9836
    functionName: os_strerror
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_strerror_impl
    - PyErr_Occurred
    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:9859,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9860,1
    - Dst: os_WCOREDUMP_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9863,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9864,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9867,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9871
      start: 9852
    functionDepth: 2
    functionLinenumber: 9852
    functionLinenumberEnd: 9871
    functionName: os_WCOREDUMP
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_WCOREDUMP_impl
    - PyBool_FromLong
    - PyErr_Occurred
    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:9905,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9907,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9927,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9932,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9933,1
    - Dst: os_WIFCONTINUED_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9936,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9937,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9940,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: 9944
      start: 9892
    functionDepth: 2
    functionLinenumber: 9892
    functionLinenumberEnd: 9944
    functionName: os_WIFCONTINUED
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_WIFCONTINUED_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:9975,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9977,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:9997,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10002,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10003,1
    - Dst: os_WIFSTOPPED_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10006,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10007,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10010,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: 10014
      start: 9962
    functionDepth: 2
    functionLinenumber: 9962
    functionLinenumberEnd: 10014
    functionName: os_WIFSTOPPED
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_WIFSTOPPED_impl
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:10045,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10047,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10067,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10072,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10073,1
    - Dst: os_WIFSIGNALED_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10076,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10077,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10080,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: 10084
      start: 10032
    functionDepth: 2
    functionLinenumber: 10032
    functionLinenumberEnd: 10084
    functionName: os_WIFSIGNALED
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_WIFSIGNALED_impl
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:10115,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10117,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10137,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10143,1
    - Dst: os_WIFEXITED_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10146,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10147,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10150,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: 10154
      start: 10102
    functionDepth: 2
    functionLinenumber: 10102
    functionLinenumberEnd: 10154
    functionName: os_WIFEXITED
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_WIFEXITED_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyErr_Occurred
    - _Py_ID
    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:10185,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10187,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10207,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10213,1
    - Dst: os_WEXITSTATUS_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10216,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10217,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10220,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: 10224
      start: 10172
    functionDepth: 2
    functionLinenumber: 10172
    functionLinenumberEnd: 10224
    functionName: os_WEXITSTATUS
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_WEXITSTATUS_impl
    - PyLong_FromLong
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    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:10255,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10257,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10277,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10282,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10283,1
    - Dst: os_WTERMSIG_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10286,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10287,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10290,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: 10294
      start: 10242
    functionDepth: 2
    functionLinenumber: 10242
    functionLinenumberEnd: 10294
    functionName: os_WTERMSIG
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - os_WTERMSIG_impl
    - _Py_ID
    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:10325,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10327,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10347,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10352,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10353,1
    - Dst: os_WSTOPSIG_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10356,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10357,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10360,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: 10364
      start: 10312
    functionDepth: 2
    functionLinenumber: 10312
    functionLinenumberEnd: 10364
    functionName: os_WSTOPSIG
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - os_WSTOPSIG_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    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:10390,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10391,1
    - Dst: os_fstatvfs_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10398
      start: 10384
    functionDepth: 4
    functionLinenumber: 10384
    functionLinenumberEnd: 10398
    functionName: os_fstatvfs
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_fstatvfs_impl
    - PyErr_Occurred
    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:10434,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10436,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10453,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10455,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10460,1
    - Dst: os_statvfs_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10463,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10467,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: 10470
      start: 10421
    functionDepth: 5
    functionLinenumber: 10421
    functionLinenumberEnd: 10470
    functionName: os_statvfs
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - os_statvfs_impl
    - _Py_ID
    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:10501,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10503,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10520,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10522,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10527,1
    - Dst: os__getdiskusage_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10530,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10534,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: 10537
      start: 10488
    functionDepth: 3
    functionLinenumber: 10488
    functionLinenumberEnd: 10537
    functionName: os__getdiskusage
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os__getdiskusage_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - _Py_ID
    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:10565,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10568,1
    - Dst: conv_confname
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10572,1
    - Dst: os_fpathconf_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10575,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10576,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10579,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10583
      start: 10557
    functionDepth: 3
    functionLinenumber: 10557
    functionLinenumberEnd: 10583
    functionName: os_fpathconf
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_FromLong
    - conv_confname
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - 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:10619,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10621,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10621,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10638,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10642,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10647,1
    - Dst: conv_confname
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10650,1
    - Dst: os_pathconf_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10653,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10654,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10657,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10661,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: 10664
      start: 10606
    functionDepth: 5
    functionLinenumber: 10606
    functionLinenumberEnd: 10664
    functionName: os_pathconf
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyLong_FromLong
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_pathconf_impl
    - path_converter
    - conv_confname
    - PyErr_Occurred
    - _Py_ID
    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:10688,1
    - Dst: os_confstr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10695
      start: 10682
    functionDepth: 3
    functionLinenumber: 10682
    functionLinenumberEnd: 10695
    functionName: os_confstr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - conv_confname
    - os_confstr_impl
    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:10720,1
    - Dst: os_sysconf_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10723,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10724,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10731
      start: 10713
    functionDepth: 3
    functionLinenumber: 10713
    functionLinenumberEnd: 10731
    functionName: os_sysconf
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - conv_confname
    - PyErr_Occurred
    - PyLong_FromLong
    - os_sysconf_impl
    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:10753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10754
      start: 10750
    functionDepth: 2
    functionLinenumber: 10750
    functionLinenumberEnd: 10754
    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:10811,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10813,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10813,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10813,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10813,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10813,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10830,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10831,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10834,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10837,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10842,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10849,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10850,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10853,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10862,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10863,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10866,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10875,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10882,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10883,1
    - Dst: os_startfile_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10887,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10891,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10893,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10895,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10897,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: 10900
      start: 10798
    functionDepth: 4
    functionLinenumber: 10798
    functionLinenumberEnd: 10900
    functionName: os_startfile
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_startfile_impl
    - path_converter
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyErr_Occurred
    - PyMem_Free
    - PyTuple_GET_SIZE
    - PyUnicode_AsWideCharString
    - _Py_ID
    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:10925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10926
      start: 10922
    functionDepth: 2
    functionLinenumber: 10922
    functionLinenumberEnd: 10926
    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:10958,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10960,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10979,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10984,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10985,1
    - Dst: os_device_encoding_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:10988,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: 10992
      start: 10945
    functionDepth: 2
    functionLinenumber: 10945
    functionLinenumberEnd: 10992
    functionName: os_device_encoding
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_device_encoding_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    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:11016,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11019,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11022,1
    - Dst: _Py_Uid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11025,1
    - Dst: os_setresuid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11028,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11032
      start: 11008
    functionDepth: 3
    functionLinenumber: 11008
    functionLinenumberEnd: 11032
    functionName: os_setresuid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_setresuid_impl
    - _Py_Uid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setresuid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11058,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11061,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11064,1
    - Dst: _Py_Gid_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11067,1
    - Dst: os_setresgid_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11070,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11074
      start: 11050
    functionDepth: 3
    functionLinenumber: 11050
    functionLinenumberEnd: 11074
    functionName: os_setresgid
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_setresgid_impl
    - _Py_Gid_Converter
    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:11095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11096
      start: 11092
    functionDepth: 3
    functionLinenumber: 11092
    functionLinenumberEnd: 11096
    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:11117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11118
      start: 11114
    functionDepth: 3
    functionLinenumber: 11114
    functionLinenumberEnd: 11118
    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:11156,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11158,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11158,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11158,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11175,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11176,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11177,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11180,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11185,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11188,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11194,1
    - Dst: os_getxattr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11199,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11203,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11205,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: 11208
      start: 11143
    functionDepth: 5
    functionLinenumber: 11143
    functionLinenumberEnd: 11208
    functionName: os_getxattr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_getxattr_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    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:11247,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11249,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11249,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11266,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11267,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11268,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11273,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11278,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11281,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11284,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11291,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11292,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11303,1
    - Dst: os_setxattr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11308,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11312,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11314,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11317,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: 11321
      start: 11234
    functionDepth: 5
    functionLinenumber: 11234
    functionLinenumberEnd: 11321
    functionName: os_setxattr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - PyBuffer_Release
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - os_setxattr_impl
    - _Py_ID
    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:11359,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11361,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11361,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11361,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11378,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11379,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11380,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11383,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11388,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11391,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11397,1
    - Dst: os_removexattr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11402,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11406,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11408,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: 11411
      start: 11346
    functionDepth: 5
    functionLinenumber: 11346
    functionLinenumberEnd: 11411
    functionName: os_removexattr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - os_removexattr_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:11449,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11451,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11451,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11468,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11469,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11472,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11481,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11492,1
    - Dst: os_listxattr_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11497,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11501,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: 11504
      start: 11436
    functionDepth: 5
    functionLinenumber: 11436
    functionLinenumberEnd: 11504
    functionName: os_listxattr
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_listxattr_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - path_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11528,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11531,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11533,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11538,1
    - Dst: os_urandom_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11543,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11547
      start: 11520
    functionDepth: 2
    functionLinenumber: 11520
    functionLinenumberEnd: 11547
    functionName: os_urandom
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_urandom_impl
    - PyErr_SetString
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:11575,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11577,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11577,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11594,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11598,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11603,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11610,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11618,1
    - Dst: os_memfd_create_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11626,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11630,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: 11633
      start: 11562
    functionDepth: 2
    functionLinenumber: 11562
    functionLinenumberEnd: 11633
    functionName: os_memfd_create
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_memfd_create_impl
    - PyLong_AsNativeBytes
    - Py_XDECREF
    - PyUnicode_FSConverter
    - PyTuple_GET_SIZE
    - _Py_ID
    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:11664,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11666,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11666,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11683,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11687,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11692,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11698,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11699,1
    - Dst: os_eventfd_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11703,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: 11707
      start: 11651
    functionDepth: 2
    functionLinenumber: 11651
    functionLinenumberEnd: 11707
    functionName: os_eventfd
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_eventfd_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyLong_UnsignedInt_Converter
    - _Py_ID
    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:11738,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11740,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11759,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11764,1
    - Dst: os_eventfd_read_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11768,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: 11772
      start: 11725
    functionDepth: 2
    functionLinenumber: 11725
    functionLinenumberEnd: 11772
    functionName: os_eventfd_read
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os_eventfd_read_impl
    - PyObject_AsFileDescriptor
    - _Py_ID
    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:11803,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11805,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11805,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11825,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11830,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11834,1
    - Dst: os_eventfd_write_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11837,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: 11841
      start: 11790
    functionDepth: 2
    functionLinenumber: 11790
    functionLinenumberEnd: 11841
    functionName: os_eventfd_write
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_eventfd_write_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyLong_UnsignedLongLong_Converter
    - PyObject_AsFileDescriptor
    - _Py_ID
    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:11875,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11877,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11883,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11884,1
    - Dst: os_get_terminal_size_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11888,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11892
      start: 11871
    functionDepth: 3
    functionLinenumber: 11871
    functionLinenumberEnd: 11892
    functionName: os_get_terminal_size
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - fileno
    - os_get_terminal_size_impl
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_Occurred
    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:11913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11910
    functionDepth: 2
    functionLinenumber: 11910
    functionLinenumberEnd: 11914
    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:11935,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11936,1
    - Dst: os_get_inheritable_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11939,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11940,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11943,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11947
      start: 11928
    functionDepth: 2
    functionLinenumber: 11928
    functionLinenumberEnd: 11947
    functionName: os_get_inheritable
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_get_inheritable_impl
    - PyBool_FromLong
    - PyErr_Occurred
    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:11968,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11971,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11972,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11975,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11976,1
    - Dst: os_set_inheritable_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:11979,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11983
      start: 11961
    functionDepth: 2
    functionLinenumber: 11961
    functionLinenumberEnd: 11983
    functionName: os_set_inheritable
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - os_set_inheritable_impl
    - PyErr_Occurred
    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:12006,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12007,1
    - Dst: os_get_handle_inheritable_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12010,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12011,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12014,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12018
      start: 11999
    functionDepth: 2
    functionLinenumber: 11999
    functionLinenumberEnd: 12018
    functionName: os_get_handle_inheritable
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_get_handle_inheritable_impl
    - PyBool_FromLong
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:12044,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12047,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12048,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12051,1
    - Dst: os_set_handle_inheritable_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12055,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12059
      start: 12037
    functionDepth: 2
    functionLinenumber: 12037
    functionLinenumberEnd: 12059
    functionName: os_set_handle_inheritable
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_set_handle_inheritable_impl
    - PyObject_IsTrue
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    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:12084,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12085,1
    - Dst: os_get_blocking_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12088,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12089,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12092,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12096
      start: 12077
    functionDepth: 2
    functionLinenumber: 12077
    functionLinenumberEnd: 12096
    functionName: os_get_blocking
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - os_get_blocking_impl
    - PyBool_FromLong
    - PyErr_Occurred
    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:12120,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12123,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12124,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12127,1
    - Dst: os_set_blocking_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12135
      start: 12113
    functionDepth: 2
    functionLinenumber: 12113
    functionLinenumberEnd: 12135
    functionName: os_set_blocking
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - os_set_blocking_impl
    - PyObject_IsTrue
    - PyErr_Occurred
    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:12155,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12156,1
    - Dst: os_DirEntry_is_symlink_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12159,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12160,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12163,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: 12167
      start: 12149
    functionDepth: 2
    functionLinenumber: 12149
    functionLinenumberEnd: 12167
    functionName: os_DirEntry_is_symlink
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBool_FromLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - os_DirEntry_is_symlink_impl
    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:12187,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12188,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12195
      start: 12181
    functionDepth: 1
    functionLinenumber: 12181
    functionLinenumberEnd: 12195
    functionName: os_DirEntry_is_junction
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - os_DirEntry_is_junction_impl
    - PyErr_Occurred
    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:12223,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12225,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12242,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12245,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12253,1
    - Dst: os_DirEntry_stat_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12258,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: 12262
      start: 12210
    functionDepth: 6
    functionLinenumber: 12210
    functionLinenumberEnd: 12262
    functionName: os_DirEntry_stat
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_DirEntry_stat_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:12290,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12292,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12309,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12313,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12321,1
    - Dst: os_DirEntry_is_dir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12326,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12327,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12330,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: 12334
      start: 12277
    functionDepth: 8
    functionLinenumber: 12277
    functionLinenumberEnd: 12334
    functionName: os_DirEntry_is_dir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBool_FromLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - os_DirEntry_is_dir_impl
    - _Py_ID
    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:12362,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12364,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12381,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12385,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12393,1
    - Dst: os_DirEntry_is_file_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12398,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12399,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12402,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: 12406
      start: 12349
    functionDepth: 8
    functionLinenumber: 12349
    functionLinenumberEnd: 12406
    functionName: os_DirEntry_is_file
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBool_FromLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - os_DirEntry_is_file_impl
    - _Py_ID
    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:12423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12424
      start: 12420
    functionDepth: 4
    functionLinenumber: 12420
    functionLinenumberEnd: 12424
    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:12441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12442
      start: 12438
    functionDepth: 1
    functionLinenumber: 12438
    functionLinenumberEnd: 12442
    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:12475,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12477,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12494,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12495,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12497,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12505,1
    - Dst: os_scandir_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12509,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12513,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: 12516
      start: 12462
    functionDepth: 5
    functionLinenumber: 12462
    functionLinenumberEnd: 12516
    functionName: os_scandir
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - os_scandir_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - path_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    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:12547,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12549,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12568,1
    - Dst: os_fspath_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12574,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: 12578
      start: 12534
    functionDepth: 3
    functionLinenumber: 12534
    functionLinenumberEnd: 12578
    functionName: os_fspath
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fspath_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:12607,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12609,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12609,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12626,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12630,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12637,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12640,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12642,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12651,1
    - Dst: os_getrandom_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12655,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: 12659
      start: 12594
    functionDepth: 3
    functionLinenumber: 12594
    functionLinenumberEnd: 12659
    functionName: os_getrandom
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - os_getrandom_impl
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:12697,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12699,1
    - Dst: PATH_T_INITIALIZE_P
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12716,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12718,1
    - Dst: path_converter
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12723,1
    - Dst: os__add_dll_directory_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12726,1
    - Dst: path_cleanup
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12730,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: 12733
      start: 12684
    functionDepth: 3
    functionLinenumber: 12684
    functionLinenumberEnd: 12733
    functionName: os__add_dll_directory
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE_P
    - path_cleanup
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - os__add_dll_directory_impl
    - path_converter
    - _Py_ID
    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:12768,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12770,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12789,1
    - Dst: os__remove_dll_directory_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12795,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: 12799
      start: 12755
    functionDepth: 3
    functionLinenumber: 12755
    functionLinenumberEnd: 12799
    functionName: os__remove_dll_directory
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - os__remove_dll_directory_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:12842,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12844,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12863,1
    - Dst: os_waitstatus_to_exitcode_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:12869,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: 12873
      start: 12829
    functionDepth: 2
    functionLinenumber: 12829
    functionLinenumberEnd: 12873
    functionName: os_waitstatus_to_exitcode
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - os_waitstatus_to_exitcode_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:12894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12895
      start: 12891
    functionDepth: 2
    functionLinenumber: 12891
    functionLinenumberEnd: 12895
    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:12914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12915
      start: 12911
    functionDepth: 1
    functionLinenumber: 12911
    functionLinenumberEnd: 12915
    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:12932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12933
      start: 12929
    functionDepth: 2
    functionLinenumber: 12929
    functionLinenumberEnd: 12933
    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:12950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12951
      start: 12947
    functionDepth: 3
    functionLinenumber: 12947
    functionLinenumberEnd: 12951
    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:12970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12971
      start: 12967
    functionDepth: 1
    functionLinenumber: 12967
    functionLinenumberEnd: 12971
    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:13002,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:13004,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:13023,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:13028,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:13029,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:13033,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:13037,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:13038,1
    - Dst: os__emscripten_log_impl
      Src: /src/cpython/Modules/clinic/posixmodule.c.h:13041,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: 13045
      start: 12989
    functionDepth: 1
    functionLinenumber: 12989
    functionLinenumberEnd: 13045
    functionName: os__emscripten_log
    functionSourceFile: /src/cpython/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - os__emscripten_log_impl
    - strlen
    - _Py_ID
    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:31,1
    - Dst: binascii_a2b_uu_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:34,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 42
    functionName: binascii_a2b_uu
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - ascii_buffer_converter
    - binascii_a2b_uu_impl
    - PyBuffer_Release
    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:69,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:71,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:88,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:92,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:97,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:103,1
    - Dst: binascii_b2a_uu_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:108,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:113,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: 117
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 117
    functionName: binascii_b2a_uu
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - binascii_b2a_uu_impl
    - PyObject_IsTrue
    - PyBuffer_Release
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_uu(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:160,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:162,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:179,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:187,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:192,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:199,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:208,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/binascii.c.h:217,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/binascii.c.h:218,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:227,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:234,1
    - Dst: binascii_a2b_base64_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:239,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:244,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:247,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 74
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 251
    functionName: binascii_a2b_base64
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - ascii_buffer_converter
    - binascii_a2b_base64_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBytes_Check
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:285,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:285,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:285,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:285,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:302,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:309,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:314,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:321,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:330,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:338,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:346,1
    - Dst: binascii_b2a_base64_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:350,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:355,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:359,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 363
    functionName: binascii_b2a_base64
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBuffer_Release
    - _PyLong_Size_t_Converter
    - PyTuple_GET_SIZE
    - binascii_b2a_base64_impl
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:402,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:404,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:404,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:404,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:404,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:421,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:428,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:433,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:440,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:449,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:458,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:465,1
    - Dst: binascii_a2b_ascii85_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:470,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:475,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:478,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 482
    functionName: binascii_a2b_ascii85
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - ascii_buffer_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBuffer_Release
    - binascii_a2b_ascii85_impl
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_ascii85(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:520,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:522,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:522,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:522,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:522,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:539,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:546,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:551,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:558,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:567,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:575,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:583,1
    - Dst: binascii_b2a_ascii85_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:588,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:593,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 597
    functionName: binascii_b2a_ascii85
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBuffer_Release
    - binascii_b2a_ascii85_impl
    - _PyLong_Size_t_Converter
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_ascii85(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:632,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:634,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:634,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:634,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:651,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:657,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:662,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/binascii.c.h:669,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/binascii.c.h:670,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:679,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:686,1
    - Dst: binascii_a2b_base85_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:691,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:696,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:699,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 619
    functionDepth: 3
    functionLinenumber: 619
    functionLinenumberEnd: 703
    functionName: binascii_a2b_base85
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - ascii_buffer_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBytes_Check
    - binascii_a2b_base85_impl
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_base85(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:735,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:737,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:737,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:737,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:754,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:760,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:765,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:772,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:781,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:788,1
    - Dst: binascii_b2a_base85_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:792,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:797,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:801,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: 805
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 805
    functionName: binascii_b2a_base85
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBuffer_Release
    - _PyLong_Size_t_Converter
    - binascii_b2a_base85_impl
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_base85(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:842,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:844,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:844,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:844,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:844,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:861,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:868,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:873,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:880,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/binascii.c.h:889,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/binascii.c.h:890,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:899,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:906,1
    - Dst: binascii_a2b_base32_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:911,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:916,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:919,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 923
    functionName: binascii_a2b_base32
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - ascii_buffer_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBytes_Check
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - binascii_a2b_base32_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_base32(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:955,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:957,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:957,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:957,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:974,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:980,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:985,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:992,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:1001,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:1008,1
    - Dst: binascii_b2a_base32_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1012,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1017,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1021,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: 1025
      start: 942
    functionDepth: 3
    functionLinenumber: 942
    functionLinenumberEnd: 1025
    functionName: binascii_b2a_base32
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBuffer_Release
    - _PyLong_Size_t_Converter
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - binascii_b2a_base32_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_base32(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:1046,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:1049,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/binascii.c.h:1053,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/binascii.c.h:1061,1
    - Dst: binascii_crc_hqx_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1068,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1073,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1077
    functionName: binascii_crc_hqx
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - PyBuffer_Release
    - PyLong_AsNativeBytes
    - binascii_crc_hqx_impl
    - PyObject_GetBuffer
    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:1099,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:1102,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/binascii.c.h:1109,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/binascii.c.h:1117,1
    - Dst: binascii_crc32_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1125,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/binascii.c.h:1126,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/binascii.c.h:1129,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1134,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1138
    functionName: binascii_crc32
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - binascii_crc32_impl
    - PyErr_WarnEx
    - PyBuffer_Release
    - PyLong_AsNativeBytes
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:1183,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1185,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1185,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1185,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:1202,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:1207,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:1212,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/binascii.c.h:1226,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/binascii.c.h:1228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/binascii.c.h:1229,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/binascii.c.h:1231,1
    - Dst: binascii_b2a_hex_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1237,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1242,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: 1246
      start: 1170
    functionDepth: 2
    functionLinenumber: 1170
    functionLinenumberEnd: 1246
    functionName: binascii_b2a_hex
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - binascii_b2a_hex_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:1283,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1285,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1285,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1285,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:1302,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:1307,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:1312,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/binascii.c.h:1326,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/binascii.c.h:1328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/binascii.c.h:1329,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/binascii.c.h:1331,1
    - Dst: binascii_hexlify_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1337,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1342,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: 1346
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1346
    functionName: binascii_hexlify
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - binascii_hexlify_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_hexlify(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:1380,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1382,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:1399,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:1403,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:1408,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:1414,1
    - Dst: binascii_a2b_hex_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1418,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1423,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1426,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1367
    functionDepth: 3
    functionLinenumber: 1367
    functionLinenumberEnd: 1430
    functionName: binascii_a2b_hex
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - ascii_buffer_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - binascii_a2b_hex_impl
    - PyBuffer_Release
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/binascii.c.h:1463,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1465,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:1482,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:1486,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:1491,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:1497,1
    - Dst: binascii_unhexlify_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1501,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1506,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1509,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1450
    functionDepth: 4
    functionLinenumber: 1450
    functionLinenumberEnd: 1513
    functionName: binascii_unhexlify
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - ascii_buffer_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - binascii_unhexlify_impl
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_unhexlify(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:1540,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1542,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1542,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:1559,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:1563,1
    - Dst: ascii_buffer_converter
      Src: /src/cpython/Modules/clinic/binascii.c.h:1568,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:1574,1
    - Dst: binascii_a2b_qp_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1579,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1584,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: 1587
      start: 1527
    functionDepth: 2
    functionLinenumber: 1527
    functionLinenumberEnd: 1587
    functionName: binascii_a2b_qp
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - ascii_buffer_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBuffer_Release
    - PyTuple_GET_SIZE
    - binascii_a2b_qp_impl
    - _Py_ID
    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:1619,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1621,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1621,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1621,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/binascii.c.h:1621,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/binascii.c.h:1638,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/binascii.c.h:1644,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/binascii.c.h:1649,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:1656,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:1665,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/binascii.c.h:1673,1
    - Dst: binascii_b2a_qp_impl
      Src: /src/cpython/Modules/clinic/binascii.c.h:1678,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/binascii.c.h:1683,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: 1687
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1687
    functionName: binascii_b2a_qp
    functionSourceFile: /src/cpython/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - binascii_b2a_qp_impl
    - PyObject_IsTrue
    - PyBuffer_Release
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _csv_unregister_dialect_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:
    - _csv_get_dialect_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _csv_field_size_limit_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:51,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:52,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:55,1
    - Dst: _lsprof_Profiler_getstats_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:56,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:57,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: 61
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: _lsprof_Profiler_getstats
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - _lsprof_Profiler_getstats_impl
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - 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:82,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:87,1
    - Dst: _lsprof_Profiler__pystart_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:88,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: _lsprof_Profiler__pystart_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _lsprof_Profiler__pystart_callback_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:116,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:122,1
    - Dst: _lsprof_Profiler__pythrow_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:123,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 108
    functionDepth: 6
    functionLinenumber: 108
    functionLinenumberEnd: 128
    functionName: _lsprof_Profiler__pythrow_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _lsprof_Profiler__pythrow_callback_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:152,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:158,1
    - Dst: _lsprof_Profiler__pyreturn_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:159,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 164
    functionName: _lsprof_Profiler__pyreturn_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _lsprof_Profiler__pyreturn_callback_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:188,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:195,1
    - Dst: _lsprof_Profiler__ccall_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:196,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 179
    functionDepth: 6
    functionLinenumber: 179
    functionLinenumberEnd: 201
    functionName: _lsprof_Profiler__ccall_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - _lsprof_Profiler__ccall_callback_impl
    - Py_END_CRITICAL_SECTION
    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:227,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:234,1
    - Dst: _lsprof_Profiler__creturn_callback_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:235,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 6
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: _lsprof_Profiler__creturn_callback
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - _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:275,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:277,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:277,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:294,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:298,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:307,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:315,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:320,1
    - Dst: _lsprof_Profiler_enable_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:321,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:322,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 326
    functionName: _lsprof_Profiler_enable
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - _lsprof_Profiler_enable_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_enable(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/_lsprof.c.h:345,1
    - Dst: _lsprof_Profiler_disable_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:346,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: _lsprof_Profiler_disable
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _lsprof_Profiler_disable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lsprof_Profiler_disable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:369,1
    - Dst: _lsprof_Profiler_clear_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:370,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: _lsprof_Profiler_clear
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _lsprof_Profiler_clear_impl
    - Py_END_CRITICAL_SECTION
    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:404,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:406,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:406,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:406,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:406,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:424,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:425,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:431,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:431,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:446,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:447,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:451,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:452,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:461,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:469,1
    - Dst: profiler_init_impl
      Src: /src/cpython/Modules/clinic/_lsprof.c.h:474,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 478
    functionName: profiler_init
    functionSourceFile: /src/cpython/Modules/clinic/_lsprof.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyFloat_AS_DOUBLE
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyFloat_AsDouble
    - PyObject_IsTrue
    - PyFloat_CheckExact
    - profiler_init_impl
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int profiler_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:42,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:45,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:49,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:50,1
    - Dst: fcntl_fcntl_impl
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:58,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 62
    functionName: fcntl_fcntl
    functionSourceFile: /src/cpython/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - fcntl_fcntl_impl
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_fcntl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:112,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:115,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:119,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:120,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:124,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:132,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:146,1
    - Dst: fcntl_ioctl_impl
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:151,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 155
    functionName: fcntl_ioctl
    functionSourceFile: /src/cpython/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyObject_AsFileDescriptor
    - fcntl_ioctl_impl
    - PyIndex_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_ioctl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:179,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:182,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:186,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:187,1
    - Dst: fcntl_flock_impl
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 194
    functionName: fcntl_flock
    functionSourceFile: /src/cpython/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - fcntl_flock_impl
    - PyLong_AsInt
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_flock(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:240,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:243,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:247,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:248,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:262,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:263,1
    - Dst: fcntl_lockf_impl
      Src: /src/cpython/Modules/clinic/fcntlmodule.c.h:267,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 271
    functionName: fcntl_lockf
    functionSourceFile: /src/cpython/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - fcntl_lockf_impl
    - PyLong_AsInt
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    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:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:39,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_struct.c.h:57,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_struct.c.h:60,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_struct.c.h:60,1
    - Dst: Struct_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 70
    functionName: Struct
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 1
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Struct_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_struct.c.h:97,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:99,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_struct.c.h:117,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_struct.c.h:120,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_struct.c.h:120,1
    - Dst: Struct___init___impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 130
    functionName: Struct___init__
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 1
    functionsReached:
    - Struct___init___impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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:154,1
    - Dst: Struct_unpack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:157,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: Struct_unpack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - Struct_unpack_impl
    - PyBuffer_Release
    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:199,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:201,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:201,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_struct.c.h:218,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_struct.c.h:222,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:227,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_struct.c.h:235,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_struct.c.h:237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:238,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_struct.c.h:240,1
    - Dst: Struct_unpack_from_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:246,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:251,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: 255
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 255
    functionName: Struct_unpack_from
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - Struct_unpack_from_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    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:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: Struct_iter_unpack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - Struct_iter_unpack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_iter_unpack(PyObject *self, PyObject *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_pack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 312
    functionName: Struct_pack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - Struct_pack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_pack(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_struct.c.h:342,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:345,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_struct.c.h:346,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_struct.c.h:351,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_struct.c.h:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:354,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_struct.c.h:356,1
    - Dst: Struct_pack_into_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:363,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:368,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 372
    functionName: Struct_pack_into
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyErr_Occurred
    - Struct_pack_into_impl
    - _PyNumber_Index
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct___sizeof___impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: Struct___sizeof__
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - Struct___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _clearcache_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 407
    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:428,1
    - Dst: calcsize_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:431,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_struct.c.h:432,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_struct.c.h:435,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 442
    functionName: calcsize
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_XDECREF
    - calcsize_impl
    - PyErr_Occurred
    - cache_struct_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calcsize(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_struct.c.h:468,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/clinic/_struct.c.h:471,1
    - Dst: pack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:476,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 483
    functionName: pack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 16
    functionsReached:
    - Py_XDECREF
    - _PyArg_CheckPositional
    - pack_impl
    - cache_struct_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_struct.c.h:514,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/clinic/_struct.c.h:517,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:520,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_struct.c.h:521,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_struct.c.h:526,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_struct.c.h:528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:529,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_struct.c.h:531,1
    - Dst: pack_into_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:538,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:542,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:545,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 549
    functionName: pack_into
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - pack_into_impl
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyLong_AsSsize_t
    - PyErr_Occurred
    - Py_XDECREF
    - _PyNumber_Index
    - Py_DECREF
    - PyObject_GetBuffer
    - cache_struct_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pack_into(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_struct.c.h:573,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/clinic/_struct.c.h:576,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:579,1
    - Dst: unpack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:582,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:586,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:589,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 566
    functionDepth: 4
    functionLinenumber: 566
    functionLinenumberEnd: 593
    functionName: unpack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 3
    functionsReached:
    - _PyArg_CheckPositional
    - PyBuffer_Release
    - PyObject_GetBuffer
    - Py_XDECREF
    - unpack_impl
    - cache_struct_converter
    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:624,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:626,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_struct.c.h:626,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_struct.c.h:643,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_struct.c.h:648,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/clinic/_struct.c.h:653,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_struct.c.h:656,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_struct.c.h:664,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_struct.c.h:666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:667,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_struct.c.h:669,1
    - Dst: unpack_from_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:675,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:679,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_struct.c.h:682,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: 686
      start: 611
    functionDepth: 4
    functionLinenumber: 611
    functionLinenumberEnd: 686
    functionName: unpack_from
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - PyLong_AsSsize_t
    - unpack_from_impl
    - PyErr_Occurred
    - Py_XDECREF
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - cache_struct_converter
    - _Py_ID
    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:712,1
    - Dst: cache_struct_converter
      Src: /src/cpython/Modules/clinic/_struct.c.h:715,1
    - Dst: iter_unpack_impl
      Src: /src/cpython/Modules/clinic/_struct.c.h:719,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_struct.c.h:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 726
    functionName: iter_unpack
    functionSourceFile: /src/cpython/Modules/clinic/_struct.c.h
    functionUses: 0
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _tkinter_tkapp_eval_impl
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _tkinter_tkapp_evalfile_impl
    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:
    - _tkinter_tkapp_record_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _tkinter_tkapp_adderrorinfo_impl
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _tkinter_tkapp_exprlong_impl
    - strlen
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _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:
    - _tkinter_tkapp_exprboolean_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _tkinter_tkapp_createcommand_impl
    - strlen
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _tkinter_tkapp_deletecommand_impl
    - strlen
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - _tkinter_tkapp_createfilehandler_impl
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _tkinter_tkapp_createtimerhandler_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _tkinter_tkapp_mainloop_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _tkinter_tkapp_dooneevent_impl
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - _tkinter_create_impl
    - PyLong_AsInt
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    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:925,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:926,1
    - Dst: _tkinter_setbusywaitinterval_impl
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 933
    functionName: _tkinter_setbusywaitinterval
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _tkinter_setbusywaitinterval_impl
    - PyErr_Occurred
    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:953,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:954,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_tkinter.c.h:957,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 961
    functionName: _tkinter_getbusywaitinterval
    functionSourceFile: /src/cpython/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_getbusywaitinterval_impl
    - PyLong_FromLong
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - zlib_compress_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 11
    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: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:193,1
    - Dst: zlib_decompress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:199,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:204,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 208
    functionName: zlib_decompress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - zlib_decompress_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    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:260,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:262,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:262,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:262,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:262,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:262,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:262,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:279,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:287,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:296,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:297,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:305,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:306,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:314,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:315,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:323,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:324,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:332,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:333,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:340,1
    - Dst: zlib_compressobj_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:344,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:349,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: 353
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 353
    functionName: zlib_compressobj
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - zlib_compressobj_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:386,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:388,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:388,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:405,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:409,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:418,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:419,1
    - Dst: zlib_decompressobj_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:428,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: 432
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 432
    functionName: zlib_decompressobj
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - zlib_decompressobj_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:474,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:479,1
    - Dst: zlib_Compress_compress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:482,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:487,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: 491
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 491
    functionName: zlib_Compress_compress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Compress_compress_impl
    - _PyArg_UnpackKeywords
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_compress(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/zlibmodule.c.h:530,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:532,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:549,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:553,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:558,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:566,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:571,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:576,1
    - Dst: zlib_Decompress_decompress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:582,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:587,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 517
    functionDepth: 4
    functionLinenumber: 517
    functionLinenumberEnd: 591
    functionName: zlib_Decompress_decompress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Decompress_decompress_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    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:631,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:639,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:640,1
    - Dst: zlib_Compress_flush_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:644,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: 648
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 648
    functionName: zlib_Compress_flush
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_UnpackKeywords
    - zlib_Compress_flush_impl
    - PyErr_Occurred
    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:667,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:668,1
    - Dst: zlib_Compress_copy_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:671,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: 672
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 672
    functionName: zlib_Compress_copy
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - 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: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:692,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:693,1
    - Dst: zlib_Compress___copy___impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:696,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: 697
      start: 689
    functionDepth: 4
    functionLinenumber: 689
    functionLinenumberEnd: 697
    functionName: zlib_Compress___copy__
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - 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:735,1
    - Dst: zlib_Compress___deepcopy___impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:741,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: 745
      start: 715
    functionDepth: 4
    functionLinenumber: 715
    functionLinenumberEnd: 745
    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:766,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:767,1
    - Dst: zlib_Decompress_copy_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:770,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: 771
      start: 763
    functionDepth: 3
    functionLinenumber: 763
    functionLinenumberEnd: 771
    functionName: zlib_Decompress_copy
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - 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:791,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:792,1
    - Dst: zlib_Decompress___copy___impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:795,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: 796
      start: 788
    functionDepth: 4
    functionLinenumber: 788
    functionLinenumberEnd: 796
    functionName: zlib_Decompress___copy__
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Decompress___copy___impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:834,1
    - Dst: zlib_Decompress___deepcopy___impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:840,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: 844
      start: 814
    functionDepth: 4
    functionLinenumber: 814
    functionLinenumberEnd: 844
    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:884,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:894,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:897,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:899,1
    - Dst: zlib_Decompress_flush_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:905,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: 909
      start: 864
    functionDepth: 3
    functionLinenumber: 864
    functionLinenumberEnd: 909
    functionName: zlib_Decompress_flush
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - zlib_Decompress_flush_impl
    - Py_DECREF
    - 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:952,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:954,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:954,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:971,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:975,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:980,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:988,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:991,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:993,1
    - Dst: zlib__ZlibDecompressor_decompress_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:999,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1004,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: 1008
      start: 939
    functionDepth: 2
    functionLinenumber: 939
    functionLinenumberEnd: 1008
    functionName: zlib__ZlibDecompressor_decompress
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - zlib__ZlibDecompressor_decompress_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    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:1040,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1042,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1042,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1060,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1061,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1065,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1065,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1074,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1075,1
    - Dst: zlib__ZlibDecompressor_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1084,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1027
    functionDepth: 4
    functionLinenumber: 1027
    functionLinenumberEnd: 1088
    functionName: zlib__ZlibDecompressor
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib__ZlibDecompressor_impl
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1114,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1117,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1124,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1132,1
    - Dst: zlib_adler32_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1140,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1145,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1149
    functionName: zlib_adler32
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - zlib_adler32_impl
    - PyErr_WarnEx
    - PyBuffer_Release
    - PyLong_AsNativeBytes
    - PyObject_GetBuffer
    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:1184,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1188,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1196,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1204,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1212,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1219,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1220,1
    - Dst: zlib_adler32_combine_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1224,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1225,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1228,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1232
    functionName: zlib_adler32_combine
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - zlib_adler32_combine_impl
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyLong_Check
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    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:1259,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1262,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1269,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1277,1
    - Dst: zlib_crc32_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1285,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1286,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1289,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1294,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1298
    functionName: zlib_crc32
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - zlib_crc32_impl
    - PyBuffer_Release
    - PyLong_AsNativeBytes
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyLong_FromUnsignedLong
    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:1333,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1337,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1345,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1353,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1361,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1368,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1369,1
    - Dst: zlib_crc32_combine_impl
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1373,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1374,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/clinic/zlibmodule.c.h:1377,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1381
    functionName: zlib_crc32_combine
    functionSourceFile: /src/cpython/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyLong_Check
    - PyErr_Occurred
    - zlib_crc32_combine_impl
    - PyLong_FromUnsignedLong
    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:
    - _winapi_CloseHandle_impl
    - PyArg_Parse
    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:
    - _winapi_ConnectNamedPipe_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _winapi_CreateEventW_impl
    - PyErr_Occurred
    - PyMem_Free
    - HANDLE_TO_PYNUM
    - _Py_ID
    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
    - _winapi_CreateFile_impl
    - PyErr_Occurred
    - PyMem_Free
    - HANDLE_TO_PYNUM
    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:
    - _winapi_CreateFileMapping_impl
    - _PyArg_ParseStack
    - PyMem_Free
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    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:
    - _PyArg_CheckPositional
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyMem_Free
    - _winapi_CreateJunction_impl
    - 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:
    - _winapi_CreateMutexW_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - PyErr_Occurred
    - PyMem_Free
    - HANDLE_TO_PYNUM
    - _Py_ID
    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
    - _winapi_CreateNamedPipe_impl
    - PyMem_Free
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/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:
    - _winapi_CreatePipe_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreatePipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/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:
    - HANDLE_TO_PYNUM
    - _winapi_DuplicateHandle_impl
    - _PyArg_ParseStack
    - PyErr_Occurred
    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:
    - _winapi_ExitProcess_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ExitProcess(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetCurrentProcess_impl
      Src: /src/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:
    - HANDLE_TO_PYNUM
    - _winapi_GetCurrentProcess_impl
    - PyErr_Occurred
    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:
    - PyLong_FromUnsignedLong
    - PyArg_Parse
    - PyErr_Occurred
    - _winapi_GetExitCodeProcess_impl
    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:
    - _winapi_GetLastError_impl
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _winapi_GetLongPathName_impl
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _winapi_GetShortPathName_impl
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - _Py_ID
    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:
    - HANDLE_TO_PYNUM
    - PyErr_Occurred
    - PyArg_Parse
    - _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:
    - PyLong_FromLong
    - _winapi_GetVersion_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetVersion(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/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:
    - HANDLE_TO_PYNUM
    - _PyArg_ParseStack
    - PyErr_Occurred
    - _winapi_MapViewOfFile_impl
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - PyErr_Occurred
    - PyMem_Free
    - HANDLE_TO_PYNUM
    - _winapi_OpenEventW_impl
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _winapi_OpenMutexW_impl
    - PyErr_Occurred
    - PyMem_Free
    - HANDLE_TO_PYNUM
    - _Py_ID
    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
    - _winapi_OpenFileMapping_impl
    - PyMem_Free
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_OpenFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/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:
    - HANDLE_TO_PYNUM
    - _winapi_OpenProcess_impl
    - _PyArg_ParseStack
    - PyErr_Occurred
    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:
    - _winapi_PeekNamedPipe_impl
    - _PyArg_ParseStack
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _winapi_LCMapStringEx_impl
    - PyMem_Free
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _winapi_ReadFile_impl
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _winapi_ReleaseMutex_impl
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _winapi_ResetEvent_impl
    - _Py_ID
    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:
    - _winapi_SetEvent_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _Py_ID
    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:
    - _winapi_TerminateProcess_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_TerminateProcess(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/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:
    - PyLong_FromSize_t
    - PyArg_Parse
    - PyErr_Occurred
    - _winapi_VirtualQuerySize_impl
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _winapi_BatchedWaitForMultipleObjects_impl
    - _Py_ID
    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:
    - _winapi_WaitForMultipleObjects_impl
    - _PyArg_ParseStack
    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
    - PyLong_FromLong
    - PyErr_Occurred
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _winapi_WriteFile_impl
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - PyErr_Occurred
    - _winapi_GetFileType_impl
    - PyLong_FromUnsignedLong
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _winapi__mimetypes_read_windows_registry_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _winapi_NeedCurrentDirectoryForExePath_impl
    - PyBool_FromLong
    - PyErr_Occurred
    - 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:
    - _winapi_CopyFile2_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - PyMem_Free
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CopyFile2(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2214,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2220,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2221,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2227,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2230,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2231,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2234,1
    - Dst: _winapi_RegisterEventSource_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2238,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2239,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2245,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2249,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2251,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2206
    functionDepth: 2
    functionLinenumber: 2206
    functionLinenumberEnd: 2254
    functionName: _winapi_RegisterEventSource
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _winapi_RegisterEventSource_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyErr_Occurred
    - PyMem_Free
    - HANDLE_TO_PYNUM
    - PyUnicode_AsWideCharString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_RegisterEventSource(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2277,1
    - Dst: _winapi_DeregisterEventSource_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2271
    functionDepth: 2
    functionLinenumber: 2271
    functionLinenumberEnd: 2284
    functionName: _winapi_DeregisterEventSource
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_DeregisterEventSource_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_DeregisterEventSource(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2321,1
    - Dst: _winapi_ReportEvent_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2325,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2311
    functionDepth: 2
    functionLinenumber: 2311
    functionLinenumberEnd: 2332
    functionName: _winapi_ReportEvent
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_ReportEvent_impl
    - _PyArg_ParseStack
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ReportEvent(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2352,1
    - Dst: _winapi_GetProcessMemoryInfo_impl
      Src: /src/cpython/Modules/clinic/_winapi.c.h:2355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2346
    functionDepth: 2
    functionLinenumber: 2346
    functionLinenumberEnd: 2359
    functionName: _winapi_GetProcessMemoryInfo
    functionSourceFile: /src/cpython/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_GetProcessMemoryInfo_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetProcessMemoryInfo(PyObject *module, PyObject *arg)'
  - 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:
    - batched_new_impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    - _PyNumber_Index
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - pairwise_new_impl
    - clinic_state
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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
    - itertools_groupby_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state_by_cls
    - clinic_state
    - _PyArg_BadArgument
    - itertools__grouper_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state
    - _PyArg_BadArgument
    - PyList_Check
    - itertools_teedataobject_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state
    - itertools__tee_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools__tee(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    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: PyErr_SetString
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:349,1
    - Dst: itertools_tee_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:355,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 359
    functionName: itertools_tee
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - itertools_tee_impl
    - PyErr_SetString
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:374,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:378,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:381,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:381,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:384,1
    - Dst: itertools_cycle_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 389
    functionName: itertools_cycle
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state
    - itertools_cycle_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:406,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:411,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:414,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:414,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:417,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:418,1
    - Dst: itertools_dropwhile_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:419,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 423
    functionName: itertools_dropwhile
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state
    - itertools_dropwhile_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:438,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:443,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:446,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:446,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:449,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:450,1
    - Dst: itertools_takewhile_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 455
    functionName: itertools_takewhile
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state
    - itertools_takewhile_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:470,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:475,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:478,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:478,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:481,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:482,1
    - Dst: itertools_starmap_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:483,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 487
    functionName: itertools_starmap
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state
    - itertools_starmap_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 509
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:536,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:538,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:538,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:556,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:560,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:560,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:568,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:571,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:578,1
    - Dst: itertools_combinations_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:583,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 587
    functionName: itertools_combinations
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - itertools_combinations_impl
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    - _PyNumber_Index
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_combinations(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:615,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:617,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:617,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:635,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:639,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:639,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:647,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:657,1
    - Dst: itertools_combinations_with_replacement_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:662,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 666
    functionName: itertools_combinations_with_replacement
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    - itertools_combinations_with_replacement_impl
    - _PyNumber_Index
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:693,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:695,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:695,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:713,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:714,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:718,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:718,1
    - Dst: itertools_permutations_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:729,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 733
    functionName: itertools_permutations
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - itertools_permutations_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:758,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:760,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:760,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:760,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:778,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:779,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:784,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:784,1
    - Dst: itertools_accumulate_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:805,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 809
    functionName: itertools_accumulate
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - itertools_accumulate_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:836,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:838,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:838,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:856,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:860,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:860,1
    - Dst: itertools_compress_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 871
    functionName: itertools_compress
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - itertools_compress_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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:888,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:893,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:896,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:896,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:899,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:900,1
    - Dst: itertools_filterfalse_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:901,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 905
    functionName: itertools_filterfalse
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - itertools_filterfalse_impl
    - PyTuple_GET_ITEM
    - clinic_state
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:937,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:939,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:939,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:957,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:958,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:962,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:962,1
    - Dst: itertools_count_impl
      Src: /src/cpython/Modules/clinic/itertoolsmodule.c.h:978,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 982
    functionName: itertools_count
    functionSourceFile: /src/cpython/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - itertools_count_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:43,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:45,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:45,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:45,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:62,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:67,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:82,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:96,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:98,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:99,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:101,1
    - Dst: faulthandler_dump_traceback_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:107,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 111
    functionName: faulthandler_dump_traceback_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler_dump_traceback_py_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:138,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:140,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:157,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:160,1
    - Dst: faulthandler_dump_c_stack_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:170,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: 174
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 174
    functionName: faulthandler_dump_c_stack_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - faulthandler_dump_c_stack_py_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_dump_c_stack_py(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:204,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:206,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:206,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:206,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:206,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:223,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:229,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:244,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:253,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:267,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:270,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:272,1
    - Dst: faulthandler_py_enable_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:278,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 282
    functionName: faulthandler_py_enable
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - faulthandler_py_enable_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 300
    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:320,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:321,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 328
    functionName: faulthandler_is_enabled
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - faulthandler_is_enabled_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_is_enabled(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:363,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:365,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:365,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:365,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:365,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:365,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:382,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:389,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:399,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:414,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:428,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:431,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:433,1
    - Dst: faulthandler_dump_traceback_later_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:439,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 443
    functionName: faulthandler_dump_traceback_later
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - faulthandler_dump_traceback_later_impl
    - _Py_ID
    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:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: 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: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:497,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:499,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:499,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:499,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:499,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:499,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:516,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:523,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:528,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:529,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:542,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:551,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:565,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:568,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:570,1
    - Dst: faulthandler_register_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:576,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 580
    functionName: faulthandler_register_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - faulthandler_register_py_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:605,1
    - Dst: faulthandler_unregister_py_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 612
    functionName: faulthandler_unregister_py
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - faulthandler_unregister_py_impl
    - PyErr_Occurred
    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:634,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:640,1
    - Dst: faulthandler__sigsegv_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:645,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 649
    functionName: faulthandler__sigsegv
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - faulthandler__sigsegv_impl
    - PyObject_IsTrue
    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:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 667
    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:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 685
    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:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 703
    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:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 723
    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:749,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:752,1
    - Dst: _PyLong_UnsignedInt_Converter
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:758,1
    - Dst: faulthandler__raise_exception_impl
      Src: /src/cpython/Modules/clinic/faulthandler.c.h:762,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 766
    functionName: faulthandler__raise_exception
    functionSourceFile: /src/cpython/Modules/clinic/faulthandler.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - faulthandler__raise_exception_impl
    - _PyLong_UnsignedInt_Converter
    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:
    - PyObject_AsFileDescriptor
    - termios_tcgetattr_impl
    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
    - termios_tcsetattr_impl
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyErr_Format
    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
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyErr_Format
    - termios_tcsendbreak_impl
    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:
    - termios_tcdrain_impl
    - PyObject_AsFileDescriptor
    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
    - termios_tcflush_impl
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyErr_Format
    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
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyErr_Format
    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:
    - termios_tcgetwinsize_impl
    - PyObject_AsFileDescriptor
    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:290,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/termios.c.h:293,1
    - Dst: termios_tcsetwinsize_impl
      Src: /src/cpython/Modules/clinic/termios.c.h:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 302
    functionName: termios_tcsetwinsize
    functionSourceFile: /src/cpython/Modules/clinic/termios.c.h
    functionUses: 0
    functionsReached:
    - termios_tcsetwinsize_impl
    - PyObject_AsFileDescriptor
    - 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:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - strlen
    - _locale_setlocale_impl
    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:
    - _PyArg_CheckPositional
    - _locale_strcoll_impl
    - PyUnicode_Check
    - _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:
    - _locale_strxfrm_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:
    - PyLong_AsInt
    - _locale_nl_langinfo_impl
    - PyErr_Occurred
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _locale_gettext_impl
    - strlen
    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:
    - _locale_dgettext_impl
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - _locale_dcgettext_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _locale_textdomain_impl
    - strlen
    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:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _locale_bindtextdomain_impl
    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:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _locale_bind_textdomain_codeset_impl
    - strlen
    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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - SHA1Type_copy_impl
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sha1_sha1_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyLong_AsInt
    - resource_getrusage_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - PyErr_Occurred
    - resource_getrlimit_impl
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - resource_setrlimit_impl
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - resource_prlimit_impl
    - PyLong_AsInt
    - PyLong_AsPid
    - PyErr_Occurred
    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
    - PyLong_FromLong
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyLong_AsPid
    - subprocess_fork_exec_impl
    - PyTuple_Check
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subprocess_fork_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:42,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:44,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:61,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:66,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:73,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:75,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:76,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:78,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:87,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:88,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:95,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:96,1
    - Dst: _interpqueues_create_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:100,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 104
    functionName: _interpqueues_create
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _interpqueues_create_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:134,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:136,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:155,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:160,1
    - Dst: _interpqueues_destroy_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:163,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: 167
      start: 121
    functionDepth: 8
    functionLinenumber: 121
    functionLinenumberEnd: 167
    functionName: _interpqueues_destroy
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpqueues_destroy_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - qidarg_converter
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_destroy(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _interpqueues_list_all_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: _interpqueues_list_all
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpqueues_list_all_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_list_all(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:215,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:217,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:217,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:217,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:217,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:234,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:240,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:245,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:253,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:254,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:261,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:262,1
    - Dst: _interpqueues_put_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:266,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 270
    functionName: _interpqueues_put
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _interpqueues_put_impl
    - PyErr_Occurred
    - qidarg_converter
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_put(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:299,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:301,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:320,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:325,1
    - Dst: _interpqueues_get_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:328,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: 332
      start: 286
    functionDepth: 7
    functionLinenumber: 286
    functionLinenumberEnd: 332
    functionName: _interpqueues_get
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _interpqueues_get_impl
    - qidarg_converter
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_get(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:361,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:363,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:382,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:387,1
    - Dst: _interpqueues_bind_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:390,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: 394
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 394
    functionName: _interpqueues_bind
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - qidarg_converter
    - _interpqueues_bind_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_bind(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:423,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:425,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:444,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:449,1
    - Dst: _interpqueues_release_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:452,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: 456
      start: 410
    functionDepth: 4
    functionLinenumber: 410
    functionLinenumberEnd: 456
    functionName: _interpqueues_release
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpqueues_release_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - qidarg_converter
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_release(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:483,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:485,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:504,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:509,1
    - Dst: _interpqueues_get_maxsize_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:512,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: 516
      start: 470
    functionDepth: 5
    functionLinenumber: 470
    functionLinenumberEnd: 516
    functionName: _interpqueues_get_maxsize
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpqueues_get_maxsize_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - qidarg_converter
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_get_maxsize(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:543,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:545,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:564,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:569,1
    - Dst: _interpqueues_get_queue_defaults_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:572,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: 576
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 576
    functionName: _interpqueues_get_queue_defaults
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _interpqueues_get_queue_defaults_impl
    - qidarg_converter
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_get_queue_defaults(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:603,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:605,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:624,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:629,1
    - Dst: _interpqueues_is_full_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:632,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: 636
      start: 590
    functionDepth: 5
    functionLinenumber: 590
    functionLinenumberEnd: 636
    functionName: _interpqueues_is_full
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _interpqueues_is_full_impl
    - _PyArg_UnpackKeywords
    - qidarg_converter
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_is_full(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:663,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:665,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:684,1
    - Dst: qidarg_converter
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:689,1
    - Dst: _interpqueues_get_count_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:692,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: 696
      start: 650
    functionDepth: 5
    functionLinenumber: 650
    functionLinenumberEnd: 696
    functionName: _interpqueues_get_count
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - qidarg_converter
    - _interpqueues_get_count_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues_get_count(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:726,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:728,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:728,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:728,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:749,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:754,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:755,1
    - Dst: _interpqueues__register_heap_types_impl
      Src: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h:761,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: 765
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 765
    functionName: _interpqueues__register_heap_types
    functionSourceFile: /src/cpython/Modules/clinic/_interpqueuesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _interpqueues__register_heap_types_impl
    - _PyArg_BadArgument
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _interpqueues__register_heap_types(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - 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: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: 6
    functionLinenumber: 40
    functionLinenumberEnd: 44
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 62
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 80
    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: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: 4
    functionLinenumber: 94
    functionLinenumberEnd: 98
    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:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 116
    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: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: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    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:155,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:158,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:159,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:162,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:163,1
    - Dst: _curses_panel_panel_move_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:166,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 6
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: _curses_panel_panel_move
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _curses_panel_panel_move_impl
    - PyErr_Occurred
    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:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 188
    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:209,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:210,1
    - Dst: _curses_panel_panel_replace_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: _curses_panel_panel_replace
    functionSourceFile: /src/cpython/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _curses_panel_panel_replace_impl
    - _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:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 241
    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:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 5
    functionLinenumber: 255
    functionLinenumberEnd: 259
    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:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 277
    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:297,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:298,1
    - Dst: _curses_panel_new_panel_impl
      Src: /src/cpython/Modules/clinic/_curses_panel.c.h:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 306
    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:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 324
    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:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 345
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:29,1
    - Dst: mmap_mmap_close_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:30,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.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: 2
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: mmap_mmap_close
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_close_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:52,1
    - Dst: mmap_mmap_read_byte_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:53,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: mmap_mmap_read_byte
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_read_byte_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_read_byte(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:75,1
    - Dst: mmap_mmap_readline_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:76,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mmap_mmap_readline
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_readline_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_readline(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:99,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:105,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:109,1
    - Dst: mmap_mmap_read_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:110,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 115
    functionName: mmap_mmap_read
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - _Py_convert_optional_to_ssize_t
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_read_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:137,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:140,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:152,1
    - Dst: mmap_mmap_find_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:153,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:154,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 163
    functionName: mmap_mmap_find
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_Release
    - mmap_mmap_find_impl
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_find(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:185,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:188,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:200,1
    - Dst: mmap_mmap_rfind_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:201,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:202,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 211
    functionName: mmap_mmap_rfind
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_Release
    - mmap_mmap_rfind_impl
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_rfind(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:230,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:233,1
    - Dst: mmap_mmap_write_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:234,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:235,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 244
    functionName: mmap_mmap_write
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_write_impl
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_write(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:264,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:265,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:269,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:274,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:282,1
    - Dst: mmap_mmap_write_byte_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:283,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 288
    functionName: mmap_mmap_write_byte
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - mmap_mmap_write_byte_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_write_byte(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:306,1
    - Dst: mmap_mmap_size_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:307,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 311
    functionName: mmap_mmap_size
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_size_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_size(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:334,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:337,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:339,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:344,1
    - Dst: mmap_mmap_resize_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:345,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 350
    functionName: mmap_mmap_resize
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_resize_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_resize(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:370,1
    - Dst: mmap_mmap_tell_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:371,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 375
    functionName: mmap_mmap_tell
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_tell_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_tell(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:402,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:404,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:421,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:426,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:437,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:440,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:442,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:453,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:456,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:458,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:467,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:468,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:472,1
    - Dst: mmap_mmap_flush_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:473,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:474,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 478
    functionName: mmap_mmap_flush
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - mmap_mmap_flush_impl
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_flush(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:498,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:503,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:506,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:508,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:516,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:517,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:521,1
    - Dst: mmap_mmap_seek_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:522,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:523,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 527
    functionName: mmap_mmap_seek
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - mmap_mmap_seek_impl
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_seek(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:546,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:547,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:551,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:555,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:556,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:559,1
    - Dst: mmap_mmap_set_name_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:560,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:561,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 565
    functionName: mmap_mmap_set_name
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - mmap_mmap_set_name_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_set_name(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_mmap_seekable_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: mmap_mmap_seekable
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - mmap_mmap_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_seekable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:604,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:609,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:612,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:614,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:621,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:624,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:626,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:633,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:636,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:638,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:643,1
    - Dst: mmap_mmap_move_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:644,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:645,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 649
    functionName: mmap_mmap_move
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap_move_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_move(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:667,1
    - Dst: mmap_mmap___enter___impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:668,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 672
    functionName: mmap_mmap___enter__
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - mmap_mmap___enter___impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap___enter__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:694,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:700,1
    - Dst: mmap_mmap___exit___impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:701,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 706
    functionName: mmap_mmap___exit__
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - mmap_mmap___exit___impl
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap___exit__(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:726,1
    - Dst: mmap_mmap___sizeof___impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:727,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 731
    functionName: mmap_mmap___sizeof__
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - mmap_mmap___sizeof___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:757,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:761,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:769,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:778,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:781,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:783,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:790,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:793,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:795,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:800,1
    - Dst: mmap_mmap__protect_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:801,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:802,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 806
    functionName: mmap_mmap__protect
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_AsNativeBytes
    - mmap_mmap__protect_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap__protect(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:832,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:835,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:836,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:844,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:847,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:849,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:859,1
    - Dst: mmap_mmap_madvise_impl
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:860,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/mmapmodule.c.h:861,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 865
    functionName: mmap_mmap_madvise
    functionSourceFile: /src/cpython/Modules/clinic/mmapmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - mmap_mmap_madvise_impl
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_mmap_madvise(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - 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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - delta_new_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - datetime_date_impl
    - _Py_ID
    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: 5
    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:
    - PyLong_AsInt
    - PyErr_Occurred
    - datetime_date_fromordinal_impl
    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:
    - datetime_date_fromisoformat_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - datetime_date_fromisocalendar_impl
    - PyErr_Occurred
    - _Py_ID
    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:393,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:396,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:397,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:401,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:402,1
    - Dst: datetime_date_strptime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 410
    functionName: datetime_date_strptime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - datetime_date_strptime_impl
    - PyUnicode_Check
    - _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:442,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:444,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:463,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:468,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:469,1
    - Dst: datetime_date_strftime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:473,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: 477
      start: 429
    functionDepth: 7
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: datetime_date_strftime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_date_strftime_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _Py_ID
    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:497,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:498,1
    - Dst: datetime_date___format___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 506
    functionName: datetime_date___format__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_date___format___impl
    - PyUnicode_Check
    - _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:525,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:527,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:527,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:527,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:545,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:550,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:550,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:555,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:556,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:559,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:560,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:563,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:564,1
    - Dst: iso_calendar_date_new_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:567,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 571
    functionName: iso_calendar_date_new
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - iso_calendar_date_new_impl
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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:599,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:601,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:601,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:601,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:618,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:619,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:620,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:621,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:623,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:632,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:633,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:641,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:642,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:649,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:650,1
    - Dst: datetime_date_replace_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:654,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: 658
      start: 586
    functionDepth: 6
    functionLinenumber: 586
    functionLinenumberEnd: 658
    functionName: datetime_date_replace
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - GET_DAY
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - GET_YEAR
    - datetime_date_replace_impl
    - GET_MONTH
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:682,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:684,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:684,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:702,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:703,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:707,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:707,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:712,1
    - Dst: DELTA_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:712,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:713,1
    - Dst: DELTA_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:713,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:720,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:721,1
    - Dst: timezone_new_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:726,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 669
    functionDepth: 4
    functionLinenumber: 669
    functionLinenumberEnd: 730
    functionName: timezone_new
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - timezone_new_impl
    - DELTA_TYPE
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:758,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:760,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:760,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:760,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:760,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:760,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:760,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:778,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:779,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:787,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:787,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:796,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:797,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:806,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:814,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:815,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:823,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:824,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:841,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:842,1
    - Dst: datetime_time_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:846,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 78
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 745
    functionDepth: 4
    functionLinenumber: 745
    functionLinenumberEnd: 850
    functionName: datetime_time
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - datetime_time_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:875,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:878,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:879,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:883,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:884,1
    - Dst: datetime_time_strptime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 892
    functionName: datetime_time_strptime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_time_strptime_impl
    - _PyArg_CheckPositional
    - PyUnicode_Check
    - _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:926,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:928,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:945,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:948,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:956,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:957,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:961,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:965,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:966,1
    - Dst: datetime_time_isoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:970,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: 974
      start: 913
    functionDepth: 5
    functionLinenumber: 913
    functionLinenumberEnd: 974
    functionName: datetime_time_isoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - datetime_time_isoformat_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1007,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1009,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1028,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1033,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1034,1
    - Dst: datetime_time_strftime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1038,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: 1042
      start: 994
    functionDepth: 7
    functionLinenumber: 994
    functionLinenumberEnd: 1042
    functionName: datetime_time_strftime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - datetime_time_strftime_impl
    - _Py_ID
    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:1062,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1063,1
    - Dst: datetime_time___format___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1071
    functionName: datetime_time___format__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_time___format___impl
    - PyUnicode_Check
    - _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:1101,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1103,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1103,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1103,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1103,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1103,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1103,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1120,1
    - Dst: TIME_GET_HOUR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1121,1
    - Dst: TIME_GET_MINUTE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1122,1
    - Dst: TIME_GET_SECOND
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1123,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1124,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1125,1
    - Dst: TIME_GET_FOLD
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1126,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1128,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1137,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1138,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1146,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1147,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1155,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1156,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1164,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1165,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1182,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1183,1
    - Dst: datetime_time_replace_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1187,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: 1191
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1191
    functionName: datetime_time_replace
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - TIME_GET_SECOND
    - TIME_GET_FOLD
    - HASTZINFO
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - TIME_GET_MINUTE
    - TIME_GET_MICROSECOND
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - datetime_time_replace_impl
    - _Py_ID
    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:1211,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1212,1
    - Dst: datetime_time_fromisoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1205
    functionDepth: 5
    functionLinenumber: 1205
    functionLinenumberEnd: 1220
    functionName: datetime_time_fromisoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_time_fromisoformat_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:1239,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1240,1
    - Dst: datetime_time___reduce_ex___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1233
    functionDepth: 3
    functionLinenumber: 1233
    functionLinenumberEnd: 1247
    functionName: datetime_time___reduce_ex__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - datetime_time___reduce_ex___impl
    - PyErr_Occurred
    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:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1260
    functionDepth: 3
    functionLinenumber: 1260
    functionLinenumberEnd: 1264
    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:1294,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1296,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1314,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1315,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1326,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1326,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1331,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1332,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1335,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1336,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1339,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1340,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1347,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1348,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1356,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1357,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1365,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1366,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1374,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1375,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1392,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1393,1
    - Dst: datetime_datetime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1397,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 93
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1281
    functionDepth: 5
    functionLinenumber: 1281
    functionLinenumberEnd: 1401
    functionName: datetime_datetime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - datetime_datetime_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1433,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1435,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1452,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1455,1
    - Dst: datetime_datetime_now_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1465,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: 1469
      start: 1420
    functionDepth: 6
    functionLinenumber: 1420
    functionLinenumberEnd: 1469
    functionName: datetime_datetime_now
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_datetime_now_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1483
    functionDepth: 6
    functionLinenumber: 1483
    functionLinenumberEnd: 1487
    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:1518,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1520,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1520,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1537,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1541,1
    - Dst: datetime_datetime_fromtimestamp_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1552,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: 1556
      start: 1505
    functionDepth: 6
    functionLinenumber: 1505
    functionLinenumberEnd: 1556
    functionName: datetime_datetime_fromtimestamp
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_datetime_fromtimestamp_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - timestamp
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1571
    functionDepth: 6
    functionLinenumber: 1571
    functionLinenumberEnd: 1579
    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:1604,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1607,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1608,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1612,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1613,1
    - Dst: datetime_datetime_strptime_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1617,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1621
    functionName: datetime_datetime_strptime
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - datetime_datetime_strptime_impl
    - PyUnicode_Check
    - _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:1649,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1651,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1651,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1651,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1668,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1673,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1678,1
    - Dst: DATE_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1678,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1679,1
    - Dst: DATE_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1679,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1683,1
    - Dst: TIME_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1683,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1684,1
    - Dst: TIME_TYPE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1684,1
    - Dst: datetime_datetime_combine_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1693,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: 1697
      start: 1636
    functionDepth: 4
    functionLinenumber: 1636
    functionLinenumberEnd: 1697
    functionName: datetime_datetime_combine
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - datetime_datetime_combine_impl
    - DATE_TYPE
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyArg_BadArgument
    - TIME_TYPE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1717,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1718,1
    - Dst: datetime_datetime_fromisoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1711
    functionDepth: 6
    functionLinenumber: 1711
    functionLinenumberEnd: 1726
    functionName: datetime_datetime_fromisoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_datetime_fromisoformat_impl
    - PyUnicode_Check
    - _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:1767,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1769,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1769,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1786,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1790,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_GET_LENGTH
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1803,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1804,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1807,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1810,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1815,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1816,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1820,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1824,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1825,1
    - Dst: datetime_datetime_isoformat_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1829,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: 1833
      start: 1754
    functionDepth: 5
    functionLinenumber: 1754
    functionLinenumberEnd: 1833
    functionName: datetime_datetime_isoformat
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - datetime_datetime_isoformat_impl
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1865,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1867,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1884,1
    - Dst: GET_YEAR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1885,1
    - Dst: GET_MONTH
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1886,1
    - Dst: GET_DAY
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1887,1
    - Dst: DATE_GET_HOUR
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1888,1
    - Dst: DATE_GET_MINUTE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1889,1
    - Dst: DATE_GET_SECOND
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1890,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1891,1
    - Dst: HASTZINFO
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1892,1
    - Dst: DATE_GET_FOLD
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1893,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1895,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1904,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1905,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1913,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1914,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1922,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1923,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1931,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1932,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1940,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1941,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1949,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1950,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1958,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1959,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1976,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1977,1
    - Dst: datetime_datetime_replace_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:1981,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: 1985
      start: 1852
    functionDepth: 4
    functionLinenumber: 1852
    functionLinenumberEnd: 1985
    functionName: datetime_datetime_replace
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - datetime_datetime_replace_impl
    - DATE_GET_FOLD
    - HASTZINFO
    - GET_DAY
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyLong_AsInt
    - DATE_GET_HOUR
    - GET_YEAR
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - DATE_GET_MINUTE
    - _Py_ID
    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:2013,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2015,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2032,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2035,1
    - Dst: datetime_datetime_astimezone_impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2045,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: 2049
      start: 2000
    functionDepth: 11
    functionLinenumber: 2000
    functionLinenumberEnd: 2049
    functionName: datetime_datetime_astimezone
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - datetime_datetime_astimezone_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:2068,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2069,1
    - Dst: datetime_datetime___reduce_ex___impl
      Src: /src/cpython/Modules/clinic/_datetimemodule.c.h:2072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2062
    functionDepth: 3
    functionLinenumber: 2062
    functionLinenumberEnd: 2076
    functionName: datetime_datetime___reduce_ex__
    functionSourceFile: /src/cpython/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - datetime_datetime___reduce_ex___impl
    - PyErr_Occurred
    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:2092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2089
    functionDepth: 3
    functionLinenumber: 2089
    functionLinenumberEnd: 2093
    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:
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - _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:
    - _PyArg_CheckPositional
    - PyDict_Check
    - _weakref__remove_dead_weakref_impl
    - _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:
    - _weakref_proxy_impl
    - _PyArg_CheckPositional
    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:
    - _PyArg_CheckPositional
    - objects_converter_impl
    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:
    - bytes_object_converter_impl
    - PyBytes_Check
    - _PyArg_BadArgument
    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:
    - byte_array_object_converter_impl
    - PyByteArray_Check
    - _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:
    - unicode_converter_impl
    - PyUnicode_Check
    - _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:
    - _PyArg_CheckPositional
    - bool_converter_impl
    - PyLong_AsInt
    - PyObject_IsTrue
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyObject_IsTrue
    - 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:
    - _PyArg_CheckPositional
    - PyBytes_Check
    - _PyArg_BadArgument
    - PyByteArray_GET_SIZE
    - char_converter_impl
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_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:
    - _PyArg_CheckPositional
    - unsigned_char_converter_impl
    - PyErr_WarnEx
    - PyErr_SetString
    - PyLong_AsNativeBytes
    - PyLong_AsLong
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - short_converter_impl
    - PyErr_SetString
    - PyLong_AsLong
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - PyLong_AsNativeBytes
    - _PyLong_UnsignedShort_Converter
    - unsigned_short_converter_impl
    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:
    - _PyArg_CheckPositional
    - PyUnicode_READ_CHAR
    - PyLong_AsInt
    - int_converter_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - PyErr_Format
    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:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - PyLong_AsNativeBytes
    - unsigned_int_converter_impl
    - _PyLong_UnsignedInt_Converter
    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:
    - long_converter_impl
    - _PyArg_CheckPositional
    - PyLong_AsLong
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - _PyLong_UnsignedLong_Converter
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - unsigned_long_converter_impl
    - PyIndex_Check
    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:
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - long_long_converter_impl
    - 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:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - _PyLong_UnsignedLongLong_Converter
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - unsigned_long_long_converter_impl
    - PyIndex_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unsigned_long_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1224,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1232,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1235,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1237,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1247,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1250,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1252,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1260,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1268,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1270,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1271,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1273,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1278,1
    - Dst: _Py_convert_optional_to_non_negative_ssize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1286,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1294,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1297,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1299,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1304,1
    - Dst: _Py_convert_optional_to_non_negative_ssize_t
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1312,1
    - Dst: py_ssize_t_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1316,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 101
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1212
    functionDepth: 2
    functionLinenumber: 1212
    functionLinenumberEnd: 1320
    functionName: py_ssize_t_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    - _Py_convert_optional_to_non_negative_ssize_t
    - PyErr_SetString
    - PyErr_Occurred
    - py_ssize_t_converter_impl
    - _PyNumber_Index
    - Py_DECREF
    - 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:1342,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1348,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1354,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1360,1
    - Dst: slice_index_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1364,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1334
    functionDepth: 2
    functionLinenumber: 1334
    functionLinenumberEnd: 1368
    functionName: slice_index_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - _PyEval_SliceIndexNotNone
    - slice_index_converter_impl
    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:1387,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1393,1
    - Dst: size_t_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1381
    functionDepth: 2
    functionLinenumber: 1381
    functionLinenumberEnd: 1401
    functionName: size_t_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - size_t_converter_impl
    - _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:1420,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1426,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1427,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1431,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1432,1
    - Dst: float_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1437,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1414
    functionDepth: 2
    functionLinenumber: 1414
    functionLinenumberEnd: 1441
    functionName: float_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - float_converter_impl
    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:1460,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1466,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1467,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1471,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1472,1
    - Dst: double_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1477,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1454
    functionDepth: 2
    functionLinenumber: 1454
    functionLinenumberEnd: 1481
    functionName: double_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - double_converter_impl
    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:1500,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1501,1
    - Dst: py_complex_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1494
    functionDepth: 2
    functionLinenumber: 1494
    functionLinenumberEnd: 1508
    functionName: py_complex_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - py_complex_converter_impl
    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:1531,1
    - Dst: str_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1522
    functionDepth: 2
    functionLinenumber: 1522
    functionLinenumberEnd: 1539
    functionName: str_converter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - str_converter_impl
    - _PyArg_ParseStack
    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:1562,1
    - Dst: str_converter_encoding_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1566,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1568,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1570,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1576
    functionName: str_converter_encoding
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - str_converter_encoding_impl
    - _PyArg_ParseStack
    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:1596,1
    - Dst: py_buffer_converter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1600,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1605,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1589
    functionDepth: 2
    functionLinenumber: 1589
    functionLinenumberEnd: 1613
    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:1639,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1641,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1641,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1661,1
    - Dst: keywords_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1668,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: 1672
      start: 1626
    functionDepth: 3
    functionLinenumber: 1626
    functionLinenumberEnd: 1672
    functionName: keywords
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 2
    functionsReached:
    - PyVarObject_HEAD_INIT
    - keywords_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:1698,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1700,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1700,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1720,1
    - Dst: keywords_kwonly_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1727,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: 1731
      start: 1685
    functionDepth: 3
    functionLinenumber: 1685
    functionLinenumberEnd: 1731
    functionName: keywords_kwonly
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - keywords_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:1757,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1759,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1759,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1759,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1776,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1781,1
    - Dst: keywords_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1798,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: 1802
      start: 1744
    functionDepth: 3
    functionLinenumber: 1744
    functionLinenumberEnd: 1802
    functionName: keywords_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    - keywords_opt_impl
    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:1829,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1831,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1831,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1831,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1831,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1848,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1854,1
    - Dst: keywords_opt_kwonly_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1881,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: 1885
      start: 1816
    functionDepth: 3
    functionLinenumber: 1816
    functionLinenumberEnd: 1885
    functionName: keywords_opt_kwonly
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - keywords_opt_kwonly_impl
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:1912,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1914,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1914,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1914,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1931,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1936,1
    - Dst: keywords_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1953,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: 1957
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 1957
    functionName: keywords_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - keywords_kwonly_opt_impl
    - PyTuple_GET_SIZE
    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:1983,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:1985,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2005,1
    - Dst: posonly_keywords_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2012,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: 2016
      start: 1970
    functionDepth: 3
    functionLinenumber: 1970
    functionLinenumberEnd: 2016
    functionName: posonly_keywords
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - posonly_keywords_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2042,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2044,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2064,1
    - Dst: posonly_kwonly_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2071,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: 2075
      start: 2029
    functionDepth: 3
    functionLinenumber: 2029
    functionLinenumberEnd: 2075
    functionName: posonly_kwonly
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - posonly_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2102,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2104,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2104,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2125,1
    - Dst: posonly_keywords_kwonly_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2133,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: 2137
      start: 2089
    functionDepth: 3
    functionLinenumber: 2089
    functionLinenumberEnd: 2137
    functionName: posonly_keywords_kwonly
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - posonly_keywords_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2164,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2166,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2166,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2166,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2183,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2189,1
    - Dst: posonly_keywords_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2207,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: 2211
      start: 2151
    functionDepth: 3
    functionLinenumber: 2151
    functionLinenumberEnd: 2211
    functionName: posonly_keywords_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - posonly_keywords_opt_impl
    - PyTuple_GET_SIZE
    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:2238,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2240,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2240,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2257,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2263,1
    - Dst: posonly_opt_keywords_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2286,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: 2290
      start: 2225
    functionDepth: 3
    functionLinenumber: 2225
    functionLinenumberEnd: 2290
    functionName: posonly_opt_keywords_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - posonly_opt_keywords_opt_impl
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:2317,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2319,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2319,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2319,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2336,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2342,1
    - Dst: posonly_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2360,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: 2364
      start: 2304
    functionDepth: 3
    functionLinenumber: 2304
    functionLinenumberEnd: 2364
    functionName: posonly_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:2391,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2393,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2393,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2410,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2416,1
    - Dst: posonly_opt_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2439,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: 2443
      start: 2378
    functionDepth: 3
    functionLinenumber: 2378
    functionLinenumberEnd: 2443
    functionName: posonly_opt_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_opt_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:2470,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2472,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2472,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2472,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2472,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2489,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2496,1
    - Dst: posonly_keywords_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2515,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: 2519
      start: 2457
    functionDepth: 3
    functionLinenumber: 2457
    functionLinenumberEnd: 2519
    functionName: posonly_keywords_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - posonly_keywords_kwonly_opt_impl
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:2548,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2550,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2550,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2550,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2550,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2567,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2574,1
    - Dst: posonly_keywords_opt_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2602,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: 2606
      start: 2535
    functionDepth: 3
    functionLinenumber: 2535
    functionLinenumberEnd: 2606
    functionName: posonly_keywords_opt_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_keywords_opt_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:2635,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2637,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2637,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2654,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2660,1
    - Dst: posonly_opt_keywords_opt_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2687,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: 2691
      start: 2622
    functionDepth: 3
    functionLinenumber: 2622
    functionLinenumberEnd: 2691
    functionName: posonly_opt_keywords_opt_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - posonly_opt_keywords_opt_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:2717,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2719,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2738,1
    - Dst: keyword_only_parameter_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2744,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: 2748
      start: 2704
    functionDepth: 3
    functionLinenumber: 2704
    functionLinenumberEnd: 2748
    functionName: keyword_only_parameter
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - keyword_only_parameter_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2767,1
    - Dst: varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2771,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2761
    functionDepth: 1
    functionLinenumber: 2761
    functionLinenumberEnd: 2778
    functionName: varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 6
    functionsReached:
    - PyTuple_FromArray
    - varpos_impl
    - Py_XDECREF
    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:2800,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2805,1
    - Dst: posonly_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2809,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2813,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2792
    functionDepth: 3
    functionLinenumber: 2792
    functionLinenumberEnd: 2816
    functionName: posonly_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - _PyArg_CheckPositional
    - posonly_varpos_impl
    - Py_XDECREF
    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:2838,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2848,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2849,1
    - Dst: posonly_req_opt_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2853,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2857,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2830
    functionDepth: 3
    functionLinenumber: 2830
    functionLinenumberEnd: 2860
    functionName: posonly_req_opt_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_FromArray
    - Py_XDECREF
    - posonly_req_opt_varpos_impl
    - PyTuple_New
    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:2887,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2889,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2911,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2919,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2920,1
    - Dst: posonly_poskw_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2924,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2928,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: 2931
      start: 2874
    functionDepth: 3
    functionLinenumber: 2874
    functionLinenumberEnd: 2931
    functionName: posonly_poskw_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - posonly_poskw_varpos_impl
    - _Py_LATIN1_CHR
    - Py_XDECREF
    - PyTuple_New
    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:2957,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2959,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2980,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2987,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2988,1
    - Dst: poskw_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2992,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:2996,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: 2999
      start: 2944
    functionDepth: 3
    functionLinenumber: 2944
    functionLinenumberEnd: 2999
    functionName: poskw_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - poskw_varpos_impl
    - Py_XDECREF
    - PyTuple_New
    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:3026,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3028,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3028,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3046,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3046,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3051,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3060,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3066,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3067,1
    - Dst: poskw_varpos_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3071,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3075,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: 3078
      start: 3013
    functionDepth: 3
    functionLinenumber: 3013
    functionLinenumberEnd: 3078
    functionName: poskw_varpos_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _Py_LATIN1_CHR
    - Py_MIN
    - poskw_varpos_kwonly_opt_impl
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    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:3105,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3107,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3107,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3107,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3125,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3125,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3131,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3149,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3150,1
    - Dst: poskw_varpos_kwonly_opt2_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3154,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3158,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: 3161
      start: 3092
    functionDepth: 3
    functionLinenumber: 3092
    functionLinenumberEnd: 3161
    functionName: poskw_varpos_kwonly_opt2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - poskw_varpos_kwonly_opt2_impl
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - Py_MIN
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    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:3187,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3189,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3207,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3211,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3221,1
    - Dst: varpos_kwonly_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3225,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3229,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: 3232
      start: 3174
    functionDepth: 3
    functionLinenumber: 3174
    functionLinenumberEnd: 3232
    functionName: varpos_kwonly_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - varpos_kwonly_opt_impl
    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:3259,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3261,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3261,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3261,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3279,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3285,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3302,1
    - Dst: varpos_kwonly_req_opt_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3306,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3310,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: 3313
      start: 3246
    functionDepth: 3
    functionLinenumber: 3246
    functionLinenumberEnd: 3313
    functionName: varpos_kwonly_req_opt
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - varpos_kwonly_req_opt_impl
    - _Py_LATIN1_CHR
    - Py_XDECREF
    - PyTuple_GET_SIZE
    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:3336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3327
    functionDepth: 2
    functionLinenumber: 3327
    functionLinenumberEnd: 3339
    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:3362,1
    - Dst: posonly_varpos_array_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3353
    functionDepth: 4
    functionLinenumber: 3353
    functionLinenumberEnd: 3373
    functionName: posonly_varpos_array
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - posonly_varpos_array_impl
    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:3397,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3407,1
    - Dst: posonly_req_opt_varpos_array_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3412
      start: 3388
    functionDepth: 4
    functionLinenumber: 3388
    functionLinenumberEnd: 3412
    functionName: posonly_req_opt_varpos_array
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - posonly_req_opt_varpos_array_impl
    - Py_MAX
    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:3440,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3442,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3465,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3473,1
    - Dst: posonly_poskw_varpos_array_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3474,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: 3478
      start: 3427
    functionDepth: 4
    functionLinenumber: 3427
    functionLinenumberEnd: 3478
    functionName: posonly_poskw_varpos_array
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_MAX
    - _Py_LATIN1_CHR
    - posonly_poskw_varpos_array_impl
    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:3506,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3508,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3508,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3508,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3508,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3526,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3526,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3533,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3552,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3553,1
    - Dst: gh_32092_oob_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3557,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3561,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: 3564
      start: 3493
    functionDepth: 1
    functionLinenumber: 3493
    functionLinenumberEnd: 3564
    functionName: gh_32092_oob
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - gh_32092_oob_impl
    - Py_MIN
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    - _Py_ID
    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:3592,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3594,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3594,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3612,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3612,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3617,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3629,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3630,1
    - Dst: gh_32092_kw_pass_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3634,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3638,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: 3641
      start: 3579
    functionDepth: 1
    functionLinenumber: 3579
    functionLinenumberEnd: 3641
    functionName: gh_32092_kw_pass
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_MIN
    - gh_32092_kw_pass_impl
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    - _Py_ID
    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:3661,1
    - Dst: gh_99233_refcount_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3665,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3672
      start: 3655
    functionDepth: 1
    functionLinenumber: 3655
    functionLinenumberEnd: 3672
    functionName: gh_99233_refcount
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - gh_99233_refcount_impl
    - Py_XDECREF
    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:3693,1
    - Dst: gh_99240_double_free_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3697,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3699,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3686
    functionDepth: 1
    functionLinenumber: 3686
    functionLinenumberEnd: 3705
    functionName: gh_99240_double_free
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - _PyArg_ParseStack
    - gh_99240_double_free_impl
    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:3734,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3736,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3736,1
    - Dst: Py_MIN
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3754,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3754,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3759,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3768,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3774,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3775,1
    - Dst: null_or_tuple_for_varargs_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3779,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3783,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: 3786
      start: 3721
    functionDepth: 3
    functionLinenumber: 3721
    functionLinenumberEnd: 3786
    functionName: null_or_tuple_for_varargs
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - null_or_tuple_for_varargs_impl
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - Py_MIN
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    - _Py_ID
    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:3812,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3814,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3833,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3838,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3839,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3843,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3848,1
    - Dst: clone_f1_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3851,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: 3855
      start: 3799
    functionDepth: 1
    functionLinenumber: 3799
    functionLinenumberEnd: 3855
    functionName: clone_f1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - clone_f1_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    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:3881,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3883,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3902,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3907,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3908,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3912,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3916,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3917,1
    - Dst: clone_f2_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3920,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: 3924
      start: 3868
    functionDepth: 1
    functionLinenumber: 3868
    functionLinenumberEnd: 3924
    functionName: clone_f2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - clone_f2_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _Py_ID
    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:3950,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3952,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3969,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3974,1
    - Dst: custom_converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3982,1
    - Dst: clone_with_conv_f1_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:3986,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: 3990
      start: 3937
    functionDepth: 2
    functionLinenumber: 3937
    functionLinenumberEnd: 3990
    functionName: clone_with_conv_f1
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - custom_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - clone_with_conv_f1_impl
    - _Py_ID
    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:4016,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4018,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4035,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4040,1
    - Dst: custom_converter
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4048,1
    - Dst: clone_with_conv_f2_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4052,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: 4056
      start: 4003
    functionDepth: 2
    functionLinenumber: 4003
    functionLinenumberEnd: 4056
    functionName: clone_with_conv_f2
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - custom_converter
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - clone_with_conv_f2_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:4073,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4074,1
    - Dst: _testclinic_TestClass_get_defining_class_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4077,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: 4078
      start: 4070
    functionDepth: 1
    functionLinenumber: 4070
    functionLinenumberEnd: 4078
    functionName: _testclinic_TestClass_get_defining_class
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _testclinic_TestClass_get_defining_class_impl
    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:4106,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4108,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4127,1
    - Dst: _testclinic_TestClass_get_defining_class_arg_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4133,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: 4137
      start: 4093
    functionDepth: 2
    functionLinenumber: 4093
    functionLinenumberEnd: 4137
    functionName: _testclinic_TestClass_get_defining_class_arg
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _testclinic_TestClass_get_defining_class_arg_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:4172,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4177,1
    - Dst: _testclinic_TestClass_defclass_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4181,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4185,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: 4188
      start: 4151
    functionDepth: 2
    functionLinenumber: 4151
    functionLinenumberEnd: 4188
    functionName: _testclinic_TestClass_defclass_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - _PyArg_UnpackKeywords
    - _testclinic_TestClass_defclass_varpos_impl
    - Py_XDECREF
    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:4227,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4234,1
    - Dst: _testclinic_TestClass_defclass_posonly_varpos_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4238,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4242,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: 4245
      start: 4204
    functionDepth: 3
    functionLinenumber: 4204
    functionLinenumberEnd: 4245
    functionName: _testclinic_TestClass_defclass_posonly_varpos
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - _PyArg_UnpackKeywords
    - _testclinic_TestClass_defclass_posonly_varpos_impl
    - Py_XDECREF
    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:4265,1
    - Dst: _testclinic_TestClass_varpos_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4266,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4272
      start: 4259
    functionDepth: 1
    functionLinenumber: 4259
    functionLinenumberEnd: 4272
    functionName: _testclinic_TestClass_varpos_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _testclinic_TestClass_varpos_no_fastcall_impl
    - Py_NewRef
    - Py_XDECREF
    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:4296,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4296,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4299,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4300,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4301,1
    - Dst: _testclinic_TestClass_posonly_varpos_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4305,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4288
    functionDepth: 3
    functionLinenumber: 4288
    functionLinenumberEnd: 4312
    functionName: _testclinic_TestClass_posonly_varpos_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _testclinic_TestClass_posonly_varpos_no_fastcall_impl
    - Py_XDECREF
    - PyTuple_GetSlice
    - PyTuple_GET_SIZE
    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:4336,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4336,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4339,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4340,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4343,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4345,1
    - Dst: _testclinic_TestClass_posonly_req_opt_varpos_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4349,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4328
    functionDepth: 3
    functionLinenumber: 4328
    functionLinenumberEnd: 4356
    functionName: _testclinic_TestClass_posonly_req_opt_varpos_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - PyTuple_GetSlice
    - PyTuple_GET_SIZE
    - _testclinic_TestClass_posonly_req_opt_varpos_no_fastcall_impl
    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:4385,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4387,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4405,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4410,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4410,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4417,1
    - Dst: _testclinic_TestClass_posonly_poskw_varpos_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4421,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4372
    functionDepth: 3
    functionLinenumber: 4372
    functionLinenumberEnd: 4428
    functionName: _testclinic_TestClass_posonly_poskw_varpos_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GetSlice
    - _Py_LATIN1_CHR
    - Py_XDECREF
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _testclinic_TestClass_posonly_poskw_varpos_no_fastcall_impl
    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:4450,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4451,1
    - Dst: _testclinic_TestClass_varpos_array_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4455
      start: 4443
    functionDepth: 2
    functionLinenumber: 4443
    functionLinenumberEnd: 4455
    functionName: _testclinic_TestClass_varpos_array_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - _testclinic_TestClass_varpos_array_no_fastcall_impl
    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:4481,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4481,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4484,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4485,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4486,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4487,1
    - Dst: _testclinic_TestClass_posonly_varpos_array_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4472
    functionDepth: 4
    functionLinenumber: 4472
    functionLinenumberEnd: 4492
    functionName: _testclinic_TestClass_posonly_varpos_array_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _testclinic_TestClass_posonly_varpos_array_no_fastcall_impl
    - _PyTuple_ITEMS
    - PyTuple_GET_SIZE
    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:4518,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4518,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4521,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4522,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4525,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4527,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4527,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4527,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4528,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4528,1
    - Dst: _testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4533
      start: 4509
    functionDepth: 4
    functionLinenumber: 4509
    functionLinenumberEnd: 4533
    functionName: _testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _testclinic_TestClass_posonly_req_opt_varpos_array_no_fastcall_impl
    - Py_MAX
    - _PyTuple_ITEMS
    - PyTuple_GET_SIZE
    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:4563,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4565,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4583,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4589,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4589,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4596,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4596,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4596,1
    - Dst: Py_MAX
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4597,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4597,1
    - Dst: _testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall_impl
      Src: /src/cpython/Modules/clinic/_testclinic.c.h:4598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4602
      start: 4550
    functionDepth: 4
    functionLinenumber: 4550
    functionLinenumberEnd: 4602
    functionName: _testclinic_TestClass_posonly_poskw_varpos_array_no_fastcall
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_MAX
    - _Py_LATIN1_CHR
    - _PyTuple_ITEMS
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _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
    - deque_pop_impl
    - Py_END_CRITICAL_SECTION
    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
    - deque_popleft_impl
    - Py_END_CRITICAL_SECTION
    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
    - deque_append_impl
    - Py_END_CRITICAL_SECTION
    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
    - deque_appendleft_impl
    - Py_END_CRITICAL_SECTION
    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
    - deque_extend_impl
    - Py_END_CRITICAL_SECTION
    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:
    - deque_extendleft_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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: 5
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: deque_copy
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque_copy_impl
    - Py_END_CRITICAL_SECTION
    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: 6
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: deque___copy__
    functionSourceFile: /src/cpython/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - deque___copy___impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - deque_rotate_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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_END_CRITICAL_SECTION
    - Py_BEGIN_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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_SIZE
    - _PyEval_SliceIndexNotNone
    - deque_index_impl
    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:
    - _PyArg_CheckPositional
    - deque_insert_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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
    - deque_remove_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyTuple_CAST
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - deque_init_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - _collections__count_elements_impl
    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_CheckPositional
    - PyTuple_GET_ITEM
    - clinic_state
    - _PyNumber_Index
    - PyErr_Occurred
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - tuplegetter_new_impl
    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:55,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:58,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:64,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:65,1
    - Dst: _socket_socket_send_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:69,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:74,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - s
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 78
    functionName: _socket_socket_send
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _socket_socket_send_impl
    - PyLong_AsInt
    - PyBuffer_Release
    - PyErr_Occurred
    - PyObject_GetBuffer
    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:105,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:108,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:114,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:115,1
    - Dst: _socket_socket_sendall_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:119,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - s
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 128
    functionName: _socket_socket_sendall
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyBuffer_Release
    - PyErr_Occurred
    - PyObject_GetBuffer
    - _socket_socket_sendall_impl
    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:170,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:181,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:182,1
    - Dst: _socket_socket_sendmsg_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:190,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - s
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 194
    functionName: _socket_socket_sendmsg
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _socket_socket_sendmsg_impl
    - PyErr_Occurred
    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:215,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:217,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:217,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:217,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:217,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:235,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:236,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:242,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:242,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:251,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:252,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:260,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:261,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:269,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:270,1
    - Dst: sock_initobj_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:279,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 283
    functionName: sock_initobj
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - sock_initobj_impl
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:303,1
    - Dst: _socket_ntohs_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 310
    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:330,1
    - Dst: _socket_ntohl_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: _socket_ntohl
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyLong_UInt32_Converter
    - _socket_ntohl_impl
    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:357,1
    - Dst: _socket_htons_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 364
    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:384,1
    - Dst: _socket_htonl_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: _socket_htonl
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyLong_UInt32_Converter
    - _socket_htonl_impl
    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:411,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:412,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:416,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:420,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:421,1
    - Dst: _socket_inet_aton_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 428
    functionName: _socket_inet_aton
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_inet_aton_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:450,1
    - Dst: _socket_inet_ntoa_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:453,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 462
    functionName: _socket_inet_ntoa
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_inet_ntoa_impl
    - PyObject_GetBuffer
    - 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:486,1
    - Dst: _socket_if_nametoindex_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:489,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 496
    functionName: _socket_if_nametoindex
    functionSourceFile: /src/cpython/Modules/clinic/socketmodule.c.h
    functionUses: 0
    functionsReached:
    - _socket_if_nametoindex_impl
    - Py_XDECREF
    - 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:520,1
    - Dst: _socket_if_indextoname_impl
      Src: /src/cpython/Modules/clinic/socketmodule.c.h:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 527
    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:
    - PyFloat_AsDouble
    - PyFloat_FromDouble
    - PyErr_Occurred
    - PyErr_Format
    - _statistics__normal_dist_inv_cdf_impl
    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:
    - _PyArg_NoPositional
    - simplequeue_get_state_by_type
    - _PyArg_NoKeywords
    - simplequeue_new_impl
    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:71,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:73,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:73,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:73,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:90,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:95,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:105,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:115,1
    - Dst: _queue_SimpleQueue_put_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:116,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:117,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: 121
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 121
    functionName: _queue_SimpleQueue_put
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - _queue_SimpleQueue_put_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:151,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:153,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:172,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:178,1
    - Dst: _queue_SimpleQueue_put_nowait_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:179,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:180,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: 184
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 184
    functionName: _queue_SimpleQueue_put_nowait
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _queue_SimpleQueue_put_nowait_impl
    - _Py_ID
    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:221,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:223,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:223,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:240,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:244,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:253,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:263,1
    - Dst: _queue_SimpleQueue_get_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:264,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:265,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: 269
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 269
    functionName: _queue_SimpleQueue_get
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - _queue_SimpleQueue_get_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:292,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:293,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:296,1
    - Dst: _queue_SimpleQueue_get_nowait_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:297,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:298,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: 302
      start: 287
    functionDepth: 5
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: _queue_SimpleQueue_get_nowait
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - _queue_SimpleQueue_get_nowait_impl
    - PyTuple_GET_SIZE
    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:322,1
    - Dst: _queue_SimpleQueue_empty_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:323,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:324,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:325,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 332
    functionName: _queue_SimpleQueue_empty
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyBool_FromLong
    - _queue_SimpleQueue_empty_impl
    - PyErr_Occurred
    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:352,1
    - Dst: _queue_SimpleQueue_qsize_impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:353,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:354,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:355,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 362
    functionName: _queue_SimpleQueue_qsize
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - _queue_SimpleQueue_qsize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_qsize(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:382,1
    - Dst: _queue_SimpleQueue___sizeof___impl
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:383,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:384,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:385,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_queuemodule.c.h:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 392
    functionName: _queue_SimpleQueue___sizeof__
    functionSourceFile: /src/cpython/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - _queue_SimpleQueue___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue___sizeof__(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
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _asyncio_Future___init___impl
    - _Py_ID
    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:107,1
    - Dst: _asyncio_Future_result_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:108,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: _asyncio_Future_result
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:137,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:140,1
    - Dst: _asyncio_Future_exception_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:141,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:142,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: 146
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: _asyncio_Future_exception
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _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:184,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:190,1
    - Dst: _asyncio_Future_set_result_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:191,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:192,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: 196
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 196
    functionName: _asyncio_Future_set_result
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _asyncio_Future_set_result_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:234,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:240,1
    - Dst: _asyncio_Future_set_exception_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:241,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:242,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: 246
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 246
    functionName: _asyncio_Future_set_exception
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - _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:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:280,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:297,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:301,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:312,1
    - Dst: _asyncio_Future_add_done_callback_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:313,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:314,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: 318
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 318
    functionName: _asyncio_Future_add_done_callback
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _asyncio_Future_add_done_callback_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:355,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:361,1
    - Dst: _asyncio_Future_remove_done_callback_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:362,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:363,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: 367
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 367
    functionName: _asyncio_Future_remove_done_callback
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future_remove_done_callback_impl
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:399,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:401,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:418,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:421,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:431,1
    - Dst: _asyncio_Future_cancel_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:432,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:433,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: 437
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 437
    functionName: _asyncio_Future_cancel
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _asyncio_Future_cancel_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:456,1
    - Dst: _asyncio_Future_cancelled_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:457,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.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: _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:483,1
    - Dst: _asyncio_Future_done_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:484,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: _asyncio_Future_done
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future_done_impl
    - Py_END_CRITICAL_SECTION
    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:507,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:508,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:511,1
    - Dst: _asyncio_Future_get_loop_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:512,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:513,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: 517
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 517
    functionName: _asyncio_Future_get_loop
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - _asyncio_Future_get_loop_impl
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyTuple_GET_SIZE
    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:537,1
    - Dst: _asyncio_Future__asyncio_awaited_by_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:538,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 542
    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:562,1
    - Dst: _asyncio_Future__asyncio_future_blocking_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:563,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 567
    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:588,1
    - Dst: _asyncio_Future__asyncio_future_blocking_set_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:589,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 593
    functionName: _asyncio_Future__asyncio_future_blocking_set
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__asyncio_future_blocking_set_impl
    - Py_END_CRITICAL_SECTION
    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:613,1
    - Dst: _asyncio_Future__log_traceback_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:614,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 608
    functionDepth: 4
    functionLinenumber: 608
    functionLinenumberEnd: 618
    functionName: _asyncio_Future__log_traceback_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__log_traceback_get_impl
    - Py_END_CRITICAL_SECTION
    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:638,1
    - Dst: _asyncio_Future__log_traceback_set_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:639,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 643
    functionName: _asyncio_Future__log_traceback_set
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__log_traceback_set_impl
    - Py_END_CRITICAL_SECTION
    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:663,1
    - Dst: _asyncio_Future__loop_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:664,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 668
    functionName: _asyncio_Future__loop_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__loop_get_impl
    - Py_END_CRITICAL_SECTION
    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:688,1
    - Dst: _asyncio_Future__callbacks_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:689,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 683
    functionDepth: 4
    functionLinenumber: 683
    functionLinenumberEnd: 693
    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:713,1
    - Dst: _asyncio_Future__result_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:714,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 708
    functionDepth: 4
    functionLinenumber: 708
    functionLinenumberEnd: 718
    functionName: _asyncio_Future__result_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:738,1
    - Dst: _asyncio_Future__exception_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:739,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 733
    functionDepth: 4
    functionLinenumber: 733
    functionLinenumberEnd: 743
    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:763,1
    - Dst: _asyncio_Future__source_traceback_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:764,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: _asyncio_Future__source_traceback_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:788,1
    - Dst: _asyncio_Future__cancel_message_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:789,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 793
    functionName: _asyncio_Future__cancel_message_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__cancel_message_get_impl
    - Py_END_CRITICAL_SECTION
    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:813,1
    - Dst: _asyncio_Future__cancel_message_set_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:814,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 818
    functionName: _asyncio_Future__cancel_message_set
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__cancel_message_set_impl
    - Py_END_CRITICAL_SECTION
    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:838,1
    - Dst: _asyncio_Future__state_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:839,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 833
    functionDepth: 4
    functionLinenumber: 833
    functionLinenumberEnd: 843
    functionName: _asyncio_Future__state_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__state_get_impl
    - Py_END_CRITICAL_SECTION
    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:865,1
    - Dst: _asyncio_Future__make_cancelled_error_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:866,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 4
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: _asyncio_Future__make_cancelled_error
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Future__make_cancelled_error_impl
    - Py_END_CRITICAL_SECTION
    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:896,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:898,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:898,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:898,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:898,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:898,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:916,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:917,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:924,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:924,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:951,1
    - Dst: _asyncio_Task___init___impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:956,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 883
    functionDepth: 5
    functionLinenumber: 883
    functionLinenumberEnd: 960
    functionName: _asyncio_Task___init__
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _asyncio_Task___init___impl
    - PyObject_IsTrue
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:980,1
    - Dst: _asyncio_Task__log_destroy_pending_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:981,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 985
    functionName: _asyncio_Task__log_destroy_pending_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1005,1
    - Dst: _asyncio_Task__log_destroy_pending_set_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1006,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1010
    functionName: _asyncio_Task__log_destroy_pending_set
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Task__log_destroy_pending_set_impl
    - Py_END_CRITICAL_SECTION
    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:1030,1
    - Dst: _asyncio_Task__must_cancel_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1031,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1035
    functionName: _asyncio_Task__must_cancel_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1055,1
    - Dst: _asyncio_Task__coro_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1056,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1060
    functionName: _asyncio_Task__coro_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1080,1
    - Dst: _asyncio_Task__fut_waiter_get_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1081,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1085
    functionName: _asyncio_Task__fut_waiter_get
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Task__fut_waiter_get_impl
    - Py_END_CRITICAL_SECTION
    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:1107,1
    - Dst: _asyncio_Task__make_cancelled_error_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1108,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1102
    functionDepth: 5
    functionLinenumber: 1102
    functionLinenumberEnd: 1112
    functionName: _asyncio_Task__make_cancelled_error
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Task__make_cancelled_error_impl
    - Py_END_CRITICAL_SECTION
    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:1158,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1160,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1177,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1180,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1190,1
    - Dst: _asyncio_Task_cancel_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1191,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1192,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: 1196
      start: 1145
    functionDepth: 2
    functionLinenumber: 1145
    functionLinenumberEnd: 1196
    functionName: _asyncio_Task_cancel
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - _asyncio_Task_cancel_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1218,1
    - Dst: _asyncio_Task_cancelling_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1219,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1223
    functionName: _asyncio_Task_cancelling
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Task_cancelling_impl
    - Py_END_CRITICAL_SECTION
    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:1247,1
    - Dst: _asyncio_Task_uncancel_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1248,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1252
    functionName: _asyncio_Task_uncancel
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Task_uncancel_impl
    - Py_END_CRITICAL_SECTION
    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:1298,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1300,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1317,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1320,1
    - Dst: _asyncio_Task_get_stack_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1330,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: 1334
      start: 1285
    functionDepth: 3
    functionLinenumber: 1285
    functionLinenumberEnd: 1334
    functionName: _asyncio_Task_get_stack
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _asyncio_Task_get_stack_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1368,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1370,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1370,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1387,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1391,1
    - Dst: _asyncio_Task_print_stack_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1407,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: 1411
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1411
    functionName: _asyncio_Task_print_stack
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_print_stack_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1424
    functionDepth: 2
    functionLinenumber: 1424
    functionLinenumberEnd: 1432
    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:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - exception
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1453
    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:1471,1
    - Dst: _asyncio_Task_get_coro_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1472,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1476
    functionName: _asyncio_Task_get_coro
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Task_get_coro_impl
    - Py_END_CRITICAL_SECTION
    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:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1489
    functionDepth: 1
    functionLinenumber: 1489
    functionLinenumberEnd: 1493
    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:1511,1
    - Dst: _asyncio_Task_get_name_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1512,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1506
    functionDepth: 2
    functionLinenumber: 1506
    functionLinenumberEnd: 1516
    functionName: _asyncio_Task_get_name
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_get_name_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1534,1
    - Dst: _asyncio_Task_set_name_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1535,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1529
    functionDepth: 2
    functionLinenumber: 1529
    functionLinenumberEnd: 1539
    functionName: _asyncio_Task_set_name
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _asyncio_Task_set_name_impl
    - Py_END_CRITICAL_SECTION
    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:1559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1556
    functionDepth: 2
    functionLinenumber: 1556
    functionLinenumberEnd: 1560
    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:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1593
    functionDepth: 3
    functionLinenumber: 1593
    functionLinenumberEnd: 1597
    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:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1617
    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:1646,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1648,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1667,1
    - Dst: _asyncio__register_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1673,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: 1677
      start: 1633
    functionDepth: 3
    functionLinenumber: 1633
    functionLinenumberEnd: 1677
    functionName: _asyncio__register_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _asyncio__register_task_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:1706,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1708,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1727,1
    - Dst: _asyncio__register_eager_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1733,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: 1737
      start: 1693
    functionDepth: 3
    functionLinenumber: 1693
    functionLinenumberEnd: 1737
    functionName: _asyncio__register_eager_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__register_eager_task_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:1766,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1768,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1787,1
    - Dst: _asyncio__unregister_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1793,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: 1797
      start: 1753
    functionDepth: 4
    functionLinenumber: 1753
    functionLinenumberEnd: 1797
    functionName: _asyncio__unregister_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _asyncio__unregister_task_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:1826,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1828,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1847,1
    - Dst: _asyncio__unregister_eager_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1853,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: 1857
      start: 1813
    functionDepth: 4
    functionLinenumber: 1813
    functionLinenumberEnd: 1857
    functionName: _asyncio__unregister_eager_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _asyncio__unregister_eager_task_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:1888,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1890,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1890,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1910,1
    - Dst: _asyncio__enter_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1917,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: 1921
      start: 1875
    functionDepth: 3
    functionLinenumber: 1875
    functionLinenumberEnd: 1921
    functionName: _asyncio__enter_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__enter_task_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:1952,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1954,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1954,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1974,1
    - Dst: _asyncio__leave_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:1981,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: 1985
      start: 1939
    functionDepth: 3
    functionLinenumber: 1939
    functionLinenumberEnd: 1985
    functionName: _asyncio__leave_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _asyncio__leave_task_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:2015,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2017,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2017,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2037,1
    - Dst: _asyncio__swap_current_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2044,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: 2048
      start: 2002
    functionDepth: 3
    functionLinenumber: 2002
    functionLinenumberEnd: 2048
    functionName: _asyncio__swap_current_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _asyncio__swap_current_task_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:2075,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2077,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2094,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2097,1
    - Dst: _asyncio_current_task_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2107,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: 2111
      start: 2062
    functionDepth: 3
    functionLinenumber: 2062
    functionLinenumberEnd: 2111
    functionName: _asyncio_current_task
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _asyncio_current_task_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:2138,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2140,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2157,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2160,1
    - Dst: _asyncio_all_tasks_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2170,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: 2174
      start: 2125
    functionDepth: 4
    functionLinenumber: 2125
    functionLinenumberEnd: 2174
    functionName: _asyncio_all_tasks
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _asyncio_all_tasks_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:2196,1
    - Dst: _asyncio_future_add_to_awaited_by_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2189
    functionDepth: 3
    functionLinenumber: 2189
    functionLinenumberEnd: 2205
    functionName: _asyncio_future_add_to_awaited_by
    functionSourceFile: /src/cpython/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _asyncio_future_add_to_awaited_by_impl
    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:2226,1
    - Dst: _asyncio_future_discard_from_awaited_by_impl
      Src: /src/cpython/Modules/clinic/_asynciomodule.c.h:2231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2219
    functionDepth: 3
    functionLinenumber: 2219
    functionLinenumberEnd: 2235
    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: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:66,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:68,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:68,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:68,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:68,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:68,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:68,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:68,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:68,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:86,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:87,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:97,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:97,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:103,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:110,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:119,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:128,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:129,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:137,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:146,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:155,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:163,1
    - Dst: _remote_debugging_RemoteUnwinder___init___impl
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:168,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 92
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 172
    functionName: _remote_debugging_RemoteUnwinder___init__
    functionSourceFile: /src/cpython/Modules/clinic/_remote_debugging_module.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _remote_debugging_RemoteUnwinder___init___impl
    - PyObject_IsTrue
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:229,1
    - Dst: _remote_debugging_RemoteUnwinder_get_stack_trace_impl
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:230,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 234
    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:286,1
    - Dst: _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:287,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 291
    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
    - _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl
    - Py_END_CRITICAL_SECTION
    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:344,1
    - Dst: _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:345,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_remote_debugging_module.c.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 349
    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
    - _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl
    - Py_END_CRITICAL_SECTION
    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
    - _random_Random_random_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _random_Random_seed_impl
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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
    - _random_Random_getstate_impl
    - Py_END_CRITICAL_SECTION
    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
    - _random_Random_setstate_impl
    - Py_END_CRITICAL_SECTION
    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
    - _PyLong_UInt64_Converter
    - _random_Random_getrandbits_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getrandbits(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _randomstate_type
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:154,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:154,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:157,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:158,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:159,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:162,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:162,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:165,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:168,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:170,1
    - Dst: random_init_impl
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:171,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_randommodule.c.h:172,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 176
    functionName: random_init
    functionSourceFile: /src/cpython/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - Py_END_CRITICAL_SECTION
    - Py_IS_TYPE
    - Py_BEGIN_CRITICAL_SECTION
    - random_init_impl
    - _randomstate_type
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int random_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - 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:
    - _PyArg_CheckPositional
    - array_array_index_impl
    - _PyEval_SliceIndexNotNone
    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:
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - array_array_pop_impl
    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:
    - _PyArg_UnpackKeywords
    - array_array_extend_impl
    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:
    - _PyArg_CheckPositional
    - array_array_insert_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 352
    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:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 370
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:406,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:414,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:417,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:419,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:424,1
    - Dst: array_array_fromfile_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:429,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: 433
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 433
    functionName: array_array_fromfile
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - array_array_fromfile_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:467,1
    - Dst: array_array_tofile_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:473,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: 477
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 477
    functionName: array_array_tofile
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - array_array_tofile_impl
    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:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 499
    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: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: 3
    functionLinenumber: 513
    functionLinenumberEnd: 517
    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:537,1
    - Dst: array_array_frombytes_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:540,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 531
    functionDepth: 4
    functionLinenumber: 531
    functionLinenumberEnd: 549
    functionName: array_array_frombytes
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 2
    functionsReached:
    - PyBuffer_Release
    - PyObject_GetBuffer
    - 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:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 567
    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:591,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:592,1
    - Dst: array_array_fromunicode_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 600
    functionName: array_array_fromunicode
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_fromunicode_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 623
    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:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 641
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:668,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:672,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:673,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:677,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:681,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:682,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:685,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:686,1
    - Dst: array__array_reconstructor_impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:690,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 694
    functionName: array__array_reconstructor
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - array__array_reconstructor_impl
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    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:729,1
    - Dst: array_array___reduce_ex___impl
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:735,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: 739
      start: 709
    functionDepth: 4
    functionLinenumber: 709
    functionLinenumberEnd: 739
    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:756,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/arraymodule.c.h:757,1
    - Dst: array_arrayiterator___reduce___impl
      Src: /src/cpython/Modules/clinic/arraymodule.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: 2
    functionLinenumber: 753
    functionLinenumberEnd: 761
    functionName: array_arrayiterator___reduce__
    functionSourceFile: /src/cpython/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - array_arrayiterator___reduce___impl
    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:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 783
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _testinternalcapi_compiler_cleandoc_impl
    - _Py_ID
    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:122,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:124,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:124,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:124,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:124,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:141,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:147,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:154,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:155,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:162,1
    - Dst: _testinternalcapi_compiler_codegen_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:166,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: 170
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 170
    functionName: _testinternalcapi_compiler_codegen
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _testinternalcapi_compiler_codegen_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:201,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:203,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:203,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:203,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:224,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:231,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:232,1
    - Dst: _testinternalcapi_optimize_cfg_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:235,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: 239
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 239
    functionName: _testinternalcapi_optimize_cfg
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _testinternalcapi_optimize_cfg_impl
    - _Py_ID
    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:269,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:271,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:271,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:271,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:292,1
    - Dst: _testinternalcapi_assemble_code_object_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:300,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: 304
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 304
    functionName: _testinternalcapi_assemble_code_object
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - _testinternalcapi_assemble_code_object_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 321
    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:348,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:350,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:367,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:370,1
    - Dst: gh_119213_getargs_impl
      Src: /src/cpython/Modules/clinic/_testinternalcapi.c.h:380,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: 384
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 384
    functionName: gh_119213_getargs
    functionSourceFile: /src/cpython/Modules/clinic/_testinternalcapi.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - gh_119213_getargs_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 401
    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:
    - _lzma_LZMACompressor_compress_impl
    - PyObject_GetBuffer
    - 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:111,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:113,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:113,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:130,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:134,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:139,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:147,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:150,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:152,1
    - Dst: _lzma_LZMADecompressor_decompress_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:158,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:163,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: 167
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 167
    functionName: _lzma_LZMADecompressor_decompress
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _lzma_LZMADecompressor_decompress_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    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:209,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:211,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:211,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:211,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:229,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:230,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:235,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:235,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:244,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:245,1
    - Dst: _lzma_LZMADecompressor_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:260,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 196
    functionDepth: 6
    functionLinenumber: 196
    functionLinenumberEnd: 264
    functionName: _lzma_LZMADecompressor
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _lzma_LZMADecompressor_impl
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:286,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:287,1
    - Dst: _lzma_is_check_supported_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: _lzma_is_check_supported
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _lzma_is_check_supported_impl
    - PyErr_Occurred
    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:318,1
    - Dst: lzma_vli_converter
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:321,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:324,1
    - Dst: _lzma__decode_filter_properties_impl
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:327,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_lzmamodule.c.h:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 336
    functionName: _lzma__decode_filter_properties
    functionSourceFile: /src/cpython/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - lzma_vli_converter
    - _lzma__decode_filter_properties_impl
    - PyBuffer_Release
    - PyObject_GetBuffer
    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:
    - PyLong_AsInt
    - PyLong_FromLong
    - PyErr_Occurred
    - my_int_func_impl
    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_FromLong
    - PyLong_AsInt
    - PyErr_Occurred
    - 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:
    - my_float_sum_impl
    - PyFloat_AsDouble
    - PyFloat_FromDouble
    - PyErr_Occurred
    - PyErr_Format
    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
    - PyFloat_FromDouble
    - PyErr_Occurred
    - PyErr_Format
    - my_double_sum_impl
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:53,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:56,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:57,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:61,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:62,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:66,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:67,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:71,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:72,1
    - Dst: math_fmax_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:76,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:77,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:80,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 84
    functionName: math_fmax
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_FromDouble
    - math_fmax_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    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:106,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:109,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:110,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:114,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:115,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:119,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:120,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:125,1
    - Dst: math_fmin_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:129,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:130,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:133,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 137
    functionName: math_fmin
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_FromDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_fmin_impl
    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:157,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:158,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:162,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:163,1
    - Dst: math_signbit_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: math_signbit
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - math_signbit_impl
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    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:216,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:217,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:221,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:222,1
    - Dst: math_frexp_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 230
    functionName: math_frexp
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - 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:253,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:256,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:257,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:261,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:262,1
    - Dst: math_ldexp_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 271
    functionName: math_ldexp
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - 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:293,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:294,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:298,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:299,1
    - Dst: math_modf_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 307
    functionName: math_modf
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - math_modf_impl
    - PyErr_Occurred
    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:349,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:352,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:353,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:357,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:358,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:362,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:363,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:367,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:368,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:372,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:373,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:377,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:378,1
    - Dst: math_fma_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:382,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 386
    functionName: math_fma
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - math_fma_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    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:409,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:412,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:413,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:417,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:418,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:422,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:423,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:427,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:428,1
    - Dst: math_fmod_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:432,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 436
    functionName: math_fmod
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - math_fmod_impl
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    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:463,1
    - Dst: math_dist_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 472
    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:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 510
    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:538,1
    - Dst: math_sumprod_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 547
    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:568,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:571,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:572,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:576,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:577,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:581,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:582,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:586,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:587,1
    - Dst: math_pow_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:591,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 595
    functionName: math_pow
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_pow_impl
    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:615,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:616,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:620,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:621,1
    - Dst: math_degrees_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 629
    functionName: math_degrees
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_degrees_impl
    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:649,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:650,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:655,1
    - Dst: math_radians_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 663
    functionName: math_radians
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_radians_impl
    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:683,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:684,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:688,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:689,1
    - Dst: math_isfinite_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 697
    functionName: math_isfinite
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - math_isfinite_impl
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    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:717,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:718,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:723,1
    - Dst: math_isnormal_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 731
    functionName: math_isnormal
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - math_isnormal_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    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:751,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:752,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:756,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:757,1
    - Dst: math_issubnormal_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 765
    functionName: math_issubnormal
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - math_issubnormal_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    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:785,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:786,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:790,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:791,1
    - Dst: math_isnan_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 799
    functionName: math_isnan
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - math_isnan_impl
    - PyErr_Occurred
    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:819,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:820,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:824,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:825,1
    - Dst: math_isinf_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 833
    functionName: math_isinf
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - math_isinf_impl
    - PyErr_Occurred
    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:877,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:879,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:879,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:879,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:879,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:896,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:903,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:908,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:909,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:913,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:914,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:918,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:919,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:923,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:924,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:932,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:933,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:937,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:938,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:946,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:947,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:951,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:952,1
    - Dst: math_isclose_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:957,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:958,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:961,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: 965
      start: 864
    functionDepth: 2
    functionLinenumber: 864
    functionLinenumberEnd: 965
    functionName: math_isclose
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AS_DOUBLE
    - PyFloat_AsDouble
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - math_isclose_impl
    - _Py_LATIN1_CHR
    - PyFloat_CheckExact
    - PyBool_FromLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:998,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1000,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1017,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1021,1
    - Dst: math_prod_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1032,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: 1036
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1036
    functionName: math_prod
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - math_prod_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_prod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1068,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1070,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1087,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1092,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1097,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1098,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1103,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1107,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1108,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1112,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1113,1
    - Dst: math_nextafter_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1122,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: 1126
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1126
    functionName: math_nextafter
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AS_DOUBLE
    - PyFloat_AsDouble
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - math_nextafter_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1147,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1148,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1152,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1153,1
    - Dst: math_ulp_impl
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1157,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1158,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/clinic/mathmodule.c.h:1161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1165
    functionName: math_ulp
    functionSourceFile: /src/cpython/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_FromDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - math_ulp_impl
    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:54,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:55,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:59,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:63,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:64,1
    - Dst: _codecs_lookup_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: _codecs_lookup
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _codecs_lookup_impl
    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:105,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:107,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:107,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:107,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:124,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:129,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:139,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:140,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:144,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:148,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:149,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:156,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:157,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:161,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:165,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:166,1
    - Dst: _codecs_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:170,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: 174
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 174
    functionName: _codecs_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _codecs_encode_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:208,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:210,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:210,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:210,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:227,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:232,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:242,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:243,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:247,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:252,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:259,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:260,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:264,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:268,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:269,1
    - Dst: _codecs_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:273,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: 277
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 277
    functionName: _codecs_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _codecs_decode_impl
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:298,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:301,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:303,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:307,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:312,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:322,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:324,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:328,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:329,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:334,1
    - Dst: _codecs_escape_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:338,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:343,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 347
    functionName: _codecs_escape_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_escape_decode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyObject_GetBuffer
    - 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:368,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:371,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:372,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:382,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:384,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:388,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:389,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:394,1
    - Dst: _codecs_escape_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:398,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 402
    functionName: _codecs_escape_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _codecs_escape_encode_impl
    - strlen
    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:424,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:427,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:436,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:438,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:442,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:443,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:448,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:454,1
    - Dst: _codecs_utf_7_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:459,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:464,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 468
    functionName: _codecs_utf_7_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_utf_7_decode_impl
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyObject_GetBuffer
    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:490,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:493,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:502,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:504,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:508,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:509,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:514,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:520,1
    - Dst: _codecs_utf_8_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:525,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:530,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 534
    functionName: _codecs_utf_8_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyObject_GetBuffer
    - _codecs_utf_8_decode_impl
    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:556,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:559,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:568,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:570,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:574,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:575,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:580,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:586,1
    - Dst: _codecs_utf_16_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:591,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:596,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 600
    functionName: _codecs_utf_16_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - _codecs_utf_16_decode_impl
    - PyObject_GetBuffer
    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:622,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:625,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:634,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:636,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:640,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:641,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:646,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:652,1
    - Dst: _codecs_utf_16_le_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:657,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:662,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 666
    functionName: _codecs_utf_16_le_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - _codecs_utf_16_le_decode_impl
    - strlen
    - PyObject_GetBuffer
    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:688,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:691,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:700,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:702,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:707,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:712,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:718,1
    - Dst: _codecs_utf_16_be_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:723,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:728,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 732
    functionName: _codecs_utf_16_be_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - _codecs_utf_16_be_decode_impl
    - PyObject_GetBuffer
    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:756,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:759,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:768,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:770,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:774,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:775,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:780,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:786,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:787,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:793,1
    - Dst: _codecs_utf_16_ex_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:798,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:803,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 807
    functionName: _codecs_utf_16_ex_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - _codecs_utf_16_ex_decode_impl
    - strlen
    - PyErr_Occurred
    - PyObject_GetBuffer
    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:829,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:832,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:841,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:843,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:848,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:853,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:859,1
    - Dst: _codecs_utf_32_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:864,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:869,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 873
    functionName: _codecs_utf_32_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_utf_32_decode_impl
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyObject_GetBuffer
    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:895,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:898,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:907,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:909,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:913,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:914,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:919,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:925,1
    - Dst: _codecs_utf_32_le_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:930,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:935,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 887
    functionDepth: 3
    functionLinenumber: 887
    functionLinenumberEnd: 939
    functionName: _codecs_utf_32_le_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - _codecs_utf_32_le_decode_impl
    - strlen
    - PyObject_GetBuffer
    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:961,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:964,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:973,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:975,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:979,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:980,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:985,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:991,1
    - Dst: _codecs_utf_32_be_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:996,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1001,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 1005
    functionName: _codecs_utf_32_be_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_utf_32_be_decode_impl
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyObject_GetBuffer
    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:1029,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1032,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1041,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1043,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1047,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1048,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1053,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1059,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1060,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1066,1
    - Dst: _codecs_utf_32_ex_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1071,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1076,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1080
    functionName: _codecs_utf_32_ex_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyErr_Occurred
    - _codecs_utf_32_ex_decode_impl
    - PyObject_GetBuffer
    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:1102,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1105,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1107,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1111,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1116,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1126,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1128,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1132,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1133,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1138,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1144,1
    - Dst: _codecs_unicode_escape_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1149,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1154,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1094
    functionDepth: 3
    functionLinenumber: 1094
    functionLinenumberEnd: 1158
    functionName: _codecs_unicode_escape_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - _codecs_unicode_escape_decode_impl
    - strlen
    - PyObject_GetBuffer
    - PyBuffer_FillInfo
    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:1180,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1183,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1185,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1189,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1194,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1204,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1206,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1210,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1211,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1216,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1222,1
    - Dst: _codecs_raw_unicode_escape_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1227,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1232,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1172
    functionDepth: 3
    functionLinenumber: 1172
    functionLinenumberEnd: 1236
    functionName: _codecs_raw_unicode_escape_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - _codecs_raw_unicode_escape_decode_impl
    - PyObject_GetBuffer
    - 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:1257,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1260,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1269,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1271,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1275,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1276,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1281,1
    - Dst: _codecs_latin_1_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1285,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1290,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1250
    functionDepth: 3
    functionLinenumber: 1250
    functionLinenumberEnd: 1294
    functionName: _codecs_latin_1_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _codecs_latin_1_decode_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyObject_GetBuffer
    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:1315,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1318,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1327,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1329,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1333,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1334,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1339,1
    - Dst: _codecs_ascii_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1343,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1348,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1308
    functionDepth: 3
    functionLinenumber: 1308
    functionLinenumberEnd: 1352
    functionName: _codecs_ascii_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_ascii_decode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - PyObject_GetBuffer
    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:1374,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1377,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1386,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1388,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1392,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1393,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1398,1
    - Dst: _codecs_charmap_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1406,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1411,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1366
    functionDepth: 3
    functionLinenumber: 1366
    functionLinenumberEnd: 1415
    functionName: _codecs_charmap_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - _codecs_charmap_decode_impl
    - strlen
    - PyObject_GetBuffer
    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:1439,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1442,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1451,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1453,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1457,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1458,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1463,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1469,1
    - Dst: _codecs_mbcs_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1474,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1479,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1483
    functionName: _codecs_mbcs_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - _codecs_mbcs_decode_impl
    - PyObject_GetBuffer
    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:1509,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1512,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1521,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1523,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1527,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1528,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1533,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1539,1
    - Dst: _codecs_oem_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1544,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1549,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1501
    functionDepth: 3
    functionLinenumber: 1501
    functionLinenumberEnd: 1553
    functionName: _codecs_oem_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - _codecs_oem_decode_impl
    - strlen
    - PyObject_GetBuffer
    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:1580,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1583,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1584,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1587,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1596,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1598,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1602,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1603,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1608,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1614,1
    - Dst: _codecs_code_page_decode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1619,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1624,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1571
    functionDepth: 3
    functionLinenumber: 1571
    functionLinenumberEnd: 1628
    functionName: _codecs_code_page_decode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - _codecs_code_page_decode_impl
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - PyErr_Occurred
    - strlen
    - PyObject_GetBuffer
    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:1651,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1654,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1656,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1660,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1665,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1675,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1677,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1681,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1682,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1687,1
    - Dst: _codecs_readbuffer_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1691,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1696,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1644
    functionDepth: 3
    functionLinenumber: 1644
    functionLinenumberEnd: 1700
    functionName: _codecs_readbuffer_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - _codecs_readbuffer_encode_impl
    - PyObject_GetBuffer
    - 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:1721,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1724,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1725,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1735,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1737,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1741,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1742,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1747,1
    - Dst: _codecs_utf_7_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1751,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1714
    functionDepth: 3
    functionLinenumber: 1714
    functionLinenumberEnd: 1755
    functionName: _codecs_utf_7_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _codecs_utf_7_encode_impl
    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:1776,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1779,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1780,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1790,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1792,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1796,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1797,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1802,1
    - Dst: _codecs_utf_8_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1806,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1769
    functionDepth: 3
    functionLinenumber: 1769
    functionLinenumberEnd: 1810
    functionName: _codecs_utf_8_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_utf_8_encode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:1832,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1835,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1836,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1846,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1848,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1852,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1853,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1858,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1864,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1865,1
    - Dst: _codecs_utf_16_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1869,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1824
    functionDepth: 3
    functionLinenumber: 1824
    functionLinenumberEnd: 1873
    functionName: _codecs_utf_16_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    - _codecs_utf_16_encode_impl
    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:1894,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1897,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1898,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1908,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1910,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1914,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1915,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1920,1
    - Dst: _codecs_utf_16_le_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1924,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1887
    functionDepth: 3
    functionLinenumber: 1887
    functionLinenumberEnd: 1928
    functionName: _codecs_utf_16_le_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _codecs_utf_16_le_encode_impl
    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:1949,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1952,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1953,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1963,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1965,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1969,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1970,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1975,1
    - Dst: _codecs_utf_16_be_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:1979,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1942
    functionDepth: 3
    functionLinenumber: 1942
    functionLinenumberEnd: 1983
    functionName: _codecs_utf_16_be_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _codecs_utf_16_be_encode_impl
    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:2005,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2008,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2009,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2019,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2021,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2025,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2026,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2031,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2037,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2038,1
    - Dst: _codecs_utf_32_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2042,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 1997
    functionDepth: 3
    functionLinenumber: 1997
    functionLinenumberEnd: 2046
    functionName: _codecs_utf_32_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    - _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:2067,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2070,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2071,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2081,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2083,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2087,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2088,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2093,1
    - Dst: _codecs_utf_32_le_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2097,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2060
    functionDepth: 3
    functionLinenumber: 2060
    functionLinenumberEnd: 2101
    functionName: _codecs_utf_32_le_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _codecs_utf_32_le_encode_impl
    - strlen
    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:2122,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2125,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2126,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2136,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2138,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2142,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2143,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2148,1
    - Dst: _codecs_utf_32_be_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2152,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2115
    functionDepth: 3
    functionLinenumber: 2115
    functionLinenumberEnd: 2156
    functionName: _codecs_utf_32_be_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_utf_32_be_encode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:2177,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2180,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2181,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2191,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2193,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2197,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2198,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2203,1
    - Dst: _codecs_unicode_escape_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2207,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2170
    functionDepth: 3
    functionLinenumber: 2170
    functionLinenumberEnd: 2211
    functionName: _codecs_unicode_escape_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _codecs_unicode_escape_encode_impl
    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:2232,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2235,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2236,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2246,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2248,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2252,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2253,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2258,1
    - Dst: _codecs_raw_unicode_escape_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2262,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2225
    functionDepth: 3
    functionLinenumber: 2225
    functionLinenumberEnd: 2266
    functionName: _codecs_raw_unicode_escape_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _codecs_raw_unicode_escape_encode_impl
    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:2287,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2290,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2291,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2301,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2303,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2307,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2308,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2313,1
    - Dst: _codecs_latin_1_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2317,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2280
    functionDepth: 3
    functionLinenumber: 2280
    functionLinenumberEnd: 2321
    functionName: _codecs_latin_1_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _codecs_latin_1_encode_impl
    - strlen
    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:2342,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2345,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2346,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2356,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2358,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2362,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2363,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2368,1
    - Dst: _codecs_ascii_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2372,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2335
    functionDepth: 3
    functionLinenumber: 2335
    functionLinenumberEnd: 2376
    functionName: _codecs_ascii_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _codecs_ascii_encode_impl
    - strlen
    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:2398,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2401,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2402,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2412,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2414,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2418,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2419,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2424,1
    - Dst: _codecs_charmap_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2432,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2390
    functionDepth: 3
    functionLinenumber: 2390
    functionLinenumberEnd: 2436
    functionName: _codecs_charmap_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_charmap_encode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:2455,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2456,1
    - Dst: _codecs_charmap_build_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2449
    functionDepth: 2
    functionLinenumber: 2449
    functionLinenumberEnd: 2464
    functionName: _codecs_charmap_build
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_charmap_build_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:2486,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2489,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2490,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2500,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2502,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2506,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2507,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2512,1
    - Dst: _codecs_mbcs_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2516,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2479
    functionDepth: 3
    functionLinenumber: 2479
    functionLinenumberEnd: 2520
    functionName: _codecs_mbcs_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _codecs_mbcs_encode_impl
    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:2544,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2547,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2548,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2558,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2560,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2564,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2565,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2570,1
    - Dst: _codecs_oem_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2574,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2537
    functionDepth: 3
    functionLinenumber: 2537
    functionLinenumberEnd: 2578
    functionName: _codecs_oem_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _codecs_oem_encode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:2604,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2607,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2608,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2611,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2612,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2622,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2624,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2628,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2629,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2634,1
    - Dst: _codecs_code_page_encode_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2638,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2596
    functionDepth: 3
    functionLinenumber: 2596
    functionLinenumberEnd: 2642
    functionName: _codecs_code_page_encode
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - strlen
    - _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:2671,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2674,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2675,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2679,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2683,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2684,1
    - Dst: _codecs_register_error_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2664
    functionDepth: 2
    functionLinenumber: 2664
    functionLinenumberEnd: 2692
    functionName: _codecs_register_error
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _codecs_register_error_impl
    - strlen
    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:2721,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2722,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2726,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2730,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2731,1
    - Dst: _codecs__unregister_error_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2734,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2735,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2738,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2714
    functionDepth: 2
    functionLinenumber: 2714
    functionLinenumberEnd: 2742
    functionName: _codecs__unregister_error
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - _codecs__unregister_error_impl
    - PyBool_FromLong
    - strlen
    - PyErr_Occurred
    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:2765,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2766,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2770,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2774,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2775,1
    - Dst: _codecs_lookup_error_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2759
    functionDepth: 2
    functionLinenumber: 2759
    functionLinenumberEnd: 2782
    functionName: _codecs_lookup_error
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_lookup_error_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_lookup_error(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2811,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2813,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2832,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2837,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2838,1
    - Dst: _codecs__normalize_encoding_impl
      Src: /src/cpython/Modules/clinic/_codecsmodule.c.h:2842,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: 2846
      start: 2798
    functionDepth: 2
    functionLinenumber: 2798
    functionLinenumberEnd: 2846
    functionName: _codecs__normalize_encoding
    functionSourceFile: /src/cpython/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _codecs__normalize_encoding_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs__normalize_encoding(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:57,1
    - Dst: select_select_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 72
    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:101,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:104,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:111,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:115,1
    - Dst: select_poll_register_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:116,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 121
    functionName: select_poll_register
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_AsFileDescriptor
    - _PyLong_UnsignedShort_Converter
    - 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:152,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:155,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:159,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:162,1
    - Dst: select_poll_modify_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:163,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 168
    functionName: select_poll_modify
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_AsFileDescriptor
    - _PyLong_UnsignedShort_Converter
    - select_poll_modify_impl
    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:192,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:196,1
    - Dst: select_poll_unregister_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:197,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 202
    functionName: select_poll_unregister
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_poll_unregister_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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:233,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:241,1
    - Dst: select_poll_poll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:242,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 247
    functionName: select_poll_poll
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - select_poll_poll_impl
    - Py_END_CRITICAL_SECTION
    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:280,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:283,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:290,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:294,1
    - Dst: select_devpoll_register_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:295,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:296,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 300
    functionName: select_devpoll_register
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - select_devpoll_register_impl
    - PyObject_AsFileDescriptor
    - _PyLong_UnsignedShort_Converter
    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:333,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:336,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:343,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:347,1
    - Dst: select_devpoll_modify_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:348,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 353
    functionName: select_devpoll_modify
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyLong_UnsignedShort_Converter
    - PyObject_AsFileDescriptor
    - select_devpoll_modify_impl
    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:377,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:381,1
    - Dst: select_devpoll_unregister_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:382,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 387
    functionName: select_devpoll_unregister
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - select_devpoll_unregister_impl
    - PyObject_AsFileDescriptor
    - Py_END_CRITICAL_SECTION
    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:418,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:426,1
    - Dst: select_devpoll_poll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:427,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 432
    functionName: select_devpoll_poll
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - select_devpoll_poll_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:457,1
    - Dst: select_devpoll_close_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:458,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 462
    functionName: select_devpoll_close
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - select_devpoll_close_impl
    - Py_END_CRITICAL_SECTION
    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:485,1
    - Dst: select_devpoll_fileno_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:486,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 490
    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:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 515
    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:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 540
    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:577,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:579,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:579,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:597,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:598,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:602,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:602,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:611,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:612,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:619,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:620,1
    - Dst: select_epoll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:624,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 628
    functionName: select_epoll
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - select_epoll_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:653,1
    - Dst: select_epoll_close_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:654,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 658
    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:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 680
    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:704,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:705,1
    - Dst: select_epoll_fromfd_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 712
    functionName: select_epoll_fromfd
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - select_epoll_fromfd_impl
    - PyErr_Occurred
    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:752,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:754,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:771,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:775,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:780,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:788,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:796,1
    - Dst: select_epoll_register_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:804,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: 808
      start: 739
    functionDepth: 4
    functionLinenumber: 739
    functionLinenumberEnd: 808
    functionName: select_epoll_register
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - select_epoll_register_impl
    - PyLong_AsNativeBytes
    - PyObject_AsFileDescriptor
    - PyTuple_GET_SIZE
    - _Py_ID
    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:845,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:847,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:847,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:867,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:872,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:877,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:885,1
    - Dst: select_epoll_modify_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:892,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: 896
      start: 832
    functionDepth: 4
    functionLinenumber: 832
    functionLinenumberEnd: 896
    functionName: select_epoll_modify
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll_modify_impl
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyLong_AsNativeBytes
    - PyObject_AsFileDescriptor
    - _Py_ID
    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:930,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:932,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:951,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:956,1
    - Dst: select_epoll_unregister_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:960,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: 964
      start: 917
    functionDepth: 4
    functionLinenumber: 917
    functionLinenumberEnd: 964
    functionName: select_epoll_unregister
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyObject_AsFileDescriptor
    - select_epoll_unregister_impl
    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:1005,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1007,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1007,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1024,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1028,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1042,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1043,1
    - Dst: select_epoll_poll_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1047,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: 1051
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 1051
    functionName: select_epoll_poll
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll_poll_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1068
    functionDepth: 3
    functionLinenumber: 1068
    functionLinenumberEnd: 1072
    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:1098,1
    - Dst: select_epoll___exit___impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1118
    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:1149,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1152,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1156,1
    - Dst: select_kqueue_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1145
    functionDepth: 6
    functionLinenumber: 1145
    functionLinenumberEnd: 1163
    functionName: select_kqueue
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoPositional
    - _selectstate_by_type
    - _PyArg_NoKeywords
    - select_kqueue_impl
    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:1188,1
    - Dst: select_kqueue_close_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1189,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1183
    functionDepth: 5
    functionLinenumber: 1183
    functionLinenumberEnd: 1193
    functionName: select_kqueue_close
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_kqueue_close_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1211
    functionDepth: 3
    functionLinenumber: 1211
    functionLinenumberEnd: 1215
    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:1239,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1240,1
    - Dst: select_kqueue_fromfd_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1233
    functionDepth: 6
    functionLinenumber: 1233
    functionLinenumberEnd: 1247
    functionName: select_kqueue_fromfd
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - select_kqueue_fromfd_impl
    - PyErr_Occurred
    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:1283,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1287,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1288,1
    - Dst: select_kqueue_control_impl
      Src: /src/cpython/Modules/clinic/selectmodule.c.h:1296,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1275
    functionDepth: 3
    functionLinenumber: 1275
    functionLinenumberEnd: 1300
    functionName: select_kqueue_control
    functionSourceFile: /src/cpython/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - select_kqueue_control_impl
    - PyErr_Occurred
    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: _sysconfig_get_platform_impl
      Src: /src/cpython/Modules/clinic/_sysconfig.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: _sysconfig_get_platform
    functionSourceFile: /src/cpython/Modules/clinic/_sysconfig.c.h
    functionUses: 0
    functionsReached:
    - _sysconfig_get_platform_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sysconfig_get_platform(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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _tracemalloc_start_impl
    - PyErr_Occurred
    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:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_addch_impl
    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:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_addstr_impl
    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:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_addnstr_impl
    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:
    - _PyArg_CheckPositional
    - PyLong_AsLong
    - _curses_window_bkgd_impl
    - PyErr_Occurred
    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:
    - _curses_window_attroff_impl
    - PyLong_AsLong
    - PyErr_Occurred
    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:
    - PyLong_AsLong
    - _curses_window_attron_impl
    - PyErr_Occurred
    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:
    - PyLong_AsLong
    - _curses_window_attrset_impl
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyLong_AsLong
    - _curses_window_bkgdset_impl
    - PyErr_Occurred
    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:519,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:520,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:522,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:526,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:532,1
    - Dst: _curses_window_box_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 539
    functionName: _curses_window_box
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _curses_window_box_impl
    - _PyLong_GetZero
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    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:565,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:569,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:575,1
    - Dst: _curses_window_delch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 557
    functionDepth: 6
    functionLinenumber: 557
    functionLinenumberEnd: 582
    functionName: _curses_window_delch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_delch_impl
    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:618,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:620,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:625,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:631,1
    - Dst: _curses_window_derwin_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 608
    functionDepth: 5
    functionLinenumber: 608
    functionLinenumberEnd: 638
    functionName: _curses_window_derwin
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_derwin_impl
    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:665,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:672,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:673,1
    - Dst: _curses_window_echochar_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:677,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 658
    functionDepth: 6
    functionLinenumber: 658
    functionLinenumberEnd: 681
    functionName: _curses_window_echochar
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsLong
    - _curses_window_echochar_impl
    - PyErr_Occurred
    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:709,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:712,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:713,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:716,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:717,1
    - Dst: _curses_window_enclose_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:720,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 724
    functionName: _curses_window_enclose
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _curses_window_enclose_impl
    - PyErr_Occurred
    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:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 740
    functionDepth: 5
    functionLinenumber: 740
    functionLinenumberEnd: 744
    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:775,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:779,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:785,1
    - Dst: _curses_window_getch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:788,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 792
    functionName: _curses_window_getch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _curses_window_getch_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:823,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:827,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:833,1
    - Dst: _curses_window_getkey_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:836,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 840
    functionName: _curses_window_getkey
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_getkey_impl
    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:871,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:875,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:881,1
    - Dst: _curses_window_get_wch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 888
    functionName: _curses_window_get_wch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_get_wch_impl
    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:927,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:929,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:934,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:940,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:946,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:953,1
    - Dst: _curses_window_hline_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:956,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 915
    functionDepth: 6
    functionLinenumber: 915
    functionLinenumberEnd: 960
    functionName: _curses_window_hline
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _curses_window_hline_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:997,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:999,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1004,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1010,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1016,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1023,1
    - Dst: _curses_window_insch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1026,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 986
    functionDepth: 6
    functionLinenumber: 986
    functionLinenumberEnd: 1030
    functionName: _curses_window_insch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_insch_impl
    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:1059,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1063,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1069,1
    - Dst: _curses_window_inch_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1051
    functionDepth: 5
    functionLinenumber: 1051
    functionLinenumberEnd: 1076
    functionName: _curses_window_inch
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_inch_impl
    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:1116,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1118,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1123,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1129,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1135,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1142,1
    - Dst: _curses_window_insstr_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1145,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1105
    functionDepth: 6
    functionLinenumber: 1105
    functionLinenumberEnd: 1149
    functionName: _curses_window_insstr
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_insstr_impl
    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:1193,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1195,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1200,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1206,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1212,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1219,1
    - Dst: _curses_window_insnstr_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1222,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1181
    functionDepth: 6
    functionLinenumber: 1181
    functionLinenumberEnd: 1226
    functionName: _curses_window_insnstr
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _curses_window_insnstr_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:1252,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1253,1
    - Dst: _curses_window_is_linetouched_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1246
    functionDepth: 5
    functionLinenumber: 1246
    functionLinenumberEnd: 1260
    functionName: _curses_window_is_linetouched
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_window_is_linetouched_impl
    - PyErr_Occurred
    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:1293,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1297,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1303,1
    - Dst: _curses_window_noutrefresh_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1310
    functionName: _curses_window_noutrefresh
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_noutrefresh_impl
    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:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1332
    functionDepth: 2
    functionLinenumber: 1332
    functionLinenumberEnd: 1336
    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:1376,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1378,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1378,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1383,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1383,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1389,1
    - Dst: _curses_window_overlay_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1392,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1363
    functionDepth: 6
    functionLinenumber: 1363
    functionLinenumberEnd: 1396
    functionName: _curses_window_overlay
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - clinic_state
    - PyErr_SetString
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - _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:1436,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1438,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1438,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1443,1
    - Dst: clinic_state
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1443,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1449,1
    - Dst: _curses_window_overwrite_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1423
    functionDepth: 6
    functionLinenumber: 1423
    functionLinenumberEnd: 1456
    functionName: _curses_window_overwrite
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - clinic_state
    - _curses_window_overwrite_impl
    - PyErr_SetString
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    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:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1472
    functionDepth: 6
    functionLinenumber: 1472
    functionLinenumberEnd: 1480
    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:1508,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1511,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1512,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1515,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1516,1
    - Dst: _curses_window_redrawln_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1519,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1501
    functionDepth: 6
    functionLinenumber: 1501
    functionLinenumberEnd: 1523
    functionName: _curses_window_redrawln
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _curses_window_redrawln_impl
    - PyErr_Occurred
    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:1562,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1566,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1572,1
    - Dst: _curses_window_refresh_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1575,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1550
    functionDepth: 2
    functionLinenumber: 1550
    functionLinenumberEnd: 1579
    functionName: _curses_window_refresh
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _curses_window_refresh_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:1608,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1611,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1612,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1615,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1616,1
    - Dst: _curses_window_setscrreg_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1619,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1601
    functionDepth: 6
    functionLinenumber: 1601
    functionLinenumberEnd: 1623
    functionName: _curses_window_setscrreg
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _curses_window_setscrreg_impl
    - PyErr_Occurred
    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:1658,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1660,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1665,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1671,1
    - Dst: _curses_window_subwin_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1648
    functionDepth: 5
    functionLinenumber: 1648
    functionLinenumberEnd: 1678
    functionName: _curses_window_subwin
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_subwin_impl
    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:1704,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1708,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1714,1
    - Dst: _curses_window_scroll_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1717,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1697
    functionDepth: 6
    functionLinenumber: 1697
    functionLinenumberEnd: 1721
    functionName: _curses_window_scroll
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_scroll_impl
    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:1747,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1749,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1754,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1760,1
    - Dst: _curses_window_touchline_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1763,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1738
    functionDepth: 6
    functionLinenumber: 1738
    functionLinenumberEnd: 1767
    functionName: _curses_window_touchline
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_touchline_impl
    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:1804,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1806,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1811,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1817,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1823,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1830,1
    - Dst: _curses_window_vline_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1833,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1792
    functionDepth: 6
    functionLinenumber: 1792
    functionLinenumberEnd: 1837
    functionName: _curses_window_vline
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_window_vline_impl
    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:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1852
    functionDepth: 1
    functionLinenumber: 1852
    functionLinenumberEnd: 1856
    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:1875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1876
    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:1893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1894
    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:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1908
    functionDepth: 0
    functionLinenumber: 1908
    functionLinenumberEnd: 1912
    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:1942,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1948,1
    - Dst: _curses_cbreak_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1953,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1936
    functionDepth: 1
    functionLinenumber: 1936
    functionLinenumberEnd: 1957
    functionName: _curses_cbreak
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyObject_IsTrue
    - _curses_cbreak_impl
    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:1984,1
    - Dst: _curses_color_content_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:1987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1978
    functionDepth: 5
    functionLinenumber: 1978
    functionLinenumberEnd: 1991
    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:2018,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2019,1
    - Dst: _curses_color_pair_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2022,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2012
    functionDepth: 2
    functionLinenumber: 2012
    functionLinenumberEnd: 2026
    functionName: _curses_color_pair
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_color_pair_impl
    - PyErr_Occurred
    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:2054,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2055,1
    - Dst: _curses_curs_set_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2048
    functionDepth: 5
    functionLinenumber: 2048
    functionLinenumberEnd: 2062
    functionName: _curses_curs_set
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_curs_set_impl
    - PyErr_Occurred
    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:2083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2080
    functionDepth: 0
    functionLinenumber: 2080
    functionLinenumberEnd: 2084
    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:2106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2107
    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:2130,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2131,1
    - Dst: _curses_delay_output_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2124
    functionDepth: 6
    functionLinenumber: 2124
    functionLinenumberEnd: 2138
    functionName: _curses_delay_output
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - _curses_delay_output_impl
    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:2155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2152
    functionDepth: 0
    functionLinenumber: 2152
    functionLinenumberEnd: 2156
    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:2182,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2188,1
    - Dst: _curses_echo_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2176
    functionDepth: 1
    functionLinenumber: 2176
    functionLinenumberEnd: 2197
    functionName: _curses_echo
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyObject_IsTrue
    - _curses_echo_impl
    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:2214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2215
    functionName: _curses_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:2232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2229
    functionDepth: 2
    functionLinenumber: 2229
    functionLinenumberEnd: 2233
    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:2253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2250
    functionDepth: 0
    functionLinenumber: 2250
    functionLinenumberEnd: 2254
    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:2274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2275
    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:2296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2293
    functionDepth: 2
    functionLinenumber: 2293
    functionLinenumberEnd: 2297
    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:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2318
    functionDepth: 5
    functionLinenumber: 2318
    functionLinenumberEnd: 2322
    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:2353,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2357,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2358,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2362,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2367,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2375,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2376,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2379,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2380,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2383,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2384,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2387,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2388,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2392,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2400,1
    - Dst: _curses_ungetmouse_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2407,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2343
    functionDepth: 6
    functionLinenumber: 2343
    functionLinenumberEnd: 2411
    functionName: _curses_ungetmouse
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - PyLong_AsInt
    - _curses_ungetmouse_impl
    - PyErr_SetString
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyLong_AsLong
    - PyErr_Occurred
    - PyIndex_Check
    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:2451,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2452,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2456,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2461,1
    - Dst: _curses_halfdelay_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2444
    functionDepth: 6
    functionLinenumber: 2444
    functionLinenumberEnd: 2473
    functionName: _curses_halfdelay
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_AsLong
    - _curses_halfdelay_impl
    - PyErr_Occurred
    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:2490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2487
    functionDepth: 0
    functionLinenumber: 2487
    functionLinenumberEnd: 2491
    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:2508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2505
    functionDepth: 0
    functionLinenumber: 2505
    functionLinenumberEnd: 2509
    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:2526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2523
    functionDepth: 0
    functionLinenumber: 2523
    functionLinenumberEnd: 2527
    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:2552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2553,1
    - Dst: _curses_has_key_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2546
    functionDepth: 2
    functionLinenumber: 2546
    functionLinenumberEnd: 2560
    functionName: _curses_has_key
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_has_key_impl
    - PyErr_Occurred
    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:2599,1
    - Dst: color_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2602,1
    - Dst: component_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2605,1
    - Dst: component_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2608,1
    - Dst: component_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2611,1
    - Dst: _curses_init_color_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2614,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2590
    functionDepth: 6
    functionLinenumber: 2590
    functionLinenumberEnd: 2618
    functionName: _curses_init_color
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_init_color_impl
    - _PyArg_CheckPositional
    - component_converter
    - 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:2651,1
    - Dst: pair_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2654,1
    - Dst: color_allow_default_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2657,1
    - Dst: color_allow_default_converter
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2660,1
    - Dst: _curses_init_pair_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2663,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2643
    functionDepth: 5
    functionLinenumber: 2643
    functionLinenumberEnd: 2667
    functionName: _curses_init_pair
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _curses_init_pair_impl
    - color_allow_default_converter
    - pair_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:2686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2683
    functionDepth: 5
    functionLinenumber: 2683
    functionLinenumberEnd: 2687
    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:2721,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2723,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2723,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2740,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2744,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2756,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2758,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2762,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2763,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2768,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2775,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2776,1
    - Dst: _curses_setupterm_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2780,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: 2784
      start: 2708
    functionDepth: 3
    functionLinenumber: 2708
    functionLinenumberEnd: 2784
    functionName: _curses_setupterm
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _curses_setupterm_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:2807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2804
    functionDepth: 1
    functionLinenumber: 2804
    functionLinenumberEnd: 2808
    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:2839,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2840,1
    - Dst: _curses_set_escdelay_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2833
    functionDepth: 6
    functionLinenumber: 2833
    functionLinenumberEnd: 2847
    functionName: _curses_set_escdelay
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_set_escdelay_impl
    - PyErr_Occurred
    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:2871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2868
    functionDepth: 1
    functionLinenumber: 2868
    functionLinenumberEnd: 2872
    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:2902,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2903,1
    - Dst: _curses_set_tabsize_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2896
    functionDepth: 6
    functionLinenumber: 2896
    functionLinenumberEnd: 2910
    functionName: _curses_set_tabsize
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_set_tabsize_impl
    - PyErr_Occurred
    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:2931,1
    - Dst: _curses_intrflush_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2925
    functionDepth: 6
    functionLinenumber: 2925
    functionLinenumberEnd: 2939
    functionName: _curses_intrflush
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_intrflush_impl
    - PyObject_IsTrue
    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:2956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2953
    functionDepth: 0
    functionLinenumber: 2953
    functionLinenumberEnd: 2957
    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:2985,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2988,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2989,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2992,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2993,1
    - Dst: _curses_is_term_resized_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:2996,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2978
    functionDepth: 2
    functionLinenumber: 2978
    functionLinenumberEnd: 3000
    functionName: _curses_is_term_resized
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _curses_is_term_resized_impl
    - PyErr_Occurred
    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:3025,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3026,1
    - Dst: _curses_keyname_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3029,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 3019
    functionDepth: 2
    functionLinenumber: 3019
    functionLinenumberEnd: 3033
    functionName: _curses_keyname
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_keyname_impl
    - PyErr_Occurred
    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:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3047
    functionDepth: 2
    functionLinenumber: 3047
    functionLinenumberEnd: 3051
    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:3071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 3068
    functionDepth: 0
    functionLinenumber: 3068
    functionLinenumberEnd: 3072
    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:3095,1
    - Dst: _curses_meta_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3103
      start: 3089
    functionDepth: 6
    functionLinenumber: 3089
    functionLinenumberEnd: 3103
    functionName: _curses_meta
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_meta_impl
    - PyObject_IsTrue
    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:3132,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3133,1
    - Dst: _curses_mouseinterval_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3126
    functionDepth: 5
    functionLinenumber: 3126
    functionLinenumberEnd: 3140
    functionName: _curses_mouseinterval
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_mouseinterval_impl
    - PyErr_Occurred
    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:3170,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3171,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3175,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3183,1
    - Dst: _curses_mousemask_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3194
      start: 3164
    functionDepth: 2
    functionLinenumber: 3164
    functionLinenumberEnd: 3194
    functionName: _curses_mousemask
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_WarnEx
    - _curses_mousemask_impl
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    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:3220,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3221,1
    - Dst: _curses_napms_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3224,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3225,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3213
    functionDepth: 4
    functionLinenumber: 3213
    functionLinenumberEnd: 3232
    functionName: _curses_napms
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_napms_impl
    - PyLong_FromLong
    - PyErr_Occurred
    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:3258,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3261,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3262,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3265,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3266,1
    - Dst: _curses_newpad_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3251
    functionDepth: 5
    functionLinenumber: 3251
    functionLinenumberEnd: 3273
    functionName: _curses_newpad
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - _curses_newpad_impl
    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:3308,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3310,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3315,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3321,1
    - Dst: _curses_newwin_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3328
      start: 3298
    functionDepth: 5
    functionLinenumber: 3298
    functionLinenumberEnd: 3328
    functionName: _curses_newwin
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _curses_newwin_impl
    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:3355,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3361,1
    - Dst: _curses_nl_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3349
    functionDepth: 1
    functionLinenumber: 3349
    functionLinenumberEnd: 3370
    functionName: _curses_nl
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyObject_IsTrue
    - _curses_nl_impl
    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:3389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3386
    functionDepth: 0
    functionLinenumber: 3386
    functionLinenumberEnd: 3390
    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:3409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3410
      start: 3406
    functionDepth: 0
    functionLinenumber: 3406
    functionLinenumberEnd: 3410
    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:3430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3431
      start: 3427
    functionDepth: 0
    functionLinenumber: 3427
    functionLinenumberEnd: 3431
    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:3451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3452
      start: 3448
    functionDepth: 0
    functionLinenumber: 3448
    functionLinenumberEnd: 3452
    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:3471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3472
      start: 3468
    functionDepth: 0
    functionLinenumber: 3468
    functionLinenumberEnd: 3472
    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:3495,1
    - Dst: _curses_pair_content_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3489
    functionDepth: 5
    functionLinenumber: 3489
    functionLinenumberEnd: 3502
    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:3524,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3525,1
    - Dst: _curses_pair_number_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3518
    functionDepth: 2
    functionLinenumber: 3518
    functionLinenumberEnd: 3532
    functionName: _curses_pair_number
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_pair_number_impl
    - PyErr_Occurred
    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:3554,1
    - Dst: _curses_putp_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3561
      start: 3548
    functionDepth: 6
    functionLinenumber: 3548
    functionLinenumberEnd: 3561
    functionName: _curses_putp
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_putp_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_putp(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3587,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3593,1
    - Dst: _curses_qiflush_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3581
    functionDepth: 2
    functionLinenumber: 3581
    functionLinenumberEnd: 3602
    functionName: _curses_qiflush
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_qiflush_impl
    - _PyArg_CheckPositional
    - PyObject_IsTrue
    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:3620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3621
      start: 3617
    functionDepth: 3
    functionLinenumber: 3617
    functionLinenumberEnd: 3621
    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:3650,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3656,1
    - Dst: _curses_raw_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3661,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3665
      start: 3644
    functionDepth: 1
    functionLinenumber: 3644
    functionLinenumberEnd: 3665
    functionName: _curses_raw
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_raw_impl
    - _PyArg_CheckPositional
    - PyObject_IsTrue
    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:3682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3683
      start: 3679
    functionDepth: 0
    functionLinenumber: 3679
    functionLinenumberEnd: 3683
    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:3700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3701
      start: 3697
    functionDepth: 0
    functionLinenumber: 3697
    functionLinenumberEnd: 3701
    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:3718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3715
    functionDepth: 0
    functionLinenumber: 3715
    functionLinenumberEnd: 3719
    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:3750,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: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3773,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3774,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3778,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3783,1
    - Dst: _curses_resizeterm_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3791,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3795
      start: 3743
    functionDepth: 6
    functionLinenumber: 3743
    functionLinenumberEnd: 3795
    functionName: _curses_resizeterm
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _curses_resizeterm_impl
    - PyLong_AsLong
    - PyErr_Occurred
    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:3832,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3836,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3837,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3841,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3846,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3855,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3856,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3860,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3865,1
    - Dst: _curses_resize_term_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3873,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3877
      start: 3825
    functionDepth: 6
    functionLinenumber: 3825
    functionLinenumberEnd: 3877
    functionName: _curses_resize_term
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _curses_resize_term_impl
    - PyErr_SetString
    - PyLong_AsLong
    - PyErr_Occurred
    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:3896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3893
    functionDepth: 0
    functionLinenumber: 3893
    functionLinenumberEnd: 3897
    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:3927,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3930,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3931,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3934,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3935,1
    - Dst: _curses_setsyx_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:3938,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3920
    functionDepth: 2
    functionLinenumber: 3920
    functionLinenumberEnd: 3942
    functionName: _curses_setsyx
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - _curses_setsyx_impl
    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:3968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3969
      start: 3965
    functionDepth: 5
    functionLinenumber: 3965
    functionLinenumberEnd: 3969
    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:3986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3983
    functionDepth: 0
    functionLinenumber: 3983
    functionLinenumberEnd: 3987
    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:4004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4005
      start: 4001
    functionDepth: 0
    functionLinenumber: 4001
    functionLinenumberEnd: 4005
    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:4031,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4032,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4036,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4040,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4041,1
    - Dst: _curses_tigetflag_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4044,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4048
      start: 4025
    functionDepth: 2
    functionLinenumber: 4025
    functionLinenumberEnd: 4048
    functionName: _curses_tigetflag
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_tigetflag_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:4074,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4075,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4079,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4083,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4084,1
    - Dst: _curses_tigetnum_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4087,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4091
      start: 4068
    functionDepth: 2
    functionLinenumber: 4068
    functionLinenumberEnd: 4091
    functionName: _curses_tigetnum
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_tigetnum_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:4117,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4118,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4122,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4126,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4127,1
    - Dst: _curses_tigetstr_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4111
    functionDepth: 2
    functionLinenumber: 4111
    functionLinenumberEnd: 4134
    functionName: _curses_tigetstr
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_tigetstr_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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:4168,1
    - Dst: _curses_tparm_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4176
      start: 4153
    functionDepth: 5
    functionLinenumber: 4153
    functionLinenumberEnd: 4176
    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:4203,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4204,1
    - Dst: _curses_typeahead_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4211
      start: 4197
    functionDepth: 6
    functionLinenumber: 4197
    functionLinenumberEnd: 4211
    functionName: _curses_typeahead
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _curses_typeahead_impl
    - PyErr_Occurred
    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:4278,1
    - Dst: _curses_use_env_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4286
      start: 4272
    functionDepth: 1
    functionLinenumber: 4272
    functionLinenumberEnd: 4286
    functionName: _curses_use_env
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_use_env_impl
    - PyObject_IsTrue
    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:4307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4308
      start: 4304
    functionDepth: 6
    functionLinenumber: 4304
    functionLinenumberEnd: 4308
    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:4338,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4341,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4342,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4345,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4346,1
    - Dst: _curses_assume_default_colors_impl
      Src: /src/cpython/Modules/clinic/_cursesmodule.c.h:4349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4353
      start: 4331
    functionDepth: 6
    functionLinenumber: 4331
    functionLinenumberEnd: 4353
    functionName: _curses_assume_default_colors
    functionSourceFile: /src/cpython/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - _curses_assume_default_colors_impl
    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:4375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4376
      start: 4372
    functionDepth: 2
    functionLinenumber: 4372
    functionLinenumberEnd: 4376
    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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - py_sha3_new_impl
    - PyObject_IsTrue
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _sha3_sha3_224_copy_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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: 5
    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: PyErr_SetString
      Src: /src/cpython/Modules/clinic/sha3module.c.h:239,1
    - Dst: _sha3_shake_128_digest_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 248
    functionName: _sha3_shake_128_digest
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - _sha3_shake_128_digest_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_digest(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/sha3module.c.h:275,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/sha3module.c.h:277,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/sha3module.c.h:296,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/sha3module.c.h:303,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/sha3module.c.h:305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/sha3module.c.h:306,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/sha3module.c.h:308,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/sha3module.c.h:313,1
    - Dst: _sha3_shake_128_hexdigest_impl
      Src: /src/cpython/Modules/clinic/sha3module.c.h:318,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 322
    functionName: _sha3_shake_128_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_shake_128_hexdigest_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - py_blake2b_new_impl
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyLong_UnsignedLong_Converter
    - PyObject_IsTrue
    - _PyLong_UnsignedLongLong_Converter
    - PyBuffer_Release
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyLong_UnsignedLong_Converter
    - PyObject_IsTrue
    - _PyLong_UnsignedLongLong_Converter
    - PyBuffer_Release
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - py_blake2s_new_impl
    - _Py_ID
    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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _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:
    - PyBool_FromLong
    - _operator_truth_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_truth(PyObject *module, PyObject *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_sub_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_sub(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_mul_impl
    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:
    - _PyArg_CheckPositional
    - _operator_matmul_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_matmul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_floordiv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_floordiv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_mod_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_mod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_lshift_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_lshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_rshift_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_rshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _operator_not__impl
      Src: /src/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:
    - _operator_and__impl
    - _PyArg_CheckPositional
    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:
    - _PyArg_CheckPositional
    - _operator_xor_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_xor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_iadd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_iadd(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_isub_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_isub(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_imul_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_imatmul_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imatmul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_ifloordiv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ifloordiv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_itruediv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_itruediv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_imod_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _operator_irshift_impl
    - _PyArg_CheckPositional
    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:
    - _PyArg_CheckPositional
    - _operator_iand_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_iand(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_ixor_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ixor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _operator_contains_impl
    - _PyArg_CheckPositional
    - PyBool_FromLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_contains(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - PyLong_FromSsize_t
    - _operator_indexOf_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_indexOf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _operator_countOf_impl
    - _PyArg_CheckPositional
    - PyLong_FromSsize_t
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - _operator_getitem_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_getitem(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_delitem_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_delitem(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _PyArg_CheckPositional
    - _operator_ne_impl
    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:
    - _PyArg_CheckPositional
    - _operator_gt_impl
    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:
    - _PyArg_CheckPositional
    - _operator_pow_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/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:
    - _operator_is_not_impl
    - _PyArg_CheckPositional
    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:
    - _PyArg_CheckPositional
    - _operator_length_hint_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:
    - _PyArg_CheckPositional
    - _operator__compare_digest_impl
    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
    - readline_parse_and_bind_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - readline_read_init_file_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - readline_read_history_file_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - readline_write_history_file_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - readline_append_history_file_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - readline_set_history_length_impl
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - readline_set_completion_display_matches_hook_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - readline_set_startup_hook_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - readline_set_pre_input_hook_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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_pre_input_hook_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: readline_get_pre_input_hook
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_get_pre_input_hook_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      readline_get_pre_input_hook(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_get_completion_type_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 390
    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:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 408
    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:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 426
    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:445,1
    - Dst: readline_set_completer_delims_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:446,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 450
    functionName: readline_set_completer_delims
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - readline_set_completer_delims_impl
    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:470,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/readline.c.h:471,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:474,1
    - Dst: readline_remove_history_item_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:475,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 480
    functionName: readline_remove_history_item
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - readline_remove_history_item_impl
    - PyErr_Occurred
    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:504,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/readline.c.h:507,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/readline.c.h:508,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/readline.c.h:511,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/readline.c.h:512,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:516,1
    - Dst: readline_replace_history_item_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:517,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 522
    functionName: readline_replace_history_item
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyErr_Occurred
    - readline_replace_history_item_impl
    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:541,1
    - Dst: readline_add_history_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:542,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 546
    functionName: readline_add_history
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - readline_add_history_impl
    - Py_END_CRITICAL_SECTION
    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:567,1
    - Dst: readline_set_auto_history_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 575
    functionName: readline_set_auto_history
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_set_auto_history_impl
    - PyObject_IsTrue
    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:594,1
    - Dst: readline_get_completer_delims_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:595,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 599
    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:623,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:631,1
    - Dst: readline_set_completer_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:632,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 637
    functionName: readline_set_completer
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - 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:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 655
    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:675,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/readline.c.h:676,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:679,1
    - Dst: readline_get_history_item_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:680,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 685
    functionName: readline_get_history_item
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - readline_get_history_item_impl
    - PyErr_Occurred
    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:704,1
    - Dst: readline_get_current_history_length_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:705,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 709
    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:728,1
    - Dst: readline_get_line_buffer_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:729,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 723
    functionDepth: 3
    functionLinenumber: 723
    functionLinenumberEnd: 733
    functionName: readline_get_line_buffer
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_get_line_buffer_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:754,1
    - Dst: readline_clear_history_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:755,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 759
    functionName: readline_clear_history
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - readline_clear_history_impl
    - Py_END_CRITICAL_SECTION
    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:780,1
    - Dst: readline_insert_text_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:781,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 785
    functionName: readline_insert_text
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - readline_insert_text_impl
    - Py_END_CRITICAL_SECTION
    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:804,1
    - Dst: readline_redisplay_impl
      Src: /src/cpython/Modules/clinic/readline.c.h:805,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/readline.c.h:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 809
    functionName: readline_redisplay
    functionSourceFile: /src/cpython/Modules/clinic/readline.c.h
    functionUses: 0
    functionsReached:
    - readline_redisplay_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyList_Check
    - _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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyList_Check
    - _heapq_heappop_impl
    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:
    - _PyArg_CheckPositional
    - _heapq_heapreplace_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyList_Check
    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:
    - _PyArg_CheckPositional
    - _heapq_heappushpop_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyList_Check
    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:
    - _heapq_heapify_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyList_Check
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _heapq_heappush_max_impl
    - _PyArg_BadArgument
    - PyList_Check
    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:
    - _heapq_heappop_max_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyList_Check
    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:
    - _PyArg_CheckPositional
    - _heapq_heapreplace_max_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyList_Check
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_BadArgument
    - PyList_Check
    - _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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _heapq_heappushpop_max_impl
    - _PyArg_BadArgument
    - PyList_Check
    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:31,1
    - Dst: pyexpat_xmlparser_SetReparseDeferralEnabled_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 39
    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:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 57
    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:95,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:104,1
    - Dst: pyexpat_xmlparser_Parse_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:109,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: 113
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 113
    functionName: pyexpat_xmlparser_Parse
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - pyexpat_xmlparser_Parse_impl
    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:148,1
    - Dst: pyexpat_xmlparser_ParseFile_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:154,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: 158
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 158
    functionName: pyexpat_xmlparser_ParseFile
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - pyexpat_xmlparser_ParseFile_impl
    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:178,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:179,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:183,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:187,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:188,1
    - Dst: pyexpat_xmlparser_SetBase_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 195
    functionName: pyexpat_xmlparser_SetBase
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_SetBase_impl
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    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: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: 3
    functionLinenumber: 209
    functionLinenumberEnd: 213
    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: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: 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:274,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:282,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:284,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:289,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:294,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:300,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:301,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:305,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:310,1
    - Dst: pyexpat_xmlparser_ExternalEntityParserCreate_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:314,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: 318
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 318
    functionName: pyexpat_xmlparser_ExternalEntityParserCreate
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - pyexpat_xmlparser_ExternalEntityParserCreate_impl
    - strlen
    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:343,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:344,1
    - Dst: pyexpat_xmlparser_SetParamEntityParsing_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 351
    functionName: pyexpat_xmlparser_SetParamEntityParsing
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - pyexpat_xmlparser_SetParamEntityParsing_impl
    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:393,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:401,1
    - Dst: pyexpat_xmlparser_UseForeignDTD_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:406,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: 410
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 410
    functionName: pyexpat_xmlparser_UseForeignDTD
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - pyexpat_xmlparser_UseForeignDTD_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_UseForeignDTD(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/pyexpat.c.h:460,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:465,1
    - Dst: pyexpat_xmlparser_SetBillionLaughsAttackProtectionActivationThreshold_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 472
    functionName: pyexpat_xmlparser_SetBillionLaughsAttackProtectionActivationThreshold
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_SetBillionLaughsAttackProtectionActivationThreshold_impl
    - _PyArg_UnpackKeywords
    - _PyLong_UnsignedLongLong_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetBillionLaughsAttackProtectionActivationThreshold(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/pyexpat.c.h:529,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:534,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:535,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:539,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:540,1
    - Dst: pyexpat_xmlparser_SetBillionLaughsAttackProtectionMaximumAmplification_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:544,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 509
    functionDepth: 4
    functionLinenumber: 509
    functionLinenumberEnd: 548
    functionName: pyexpat_xmlparser_SetBillionLaughsAttackProtectionMaximumAmplification
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - _PyArg_UnpackKeywords
    - pyexpat_xmlparser_SetBillionLaughsAttackProtectionMaximumAmplification_impl
    - PyFloat_CheckExact
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetBillionLaughsAttackProtectionMaximumAmplification(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/pyexpat.c.h:592,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:597,1
    - Dst: pyexpat_xmlparser_SetAllocTrackerActivationThreshold_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 604
    functionName: pyexpat_xmlparser_SetAllocTrackerActivationThreshold
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_SetAllocTrackerActivationThreshold_impl
    - _PyArg_UnpackKeywords
    - _PyLong_UnsignedLongLong_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetAllocTrackerActivationThreshold(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/pyexpat.c.h:659,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:664,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:665,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:669,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:670,1
    - Dst: pyexpat_xmlparser_SetAllocTrackerMaximumAmplification_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:674,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - self
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 639
    functionDepth: 4
    functionLinenumber: 639
    functionLinenumberEnd: 678
    functionName: pyexpat_xmlparser_SetAllocTrackerMaximumAmplification
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - _PyArg_UnpackKeywords
    - PyFloat_CheckExact
    - PyErr_Occurred
    - pyexpat_xmlparser_SetAllocTrackerMaximumAmplification_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetAllocTrackerMaximumAmplification(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:709,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:711,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:711,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:711,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:728,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:733,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:745,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:747,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:751,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:752,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:757,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:768,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:770,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:774,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:775,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:780,1
    - Dst: pyexpat_ParserCreate_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:789,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: 793
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 793
    functionName: pyexpat_ParserCreate
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - pyexpat_ParserCreate_impl
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:813,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:814,1
    - Dst: pyexpat_ErrorString_impl
      Src: /src/cpython/Modules/clinic/pyexpat.c.h:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: pyexpat_ErrorString
    functionSourceFile: /src/cpython/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_ErrorString_impl
    - PyLong_AsLong
    - PyErr_Occurred
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _interpreters_create_impl
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _interpreters_destroy_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _interpreters_list_all_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyDict_Check
    - PyTuple_GET_SIZE
    - _interpreters_set___main___attrs_impl
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - _interpreters_exec_impl
    - PyDict_Check
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyDict_Check
    - PyTuple_GET_SIZE
    - _interpreters_run_string_impl
    - _Py_ID
    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:569,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:571,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:571,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:571,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:571,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:588,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:594,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:605,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:606,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:618,1
    - Dst: _interpreters_run_func_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:623,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: 627
      start: 556
    functionDepth: 4
    functionLinenumber: 556
    functionLinenumberEnd: 627
    functionName: _interpreters_run_func
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpreters_run_func_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyDict_Check
    - PyTuple_GET_SIZE
    - _Py_ID
    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:659,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:661,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:661,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:661,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:661,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:661,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:661,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:678,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:686,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:697,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:698,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:707,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:708,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:721,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:729,1
    - Dst: _interpreters_call_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:734,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: 738
      start: 646
    functionDepth: 4
    functionLinenumber: 646
    functionLinenumberEnd: 738
    functionName: _interpreters_call
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _interpreters_call_impl
    - PyObject_IsTrue
    - _PyArg_BadArgument
    - PyDict_Check
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - _Py_ID
    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:765,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:767,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:786,1
    - Dst: _interpreters_is_shareable_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:792,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: 796
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 796
    functionName: _interpreters_is_shareable
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpreters_is_shareable_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:823,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:825,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:825,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:842,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:846,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:855,1
    - Dst: _interpreters_is_running_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:860,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: 864
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 864
    functionName: _interpreters_is_running
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _interpreters_is_running_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:891,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:893,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:893,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:910,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:914,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:923,1
    - Dst: _interpreters_get_config_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:928,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: 932
      start: 878
    functionDepth: 4
    functionLinenumber: 878
    functionLinenumberEnd: 932
    functionName: _interpreters_get_config
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _interpreters_get_config_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:959,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:961,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:980,1
    - Dst: _interpreters_whence_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:986,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: 990
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 990
    functionName: _interpreters_whence
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _interpreters_whence_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:1017,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1019,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1019,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1019,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1036,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1041,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1051,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1059,1
    - Dst: _interpreters_incref_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1064,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: 1068
      start: 1004
    functionDepth: 4
    functionLinenumber: 1004
    functionLinenumberEnd: 1068
    functionName: _interpreters_incref
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _interpreters_incref_impl
    - _Py_ID
    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:1094,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1096,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1096,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1113,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1117,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1126,1
    - Dst: _interpreters_decref_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1131,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: 1135
      start: 1081
    functionDepth: 4
    functionLinenumber: 1081
    functionLinenumberEnd: 1135
    functionName: _interpreters_decref
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - _interpreters_decref_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1166,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1168,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1185,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1188,1
    - Dst: _interpreters_capture_exception_impl
      Src: /src/cpython/Modules/clinic/_interpretersmodule.c.h:1198,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: 1202
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1202
    functionName: _interpreters_capture_exception
    functionSourceFile: /src/cpython/Modules/clinic/_interpretersmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _interpreters_capture_exception_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _functools_cmp_to_key_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:107,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:109,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:126,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:131,1
    - Dst: _functools_reduce_impl
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:143,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: 147
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 147
    functionName: _functools_reduce
    functionSourceFile: /src/cpython/Modules/clinic/_functoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _functools_reduce_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:166,1
    - Dst: _functools__lru_cache_wrapper_cache_info_impl
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:167,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: _functools__lru_cache_wrapper_cache_info
    functionSourceFile: /src/cpython/Modules/clinic/_functoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:190,1
    - Dst: _functools__lru_cache_wrapper_cache_clear_impl
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:191,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_functoolsmodule.c.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 195
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _hmac_new_impl
    - _Py_ID
    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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _hmac_HMAC_copy_impl
    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:
    - PyVarObject_HEAD_INIT
    - _hmac_HMAC_update_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _hmac_compute_digest_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - _hmac_compute_sha1_impl
    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:
    - _hmac_compute_sha2_224_impl
    - _PyArg_CheckPositional
    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:
    - _hmac_compute_sha2_512_impl
    - _PyArg_CheckPositional
    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:
    - _PyArg_CheckPositional
    - _hmac_compute_sha3_384_impl
    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:
    - _PyArg_CheckPositional
    - _hmac_compute_sha3_512_impl
    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:
    - _PyArg_CheckPositional
    - _hmac_compute_blake2b_32_impl
    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:32,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:35,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:36,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:39,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:40,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:43,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:46,1
    - Dst: unicodedata_UCD_decimal_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 56
    functionName: unicodedata_UCD_decimal
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - unicodedata_UCD_decimal_impl
    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:81,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:84,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:85,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:88,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:89,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:92,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:95,1
    - Dst: unicodedata_UCD_digit_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 105
    functionName: unicodedata_UCD_digit
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - unicodedata_UCD_digit_impl
    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:131,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:134,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:135,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:138,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:139,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:142,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:145,1
    - Dst: unicodedata_UCD_numeric_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 155
    functionName: unicodedata_UCD_numeric
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyUnicode_READ_CHAR
    - unicodedata_UCD_numeric_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:175,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:176,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:179,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:180,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:183,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:186,1
    - Dst: unicodedata_UCD_category_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 191
    functionName: unicodedata_UCD_category
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - unicodedata_UCD_category_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:213,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:214,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:217,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:218,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:221,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:224,1
    - Dst: unicodedata_UCD_bidirectional_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 229
    functionName: unicodedata_UCD_bidirectional
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_bidirectional_impl
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:252,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:253,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:256,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:257,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:260,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:263,1
    - Dst: unicodedata_UCD_combining_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:264,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:265,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 272
    functionName: unicodedata_UCD_combining
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_READ_CHAR
    - unicodedata_UCD_combining_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyErr_Occurred
    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:296,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:297,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:300,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:301,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:304,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:307,1
    - Dst: unicodedata_UCD_mirrored_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:308,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:309,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 316
    functionName: unicodedata_UCD_mirrored
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_READ_CHAR
    - unicodedata_UCD_mirrored_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyErr_Occurred
    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:336,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:337,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:340,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:341,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:344,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:347,1
    - Dst: unicodedata_UCD_east_asian_width_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 352
    functionName: unicodedata_UCD_east_asian_width
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_east_asian_width_impl
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:374,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:375,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:378,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:379,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:382,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:385,1
    - Dst: unicodedata_UCD_decomposition_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: unicodedata_UCD_decomposition
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_decomposition_impl
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:414,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:417,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:418,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:422,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:423,1
    - Dst: unicodedata_UCD_is_normalized_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:427,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 431
    functionName: unicodedata_UCD_is_normalized
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicodedata_UCD_is_normalized_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:455,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:458,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:459,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:463,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:464,1
    - Dst: unicodedata_UCD_normalize_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 448
    functionDepth: 5
    functionLinenumber: 448
    functionLinenumberEnd: 472
    functionName: unicodedata_UCD_normalize
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicodedata_UCD_normalize_impl
    - PyUnicode_Check
    - _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:496,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:499,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:500,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:503,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:504,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:507,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:510,1
    - Dst: unicodedata_UCD_name_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:516,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 489
    functionDepth: 5
    functionLinenumber: 489
    functionLinenumberEnd: 520
    functionName: unicodedata_UCD_name
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_name_impl
    - _PyArg_CheckPositional
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_name(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:540,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:541,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:544,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:545,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:548,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:551,1
    - Dst: unicodedata_isxidstart_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 556
    functionName: unicodedata_isxidstart
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - unicodedata_isxidstart_impl
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_isxidstart(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:576,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:577,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:580,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:581,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:584,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:587,1
    - Dst: unicodedata_isxidcontinue_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 592
    functionName: unicodedata_isxidcontinue
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - unicodedata_isxidcontinue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_isxidcontinue(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:617,1
    - Dst: unicodedata_UCD_lookup_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 610
    functionDepth: 5
    functionLinenumber: 610
    functionLinenumberEnd: 624
    functionName: unicodedata_UCD_lookup
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_lookup_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_lookup(PyObject *self, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:649,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:652,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:653,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:662,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:667,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:677,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:679,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:680,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:682,1
    - Dst: unicodedata_iter_graphemes_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:688,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 692
    functionName: unicodedata_iter_graphemes
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicodedata_iter_graphemes_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_iter_graphemes(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:712,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:713,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:716,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:717,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:720,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:723,1
    - Dst: unicodedata_block_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 728
    functionName: unicodedata_block
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - unicodedata_block_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_block(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:748,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:749,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:752,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:753,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:756,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:759,1
    - Dst: unicodedata_grapheme_cluster_break_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 764
    functionName: unicodedata_grapheme_cluster_break
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - unicodedata_grapheme_cluster_break_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_grapheme_cluster_break(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:784,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:785,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:788,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:789,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:792,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:795,1
    - Dst: unicodedata_indic_conjunct_break_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 800
    functionName: unicodedata_indic_conjunct_break
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_indic_conjunct_break_impl
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_indic_conjunct_break(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:820,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:821,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:824,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:825,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:828,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:831,1
    - Dst: unicodedata_extended_pictographic_impl
      Src: /src/cpython/Modules/clinic/unicodedata.c.h:832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 836
    functionName: unicodedata_extended_pictographic
    functionSourceFile: /src/cpython/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - _PyArg_BadArgument
    - unicodedata_extended_pictographic_impl
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_extended_pictographic(PyObject *module, 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: 5
    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: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:154,1
    - Dst: _hashlib_HASHXOF_digest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 163
    functionName: _hashlib_HASHXOF_digest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _hashlib_HASHXOF_digest_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_HASHXOF_digest(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:194,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:196,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:215,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:222,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:225,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:227,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:232,1
    - Dst: _hashlib_HASHXOF_hexdigest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 241
    functionName: _hashlib_HASHXOF_hexdigest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _hashlib_HASHXOF_hexdigest_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:276,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:278,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:295,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:301,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:306,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:307,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:311,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:315,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:316,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:333,1
    - Dst: _hashlib_HASH_new_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:343,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: 347
      start: 263
    functionDepth: 8
    functionLinenumber: 263
    functionLinenumberEnd: 347
    functionName: _hashlib_HASH_new
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _hashlib_HASH_new_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:375,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:377,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:377,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:394,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:399,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:418,1
    - Dst: _hashlib_openssl_md5_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:428,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: 432
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 432
    functionName: _hashlib_openssl_md5
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _hashlib_openssl_md5_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:460,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:462,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:462,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:462,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:479,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:484,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:503,1
    - Dst: _hashlib_openssl_sha1_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:513,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: 517
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 517
    functionName: _hashlib_openssl_sha1
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha1_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:546,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:548,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:548,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:548,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:565,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:570,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:589,1
    - Dst: _hashlib_openssl_sha224_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:599,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: 603
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 603
    functionName: _hashlib_openssl_sha224
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _hashlib_openssl_sha224_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:632,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:634,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:634,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:634,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:651,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:656,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:675,1
    - Dst: _hashlib_openssl_sha256_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:685,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: 689
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 689
    functionName: _hashlib_openssl_sha256
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha256_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:718,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:720,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:720,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:720,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:737,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:742,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:761,1
    - Dst: _hashlib_openssl_sha384_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:771,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: 775
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 775
    functionName: _hashlib_openssl_sha384
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _hashlib_openssl_sha384_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:804,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:806,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:806,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:806,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:823,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:828,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:847,1
    - Dst: _hashlib_openssl_sha512_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:857,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: 861
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 861
    functionName: _hashlib_openssl_sha512
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _hashlib_openssl_sha512_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:892,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:894,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:894,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:894,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:911,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:916,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:935,1
    - Dst: _hashlib_openssl_sha3_224_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:945,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: 949
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 949
    functionName: _hashlib_openssl_sha3_224
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha3_224_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:982,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:984,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:984,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:984,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1001,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1006,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1025,1
    - Dst: _hashlib_openssl_sha3_256_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1035,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: 1039
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 1039
    functionName: _hashlib_openssl_sha3_256
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _hashlib_openssl_sha3_256_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1072,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1074,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1074,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1074,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1091,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1096,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1115,1
    - Dst: _hashlib_openssl_sha3_384_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1125,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: 1129
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1129
    functionName: _hashlib_openssl_sha3_384
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _hashlib_openssl_sha3_384_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1162,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1164,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1164,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1164,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1181,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1186,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1205,1
    - Dst: _hashlib_openssl_sha3_512_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1215,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: 1219
      start: 1149
    functionDepth: 2
    functionLinenumber: 1149
    functionLinenumberEnd: 1219
    functionName: _hashlib_openssl_sha3_512
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha3_512_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1252,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1254,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1254,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1254,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1271,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1276,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1295,1
    - Dst: _hashlib_openssl_shake_128_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1305,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: 1309
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1309
    functionName: _hashlib_openssl_shake_128
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _hashlib_openssl_shake_128_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1342,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1344,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1344,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1344,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1361,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1366,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1385,1
    - Dst: _hashlib_openssl_shake_256_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1395,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: 1399
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1399
    functionName: _hashlib_openssl_shake_256
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_shake_256_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1431,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1433,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1433,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1433,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1433,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1433,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1450,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1457,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1462,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1463,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1467,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1471,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1472,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1475,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1478,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1481,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1482,1
    - Dst: pbkdf2_hmac_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1490,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1495,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1499,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: 1503
      start: 1418
    functionDepth: 7
    functionLinenumber: 1418
    functionLinenumberEnd: 1503
    functionName: pbkdf2_hmac
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - pbkdf2_hmac_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - PyLong_AsLong
    - strlen
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:1532,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1534,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1534,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1534,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1534,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1534,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1534,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1534,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1551,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1560,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1565,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1568,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1571,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1574,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1577,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1584,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1585,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1592,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1593,1
    - Dst: _hashlib_scrypt_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1597,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1602,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1606,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: 1610
      start: 1519
    functionDepth: 5
    functionLinenumber: 1519
    functionLinenumberEnd: 1610
    functionName: _hashlib_scrypt
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyLong_UnsignedLong_Converter
    - PyBuffer_Release
    - _Py_LATIN1_CHR
    - PyLong_AsLong
    - PyErr_Occurred
    - _hashlib_scrypt_impl
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:1638,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1640,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1640,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1640,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1661,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1666,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1669,1
    - Dst: _hashlib_hmac_singleshot_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1673,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1678,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1682,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: 1686
      start: 1625
    functionDepth: 9
    functionLinenumber: 1625
    functionLinenumberEnd: 1686
    functionName: _hashlib_hmac_singleshot
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - _Py_ID
    - PyObject_GetBuffer
    - _hashlib_hmac_singleshot_impl
    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:1714,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1716,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1716,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1716,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1733,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1738,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1743,1
    - Dst: _hashlib_hmac_new_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1757,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1762,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: 1766
      start: 1701
    functionDepth: 10
    functionLinenumber: 1701
    functionLinenumberEnd: 1766
    functionName: _hashlib_hmac_new
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - _hashlib_hmac_new_impl
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:1783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1780
    functionDepth: 6
    functionLinenumber: 1780
    functionLinenumberEnd: 1784
    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:1811,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1813,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1832,1
    - Dst: _hashlib_HMAC_update_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1838,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: 1842
      start: 1798
    functionDepth: 7
    functionLinenumber: 1798
    functionLinenumberEnd: 1842
    functionName: _hashlib_HMAC_update
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _hashlib_HMAC_update_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1856
    functionDepth: 8
    functionLinenumber: 1856
    functionLinenumberEnd: 1860
    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:1880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1877
    functionDepth: 8
    functionLinenumber: 1877
    functionLinenumberEnd: 1881
    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:1908,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1909,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1902
    functionDepth: 5
    functionLinenumber: 1902
    functionLinenumberEnd: 1916
    functionName: _hashlib_get_fips_mode
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _hashlib_get_fips_mode_impl
    - PyErr_Occurred
    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:1947,1
    - Dst: _hashlib_compare_digest_impl
      Src: /src/cpython/Modules/clinic/_hashopenssl.c.h:1952,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1940
    functionDepth: 2
    functionLinenumber: 1940
    functionLinenumberEnd: 1956
    functionName: _hashlib_compare_digest
    functionSourceFile: /src/cpython/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _hashlib_compare_digest_impl
    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
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _md5_md5_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: math_integer_gcd_impl
      Src: /src/cpython/Modules/clinic/mathintegermodule.c.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: math_integer_gcd
    functionSourceFile: /src/cpython/Modules/clinic/mathintegermodule.c.h
    functionUses: 0
    functionsReached:
    - math_integer_gcd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_integer_gcd(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: math_integer_lcm_impl
      Src: /src/cpython/Modules/clinic/mathintegermodule.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: math_integer_lcm
    functionSourceFile: /src/cpython/Modules/clinic/mathintegermodule.c.h
    functionUses: 0
    functionsReached:
    - math_integer_lcm_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_integer_lcm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathintegermodule.c.h:106,1
    - Dst: math_integer_perm_impl
      Src: /src/cpython/Modules/clinic/mathintegermodule.c.h:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: math_integer_perm
    functionSourceFile: /src/cpython/Modules/clinic/mathintegermodule.c.h
    functionUses: 0
    functionsReached:
    - math_integer_perm_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_integer_perm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/mathintegermodule.c.h:149,1
    - Dst: math_integer_comb_impl
      Src: /src/cpython/Modules/clinic/mathintegermodule.c.h:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: math_integer_comb
    functionSourceFile: /src/cpython/Modules/clinic/mathintegermodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - math_integer_comb_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_integer_comb(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_enable_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    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:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    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:66,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:67,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: gc_isenabled
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_isenabled_impl
    - PyBool_FromLong
    - PyErr_Occurred
    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:107,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:109,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:126,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:130,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:139,1
    - Dst: gc_collect_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:144,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:147,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: 151
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 151
    functionName: gc_collect
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - gc_collect_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:182,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:183,1
    - Dst: gc_set_debug_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: gc_set_debug
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - gc_set_debug_impl
    - PyErr_Occurred
    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:210,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:211,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: gc_get_debug
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - gc_get_debug_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_debug(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:243,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:245,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:250,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:256,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:263,1
    - Dst: gc_set_threshold_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 270
    functionName: gc_set_threshold
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - gc_set_threshold_impl
    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:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 288
    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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 306
    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:326,1
    - Dst: gc_get_referrers_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:330,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 337
    functionName: gc_get_referrers
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - Py_XDECREF
    - 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:357,1
    - Dst: gc_get_referents_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:361,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 368
    functionName: gc_get_referents
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - gc_get_referents_impl
    - Py_XDECREF
    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:401,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:403,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:420,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:423,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:431,1
    - Dst: gc_get_objects_impl
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:435,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: 439
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 439
    functionName: gc_get_objects
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_convert_optional_to_ssize_t
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - gc_get_objects_impl
    - _Py_ID
    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:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 457
    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:479,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:480,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: gc_is_tracked
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - gc_is_tracked_impl
    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:507,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:508,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/gcmodule.c.h:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 515
    functionName: gc_is_finalized
    functionSourceFile: /src/cpython/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyErr_Occurred
    - gc_is_finalized_impl
    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:
    - gc_get_freeze_count_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: 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:
    - grp_getgrgid_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - grp_getgrnam_impl
    - _Py_ID
    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: 13
    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: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:97,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:107,1
    - Dst: _bisect_bisect_right_impl
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:120,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:121,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:124,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 128
    functionName: _bisect_bisect_right
    functionSourceFile: /src/cpython/Modules/clinic/_bisectmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_convert_optional_to_ssize_t
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _bisect_bisect_right_impl
    - _Py_LATIN1_CHR
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bisect_bisect_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:163,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:165,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:165,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:165,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:165,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:165,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:182,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:189,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:202,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:205,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:207,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:212,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:222,1
    - Dst: _bisect_insort_right_impl
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:235,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: 239
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 239
    functionName: _bisect_insort_right
    functionSourceFile: /src/cpython/Modules/clinic/_bisectmodule.c.h
    functionUses: 0
    functionsReached:
    - _bisect_insort_right_impl
    - _Py_convert_optional_to_ssize_t
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:276,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:278,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:278,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:295,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:303,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:316,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:319,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:321,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:326,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:336,1
    - Dst: _bisect_bisect_left_impl
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:349,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:350,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:353,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 357
    functionName: _bisect_bisect_left
    functionSourceFile: /src/cpython/Modules/clinic/_bisectmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_convert_optional_to_ssize_t
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _Py_LATIN1_CHR
    - _bisect_bisect_left_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bisect_bisect_left(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:392,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:394,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:394,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:394,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:394,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:394,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:411,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:418,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:431,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:434,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:436,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:441,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:451,1
    - Dst: _bisect_insort_left_impl
      Src: /src/cpython/Modules/clinic/_bisectmodule.c.h:464,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: 468
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 468
    functionName: _bisect_insort_left
    functionSourceFile: /src/cpython/Modules/clinic/_bisectmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_convert_optional_to_ssize_t
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _Py_LATIN1_CHR
    - _bisect_insort_left_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - cmath_acos_impl
    - PyErr_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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:
    - cmath_acosh_impl
    - PyErr_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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_SetString
    - cmath_asin_impl
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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_SetString
    - PyComplex_FromCComplex
    - cmath_asinh_impl
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - 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_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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_SetString
    - cmath_cos_impl
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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:
    - PyErr_SetString
    - cmath_cosh_impl
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - cmath_exp_impl
    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_SetString
    - PyComplex_FromCComplex
    - cmath_log10_impl
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - cmath_sin_impl
    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_SetString
    - cmath_sinh_impl
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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:
    - cmath_sqrt_impl
    - PyErr_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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:
    - PyErr_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - cmath_tan_impl
    - PyComplex_AsCComplex
    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_SetString
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    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:663,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:666,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:667,1
    - Dst: cmath_log_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:675,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 679
    functionName: cmath_log
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyComplex_AsCComplex
    - PyErr_Occurred
    - cmath_log_impl
    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:699,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:700,1
    - Dst: cmath_phase_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 707
    functionName: cmath_phase
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_phase_impl
    - PyComplex_AsCComplex
    - PyErr_Occurred
    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:729,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:730,1
    - Dst: cmath_polar_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 723
    functionDepth: 3
    functionLinenumber: 723
    functionLinenumberEnd: 737
    functionName: cmath_polar
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_polar_impl
    - PyComplex_AsCComplex
    - PyErr_Occurred
    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:758,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:761,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:762,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:766,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:767,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:771,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:772,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:776,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:777,1
    - Dst: cmath_rect_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:781,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 751
    functionDepth: 3
    functionLinenumber: 751
    functionLinenumberEnd: 785
    functionName: cmath_rect
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - cmath_rect_impl
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    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:805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:806,1
    - Dst: cmath_isfinite_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 813
    functionName: cmath_isfinite
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - cmath_isfinite_impl
    - PyErr_Occurred
    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:833,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:834,1
    - Dst: cmath_isnan_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 841
    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:861,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:862,1
    - Dst: cmath_isinf_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 869
    functionName: cmath_isinf
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyComplex_AsCComplex
    - cmath_isinf_impl
    - PyErr_Occurred
    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:913,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:915,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:915,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:915,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:915,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:932,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:939,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:944,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:945,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:948,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:949,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:956,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:957,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:961,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:962,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:970,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:971,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:975,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:976,1
    - Dst: cmath_isclose_impl
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:981,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:982,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/clinic/cmathmodule.c.h:985,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: 989
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 989
    functionName: cmath_isclose
    functionSourceFile: /src/cpython/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AS_DOUBLE
    - PyFloat_AsDouble
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyFloat_CheckExact
    - PyBool_FromLong
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyTuple_GET_SIZE
    - cmath_isclose_impl
    - _Py_ID
    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:
    - depr_star_new_impl
    - PyErr_WarnEx
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - depr_star_new_clone_impl
    - PyTuple_GET_SIZE
    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:
    - depr_star_init_impl
    - PyErr_WarnEx
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - depr_star_init_clone_impl
    - PyTuple_GET_SIZE
    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:
    - depr_star_init_noinline_impl
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _Py_LATIN1_CHR
    - _PyArg_ParseTupleAndKeywordsFast
    - PyTuple_GET_SIZE
    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
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - depr_kwd_new_impl
    - _Py_LATIN1_CHR
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - depr_kwd_init_impl
    - _Py_LATIN1_CHR
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - depr_kwd_init_noinline_impl
    - _Py_LATIN1_CHR
    - PyDict_Contains
    - PyErr_Occurred
    - _PyArg_ParseTupleAndKeywordsFast
    - PyTuple_GET_SIZE
    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:
    - depr_star_pos0_len1_impl
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - depr_star_pos0_len2_impl
    - _Py_LATIN1_CHR
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - 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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - depr_star_pos1_len1_opt_impl
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - depr_star_pos1_len1_impl
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - depr_star_pos1_len2_with_kwd_impl
    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:
    - depr_star_pos2_len1_impl
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - depr_star_pos2_len2_impl
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - depr_star_pos2_len2_with_kwd_impl
    - _Py_LATIN1_CHR
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - _Py_LATIN1_CHR
    - depr_star_noinline_impl
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - depr_star_multi_impl
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - depr_kwd_required_1_impl
    - _Py_LATIN1_CHR
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - depr_kwd_required_2_impl
    - _Py_LATIN1_CHR
    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:
    - depr_kwd_optional_1_impl
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - depr_kwd_optional_2_impl
    - PyTuple_GET_SIZE
    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:
    - depr_kwd_optional_3_impl
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    - depr_kwd_required_optional_impl
    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:
    - PySequence_Contains
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_ParseStackAndKeywords
    - depr_kwd_noinline_impl
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    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:
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - depr_kwd_multi_impl
    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:
    - depr_multi_impl
    - PyErr_WarnEx
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      depr_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_json.c.h:37,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_json.c.h:40,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_json.c.h:41,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_json.c.h:47,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_json.c.h:49,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_json.c.h:50,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_json.c.h:52,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/clinic/_json.c.h:60,1
    - Dst: py_scanstring_impl
      Src: /src/cpython/Modules/clinic/_json.c.h:65,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 69
    functionName: py_scanstring
    functionSourceFile: /src/cpython/Modules/clinic/_json.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - py_scanstring_impl
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_scanstring(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_json.c.h:89,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_json.c.h:90,1
    - Dst: py_encode_basestring_ascii_impl
      Src: /src/cpython/Modules/clinic/_json.c.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: py_encode_basestring_ascii
    functionSourceFile: /src/cpython/Modules/clinic/_json.c.h
    functionUses: 0
    functionsReached:
    - py_encode_basestring_ascii_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_encode_basestring_ascii(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_json.c.h:118,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_json.c.h:119,1
    - Dst: py_encode_basestring_impl
      Src: /src/cpython/Modules/clinic/_json.c.h:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: py_encode_basestring
    functionSourceFile: /src/cpython/Modules/clinic/_json.c.h
    functionUses: 0
    functionsReached:
    - py_encode_basestring_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_encode_basestring(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:31,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:35,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:41,1
    - Dst: lone_kwds_impl
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:43,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: lone_kwds
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_kwds.c.h
    functionUses: 0
    functionsReached:
    - lone_kwds_impl
    - _PyArg_NoPositional
    - Py_XDECREF
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lone_kwds(PyObject *module, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:72,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:72,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:75,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:76,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:78,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:84,1
    - Dst: kwds_with_pos_only_impl
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:86,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 93
    functionName: kwds_with_pos_only
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_kwds.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - kwds_with_pos_only_impl
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kwds_with_pos_only(PyObject *module, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:113,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:115,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:121,1
    - Dst: kwds_with_stararg_impl
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:123,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:127,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: kwds_with_stararg
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_kwds.c.h
    functionUses: 0
    functionsReached:
    - kwds_with_stararg_impl
    - Py_NewRef
    - Py_XDECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kwds_with_stararg(PyObject *module, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:156,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:156,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:159,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:160,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:161,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:166,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:172,1
    - Dst: kwds_with_pos_only_and_stararg_impl
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:174,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:178,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/clinic/_testclinic_kwds.c.h:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 183
    functionName: kwds_with_pos_only_and_stararg
    functionSourceFile: /src/cpython/Modules/clinic/_testclinic_kwds.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - kwds_with_pos_only_and_stararg_impl
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - PyTuple_GetSlice
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kwds_with_pos_only_and_stararg(PyObject *module, PyObject *args, PyObject *kwargs)'
  - 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_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    - syslog_openlog_impl
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - syslog_syslog_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    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_END_CRITICAL_SECTION
    - Py_BEGIN_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:
    - syslog_setlogmask_impl
    - PyLong_AsLong
    - PyLong_FromLong
    - PyErr_Occurred
    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:
    - PyLong_AsLong
    - PyLong_FromLong
    - PyErr_Occurred
    - syslog_LOG_MASK_impl
    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:
    - PyLong_AsLong
    - syslog_LOG_UPTO_impl
    - PyErr_Occurred
    - PyLong_FromLong
    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:
    - _PyArg_CheckPositional
    - _gdbm_gdbm_get_impl
    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:
    - _PyArg_CheckPositional
    - _gdbm_gdbm_setdefault_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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
    - _gdbm_gdbm_close_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _gdbm_gdbm_keys_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyTuple_GET_SIZE
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - _gdbm_gdbm_firstkey_impl
    - PyTuple_GET_SIZE
    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
    - _PyArg_ParseStackAndKeywords
    - _gdbm_gdbm_nextkey_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _gdbm_gdbm_reorganize_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyTuple_GET_SIZE
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - _gdbm_gdbm_sync_impl
    - PyTuple_GET_SIZE
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - _gdbm_gdbm_clear_impl
    - PyTuple_GET_SIZE
    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:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    - 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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - 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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - 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:
    - _sha2_sha256_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _sha2_sha224_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _sha2_sha512_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _sha2_sha384_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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:28,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:32,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:33,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:37,1
    - Dst: _suggestions__generate_suggestions_impl
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:38,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_suggestions.c.h:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: _suggestions__generate_suggestions
    functionSourceFile: /src/cpython/Modules/clinic/_suggestions.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _suggestions__generate_suggestions_impl
    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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _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:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _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:
    - _testmultiphase_StateAccessType_increment_count_clinic_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _testmultiphase_StateAccessType_get_count_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _bz2_BZ2Compressor_compress_impl
    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_CheckPositional
    - PyTuple_GET_ITEM
    - PyLong_AsInt
    - clinic_state
    - _bz2_BZ2Compressor_impl
    - PyErr_Occurred
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:153,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:155,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:155,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:172,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:176,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:181,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:189,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:192,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:194,1
    - Dst: _bz2_BZ2Decompressor_decompress_impl
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:200,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:205,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: 209
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 209
    functionName: _bz2_BZ2Decompressor_decompress
    functionSourceFile: /src/cpython/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _bz2_BZ2Decompressor_decompress_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - PyLong_AsSsize_t
    - _Py_ID
    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:226,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:229,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:233,1
    - Dst: _bz2_BZ2Decompressor_impl
      Src: /src/cpython/Modules/clinic/_bz2module.c.h:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 240
    functionName: _bz2_BZ2Decompressor
    functionSourceFile: /src/cpython/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoPositional
    - clinic_state
    - _PyArg_NoKeywords
    - _bz2_BZ2Decompressor_impl
    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_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - zoneinfo_ZoneInfo_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyTuple_GET_SIZE
    - zoneinfo_ZoneInfo_from_file_impl
    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:
    - PyVarObject_HEAD_INIT
    - zoneinfo_ZoneInfo_no_cache_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - zoneinfo_ZoneInfo_clear_cache_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_UnpackKeywords
    - zoneinfo_ZoneInfo_utcoffset_impl
    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:
    - _PyArg_UnpackKeywords
    - zoneinfo_ZoneInfo_dst_impl
    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:
    - PyLong_AsNativeBytes
    - _PyArg_UnpackKeywords
    - zoneinfo_ZoneInfo__unpickle_impl
    - PyErr_WarnEx
    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:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _overlapped_CreateIoCompletionPort_impl
    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:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - PyErr_Occurred
    - _overlapped_GetQueuedCompletionStatus_impl
    - PyLong_AsVoidPtr
    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:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - _overlapped_PostQueuedCompletionStatus_impl
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    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:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _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:
    - _overlapped_UnregisterWait_impl
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:
    - _overlapped_UnregisterWaitEx_impl
    - _PyArg_CheckPositional
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _overlapped_CreateEvent_impl
    - PyErr_Occurred
    - 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:
    - _overlapped_SetEvent_impl
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:
    - _overlapped_ResetEvent_impl
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - _overlapped_BindLocal_impl
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    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:
    - _PyLong_UnsignedLong_Converter
    - _overlapped_FormatMessage_impl
    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:
    - _overlapped_Overlapped_impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyLong_AsVoidPtr
    - _Py_ID
    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:548,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/overlapped.c.h:554,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:555,1
    - Dst: _overlapped_Overlapped_getresult_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 563
    functionName: _overlapped_Overlapped_getresult
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _overlapped_Overlapped_getresult_impl
    - PyErr_Occurred
    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:585,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:588,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:589,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:592,1
    - Dst: _overlapped_Overlapped_ReadFile_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:595,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 599
    functionName: _overlapped_Overlapped_ReadFile
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - _overlapped_Overlapped_ReadFile_impl
    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:621,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:624,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:625,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:628,1
    - Dst: _overlapped_Overlapped_ReadFileInto_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:631,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:636,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 640
    functionName: _overlapped_Overlapped_ReadFileInto
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _overlapped_Overlapped_ReadFileInto_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyLong_AsVoidPtr
    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:663,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:666,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:667,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:670,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:676,1
    - Dst: _overlapped_Overlapped_WSARecv_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:680,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 655
    functionDepth: 4
    functionLinenumber: 655
    functionLinenumberEnd: 684
    functionName: _overlapped_Overlapped_WSARecv
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _overlapped_Overlapped_WSARecv_impl
    - _PyLong_UnsignedLong_Converter
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    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:708,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:711,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:712,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:715,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:718,1
    - Dst: _overlapped_Overlapped_WSARecvInto_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:721,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:726,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 700
    functionDepth: 4
    functionLinenumber: 700
    functionLinenumberEnd: 730
    functionName: _overlapped_Overlapped_WSARecvInto
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - PyBuffer_Release
    - PyErr_Occurred
    - _overlapped_Overlapped_WSARecvInto_impl
    - PyObject_GetBuffer
    - PyLong_AsVoidPtr
    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:752,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:755,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:756,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:759,1
    - Dst: _overlapped_Overlapped_WriteFile_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:762,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:767,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 771
    functionName: _overlapped_Overlapped_WriteFile
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _overlapped_Overlapped_WriteFile_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyLong_AsVoidPtr
    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:794,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:797,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:798,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:801,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:804,1
    - Dst: _overlapped_Overlapped_WSASend_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:807,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:812,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 816
    functionName: _overlapped_Overlapped_WSASend
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - PyBuffer_Release
    - _overlapped_Overlapped_WSASend_impl
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyLong_AsVoidPtr
    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:839,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:842,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:843,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:846,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:847,1
    - Dst: _overlapped_Overlapped_AcceptEx_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:850,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 854
    functionName: _overlapped_Overlapped_AcceptEx
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_AcceptEx_impl
    - _PyArg_CheckPositional
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:879,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:882,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:883,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/overlapped.c.h:886,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:887,1
    - Dst: _overlapped_Overlapped_ConnectEx_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:891,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 872
    functionDepth: 4
    functionLinenumber: 872
    functionLinenumberEnd: 895
    functionName: _overlapped_Overlapped_ConnectEx
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _overlapped_Overlapped_ConnectEx_impl
    - _PyArg_BadArgument
    - PyErr_Occurred
    - PyTuple_Check
    - PyLong_AsVoidPtr
    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:916,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:919,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:920,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:923,1
    - Dst: _overlapped_Overlapped_DisconnectEx_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:926,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 930
    functionName: _overlapped_Overlapped_DisconnectEx
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - PyErr_Occurred
    - _overlapped_Overlapped_DisconnectEx_impl
    - PyLong_AsVoidPtr
    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:961,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:964,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:965,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:968,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:969,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:972,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:975,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:978,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:981,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:984,1
    - Dst: _overlapped_Overlapped_TransmitFile_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:987,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 991
    functionName: _overlapped_Overlapped_TransmitFile
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _overlapped_Overlapped_TransmitFile_impl
    - _PyLong_UnsignedLong_Converter
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    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:1012,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1013,1
    - Dst: _overlapped_Overlapped_ConnectNamedPipe_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1016,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1006
    functionDepth: 3
    functionLinenumber: 1006
    functionLinenumberEnd: 1020
    functionName: _overlapped_Overlapped_ConnectNamedPipe
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_ConnectNamedPipe_impl
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    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:1041,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1042,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1045,1
    - Dst: _overlapped_Overlapped_ConnectPipe_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1049,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1035
    functionDepth: 3
    functionLinenumber: 1035
    functionLinenumberEnd: 1056
    functionName: _overlapped_Overlapped_ConnectPipe
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _overlapped_Overlapped_ConnectPipe_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - 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:1078,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1081,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1082,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1085,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1086,1
    - Dst: _overlapped_WSAConnect_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1090,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1071
    functionDepth: 4
    functionLinenumber: 1071
    functionLinenumberEnd: 1094
    functionName: _overlapped_WSAConnect
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _overlapped_WSAConnect_impl
    - _PyArg_BadArgument
    - PyErr_Occurred
    - PyTuple_Check
    - PyLong_AsVoidPtr
    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:1119,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1123,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1126,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1129,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1132,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1133,1
    - Dst: _overlapped_Overlapped_WSASendTo_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1137,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1142,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1110
    functionDepth: 4
    functionLinenumber: 1110
    functionLinenumberEnd: 1146
    functionName: _overlapped_Overlapped_WSASendTo
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _overlapped_Overlapped_WSASendTo_impl
    - _PyLong_UnsignedLong_Converter
    - _PyArg_BadArgument
    - PyBuffer_Release
    - PyErr_Occurred
    - PyTuple_Check
    - PyObject_GetBuffer
    - PyLong_AsVoidPtr
    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:1170,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1174,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1177,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1183,1
    - Dst: _overlapped_Overlapped_WSARecvFrom_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1187,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1162
    functionDepth: 3
    functionLinenumber: 1162
    functionLinenumberEnd: 1191
    functionName: _overlapped_Overlapped_WSARecvFrom
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedLong_Converter
    - _overlapped_Overlapped_WSARecvFrom_impl
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    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:1216,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1219,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1220,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1223,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1226,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1232,1
    - Dst: _overlapped_Overlapped_WSARecvFromInto_impl
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1236,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/clinic/overlapped.c.h:1241,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1207
    functionDepth: 3
    functionLinenumber: 1207
    functionLinenumberEnd: 1245
    functionName: _overlapped_Overlapped_WSARecvFromInto
    functionSourceFile: /src/cpython/Modules/clinic/overlapped.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _overlapped_Overlapped_WSARecvFromInto_impl
    - _PyLong_UnsignedLong_Converter
    - PyBuffer_Release
    - PyErr_Occurred
    - PyObject_GetBuffer
    - PyLong_AsVoidPtr
    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
    - _dbm_dbm_close_impl
    - Py_END_CRITICAL_SECTION
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _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:
    - _dbm_dbm_get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_ParseStackAndKeywords
    - Py_END_CRITICAL_SECTION
    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:147,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:151,1
    - Dst: _dbm_dbm_setdefault_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:152,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.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: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 157
    functionName: _dbm_dbm_setdefault
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_ParseStackAndKeywords
    - _dbm_dbm_setdefault_impl
    - Py_END_CRITICAL_SECTION
    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:176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:177,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:180,1
    - Dst: _dbm_dbm_clear_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:181,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:182,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: 186
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: _dbm_dbm_clear
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - _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:217,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:224,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:225,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:229,1
    - Dst: strlen
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:233,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:234,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:240,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:241,1
    - Dst: dbmopen_impl
      Src: /src/cpython/Modules/clinic/_dbmmodule.c.h:245,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 249
    functionName: dbmopen
    functionSourceFile: /src/cpython/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyErr_Occurred
    - 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:129,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 89
    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:141,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:142,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mod != NULL)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: get_module_state_by_def
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 35
    functionsReached:
    - get_module_state
    - PyType_GetModuleByDef
    - assert
    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:150,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:150,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:151,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:151,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:152,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:152,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:154,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:155,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (base != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (state != NULL)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: find_state_left_or_right
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyType_GetBaseByToken
    - _PyType_GetModuleState
    - Py_TYPE
    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: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:168,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:168,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:169,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:169,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:172,1
    - Dst: _PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:173,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - left
    - right
    - modulus
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (base != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (state != NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 177
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 177
    functionName: find_state_ternary
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyType_GetBaseByToken
    - _PyType_GetModuleState
    - Py_TYPE
    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: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    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: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    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: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    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: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    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: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    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: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    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: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    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: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    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: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    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: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    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: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    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: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    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: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    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: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    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:254,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_decimal/_decimal.c:254,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:254,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:256,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: 253
        line_start: 253
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (state != NULL)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: get_module_state_from_ctx
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyType_GetBaseByToken
    - Py_TYPE
    - 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:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: 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:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    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:321,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:323,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/_decimal.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 329
    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:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 378
    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:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 385
    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:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 392
    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:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 399
    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: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    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:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 408
    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: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    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: 416
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 416
    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:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - decimal_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 430
    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:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - state
    - ex
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 445
    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:453,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_decimal/_decimal.c:460,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_decimal/_decimal.c:467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - decimal_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 478
    functionName: flags_as_list
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_New
    - PyList_Append
    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:486,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_decimal/_decimal.c:493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - decimal_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 501
    functionName: signals_as_list
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_New
    - PyList_Append
    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:510,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:510,1
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_decimal/_decimal.c:512,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Modules/_decimal/_decimal.c:515,1
    - Dst: exception_as_flag
      Src: /src/cpython/Modules/_decimal/_decimal.c:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - state
    - list
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(list))
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 524
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 524
    functionName: list_as_flags
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - exception_as_flag
    - PyList_Check
    - assert
    - PyList_Size
    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:532,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_decimal/_decimal.c:539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - flags
    argTypes:
    - decimal_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 546
    functionName: flags_as_dict
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flags_as_dict(decimal_state *state, uint32_t flags)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:556,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:557,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_decimal/_decimal.c:562,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:563,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_decimal/_decimal.c:569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:571,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:574,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_decimal/_decimal.c:579,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - state
    - val
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 589
    functionName: dict_as_flags
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyDict_Size
    - PyErr_SetString
    - PyObject_IsTrue
    - PyErr_Occurred
    - PyDict_GetItemWithError
    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:597,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:598,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 607
    functionName: long_as_flags
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_AsLong
    - PyErr_Occurred
    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:613,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:614,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:621,1
    - Dst: flags_as_exception
      Src: /src/cpython/Modules/_decimal/_decimal.c:625,1
    - Dst: flags_as_list
      Src: /src/cpython/Modules/_decimal/_decimal.c:629,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - context
    - status
    argTypes:
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 639
    functionName: dec_addstatus
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetObject
    - flags_as_list
    - get_module_state_from_ctx
    - CTX
    - Py_DECREF
    - flags_as_exception
    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:645,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Modules/_decimal/_decimal.c:652,1
    - Dst: type_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - state
    - v
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: getround
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Compare
    - PyUnicode_Check
    - 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:678,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: 680
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 680
    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:685,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 689
    functionName: signaldict_len
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_int
    - SdFlagAddr
    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:694,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:695,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:697,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:697,1
    - Dst: tp_iter
      Src: /src/cpython/Modules/_decimal/_decimal.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 699
    functionName: signaldict_iter
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - tp_iter
    - SdFlagAddr
    - get_module_state_by_def
    - value_error_ptr
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_iter(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:705,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:706,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:708,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:708,1
    - Dst: exception_as_flag
      Src: /src/cpython/Modules/_decimal/_decimal.c:710,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:715,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:715,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 716
    functionName: signaldict_getitem
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - exception_as_flag
    - SdFlags
    - SdFlagAddr
    - get_module_state_by_def
    - incr_true
    - incr_false
    - value_error_ptr
    - 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:724,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:725,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:729,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:732,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:732,1
    - Dst: exception_as_flag
      Src: /src/cpython/Modules/_decimal/_decimal.c:733,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_decimal/_decimal.c:738,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:744,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:747,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 751
    functionName: signaldict_setitem
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - exception_as_flag
    - SdFlags
    - value_error_int
    - PyObject_IsTrue
    - SdFlagAddr
    - get_module_state_by_def
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int signaldict_setitem(PyObject *self, PyObject *key, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:756,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_decimal/_decimal.c:757,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 760
    functionName: signaldict_dealloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void signaldict_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:770,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:771,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:774,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:776,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:776,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:779,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_decimal/_decimal.c:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (SIGNAL_MAP_LEN == 9)
      pos:
        line_end: 773
        line_start: 773
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 788
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 788
    functionName: signaldict_repr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlags
    - SdFlagAddr
    - get_module_state_by_def
    - PyUnicode_FromFormat
    - assert
    - value_error_ptr
    - Py_TYPE
    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:795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:795,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:796,1
    - Dst: PyDecSignalDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:796,1
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:798,1
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:798,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:799,1
    - Dst: PyDecSignalDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:803,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:804,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:804,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:806,1
    - Dst: dict_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:807,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:811,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:818,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:823,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: 795
        line_start: 795
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 824
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 824
    functionName: signaldict_richcompare
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - SdFlags
    - dict_as_flags
    - Py_NewRef
    - SdFlagAddr
    - get_module_state_by_def
    - PyErr_Clear
    - assert
    - value_error_ptr
    - PyDecSignalDict_Check
    - Py_TYPE
    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:829,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:830,1
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:832,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:832,1
    - Dst: flags_as_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:833,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 834
    functionName: signaldict_copy
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlags
    - SdFlagAddr
    - get_module_state_by_def
    - flags_as_dict
    - value_error_ptr
    - 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: 880
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 880
    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: 887
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 887
    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:901,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:901,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:902,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 905
    functionName: context_getround
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state_from_ctx
    - CTX
    - mpd_getround
    - Py_NewRef
    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:910,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 911
    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:917,1
    - Dst: mpd_getcr
      Src: /src/cpython/Modules/_decimal/_decimal.c:917,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: context_getallcr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_getcr
    - PyLong_FromLong
    - CTX
    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:934,1
    - Dst: mpd_etiny
      Src: /src/cpython/Modules/_decimal/_decimal.c:934,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 935
    functionName: _decimal_Context_Etiny_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - mpd_etiny
    - CTX
    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:950,1
    - Dst: mpd_etop
      Src: /src/cpython/Modules/_decimal/_decimal.c:950,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 951
    functionName: _decimal_Context_Etop_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_etop
    - PyLong_FromSsize_t
    - CTX
    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:959,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:960,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:964,1
    - Dst: mpd_qsetprec
      Src: /src/cpython/Modules/_decimal/_decimal.c:965,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 971
    functionName: context_setprec
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsetprec
    - value_error_int
    - CTX
    - PyErr_Occurred
    - 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:979,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:980,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:984,1
    - Dst: mpd_qsetemin
      Src: /src/cpython/Modules/_decimal/_decimal.c:985,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 991
    functionName: context_setemin
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_int
    - mpd_qsetemin
    - CTX
    - PyErr_Occurred
    - 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:999,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1000,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1004,1
    - Dst: mpd_qsetemax
      Src: /src/cpython/Modules/_decimal/_decimal.c:1005,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:1006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1011
    functionName: context_setemax
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsetemax
    - value_error_int
    - CTX
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int context_setemax(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1026,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - x
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1035
    functionName: _decimal_Context__unsafe_setprec_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_ptr
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context__unsafe_setprec_impl(PyObject *self, Py_ssize_t x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1049,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - x
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1045
    functionDepth: 2
    functionLinenumber: 1045
    functionLinenumberEnd: 1058
    functionName: _decimal_Context__unsafe_setemin_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_ptr
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context__unsafe_setemin_impl(PyObject *self, Py_ssize_t x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1072,1
    - Dst: value_error_ptr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - x
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1068
    functionDepth: 2
    functionLinenumber: 1068
    functionLinenumberEnd: 1081
    functionName: _decimal_Context__unsafe_setemax_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_ptr
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context__unsafe_setemax_impl(PyObject *self, Py_ssize_t x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1090,1
    - Dst: getround
      Src: /src/cpython/Modules/_decimal/_decimal.c:1091,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1096,1
    - Dst: mpd_qsetround
      Src: /src/cpython/Modules/_decimal/_decimal.c:1097,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1102
    functionName: context_setround
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - getround
    - mpd_qsetround
    - get_module_state_from_ctx
    - CTX
    - INTERNAL_ERROR_INT
    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:1109,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1110,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:1115,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1121
    functionName: context_setcapitals
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CtxCaps
    - value_error_int
    - PyLong_AsSsize_t
    - PyErr_Occurred
    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:1130,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1135,1
    - Dst: mpd_qsettraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1136,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1141
    functionName: context_settraps
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsettraps
    - INTERNAL_ERROR_INT
    - long_as_flags
    - CTX
    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:1149,1
    - Dst: list_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1150,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1155,1
    - Dst: mpd_qsettraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1156,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1144
    functionDepth: 3
    functionLinenumber: 1144
    functionLinenumberEnd: 1161
    functionName: context_settraps_list
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - list_as_flags
    - get_module_state_from_ctx
    - CTX
    - INTERNAL_ERROR_INT
    - 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:1169,1
    - Dst: PyDecSignalDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1170,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1171,1
    - Dst: dict_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1174,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1180,1
    - Dst: mpd_qsettraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1181,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1186
    functionName: context_settraps_dict
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlags
    - dict_as_flags
    - CTX
    - get_module_state_from_ctx
    - INTERNAL_ERROR_INT
    - PyDecSignalDict_Check
    - 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:1195,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1200,1
    - Dst: mpd_qsetstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:1201,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1206
    functionName: context_setstatus
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - INTERNAL_ERROR_INT
    - mpd_qsetstatus
    - long_as_flags
    - CTX
    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:1214,1
    - Dst: list_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1216,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1221,1
    - Dst: mpd_qsetstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:1222,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1209
    functionDepth: 3
    functionLinenumber: 1209
    functionLinenumberEnd: 1227
    functionName: context_setstatus_list
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsetstatus
    - list_as_flags
    - get_module_state_from_ctx
    - CTX
    - INTERNAL_ERROR_INT
    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:1235,1
    - Dst: PyDecSignalDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1236,1
    - Dst: SdFlags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1237,1
    - Dst: dict_as_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:1240,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1246,1
    - Dst: mpd_qsetstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:1247,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1252
    functionName: context_setstatus_dict
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlags
    - mpd_qsetstatus
    - dict_as_flags
    - CTX
    - get_module_state_from_ctx
    - INTERNAL_ERROR_INT
    - PyDecSignalDict_Check
    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:1260,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1261,1
    - Dst: BOUNDS_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1264,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1266,1
    - Dst: mpd_qsetclamp
      Src: /src/cpython/Modules/_decimal/_decimal.c:1267,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:1268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1272
    functionName: context_setclamp
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsetclamp
    - BOUNDS_CHECK
    - value_error_int
    - CTX
    - PyErr_Occurred
    - PyLong_AsSsize_t
    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:1281,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1282,1
    - Dst: BOUNDS_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1285,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1287,1
    - Dst: mpd_qsetcr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1288,1
    - Dst: value_error_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:1289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1293
    functionName: context_setallcr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - BOUNDS_CHECK
    - value_error_int
    - mpd_qsetcr
    - CTX
    - PyErr_Occurred
    - 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:1301,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: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1306,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:1308,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1313
    functionName: context_getattr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    - Py_NewRef
    - PyUnicode_Check
    - 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:1319,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1324,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1325,1
    - Dst: context_settraps_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1326,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1328,1
    - Dst: context_setstatus_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1329,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1334
    functionName: context_setattr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericSetAttr
    - PyErr_SetString
    - context_setstatus_dict
    - PyUnicode_Check
    - PyUnicode_CompareWithASCIIString
    - context_settraps_dict
    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:1342,1
    - Dst: context_setround
      Src: /src/cpython/Modules/_decimal/_decimal.c:1345,1
    - Dst: context_setemin
      Src: /src/cpython/Modules/_decimal/_decimal.c:1348,1
    - Dst: context_setemax
      Src: /src/cpython/Modules/_decimal/_decimal.c:1351,1
    - Dst: context_setcapitals
      Src: /src/cpython/Modules/_decimal/_decimal.c:1354,1
    - Dst: context_setclamp
      Src: /src/cpython/Modules/_decimal/_decimal.c:1357,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1362,1
    - Dst: context_settraps_list
      Src: /src/cpython/Modules/_decimal/_decimal.c:1363,1
    - Dst: context_settraps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1367,1
    - Dst: context_settraps_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1371,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: 1376
      start: 1336
    functionDepth: 4
    functionLinenumber: 1336
    functionLinenumberEnd: 1376
    functionName: context_setattrs
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_setclamp
    - context_setemin
    - context_setround
    - context_settraps_list
    - context_setprec
    - PyList_Check
    - context_settraps
    - context_settraps_dict
    - context_setcapitals
    - context_setemax
    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:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1366
    functionDepth: 3
    functionLinenumber: 1366
    functionLinenumberEnd: 1368
    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:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1382
    functionDepth: 3
    functionLinenumber: 1382
    functionLinenumberEnd: 1384
    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:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1409
    functionName: _decimal_Context_clear_traps_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_clear_traps_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1423
    functionName: _decimal_Context_clear_flags_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_clear_flags_impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_by_def
      Src: /src/cpython/Modules/_decimal/_decimal.c:1441,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:1443,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:1446,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:1453,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1456,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:1459,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1461,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1465,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1468,1
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1474,1
    - Dst: SdFlagAddr
      Src: /src/cpython/Modules/_decimal/_decimal.c:1475,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1477,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_decimal/_decimal.c:1482,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:1484,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/_decimal/_decimal.c:1484,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: 1483
        line_start: 1483
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 1486
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1486
    functionName: context_new
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_IsTracked
    - SdFlagAddr
    - get_module_state_by_def
    - PyObject_CallObject
    - CtxCaps
    - CTX
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyObject_GC_Track
    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:1491,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1492,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:1492,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1493,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1496
    functionName: context_traverse
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _PyDecContextObject_CAST
    - Py_VISIT
    - Py_TYPE
    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:1501,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1502,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1505
    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:1510,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_decimal/_decimal.c:1511,1
    - Dst: context_clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:1512,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:1513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1515
    functionName: context_dealloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - context_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void context_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_setattrs
      Src: /src/cpython/Modules/_decimal/_decimal.c:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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: 1553
      start: 1542
    functionDepth: 5
    functionLinenumber: 1542
    functionLinenumberEnd: 1553
    functionName: context_init_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_setattrs
    linkageType: ''
    returnType: int
    signature: "int context_init_impl(PyObject *self, PyObject *prec, PyObject *rounding,\n
      \                 PyObject *emin, PyObject *emax, PyObject *capitals,\n                  PyObject
      *clamp, PyObject *status, PyObject *traps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:1564,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:1565,1
    - Dst: PyDecContext_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:1565,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1567,1
    - Dst: mpd_lsnprint_signals
      Src: /src/cpython/Modules/_decimal/_decimal.c:1570,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1572,1
    - Dst: mpd_lsnprint_signals
      Src: /src/cpython/Modules/_decimal/_decimal.c:1575,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1577,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_decimal/_decimal.c:1580,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDecContext_Check(state, self))
      pos:
        line_end: 1564
        line_start: 1564
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 1585
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1585
    functionName: context_repr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - mpd_lsnprint_signals
    - CtxCaps
    - get_module_state_from_ctx
    - CTX
    - assert
    - PyDecContext_Check
    - INTERNAL_ERROR_PTR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1596,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1598
    functionName: init_basic_context
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CtxCaps
    - CTX
    linkageType: ''
    returnType: void
    signature: void init_basic_context(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1608,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1600
    functionDepth: 1
    functionLinenumber: 1600
    functionLinenumberEnd: 1610
    functionName: init_extended_context
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CtxCaps
    - CTX
    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:1636,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:1640,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:1641,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1645,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:1650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - module
    - bits
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1655
    functionName: _decimal_IEEEContext_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - mpd_ieee_context
    - PyObject_CallObject
    - CTX
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_IEEEContext_impl(PyObject *module, Py_ssize_t bits)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:1661,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1667,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1667,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1668,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1669,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - v
    argTypes:
    - decimal_state*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1672
    functionName: context_copy
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - CtxCaps
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_copy(decimal_state *state, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:1686,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1682
    functionDepth: 2
    functionLinenumber: 1682
    functionLinenumberEnd: 1689
    functionName: _decimal_Context_copy_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_copy
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_copy_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:1700,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1703
    functionName: _decimal_Context___copy___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_copy
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context___copy___impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:1718,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1720,1
    - Dst: signals_as_list
      Src: /src/cpython/Modules/_decimal/_decimal.c:1722,1
    - Dst: signals_as_list
      Src: /src/cpython/Modules/_decimal/_decimal.c:1726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1728,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_decimal/_decimal.c:1732,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:1734,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:1736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1739,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1710
    functionDepth: 2
    functionLinenumber: 1710
    functionLinenumberEnd: 1742
    functionName: _decimal_Context___reduce___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - signals_as_list
    - Py_BuildValue
    - CtxCaps
    - CTX
    - Py_DECREF
    - PyType_GetModuleState
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context___reduce___impl(PyObject *self, PyTypeObject *cls)'
  - 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: 1768
      start: 1762
    functionDepth: 0
    functionLinenumber: 1762
    functionLinenumberEnd: 1768
    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: 1778
      start: 1769
    functionDepth: 0
    functionLinenumber: 1769
    functionLinenumberEnd: 1778
    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:1796,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Modules/_decimal/_decimal.c:1799,1
    - Dst: _PyThreadState_GetDict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1802,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1804,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_decimal/_decimal.c:1810,1
    - Dst: CONTEXT_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1813,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:1816,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1821,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1825,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_decimal/_decimal.c:1827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1831,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1836,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:1837,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - modstate
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1793
    functionDepth: 2
    functionLinenumber: 1793
    functionLinenumberEnd: 1842
    functionName: current_context_from_dict
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - _Py_EnsureTstateNotNULL
    - PyErr_SetString
    - _PyThreadState_GetDict
    - CONTEXT_CHECK
    - context_copy
    - PyDict_SetItem
    - _PyThreadState_GET
    - CTX
    - PyErr_Occurred
    - Py_DECREF
    - Py_NewRef
    - PyDict_GetItemWithError
    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:1848,1
    - Dst: current_context_from_dict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - modstate
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1845
    functionDepth: 3
    functionLinenumber: 1845
    functionLinenumberEnd: 1854
    functionName: current_context
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - current_context_from_dict
    - _PyThreadState_GET
    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: 1864
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1864
    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:1870,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:1872,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:1873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1874
    functionName: PyDec_GetCurrentContext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - CURRENT_CONTEXT
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_GetCurrentContext(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:1882,1
    - Dst: CONTEXT_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1883,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Modules/_decimal/_decimal.c:1885,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:1887,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1897,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1901,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1904,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:1907,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_decimal/_decimal.c:1908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1909,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1913,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1877
    functionDepth: 2
    functionLinenumber: 1877
    functionLinenumberEnd: 1915
    functionName: PyDec_SetCurrentContext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_INCREF
    - CONTEXT_CHECK
    - PyErr_SetString
    - context_copy
    - PyDict_SetItem
    - Py_CLEAR
    - CTX
    - Py_DECREF
    - PyThreadState_GetDict
    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:1920,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1924,1
    - Dst: PyContextVar_Set
      Src: /src/cpython/Modules/_decimal/_decimal.c:1926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1917
    functionDepth: 2
    functionLinenumber: 1917
    functionLinenumberEnd: 1934
    functionName: init_current_context
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CTX
    - context_copy
    - PyContextVar_Set
    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:1940,1
    - Dst: init_current_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:1948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1936
    functionDepth: 3
    functionLinenumber: 1936
    functionLinenumberEnd: 1949
    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: 1960
      start: 1952
    functionDepth: 0
    functionLinenumber: 1952
    functionLinenumberEnd: 1960
    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:1965,1
    - Dst: current_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:1966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1962
    functionDepth: 4
    functionLinenumber: 1962
    functionLinenumberEnd: 1967
    functionName: PyDec_GetCurrentContext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - current_context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_GetCurrentContext(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:1973,1
    - Dst: CONTEXT_CHECK
      Src: /src/cpython/Modules/_decimal/_decimal.c:1974,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:1981,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:1985,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1988,1
    - Dst: PyContextVar_Set
      Src: /src/cpython/Modules/_decimal/_decimal.c:1991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:1996,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1970
    functionDepth: 2
    functionLinenumber: 1970
    functionLinenumberEnd: 1999
    functionName: PyDec_SetCurrentContext
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - Py_INCREF
    - CONTEXT_CHECK
    - context_copy
    - CTX
    - Py_DECREF
    - PyContextVar_Set
    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:2012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 2008
    functionDepth: 2
    functionLinenumber: 2008
    functionLinenumberEnd: 2013
    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:2028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2024
    functionDepth: 3
    functionLinenumber: 2024
    functionLinenumberEnd: 2029
    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:2067,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2068,1
    - Dst: PyDecContext_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2072,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2073,1
    - Dst: context_copy
      Src: /src/cpython/Modules/_decimal/_decimal.c:2078,1
    - Dst: context_setattrs
      Src: /src/cpython/Modules/_decimal/_decimal.c:2083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2089,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2097,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:2102,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_decimal/_decimal.c:2103,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: 2106
      start: 2058
    functionDepth: 5
    functionLinenumber: 2058
    functionLinenumberEnd: 2106
    functionName: _decimal_localcontext_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyObject_GC_New
    - PyErr_SetString
    - context_setattrs
    - context_copy
    - CURRENT_CONTEXT
    - Py_DECREF
    - PyDecContext_Check
    - Py_NewRef
    - PyObject_GC_Track
    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:2111,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2112,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2112,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2113,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:2114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2116
    functionName: ctxmanager_traverse
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyDecContextManagerObject_CAST
    - Py_TYPE
    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:2121,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:2122,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:2123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2125
    functionName: ctxmanager_clear
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyDecContextManagerObject_CAST
    linkageType: ''
    returnType: int
    signature: int ctxmanager_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2130,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_decimal/_decimal.c:2131,1
    - Dst: ctxmanager_clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:2132,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2127
    functionDepth: 2
    functionLinenumber: 2127
    functionLinenumberEnd: 2135
    functionName: ctxmanager_dealloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - ctxmanager_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:2141,1
    - Dst: PyDec_SetCurrentContext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2142,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:2142,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2146,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:2148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2137
    functionDepth: 3
    functionLinenumber: 2137
    functionLinenumberEnd: 2149
    functionName: ctxmanager_set_local
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_SetCurrentContext
    - _PyDecContextManagerObject_CAST
    - Py_DECREF
    - PyType_GetModule
    - Py_NewRef
    - 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:2155,1
    - Dst: PyDec_SetCurrentContext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2156,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:2156,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2151
    functionDepth: 3
    functionLinenumber: 2151
    functionLinenumberEnd: 2163
    functionName: ctxmanager_restore_global
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_SetCurrentContext
    - _PyDecContextManagerObject_CAST
    - Py_DECREF
    - 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:2200,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:2203,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2211,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2212,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2213,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2214,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2215,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2216,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/_decimal/_decimal.c:2219,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2221,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/_decimal/_decimal.c:2221,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: 2220
        line_start: 2220
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2223
      start: 2194
    functionDepth: 1
    functionLinenumber: 2194
    functionLinenumberEnd: 2223
    functionName: PyDecType_New
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - MPD
    - PyObject_GC_IsTracked
    - assert
    - PyTypeObject*::tp_alloc
    - PyObject_GC_Track
    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: 2225
      start: 2224
    functionDepth: 0
    functionLinenumber: 2224
    functionLinenumberEnd: 2225
    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_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2229,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_decimal/_decimal.c:2230,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2231,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2231,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2234
    functionName: dec_dealloc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_del
    - MPD
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:2244,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - kind
    - data
    - pos
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2242
    functionDepth: 1
    functionLinenumber: 2242
    functionLinenumberEnd: 2246
    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:2266,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_decimal/_decimal.c:2267,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/_decimal/_decimal.c:2268,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:2270,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:2272,1
    - Dst: is_space
      Src: /src/cpython/Modules/_decimal/_decimal.c:2278,1
    - Dst: is_space
      Src: /src/cpython/Modules/_decimal/_decimal.c:2281,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Modules/_decimal/_decimal.c:2287,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Modules/_decimal/_decimal.c:2295,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/cpython/Modules/_decimal/_decimal.c:2299,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - u
    - strip_ws
    - ignore_underscores
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2256
    functionDepth: 2
    functionLinenumber: 2256
    functionLinenumberEnd: 2309
    functionName: numeric_as_ascii
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - PyUnicode_GET_LENGTH
    - PyMem_Malloc
    - is_space
    - Py_UNICODE_TODECIMAL
    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:2320,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2321,1
    - Dst: mpd_qset_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:2326,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2326,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:2326,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - s
    - context
    argTypes:
    - PyTypeObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2313
    functionDepth: 3
    functionLinenumber: 2313
    functionLinenumberEnd: 2332
    functionName: PyDecType_FromCString
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyDecType_New
    - mpd_qset_string
    - dec_addstatus
    - get_module_state_from_ctx
    - CTX
    - Py_DECREF
    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:2345,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2346,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2351,1
    - Dst: mpd_qset_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:2353,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2353,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/_decimal.c:2356,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2356,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - s
    - context
    argTypes:
    - PyTypeObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2337
    functionDepth: 3
    functionLinenumber: 2337
    functionLinenumberEnd: 2365
    functionName: PyDecType_FromCStringExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - MPD
    - PyDecType_New
    - mpd_qset_string
    - mpd_seterror
    - dec_addstatus
    - get_module_state_from_ctx
    - Py_DECREF
    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:2375,1
    - Dst: PyDecType_FromCString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2380,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - u
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2368
    functionDepth: 4
    functionLinenumber: 2368
    functionLinenumberEnd: 2383
    functionName: PyDecType_FromUnicode
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - numeric_as_ascii
    - PyDecType_FromCString
    - PyMem_Free
    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:2395,1
    - Dst: PyDecType_FromCStringExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2400,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - u
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2388
    functionDepth: 4
    functionLinenumber: 2388
    functionLinenumberEnd: 2403
    functionName: PyDecType_FromUnicodeExactWS
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromCStringExact
    - numeric_as_ascii
    - PyMem_Free
    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:2411,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2412,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2417,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2418,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2419,1
    - Dst: mpd_set_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:2421,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2421,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2422,1
    - Dst: mpd_setdigits
      Src: /src/cpython/Modules/_decimal/_decimal.c:2423,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2423,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: 2424
      start: 2407
    functionDepth: 1
    functionLinenumber: 2407
    functionLinenumberEnd: 2424
    functionName: _dec_settriple
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_set_flags
    - MPD
    - 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:2433,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2434,1
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:2439,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2439,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:2439,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - mpd_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2427
    functionDepth: 3
    functionLinenumber: 2427
    functionLinenumberEnd: 2445
    functionName: PyDecType_FromSsize
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyDecType_New
    - dec_addstatus
    - get_module_state_from_ctx
    - CTX
    - Py_DECREF
    - mpd_qset_ssize
    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:2455,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2456,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2461,1
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:2463,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2463,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - mpd_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2448
    functionDepth: 3
    functionLinenumber: 2448
    functionLinenumberEnd: 2469
    functionName: PyDecType_FromSsizeExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - MPD
    - PyDecType_New
    - dec_addstatus
    - get_module_state_from_ctx
    - Py_DECREF
    - mpd_qset_ssize
    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:2477,1
    - Dst: PyLong_Export
      Src: /src/cpython/Modules/_decimal/_decimal.c:2485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2486,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_decimal/_decimal.c:2490,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2492,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2493,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2494,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2495,1
    - Dst: mpd_qimport_u32
      Src: /src/cpython/Modules/_decimal/_decimal.c:2502,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2502,1
    - Dst: mpd_qimport_u16
      Src: /src/cpython/Modules/_decimal/_decimal.c:2506,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2506,1
    - Dst: PyLong_FreeExport
      Src: /src/cpython/Modules/_decimal/_decimal.c:2509,1
    - Dst: mpd_qset_i64
      Src: /src/cpython/Modules/_decimal/_decimal.c:2512,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2512,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: 2491
        line_start: 2491
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (layout->digits_order == -1)
      pos:
        line_end: 2492
        line_start: 2492
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: '(layout->digit_endianness == (PY_LITTLE_ENDIAN ? -1 : 1))'
      pos:
        line_end: 2493
        line_start: 2493
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (layout->digit_size == 2 || layout->digit_size == 4)
      pos:
        line_end: 2494
        line_start: 2494
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2515
      start: 2473
    functionDepth: 2
    functionLinenumber: 2473
    functionLinenumberEnd: 2515
    functionName: dec_from_long
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyDecType_New
    - mpd_qimport_u32
    - PyLong_GetNativeLayout
    - PyLong_FreeExport
    - mpd_qset_i64
    - mpd_qimport_u16
    - assert
    - Py_DECREF
    - PyLong_Export
    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:2525,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2526,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2530,1
    - Dst: dec_from_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:2531,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:2531,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2519
    functionDepth: 3
    functionLinenumber: 2519
    functionLinenumberEnd: 2542
    functionName: PyDecType_FromLong
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - dec_addstatus
    - PyLong_Check
    - dec_from_long
    - get_module_state_from_ctx
    - CTX
    - Py_DECREF
    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:2554,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2555,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2559,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:2560,1
    - Dst: dec_from_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:2561,1
    - Dst: mpd_seterror
      Src: /src/cpython/Modules/_decimal/_decimal.c:2568,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2568,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2546
    functionDepth: 3
    functionLinenumber: 2546
    functionLinenumberEnd: 2577
    functionName: PyDecType_FromLongExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - MPD
    - PyErr_SetString
    - mpd_seterror
    - dec_addstatus
    - PyLong_Check
    - dec_from_long
    - get_module_state_from_ctx
    - Py_DECREF
    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:2593,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:2596,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Modules/_decimal/_decimal.c:2596,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2598,1
    - Dst: PyDecType_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2599,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2602,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_decimal/_decimal.c:2607,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2608,1
    - Dst: copysign
      Src: /src/cpython/Modules/_decimal/_decimal.c:2611,1
    - Dst: isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:2613,1
    - Dst: isinf
      Src: /src/cpython/Modules/_decimal/_decimal.c:2613,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2614,1
    - Dst: isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:2618,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:2621,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2621,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:2624,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2624,1
    - Dst: decimal_state*::_py_float_abs
      Src: /src/cpython/Modules/_decimal/_decimal.c:2630,1
    - Dst: decimal_state*::_py_float_as_integer_ratio
      Src: /src/cpython/Modules/_decimal/_decimal.c:2636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2637,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2641,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2642,1
    - Dst: decimal_state*::_py_long_bit_length
      Src: /src/cpython/Modules/_decimal/_decimal.c:2644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2646,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:2649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2652,1
    - Dst: PyDecType_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2658,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:2663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2665,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:2666,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:2669,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2672,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:2673,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:2677,1
    - Dst: mpd_qset_uint
      Src: /src/cpython/Modules/_decimal/_decimal.c:2678,1
    - Dst: mpd_qset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:2679,1
    - Dst: mpd_qpow
      Src: /src/cpython/Modules/_decimal/_decimal.c:2680,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2681,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2682,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2684,1
    - Dst: mpd_qmul
      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: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2690,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:2691,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2693,1
    - Dst: mpd_set_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:2697,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2697,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2698,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: 2595
        line_start: 2595
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2701
      start: 2581
    functionDepth: 4
    functionLinenumber: 2581
    functionLinenumberEnd: 2701
    functionName: PyDecType_FromFloatExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_setspecial
    - PyTuple_GET_ITEM
    - decimal_state*::_py_float_as_integer_ratio
    - copysign
    - isinf
    - PyErr_Occurred
    - assert
    - PyType_IsSubtype
    - MPD
    - PyErr_NoMemory
    - PyDecType_New
    - decimal_state*::_py_float_abs
    - PyDecType_FromLongExact
    - PyLong_Check
    - get_module_state_from_ctx
    - isnan
    - decimal_state*::_py_long_bit_length
    - PyLong_AsSsize_t
    - mpd_maxcontext
    - mpd_del
    - mpd_qset_uint
    - PyFloat_AsDouble
    - PyErr_SetString
    - PyFloat_Check
    - dec_addstatus
    - mpd_set_sign
    - Py_DECREF
    - mpd_qpow
    - mpd_qset_ssize
    - mpd_qmul
    - mpd_qnew
    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:2710,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/_decimal.c:2715,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2715,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:2715,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2703
    functionDepth: 5
    functionLinenumber: 2703
    functionLinenumberEnd: 2722
    functionName: PyDecType_FromFloat
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyDecType_FromFloatExact
    - mpd_qfinalize
    - dec_addstatus
    - CTX
    - Py_DECREF
    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:2731,1
    - Dst: PyDec_CheckExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2732,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:2733,1
    - Dst: PyDecType_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:2736,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:2741,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2741,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:2741,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:2742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2743,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2725
    functionDepth: 3
    functionLinenumber: 2725
    functionLinenumberEnd: 2748
    functionName: PyDecType_FromDecimalExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyDecType_New
    - PyDec_CheckExact
    - dec_addstatus
    - get_module_state_from_ctx
    - Py_DECREF
    - mpd_qcopy
    - Py_NewRef
    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:2753,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:2754,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2756,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:2757,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - v
    - ex
    - mesg
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2750
    functionDepth: 1
    functionLinenumber: 2750
    functionLinenumberEnd: 2762
    functionName: sequence_as_tuple
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyList_Check
    - PyList_AsTuple
    - PyTuple_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:2778,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2778,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_decimal/_decimal.c:2780,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2781,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2787,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2788,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2789,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:2793,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2794,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2798,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2806,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2807,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2809,1
    - Dst: strcat
      Src: /src/cpython/Modules/_decimal/_decimal.c:2810,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2813,1
    - Dst: strcat
      Src: /src/cpython/Modules/_decimal/_decimal.c:2814,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2816,1
    - Dst: strcat
      Src: /src/cpython/Modules/_decimal/_decimal.c:2817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2820,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2828,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2829,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:2833,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2834,1
    - Dst: sequence_as_tuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:2840,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2840,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Modules/_decimal/_decimal.c:2846,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:2849,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:2851,1
    - Dst: snprintf
      Src: /src/cpython/Modules/_decimal/_decimal.c:2855,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2857,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:2868,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:2869,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2870,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:2874,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:2875,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2879,1
    - Dst: snprintf
      Src: /src/cpython/Modules/_decimal/_decimal.c:2895,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2897,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2903,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2908,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2909,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 116
    argCount: 1
    argNames:
    - dectuple
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(dectuple))
      pos:
        line_end: 2777
        line_start: 2777
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2911
      start: 2765
    functionDepth: 2
    functionLinenumber: 2765
    functionLinenumberEnd: 2911
    functionName: dectuple_as_str
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - strcat
    - PyTuple_Size
    - PyTuple_GET_ITEM
    - PyMem_Malloc
    - sequence_as_tuple
    - PyErr_NoMemory
    - PyErr_SetString
    - PyUnicode_Check
    - PyLong_Check
    - PyLong_AsLong
    - PyUnicode_CompareWithASCIIString
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - Py_XDECREF
    - PyMem_Free
    - PyLong_AsSsize_t
    - snprintf
    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:2922,1
    - Dst: dectuple_as_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:2928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2929,1
    - Dst: PyDecType_FromCString
      Src: /src/cpython/Modules/_decimal/_decimal.c:2934,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2938
      start: 2914
    functionDepth: 4
    functionLinenumber: 2914
    functionLinenumberEnd: 2938
    functionName: PyDecType_FromSequence
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - sequence_as_tuple
    - PyDecType_FromCString
    - PyMem_Free
    - Py_DECREF
    - dectuple_as_str
    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:2949,1
    - Dst: dectuple_as_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:2955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:2956,1
    - Dst: PyDecType_FromCStringExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:2961,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:2963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2941
    functionDepth: 4
    functionLinenumber: 2941
    functionLinenumberEnd: 2965
    functionName: PyDecType_FromSequenceExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - sequence_as_tuple
    - PyDecType_FromCStringExact
    - PyMem_Free
    - Py_DECREF
    - dectuple_as_str
    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: 2969
      start: 2967
    functionDepth: 0
    functionLinenumber: 2967
    functionLinenumberEnd: 2969
    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: 2971
      start: 2969
    functionDepth: 0
    functionLinenumber: 2969
    functionLinenumberEnd: 2971
    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: 2974
      start: 2972
    functionDepth: 0
    functionLinenumber: 2972
    functionLinenumberEnd: 2974
    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: 2976
      start: 2974
    functionDepth: 0
    functionLinenumber: 2974
    functionLinenumberEnd: 2976
    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: 2978
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2978
    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: 2981
      start: 2979
    functionDepth: 0
    functionLinenumber: 2979
    functionLinenumberEnd: 2981
    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: 2983
      start: 2981
    functionDepth: 0
    functionLinenumber: 2981
    functionLinenumberEnd: 2983
    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: 2986
      start: 2984
    functionDepth: 0
    functionLinenumber: 2984
    functionLinenumberEnd: 2986
    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: 2988
      start: 2986
    functionDepth: 0
    functionLinenumber: 2986
    functionLinenumberEnd: 2988
    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: 2991
      start: 2989
    functionDepth: 0
    functionLinenumber: 2989
    functionLinenumberEnd: 2991
    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: 2993
      start: 2991
    functionDepth: 0
    functionLinenumber: 2991
    functionLinenumberEnd: 2993
    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: 2996
      start: 2994
    functionDepth: 0
    functionLinenumber: 2994
    functionLinenumberEnd: 2996
    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: 2998
      start: 2996
    functionDepth: 0
    functionLinenumber: 2996
    functionLinenumberEnd: 2998
    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: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:3031,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3032,1
    - Dst: PyDecType_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3033,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3035,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_decimal/_decimal.c:3036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - type
    - cls
    - pyfloat
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3040
      start: 3023
    functionDepth: 5
    functionLinenumber: 3023
    functionLinenumberEnd: 3040
    functionName: _decimal_Decimal_from_float_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromFloatExact
    - Py_SETREF
    - PyObject_CallFunctionObjArgs
    - CURRENT_CONTEXT
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_from_float_impl(PyTypeObject *type, PyTypeObject
      *cls,\n                                 PyObject *pyfloat)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:3049,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3050,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3051,1
    - Dst: PyDecType_FromDecimalExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3052,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3054,1
    - Dst: PyDecType_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3055,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3057,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3058,1
    - Dst: PyDecType_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3061,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3064,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3066,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - type
    - cls
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 3049
        line_start: 3049
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 3069
      start: 3045
    functionDepth: 5
    functionLinenumber: 3045
    functionLinenumberEnd: 3069
    functionName: PyDecType_FromNumberExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromFloatExact
    - PyDec_Check
    - PyFloat_Check
    - PyDecType_FromDecimalExact
    - PyLong_Check
    - PyDecType_FromLongExact
    - dec_addstatus
    - PyErr_Format
    - assert
    - PyType_GetModuleState
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromNumberExact(PyTypeObject *type, PyTypeObject
      *cls,\n                          PyObject *v, PyObject *context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:3099,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3100,1
    - Dst: PyDecType_FromNumberExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3101,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3103,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_decimal/_decimal.c:3104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - type
    - cls
    - number
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3108
      start: 3091
    functionDepth: 6
    functionLinenumber: 3091
    functionLinenumberEnd: 3108
    functionName: _decimal_Decimal_from_number_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - PyObject_CallFunctionObjArgs
    - CURRENT_CONTEXT
    - PyDecType_FromNumberExact
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_from_number_impl(PyTypeObject *type,
      PyTypeObject *cls,\n                                  PyObject *number)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:3132,1
    - Dst: PyDec_FromFloat
      Src: /src/cpython/Modules/_decimal/_decimal.c:3133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - cls
    - f
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3126
    functionDepth: 1
    functionLinenumber: 3126
    functionLinenumberEnd: 3134
    functionName: _decimal_Context_create_decimal_from_float_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_FromFloat
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_create_decimal_from_float_impl(PyObject
      *context,\n                                                PyTypeObject *cls,\n
      \                                               PyObject *f)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3143,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3144,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3149,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3149,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3149,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3151,1
    - Dst: mpd_qfinalize
      Src: /src/cpython/Modules/_decimal/_decimal.c:3155,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3155,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3155,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - v
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3137
    functionDepth: 3
    functionLinenumber: 3137
    functionLinenumberEnd: 3162
    functionName: dec_apply
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - mpd_qfinalize
    - dec_alloc
    - dec_addstatus
    - get_module_state_from_ctx
    - CTX
    - Py_DECREF
    - mpd_qcopy
    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:3170,1
    - Dst: PyDecType_FromSsizeExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3172,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3174,1
    - Dst: PyDecType_FromDecimalExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3175,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3177,1
    - Dst: PyDecType_FromUnicodeExactWS
      Src: /src/cpython/Modules/_decimal/_decimal.c:3178,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3180,1
    - Dst: PyDecType_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3181,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3183,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3183,1
    - Dst: PyDecType_FromSequenceExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3184,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3186,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3187,1
    - Dst: PyDecType_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3190,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3193,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3167
    functionDepth: 5
    functionLinenumber: 3167
    functionLinenumberEnd: 3198
    functionName: PyDecType_FromObjectExact
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromFloatExact
    - PyDec_Check
    - PyDecType_FromSequenceExact
    - PyUnicode_Check
    - PyFloat_Check
    - PyDecType_FromDecimalExact
    - PyLong_Check
    - PyDecType_FromUnicodeExactWS
    - PyDecType_FromLongExact
    - get_module_state_from_ctx
    - PyList_Check
    - PyTuple_Check
    - dec_addstatus
    - PyErr_Format
    - PyDecType_FromSsizeExact
    - Py_TYPE
    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:3205,1
    - Dst: PyDec_FromSsize
      Src: /src/cpython/Modules/_decimal/_decimal.c:3207,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3209,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3210,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:3211,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3211,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3212,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3215,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3218,1
    - Dst: mpd_setspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:3222,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3222,1
    - Dst: dec_apply
      Src: /src/cpython/Modules/_decimal/_decimal.c:3225,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3227,1
    - Dst: PyDec_FromUnicode
      Src: /src/cpython/Modules/_decimal/_decimal.c:3228,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3230,1
    - Dst: PyDec_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:3231,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3233,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3233,1
    - Dst: PyDec_FromSequence
      Src: /src/cpython/Modules/_decimal/_decimal.c:3234,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3236,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3237,1
    - Dst: PyDec_FromFloat
      Src: /src/cpython/Modules/_decimal/_decimal.c:3240,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3243,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3245,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - v
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3248
      start: 3202
    functionDepth: 4
    functionLinenumber: 3202
    functionLinenumberEnd: 3248
    functionName: PyDec_FromObject
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_setspecial
    - PyDec_FromFloat
    - PyDec_Check
    - PyTuple_Check
    - dec_apply
    - Py_TYPE
    - MPD
    - PyUnicode_Check
    - PyLong_Check
    - get_module_state_from_ctx
    - CTX
    - PyDec_FromUnicode
    - PyFloat_Check
    - dec_addstatus
    - PyDec_FromLong
    - PyList_Check
    - PyDec_FromSsize
    - dec_alloc
    - PyDec_FromSequence
    - PyErr_Format
    - mpd_isnan
    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:3269,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:3270,1
    - Dst: PyDecType_FromObjectExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - value
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3265
    functionDepth: 6
    functionLinenumber: 3265
    functionLinenumberEnd: 3273
    functionName: dec_new_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromObjectExact
    - CONTEXT_CHECK_VA
    - get_module_state_by_def
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_new_impl(PyTypeObject *type, PyObject *value, PyObject *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_FromObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:3292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - num
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3288
    functionDepth: 5
    functionLinenumber: 3288
    functionLinenumberEnd: 3293
    functionName: _decimal_Context_create_decimal_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_create_decimal_impl(PyObject *context, PyObject *num)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3308,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3309,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3310,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3313,1
    - Dst: PyDec_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3314,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3322,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3324,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3327,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: 3330
      start: 3306
    functionDepth: 2
    functionLinenumber: 3306
    functionLinenumberEnd: 3330
    functionName: convert_op
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_Check
    - PyDec_FromLongExact
    - PyLong_Check
    - get_module_state_from_ctx
    - PyErr_Format
    - Py_NewRef
    - 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: 3337
      start: 3333
    functionDepth: 0
    functionLinenumber: 3333
    functionLinenumberEnd: 3337
    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: 3346
      start: 3338
    functionDepth: 0
    functionLinenumber: 3338
    functionLinenumberEnd: 3346
    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: 3360
      start: 3347
    functionDepth: 0
    functionLinenumber: 3347
    functionLinenumberEnd: 3360
    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: 3366
      start: 3362
    functionDepth: 0
    functionLinenumber: 3362
    functionLinenumberEnd: 3366
    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: 3375
      start: 3367
    functionDepth: 0
    functionLinenumber: 3367
    functionLinenumberEnd: 3375
    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: 3389
      start: 3376
    functionDepth: 0
    functionLinenumber: 3376
    functionLinenumberEnd: 3389
    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:3407,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3411,1
    - Dst: PyDec_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3413,1
    - Dst: mpd_qncopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3418,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3420,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3421,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3426,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3427,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:3431,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/_decimal.c:3438,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3438,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3438,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3441,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3442,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3449,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 3
    argNames:
    - v
    - r
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3454
      start: 3395
    functionDepth: 2
    functionLinenumber: 3395
    functionLinenumberEnd: 3454
    functionName: multiply_by_denominator
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_del
    - MPD
    - mpd_qncopy
    - PyErr_NoMemory
    - PyErr_SetString
    - dec_alloc
    - mpd_qmul
    - PyDec_FromLongExact
    - get_module_state_from_ctx
    - PyObject_GetAttrString
    - Py_DECREF
    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:3461,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3466,1
    - Dst: PyDec_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - r
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3456
    functionDepth: 2
    functionLinenumber: 3456
    functionLinenumberEnd: 3470
    functionName: numerator_as_decimal
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_FromLongExact
    - Py_DECREF
    - get_module_state_from_ctx
    - PyObject_GetAttrString
    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:3481,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3485,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3486,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3487,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3489,1
    - Dst: PyDec_FromLongExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3490,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3492,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3494,1
    - Dst: PyDec_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3499,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3502,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Modules/_decimal/_decimal.c:3503,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:3504,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Modules/_decimal/_decimal.c:3508,1
    - Dst: PyDec_FromFloatExact
      Src: /src/cpython/Modules/_decimal/_decimal.c:3514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3515,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3519,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Modules/_decimal/_decimal.c:3523,1
    - Dst: numerator_as_decimal
      Src: /src/cpython/Modules/_decimal/_decimal.c:3528,1
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:3529,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3529,1
    - Dst: multiply_by_denominator
      Src: /src/cpython/Modules/_decimal/_decimal.c:3530,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:3532,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:3537,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3545,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: 3548
      start: 3477
    functionDepth: 3
    functionLinenumber: 3477
    functionLinenumberEnd: 3548
    functionName: convert_op_cmp
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_Check
    - PyFloat_FromDouble
    - PyDec_FromLongExact
    - PyComplex_Check
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - MPD
    - PyLong_Check
    - get_module_state_from_ctx
    - CTX
    - PyDec_FromFloatExact
    - Py_INCREF
    - numerator_as_decimal
    - PyFloat_Check
    - dec_addstatus
    - Py_DECREF
    - Py_NewRef
    - mpd_isspecial
    - Py_CLEAR
    - multiply_by_denominator
    - PyObject_IsInstance
    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: 3555
      start: 3550
    functionDepth: 0
    functionLinenumber: 3550
    functionLinenumberEnd: 3555
    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:3565,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3570,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Modules/_decimal/_decimal.c:3570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3572
      start: 3560
    functionDepth: 1
    functionLinenumber: 3560
    functionLinenumberEnd: 3572
    functionName: unicode_fromascii
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_New
    - PyUnicode_1BYTE_DATA
    - memcpy
    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:3583,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3583,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3584,1
    - Dst: mpd_to_sci_size
      Src: /src/cpython/Modules/_decimal/_decimal.c:3585,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3585,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:3585,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3587,1
    - Dst: unicode_fromascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:3591,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3576
    functionDepth: 2
    functionLinenumber: 3576
    functionLinenumberEnd: 3594
    functionName: dec_str
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyErr_NoMemory
    - unicode_fromascii
    - mpd_free
    - get_module_state_by_def
    - CtxCaps
    - CURRENT_CONTEXT
    - mpd_to_sci_size
    - Py_TYPE
    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:3602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:3602,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3603,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/_decimal.c:3604,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3604,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:3604,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3606,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_decimal/_decimal.c:3610,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3613
      start: 3597
    functionDepth: 1
    functionLinenumber: 3597
    functionLinenumberEnd: 3613
    functionName: dec_repr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyErr_NoMemory
    - mpd_free
    - PyUnicode_FromFormat
    - get_module_state_by_def
    - CtxCaps
    - CURRENT_CONTEXT
    - mpd_to_sci
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_repr(PyObject *dec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:3619,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3621,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3628
      start: 3616
    functionDepth: 1
    functionLinenumber: 3616
    functionLinenumberEnd: 3628
    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: 3637
      start: 3630
    functionDepth: 0
    functionLinenumber: 3630
    functionLinenumberEnd: 3637
    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:3649,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3651,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Modules/_decimal/_decimal.c:3656,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_decimal/_decimal.c:3660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3663
      start: 3641
    functionDepth: 1
    functionLinenumber: 3641
    functionLinenumberEnd: 3663
    functionName: dotsep_as_utf8
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyErr_SetString
    - mbstowcs
    - PyUnicode_AsUTF8String
    - Py_DECREF
    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:3669,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_decimal/_decimal.c:3673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3674,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:3676,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Modules/_decimal/_decimal.c:3681,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_decimal/_decimal.c:3686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - dict
    - key
    - valueobj
    - valuestr
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3688
      start: 3665
    functionDepth: 1
    functionLinenumber: 3665
    functionLinenumberEnd: 3688
    functionName: dict_get_item_string
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_AsUTF8String
    - PyErr_Occurred
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyDict_GetItemWithError
    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:3703,1
    - Dst: dec_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:3709,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/_decimal/_decimal.c:3714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3715,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_decimal/_decimal.c:3720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3721,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_decimal/_decimal.c:3723,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:3725,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3726,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: 3730
      start: 3695
    functionDepth: 3
    functionLinenumber: 3695
    functionLinenumberEnd: 3730
    functionName: pydec_format
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - dec_str
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - PyObject_CallMethod
    - PyImport_ImportModuleAttrString
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pydec_format(PyObject *dec, PyObject *context, PyObject *fmt, decimal_state
      *state)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:3762,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:3763,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_decimal/_decimal.c:3764,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_decimal/_decimal.c:3770,1
    - Dst: dec_strdup
      Src: /src/cpython/Modules/_decimal/_decimal.c:3781,1
    - Dst: mpd_parse_fmt_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:3788,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:3788,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3790,1
    - Dst: pydec_format
      Src: /src/cpython/Modules/_decimal/_decimal.c:3793,1
    - Dst: PyDict_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:3810,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3811,1
    - Dst: dict_get_item_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:3815,1
    - Dst: dict_get_item_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:3816,1
    - Dst: dict_get_item_string
      Src: /src/cpython/Modules/_decimal/_decimal.c:3817,1
    - Dst: mpd_validate_lconv
      Src: /src/cpython/Modules/_decimal/_decimal.c:3821,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3822,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/_decimal.c:3828,1
    - Dst: isascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:3829,1
    - Dst: dotsep_as_utf8
      Src: /src/cpython/Modules/_decimal/_decimal.c:3831,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_decimal/_decimal.c:3835,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/_decimal.c:3837,1
    - Dst: isascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:3838,1
    - Dst: dotsep_as_utf8
      Src: /src/cpython/Modules/_decimal/_decimal.c:3840,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_decimal/_decimal.c:3844,1
    - Dst: mpd_qformat_spec
      Src: /src/cpython/Modules/_decimal/_decimal.c:3849,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3849,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3849,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3852,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3855,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/_decimal.c:3860,1
    - Dst: dec_replace_fillchar
      Src: /src/cpython/Modules/_decimal/_decimal.c:3862,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_decimal/_decimal.c:3865,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3869,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3870,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:3871,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3872,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3873,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 88
    argCount: 4
    argNames:
    - dec
    - cls
    - fmtarg
    - override
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3875
      start: 3746
    functionDepth: 4
    functionLinenumber: 3746
    functionLinenumberEnd: 3875
    functionName: _decimal_Decimal___format___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - dict_get_item_string
    - PyUnicode_AsUTF8AndSize
    - CtxCaps
    - mpd_parse_fmt_str
    - MPD
    - PyErr_NoMemory
    - dotsep_as_utf8
    - dec_replace_fillchar
    - CURRENT_CONTEXT
    - CTX
    - PyMem_Free
    - PyBytes_AS_STRING
    - strlen
    - Py_XDECREF
    - PyType_GetModuleState
    - PyErr_WarnEx
    - mpd_qformat_spec
    - isascii
    - PyErr_SetString
    - dec_strdup
    - pydec_format
    - mpd_free
    - PyDict_Check
    - mpd_validate_lconv
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal___format___impl(PyObject *dec, PyTypeObject
      *cls,\n                                 PyObject *fmtarg, PyObject *override)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:3882,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3882,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:3883,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3883,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3884,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3888,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:3894,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3897,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:3901,1
    - Dst: mpd_qround_to_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:3905,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3905,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:3906,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3907,1
    - Dst: mpd_qget_i64
      Src: /src/cpython/Modules/_decimal/_decimal.c:3912,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3915,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Modules/_decimal/_decimal.c:3916,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3918,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/_decimal.c:3918,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_decimal/_decimal.c:3920,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3922,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3923,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3924,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:3925,1
    - Dst: mpd_qexport_u32
      Src: /src/cpython/Modules/_decimal/_decimal.c:3938,1
    - Dst: mpd_qexport_u16
      Src: /src/cpython/Modules/_decimal/_decimal.c:3941,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:3945,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3946,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3947,1
    - Dst: PyLongWriter_Create
      Src: /src/cpython/Modules/_decimal/_decimal.c:3952,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/_decimal.c:3952,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:3954,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3956,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_decimal/_decimal.c:3959,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:3960,1
    - Dst: PyLongWriter_Finish
      Src: /src/cpython/Modules/_decimal/_decimal.c:3961,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - dec
    - context
    - round
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (layout->digit_size == 2 || layout->digit_size == 4)
      pos:
        line_end: 3924
        line_start: 3924
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (!mpd_iszero(x))
      pos:
        line_end: 3917
        line_start: 3917
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (layout->digits_order == -1)
      pos:
        line_end: 3922
        line_start: 3922
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: (layout->bits_per_digit < 32)
      pos:
        line_end: 3921
        line_start: 3921
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    - condition: '(layout->digit_endianness == (PY_LITTLE_ENDIAN ? -1 : 1))'
      pos:
        line_end: 3923
        line_start: 3923
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 3962
      start: 3879
    functionDepth: 3
    functionLinenumber: 3879
    functionLinenumberEnd: 3962
    functionName: dec_as_long
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_iszero
    - PyLong_GetNativeLayout
    - mpd_isnegative
    - memcpy
    - assert
    - mpd_qexport_u16
    - MPD
    - PyErr_NoMemory
    - PyLong_FromInt64
    - CTX
    - PyLongWriter_Create
    - mpd_del
    - mpd_qexport_u32
    - PyErr_SetString
    - dec_addstatus
    - mpd_qget_i64
    - mpd_free
    - mpd_isspecial
    - PyLongWriter_Finish
    - mpd_qnew
    - mpd_qround_to_int
    - mpd_isnan
    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:3988,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3988,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:3989,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:3989,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3990,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:3994,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:4000,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4001,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4003,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:4008,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4008,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4009,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:4010,1
    - Dst: mpd_iszero
      Src: /src/cpython/Modules/_decimal/_decimal.c:4014,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4014,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4014,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4015,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:4018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4019,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:4024,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:4029,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4034,1
    - Dst: decimal_state*::_py_long_power
      Src: /src/cpython/Modules/_decimal/_decimal.c:4034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4035,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4041,1
    - Dst: decimal_state*::_py_long_multiply
      Src: /src/cpython/Modules/_decimal/_decimal.c:4041,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:4042,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:4046,1
    - Dst: _PyLong_GCD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4054,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4058,1
    - Dst: decimal_state*::_py_long_floor_divide
      Src: /src/cpython/Modules/_decimal/_decimal.c:4058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4060,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4063,1
    - Dst: decimal_state*::_py_long_floor_divide
      Src: /src/cpython/Modules/_decimal/_decimal.c:4063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4064,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_decimal/_decimal.c:4069,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4072,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4073,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4074,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4076
      start: 3976
    functionDepth: 4
    functionLinenumber: 3976
    functionLinenumberEnd: 4076
    functionName: _decimal_Decimal_as_integer_ratio_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - mpd_iszero
    - MPD
    - dec_as_long
    - decimal_state*::_py_long_power
    - PyErr_NoMemory
    - CURRENT_CONTEXT
    - PyLong_FromSsize_t
    - _PyLong_GCD
    - Py_XDECREF
    - PyType_GetModuleState
    - decimal_state*::_py_long_multiply
    - PyErr_SetString
    - Py_DECREF
    - mpd_qcopy
    - decimal_state*::_py_long_floor_divide
    - mpd_isspecial
    - dec_alloc
    - Py_SETREF
    - Py_CLEAR
    - _PyTuple_FromPairSteal
    - mpd_isnan
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_as_integer_ratio_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:4102,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:4103,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4105,1
    - Dst: getround
      Src: /src/cpython/Modules/_decimal/_decimal.c:4107,1
    - Dst: mpd_qsetround
      Src: /src/cpython/Modules/_decimal/_decimal.c:4111,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:4112,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4116,1
    - Dst: mpd_qround_to_int
      Src: /src/cpython/Modules/_decimal/_decimal.c:4121,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4121,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4121,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - self
    - cls
    - rounding
    - context
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4128
      start: 4092
    functionDepth: 3
    functionLinenumber: 4092
    functionLinenumberEnd: 4128
    functionName: _decimal_Decimal_to_integral_value_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - getround
    - mpd_qsetround
    - dec_alloc
    - dec_addstatus
    - mpd_qround_to_int
    - CTX
    - CONTEXT_CHECK_VA
    - Py_DECREF
    - INTERNAL_ERROR_PTR
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_to_integral_value_impl(PyObject *self,
      PyTypeObject *cls,\n                                        PyObject *rounding,\n
      \                                       PyObject *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal_to_integral_value_impl
      Src: /src/cpython/Modules/_decimal/_decimal.c:4144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - cls
    - rounding
    - context
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4139
    functionDepth: 4
    functionLinenumber: 4139
    functionLinenumberEnd: 4146
    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, PyTypeObject
      *cls,\n                                  PyObject *rounding, PyObject *context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:4169,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:4170,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4172,1
    - Dst: getround
      Src: /src/cpython/Modules/_decimal/_decimal.c:4174,1
    - Dst: mpd_qsetround
      Src: /src/cpython/Modules/_decimal/_decimal.c:4178,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:4179,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4183,1
    - Dst: mpd_qround_to_intx
      Src: /src/cpython/Modules/_decimal/_decimal.c:4188,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4188,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4188,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - self
    - cls
    - rounding
    - context
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4195
      start: 4159
    functionDepth: 3
    functionLinenumber: 4159
    functionLinenumberEnd: 4195
    functionName: _decimal_Decimal_to_integral_exact_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qround_to_intx
    - MPD
    - getround
    - mpd_qsetround
    - dec_alloc
    - dec_addstatus
    - CTX
    - CONTEXT_CHECK_VA
    - Py_DECREF
    - INTERNAL_ERROR_PTR
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_to_integral_exact_impl(PyObject *self,
      PyTypeObject *cls,\n                                        PyObject *rounding,\n
      \                                       PyObject *context)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:4202,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4202,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:4203,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4203,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4204,1
    - Dst: mpd_isnegative
      Src: /src/cpython/Modules/_decimal/_decimal.c:4208,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4208,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4209,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4212,1
    - Dst: dec_str
      Src: /src/cpython/Modules/_decimal/_decimal.c:4216,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4227
      start: 4197
    functionDepth: 3
    functionLinenumber: 4197
    functionLinenumberEnd: 4227
    functionName: PyDec_AsFloat
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyUnicode_FromString
    - PyErr_SetString
    - mpd_isnegative
    - mpd_issnan
    - Py_DECREF
    - mpd_isnan
    - PyFloat_FromString
    - dec_str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_AsFloat(PyObject *dec)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:4247,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4248,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:4254,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4255,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:4260,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:4261,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4264,1
    - Dst: mpd_qquantize
      Src: /src/cpython/Modules/_decimal/_decimal.c:4270,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4270,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4270,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4270,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4272,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:4279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - self
    - cls
    - ndigits
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4281
      start: 4239
    functionDepth: 4
    functionLinenumber: 4239
    functionLinenumberEnd: 4281
    functionName: _decimal_Decimal___round___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - dec_as_long
    - PyErr_SetString
    - dec_alloc
    - mpd_qquantize
    - dec_addstatus
    - PyLong_Check
    - CURRENT_CONTEXT
    - CTX
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal___round___impl(PyObject *self, PyTypeObject
      *cls,\n                                PyObject *ndigits)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qncopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:4305,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4305,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:4307,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:4311,1
    - Dst: mpd_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:4311,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4311,1
    - Dst: mpd_isinfinite
      Src: /src/cpython/Modules/_decimal/_decimal.c:4316,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4317,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_decimal/_decimal.c:4322,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:4328,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:4329,1
    - Dst: mpd_isqnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:4329,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:4332,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4332,1
    - Dst: mpd_clear_flags
      Src: /src/cpython/Modules/_decimal/_decimal.c:4344,1
    - Dst: mpd_to_sci
      Src: /src/cpython/Modules/_decimal/_decimal.c:4345,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:4347,1
    - Dst: strlen
      Src: /src/cpython/Modules/_decimal/_decimal.c:4351,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:4352,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:4358,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:4362,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:4366,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:4373,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Modules/_decimal/_decimal.c:4374,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:4378,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:4379,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4380,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4381,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4382,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4384
      start: 4291
    functionDepth: 1
    functionLinenumber: 4291
    functionLinenumberEnd: 4384
    functionName: _decimal_Decimal_as_tuple_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_isinfinite
    - PyLong_FromLong
    - Py_BuildValue
    - mpd_to_sci
    - PyLong_FromUnsignedLong
    - MPD
    - PyUnicode_FromString
    - PyErr_NoMemory
    - mpd_qncopy
    - PyLong_FromSsize_t
    - strlen
    - Py_XDECREF
    - PyType_GetModuleState
    - mpd_del
    - mpd_isqnan
    - PyObject_CallFunctionObjArgs
    - PyTuple_SET_ITEM
    - PyTuple_New
    - mpd_clear_flags
    - mpd_free
    - mpd_sign
    - mpd_isnan
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_as_tuple_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4392
    functionDepth: 0
    functionLinenumber: 4392
    functionLinenumberEnd: 4414
    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: 4445
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4445
    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: 4453
      start: 4449
    functionDepth: 0
    functionLinenumber: 4449
    functionLinenumberEnd: 4453
    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: 4465
      start: 4458
    functionDepth: 0
    functionLinenumber: 4458
    functionLinenumberEnd: 4465
    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: 4489
      start: 4470
    functionDepth: 0
    functionLinenumber: 4470
    functionLinenumberEnd: 4489
    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: 4519
      start: 4494
    functionDepth: 0
    functionLinenumber: 4494
    functionLinenumberEnd: 4519
    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: 4547
      start: 4527
    functionDepth: 0
    functionLinenumber: 4527
    functionLinenumberEnd: 4547
    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: 4580
      start: 4553
    functionDepth: 0
    functionLinenumber: 4553
    functionLinenumberEnd: 4580
    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:4601,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:4601,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4602,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:4603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4604
      start: 4597
    functionDepth: 4
    functionLinenumber: 4597
    functionLinenumberEnd: 4604
    functionName: nm_dec_as_long
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CURRENT_CONTEXT
    - dec_as_long
    - Py_TYPE
    - get_module_state_by_def
    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:4609,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4610
      start: 4606
    functionDepth: 1
    functionLinenumber: 4606
    functionLinenumberEnd: 4610
    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:4620,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4621,1
    - Dst: CONVERT_BINOP
      Src: /src/cpython/Modules/_decimal/_decimal.c:4622,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4627,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4634,1
    - Dst: mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:4638,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4638,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4638,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4638,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4638,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4640,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4643,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_decimal/_decimal.c:4647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4648
      start: 4612
    functionDepth: 3
    functionLinenumber: 4612
    functionLinenumberEnd: 4648
    functionName: nm_mpd_qdivmod
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - dec_alloc
    - mpd_qdivmod
    - dec_addstatus
    - CURRENT_CONTEXT
    - CTX
    - Py_DECREF
    - find_state_left_or_right
    - _PyTuple_FromPairSteal
    - CONVERT_BINOP
    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:4658,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:4659,1
    - Dst: CONVERT_BINOP
      Src: /src/cpython/Modules/_decimal/_decimal.c:4660,1
    - Dst: convert_op
      Src: /src/cpython/Modules/_decimal/_decimal.c:4663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4665,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:4670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4673,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4674,1
    - Dst: mpd_qpow
      Src: /src/cpython/Modules/_decimal/_decimal.c:4679,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4679,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4679,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4679,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4680,1
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:4683,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4683,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4683,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4683,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:4683,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:4684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4688,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:4689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:4690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - base
    - exp
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4695
      start: 4650
    functionDepth: 3
    functionLinenumber: 4650
    functionLinenumberEnd: 4695
    functionName: nm_mpd_qpow
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - convert_op
    - MPD
    - mpd_qpowmod
    - find_state_ternary
    - dec_alloc
    - dec_addstatus
    - CURRENT_CONTEXT
    - CTX
    - Py_XDECREF
    - Py_DECREF
    - mpd_qpow
    - CONVERT_BINOP
    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:5104,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5104,1
    - Dst: mpd_adjexp
      Src: /src/cpython/Modules/_decimal/_decimal.c:5108,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5108,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:5111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5112
      start: 5098
    functionDepth: 1
    functionLinenumber: 5098
    functionLinenumberEnd: 5112
    functionName: _decimal_Decimal_adjusted_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - mpd_isspecial
    - PyLong_FromSsize_t
    - mpd_adjexp
    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:5127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5128
      start: 5123
    functionDepth: 0
    functionLinenumber: 5123
    functionLinenumberEnd: 5128
    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:5140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5141
      start: 5136
    functionDepth: 0
    functionLinenumber: 5136
    functionLinenumberEnd: 5141
    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:5148,1
    - Dst: _dec_settriple
      Src: /src/cpython/Modules/_decimal/_decimal.c:5153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - decimal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5155
      start: 5143
    functionDepth: 2
    functionLinenumber: 5143
    functionLinenumberEnd: 5155
    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: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5172,1
    - Dst: _dec_mpd_radix
      Src: /src/cpython/Modules/_decimal/_decimal.c:5173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5174
      start: 5168
    functionDepth: 3
    functionLinenumber: 5168
    functionLinenumberEnd: 5174
    functionName: _decimal_Decimal_radix_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _dec_mpd_radix
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_radix_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5193,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5195,1
    - Dst: mpd_qcopy_abs
      Src: /src/cpython/Modules/_decimal/_decimal.c:5199,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5199,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5201,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:5202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5207
      start: 5187
    functionDepth: 1
    functionLinenumber: 5187
    functionLinenumberEnd: 5207
    functionName: _decimal_Decimal_copy_abs_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyErr_NoMemory
    - dec_alloc
    - Py_DECREF
    - mpd_qcopy_abs
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_abs_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5224,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5226,1
    - Dst: mpd_qcopy_negate
      Src: /src/cpython/Modules/_decimal/_decimal.c:5230,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5230,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5232,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:5233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5218
    functionDepth: 1
    functionLinenumber: 5218
    functionLinenumberEnd: 5238
    functionName: _decimal_Decimal_copy_negate_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyErr_NoMemory
    - dec_alloc
    - mpd_qcopy_negate
    - Py_DECREF
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_negate_impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5303,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5304,1
    - Dst: mpd_class
      Src: /src/cpython/Modules/_decimal/_decimal.c:5306,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5306,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:5306,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:5307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - cls
    - context
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5308
      start: 5296
    functionDepth: 1
    functionLinenumber: 5296
    functionLinenumberEnd: 5308
    functionName: _decimal_Decimal_number_class_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyUnicode_FromString
    - mpd_class
    - CTX
    - CONTEXT_CHECK_VA
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_number_class_impl(PyObject *self, PyTypeObject
      *cls,\n                                   PyObject *context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5333,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5334,1
    - Dst: mpd_to_eng_size
      Src: /src/cpython/Modules/_decimal/_decimal.c:5336,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5336,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:5336,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:5338,1
    - Dst: unicode_fromascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:5342,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:5343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - cls
    - context
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5346
      start: 5324
    functionDepth: 2
    functionLinenumber: 5324
    functionLinenumberEnd: 5346
    functionName: _decimal_Decimal_to_eng_string_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyErr_NoMemory
    - unicode_fromascii
    - mpd_free
    - mpd_to_eng_size
    - CtxCaps
    - CONTEXT_CHECK_VA
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_to_eng_string_impl(PyObject *self, PyTypeObject
      *cls,\n                                    PyObject *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5427,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5428,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5429,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5434,1
    - Dst: mpd_qcopy_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:5438,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5438,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5438,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5440,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:5441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - self
    - cls
    - other
    - context
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5447
      start: 5418
    functionDepth: 3
    functionLinenumber: 5418
    functionLinenumberEnd: 5447
    functionName: _decimal_Decimal_copy_sign_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - dec_alloc
    - dec_addstatus
    - CONTEXT_CHECK_VA
    - Py_DECREF
    - mpd_qcopy_sign
    - CONVERT_BINOP_RAISE
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_copy_sign_impl(PyObject *self, PyTypeObject
      *cls,\n                                PyObject *other, PyObject *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5468,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5469,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5470,1
    - Dst: mpd_same_quantum
      Src: /src/cpython/Modules/_decimal/_decimal.c:5472,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5472,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5472,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:5472,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:5472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5473,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - self
    - cls
    - other
    - context
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5477
      start: 5460
    functionDepth: 1
    functionLinenumber: 5460
    functionLinenumberEnd: 5477
    functionName: _decimal_Decimal_same_quantum_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - incr_true
    - CONTEXT_CHECK_VA
    - incr_false
    - Py_DECREF
    - CONVERT_BINOP_RAISE
    - mpd_same_quantum
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_same_quantum_impl(PyObject *self, PyTypeObject
      *cls,\n                                   PyObject *other, PyObject *context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5620,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/cpython/Modules/_decimal/_decimal.c:5621,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:5623,1
    - Dst: getround
      Src: /src/cpython/Modules/_decimal/_decimal.c:5625,1
    - Dst: mpd_qsetround
      Src: /src/cpython/Modules/_decimal/_decimal.c:5629,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:5630,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5634,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:5636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5639,1
    - Dst: mpd_qquantize
      Src: /src/cpython/Modules/_decimal/_decimal.c:5643,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5643,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5643,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5645,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:5646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5647,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - self
    - cls
    - w
    - rounding
    - context
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5652
      start: 5609
    functionDepth: 3
    functionLinenumber: 5609
    functionLinenumberEnd: 5652
    functionName: _decimal_Decimal_quantize_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - getround
    - mpd_qsetround
    - dec_alloc
    - mpd_qquantize
    - dec_addstatus
    - CTX
    - CONTEXT_CHECK_VA
    - Py_DECREF
    - CONVERT_BINOP_RAISE
    - INTERNAL_ERROR_PTR
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Decimal_quantize_impl(PyObject *self, PyTypeObject
      *cls,\n                               PyObject *w, PyObject *rounding,\n                               PyObject
      *context)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_state_left_or_right
      Src: /src/cpython/Modules/_decimal/_decimal.c:5664,1
    - Dst: assert
      Src: /src/cpython/Modules/_decimal/_decimal.c:5667,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:5667,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:5669,1
    - Dst: CONVERT_BINOP_CMP
      Src: /src/cpython/Modules/_decimal/_decimal.c:5670,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:5672,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5672,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:5673,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5673,1
    - Dst: mpd_qcmp
      Src: /src/cpython/Modules/_decimal/_decimal.c:5675,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5675,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5676,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5677,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:5681,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:5687,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:5687,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_decimal/_decimal.c:5711,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: 5666
        line_start: 5666
        source_file: /src/cpython/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 5712
      start: 5655
    functionDepth: 3
    functionLinenumber: 5655
    functionLinenumberEnd: 5712
    functionName: dec_richcompare
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - incr_false
    - MPD
    - CONVERT_BINOP_CMP
    - PyDec_Check
    - mpd_issnan
    - incr_true
    - dec_addstatus
    - CURRENT_CONTEXT
    - PyBool_FromLong
    - assert
    - Py_DECREF
    - mpd_qcmp
    - find_state_left_or_right
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5728,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:5729,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:5730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5731
      start: 5722
    functionDepth: 4
    functionLinenumber: 5722
    functionLinenumberEnd: 5731
    functionName: _decimal_Decimal___ceil___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CURRENT_CONTEXT
    - dec_as_long
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___ceil___impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_AsFloat
      Src: /src/cpython/Modules/_decimal/_decimal.c:5746,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Modules/_decimal/_decimal.c:5751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5752,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/_decimal.c:5753,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Modules/_decimal/_decimal.c:5757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5758
      start: 5739
    functionDepth: 4
    functionLinenumber: 5739
    functionLinenumberEnd: 5758
    functionName: _decimal_Decimal___complex___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - Py_DECREF
    - PyComplex_FromDoubles
    - PyDec_AsFloat
    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:5769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5770
      start: 5765
    functionDepth: 0
    functionLinenumber: 5765
    functionLinenumberEnd: 5770
    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:5784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5785
      start: 5780
    functionDepth: 0
    functionLinenumber: 5780
    functionLinenumberEnd: 5785
    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: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5799,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:5800,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:5801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5802
      start: 5793
    functionDepth: 4
    functionLinenumber: 5793
    functionLinenumberEnd: 5802
    functionName: _decimal_Decimal___floor___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CURRENT_CONTEXT
    - dec_as_long
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___floor___impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/cpython/Modules/_decimal/_decimal.c:5839,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5839,1
    - Dst: mpd_issnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:5840,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5840,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:5841,1
    - Dst: mpd_isnan
      Src: /src/cpython/Modules/_decimal/_decimal.c:5845,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5845,1
    - Dst: PyObject_GenericHash
      Src: /src/cpython/Modules/_decimal/_decimal.c:5846,1
    - Dst: mpd_arith_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:5849,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5849,1
    - Dst: mpd_maxcontext
      Src: /src/cpython/Modules/_decimal/_decimal.c:5853,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:5854,1
    - Dst: mpd_qnew
      Src: /src/cpython/Modules/_decimal/_decimal.c:5858,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5867,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:5870,1
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:5871,1
    - Dst: mpd_qsset_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:5875,1
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:5876,1
    - Dst: mpd_qcopy
      Src: /src/cpython/Modules/_decimal/_decimal.c:5880,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5880,1
    - Dst: mpd_set_positive
      Src: /src/cpython/Modules/_decimal/_decimal.c:5884,1
    - Dst: mpd_qmul
      Src: /src/cpython/Modules/_decimal/_decimal.c:5890,1
    - Dst: mpd_qrem
      Src: /src/cpython/Modules/_decimal/_decimal.c:5891,1
    - Dst: mpd_qget_ssize
      Src: /src/cpython/Modules/_decimal/_decimal.c:5893,1
    - Dst: mpd_ispositive
      Src: /src/cpython/Modules/_decimal/_decimal.c:5894,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5894,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:5902,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:5910,1
    - Dst: mpd_del
      Src: /src/cpython/Modules/_decimal/_decimal.c:5911,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:5915,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyDecObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5918
      start: 5805
    functionDepth: 1
    functionLinenumber: 5805
    functionLinenumberEnd: 5918
    functionName: _dec_hash
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qrem
    - mpd_ispositive
    - MPD
    - PyErr_NoMemory
    - mpd_qpowmod
    - mpd_issnan
    - mpd_qget_ssize
    - mpd_set_positive
    - mpd_maxcontext
    - mpd_del
    - PyErr_SetString
    - mpd_qsset_ssize
    - mpd_qcopy
    - mpd_arith_sign
    - PyObject_GenericHash
    - mpd_isspecial
    - mpd_qmul
    - mpd_qnew
    - mpd_isnan
    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:5923,1
    - Dst: _dec_hash
      Src: /src/cpython/Modules/_decimal/_decimal.c:5925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5929
      start: 5920
    functionDepth: 2
    functionLinenumber: 5920
    functionLinenumberEnd: 5929
    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:5943,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_decimal/_decimal.c:5948,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:5949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5952
      start: 5937
    functionDepth: 3
    functionLinenumber: 5937
    functionLinenumberEnd: 5952
    functionName: _decimal_Decimal___reduce___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_BuildValue
    - Py_TYPE
    - dec_str
    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:5966,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:5966,1
    - Dst: mpd_isdynamic_data
      Src: /src/cpython/Modules/_decimal/_decimal.c:5967,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5967,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:5968,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:5970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5962
    functionDepth: 1
    functionLinenumber: 5962
    functionLinenumberEnd: 5971
    functionName: _decimal_Decimal___sizeof___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - MPD
    - _PyObject_SIZE
    - mpd_isdynamic_data
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___sizeof___impl(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:5985,1
    - Dst: CURRENT_CONTEXT
      Src: /src/cpython/Modules/_decimal/_decimal.c:5986,1
    - Dst: dec_as_long
      Src: /src/cpython/Modules/_decimal/_decimal.c:5987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5988
      start: 5979
    functionDepth: 4
    functionLinenumber: 5979
    functionLinenumberEnd: 5988
    functionName: _decimal_Decimal___trunc___impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CURRENT_CONTEXT
    - dec_as_long
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___trunc___impl(PyObject *self, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:5994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5995
      start: 5991
    functionDepth: 0
    functionLinenumber: 5991
    functionLinenumberEnd: 5995
    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:6002,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6002,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6003,1
    - Dst: _dec_settriple
      Src: /src/cpython/Modules/_decimal/_decimal.c:6008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6010
      start: 5997
    functionDepth: 2
    functionLinenumber: 5997
    functionLinenumberEnd: 6010
    functionName: dec_imag
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _dec_settriple
    - dec_alloc
    - Py_TYPE
    - get_module_state_by_def
    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: 6178
      start: 6167
    functionDepth: 0
    functionLinenumber: 6167
    functionLinenumberEnd: 6178
    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: 6193
      start: 6182
    functionDepth: 0
    functionLinenumber: 6182
    functionLinenumberEnd: 6193
    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: 6219
      start: 6198
    functionDepth: 0
    functionLinenumber: 6198
    functionLinenumberEnd: 6219
    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: 6248
      start: 6224
    functionDepth: 0
    functionLinenumber: 6224
    functionLinenumberEnd: 6248
    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: 6275
      start: 6255
    functionDepth: 0
    functionLinenumber: 6255
    functionLinenumberEnd: 6275
    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: 6306
      start: 6280
    functionDepth: 0
    functionLinenumber: 6280
    functionLinenumberEnd: 6306
    functionName: DecCtx_TernaryFunc
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DecCtx_TernaryFunc(MPDFUNC)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6683,1
    - Dst: get_module_state_from_ctx
      Src: /src/cpython/Modules/_decimal/_decimal.c:6684,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6688,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6694,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6695,1
    - Dst: mpd_qdivmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:6699,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6699,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6699,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6699,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6699,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:6699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6701,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:6702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6704,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/_decimal/_decimal.c:6708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - context
    - x
    - y
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6709
      start: 6675
    functionDepth: 3
    functionLinenumber: 6675
    functionLinenumberEnd: 6709
    functionName: _decimal_Context_divmod_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - dec_alloc
    - mpd_qdivmod
    - dec_addstatus
    - get_module_state_from_ctx
    - CTX
    - Py_DECREF
    - CONVERT_BINOP_RAISE
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_divmod_impl(PyObject *context, PyObject *x, PyObject *y)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6749,1
    - Dst: convert_op
      Src: /src/cpython/Modules/_decimal/_decimal.c:6752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6754,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:6759,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:6760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6763,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6764,1
    - Dst: mpd_qpow
      Src: /src/cpython/Modules/_decimal/_decimal.c:6769,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6769,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6769,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6769,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:6770,1
    - Dst: mpd_qpowmod
      Src: /src/cpython/Modules/_decimal/_decimal.c:6773,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6773,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6773,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6773,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6773,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:6774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6775,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6778,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:6779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - context
    - cls
    - base
    - exp
    - mod
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6785
      start: 6740
    functionDepth: 3
    functionLinenumber: 6740
    functionLinenumberEnd: 6785
    functionName: _decimal_Context_power_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - convert_op
    - MPD
    - mpd_qpowmod
    - dec_alloc
    - dec_addstatus
    - CTX
    - Py_XDECREF
    - Py_DECREF
    - mpd_qpow
    - CONVERT_BINOP_RAISE
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_power_impl(PyObject *context, PyTypeObject
      *cls,\n                            PyObject *base, PyObject *exp, PyObject *mod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:6823,1
    - Dst: _dec_mpd_radix
      Src: /src/cpython/Modules/_decimal/_decimal.c:6824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6825
      start: 6819
    functionDepth: 3
    functionLinenumber: 6819
    functionLinenumberEnd: 6825
    functionName: _decimal_Context_radix_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _dec_mpd_radix
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_radix_impl(PyObject *context, PyTypeObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:6953,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:6954,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:6955,1
    - Dst: mpd_iscanonical
      Src: /src/cpython/Modules/_decimal/_decimal.c:6960,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:6960,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:6960,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:6960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6961
      start: 6948
    functionDepth: 1
    functionLinenumber: 6948
    functionLinenumberEnd: 6961
    functionName: _decimal_Context_is_canonical_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyDec_Check
    - PyErr_SetString
    - incr_true
    - mpd_iscanonical
    - incr_false
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_is_canonical_impl(PyObject *context,
      PyTypeObject *cls,\n                                   PyObject *x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:6977,1
    - Dst: dec_apply
      Src: /src/cpython/Modules/_decimal/_decimal.c:6979,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:6980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6982
      start: 6970
    functionDepth: 4
    functionLinenumber: 6970
    functionLinenumberEnd: 6982
    functionName: _decimal_Context__apply_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - dec_apply
    - CONVERT_OP_RAISE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context__apply_impl(PyObject *context, PyTypeObject
      *cls,\n                             PyObject *x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Context__apply
      Src: /src/cpython/Modules/_decimal/_decimal.c:6996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6997
      start: 6991
    functionDepth: 1
    functionLinenumber: 6991
    functionLinenumberEnd: 6997
    functionName: _decimal_Context_apply_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _decimal_Context__apply
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_apply_impl(PyObject *context, PyTypeObject
      *cls,\n                            PyObject *x)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:7011,1
    - Dst: PyDec_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:7012,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7013,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7019
      start: 7006
    functionDepth: 1
    functionLinenumber: 7006
    functionLinenumberEnd: 7019
    functionName: _decimal_Context_canonical_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_Check
    - PyErr_SetString
    - Py_NewRef
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_canonical_impl(PyObject *context, PyTypeObject
      *cls,\n                                PyObject *x)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7035,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:7036,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:7037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7039,1
    - Dst: mpd_qcopy_abs
      Src: /src/cpython/Modules/_decimal/_decimal.c:7043,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7043,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7044,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:7045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7051
      start: 7027
    functionDepth: 3
    functionLinenumber: 7027
    functionLinenumberEnd: 7051
    functionName: _decimal_Context_copy_abs_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - CONVERT_OP_RAISE
    - dec_alloc
    - dec_addstatus
    - Py_DECREF
    - mpd_qcopy_abs
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_copy_abs_impl(PyObject *context, PyTypeObject
      *cls,\n                               PyObject *x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7068
      start: 7059
    functionDepth: 1
    functionLinenumber: 7059
    functionLinenumberEnd: 7068
    functionName: _decimal_Context_copy_decimal_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CONVERT_OP_RAISE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_copy_decimal_impl(PyObject *context,
      PyTypeObject *cls,\n                                   PyObject *x)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7084,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:7085,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:7086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7088,1
    - Dst: mpd_qcopy_negate
      Src: /src/cpython/Modules/_decimal/_decimal.c:7092,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7092,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7093,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:7094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7100
      start: 7076
    functionDepth: 3
    functionLinenumber: 7076
    functionLinenumberEnd: 7100
    functionName: _decimal_Context_copy_negate_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - CONVERT_OP_RAISE
    - dec_alloc
    - mpd_qcopy_negate
    - dec_addstatus
    - Py_DECREF
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_copy_negate_impl(PyObject *context, PyTypeObject
      *cls,\n                                  PyObject *x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7152,1
    - Dst: mpd_class
      Src: /src/cpython/Modules/_decimal/_decimal.c:7154,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7154,1
    - Dst: CTX
      Src: /src/cpython/Modules/_decimal/_decimal.c:7154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7155,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7158
      start: 7144
    functionDepth: 1
    functionLinenumber: 7144
    functionLinenumberEnd: 7158
    functionName: _decimal_Context_number_class_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyUnicode_FromString
    - CONVERT_OP_RAISE
    - mpd_class
    - CTX
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_number_class_impl(PyObject *context,
      PyTypeObject *cls,\n                                   PyObject *x)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7176,1
    - Dst: mpd_to_sci_size
      Src: /src/cpython/Modules/_decimal/_decimal.c:7178,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7178,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:7178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7179,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:7181,1
    - Dst: unicode_fromascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:7185,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:7186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7189
      start: 7166
    functionDepth: 2
    functionLinenumber: 7166
    functionLinenumberEnd: 7189
    functionName: _decimal_Context_to_sci_string_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - CONVERT_OP_RAISE
    - PyErr_NoMemory
    - unicode_fromascii
    - mpd_free
    - CtxCaps
    - Py_DECREF
    - mpd_to_sci_size
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_to_sci_string_impl(PyObject *context,
      PyTypeObject *cls,\n                                    PyObject *x)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7207,1
    - Dst: mpd_to_eng_size
      Src: /src/cpython/Modules/_decimal/_decimal.c:7209,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7209,1
    - Dst: CtxCaps
      Src: /src/cpython/Modules/_decimal/_decimal.c:7209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7210,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_decimal/_decimal.c:7212,1
    - Dst: unicode_fromascii
      Src: /src/cpython/Modules/_decimal/_decimal.c:7216,1
    - Dst: mpd_free
      Src: /src/cpython/Modules/_decimal/_decimal.c:7217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - context
    - cls
    - x
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7220
      start: 7197
    functionDepth: 2
    functionLinenumber: 7197
    functionLinenumberEnd: 7220
    functionName: _decimal_Context_to_eng_string_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - CONVERT_OP_RAISE
    - PyErr_NoMemory
    - unicode_fromascii
    - mpd_free
    - mpd_to_eng_size
    - CtxCaps
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_to_eng_string_impl(PyObject *context,
      PyTypeObject *cls,\n                                    PyObject *x)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7269,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/_decimal/_decimal.c:7270,1
    - Dst: dec_alloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:7271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7273,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7274,1
    - Dst: mpd_qcopy_sign
      Src: /src/cpython/Modules/_decimal/_decimal.c:7278,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7278,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7278,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7280,1
    - Dst: dec_addstatus
      Src: /src/cpython/Modules/_decimal/_decimal.c:7281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - context
    - cls
    - x
    - y
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7287
      start: 7260
    functionDepth: 3
    functionLinenumber: 7260
    functionLinenumberEnd: 7287
    functionName: _decimal_Context_copy_sign_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - dec_alloc
    - dec_addstatus
    - Py_DECREF
    - mpd_qcopy_sign
    - CONVERT_BINOP_RAISE
    - PyType_GetModuleState
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_copy_sign_impl(PyObject *context, PyTypeObject
      *cls,\n                                PyObject *x, PyObject *y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7440,1
    - Dst: mpd_same_quantum
      Src: /src/cpython/Modules/_decimal/_decimal.c:7442,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7442,1
    - Dst: MPD
      Src: /src/cpython/Modules/_decimal/_decimal.c:7442,1
    - Dst: incr_true
      Src: /src/cpython/Modules/_decimal/_decimal.c:7442,1
    - Dst: incr_false
      Src: /src/cpython/Modules/_decimal/_decimal.c:7442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - context
    - cls
    - x
    - y
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7447
      start: 7432
    functionDepth: 1
    functionLinenumber: 7432
    functionLinenumberEnd: 7447
    functionName: _decimal_Context_same_quantum_impl
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - incr_true
    - incr_false
    - Py_DECREF
    - CONVERT_BINOP_RAISE
    - mpd_same_quantum
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_decimal_Context_same_quantum_impl(PyObject *context,
      PyTypeObject *cls,\n                                   PyObject *x, PyObject
      *y)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Modules/_decimal/_decimal.c:7581,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:7585,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Modules/_decimal/_decimal.c:7585,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Modules/_decimal/_decimal.c:7586,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7591,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:7594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7596
      start: 7577
    functionDepth: 1
    functionLinenumber: 7577
    functionLinenumberEnd: 7596
    functionName: decimal_getattr
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_WarnEx
    - PyUnicode_Check
    - PyUnicode_EqualToUTF8
    - PyErr_Format
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decimal_getattr(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: 7653
      start: 7651
    functionDepth: 0
    functionLinenumber: 7651
    functionLinenumberEnd: 7653
    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: 7655
      start: 7653
    functionDepth: 0
    functionLinenumber: 7653
    functionLinenumberEnd: 7655
    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: 7657
      start: 7655
    functionDepth: 0
    functionLinenumber: 7655
    functionLinenumberEnd: 7657
    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:7669,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_decimal/_decimal.c:7678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7681
      start: 7659
    functionDepth: 1
    functionLinenumber: 7659
    functionLinenumberEnd: 7681
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: mpd_setminalloc
      Src: /src/cpython/Modules/_decimal/_decimal.c:7709,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/_decimal/_decimal.c:7713,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7720,1
    - Dst: cfunc_noargs
      Src: /src/cpython/Modules/_decimal/_decimal.c:7721,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7722,1
    - Dst: cfunc_noargs
      Src: /src/cpython/Modules/_decimal/_decimal.c:7723,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7732,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7733,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7734,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_decimal/_decimal.c:7735,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7739,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7739,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7740,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7740,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7741,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7741,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7743,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7747,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:7747,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7748,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7748,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7750,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_decimal/_decimal.c:7750,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7752,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7754,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7754,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7756,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7757,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7760,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:7760,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7761,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_decimal/_decimal.c:7761,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_decimal/_decimal.c:7764,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7765,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7769,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7770,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7770,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7771,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7771,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7772,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7775,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_decimal/_decimal.c:7775,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7776,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7776,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7779,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_decimal/_decimal.c:7780,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7786,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7787,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7788,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7794,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_decimal/_decimal.c:7794,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7795,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_decimal/_decimal.c:7795,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7796,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_decimal/_decimal.c:7796,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7799,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_decimal/_decimal.c:7799,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7802,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_decimal/_decimal.c:7802,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7805,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:7805,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7808,1
    - Dst: dec_cond_map_init
      Src: /src/cpython/Modules/_decimal/_decimal.c:7808,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_decimal/_decimal.c:7817,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_decimal/_decimal.c:7820,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_decimal/_decimal.c:7824,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7828,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7833,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7841,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_decimal/_decimal.c:7841,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7842,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7845,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7845,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_decimal/_decimal.c:7848,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7848,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7856,1
    - Dst: dec_cond_map_init
      Src: /src/cpython/Modules/_decimal/_decimal.c:7856,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Modules/_decimal/_decimal.c:7864,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_decimal/_decimal.c:7867,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7873,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_decimal/_decimal.c:7873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:7874,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7876,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7876,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7881,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:7882,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7883,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7883,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7887,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7888,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7889,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7889,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7891,1
    - Dst: PyContextVar_New
      Src: /src/cpython/Modules/_decimal/_decimal.c:7891,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7892,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7892,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7894,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7894,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7897,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:7898,1
    - Dst: init_basic_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:7899,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7900,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7900,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7904,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Modules/_decimal/_decimal.c:7905,1
    - Dst: init_extended_context
      Src: /src/cpython/Modules/_decimal/_decimal.c:7906,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7907,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7907,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7913,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_decimal/_decimal.c:7913,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_decimal/_decimal.c:7914,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7919,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_decimal/_decimal.c:7919,1
    - Dst: ASSIGN_PTR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7925,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/_decimal/_decimal.c:7925,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7926,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_decimal/_decimal.c:7926,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7930,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_decimal/_decimal.c:7930,1
    - Dst: CHECK_INT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7931,1
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_decimal/_decimal.c:7931,1
    - Dst: mpd_version
      Src: /src/cpython/Modules/_decimal/_decimal.c:7931,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7936,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7937,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7938,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7939,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7940,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7941,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 135
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7944
      start: 7685
    functionDepth: 2
    functionLinenumber: 7685
    functionLinenumberEnd: 7944
    functionName: _decimal_exec
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyContextVar_New
    - ASSIGN_PTR
    - PyImport_ImportModule
    - PyType_Check
    - PyModule_Add
    - PyModule_AddObjectRef
    - PyErr_NewException
    - get_module_state
    - PyUnicode_FromString
    - CREATE_TYPE
    - PyDict_SetItemString
    - PyLong_FromSsize_t
    - PyModule_AddType
    - PyErr_SetString
    - dec_cond_map_init
    - _PyTuple_FromPair
    - PyObject_CallFunction
    - PyObject_CallObject
    - mpd_setminalloc
    - PyTuple_SET_ITEM
    - init_extended_context
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    - PyModule_AddIntConstant
    - PyUnicode_InternFromString
    - cfunc_noargs
    - CHECK_INT
    - PyModule_AddStringConstant
    - Py_CLEAR
    - init_basic_context
    - PyTuple_Pack
    - PyObject_GetAttrString
    - mpd_version
    - PyObject_CallMethod
    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: 7731
      start: 7727
    functionDepth: 0
    functionLinenumber: 7727
    functionLinenumberEnd: 7731
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 7
    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:7949,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7950,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7951,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7952,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7953,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7954,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7955,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7956,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7959,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7960,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7962,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7965,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7966,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7967,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7968,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7969,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7973,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_decimal/_decimal.c:7978,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7982
      start: 7946
    functionDepth: 1
    functionLinenumber: 7946
    functionLinenumberEnd: 7982
    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:7987,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7988,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7989,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7990,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7991,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7992,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7993,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7994,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7997,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:7998,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:8000,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:8003,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:8004,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:8005,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:8006,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:8007,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_decimal/_decimal.c:8008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:8012,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:8014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/_decimal.c:8021,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_decimal/_decimal.c:8023,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8027
      start: 7984
    functionDepth: 1
    functionLinenumber: 7984
    functionLinenumberEnd: 8027
    functionName: decimal_clear
    functionSourceFile: /src/cpython/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_module_state
    - PyMem_Free
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int decimal_clear(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decimal_clear
      Src: /src/cpython/Modules/_decimal/_decimal.c:8032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8033
      start: 8029
    functionDepth: 2
    functionLinenumber: 8029
    functionLinenumberEnd: 8033
    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:8058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8059
      start: 8055
    functionDepth: 1
    functionLinenumber: 8055
    functionLinenumberEnd: 8059
    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:75,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:77,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:78,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:80,1
    - Dst: _decimal_Context__unsafe_setprec_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: _decimal_Context__unsafe_setprec
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context__unsafe_setprec_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context__unsafe_setprec(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:114,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:117,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:119,1
    - Dst: _decimal_Context__unsafe_setemin_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: _decimal_Context__unsafe_setemin
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyNumber_Index
    - _decimal_Context__unsafe_setemin_impl
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context__unsafe_setemin(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:153,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:156,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:158,1
    - Dst: _decimal_Context__unsafe_setemax_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 167
    functionName: _decimal_Context__unsafe_setemax
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context__unsafe_setemax_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context__unsafe_setemax(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Context_clear_traps_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.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: 2
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: _decimal_Context_clear_traps
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_clear_traps_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_clear_traps(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Context_clear_flags_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.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: 2
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: _decimal_Context_clear_flags
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_clear_flags_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_clear_flags(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:242,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:244,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:244,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:262,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:263,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:273,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:273,1
    - Dst: context_init_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:325,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 329
    functionName: context_init
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - context_init_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int context_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:354,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:357,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:359,1
    - Dst: _decimal_IEEEContext_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 368
    functionName: _decimal_IEEEContext
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyNumber_Index
    - _decimal_IEEEContext_impl
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_IEEEContext(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:385,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:386,1
    - Dst: _decimal_Context_copy_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:389,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: 390
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: _decimal_Context_copy
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_copy_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_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/_decimal/clinic/_decimal.c.h:406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:407,1
    - Dst: _decimal_Context___copy___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:410,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: 411
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 411
    functionName: _decimal_Context___copy__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _decimal_Context___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context___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/_decimal/clinic/_decimal.c.h:427,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:428,1
    - Dst: _decimal_Context___reduce___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:431,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: 432
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 432
    functionName: _decimal_Context___reduce__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _decimal_Context___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context___reduce__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_getcontext_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.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: 3
    functionLinenumber: 446
    functionLinenumberEnd: 450
    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:494,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:496,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:513,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:524,1
    - Dst: _decimal_localcontext_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:586,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: 590
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 590
    functionName: _decimal_localcontext
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_localcontext_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_localcontext(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:637,1
    - Dst: _decimal_Decimal_from_float_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:643,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: 647
      start: 617
    functionDepth: 6
    functionLinenumber: 617
    functionLinenumberEnd: 647
    functionName: _decimal_Decimal_from_float
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_from_float_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_from_float(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:689,1
    - Dst: _decimal_Decimal_from_number_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:695,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: 699
      start: 669
    functionDepth: 7
    functionLinenumber: 669
    functionLinenumberEnd: 699
    functionName: _decimal_Decimal_from_number
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_from_number_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_from_number(PyObject *type, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:738,1
    - Dst: _decimal_Context_create_decimal_from_float_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 748
    functionName: _decimal_Context_create_decimal_from_float
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_create_decimal_from_float_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_create_decimal_from_float(PyObject *context, PyTypeObject *cls,
      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:777,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:779,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:779,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:797,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:798,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:802,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:802,1
    - Dst: dec_new_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:818,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 764
    functionDepth: 7
    functionLinenumber: 764
    functionLinenumberEnd: 822
    functionName: dec_new
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - dec_new_impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:845,1
    - Dst: _decimal_Context_create_decimal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 839
    functionDepth: 6
    functionLinenumber: 839
    functionLinenumberEnd: 857
    functionName: _decimal_Context_create_decimal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_create_decimal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_create_decimal(PyObject *context, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:893,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:898,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:899,1
    - Dst: _decimal_Decimal___format___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:908,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - dec
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 872
    functionDepth: 5
    functionLinenumber: 872
    functionLinenumberEnd: 912
    functionName: _decimal_Decimal___format__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___format___impl
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___format__(PyObject *dec, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:932,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:933,1
    - Dst: _decimal_Decimal_as_integer_ratio_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:936,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: 937
      start: 929
    functionDepth: 5
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: _decimal_Decimal_as_integer_ratio
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_as_integer_ratio_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_as_integer_ratio(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/_decimal/clinic/_decimal.c.h:970,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:972,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:972,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:989,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:993,1
    - Dst: _decimal_Decimal_to_integral_value_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1009,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: 1013
      start: 957
    functionDepth: 4
    functionLinenumber: 957
    functionLinenumberEnd: 1013
    functionName: _decimal_Decimal_to_integral_value
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyTuple_GET_SIZE
    - _decimal_Decimal_to_integral_value_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_integral_value(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/_decimal/clinic/_decimal.c.h:1044,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1046,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1046,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1063,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1067,1
    - Dst: _decimal_Decimal_to_integral_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1083,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: 1087
      start: 1031
    functionDepth: 5
    functionLinenumber: 1031
    functionLinenumberEnd: 1087
    functionName: _decimal_Decimal_to_integral
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_to_integral_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_integral(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/_decimal/clinic/_decimal.c.h:1121,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1123,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1123,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1140,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1144,1
    - Dst: _decimal_Decimal_to_integral_exact_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1160,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: 1164
      start: 1108
    functionDepth: 4
    functionLinenumber: 1108
    functionLinenumberEnd: 1164
    functionName: _decimal_Decimal_to_integral_exact
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_to_integral_exact_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_integral_exact(PyObject *self, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1199,1
    - Dst: _decimal_Decimal___round___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1209,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: 1213
      start: 1179
    functionDepth: 5
    functionLinenumber: 1179
    functionLinenumberEnd: 1213
    functionName: _decimal_Decimal___round__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Decimal___round___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___round__(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/_decimal/clinic/_decimal.c.h:1230,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1231,1
    - Dst: _decimal_Decimal_as_tuple_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1234,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: 1235
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1235
    functionName: _decimal_Decimal_as_tuple
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _decimal_Decimal_as_tuple_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_as_tuple(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/_decimal/clinic/_decimal.c.h:1266,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1268,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1285,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1288,1
    - Dst: _decimal_Decimal_exp_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1298,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: 1302
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1302
    functionName: _decimal_Decimal_exp
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_exp_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_exp(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/_decimal/clinic/_decimal.c.h:1333,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1335,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1352,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1355,1
    - Dst: _decimal_Decimal_ln_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1365,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: 1369
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1369
    functionName: _decimal_Decimal_ln
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_ln_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_ln(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/_decimal/clinic/_decimal.c.h:1400,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1402,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1419,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1422,1
    - Dst: _decimal_Decimal_log10_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1432,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: 1436
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1436
    functionName: _decimal_Decimal_log10
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_log10_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_log10(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/_decimal/clinic/_decimal.c.h:1464,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1466,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1483,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1486,1
    - Dst: _decimal_Decimal_next_minus_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1496,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: 1500
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1500
    functionName: _decimal_Decimal_next_minus
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_next_minus_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_next_minus(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/_decimal/clinic/_decimal.c.h:1528,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1530,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1547,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1550,1
    - Dst: _decimal_Decimal_next_plus_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1560,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: 1564
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1564
    functionName: _decimal_Decimal_next_plus
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_next_plus_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_next_plus(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/_decimal/clinic/_decimal.c.h:1597,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1599,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1616,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1619,1
    - Dst: _decimal_Decimal_normalize_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1629,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: 1633
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1633
    functionName: _decimal_Decimal_normalize
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _decimal_Decimal_normalize_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_normalize(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/_decimal/clinic/_decimal.c.h:1664,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1666,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1683,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1686,1
    - Dst: _decimal_Decimal_sqrt_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1696,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: 1700
      start: 1651
    functionDepth: 1
    functionLinenumber: 1651
    functionLinenumberEnd: 1700
    functionName: _decimal_Decimal_sqrt
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _decimal_Decimal_sqrt_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_sqrt(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/_decimal/clinic/_decimal.c.h:1735,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1737,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1737,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1754,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1758,1
    - Dst: _decimal_Decimal_compare_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1769,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: 1773
      start: 1722
    functionDepth: 1
    functionLinenumber: 1722
    functionLinenumberEnd: 1773
    functionName: _decimal_Decimal_compare
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _decimal_Decimal_compare_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_compare(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/_decimal/clinic/_decimal.c.h:1801,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1803,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1803,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1820,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1824,1
    - Dst: _decimal_Decimal_compare_signal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1835,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: 1839
      start: 1788
    functionDepth: 1
    functionLinenumber: 1788
    functionLinenumberEnd: 1839
    functionName: _decimal_Decimal_compare_signal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_compare_signal_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_compare_signal(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/_decimal/clinic/_decimal.c.h:1870,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1872,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1872,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1889,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1893,1
    - Dst: _decimal_Decimal_max_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1904,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: 1908
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1908
    functionName: _decimal_Decimal_max
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_max_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_max(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/_decimal/clinic/_decimal.c.h:1936,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1938,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1938,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1955,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1959,1
    - Dst: _decimal_Decimal_max_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:1970,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: 1974
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1974
    functionName: _decimal_Decimal_max_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_max_mag_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_max_mag(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/_decimal/clinic/_decimal.c.h:2005,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2007,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2007,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2024,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2028,1
    - Dst: _decimal_Decimal_min_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2039,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: 2043
      start: 1992
    functionDepth: 1
    functionLinenumber: 1992
    functionLinenumberEnd: 2043
    functionName: _decimal_Decimal_min
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_min_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_min(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/_decimal/clinic/_decimal.c.h:2071,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2073,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2073,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2090,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2094,1
    - Dst: _decimal_Decimal_min_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2105,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: 2109
      start: 2058
    functionDepth: 1
    functionLinenumber: 2058
    functionLinenumberEnd: 2109
    functionName: _decimal_Decimal_min_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_min_mag_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_min_mag(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/_decimal/clinic/_decimal.c.h:2142,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2144,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2144,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2161,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2165,1
    - Dst: _decimal_Decimal_next_toward_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2176,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: 2180
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2180
    functionName: _decimal_Decimal_next_toward
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_next_toward_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_next_toward(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/_decimal/clinic/_decimal.c.h:2216,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2218,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2218,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2235,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2239,1
    - Dst: _decimal_Decimal_remainder_near_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2250,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: 2254
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2254
    functionName: _decimal_Decimal_remainder_near
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_remainder_near_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_remainder_near(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/_decimal/clinic/_decimal.c.h:2288,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2290,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2290,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2290,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2307,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2312,1
    - Dst: _decimal_Decimal_fma_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2324,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: 2328
      start: 2275
    functionDepth: 1
    functionLinenumber: 2275
    functionLinenumberEnd: 2328
    functionName: _decimal_Decimal_fma
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_fma_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_fma(PyObject *self, PyTypeObject *cls, 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:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2345
    functionDepth: 0
    functionLinenumber: 2345
    functionLinenumberEnd: 2349
    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:2366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2363
    functionDepth: 0
    functionLinenumber: 2363
    functionLinenumberEnd: 2367
    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:2384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2381
    functionDepth: 0
    functionLinenumber: 2381
    functionLinenumberEnd: 2385
    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:2402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2399
    functionDepth: 0
    functionLinenumber: 2399
    functionLinenumberEnd: 2403
    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:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2417
    functionDepth: 0
    functionLinenumber: 2417
    functionLinenumberEnd: 2421
    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:2438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2435
    functionDepth: 0
    functionLinenumber: 2435
    functionLinenumberEnd: 2439
    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:2458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2459
    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:2476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2473
    functionDepth: 0
    functionLinenumber: 2473
    functionLinenumberEnd: 2477
    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:2507,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2509,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2526,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2529,1
    - Dst: _decimal_Decimal_is_normal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2539,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: 2543
      start: 2494
    functionDepth: 1
    functionLinenumber: 2494
    functionLinenumberEnd: 2543
    functionName: _decimal_Decimal_is_normal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_is_normal_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_normal(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/_decimal/clinic/_decimal.c.h:2574,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2576,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2593,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2596,1
    - Dst: _decimal_Decimal_is_subnormal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2606,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: 2610
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2610
    functionName: _decimal_Decimal_is_subnormal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_is_subnormal_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_is_subnormal(PyObject *self, PyTypeObject *cls, 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:2627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2624
    functionDepth: 2
    functionLinenumber: 2624
    functionLinenumberEnd: 2628
    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:2648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2645
    functionDepth: 1
    functionLinenumber: 2645
    functionLinenumberEnd: 2649
    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:2666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2663
    functionDepth: 1
    functionLinenumber: 2663
    functionLinenumberEnd: 2667
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2687,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2688,1
    - Dst: _decimal_Decimal_radix_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2691,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: 2692
      start: 2684
    functionDepth: 4
    functionLinenumber: 2684
    functionLinenumberEnd: 2692
    functionName: _decimal_Decimal_radix
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_radix_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_radix(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/_decimal/clinic/_decimal.c.h:2712,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2713,1
    - Dst: _decimal_Decimal_copy_abs_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2716,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: 2717
      start: 2709
    functionDepth: 2
    functionLinenumber: 2709
    functionLinenumberEnd: 2717
    functionName: _decimal_Decimal_copy_abs
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _decimal_Decimal_copy_abs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_abs(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/_decimal/clinic/_decimal.c.h:2737,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2738,1
    - Dst: _decimal_Decimal_copy_negate_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2741,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: 2742
      start: 2734
    functionDepth: 2
    functionLinenumber: 2734
    functionLinenumberEnd: 2742
    functionName: _decimal_Decimal_copy_negate
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _decimal_Decimal_copy_negate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_negate(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/_decimal/clinic/_decimal.c.h:2772,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2774,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2791,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2794,1
    - Dst: _decimal_Decimal_logical_invert_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2804,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: 2808
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2808
    functionName: _decimal_Decimal_logical_invert
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_logical_invert_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logical_invert(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/_decimal/clinic/_decimal.c.h:2840,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2842,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2859,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2862,1
    - Dst: _decimal_Decimal_logb_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2872,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: 2876
      start: 2827
    functionDepth: 1
    functionLinenumber: 2827
    functionLinenumberEnd: 2876
    functionName: _decimal_Decimal_logb
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_logb_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logb(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/_decimal/clinic/_decimal.c.h:2922,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2924,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2941,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2944,1
    - Dst: _decimal_Decimal_number_class_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2954,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: 2958
      start: 2909
    functionDepth: 2
    functionLinenumber: 2909
    functionLinenumberEnd: 2958
    functionName: _decimal_Decimal_number_class
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_number_class_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_number_class(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/_decimal/clinic/_decimal.c.h:2994,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:2996,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3013,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3016,1
    - Dst: _decimal_Decimal_to_eng_string_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3026,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: 3030
      start: 2981
    functionDepth: 3
    functionLinenumber: 2981
    functionLinenumberEnd: 3030
    functionName: _decimal_Decimal_to_eng_string
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_to_eng_string_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_to_eng_string(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/_decimal/clinic/_decimal.c.h:3078,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3080,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3080,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3097,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3101,1
    - Dst: _decimal_Decimal_compare_total_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3112,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: 3116
      start: 3065
    functionDepth: 1
    functionLinenumber: 3065
    functionLinenumberEnd: 3116
    functionName: _decimal_Decimal_compare_total
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_compare_total_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_compare_total(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/_decimal/clinic/_decimal.c.h:3152,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3154,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3171,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3175,1
    - Dst: _decimal_Decimal_compare_total_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3186,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: 3190
      start: 3139
    functionDepth: 1
    functionLinenumber: 3139
    functionLinenumberEnd: 3190
    functionName: _decimal_Decimal_compare_total_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _decimal_Decimal_compare_total_mag_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_compare_total_mag(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/_decimal/clinic/_decimal.c.h:3228,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3230,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3230,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3247,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3251,1
    - Dst: _decimal_Decimal_copy_sign_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3262,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: 3266
      start: 3215
    functionDepth: 4
    functionLinenumber: 3215
    functionLinenumberEnd: 3266
    functionName: _decimal_Decimal_copy_sign
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _decimal_Decimal_copy_sign_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_copy_sign(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/_decimal/clinic/_decimal.c.h:3299,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3301,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3301,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3318,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3322,1
    - Dst: _decimal_Decimal_same_quantum_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3333,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: 3337
      start: 3286
    functionDepth: 2
    functionLinenumber: 3286
    functionLinenumberEnd: 3337
    functionName: _decimal_Decimal_same_quantum
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_same_quantum_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_same_quantum(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/_decimal/clinic/_decimal.c.h:3367,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3369,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3369,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3386,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3390,1
    - Dst: _decimal_Decimal_logical_and_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3401,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: 3405
      start: 3354
    functionDepth: 1
    functionLinenumber: 3354
    functionLinenumberEnd: 3405
    functionName: _decimal_Decimal_logical_and
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _decimal_Decimal_logical_and_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logical_and(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/_decimal/clinic/_decimal.c.h:3435,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3437,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3437,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3454,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3458,1
    - Dst: _decimal_Decimal_logical_or_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3469,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: 3473
      start: 3422
    functionDepth: 1
    functionLinenumber: 3422
    functionLinenumberEnd: 3473
    functionName: _decimal_Decimal_logical_or
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_logical_or_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logical_or(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/_decimal/clinic/_decimal.c.h:3503,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3505,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3505,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3522,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3526,1
    - Dst: _decimal_Decimal_logical_xor_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3537,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: 3541
      start: 3490
    functionDepth: 1
    functionLinenumber: 3490
    functionLinenumberEnd: 3541
    functionName: _decimal_Decimal_logical_xor
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_logical_xor_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_logical_xor(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/_decimal/clinic/_decimal.c.h:3577,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3579,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3579,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3596,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3600,1
    - Dst: _decimal_Decimal_rotate_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3611,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: 3615
      start: 3564
    functionDepth: 1
    functionLinenumber: 3564
    functionLinenumberEnd: 3615
    functionName: _decimal_Decimal_rotate
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal_rotate_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_rotate(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/_decimal/clinic/_decimal.c.h:3646,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3648,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3648,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3665,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3669,1
    - Dst: _decimal_Decimal_scaleb_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3680,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: 3684
      start: 3633
    functionDepth: 1
    functionLinenumber: 3633
    functionLinenumberEnd: 3684
    functionName: _decimal_Decimal_scaleb
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_ID
    - PyTuple_GET_SIZE
    - _decimal_Decimal_scaleb_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_scaleb(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/_decimal/clinic/_decimal.c.h:3719,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3721,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3721,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3738,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3742,1
    - Dst: _decimal_Decimal_shift_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3753,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: 3757
      start: 3706
    functionDepth: 1
    functionLinenumber: 3706
    functionLinenumberEnd: 3757
    functionName: _decimal_Decimal_shift
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_shift_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_shift(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/_decimal/clinic/_decimal.c.h:3807,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3809,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3809,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3809,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3826,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3831,1
    - Dst: _decimal_Decimal_quantize_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3848,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: 3852
      start: 3794
    functionDepth: 4
    functionLinenumber: 3794
    functionLinenumberEnd: 3852
    functionName: _decimal_Decimal_quantize
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _decimal_Decimal_quantize_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal_quantize(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/_decimal/clinic/_decimal.c.h:3869,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3870,1
    - Dst: _decimal_Decimal___ceil___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3873,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: 3874
      start: 3866
    functionDepth: 5
    functionLinenumber: 3866
    functionLinenumberEnd: 3874
    functionName: _decimal_Decimal___ceil__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _decimal_Decimal___ceil___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___ceil__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___complex___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3888
    functionDepth: 5
    functionLinenumber: 3888
    functionLinenumberEnd: 3892
    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:3908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3905
    functionDepth: 1
    functionLinenumber: 3905
    functionLinenumberEnd: 3909
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3934,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3935,1
    - Dst: _decimal_Decimal___floor___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3938,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: 3939
      start: 3931
    functionDepth: 5
    functionLinenumber: 3931
    functionLinenumberEnd: 3939
    functionName: _decimal_Decimal___floor__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Decimal___floor___impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___floor__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _decimal_Decimal___reduce___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3957
      start: 3953
    functionDepth: 4
    functionLinenumber: 3953
    functionLinenumberEnd: 3957
    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:3974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3975
      start: 3971
    functionDepth: 2
    functionLinenumber: 3971
    functionLinenumberEnd: 3975
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3992,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3993,1
    - Dst: _decimal_Decimal___trunc___impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:3996,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: 3997
      start: 3989
    functionDepth: 5
    functionLinenumber: 3989
    functionLinenumberEnd: 3997
    functionName: _decimal_Decimal___trunc__
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _decimal_Decimal___trunc___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Decimal___trunc__(PyObject *self, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4031,1
    - Dst: _decimal_Context_abs_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4041
      start: 4011
    functionDepth: 0
    functionLinenumber: 4011
    functionLinenumberEnd: 4041
    functionName: _decimal_Context_abs
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_abs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_abs(PyObject *context, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4075,1
    - Dst: _decimal_Context_exp_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4055
    functionDepth: 0
    functionLinenumber: 4055
    functionLinenumberEnd: 4085
    functionName: _decimal_Context_exp
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_exp_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_exp(PyObject *context, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4119,1
    - Dst: _decimal_Context_ln_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4129
      start: 4099
    functionDepth: 0
    functionLinenumber: 4099
    functionLinenumberEnd: 4129
    functionName: _decimal_Context_ln
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_ln_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_ln(PyObject *context, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4164,1
    - Dst: _decimal_Context_log10_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4174
      start: 4144
    functionDepth: 0
    functionLinenumber: 4144
    functionLinenumberEnd: 4174
    functionName: _decimal_Context_log10
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_log10_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_log10(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4211,1
    - Dst: _decimal_Context_minus_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4221
      start: 4191
    functionDepth: 0
    functionLinenumber: 4191
    functionLinenumberEnd: 4221
    functionName: _decimal_Context_minus
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_minus_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_minus(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4256,1
    - Dst: _decimal_Context_next_minus_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4236
    functionDepth: 0
    functionLinenumber: 4236
    functionLinenumberEnd: 4266
    functionName: _decimal_Context_next_minus
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_next_minus_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_next_minus(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4301,1
    - Dst: _decimal_Context_next_plus_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4281
    functionDepth: 0
    functionLinenumber: 4281
    functionLinenumberEnd: 4311
    functionName: _decimal_Context_next_plus
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_next_plus_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_next_plus(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4346,1
    - Dst: _decimal_Context_normalize_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4356
      start: 4326
    functionDepth: 0
    functionLinenumber: 4326
    functionLinenumberEnd: 4356
    functionName: _decimal_Context_normalize
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_normalize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_normalize(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4392,1
    - Dst: _decimal_Context_plus_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4372
    functionDepth: 0
    functionLinenumber: 4372
    functionLinenumberEnd: 4402
    functionName: _decimal_Context_plus
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_plus_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_plus(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4437,1
    - Dst: _decimal_Context_to_integral_value_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4447
      start: 4417
    functionDepth: 0
    functionLinenumber: 4417
    functionLinenumberEnd: 4447
    functionName: _decimal_Context_to_integral_value
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_to_integral_value_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_to_integral_value(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4482,1
    - Dst: _decimal_Context_to_integral_exact_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4462
    functionDepth: 0
    functionLinenumber: 4462
    functionLinenumberEnd: 4492
    functionName: _decimal_Context_to_integral_exact
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_to_integral_exact_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_to_integral_exact(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4527,1
    - Dst: _decimal_Context_to_integral_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4537
      start: 4507
    functionDepth: 0
    functionLinenumber: 4507
    functionLinenumberEnd: 4537
    functionName: _decimal_Context_to_integral
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_to_integral_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_to_integral(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4571,1
    - Dst: _decimal_Context_sqrt_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4581
      start: 4551
    functionDepth: 0
    functionLinenumber: 4551
    functionLinenumberEnd: 4581
    functionName: _decimal_Context_sqrt
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_sqrt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_sqrt(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4617,1
    - Dst: _decimal_Context_add_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4628
      start: 4596
    functionDepth: 0
    functionLinenumber: 4596
    functionLinenumberEnd: 4628
    functionName: _decimal_Context_add
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_add_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_add(PyObject *context, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4664,1
    - Dst: _decimal_Context_compare_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4643
    functionDepth: 0
    functionLinenumber: 4643
    functionLinenumberEnd: 4675
    functionName: _decimal_Context_compare
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_compare_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_compare(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4711,1
    - Dst: _decimal_Context_compare_signal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4722
      start: 4690
    functionDepth: 0
    functionLinenumber: 4690
    functionLinenumberEnd: 4722
    functionName: _decimal_Context_compare_signal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_compare_signal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_compare_signal(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4758,1
    - Dst: _decimal_Context_divide_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4769
      start: 4737
    functionDepth: 0
    functionLinenumber: 4737
    functionLinenumberEnd: 4769
    functionName: _decimal_Context_divide
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_divide_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_divide(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4805,1
    - Dst: _decimal_Context_divide_int_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4816
      start: 4784
    functionDepth: 0
    functionLinenumber: 4784
    functionLinenumberEnd: 4816
    functionName: _decimal_Context_divide_int
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_divide_int_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_divide_int(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4852,1
    - Dst: _decimal_Context_max_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4859,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4863
      start: 4831
    functionDepth: 0
    functionLinenumber: 4831
    functionLinenumberEnd: 4863
    functionName: _decimal_Context_max
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_max_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_max(PyObject *context, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4899,1
    - Dst: _decimal_Context_max_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4910
      start: 4878
    functionDepth: 0
    functionLinenumber: 4878
    functionLinenumberEnd: 4910
    functionName: _decimal_Context_max_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_max_mag_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_max_mag(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4946,1
    - Dst: _decimal_Context_min_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4957
      start: 4925
    functionDepth: 0
    functionLinenumber: 4925
    functionLinenumberEnd: 4957
    functionName: _decimal_Context_min
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_min_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_min(PyObject *context, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:4993,1
    - Dst: _decimal_Context_min_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5004
      start: 4972
    functionDepth: 0
    functionLinenumber: 4972
    functionLinenumberEnd: 5004
    functionName: _decimal_Context_min_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_min_mag_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_min_mag(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5040,1
    - Dst: _decimal_Context_multiply_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5051
      start: 5019
    functionDepth: 0
    functionLinenumber: 5019
    functionLinenumberEnd: 5051
    functionName: _decimal_Context_multiply
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_multiply_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_multiply(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5087,1
    - Dst: _decimal_Context_next_toward_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5098
      start: 5066
    functionDepth: 0
    functionLinenumber: 5066
    functionLinenumberEnd: 5098
    functionName: _decimal_Context_next_toward
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_next_toward_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_next_toward(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5134,1
    - Dst: _decimal_Context_quantize_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5145
      start: 5113
    functionDepth: 0
    functionLinenumber: 5113
    functionLinenumberEnd: 5145
    functionName: _decimal_Context_quantize
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_quantize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_quantize(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5184,1
    - Dst: _decimal_Context_remainder_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5195
      start: 5163
    functionDepth: 0
    functionLinenumber: 5163
    functionLinenumberEnd: 5195
    functionName: _decimal_Context_remainder
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_remainder_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_remainder(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5234,1
    - Dst: _decimal_Context_remainder_near_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5245
      start: 5213
    functionDepth: 0
    functionLinenumber: 5213
    functionLinenumberEnd: 5245
    functionName: _decimal_Context_remainder_near
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_remainder_near_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_remainder_near(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5281,1
    - Dst: _decimal_Context_subtract_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5260
    functionDepth: 0
    functionLinenumber: 5260
    functionLinenumberEnd: 5292
    functionName: _decimal_Context_subtract
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_subtract_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_subtract(PyObject *context, PyTypeObject *cls, 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:5313,1
    - Dst: _decimal_Context_divmod_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5322
      start: 5306
    functionDepth: 4
    functionLinenumber: 5306
    functionLinenumberEnd: 5322
    functionName: _decimal_Context_divmod
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _decimal_Context_divmod_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_divmod(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:5365,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5367,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5367,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5367,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5384,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5389,1
    - Dst: _decimal_Context_power_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5352
    functionDepth: 4
    functionLinenumber: 5352
    functionLinenumberEnd: 5405
    functionName: _decimal_Context_power
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_power_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_power(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5442,1
    - Dst: _decimal_Context_fma_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5454
      start: 5420
    functionDepth: 0
    functionLinenumber: 5420
    functionLinenumberEnd: 5454
    functionName: _decimal_Context_fma
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_fma_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_fma(PyObject *context, PyTypeObject *cls, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5471,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5472,1
    - Dst: _decimal_Context_radix_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5476
      start: 5468
    functionDepth: 4
    functionLinenumber: 5468
    functionLinenumberEnd: 5476
    functionName: _decimal_Context_radix
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _decimal_Context_radix_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_radix(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5511,1
    - Dst: _decimal_Context_is_normal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5521
      start: 5491
    functionDepth: 0
    functionLinenumber: 5491
    functionLinenumberEnd: 5521
    functionName: _decimal_Context_is_normal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_normal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_normal(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5556,1
    - Dst: _decimal_Context_is_subnormal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5536
    functionDepth: 0
    functionLinenumber: 5536
    functionLinenumberEnd: 5566
    functionName: _decimal_Context_is_subnormal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_subnormal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_subnormal(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5601,1
    - Dst: _decimal_Context_is_finite_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5611
      start: 5581
    functionDepth: 0
    functionLinenumber: 5581
    functionLinenumberEnd: 5611
    functionName: _decimal_Context_is_finite
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_finite_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_finite(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5646,1
    - Dst: _decimal_Context_is_infinite_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5656
      start: 5626
    functionDepth: 0
    functionLinenumber: 5626
    functionLinenumberEnd: 5656
    functionName: _decimal_Context_is_infinite
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_infinite_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_infinite(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5691,1
    - Dst: _decimal_Context_is_nan_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5701
      start: 5671
    functionDepth: 0
    functionLinenumber: 5671
    functionLinenumberEnd: 5701
    functionName: _decimal_Context_is_nan
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_nan_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_nan(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5736,1
    - Dst: _decimal_Context_is_qnan_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5746
      start: 5716
    functionDepth: 0
    functionLinenumber: 5716
    functionLinenumberEnd: 5746
    functionName: _decimal_Context_is_qnan
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_qnan_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_qnan(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5781,1
    - Dst: _decimal_Context_is_snan_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5791
      start: 5761
    functionDepth: 0
    functionLinenumber: 5761
    functionLinenumberEnd: 5791
    functionName: _decimal_Context_is_snan
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_snan_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_snan(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5826,1
    - Dst: _decimal_Context_is_signed_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5836
      start: 5806
    functionDepth: 0
    functionLinenumber: 5806
    functionLinenumberEnd: 5836
    functionName: _decimal_Context_is_signed
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_signed_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_signed(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5871,1
    - Dst: _decimal_Context_is_zero_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5881
      start: 5851
    functionDepth: 0
    functionLinenumber: 5851
    functionLinenumberEnd: 5881
    functionName: _decimal_Context_is_zero
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_zero_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_zero(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5916,1
    - Dst: _decimal_Context_is_canonical_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5926
      start: 5896
    functionDepth: 2
    functionLinenumber: 5896
    functionLinenumberEnd: 5926
    functionName: _decimal_Context_is_canonical
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_is_canonical_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_is_canonical(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5961,1
    - Dst: _decimal_Context__apply_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:5967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5941
    functionDepth: 5
    functionLinenumber: 5941
    functionLinenumberEnd: 5971
    functionName: _decimal_Context__apply
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 1
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context__apply_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context__apply(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6008,1
    - Dst: _decimal_Context_apply_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6018
      start: 5988
    functionDepth: 2
    functionLinenumber: 5988
    functionLinenumberEnd: 6018
    functionName: _decimal_Context_apply
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_apply_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_apply(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6055,1
    - Dst: _decimal_Context_canonical_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6061,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6065
      start: 6035
    functionDepth: 2
    functionLinenumber: 6035
    functionLinenumberEnd: 6065
    functionName: _decimal_Context_canonical
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_canonical_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_canonical(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6100,1
    - Dst: _decimal_Context_copy_abs_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6110
      start: 6080
    functionDepth: 4
    functionLinenumber: 6080
    functionLinenumberEnd: 6110
    functionName: _decimal_Context_copy_abs
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_copy_abs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_copy_abs(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6145,1
    - Dst: _decimal_Context_copy_decimal_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6155
      start: 6125
    functionDepth: 2
    functionLinenumber: 6125
    functionLinenumberEnd: 6155
    functionName: _decimal_Context_copy_decimal
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_copy_decimal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_copy_decimal(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6190,1
    - Dst: _decimal_Context_copy_negate_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6170
    functionDepth: 4
    functionLinenumber: 6170
    functionLinenumberEnd: 6200
    functionName: _decimal_Context_copy_negate
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_copy_negate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_copy_negate(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6234,1
    - Dst: _decimal_Context_logb_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6244
      start: 6214
    functionDepth: 0
    functionLinenumber: 6214
    functionLinenumberEnd: 6244
    functionName: _decimal_Context_logb
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_logb_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_logb(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6292,1
    - Dst: _decimal_Context_logical_invert_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6302
      start: 6272
    functionDepth: 0
    functionLinenumber: 6272
    functionLinenumberEnd: 6302
    functionName: _decimal_Context_logical_invert
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_logical_invert_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_logical_invert(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6337,1
    - Dst: _decimal_Context_number_class_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6347
      start: 6317
    functionDepth: 2
    functionLinenumber: 6317
    functionLinenumberEnd: 6347
    functionName: _decimal_Context_number_class
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_number_class_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_number_class(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6382,1
    - Dst: _decimal_Context_to_sci_string_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6392
      start: 6362
    functionDepth: 3
    functionLinenumber: 6362
    functionLinenumberEnd: 6392
    functionName: _decimal_Context_to_sci_string
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_to_sci_string_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_to_sci_string(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6427,1
    - Dst: _decimal_Context_to_eng_string_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6437
      start: 6407
    functionDepth: 3
    functionLinenumber: 6407
    functionLinenumberEnd: 6437
    functionName: _decimal_Context_to_eng_string
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_to_eng_string_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_to_eng_string(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6473,1
    - Dst: _decimal_Context_compare_total_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6484
      start: 6452
    functionDepth: 0
    functionLinenumber: 6452
    functionLinenumberEnd: 6484
    functionName: _decimal_Context_compare_total
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_compare_total_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_compare_total(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6520,1
    - Dst: _decimal_Context_compare_total_mag_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6531
      start: 6499
    functionDepth: 0
    functionLinenumber: 6499
    functionLinenumberEnd: 6531
    functionName: _decimal_Context_compare_total_mag
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_compare_total_mag_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_compare_total_mag(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6567,1
    - Dst: _decimal_Context_copy_sign_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6578
      start: 6546
    functionDepth: 4
    functionLinenumber: 6546
    functionLinenumberEnd: 6578
    functionName: _decimal_Context_copy_sign
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_copy_sign_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_copy_sign(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6635,1
    - Dst: _decimal_Context_logical_and_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6642,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6646
      start: 6614
    functionDepth: 0
    functionLinenumber: 6614
    functionLinenumberEnd: 6646
    functionName: _decimal_Context_logical_and
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_logical_and_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_logical_and(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6703,1
    - Dst: _decimal_Context_logical_or_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6714
      start: 6682
    functionDepth: 0
    functionLinenumber: 6682
    functionLinenumberEnd: 6714
    functionName: _decimal_Context_logical_or
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _decimal_Context_logical_or_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_logical_or(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6771,1
    - Dst: _decimal_Context_logical_xor_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6782
      start: 6750
    functionDepth: 0
    functionLinenumber: 6750
    functionLinenumberEnd: 6782
    functionName: _decimal_Context_logical_xor
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_logical_xor_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_logical_xor(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6818,1
    - Dst: _decimal_Context_rotate_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6829
      start: 6797
    functionDepth: 0
    functionLinenumber: 6797
    functionLinenumberEnd: 6829
    functionName: _decimal_Context_rotate
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_rotate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_rotate(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6865,1
    - Dst: _decimal_Context_scaleb_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6876
      start: 6844
    functionDepth: 0
    functionLinenumber: 6844
    functionLinenumberEnd: 6876
    functionName: _decimal_Context_scaleb
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_scaleb_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_scaleb(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6912,1
    - Dst: _decimal_Context_shift_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6923
      start: 6891
    functionDepth: 0
    functionLinenumber: 6891
    functionLinenumberEnd: 6923
    functionName: _decimal_Context_shift
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_shift_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_shift(PyObject *context, PyTypeObject *cls, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6959,1
    - Dst: _decimal_Context_same_quantum_impl
      Src: /src/cpython/Modules/_decimal/clinic/_decimal.c.h:6966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - context
    - cls
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6970
      start: 6938
    functionDepth: 2
    functionLinenumber: 6938
    functionLinenumberEnd: 6970
    functionName: _decimal_Context_same_quantum
    functionSourceFile: /src/cpython/Modules/_decimal/clinic/_decimal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _decimal_Context_same_quantum_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decimal_Context_same_quantum(PyObject *context, PyTypeObject *cls, PyObject
      *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - 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
    - OUTBYTE2
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    linkageType: ''
    returnType: void
    signature: void DECODER(cp932)
  - BBCount: 12
    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:207,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:208,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_EMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:221,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:222,1
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:232,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:233,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:236,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:237,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 242
    functionName: ENCODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - WRITEBYTE3
    - TRYMAP_ENC
    - find_pairencmap
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - EMULATE_JISX0213_2000_ENCODE_EMP
    - NEXT
    - WRITEBYTE1
    - WRITEBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(euc_jis_2004)
  - BBCount: 8
    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: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 202
    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:251,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:252,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:260,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:263,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:264,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:272,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:277,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:278,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:279,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:281,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:282,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:285,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:286,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:289,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:294,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:299,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:301,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:303,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:304,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:305,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:306,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:307,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:309,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:310,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:314,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:315,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:320,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 325
    functionName: DECODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - OUTCHAR2
    - OUTCHAR
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - EMULATE_JISX0213_2000_DECODE_PLANE2
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    linkageType: ''
    returnType: void
    signature: void DECODER(euc_jis_2004)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:281,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: if
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - OUTCHAR
    - NEXT_IN
    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:309,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: if
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - OUTCHAR
    - NEXT_IN
    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:314,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: if
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - OUTCHAR2
    - NEXT_IN
    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:339,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:340,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:347,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:351,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:352,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:359,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:360,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:363,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:364,1
    - Dst: WRITEBYTE3
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:373,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:374,1
    - Dst: WRITEBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:377,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 383
    functionName: ENCODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - WRITEBYTE3
    - TRYMAP_ENC
    - NEXT
    - WRITEBYTE1
    - WRITEBYTE2
    linkageType: ''
    returnType: void
    signature: void ENCODER(euc_jp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:392,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:393,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:401,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:404,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:405,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:413,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:417,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:418,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:419,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:427,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:433,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:436,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:437,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:440,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 445
    functionName: DECODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - TRYMAP_DEC
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    linkageType: ''
    returnType: void
    signature: void DECODER(euc_jp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_ENCODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:460,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:476,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:478,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:479,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:483,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:486,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:503,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:504,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 509
    functionName: ENCODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - OUTBYTE1
    - TRYMAP_ENC
    - JISX0201_R_ENCODE
    - OUTBYTE2
    - NEXT
    - REQUIRE_OUTBUF
    linkageType: ''
    returnType: void
    signature: void ENCODER(shift_jis)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_DECODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:518,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:521,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:527,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:540,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:541,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:545,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:546,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:547,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:556,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 560
    functionName: DECODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - OUTCHAR
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - JISX0201_R_DECODE
    linkageType: ''
    returnType: void
    signature: void DECODER(shift_jis)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_ENCODE
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:575,1
    - Dst: WRITEBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:578,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:579,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:583,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_BMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:588,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:593,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:605,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:610,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_EMP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:633,1
    - Dst: TRYMAP_ENC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:634,1
    - Dst: OUTBYTE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:663,1
    - Dst: OUTBYTE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:664,1
    - Dst: NEXT
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:666,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 670
    functionName: ENCODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - OUTBYTE1
    - TRYMAP_ENC
    - find_pairencmap
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - OUTBYTE2
    - EMULATE_JISX0213_2000_ENCODE_EMP
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - JISX0201_ENCODE
    linkageType: ''
    returnType: void
    signature: void ENCODER(shift_jis_2004)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:593,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:605,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:610,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 623
    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: 628
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 628
    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:677,1
    - Dst: REQUIRE_INBUF
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:682,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE1
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:694,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:696,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:697,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:698,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:699,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:700,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:701,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:702,1
    - Dst: OUTCHAR2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:703,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:706,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE2
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:716,1
    - Dst: TRYMAP_DEC
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:718,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:719,1
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:721,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:727,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:734,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 738
    functionName: DECODER
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 5
    functionsReached:
    - OUTCHAR2
    - OUTCHAR
    - TRYMAP_DEC
    - EMULATE_JISX0213_2000_DECODE_PLANE2
    - REQUIRE_INBUF
    - JISX0201_DECODE
    - NEXT_IN
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    linkageType: ''
    returnType: void
    signature: void DECODER(shift_jis_2004)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:721,1
    - Dst: NEXT_IN
      Src: /src/cpython/Modules/cjkcodecs/_codecs_jp.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: if
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - OUTCHAR
    - NEXT_IN
    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: 757
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 757
    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:
    - OUTBYTE1
    - TRYMAP_ENC
    - OUTBYTE2
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    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
    - OUTBYTE2
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    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
    - NEXT
    - GBK_ENCODE
    - OUTBYTE4
    - OUTBYTE2
    - assert
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE3
    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:
    - GBK_DECODE
    - OUTCHAR
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    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:
    - NEXT_OUT
    - WRITEBYTE2
    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:
    - WRITEBYTE4
    - TRYMAP_ENC
    - NEXT_OUT
    - NEXT
    - WRITEBYTE1
    - WRITEBYTE2
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    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:
    - OUTBYTE1
    - TRYMAP_ENC
    - OUTBYTE2
    - NEXT
    - REQUIRE_OUTBUF
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    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:
    - OUTBYTE1
    - TRYMAP_ENC
    - OUTBYTE2
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    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_SETG1
    - STATE_CLEARFLAGS
    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:
    - WRITEBYTE3
    - STATE_SETG0
    - STATE_GETFLAG
    - NEXT_OUT
    - STATE_CLEARFLAG
    - WRITEBYTE1
    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:
    - WRITEBYTE4
    - WRITEBYTE3
    - assert
    - STATE_SETG0
    - STATE_GETFLAG
    - struct iso2022_designation*::encoder
    - STATE_SETG1
    - NEXT_OUT
    - NEXT
    - ESCMARK
    - NEXT_INCHAR
    - STATE_CLEARFLAG
    - WRITEBYTE1
    - STATE_SETFLAG
    - WRITEBYTE2
    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_SETG1
    - STATE_SETG2
    - STATE_CLEARFLAGS
    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
    - CONFIG_ISSET
    - STATE_SETG
    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:
    - ISO8859_7_DECODE
    - OUTCHAR
    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:
    - OUTCHAR2
    - OUTCHAR
    - CONFIG_ISSET
    - iso2022processg2
    - iso2022processesc
    - STATE_GETFLAG
    - IS_ESCEND
    - REQUIRE_INBUF
    - struct iso2022_designation*::decoder
    - NEXT_IN
    - assert
    - STATE_CLEARFLAG
    - IS_ISO2022ESC
    - STATE_SETFLAG
    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:
    - jisx0208_init
    - IMPORT_MAP
    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:
    - TRYMAP_DEC_ST
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    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:
    - TRYMAP_DEC_ST
    - EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR
    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_ST
    - TRYMAP_DEC
    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: 12
    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:806,1
    - Dst: find_pairencmap
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:816,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - codec
    - data
    - length
    - config
    argTypes:
    - MultibyteCodec*
    - Py_UCS4*
    - Py_ssize_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 827
    functionName: jisx0213_encoder
    functionSourceFile: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - find_pairencmap
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - TRYMAP_ENC_ST
    - 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:833,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: 840
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 840
    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:849,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: 864
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 864
    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:870,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: 877
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 877
    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:883,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: 890
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 890
    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:899,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: 914
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 914
    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:920,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: 927
      start: 916
    functionDepth: 2
    functionLinenumber: 916
    functionLinenumberEnd: 927
    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:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 937
    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:944,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: 948
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 948
    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:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 958
    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:965,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: 969
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 969
    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:975,1
    - Dst: IMPORT_MAP
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - codec
    argTypes:
    - MultibyteCodec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 981
    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:987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - codec
    - data
    argTypes:
    - MultibyteCodec*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 991
    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:998,1
    - Dst: TRYMAP_ENC_ST
      Src: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c:1000,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: 997
        line_start: 997
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 1006
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1006
    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: 1013
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1013
    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: 1020
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1020
    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: 1087
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1087
    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: 1142
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1142
    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:
    - OUTBYTE1
    - TRYMAP_ENC
    - assert
    - OUTBYTE4
    - OUTBYTE2
    - NEXT_OUT
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    - OUTBYTE3
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    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:
    - OUTBYTE1
    - TRYMAP_ENC
    - OUTBYTE2
    - NEXT
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    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:
    - OUTBYTE1
    - TRYMAP_ENC
    - NEXT
    - OUTBYTE2
    - assert
    - REQUIRE_OUTBUF
    - WRITEBYTE1
    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
    - OUTCHAR
    - NEXT_IN
    - REQUIRE_INBUF
    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:
    - OUTBYTE1
    - TRYMAP_ENC
    - TRYMAP_ENC_ST
    - OUTBYTE2
    - NEXT
    - REQUIRE_OUTBUF
    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: (0x40 <= INBYTE2 && INBYTE2 <= 0xfe)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Modules/cjkcodecs/_codecs_hk.c
    - condition: (0x87 <= c && c <= 0xfe)
      pos:
        line_end: 136
        line_start: 136
        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:
    - OUTCHAR2
    - OUTCHAR
    - TRYMAP_DEC
    - REQUIRE_INBUF
    - NEXT_IN
    - assert
    - TRYMAP_DEC_ST
    - BH2S
    linkageType: ''
    returnType: void
    signature: void DECODER(big5hkscs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:33,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.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/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: get_module_state
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 99
    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:43,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:44,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: find_state_by_def
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyType_GetModuleByDef
    - assert
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    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: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    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: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    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: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    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: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: _MultibyteStreamWriterObject_CAST
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MultibyteStreamWriterObject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:112,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - object
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: make_tuple
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - _PyTuple_FromPairSteal
    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:122,1
    - Dst: strcmp
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:124,1
    - Dst: strcmp
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:126,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - errors
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: internal_error_callback
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      internal_error_callback(const char *errors)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:138,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:138,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:139,1
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:142,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - errors
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(errors))
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: call_error_callback
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyCodec_LookupError
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - assert
    - Py_DECREF
    - PyObject_CallOneArg
    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:155,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:164,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 168
    functionName: codecctx_errors_get
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _MultibyteStatefulCodecContext_CAST
    - PyUnicode_FromString
    - Py_NewRef
    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:175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:178,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:182,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:186,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:190,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 197
    functionName: codecctx_errors_set
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ERROR_DECREF
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - _MultibyteStatefulCodecContext_CAST
    - internal_error_callback
    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:212,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:213,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:217,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:221,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:224,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:225,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - esize
    argTypes:
    - MultibyteEncodeBuffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 229
    functionName: expand_encodebuffer
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyErr_NoMemory
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int expand_encodebuffer(MultibyteEncodeBuffer *buf, Py_ssize_t esize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 235
    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:259,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:266,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:270,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:283,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:286,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:287,1
    - Dst: MultibyteCodec*::encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:293,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:304,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:307,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:321,1
    - Dst: PyUnicodeEncodeError_SetStart
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:329,1
    - Dst: PyUnicodeEncodeError_SetEnd
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:330,1
    - Dst: PyUnicodeEncodeError_SetReason
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:331,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:335,1
    - Dst: call_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:339,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:343,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:343,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:344,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:344,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:344,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:345,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:345,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:346,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:352,1
    - Dst: multibytecodec_encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:355,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:362,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:365,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:365,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:366,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:368,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:369,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:369,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:373,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:373,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:374,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:377,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:386,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:390,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:391,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: 364
        line_start: 364
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 393
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 393
    functionName: multibytecodec_encerror
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyBytes_Check
    - memcpy
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyUnicodeEncodeError_SetReason
    - PyUnicode_KIND
    - PyUnicode_DATA
    - REQUIRE_ENCODEBUFFER
    - call_error_callback
    - PyUnicode_Check
    - PyUnicodeEncodeError_SetStart
    - PyLong_Check
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyLong_AsSsize_t
    - PyErr_SetString
    - PyUnicode_FromOrdinal
    - PyObject_CallFunction
    - PyErr_Clear
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_NewRef
    - PyCodec_StrictErrors
    - MultibyteCodec*::encode
    - multibytecodec_encode
    - PyUnicodeEncodeError_SetEnd
    - PyErr_Format
    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:419,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:425,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:432,1
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:446,1
    - Dst: PyUnicodeDecodeError_SetStart
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:454,1
    - Dst: PyUnicodeDecodeError_SetEnd
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:455,1
    - Dst: PyUnicodeDecodeError_SetReason
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:456,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:460,1
    - Dst: call_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:464,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:468,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:468,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:469,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:469,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:470,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:470,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:471,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:477,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:480,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:480,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:481,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:484,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:491,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:495,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: 497
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 497
    functionName: multibytecodec_decerror
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_Check
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyUnicodeWriter_WriteChar
    - call_error_callback
    - PyUnicode_Check
    - PyUnicodeDecodeError_Create
    - PyLong_Check
    - Py_XDECREF
    - PyUnicodeDecodeError_SetEnd
    - PyUnicodeDecodeError_SetReason
    - PyLong_AsSsize_t
    - PyUnicodeDecodeError_SetStart
    - PyErr_SetString
    - PyErr_Clear
    - Py_DECREF
    - PyCodec_StrictErrors
    - PyErr_Format
    - _PyUnicodeWriter_WriteStr
    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:511,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:514,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:521,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:522,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:525,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:529,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:532,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:533,1
    - Dst: MultibyteCodec*::encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:540,1
    - Dst: multibytecodec_encerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:546,1
    - Dst: MultibyteCodec*::encreset
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:557,1
    - Dst: multibytecodec_encerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:561,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:567,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:569,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:570,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:575,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:579,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:580,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: 582
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 582
    functionName: multibytecodec_encode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 1
    functionsReached:
    - multibytecodec_encerror
    - PyErr_NoMemory
    - PyUnicode_DATA
    - PyBytes_FromStringAndSize
    - PyUnicode_KIND
    - MultibyteCodec*::encode
    - MultibyteCodec*::encreset
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    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:609,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:612,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:615,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:618,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:623,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:625,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:627,1
    - Dst: MultibyteCodecObject*::codec::encinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:632,1
    - Dst: multibytecodec_encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:634,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:640,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:641,1
    - Dst: make_tuple
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:642,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:645,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:646,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - self
    - input
    - errors
    argTypes:
    - MultibyteCodecObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 648
    functionName: _multibytecodec_MultibyteCodec_encode_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - multibytecodec_encode
    - ERROR_DECREF
    - PyErr_SetString
    - PyUnicode_Check
    - make_tuple
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - Py_DECREF
    - internal_error_callback
    - MultibyteCodecObject*::codec::encinit
    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:680,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:686,1
    - Dst: make_tuple
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:687,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:687,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:690,1
    - Dst: MultibyteCodecObject*::codec::decinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:697,1
    - Dst: MultibyteCodecObject*::codec::decode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:705,1
    - Dst: multibytecodec_decerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:709,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:714,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:718,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:719,1
    - Dst: make_tuple
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:720,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:723,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:724,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:725,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - input
    - errors
    argTypes:
    - MultibyteCodecObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 728
    functionName: _multibytecodec_MultibyteCodec_decode_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - multibytecodec_decerror
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Finish
    - ERROR_DECREF
    - MultibyteCodecObject*::codec::decode
    - _PyUnicodeWriter_Dealloc
    - make_tuple
    - MultibyteCodecObject*::codec::decinit
    - Py_XDECREF
    - internal_error_callback
    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:739,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: multibytecodec_clear
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _MultibyteCodecObject_CAST
    linkageType: ''
    returnType: int
    signature: int multibytecodec_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _MultibyteCodecObject_CAST
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:747,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:748,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:748,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 751
    functionName: multibytecodec_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _MultibyteCodecObject_CAST
    - Py_TYPE
    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:756,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:757,1
    - Dst: multibytecodec_clear
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:758,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 761
    functionName: multibytecodec_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - multibytecodec_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    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: 786
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 786
    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: 787
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 787
    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:797,1
    - Dst: PyObject_Str
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:800,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:803,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:806,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:814,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:816,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:817,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:820,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:826,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:829,1
    - Dst: multibytecodec_encode
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:831,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:836,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:840,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:845,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:853,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:856,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:863,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:864,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:868,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:869,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:870,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:871,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 3
    argNames:
    - ctx
    - unistr
    - final
    argTypes:
    - MultibyteStatefulEncoderContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 788
    functionDepth: 4
    functionLinenumber: 788
    functionLinenumberEnd: 873
    functionName: encoder_encode_stateful
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyObject_Str
    - multibytecodec_encode
    - Py_XSETREF
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_CallFunction
    - Py_CLEAR
    - PyUnicode_Append
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyUnicode_Substring
    - Py_DECREF
    - Py_NewRef
    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:885,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:893,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - MultibyteStatefulDecoderContext*
    - MultibyteDecodeBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 899
    functionName: decoder_append_pending
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyUnicodeDecodeError_Create
    - Py_DECREF
    - memcpy
    - PyErr_SetObject
    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: 909
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 909
    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:921,1
    - Dst: multibytecodec_decerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:925,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - MultibyteStatefulDecoderContext*
    - MultibyteDecodeBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 911
    functionDepth: 3
    functionLinenumber: 911
    functionLinenumberEnd: 930
    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:946,1
    - Dst: STATEFUL_ECTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 940
    functionDepth: 5
    functionLinenumber: 940
    functionLinenumberEnd: 947
    functionName: _multibytecodec_MultibyteIncrementalEncoder_encode_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - encoder_encode_stateful
    - STATEFUL_ECTX
    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:969,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:974,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:978,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:984,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:988,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:994,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalEncoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 1001
    functionName: _multibytecodec_MultibyteIncrementalEncoder_getstate_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyObject_CallFunction
    - PyUnicode_AsUTF8AndSize
    - _PyLong_FromByteArray
    - PyUnicode_GET_LENGTH
    - memcpy
    - Py_DECREF
    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:1017,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1025,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1029,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1035,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1036,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - statelong
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1044
    functionName: _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyErr_SetString
    - PyUnicode_DecodeUTF8
    - memcpy
    - Py_XDECREF
    - _PyLong_AsByteArray
    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:1059,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalEncoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1066
    functionName: _multibytecodec_MultibyteIncrementalEncoder_reset_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - MultibyteIncrementalEncoderObject*::codec::encreset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_reset_impl(MultibyteIncrementalEncoderObject
      *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1083,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1087,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1091,1
    - Dst: find_state_by_def
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1095,1
    - Dst: MultibyteCodec_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1096,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1097,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1103,1
    - Dst: MultibyteIncrementalEncoderObject*::codec::encinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1107,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1110,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1114,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1115,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1076
    functionDepth: 2
    functionLinenumber: 1076
    functionLinenumberEnd: 1117
    functionName: mbiencoder_new
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteCodec_Check
    - PyErr_SetString
    - MultibyteIncrementalEncoderObject*::codec::encinit
    - PyObject_GetAttrString
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - internal_error_callback
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    - find_state_by_def
    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: 1123
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1123
    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:1128,1
    - Dst: ERROR_ISCUSTOM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1129,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1132
    functionName: mbiencoder_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _MultibyteIncrementalEncoderObject_CAST
    - ERROR_ISCUSTOM
    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:1137,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1138,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1139,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1140,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1141,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1144
    functionName: mbiencoder_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _MultibyteIncrementalEncoderObject_CAST
    - ERROR_DECREF
    - Py_CLEAR
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mbiencoder_dealloc(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1187,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1197,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1201,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1203,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1206,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1207,1
    - Dst: decoder_prepare_buffer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1211,1
    - Dst: decoder_feed_buffer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1214,1
    - Dst: STATEFUL_DCTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1214,1
    - Dst: multibytecodec_decerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1218,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1221,1
    - Dst: decoder_append_pending
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1228,1
    - Dst: STATEFUL_DCTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1228,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1232,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1237,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1238,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1243,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1244,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1245,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1173
    functionDepth: 4
    functionLinenumber: 1173
    functionLinenumberEnd: 1247
    functionName: _multibytecodec_MultibyteIncrementalDecoder_decode_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - STATEFUL_DCTX
    - PyErr_NoMemory
    - decoder_feed_buffer
    - _PyUnicodeWriter_Init
    - multibytecodec_decerror
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - decoder_append_pending
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - Py_XDECREF
    - decoder_prepare_buffer
    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:1260,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1271,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalDecoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1276
    functionName: _multibytecodec_MultibyteIncrementalDecoder_getstate_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - _PyLong_FromByteArray
    - Py_BuildValue
    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:1295,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1301,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1308,1
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1314,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1315,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1320,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1324,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1329,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1333
    functionName: _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyBytes_Size
    - PyErr_SetObject
    - PyUnicodeDecodeError_Create
    - PyBytes_AsString
    - memcpy
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - Py_DECREF
    - _PyLong_AsByteArray
    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:1344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalDecoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1349
    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:1366,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1370,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1374,1
    - Dst: find_state_by_def
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1378,1
    - Dst: MultibyteCodec_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1379,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1380,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1386,1
    - Dst: MultibyteIncrementalDecoderObject*::codec::decinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1393,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1397,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1400
    functionName: mbidecoder_new
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteCodec_Check
    - PyErr_SetString
    - MultibyteIncrementalDecoderObject*::codec::decinit
    - PyObject_GetAttrString
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - internal_error_callback
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    - find_state_by_def
    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: 1406
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1406
    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:1411,1
    - Dst: ERROR_ISCUSTOM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1412,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1415
    functionName: mbidecoder_traverse
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _MultibyteIncrementalDecoderObject_CAST
    - ERROR_ISCUSTOM
    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:1420,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1421,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1422,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1423,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1426
    functionName: mbidecoder_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ERROR_DECREF
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - _MultibyteIncrementalDecoderObject_CAST
    - Py_DECREF
    - 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:1456,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1458,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1466,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1469,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1474,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1475,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1478,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1482,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1488,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1489,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1492,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1493,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1496,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1497,1
    - Dst: memcpy
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1498,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1499,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1500,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1501,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1505,1
    - Dst: decoder_prepare_buffer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1506,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1506,1
    - Dst: decoder_feed_buffer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1510,1
    - Dst: multibytecodec_decerror
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1516,1
    - Dst: decoder_append_pending
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1522,1
    - Dst: STATEFUL_DCTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1522,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1527,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1535,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1539,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1540,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1544,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1545,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1546,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 3
    argNames:
    - self
    - method
    - sizehint
    argTypes:
    - MultibyteStreamReaderObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1447
    functionDepth: 4
    functionLinenumber: 1447
    functionLinenumberEnd: 1548
    functionName: mbstreamreader_iread
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Finish
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - _PyUnicodeWriter_Dealloc
    - memcpy
    - Py_TYPE
    - PyErr_NoMemory
    - multibytecodec_decerror
    - Py_XDECREF
    - PyBytes_AS_STRING
    - STATEFUL_DCTX
    - decoder_feed_buffer
    - _PyUnicodeWriter_Init
    - decoder_append_pending
    - PyBytes_GET_SIZE
    - Py_GetConstant
    - Py_SETREF
    - PyErr_Format
    - PyObject_CallMethod
    - decoder_prepare_buffer
    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:1566,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1567,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1573,1
    - Dst: mbstreamreader_iread
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - sizeobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1557
    functionDepth: 5
    functionLinenumber: 1557
    functionLinenumberEnd: 1577
    functionName: _multibytecodec_MultibyteStreamReader_read_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_Check
    - mbstreamreader_iread
    - PyErr_Occurred
    - 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:1595,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1596,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1598,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1602,1
    - Dst: mbstreamreader_iread
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - sizeobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1586
    functionDepth: 5
    functionLinenumber: 1586
    functionLinenumberEnd: 1606
    functionName: _multibytecodec_MultibyteStreamReader_readline_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_Check
    - mbstreamreader_iread
    - PyErr_Occurred
    - 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:1625,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1626,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1628,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1632,1
    - Dst: mbstreamreader_iread
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1635,1
    - Dst: PyUnicode_Splitlines
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1640,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - sizehintobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1615
    functionDepth: 5
    functionLinenumber: 1615
    functionLinenumberEnd: 1642
    functionName: _multibytecodec_MultibyteStreamReader_readlines_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_Check
    - mbstreamreader_iread
    - PyUnicode_Splitlines
    - PyErr_Occurred
    - Py_DECREF
    - 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:1653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteStreamReaderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1658
    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:1682,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1686,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1690,1
    - Dst: find_state_by_def
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1694,1
    - Dst: MultibyteCodec_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1695,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1696,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1701,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1703,1
    - Dst: MultibyteStreamReaderObject*::codec::decinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1707,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1710,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1714,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1715,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1717
    functionName: mbstreamreader_new
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteCodec_Check
    - PyErr_SetString
    - Py_NewRef
    - MultibyteStreamReaderObject*::codec::decinit
    - PyObject_GetAttrString
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - internal_error_callback
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    - find_state_by_def
    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: 1723
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1723
    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:1728,1
    - Dst: ERROR_ISCUSTOM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1729,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1730,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1725
    functionDepth: 1
    functionLinenumber: 1725
    functionLinenumberEnd: 1733
    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:1738,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1739,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1740,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1741,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1742,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1735
    functionDepth: 1
    functionLinenumber: 1735
    functionLinenumberEnd: 1745
    functionName: mbstreamreader_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _MultibyteStreamReaderObject_CAST
    - ERROR_DECREF
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mbstreamreader_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: encoder_encode_stateful
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1773,1
    - Dst: STATEFUL_ECTX
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1773,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1778,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - unistr
    - str_write
    argTypes:
    - MultibyteStreamWriterObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1767
    functionDepth: 5
    functionLinenumber: 1767
    functionLinenumberEnd: 1784
    functionName: mbstreamwriter_iwrite
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - encoder_encode_stateful
    - STATEFUL_ECTX
    - Py_DECREF
    - PyObject_CallMethodOneArg
    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:1800,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1801,1
    - Dst: mbstreamwriter_iwrite
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - cls
    - strobj
    argTypes:
    - MultibyteStreamWriterObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1800
        line_start: 1800
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 1806
      start: 1794
    functionDepth: 6
    functionLinenumber: 1794
    functionLinenumberEnd: 1806
    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:1825,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1826,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1831,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1832,1
    - Dst: PySequence_Length
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1833,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1835,1
    - Dst: mbstreamwriter_iwrite
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1840,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1845,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - cls
    - lines
    argTypes:
    - MultibyteStreamWriterObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 1849
      start: 1816
    functionDepth: 6
    functionLinenumber: 1816
    functionLinenumberEnd: 1849
    functionName: _multibytecodec_MultibyteStreamWriter_writelines_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - mbstreamwriter_iwrite
    - PyErr_SetString
    - PySequence_Length
    - PySequence_GetItem
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyType_GetModuleState
    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:1869,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1876,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1880,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1880,1
    - Dst: PyType_GetModuleState
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1882,1
    - Dst: assert
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1883,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1885,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1894,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - MultibyteStreamWriterObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyBytes_Check(pwrt))
      pos:
        line_end: 1879
        line_start: 1879
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    - condition: (state != NULL)
      pos:
        line_end: 1882
        line_start: 1882
        source_file: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 1897
      start: 1859
    functionDepth: 4
    functionLinenumber: 1859
    functionLinenumberEnd: 1897
    functionName: _multibytecodec_MultibyteStreamWriter_reset_impl
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyBytes_Size
    - PyObject_CallMethodOneArg
    - multibytecodec_encode
    - PyBytes_Check
    - Py_CLEAR
    - assert
    - Py_DECREF
    - PyType_GetModuleState
    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:1906,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1910,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1914,1
    - Dst: find_state_by_def
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1918,1
    - Dst: MultibyteCodec_Check
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1919,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1920,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1925,1
    - Dst: internal_error_callback
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1927,1
    - Dst: MultibyteStreamWriterObject*::codec::encinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1934,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1938,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1939,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1899
    functionDepth: 2
    functionLinenumber: 1899
    functionLinenumberEnd: 1941
    functionName: mbstreamwriter_new
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteCodec_Check
    - MultibyteStreamWriterObject*::codec::encinit
    - PyErr_SetString
    - Py_NewRef
    - PyObject_GetAttrString
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - internal_error_callback
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    - find_state_by_def
    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: 1947
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1947
    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:1952,1
    - Dst: ERROR_ISCUSTOM
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1953,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1954,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1957
    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:1962,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1963,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1964,1
    - Dst: ERROR_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1965,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1966,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:1968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1959
    functionDepth: 1
    functionLinenumber: 1959
    functionLinenumberEnd: 1969
    functionName: mbstreamwriter_dealloc
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ERROR_DECREF
    - _MultibyteStreamWriterObject_CAST
    - PyTypeObject*::tp_free
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:2019,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2020,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2024,1
    - Dst: MultibyteCodec*::codecinit
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2026,1
    - Dst: get_module_state
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2029,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2030,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2034,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2013
    functionDepth: 1
    functionLinenumber: 2013
    functionLinenumberEnd: 2038
    functionName: _multibytecodec___create_codec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - PyObject_GC_New
    - MultibyteCodec*::codecinit
    - PyCapsule_IsValid
    - PyErr_SetString
    - PyCapsule_GetPointer
    - Py_NewRef
    - PyObject_GC_Track
    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:2043,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2044,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2045,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2046,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2047,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2050
    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:2055,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2056,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2057,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2058,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2059,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2060,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2052
    functionDepth: 1
    functionLinenumber: 2052
    functionLinenumberEnd: 2063
    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:2068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2065
    functionDepth: 2
    functionLinenumber: 2065
    functionLinenumberEnd: 2069
    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: 2078
      start: 2071
    functionDepth: 0
    functionLinenumber: 2071
    functionLinenumberEnd: 2078
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 7
    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: 2085
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2085
    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:2089,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2090,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2094,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2095,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2096,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2097,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2098,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2100,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2101,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2102,1
    - Dst: ADD_TYPE
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2086
    functionDepth: 1
    functionLinenumber: 2086
    functionLinenumberEnd: 2105
    functionName: _multibytecodec_exec
    functionSourceFile: /src/cpython/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - get_module_state
    - ADD_TYPE
    - CREATE_TYPE
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int _multibytecodec_exec(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/cjkcodecs/multibytecodec.c:2137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2138
    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: 104
    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
    - PyCapsule_GetPointer
    - PyMem_Free
    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:
    - PyCapsule_New
    - getmultibytecodec
    - capsulate_codec
    - PyMem_Free
    - Py_DECREF
    - PyObject_CallOneArg
    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
    - strcmp
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - _getcodec
    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:
    - add_mappings
    - get_module_state
    - add_codecs
    - strcpy
    - PyCapsule_New
    - PyModule_Add
    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:
    - PyImport_ImportModule
    - PyCapsule_IsValid
    - PyErr_SetString
    - PyCapsule_GetPointer
    - PyObject_GetAttrString
    - Py_DECREF
    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: 525
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 525
    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:44,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:46,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:46,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:63,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:67,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:79,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:81,1
    - Dst: strlen
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:85,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:86,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:91,1
    - Dst: _multibytecodec_MultibyteCodec_encode_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:95,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: 99
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 99
    functionName: _multibytecodec_MultibyteCodec_encode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteCodec_encode_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:134,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:136,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:136,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:153,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:157,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:162,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:171,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:173,1
    - Dst: strlen
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:177,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:178,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:183,1
    - Dst: _multibytecodec_MultibyteCodec_decode_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:187,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:192,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: 196
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 196
    functionName: _multibytecodec_MultibyteCodec_decode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - strlen
    - _multibytecodec_MultibyteCodec_decode_impl
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:224,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:226,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:226,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:243,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:247,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:256,1
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_encode_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:261,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: 265
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 265
    functionName: _multibytecodec_MultibyteIncrementalEncoder_encode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _multibytecodec_MultibyteIncrementalEncoder_encode_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 282
    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:302,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:303,1
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 311
    functionName: _multibytecodec_MultibyteIncrementalEncoder_setstate
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
    - _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:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 328
    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:356,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:358,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:358,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:375,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:379,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:384,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:390,1
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_decode_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:395,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:400,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: 404
      start: 343
    functionDepth: 5
    functionLinenumber: 343
    functionLinenumberEnd: 404
    functionName: _multibytecodec_MultibyteIncrementalDecoder_decode
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalDecoder_decode_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyBuffer_Release
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - _Py_ID
    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:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 421
    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:441,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:442,1
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 450
    functionName: _multibytecodec_MultibyteIncrementalDecoder_setstate
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
    - PyTuple_Check
    - _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: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: 1
    functionLinenumber: 463
    functionLinenumberEnd: 467
    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:487,1
    - Dst: _multibytecodec_MultibyteStreamReader_read_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 499
    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:519,1
    - Dst: _multibytecodec_MultibyteStreamReader_readline_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 513
    functionDepth: 6
    functionLinenumber: 513
    functionLinenumberEnd: 531
    functionName: _multibytecodec_MultibyteStreamReader_readline
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteStreamReader_readline_impl
    - _PyArg_CheckPositional
    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:551,1
    - Dst: _multibytecodec_MultibyteStreamReader_readlines_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 545
    functionDepth: 6
    functionLinenumber: 545
    functionLinenumberEnd: 563
    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: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: 1
    functionLinenumber: 576
    functionLinenumberEnd: 580
    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:615,1
    - Dst: _multibytecodec_MultibyteStreamWriter_write_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:621,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: 625
      start: 595
    functionDepth: 7
    functionLinenumber: 595
    functionLinenumberEnd: 625
    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:660,1
    - Dst: _multibytecodec_MultibyteStreamWriter_writelines_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:666,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: 670
      start: 640
    functionDepth: 7
    functionLinenumber: 640
    functionLinenumberEnd: 670
    functionName: _multibytecodec_MultibyteStreamWriter_writelines
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - _multibytecodec_MultibyteStreamWriter_writelines_impl
    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:687,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:688,1
    - Dst: _multibytecodec_MultibyteStreamWriter_reset_impl
      Src: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h:691,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: 692
      start: 684
    functionDepth: 5
    functionLinenumber: 684
    functionLinenumberEnd: 692
    functionName: _multibytecodec_MultibyteStreamWriter_reset
    functionSourceFile: /src/cpython/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteStreamWriter_reset_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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: 18
    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: 5
    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:
    - pad
    - memcpy
    - Hacl_Hash_MD5_update_multi
    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_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - Hacl_Hash_MD5_init
    - KRML_HOST_MALLOC
    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:
    - Hacl_Hash_MD5_finish
    - memcpy
    - 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_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memcpy
    - KRML_HOST_MALLOC
    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: 7
    EdgeCount: 7
    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:
    - SecureZeroMemory
    - memset_s
    - explicit_bzero
    - explicit_memset
    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
    - memcpy
    - KRML_MAYBE_FOR10
    - load32_le
    - KRML_MAYBE_FOR4
    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:
    - load32_le
    - KRML_MAYBE_FOR2
    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:
    - Lib_Memzero0_memzero
    - update_block
    - memcpy
    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:
    - Lib_Memzero0_memzero
    - update_block
    - memcpy
    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: 19
    functionsReached:
    - update_key
    - update_blocks
    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:
    - Lib_Memzero0_memzero
    - memcpy
    - store32_le
    - KRML_MAYBE_FOR4
    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_HOST_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memset
    - memcpy
    - KRML_HOST_MALLOC
    - load32_le
    - KRML_MAYBE_FOR2
    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_UNUSED_VAR
    - memset
    - memcpy
    - load32_le
    - KRML_MAYBE_FOR2
    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
    - KRML_MAYBE_UNUSED_VAR
    - reset_raw
    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:
    - Hacl_Hash_Blake2s_update_multi
    - memcpy
    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:
    - Hacl_Hash_Blake2s_update_multi
    - memcpy
    - Hacl_Hash_Blake2s_update_last
    - Hacl_Hash_Blake2s_finish
    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_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memcpy
    - KRML_HOST_MALLOC
    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:
    - Lib_Memzero0_memzero
    - update
    - Hacl_Hash_Blake2s_init
    - Hacl_Hash_Blake2s_finish
    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:
    - Lib_Memzero0_memzero
    - update
    - Hacl_Hash_Blake2s_finish
    - load32_le
    - KRML_MAYBE_FOR2
    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:
    - load32_be
    - KRML_MAYBE_FOR16
    - memcpy
    - KRML_MAYBE_FOR8
    - KRML_MAYBE_FOR4
    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:
    - KRML_MAYBE_FOR8
    - store32_be
    - memcpy
    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:
    - KRML_MAYBE_FOR8
    - store32_be
    - memcpy
    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_FOR5
    - KRML_MAYBE_FOR16
    - memcpy
    - KRML_MAYBE_FOR8
    - load64_be
    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:
    - FStar_UInt128_shift_left
    - memcpy
    - store128_be
    - sha512_update
    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:
    - KRML_MAYBE_FOR8
    - store64_be
    - memcpy
    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:
    - KRML_MAYBE_FOR8
    - store64_be
    - memcpy
    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:
    - KRML_HOST_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA2_sha256_init
    - KRML_HOST_MALLOC
    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_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memcpy
    - KRML_HOST_MALLOC
    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:
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - memcpy
    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:
    - Hacl_Hash_SHA2_sha256_finish
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - memcpy
    - Hacl_Hash_SHA2_sha256_update_last
    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_finish
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - Hacl_Hash_SHA2_sha256_init
    - 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_FREE
    - Hacl_Hash_SHA2_sha224_init
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - KRML_HOST_MALLOC
    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:
    - Hacl_Hash_SHA2_sha224_finish
    - Hacl_Hash_SHA2_sha224_update_last
    - memcpy
    - 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_finish
    - Hacl_Hash_SHA2_sha224_update_last
    - 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_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA2_sha512_init
    - KRML_HOST_MALLOC
    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_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memcpy
    - KRML_HOST_MALLOC
    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:
    - Hacl_Hash_SHA2_sha512_update_last
    - FStar_UInt128_add
    - Hacl_Hash_SHA2_sha512_finish
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    - Hacl_Hash_SHA2_sha512_update_nblocks
    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:
    - Hacl_Hash_SHA2_sha512_update_last
    - Hacl_Hash_SHA2_sha512_finish
    - Hacl_Hash_SHA2_sha512_init
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA2_sha512_update_nblocks
    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:
    - KRML_HOST_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - KRML_HOST_MALLOC
    - Hacl_Hash_SHA2_sha384_init
    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:
    - Hacl_Hash_SHA2_sha384_update_nblocks
    - FStar_UInt128_add
    - Hacl_Hash_SHA2_sha384_update_last
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    - Hacl_Hash_SHA2_sha384_finish
    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:
    - Hacl_Hash_SHA2_sha384_update_nblocks
    - Hacl_Hash_SHA2_sha384_update_last
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA2_sha384_finish
    - Hacl_Hash_SHA2_sha384_init
    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:
    - FStar_UInt128_shift_right
    - KRML_MAYBE_FOR12
    - KRML_MAYBE_FOR16
    - memcpy
    - FStar_UInt128_uint128_to_uint64
    - KRML_MAYBE_FOR4
    - load64_le
    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:
    - KRML_MAYBE_FOR2
    - load64_le
    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:
    - Lib_Memzero0_memzero
    - update_block
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    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:
    - update_block
    - FStar_UInt128_uint64_to_uint128
    - KRML_MAYBE_UNUSED_VAR
    - FStar_UInt128_add_mod
    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:
    - Lib_Memzero0_memzero
    - update_block
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    - FStar_UInt128_add_mod
    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: 25
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - update_blocks
    - 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:
    - store64_le
    - memcpy
    - Lib_Memzero0_memzero
    - KRML_MAYBE_FOR4
    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_HOST_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memset
    - memcpy
    - KRML_HOST_MALLOC
    - KRML_MAYBE_FOR2
    - load64_le
    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_UNUSED_VAR
    - memset
    - memcpy
    - KRML_MAYBE_FOR2
    - load64_le
    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
    - KRML_MAYBE_UNUSED_VAR
    - reset_raw
    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:
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    - Hacl_Hash_Blake2b_update_multi
    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
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    - Hacl_Hash_Blake2b_finish
    - 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_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memcpy
    - KRML_HOST_MALLOC
    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:
    - Lib_Memzero0_memzero
    - Hacl_Hash_Blake2b_finish
    - update
    - Hacl_Hash_Blake2b_init
    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:
    - Lib_Memzero0_memzero
    - update
    - Hacl_Hash_Blake2b_finish
    - KRML_MAYBE_FOR2
    - load64_le
    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:
    - vreinterpretq_u32_u64
    - vld1q_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: 833
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 833
    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: 836
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 836
    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: 839
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 839
    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: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    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: 845
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 845
    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: 848
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 848
    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: 851
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 851
    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: 854
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 854
    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: 857
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 857
    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: 860
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 860
    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: 863
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 863
    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: 866
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 866
    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: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    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: 872
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 872
    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: 875
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 875
    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: 878
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 878
    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: 881
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 881
    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: 884
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 884
    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: 887
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 887
    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: 891
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 891
    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: 894
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 894
    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: 897
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 897
    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: 900
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 900
    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: 904
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 904
    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: 907
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 907
    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: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    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: 913
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 913
    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: 916
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 916
    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: 919
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 919
    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: 922
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 922
    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: 926
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 926
    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: 929
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 929
    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: 932
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 932
    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:
    - KRML_HOST_FREE
    - KRML_ALIGNED_FREE
    - Hacl_Hash_Blake2b_Simd256_malloc_internal_state_with_key
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - Hacl_Hash_Blake2s_Simd128_malloc_internal_state_with_key
    - KRML_HOST_EXIT
    - KRML_HOST_MALLOC
    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: 69
    functionsReached:
    - Hacl_Hash_SHA2_sha224_init
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_Blake2s_Simd128_init
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA1_init
    - Hacl_Hash_SHA2_sha512_init
    - Hacl_Hash_SHA3_init_
    - Hacl_Hash_SHA2_sha256_init
    - Hacl_Hash_Blake2s_init
    - Hacl_Hash_MD5_init
    - Hacl_Hash_Blake2b_Simd256_init
    - Hacl_Hash_Blake2b_init
    - Hacl_Hash_SHA2_sha384_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_sha384_update_nblocks
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_Blake2s_Simd128_update_multi_no_inline
    - Hacl_Hash_SHA3_update_multi_sha3
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - KRML_HOST_EPRINTF
    - Hacl_Hash_Blake2b_Simd256_update_multi_no_inline
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA1_update_multi
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_Blake2s_update_multi
    - Hacl_Hash_MD5_update_multi
    - Hacl_Hash_SHA2_sha512_update_nblocks
    - Hacl_Hash_Blake2b_update_multi
    - Hacl_Hash_SHA2_sha224_update_nblocks
    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_update_last
    - Hacl_Hash_SHA2_sha512_update_last
    - Hacl_Hash_SHA1_update_last
    - Hacl_Hash_MD5_update_last
    - FStar_UInt128_add
    - Hacl_Hash_SHA2_sha384_update_last
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_Blake2b_Simd256_update_last_no_inline
    - Hacl_Hash_Blake2s_Simd128_update_last_no_inline
    - Hacl_Hash_SHA2_sha224_update_last
    - Hacl_Hash_Blake2b_update_last
    - Hacl_Hash_SHA2_sha256_update_last
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - FStar_UInt128_uint64_to_uint128
    - 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_SHA2_sha224_finish
    - store64_le
    - Hacl_Hash_SHA1_finish
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_Blake2b_Simd256_finish
    - Hacl_Hash_SHA2_sha512_finish
    - Hacl_Hash_SHA2_sha256_finish
    - Hacl_Hash_Blake2s_Simd128_finish
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - Hacl_Hash_MD5_finish
    - memcpy
    - Hacl_Hash_Blake2s_finish
    - Hacl_Hash_Blake2b_finish
    - Hacl_Hash_SHA2_sha384_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_FREE
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - KRML_ALIGNED_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: 31
    functionsReached:
    - KRML_MAYBE_UNUSED_VAR
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memcpy
    - Hacl_Hash_Blake2s_Simd128_copy_internal_state
    - Hacl_Hash_Blake2b_Simd256_copy_internal_state
    - KRML_EABORT
    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_SHA3_sha3_384
    - Hacl_Hash_SHA2_hash_512
    - Hacl_Hash_Blake2s_Simd128_hash_with_key
    - Hacl_Hash_Blake2b_hash_with_key
    - KRML_HOST_EPRINTF
    - Hacl_Hash_SHA1_hash_oneshot
    - Hacl_Hash_Blake2s_hash_with_key
    - Hacl_Hash_Blake2b_Simd256_hash_with_key
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA3_sha3_224
    - Hacl_Hash_SHA2_hash_384
    - Hacl_Hash_SHA2_hash_256
    - Hacl_Hash_SHA3_sha3_256
    - Hacl_Hash_MD5_hash_oneshot
    - Hacl_Hash_SHA3_sha3_512
    - Hacl_Hash_SHA2_hash_224
    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
    - hash
    - alg_of_impl
    - memcpy
    - hash_len
    - block_len
    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:
    - impl_of_state
    - init
    - alg_of_impl
    - memset
    - update_multi
    - block_len
    - wrap_key
    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:
    - impl_of_state
    - finish
    - alg_of_impl
    - hash_len
    - block_len
    - update_last
    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_HOST_FREE
    - init0
    - free_
    - dsnd__Hacl_Agile_Hash_impl_uint32_t
    - KRML_CHECK_SIZE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - alg_of_impl
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    - malloc_
    - block_len
    - KRML_HOST_MALLOC
    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:
    - is_blake2b_256
    - malloc_internal
    - is_blake2s_128
    - 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:
    - init0
    - KRML_MAYBE_UNUSED_VAR
    - alg_of_impl
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    - Hacl_Streaming_HMAC_index_of_state
    - block_len
    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:
    - reset_internal
    - Hacl_Streaming_HMAC_get_impl
    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:
    - alg_of_impl
    - max_input_len64
    - update_multi
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    - memcpy
    - Hacl_Streaming_HMAC_index_of_state
    - block_len
    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: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2383,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2384,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2387,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2391,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - state
    - output
    - digest_length
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2283
    functionDepth: 6
    functionLinenumber: 2283
    functionLinenumberEnd: 2392
    functionName: Hacl_Streaming_HMAC_digest
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_FREE
    - copy
    - finish0
    - free_
    - KRML_MAYBE_UNUSED_VAR
    - dsnd__Hacl_Agile_Hash_impl_uint32_t
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - alg_of_impl
    - update_multi
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    - malloc_
    - Hacl_Streaming_HMAC_index_of_state
    - update_last
    - block_len
    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:2397,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2398,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2404,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2405,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2406,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2394
    functionDepth: 4
    functionLinenumber: 2394
    functionLinenumberEnd: 2408
    functionName: Hacl_Streaming_HMAC_free
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_FREE
    - Hacl_Streaming_HMAC_index_of_state
    - 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:2417,1
    - Dst: KRML_CHECK_SIZE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2418,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2419,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2419,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2419,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2422,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2422,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2422,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2422,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2428,1
    - Dst: block_len
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2430,1
    - Dst: alg_of_impl
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2430,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2430,1
    - Dst: malloc_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2431,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2431,1
    - Dst: malloc_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2444,1
    - Dst: dfst__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2444,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2447,1
    - Dst: dsnd__Hacl_Agile_Hash_impl_uint32_t
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2461,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2468,1
    - Dst: copy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2480,1
    - Dst: copy
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2481,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2495,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2506,1
    - Dst: free_
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2507,1
    - Dst: KRML_HOST_FREE
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2508,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2515,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2516,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2520,1
    - Dst: KRML_HOST_EXIT
      Src: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c:2524,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 1
    argNames:
    - state
    argTypes:
    - Hacl_Streaming_HMAC_agile_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2410
    functionDepth: 4
    functionLinenumber: 2410
    functionLinenumberEnd: 2525
    functionName: Hacl_Streaming_HMAC_copy
    functionSourceFile: /src/cpython/Modules/_hacl/Hacl_Streaming_HMAC.c
    functionUses: 1
    functionsReached:
    - KRML_HOST_FREE
    - copy
    - free_
    - dsnd__Hacl_Agile_Hash_impl_uint32_t
    - KRML_CHECK_SIZE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - alg_of_impl
    - KRML_HOST_MALLOC
    - dfst__Hacl_Agile_Hash_impl_uint32_t
    - memcpy
    - malloc_
    - Hacl_Streaming_HMAC_index_of_state
    - block_len
    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:
    - Lib_IntVector_Intrinsics_vec256_xor
    - Lib_IntVector_Intrinsics_vec256_rotate_right64
    - FStar_UInt128_shift_right
    - KRML_MAYBE_FOR12
    - Lib_IntVector_Intrinsics_vec256_add64
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_load64s
    - KRML_MAYBE_FOR16
    - memcpy
    - Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
    - FStar_UInt128_uint128_to_uint64
    - KRML_POST_ALIGN
    - load64_le
    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:
    - Lib_IntVector_Intrinsics_vec256_load64s
    - KRML_MAYBE_FOR2
    - 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:
    - Lib_Memzero0_memzero
    - update_block
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    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:
    - update_block
    - FStar_UInt128_uint64_to_uint128
    - KRML_MAYBE_UNUSED_VAR
    - FStar_UInt128_add_mod
    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:
    - Lib_Memzero0_memzero
    - update_block
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    - FStar_UInt128_add_mod
    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_multi
    - Hacl_Hash_Blake2b_Simd256_update_last
    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: 27
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - update_blocks
    - 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:
    - Lib_IntVector_Intrinsics_vec256_store64_le
    - Lib_Memzero0_memzero
    - memcpy
    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:
    - Lib_IntVector_Intrinsics_vec256_store64_le
    - KRML_MAYBE_FOR4
    - load64_le
    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:
    - memset
    - KRML_ALIGNED_MALLOC
    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_PRE_ALIGN
    - KRML_POST_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:
    - KRML_PRE_ALIGN
    - Hacl_Hash_Blake2b_Simd256_update_last
    - KRML_POST_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_HOST_FREE
    - KRML_ALIGNED_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_ALIGNED_MALLOC
    - KRML_HOST_EXIT
    - memset
    - memcpy
    - Lib_IntVector_Intrinsics_vec256_load64s
    - KRML_HOST_MALLOC
    - KRML_MAYBE_FOR2
    - load64_le
    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_UNUSED_VAR
    - Lib_IntVector_Intrinsics_vec256_load64s
    - memset
    - memcpy
    - KRML_MAYBE_FOR2
    - load64_le
    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
    - KRML_MAYBE_UNUSED_VAR
    - reset_raw
    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:
    - Hacl_Hash_Blake2b_Simd256_update_multi
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    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:
    - Hacl_Hash_Blake2b_Simd256_finish
    - Hacl_Hash_Blake2b_Simd256_update_multi
    - KRML_PRE_ALIGN
    - FStar_UInt128_uint64_to_uint128
    - memcpy
    - Hacl_Hash_Blake2b_Simd256_update_last
    - KRML_POST_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_HOST_FREE
    - KRML_ALIGNED_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:
    - KRML_HOST_FREE
    - KRML_ALIGNED_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_ALIGNED_MALLOC
    - KRML_HOST_EXIT
    - memset
    - memcpy
    - KRML_HOST_MALLOC
    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:
    - Hacl_Hash_Blake2b_Simd256_finish
    - Lib_Memzero0_memzero
    - KRML_PRE_ALIGN
    - update
    - Hacl_Hash_Blake2b_Simd256_init
    - KRML_POST_ALIGN
    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:
    - Hacl_Hash_Blake2b_Simd256_finish
    - Lib_Memzero0_memzero
    - KRML_POST_ALIGN
    - KRML_PRE_ALIGN
    - update
    - Lib_IntVector_Intrinsics_vec256_load64s
    - KRML_MAYBE_FOR2
    - load64_le
    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:
    - KRML_MAYBE_FOR5
    - load64_le
    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:
    - block_len
    - memcpy
    - KRML_MAYBE_UNUSED_VAR
    - absorb_inner_32
    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
    - absorb_inner_32
    - memcpy
    - block_len
    - load64_le
    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:
    - store64_le
    - KRML_MAYBE_FOR5
    - memcpy
    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_HOST_FREE
    - KRML_CHECK_SIZE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA3_init_
    - KRML_HOST_MALLOC
    - block_len
    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_HOST_FREE
    - KRML_CHECK_SIZE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memcpy
    - KRML_HOST_MALLOC
    - block_len
    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:
    - block_len
    - Hacl_Hash_SHA3_update_multi_sha3
    - memcpy
    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:
    - Hacl_Hash_SHA3_update_multi_sha3
    - memcpy
    - hash_len
    - block_len
    - squeeze
    - 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:
    - store64_le
    - KRML_MAYBE_FOR5
    - Hacl_Hash_SHA3_absorb_inner_32
    - memcpy
    - load64_le
    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:
    - store64_le
    - KRML_MAYBE_FOR5
    - Hacl_Hash_SHA3_absorb_inner_32
    - memcpy
    - load64_le
    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:
    - store64_le
    - KRML_MAYBE_FOR5
    - Hacl_Hash_SHA3_absorb_inner_32
    - memcpy
    - load64_le
    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:
    - store64_le
    - KRML_MAYBE_FOR5
    - Hacl_Hash_SHA3_absorb_inner_32
    - memcpy
    - load64_le
    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:
    - store64_le
    - KRML_MAYBE_FOR5
    - Hacl_Hash_SHA3_absorb_inner_32
    - memcpy
    - load64_le
    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:
    - store64_le
    - KRML_MAYBE_FOR5
    - Hacl_Hash_SHA3_absorb_inner_32
    - memcpy
    - load64_le
    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:
    - Hacl_Hash_SHA3_absorb_inner_32
    - memcpy
    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:
    - Hacl_Hash_SHA3_absorb_inner_32
    - memcpy
    - 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:
    - store64_le
    - KRML_MAYBE_FOR5
    - memcpy
    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: 29
    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: 6
    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:
    - KRML_MAYBE_FOR5
    - store32_be
    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:
    - pad
    - Hacl_Hash_SHA1_update_multi
    - memcpy
    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_multi
    - Hacl_Hash_SHA1_finish
    - Hacl_Hash_SHA1_update_last
    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:
    - KRML_HOST_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - Hacl_Hash_SHA1_init
    - KRML_HOST_MALLOC
    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:
    - Hacl_Hash_SHA1_update_multi
    - memcpy
    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:
    - Hacl_Hash_SHA1_update_multi
    - Hacl_Hash_SHA1_finish
    - memcpy
    - Hacl_Hash_SHA1_update_last
    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_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    - memcpy
    - KRML_HOST_MALLOC
    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:
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_MD5_update_last
    - Hacl_Hash_MD5_finish
    - memset
    - memcpy
    - Hacl_Hash_MD5_update_multi
    - Hacl_Hash_MD5_init
    - 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_finish
    - Hacl_Hash_SHA1_update_last
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_SHA1_hash_oneshot
    - Hacl_Hash_SHA1_init
    - Hacl_Hash_SHA1_update_multi
    - memset
    - memcpy
    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_finish
    - Hacl_Hash_SHA2_sha224_init
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_SHA2_sha224_update_last
    - memset
    - memcpy
    - KRML_MAYBE_FOR8
    - Hacl_Hash_SHA2_hash_224
    - Hacl_Hash_SHA2_sha224_update_nblocks
    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:
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_SHA2_sha256_finish
    - Hacl_Hash_SHA2_sha256_update_nblocks
    - Hacl_Hash_SHA2_sha256_update_last
    - Hacl_Hash_SHA2_hash_256
    - memset
    - memcpy
    - Hacl_Hash_SHA2_sha256_init
    - KRML_MAYBE_FOR8
    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:
    - KRML_MAYBE_UNUSED_VAR
    - FStar_UInt128_add
    - Hacl_Hash_SHA2_sha384_update_nblocks
    - Hacl_Hash_SHA2_sha384_update_last
    - Hacl_Hash_SHA2_hash_384
    - memset
    - memcpy
    - FStar_UInt128_uint64_to_uint128
    - KRML_MAYBE_FOR8
    - Hacl_Hash_SHA2_sha384_finish
    - Hacl_Hash_SHA2_sha384_init
    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:
    - Hacl_Hash_SHA2_sha512_update_last
    - Hacl_Hash_SHA2_hash_512
    - KRML_MAYBE_UNUSED_VAR
    - FStar_UInt128_add
    - Hacl_Hash_SHA2_sha512_finish
    - Hacl_Hash_SHA2_sha512_init
    - memset
    - memcpy
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_SHA2_sha512_update_nblocks
    - KRML_MAYBE_FOR8
    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:
    - store64_le
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_SHA3_update_multi_sha3
    - Hacl_Hash_SHA3_sha3_224
    - Hacl_Hash_SHA3_init_
    - memset
    - memcpy
    - 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:
    - store64_le
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_SHA3_update_multi_sha3
    - Hacl_Hash_SHA3_init_
    - memset
    - memcpy
    - Hacl_Hash_SHA3_sha3_256
    - 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_sha3_384
    - store64_le
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_SHA3_update_multi_sha3
    - Hacl_Hash_SHA3_init_
    - memset
    - 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:
    - store64_le
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_SHA3_update_multi_sha3
    - Hacl_Hash_SHA3_init_
    - memset
    - memcpy
    - Hacl_Hash_SHA3_sha3_512
    - 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:
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Hash_Blake2s_hash_with_key
    - memset
    - Hacl_Hash_Blake2s_init
    - memcpy
    - Hacl_Hash_Blake2s_update_multi
    - Hacl_Hash_Blake2s_finish
    - Hacl_Hash_Blake2s_update_last
    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:
    - KRML_MAYBE_UNUSED_VAR
    - FStar_UInt128_add
    - Hacl_Hash_Blake2b_hash_with_key
    - Hacl_Hash_Blake2b_update_last
    - memset
    - memcpy
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Hash_Blake2b_finish
    - Hacl_Hash_Blake2b_init
    - 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_POST_ALIGN
    - Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    - Lib_IntVector_Intrinsics_vec128_xor
    - KRML_PRE_ALIGN
    - KRML_MAYBE_FOR16
    - memcpy
    - Lib_IntVector_Intrinsics_vec128_rotate_right32
    - KRML_MAYBE_FOR10
    - load32_le
    - Lib_IntVector_Intrinsics_vec128_load32s
    - Lib_IntVector_Intrinsics_vec128_add32
    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
    - load32_le
    - Lib_IntVector_Intrinsics_vec128_load32s
    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:
    - Lib_Memzero0_memzero
    - update_block
    - memcpy
    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:
    - Lib_Memzero0_memzero
    - update_block
    - memcpy
    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: 30
    functionsReached:
    - update_key
    - update_blocks
    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:
    - Lib_Memzero0_memzero
    - memcpy
    - Lib_IntVector_Intrinsics_vec128_store32_le
    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:
    - KRML_MAYBE_FOR4
    - load32_le
    - Lib_IntVector_Intrinsics_vec128_store32_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:
    - memset
    - KRML_ALIGNED_MALLOC
    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_PRE_ALIGN
    - KRML_POST_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:
    - KRML_PRE_ALIGN
    - Hacl_Hash_Blake2s_Simd128_update_last
    - KRML_POST_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_HOST_FREE
    - KRML_ALIGNED_FREE
    - KRML_MAYBE_FOR2
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_ALIGNED_MALLOC
    - KRML_HOST_EXIT
    - memset
    - memcpy
    - KRML_HOST_MALLOC
    - load32_le
    - Lib_IntVector_Intrinsics_vec128_load32s
    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_UNUSED_VAR
    - Lib_IntVector_Intrinsics_vec128_load32s
    - memset
    - memcpy
    - load32_le
    - KRML_MAYBE_FOR2
    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
    - KRML_MAYBE_UNUSED_VAR
    - reset_raw
    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:
    - Hacl_Hash_Blake2s_Simd128_update_multi
    - memcpy
    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_PRE_ALIGN
    - Hacl_Hash_Blake2s_Simd128_update_last
    - memcpy
    - Hacl_Hash_Blake2s_Simd128_update_multi
    - KRML_POST_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_HOST_FREE
    - KRML_ALIGNED_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:
    - KRML_HOST_FREE
    - KRML_ALIGNED_FREE
    - KRML_HOST_CALLOC
    - KRML_HOST_EPRINTF
    - KRML_ALIGNED_MALLOC
    - KRML_HOST_EXIT
    - memset
    - memcpy
    - KRML_HOST_MALLOC
    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_init
    - Lib_Memzero0_memzero
    - Hacl_Hash_Blake2s_Simd128_finish
    - KRML_PRE_ALIGN
    - update
    - KRML_POST_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:
    - Lib_IntVector_Intrinsics_vec128_load32s
    - Lib_Memzero0_memzero
    - Hacl_Hash_Blake2s_Simd128_finish
    - KRML_POST_ALIGN
    - KRML_PRE_ALIGN
    - update
    - load32_le
    - KRML_MAYBE_FOR2
    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: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    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: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    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: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    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: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    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: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    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: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    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: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    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: 215
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 215
    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:
    - LOW64_OF
    - HIGH64_OF
    - load64_le
    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:
    - store64_le
    - HIGH64_OF
    - LOW64_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
    - HIGH64_OF
    - load64_be
    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
    - HIGH64_OF
    - store64_be
    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_small
    - FStar_UInt128_shift_left_large
    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_small
    - FStar_UInt128_shift_right_large
    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_gte_mask
    - FStar_UInt64_eq_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: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    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: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    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: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    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: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    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: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    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: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    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: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    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: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    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: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    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: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    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: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    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: 226
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 226
    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: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    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: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    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: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    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: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    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: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    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: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    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: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    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: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    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: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    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: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    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: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    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: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    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: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    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: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    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: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    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: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    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: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    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: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    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: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    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: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    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: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    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: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    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: 324
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 324
    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: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    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: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    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: 340
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 340
    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: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    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: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    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: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    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: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    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: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    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: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    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: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    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: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    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: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    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: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    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: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    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: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    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: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    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: 382
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 382
    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: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    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: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    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: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    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: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    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: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    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: 400
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 400
    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: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    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: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    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: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    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: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    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: 416
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 416
    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: 418
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 418
    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: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    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: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    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: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    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: 430
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 430
    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
    - Py_fclose
    - PyBytes_FromStringAndSize
    - Py_ARRAY_LENGTH
    - NULLABLE
    - Py_fopen
    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:
    - PyErr_NoMemory
    - Py_fclose
    - PyBytes_FromString
    - Py_UniversalNewlineFgets
    - PyMem_Free
    - PyMem_Malloc
    - Py_fopen
    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:
    - PyUnstable_Long_IsCompact
    - Py_BuildValue
    - PyLong_Check
    - assert
    - PyUnstable_Long_CompactValue
    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:
    - PyArg_ParseTuple
    - PyLong_FromUnicodeObject
    - NULLABLE
    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:
    - PyErr_SetString
    - PyBuffer_Release
    - PyLong_AsNativeBytes
    - PyLong_FromSsize_t
    - PyArg_ParseTuple
    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:
    - PyErr_SetString
    - PyBuffer_Release
    - PyLong_FromNativeBytes
    - PyArg_ParseTuple
    - PyLong_FromUnsignedNativeBytes
    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_FromLong
    - PyLong_GetSign
    - NULLABLE
    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:
    - PyLong_AsPid
    - PyLong_FromPid
    - PyErr_Occurred
    - NULLABLE
    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.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: (export_long._reserved == 0)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/cpython/Modules/_testcapi/long.c
    - condition: (export_long.value == 0)
      pos:
        line_end: 191
        line_start: 191
        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: (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:
    - PyLong_GetNativeLayout
    - PyLong_FreeExport
    - PyList_Append
    - Py_BuildValue
    - PyLong_FromInt64
    - PyList_New
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyLong_Export
    - PyLong_FromUnsignedLong
    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:
    - PyErr_NoMemory
    - assert
    - PyLong_GetNativeLayout
    - PyErr_SetString
    - PyList_GET_ITEM
    - PyLongWriter_Finish
    - PyLong_AsLong
    - PyLongWriter_Create
    - PyErr_Occurred
    - PyMem_Malloc
    - PyArg_ParseTuple
    - memcpy
    - PyMem_Free
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylongwriter_create(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLongWriter_Create
      Src: /src/cpython/Modules/_testcapi/long.c:261,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/long.c:266,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_testcapi/long.c:266,1
    - Dst: PyLongWriter_Finish
      Src: /src/cpython/Modules/_testcapi/long.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_GetNativeLayout()->digit_size == sizeof(digit))
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/cpython/Modules/_testcapi/long.c
    constantsTouched: []
    func_position:
      end: 273
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 273
    functionName: pylongwriter_finish_bug
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - assert
    - PyLong_GetNativeLayout
    - PyLongWriter_Finish
    - PyLongWriter_Create
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pylongwriter_finish_bug(PyObject *module, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Modules/_testcapi/long.c:279,1
    - Dst: layout_to_dict
      Src: /src/cpython/Modules/_testcapi/long.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: get_pylong_layout
    functionSourceFile: /src/cpython/Modules/_testcapi/long.c
    functionUses: 0
    functionsReached:
    - PyLong_GetNativeLayout
    - layout_to_dict
    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:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 308
    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:
    - PyErr_SetString
    - PyFrame_GetLocals
    - 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:
    - PyFrame_GetGlobals
    - PyErr_SetString
    - 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_Check
    - PyFrame_GetGenerator
    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:
    - PyErr_SetString
    - PyFrame_Check
    - PyFrame_GetBuiltins
    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:
    - PyLong_FromLong
    - PyFrame_Check
    - PyFrame_GetLasti
    - PyErr_SetString
    - 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:
    - PyFrame_New
    - PyCode_Check
    - PyThreadState_Get
    - PyErr_SetString
    - PyArg_ParseTuple
    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:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyFrame_Check
    - PyFrame_GetVar
    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:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyFrame_GetVarString
    - PyFrame_Check
    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:
    - fclose
    - PyArg_UnpackTuple
    - Py_IsTrue
    - Py_fopen
    - PyObject_Print
    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
    - PyObject_Print
    - fclose
    - PyArg_UnpackTuple
    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:
    - PyUnicode_FromString
    - Py_SET_REFCNT
    - fclose
    - Py_REFCNT
    - Py_fopen
    - PyObject_Print
    - Py_DECREF
    - PyOS_snprintf
    - PyArg_UnpackTuple
    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:
    - PyUnicode_FromString
    - fclose
    - PyArg_UnpackTuple
    - Py_fopen
    - Py_DECREF
    - PyObject_Print
    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: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:144,1
    - Dst: PyUnstable_Object_IsUniqueReferencedTemporary
      Src: /src/cpython/Modules/_testcapi/object.c:145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:146,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: pyobject_is_unique_temporary_new_object
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnstable_Object_IsUniqueReferencedTemporary
    - PyLong_FromLong
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_is_unique_temporary_new_object(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:156,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:156,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:157,1
    - Dst: PyUnstable_TryIncRef
      Src: /src/cpython/Modules/_testcapi/object.c:157,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:158,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:158,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/object.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(op) == 0)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (Py_REFCNT(op) == 0)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (!PyUnstable_TryIncRef(op))
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: MyObject_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - PyUnstable_TryIncRef
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void MyObject_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/object.c:174,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/object.c:180,1
    - Dst: PyUnstable_EnableTryIncRef
      Src: /src/cpython/Modules/_testcapi/object.c:185,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:190,1
    - Dst: PyUnstable_TryIncRef
      Src: /src/cpython/Modules/_testcapi/object.c:193,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/object.c:194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:199,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:200,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: 189
        line_start: 189
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (MyObject_dealloc_called == 1)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 202
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 202
    functionName: test_py_try_inc_ref
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnstable_EnableTryIncRef
    - assert
    - Py_DECREF
    - PyType_Ready
    - PyObject_New
    - PyUnstable_TryIncRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_py_try_inc_ref(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ThreadId
      Src: /src/cpython/Modules/_testcapi/object.c:213,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:222,1
    - Dst: PyUnstable_IsImmortal
      Src: /src/cpython/Modules/_testcapi/object.c:222,1
    - Dst: PyUnstable_SetImmortal
      Src: /src/cpython/Modules/_testcapi/object.c:223,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:224,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:225,1
    - Dst: PyUnstable_IsImmortal
      Src: /src/cpython/Modules/_testcapi/object.c:225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:226,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:227,1
    - Dst: PyUnstable_IsImmortal
      Src: /src/cpython/Modules/_testcapi/object.c:227,1
    - Dst: PyUnstable_SetImmortal
      Src: /src/cpython/Modules/_testcapi/object.c:230,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:231,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/object.c:234,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:235,1
    - Dst: PyUnstable_IsImmortal
      Src: /src/cpython/Modules/_testcapi/object.c:235,1
    - Dst: PyUnstable_SetImmortal
      Src: /src/cpython/Modules/_testcapi/object.c:236,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:237,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:238,1
    - Dst: PyUnstable_IsImmortal
      Src: /src/cpython/Modules/_testcapi/object.c:238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (rc == 1)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (PyUnstable_IsImmortal(&object))
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (!PyUnstable_IsImmortal(unicode))
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (!PyUnstable_IsImmortal(&object))
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (PyUnstable_IsImmortal(&object))
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (!PyUnstable_IsImmortal(unicode))
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (rc == 0)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (rc == 0)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 241
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 241
    functionName: test_py_set_immortal
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnstable_SetImmortal
    - PyUnstable_IsImmortal
    - _Py_ThreadId
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_py_set_immortal(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/object.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    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:252,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testcapi/object.c:253,1
    - Dst: _test_incref
      Src: /src/cpython/Modules/_testcapi/object.c:253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: test_xincref_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _test_incref
    - PyLong_FromLong
    - Py_XINCREF
    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:264,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/object.c:265,1
    - Dst: _test_incref
      Src: /src/cpython/Modules/_testcapi/object.c:265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: test_incref_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyLong_FromLong
    - _test_incref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_incref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/object.c:276,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: test_xdecref_doesnt_leak
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_xdecref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:284,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    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:292,1
    - Dst: Py_IncRef
      Src: /src/cpython/Modules/_testcapi/object.c:293,1
    - Dst: Py_DecRef
      Src: /src/cpython/Modules/_testcapi/object.c:294,1
    - Dst: Py_DecRef
      Src: /src/cpython/Modules/_testcapi/object.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: test_incref_decref_API
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DecRef
    - Py_IncRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_incref_decref_API(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/object.c:304,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:308,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:308,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:312,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: 307
        line_start: 307
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 315
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 315
    functionName: negative_refcount
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_SET_REFCNT
    - Py_REFCNT
    - assert
    - Py_DECREF
    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:321,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:325,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/object.c:325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:328,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/object.c:333,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: 324
        line_start: 324
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: decref_freed_object
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_REFCNT
    - PyUnicode_FromString
    - assert
    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:345,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/object.c:349,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:350,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:354,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/object.c:360,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:361,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (obj == NULL)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (array[0] == NULL)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (p == array + 1)
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 365
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 365
    functionName: test_py_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyList_New
    - 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:373,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testcapi/object.c:377,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:378,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:381,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/object.c:385,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:386,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/object.c:388,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:389,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:393,1
    - Dst: Py_SETREF
      Src: /src/cpython/Modules/_testcapi/object.c:399,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:400,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:401,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/object.c:405,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/object.c:411,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:412,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:413,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/object.c:417,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:418,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/object.c:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (obj == NULL)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (obj2 == NULL)
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (array[0] == NULL)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (array2[0] == NULL)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (p2 == array2 + 1)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (obj2 == NULL)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (p == array + 1)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (array2[0] == NULL)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/cpython/Modules/_testcapi/object.c
    - condition: (p2 == array2 + 1)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/cpython/Modules/_testcapi/object.c
    constantsTouched: []
    func_position:
      end: 422
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 422
    functionName: test_py_setref
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyList_New
    - 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: 433
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 433
    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: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: 1
    functionLinenumber: 463
    functionLinenumberEnd: 467
    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: 481
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 481
    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: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: 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:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 525
    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:531,1
    - Dst: PyUnstable_Object_IsUniquelyReferenced
      Src: /src/cpython/Modules/_testcapi/object.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - op
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: is_uniquely_referenced
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Object_IsUniquelyReferenced
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_uniquely_referenced(PyObject *self, PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/object.c:541,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/object.c:544,1
    - Dst: PyObject_Dump
      Src: /src/cpython/Modules/_testcapi/object.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 556
    functionName: pyobject_dump
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyObject_Dump
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_dump(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/object.c:564,1
    - Dst: PySentinel_New
      Src: /src/cpython/Modules/_testcapi/object.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 568
    functionName: pysentinel_new
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PySentinel_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysentinel_new(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:573,1
    - Dst: PySentinel_Check
      Src: /src/cpython/Modules/_testcapi/object.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pysentinel_check
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PySentinel_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysentinel_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testcapi/object.c:579,1
    - Dst: PySentinel_CheckExact
      Src: /src/cpython/Modules/_testcapi/object.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: pysentinel_checkexact
    functionSourceFile: /src/cpython/Modules/_testcapi/object.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PySentinel_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysentinel_checkexact(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/object.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 622
    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:
    - PyGC_IsEnabled
    - PyGC_Enable
    - PyErr_Format
    - PyGC_Disable
    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
    - PyType_IS_GC
    - PyErr_Format
    - assert
    - Py_NewRef
    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: (Py_REFCNT(self) > 0)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Modules/_testcapi/gc.c
    - 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
    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:
    - _Py_ResurrectReference
    - Py_SET_REFCNT
    - PyUnicode_InternFromString
    - PyObject_GC_IsTracked
    - _PyType_LookupRef
    - PyType_IS_GC
    - Py_REFCNT
    - PyErr_SetRaisedException
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    - Py_TYPE
    - PyObject_CallOneArg
    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
    - PyType_HasFeature
    - PyErr_Format
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - Py_DECREF
    - PyErr_SetString
    - PyList_New
    - PyUnstable_GC_VisitObjects
    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:
    - PyUnstable_Object_GC_NewWithExtraData
    - PyObject_GC_Track
    - 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_CLEAR
    - Py_NewRef
    - obj_extra_data_get_extra_storage
    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:
    - Py_VISIT
    - obj_extra_data_get_extra_storage
    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:
    - Py_CLEAR
    - obj_extra_data_get_extra_storage
    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:
    - obj_extra_data_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:
    - Py_DECREF
    - PyModule_AddFunctions
    - PyType_FromModuleAndSpec
    - PyModule_AddType
    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:
    - PyComplex_FromCComplex
    - PyArg_Parse
    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
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - 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
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - _Py_c_neg
    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_c_abs
    - Py_BuildValue
    - PyErr_Occurred
    - NULLABLE
    - 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:
    - PyArg_ParseTuple
    - PyCodec_KnownEncoding
    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:
    - PyArg_ParseTuple
    - PyCodec_Encode
    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:
    - PyArg_ParseTuple
    - PyCodec_Decode
    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:
    - PyArg_ParseTuple
    - PyCodec_Encoder
    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:
    - PyArg_ParseTuple
    - PyCodec_Decoder
    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:
    - PyArg_ParseTuple
    - PyCodec_IncrementalEncoder
    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:
    - PyArg_ParseTuple
    - PyCodec_IncrementalDecoder
    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:
    - PyArg_ParseTuple
    - PyCodec_StreamReader
    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:
    - PyArg_ParseTuple
    - PyCodec_StreamWriter
    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:
    - PyArg_ParseTuple
    - PyCodec_RegisterError
    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:
    - PyArg_ParseTuple
    - PyCodec_LookupError
    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:
    - PyCodec_BackslashReplaceErrors
    - assert
    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:
    - PyArg_ParseTuple
    - PyRun_StringFlags
    - NULLABLE
    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:
    - fileno
    - fopen
    - _Py_IsValidFD
    - fclose
    - PyErr_SetFromErrnoWithFilename
    - PyErr_SetString
    - PyRun_FileExFlags
    - Py_XDECREF
    - NULLABLE
    - PyArg_ParseTuple
    - Py_DECREF
    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_FatalError
    - NULLABLE
    - PyObject_GetOptionalAttr
    - Py_UNREACHABLE
    - assert
    - PyArg_ParseTuple
    - Py_NewRef
    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: 42
        line_start: 42
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (value == NULL)
      pos:
        line_end: 45
        line_start: 45
        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:
    - Py_FatalError
    - NULLABLE
    - Py_UNREACHABLE
    - PyObject_GetOptionalAttrString
    - assert
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - PyObject_HasAttrWithError
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_HasAttrStringWithError
    - RETURN_INT
    - NULLABLE
    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: 96
        line_start: 96
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (value == NULL)
      pos:
        line_end: 93
        line_start: 93
        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_FatalError
    - NULLABLE
    - Py_UNREACHABLE
    - assert
    - PyArg_ParseTuple
    - Py_NewRef
    - PyMapping_GetOptionalItemString
    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_FatalError
    - NULLABLE
    - Py_UNREACHABLE
    - assert
    - PyArg_ParseTuple
    - PyMapping_GetOptionalItem
    - Py_NewRef
    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:
    - PyIter_Next
    - PyErr_Occurred
    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: (item == NULL)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Modules/_testcapi/abstract.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 147
        line_start: 147
        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
    - PyIter_NextItem
    - assert
    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:
    - PyArg_ParseTuple
    - PySequence_Fast_GET_ITEM
    - NULLABLE
    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:
    - PyObject_SetAttr
    - PyErr_SetObject
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - Py_TYPE
    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:
    - PyErr_SetObject
    - PyObject_SetAttrString
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - Py_TYPE
    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:
    - PyFunction_GetDefaults
    - Py_NewRef
    - PyErr_Occurred
    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:
    - PyArg_ParseTuple
    - PyFunction_SetDefaults
    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
    - Py_NewRef
    - PyErr_Occurred
    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:
    - PyArg_ParseTuple
    - PyFunction_SetKwDefaults
    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:
    - PyFunction_GetClosure
    - Py_NewRef
    - PyErr_Occurred
    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:
    - PyArg_ParseTuple
    - PyFunction_SetClosure
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_set_closure(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/function.c:129,1
    - Dst: PyFunction_GetAnnotations
      Src: /src/cpython/Modules/_testcapi/function.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: function_get_annotations
    functionSourceFile: /src/cpython/Modules/_testcapi/function.c
    functionUses: 0
    functionsReached:
    - PyFunction_GetAnnotations
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_get_annotations(PyObject *self, PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/function.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    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:
    - RETURN_SIZE
    - PyList_GET_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:
    - PyArg_ParseTuple
    - Py_XNewRef
    - PyList_GET_ITEM
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyList_SET_ITEM
    - Py_XNewRef
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyList_Extend
    - RETURN_INT
    - NULLABLE
    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_SET_ITEM
    - PyLong_FromLong
    - PyLong_AS_LONG
    - PyErr_SetString
    - PyList_GET_ITEM
    - PyList_New
    - PyList_Reverse
    - Py_DECREF
    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:
    - PyArg_ParseTuple
    - PyImport_ImportModuleAttr
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyImport_ImportModuleAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_importmoduleattrstring(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/import.c:37,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapi/import.c:40,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testcapi/import.c:40,1
    - Dst: PyImport_SetLazyImportsMode
      Src: /src/cpython/Modules/_testcapi/import.c:41,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testcapi/import.c:42,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Modules/_testcapi/import.c:42,1
    - Dst: PyImport_SetLazyImportsMode
      Src: /src/cpython/Modules/_testcapi/import.c:43,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/import.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: pyimport_setlazyimportsmode
    functionSourceFile: /src/cpython/Modules/_testcapi/import.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyImport_SetLazyImportsMode
    - PyErr_SetString
    - PyUnicode_AsUTF8
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_setlazyimportsmode(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetLazyImportsMode
      Src: /src/cpython/Modules/_testcapi/import.c:55,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/import.c:57,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/import.c:59,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/import.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: pyimport_getlazyimportsmode
    functionSourceFile: /src/cpython/Modules/_testcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_GetLazyImportsMode
    - PyUnicode_FromString
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_getlazyimportsmode(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/import.c:70,1
    - Dst: PyImport_SetLazyImportsFilter
      Src: /src/cpython/Modules/_testcapi/import.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: pyimport_setlazyimportsfilter
    functionSourceFile: /src/cpython/Modules/_testcapi/import.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyImport_SetLazyImportsFilter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_setlazyimportsfilter(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetLazyImportsFilter
      Src: /src/cpython/Modules/_testcapi/import.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: pyimport_getlazyimportsfilter
    functionSourceFile: /src/cpython/Modules/_testcapi/import.c
    functionUses: 0
    functionsReached:
    - PyImport_GetLazyImportsFilter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyimport_getlazyimportsfilter(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/import.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    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: 29
    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:
    - Py_INCREF
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - assert
    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
    - PyTuple_Size
    - PyErr_SetString
    - PyErr_Restore
    - PyTuple_GetItem
    - PyErr_Occurred
    - 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:
    - PyErr_DisplayException
    - PyErr_Display
    - PyException_GetTraceback
    - Py_XDECREF
    - PyExceptionInstance_Check
    - Py_TYPE
    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: (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
    - condition: (value != UNINITIALIZED_PTR)
      pos:
        line_end: 134
        line_start: 134
        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:
    - assert
    - PyErr_Fetch
    - Py_XDECREF
    - PyErr_SetObject
    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:
    - PyLong_FromLong
    - PyErr_SetObject
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    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
    - PyTuple_Pack
    - PyErr_SetExcInfo
    - Py_XDECREF
    - PyErr_GetExcInfo
    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:
    - assert
    - PyExceptionInstance_Check
    - PyErr_SetHandledException
    - PyErr_GetHandledException
    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:
    - PyErr_WriteUnraisable
    - PyErr_SetRaisedException
    - NULLABLE
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - Py_NewRef
    - PyErr_SetRaisedException
    - NULLABLE
    - PyArg_ParseTuple
    - PyErr_FormatUnraisable
    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:
    - RETURN_SIZE
    - PyUnicodeEncodeError_GetStart
    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:
    - PyArg_ParseTuple
    - PyUnicodeEncodeError_SetStart
    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:
    - PyArg_ParseTuple
    - PyUnicodeDecodeError_SetStart
    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:
    - PyArg_ParseTuple
    - PyUnicodeTranslateError_SetStart
    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:
    - RETURN_SIZE
    - PyUnicodeTranslateError_GetEnd
    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:
    - PyArg_ParseTuple
    - PyUnicodeEncodeError_SetEnd
    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:
    - PyArg_ParseTuple
    - PyUnicodeDecodeError_SetEnd
    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:
    - PyArg_ParseTuple
    - PyUnicodeTranslateError_SetEnd
    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:
    - PyModule_AddFunctions
    - PyModule_AddObjectRef
    - PyType_Ready
    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:
    - strcpy
    - PyErr_SetString
    - memset
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_structmembers_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Free
      Src: /src/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:
    - PyType_FromModuleAndSpec
    - Py_DECREF
    - PyModule_AddObjectRef
    - PyType_Ready
    - PyModule_AddType
    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_acquire
    - _Py_atomic_fence_release
    - _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: (_Py_atomic_load_ptr_acquire(&x) == y)
      pos:
        line_end: 139
        line_start: 139
        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
    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_load_ptr_acquire
    - _Py_atomic_store_ptr_release
    - assert
    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_store_int_release
    - _Py_atomic_load_int_acquire
    - 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: module_from_slots_empty
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromSlotsAndSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_empty(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:26,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: module_from_slots_minimal
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_minimal(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: module_from_slots_null
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromSlotsAndSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_null(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:42,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:43,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:44,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:45,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: module_from_slots_name
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_name(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:55,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:56,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:57,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:58,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: module_from_slots_doc
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_doc(PyObject *self, PyObject *spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:68,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testcapi/module.c:69,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:70,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:71,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: module_from_slots_size
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PySlot_SIZE
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_size(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/module.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: a_method
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      a_method(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:96,1
    - Dst: PySlot_STATIC_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:97,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:98,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:99,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: module_from_slots_methods
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    - PySlot_STATIC_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_methods(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: noop_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int noop_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: noop_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int noop_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: noop_free
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noop_free(void *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:115,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testcapi/module.c:116,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testcapi/module.c:117,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testcapi/module.c:118,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:119,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:120,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:123,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapi/module.c:127,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/module.c:127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/module.c:128,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapi/module.c:131,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/module.c:131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/module.c:132,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapi/module.c:135,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/module.c:135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/module.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 140
    functionName: module_from_slots_gc
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_Add
    - Py_DECREF
    - PySlot_FUNC
    - PySlot_DATA
    - PyModule_FromSlotsAndSpec
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_gc(PyObject *self, PyObject *spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:148,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:149,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:150,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:151,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:154,1
    - Dst: PyModule_GetToken
      Src: /src/cpython/Modules/_testcapi/module.c:159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/module.c:160,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:163,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:164,1
    - Dst: PyModule_GetToken_DuringGC
      Src: /src/cpython/Modules/_testcapi/module.c:164,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (got_token == &test_token)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/cpython/Modules/_testcapi/module.c
    - condition: (PyModule_GetToken_DuringGC(mod, &got_token) >= 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/cpython/Modules/_testcapi/module.c
    - condition: (got_token == &test_token)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/cpython/Modules/_testcapi/module.c
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: module_from_slots_token
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    - PyModule_GetToken
    - PyModule_GetToken_DuringGC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_token(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testcapi/module.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: simple_exec
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    linkageType: ''
    returnType: int
    signature: int simple_exec(PyObject *module)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:179,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testcapi/module.c:180,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:181,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:182,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:185,1
    - Dst: PyObject_HasAttrStringWithError
      Src: /src/cpython/Modules/_testcapi/module.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/module.c:191,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:194,1
    - Dst: PyModule_Exec
      Src: /src/cpython/Modules/_testcapi/module.c:195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/module.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (res == 0)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/cpython/Modules/_testcapi/module.c
    constantsTouched: []
    func_position:
      end: 200
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 200
    functionName: module_from_slots_exec
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrStringWithError
    - PyModule_Exec
    - assert
    - Py_DECREF
    - PySlot_FUNC
    - PySlot_DATA
    - PyModule_FromSlotsAndSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_exec(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:205,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/module.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts:
    - condition: (!def)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/cpython/Modules/_testcapi/module.c
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: create_attr_from_spec
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_attr_from_spec(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:213,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testcapi/module.c:214,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:215,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:216,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: module_from_slots_create
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PySlot_FUNC
    - PySlot_DATA
    - PyModule_FromSlotsAndSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_create(PyObject *self, PyObject *spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/module.c:226,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_testcapi/module.c:230,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/module.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: slot_from_object
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyErr_Occurred
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int slot_from_object(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slot_from_object
      Src: /src/cpython/Modules/_testcapi/module.c:240,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:245,1
    - Dst: PySlot_PTR_STATIC
      Src: /src/cpython/Modules/_testcapi/module.c:246,1
    - Dst: PySlot_PTR_STATIC
      Src: /src/cpython/Modules/_testcapi/module.c:247,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:248,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:249,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 253
    functionName: module_from_slots_repeat_slot
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - slot_from_object
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    - PySlot_PTR_STATIC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_repeat_slot(PyObject *self, PyObject *spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slot_from_object
      Src: /src/cpython/Modules/_testcapi/module.c:258,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:263,1
    - Dst: PySlot_PTR_STATIC
      Src: /src/cpython/Modules/_testcapi/module.c:264,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:265,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:266,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: module_from_slots_null_slot
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - slot_from_object
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    - PySlot_PTR_STATIC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots_null_slot(PyObject *self, PyObject *spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: slot_from_object
      Src: /src/cpython/Modules/_testcapi/module.c:275,1
    - Dst: PyModule_FromDefAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:294,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (result == NULL)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Modules/_testcapi/module.c
    constantsTouched: []
    func_position:
      end: 297
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 297
    functionName: module_from_def_slot
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - slot_from_object
    - PyModule_FromDefAndSpec
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_def_slot(PyObject *self, PyObject *spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_FromDefAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:331,1
    - Dst: PyModule_Exec
      Src: /src/cpython/Modules/_testcapi/module.c:332,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:336,1
    - Dst: PyModule_GetStateSize
      Src: /src/cpython/Modules/_testcapi/module.c:336,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:337,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testcapi/module.c:338,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyModule_GetStateSize(module, &size) == 0)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/cpython/Modules/_testcapi/module.c
    - condition: (size == 123)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/cpython/Modules/_testcapi/module.c
    - condition: (def == &parrot_def)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Modules/_testcapi/module.c
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: module_from_def_slot_parrot
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromDefAndSpec
    - PyModule_GetStateSize
    - PyModule_Exec
    - PyModule_GetDef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_def_slot_parrot(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:351,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:352,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:353,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:354,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 358
    functionName: module_from_bad_abiinfo
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_bad_abiinfo(PyObject *self, PyObject *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:369,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:370,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:371,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:372,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:373,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:374,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 378
    functionName: module_from_multiple_abiinfo
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_multiple_abiinfo(PyObject *self, PyObject *spec)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:384,1
    - Dst: PyObject_HasAttrString
      Src: /src/cpython/Modules/_testcapi/module.c:384,1
    - Dst: PyObject_GetOptionalAttrString
      Src: /src/cpython/Modules/_testcapi/module.c:388,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_testcapi/module.c:393,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Modules/_testcapi/module.c:395,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/module.c:396,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/module.c:400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/module.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_HasAttrString(module, "a_number"))
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Modules/_testcapi/module.c
    constantsTouched: []
    func_position:
      end: 404
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 404
    functionName: another_exec
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyNumber_Negative
    - PyObject_HasAttrString
    - PyObject_SetAttrString
    - PyObject_GetOptionalAttrString
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int another_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_FromDefAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 423
    functionName: module_from_def_multiple_exec
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_FromDefAndSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_def_multiple_exec(PyObject *self, PyObject *spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Exec
      Src: /src/cpython/Modules/_testcapi/module.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - module
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 432
    functionName: pymodule_exec
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_Exec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymodule_exec(PyObject *self, PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetToken
      Src: /src/cpython/Modules/_testcapi/module.c:438,1
    - Dst: PyModule_GetToken_DuringGC
      Src: /src/cpython/Modules/_testcapi/module.c:440,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:441,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/module.c:442,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/module.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - module
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (token == token_duringgc)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/cpython/Modules/_testcapi/module.c
    - condition: (res == res_duringgc)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Modules/_testcapi/module.c
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: pymodule_get_token
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyModule_GetToken
    - PyModule_GetToken_DuringGC
    - PyLong_FromVoidPtr
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymodule_get_token(PyObject *self, PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testcapi/module.c:452,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/module.c:453,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/module.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - module
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 457
    functionName: pymodule_get_def
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - PyModule_GetDef
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymodule_get_def(PyObject *self, PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetStateSize
      Src: /src/cpython/Modules/_testcapi/module.c:463,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/module.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - module
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 467
    functionName: pymodule_get_state_size
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyModule_GetStateSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymodule_get_state_size(PyObject *self, PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/module.c:474,1
    - Dst: PyModule_FromDefAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 491
    functionName: module_from_null_def_slot
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyModule_FromDefAndSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_null_def_slot(PyObject* Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testcapi/module.c:501,1
    - Dst: PyModule_FromDefAndSpec
      Src: /src/cpython/Modules/_testcapi/module.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 514
    functionName: module_from_def_nonstatic_nested
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 0
    functionsReached:
    - PySlot_DATA
    - PyModule_FromDefAndSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_def_nonstatic_nested(PyObject* Py_UNUSED(module), PyObject *spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:548,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:549,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:550,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:551,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:552,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:553,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:554,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:555,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:556,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:557,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:558,1
    - Dst: ADD_INT_MACRO
      Src: /src/cpython/Modules/_testcapi/module.c:559,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapi/module.c:561,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/module.c:562,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/module.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 567
    functionName: _PyTestCapi_Init_Module
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 1
    functionsReached:
    - ADD_INT_MACRO
    - PyModule_AddFunctions
    - PyLong_FromVoidPtr
    - PyModule_Add
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Module(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 548
    functionName: ADD_INT_MACRO
    functionSourceFile: /src/cpython/Modules/_testcapi/module.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_MACRO(C)
  - 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:
    - PyUnicode_FromString
    - PyImport_ImportModule
    - PyLong_FromLong
    - PyObject_SetAttrString
    - PyHash_GetFuncDef
    - Py_DECREF
    - PyObject_CallMethod
    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:
    - PyLong_FromLongLong
    - Py_BUILD_ASSERT
    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:
    - Py_HashPointer
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    - long_from_hash
    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:
    - PyArg_ParseTuple
    - long_from_hash
    - Py_HashBuffer
    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:
    - PyObject_GenericHash
    - long_from_hash
    - 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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    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:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    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: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    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:109,1
    - Dst: PyMemAllocatorEx*::malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: hook_fmalloc
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - fm_nomemory
    - PyMemAllocatorEx*::malloc
    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:119,1
    - Dst: PyMemAllocatorEx*::calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    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:129,1
    - Dst: PyMemAllocatorEx*::realloc
      Src: /src/cpython/Modules/_testcapi/mem.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: hook_frealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - fm_nomemory
    - PyMemAllocatorEx*::realloc
    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:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    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:155,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:156,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:157,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:160,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:163,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 167
    functionName: fm_setup_hooks
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_GetAllocator
    - PyMem_SetAllocator
    linkageType: ''
    returnType: void
    signature: void fm_setup_hooks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:174,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:175,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 178
    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:188,1
    - Dst: fm_setup_hooks
      Src: /src/cpython/Modules/_testcapi/mem.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 193
    functionName: set_nomemory
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - fm_setup_hooks
    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:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 200
    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:209,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:217,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:218,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_testcapi/mem.c:226,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:229,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:232,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:250,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/_testcapi/mem.c:260,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_testcapi/mem.c:263,1
    - Dst: PyObject_Realloc
      Src: /src/cpython/Modules/_testcapi/mem.c:266,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:277,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:285,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:288,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:291,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:295,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_testcapi/mem.c:306,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:309,1
    - Dst: PyObject_Calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:312,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:323,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:332,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:335,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:338,1
    - Dst: CHECK_CTX
      Src: /src/cpython/Modules/_testcapi/mem.c:342,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/mem.c:348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:352,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Modules/_testcapi/mem.c:355,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 130
    argCount: 1
    argNames:
    - domain
    argTypes:
    - PyMemAllocatorDomain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 359
    functionName: test_setallocators
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyMem_RawRealloc
    - PyObject_Realloc
    - PyMem_Realloc
    - PyErr_SetString
    - PyMem_GetAllocator
    - PyMem_RawCalloc
    - CHECK_CTX
    - Py_NewRef
    - PyObject_Malloc
    - PyMem_RawFree
    - PyMem_RawMalloc
    - memset
    - PyObject_Calloc
    - PyMem_Free
    - PyMem_Malloc
    - PyObject_Free
    - PyMem_SetAllocator
    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: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    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:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 365
    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:375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:379,1
    - Dst: PyObject_NEW
      Src: /src/cpython/Modules/_testcapi/mem.c:382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:386,1
    - Dst: PyObject_NewVar
      Src: /src/cpython/Modules/_testcapi/mem.c:389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:393,1
    - Dst: PyObject_NEW_VAR
      Src: /src/cpython/Modules/_testcapi/mem.c:396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:400,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/mem.c:405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 407
    functionName: test_pyobject_new
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyObject_NewVar
    - PyObject_New
    - PyObject_NEW_VAR
    - Py_DECREF
    - 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:414,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:416,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:420,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Modules/_testcapi/mem.c:422,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:424,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:428,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:430,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:432,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:436,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:438,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:440,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:444,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Modules/_testcapi/mem.c:446,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:448,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:452,1
    - Dst: PyObject_Calloc
      Src: /src/cpython/Modules/_testcapi/mem.c:454,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:456,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 463
    functionName: test_pymem_alloc0
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_SetString
    - PyMem_RawCalloc
    - PyObject_Malloc
    - PyMem_RawFree
    - PyMem_RawMalloc
    - PyObject_Calloc
    - PyMem_Free
    - PyMem_Malloc
    - PyObject_Free
    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:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 469
    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:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 475
    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:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 491
    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:500,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/mem.c:502,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/mem.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 509
    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:518,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_testcapi/mem.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 522
    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:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 538
    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:550,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/mem.c:555,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/mem.c:556,1
    - Dst: PyTraceMalloc_Track
      Src: /src/cpython/Modules/_testcapi/mem.c:563,1
    - Dst: PyTraceMalloc_Track
      Src: /src/cpython/Modules/_testcapi/mem.c:567,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 575
    functionName: tracemalloc_track
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyTraceMalloc_Track
    - PyErr_SetString
    - PyErr_Occurred
    - PyArg_ParseTuple
    - PyLong_AsVoidPtr
    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:584,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/mem.c:587,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/mem.c:588,1
    - Dst: PyTraceMalloc_Untrack
      Src: /src/cpython/Modules/_testcapi/mem.c:595,1
    - Dst: PyTraceMalloc_Untrack
      Src: /src/cpython/Modules/_testcapi/mem.c:599,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 607
    functionName: tracemalloc_untrack
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyErr_Occurred
    - PyTraceMalloc_Untrack
    - PyArg_ParseTuple
    - 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:613,1
    - Dst: PyTraceMalloc_Untrack
      Src: /src/cpython/Modules/_testcapi/mem.c:614,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 618
    functionName: tracemalloc_track_race_thread
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - PyTraceMalloc_Track
    - PyTraceMalloc_Untrack
    linkageType: ''
    returnType: void
    signature: void tracemalloc_track_race_thread(void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Modules/_testcapi/mem.c:628,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_testcapi/mem.c:631,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/mem.c:635,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapi/mem.c:639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:644,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/mem.c:646,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/mem.c:647,1
    - Dst: PyThread_allocate_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:654,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_testcapi/mem.c:656,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:660,1
    - Dst: PyThread_start_new_thread
      Src: /src/cpython/Modules/_testcapi/mem.c:663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/mem.c:666,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Modules/_testcapi/mem.c:672,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/mem.c:673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/mem.c:677,1
    - Dst: PyThread_acquire_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:683,1
    - Dst: PyThread_release_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:684,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:691,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/mem.c:696,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/mem.c:697,1
    - Dst: PyThread_free_lock
      Src: /src/cpython/Modules/_testcapi/mem.c:701,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 706
    functionName: tracemalloc_track_race
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyThread_acquire_lock
    - PyErr_NoMemory
    - PyErr_SetString
    - PyThread_start_new_thread
    - PyThread_release_lock
    - Py_CLEAR
    - memset
    - PyObject_CallNoArgs
    - PyObject_GetAttrString
    - Py_DECREF
    - PyThread_free_lock
    - PyThread_allocate_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tracemalloc_track_race(PyObject *self, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/mem.c:715,1
    - Dst: proc_pidinfo
      Src: /src/cpython/Modules/_testcapi/mem.c:722,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapi/mem.c:729,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_testcapi/mem.c:732,1
    - Dst: sysconf
      Src: /src/cpython/Modules/_testcapi/mem.c:735,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapi/mem.c:737,1
    - Dst: kvm_openfiles
      Src: /src/cpython/Modules/_testcapi/mem.c:743,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapi/mem.c:745,1
    - Dst: kvm_getprocs
      Src: /src/cpython/Modules/_testcapi/mem.c:750,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapi/mem.c:752,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_testcapi/mem.c:758,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/mem.c:761,1
    - Dst: kvm_close
      Src: /src/cpython/Modules/_testcapi/mem.c:765,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Modules/_testcapi/mem.c:767,1
    - Dst: kvm_close
      Src: /src/cpython/Modules/_testcapi/mem.c:770,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (n_procs == 1)
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/cpython/Modules/_testcapi/mem.c
    constantsTouched: []
    func_position:
      end: 773
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 773
    functionName: get_process_memory_usage
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - kvm_getprocs
    - proc_pidinfo
    - kvm_close
    - PyErr_SetFromErrno
    - kvm_openfiles
    - PyLong_FromUnsignedLongLong
    - assert
    - PyArg_ParseTuple
    - sysconf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_process_memory_usage(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/mem.c:805,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/mem.c:815,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/mem.c:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 829
    functionName: _PyTestCapi_Init_Mem
    functionSourceFile: /src/cpython/Modules/_testcapi/mem.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    - PyModule_AddObjectRef
    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->TimeType, Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/cpython/Modules/_testcapi/datetime.c
    - 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->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:
    - PyTimeZone_FromOffsetAndName
    - PyUnicode_FromString
    - TimeZone_FromTimeZone
    - PyTuple_SET_ITEM
    - Py_XDECREF
    - Py_DECREF
    - PyDelta_FromDSU
    - PyTimeZone_FromOffset
    - PyTuple_New
    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_GetConstant
    - PyTimeZone_FromOffsetAndName
    - PyTuple_SET_ITEM
    - Py_XDECREF
    - Py_DECREF
    - PyDelta_FromDSU
    - PyTimeZone_FromOffset
    - PyTuple_New
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - Date_FromDate
    - PyDate_FromDate
    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:
    - PyArg_ParseTuple
    - PyDateTime_FromDateAndTime
    - DateTime_FromDateAndTime
    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:
    - PyArg_ParseTuple
    - DateTime_FromDateAndTimeAndFold
    - PyDateTime_FromDateAndTimeAndFold
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_datetime_fromdateandtimeandfold(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/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:
    - PyArg_ParseTuple
    - Time_FromTime
    - PyTime_FromTime
    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:
    - PyArg_ParseTuple
    - Time_FromTimeAndFold
    - PyTime_FromTimeAndFold
    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:
    - PyArg_ParseTuple
    - PyDelta_FromDSU
    - Delta_FromDelta
    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
    - PyTuple_Pack
    - PyArg_ParseTuple
    - Date_FromTimestamp
    - PyDate_FromTimestamp
    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:
    - PyTuple_Pack
    - PyArg_ParseTuple
    - DateTime_FromTimestamp
    - Py_DECREF
    - 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
    - PyDateTime_GET_YEAR
    - PyDateTime_GET_MONTH
    - Py_BuildValue
    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:
    - PyDateTime_DATE_GET_MICROSECOND
    - Py_BuildValue
    - PyDateTime_DATE_GET_MINUTE
    - PyDateTime_DATE_GET_SECOND
    - PyDateTime_DATE_GET_TZINFO
    - PyDateTime_DATE_GET_HOUR
    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:
    - PyDateTime_TIME_GET_TZINFO
    - PyDateTime_TIME_GET_HOUR
    - PyDateTime_TIME_GET_SECOND
    - PyDateTime_TIME_GET_MINUTE
    - Py_BuildValue
    - PyDateTime_TIME_GET_MICROSECOND
    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_SECONDS
    - PyDateTime_DELTA_GET_MICROSECONDS
    - Py_BuildValue
    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_DECREF
    - Py_REFCNT
    - _Py_IsImmortal
    - 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: _PyLong_IsSmallInt
      Src: /src/cpython/Modules/_testcapi/immortal.c:34,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: _PyLong_IsSmallInt
      Src: /src/cpython/Modules/_testcapi/immortal.c:40,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: (has_int_immortal_bit)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/cpython/Modules/_testcapi/immortal.c
    - condition: (verify_immortality(obj))
      pos:
        line_end: 32
        line_start: 32
        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:
    - PyLong_FromLong
    - assert
    - Py_DECREF
    - verify_immortality
    - _PyLong_IsSmallInt
    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_GetName
    - PyType_Check
    - assert
    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_GetQualName
    - PyType_Check
    - 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_GetFullyQualifiedName
    - PyType_Check
    - 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_GetModuleName
    - PyType_Check
    - 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: (PyDict_GetItemString(long_dict, "to_bytes"))
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Modules/_testcapi/type.c
    - condition: (long_dict)
      pos:
        line_end: 61
        line_start: 61
        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:
    - PyDict_GetItemString
    - PyType_GetDict
    - Py_NewRef
    - PyObject_SetAttrString
    - assert
    - Py_DECREF
    - PyType_FromSpec
    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:
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyType_GetSlot
    - 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_SetString
    - PyErr_Occurred
    - assert
    - PyLong_FromUnsignedLong
    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_Modified
    - PyErr_SetString
    - PyType_Check
    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:
    - PyUnstable_Type_AssignVersionTag
    - PyErr_SetString
    - PyLong_FromLong
    - PyType_Check
    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:
    - PyErr_SetString
    - Py_NewRef
    - PyType_Check
    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:
    - PyErr_SetString
    - Py_NewRef
    - PyType_Check
    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:
    - PyErr_SetString
    - PyType_Freeze
    - PyType_Check
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: _init_dict_watch_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_New
    linkageType: ''
    returnType: int
    signature: int _init_dict_watch_events(void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:40,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:43,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:46,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_testcapi/watchers.c:49,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_testcapi/watchers.c:52,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_testcapi/watchers.c:55,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:58,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:63,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:63,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:64,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:65,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:68,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: 62
        line_start: 62
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 70
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 70
    functionName: dict_watch_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - assert
    - PyUnicode_FromFormat
    - PyList_Check
    - PyList_Append
    - Py_DECREF
    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:78,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:82,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:83,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: 88
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: dict_watch_callback_second
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyList_Append
    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:96,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: 98
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 98
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:104,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:104,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:105,1
    - Dst: PyDict_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:107,1
    - Dst: PyDict_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:110,1
    - Dst: PyDict_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:113,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Modules/_testcapi/watchers.c:118,1
    - Dst: _Py_atomic_add_int
      Src: /src/cpython/Modules/_testcapi/watchers.c:121,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(kind))
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 123
    functionName: add_dict_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _Py_atomic_add_int
    - _PyOnceFlag_CallOnce
    - PyLong_Check
    - PyLong_AsLong
    - PyDict_AddWatcher
    - 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:128,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:128,1
    - Dst: _Py_atomic_add_int
      Src: /src/cpython/Modules/_testcapi/watchers.c:131,1
    - Dst: PyList_Clear
      Src: /src/cpython/Modules/_testcapi/watchers.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - watcher_id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: clear_dict_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int
    - PyList_Clear
    - PyLong_AsLong
    - PyDict_ClearWatcher
    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:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - watcher_id
    - dict
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    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:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - watcher_id
    - dict
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 166
    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: _Py_atomic_load_int
      Src: /src/cpython/Modules/_testcapi/watchers.c:171,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:172,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/watchers.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: get_dict_watcher_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int
    - PyErr_SetString
    - Py_NewRef
    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:185,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:185,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyList_Check(g_type_modified_events))
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: type_modified_callback
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - PyList_Append
    - assert
    linkageType: ''
    returnType: int
    signature: int type_modified_callback(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:195,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:195,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:196,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: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyList_Check(g_type_modified_events))
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: type_modified_callback_wrap
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - assert
    - PyList_Check
    - PyList_New
    - PyList_Append
    - Py_DECREF
    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:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:222,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:222,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:223,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/watchers.c:227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyList_Check(g_type_modified_events))
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 233
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 233
    functionName: type_modified_callback_name
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - assert
    - PyList_Check
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int type_modified_callback_name(PyTypeObject *type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:239,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:239,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:240,1
    - Dst: PyType_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:242,1
    - Dst: PyType_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:245,1
    - Dst: PyType_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:248,1
    - Dst: PyType_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:251,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:257,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:258,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - kind
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(kind))
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    - condition: (!g_type_modified_events)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 264
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 264
    functionName: add_type_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - PyLong_AsLong
    - PyList_New
    - assert
    - PyType_AddWatcher
    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:269,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:269,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:274,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:275,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: 273
        line_start: 273
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: clear_type_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyLong_AsLong
    - PyType_ClearWatcher
    - assert
    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:284,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/watchers.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: get_type_modified_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_NewRef
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - watcher_id
    - type
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 305
    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:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - watcher_id
    - type
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 319
    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: 341
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 341
    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:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - co
    argTypes:
    - PyCodeEvent
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 347
    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:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - co
    argTypes:
    - PyCodeEvent
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 353
    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: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    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:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - event
    - co
    argTypes:
    - PyCodeEvent
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 366
    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:372,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:372,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:373,1
    - Dst: PyCode_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:375,1
    - Dst: PyCode_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:381,1
    - Dst: PyCode_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:387,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/watchers.c:390,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:396,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: 371
        line_start: 371
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 397
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 397
    functionName: add_code_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Format
    - assert
    - PyCode_AddWatcher
    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:402,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:402,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:403,1
    - Dst: PyCode_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:404,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: 401
        line_start: 401
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 418
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 418
    functionName: clear_code_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyCode_ClearWatcher
    - PyLong_AsLong
    - assert
    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:423,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:423,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:424,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:425,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:426,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: 422
        line_start: 422
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    - condition: (watcher_id_l >= 0 && watcher_id_l < NUM_CODE_WATCHERS)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: get_code_watcher_num_created_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyLong_FromLong
    - assert
    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:432,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:432,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:433,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:434,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:435,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: 431
        line_start: 431
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    - condition: (watcher_id_l >= 0 && watcher_id_l < NUM_CODE_WATCHERS)
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: get_code_watcher_num_destroyed_events
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyLong_FromLong
    - assert
    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:444,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:451,1
    - Dst: PyCode_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:453,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/watchers.c:454,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:460,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/watchers.c:463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 467
    functionName: allocate_too_many_code_watchers
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyCode_ClearWatcher
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - PyErr_GetRaisedException
    - PyCode_AddWatcher
    - PyErr_FormatUnraisable
    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:478,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/watchers.c:482,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Modules/_testcapi/watchers.c:486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:487,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testcapi/watchers.c:492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 495
    functionName: get_id
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 3
    functionsReached:
    - PyUnicode_FromString
    - PyObject_Vectorcall
    - PyObject_GetItem
    - PyEval_GetBuiltins
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_id(PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:501,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:508,1
    - Dst: get_id
      Src: /src/cpython/Modules/_testcapi/watchers.c:512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:515,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:520,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Modules/_testcapi/watchers.c:524,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:529,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: 531
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 531
    functionName: call_pyfunc_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyLong_FromLong
    - PyObject_Vectorcall
    - get_id
    - Py_XDECREF
    - Py_DECREF
    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:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event
    - func
    - new_value
    argTypes:
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 538
    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:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event
    - func
    - new_value
    argTypes:
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 545
    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:555,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - name
    - event
    argTypes:
    - PyObject*
    - char*
    - PyFunction_WatchEvent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: add_func_event
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyModule_Add
    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:561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:562,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:573,1
    - Dst: PyFunction_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:576,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/watchers.c:580,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:581,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 586
    functionName: add_func_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyFunction_AddWatcher
    - PyFunction_Check
    - PyLong_FromLong
    - PyErr_SetString
    - Py_NewRef
    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:591,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:593,1
    - Dst: PyFunction_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:597,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/watchers.c:607,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:608,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - watcher_id_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (idx != -1)
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 611
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 611
    functionName: clear_func_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFunction_ClearWatcher
    - Py_CLEAR
    - PyLong_AsLong
    - 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: 618
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 618
    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:626,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:633,1
    - Dst: PyFunction_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:635,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/watchers.c:636,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:642,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/watchers.c:645,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 649
    functionName: allocate_too_many_func_watchers
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyFunction_AddWatcher
    - PyFunction_ClearWatcher
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    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:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - which_watcher
    - event
    - ctx
    argTypes:
    - int
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 665
    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:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - ctx
    argTypes:
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 670
    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:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event
    - ctx
    argTypes:
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 675
    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: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    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:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - event
    - ctx
    argTypes:
    - PyContextEvent
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    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: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: Py_ARRAY_LENGTH
      Src: /src/cpython/Modules/_testcapi/watchers.c:698,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/watchers.c:699,1
    - Dst: PyContext_AddWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:702,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_testcapi/watchers.c:708,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:708,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:713,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: 695
        line_start: 695
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 714
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 714
    functionName: add_context_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_ARRAY_LENGTH
    - Py_XSETREF
    - PyContext_AddWatcher
    - PyLong_Check
    - PyLong_AsLong
    - PyList_New
    - PyErr_Format
    - 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:719,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:719,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:720,1
    - Dst: PyContext_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:721,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:729,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: 718
        line_start: 718
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 734
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 734
    functionName: clear_context_watcher
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - Py_CLEAR
    - PyLong_AsLong
    - PyContext_ClearWatcher
    - 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:739,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/watchers.c:744,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/watchers.c:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 750
    functionName: clear_context_stack
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Get
    - PyErr_SetString
    - Py_CLEAR
    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:755,1
    - Dst: PyLong_Check
      Src: /src/cpython/Modules/_testcapi/watchers.c:755,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/watchers.c:756,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/watchers.c:758,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/watchers.c:762,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/watchers.c:764,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: 754
        line_start: 754
        source_file: /src/cpython/Modules/_testcapi/watchers.c
    constantsTouched: []
    func_position:
      end: 765
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 765
    functionName: get_context_switches
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyList_New
    - PyErr_Format
    - assert
    - Py_NewRef
    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:773,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:780,1
    - Dst: PyContext_ClearWatcher
      Src: /src/cpython/Modules/_testcapi/watchers.c:782,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Modules/_testcapi/watchers.c:783,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/watchers.c:789,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/watchers.c:792,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 796
    functionName: allocate_too_many_context_watchers
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached:
    - PyContext_AddWatcher
    - PyContext_ClearWatcher
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    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:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - func
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 814
    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:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - func
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 829
    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:878,1
    - Dst: PY_FOREACH_FUNC_EVENT
      Src: /src/cpython/Modules/_testcapi/watchers.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 892
    functionName: _PyTestCapi_Init_Watchers
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    - PY_FOREACH_FUNC_EVENT
    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: 888
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 888
    functionName: ADD_EVENT
    functionSourceFile: /src/cpython/Modules/_testcapi/watchers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_EVENT(event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/modsupport.c:11,1
    - Dst: PyABIInfo_Check
      Src: /src/cpython/Modules/_testcapi/modsupport.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 26
    functionName: pyabiinfo_check
    functionSourceFile: /src/cpython/Modules/_testcapi/modsupport.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyABIInfo_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyabiinfo_check(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseArray
      Src: /src/cpython/Modules/_testcapi/modsupport.c:32,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/modsupport.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: pyarg_parsearray
    functionSourceFile: /src/cpython/Modules/_testcapi/modsupport.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseArray
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyarg_parsearray(PyObject* self, PyObject* const* args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseArrayAndKeywords
      Src: /src/cpython/Modules/_testcapi/modsupport.c:44,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testcapi/modsupport.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: pyarg_parsearrayandkeywords
    functionSourceFile: /src/cpython/Modules/_testcapi/modsupport.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseArrayAndKeywords
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyarg_parsearrayandkeywords(PyObject* self, PyObject*
      const* args,\n                            Py_ssize_t nargs, PyObject* kwnames)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapi/modsupport.c:64,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapi/modsupport.c:67,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapi/modsupport.c:70,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapi/modsupport.c:73,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testcapi/modsupport.c:76,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/modsupport.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: _PyTestCapi_Init_Modsupport
    functionSourceFile: /src/cpython/Modules/_testcapi/modsupport.c
    functionUses: 1
    functionsReached:
    - PyModule_AddIntMacro
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Modsupport(PyObject *m)
  - 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:
    - PyArg_ParseTuple
    - PyUnicode_New
    - Py_DECREF
    - PyUnicode_Fill
    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:
    - PyUnicode_CopyCharacters
    - Py_INCREF
    - PyUnicode_Check
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PyUnicode_MAX_CHAR_VALUE
    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
    - unicode_copy
    - PyUnicode_Fill
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    - Py_DECREF
    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:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyUnicode_FromKindAndData
    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:
    - PyErr_NoMemory
    - PyMem_NEW
    - PyUnicode_AsUCS4
    - memset
    - PyMem_Free
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_FromKindAndData
    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
    - PyUnicode_AsUCS4Copy
    - PyUnicode_GET_LENGTH
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_FromKindAndData
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyUnicode_AsUTF8
    - NULLABLE
    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:
    - PyUnicode_CopyCharacters
    - Py_BuildValue
    - PyUnicode_New
    - PyUnicode_Fill
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    - Py_DECREF
    - PyUnicode_MAX_CHAR_VALUE
    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:
    - PyArg_ParseTuple
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    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_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    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: 4
    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: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Modules/_testcapi/unicode.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: writer_write_char
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyArg_ParseTuple
    - PyUnicodeWriter_WriteChar
    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:320,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:326,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Modules/_testcapi/unicode.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 334
    functionName: writer_write_utf8
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyArg_ParseTuple
    - PyUnicodeWriter_WriteUTF8
    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:341,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:347,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Modules/_testcapi/unicode.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 355
    functionName: writer_write_ascii
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyArg_ParseTuple
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_ascii(PyObject *self_raw, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:362,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/unicode.c:375,1
    - Dst: PyUnicodeWriter_WriteWideChar
      Src: /src/cpython/Modules/_testcapi/unicode.c:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 387
    functionName: writer_write_widechar
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteWideChar
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_widechar(PyObject *self_raw, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:394,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/unicode.c:407,1
    - Dst: PyUnicodeWriter_WriteUCS4
      Src: /src/cpython/Modules/_testcapi/unicode.c:414,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 419
    functionName: writer_write_ucs4
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteUCS4
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_ucs4(PyObject *self_raw, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:426,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/unicode.c:430,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Modules/_testcapi/unicode.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self_raw
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 435
    functionName: writer_write_str
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteStr
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_str(PyObject *self_raw, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:442,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/unicode.c:446,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Modules/_testcapi/unicode.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self_raw
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 451
    functionName: writer_write_repr
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteRepr
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_repr(PyObject *self_raw, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/unicode.c:458,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:464,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/unicode.c:467,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Modules/_testcapi/unicode.c:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 473
    functionName: writer_write_substring
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_WriteSubstring
    - PyArg_ParseTuple
    - NULLABLE
    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:480,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/unicode.c:488,1
    - Dst: PyUnicodeWriter_DecodeUTF8Stateful
      Src: /src/cpython/Modules/_testcapi/unicode.c:494,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/unicode.c:497,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/unicode.c:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (consumed == 0)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/cpython/Modules/_testcapi/unicode.c
    constantsTouched: []
    func_position:
      end: 506
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 506
    functionName: writer_decodeutf8stateful
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyUnicodeWriter_DecodeUTF8Stateful
    - PyLong_FromSsize_t
    - assert
    - PyArg_ParseTuple
    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:513,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/unicode.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 518
    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:525,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Modules/_testcapi/unicode.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self_raw
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 532
    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:580,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/unicode.c:584,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/unicode.c:588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/unicode.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: _PyTestCapi_Init_Unicode
    functionSourceFile: /src/cpython/Modules/_testcapi/unicode.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyModule_AddFunctions
    - PyType_FromSpec
    - PyModule_AddType
    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:
    - PyArg_ParseTuple
    - PyDict_ContainsString
    - RETURN_INT
    - NULLABLE
    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_FatalError
    - NULLABLE
    - Py_UNREACHABLE
    - assert
    - PyArg_ParseTuple
    - PyDict_GetItemRef
    - Py_NewRef
    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: 57
        line_start: 57
        source_file: /src/cpython/Modules/_testcapi/dict.c
    - condition: (value == NULL)
      pos:
        line_end: 54
        line_start: 54
        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_FatalError
    - PyDict_GetItemStringRef
    - NULLABLE
    - Py_UNREACHABLE
    - assert
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - PyDict_SetDefault
    - NULLABLE
    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_FatalError
    - PyDict_SetDefaultRef
    - NULLABLE
    - Py_UNREACHABLE
    - assert
    - PyArg_ParseTuple
    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:
    - NULLABLE
    - PyDict_Pop
    - Py_BuildValue
    - assert
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - PyDict_Pop
    - RETURN_INT
    - NULLABLE
    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:
    - NULLABLE
    - Py_BuildValue
    - assert
    - PyArg_ParseTuple
    - PyDict_PopString
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - PyDict_PopString
    - RETURN_INT
    - NULLABLE
    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: (v == UNINITIALIZED_PTR)
      pos:
        line_end: 227
        line_start: 227
        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
    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:
    - PyLong_FromLong
    - PyLong_AS_LONG
    - PyErr_SetString
    - PyDict_Next
    - PyDict_SetItem
    - assert
    - Py_DECREF
    - PyDict_New
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:264,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/dict.c:265,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Modules/_testcapi/dict.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: frozendict_check
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyFrozenDict_Check
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:271,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/dict.c:272,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Modules/_testcapi/dict.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: frozendict_checkexact
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - PyLong_FromLong
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_checkexact(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:278,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/dict.c:279,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Modules/_testcapi/dict.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: anydict_check
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyLong_FromLong
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anydict_check(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:285,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/dict.c:286,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Modules/_testcapi/dict.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: anydict_checkexact
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyAnyDict_CheckExact
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anydict_checkexact(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/dict.c:293,1
    - Dst: PyFrozenDict_New
      Src: /src/cpython/Modules/_testcapi/dict.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: frozendict_new
    functionSourceFile: /src/cpython/Modules/_testcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_New
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_new(PyObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/dict.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 325
    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:
    - PyLong_FromLong
    - PyNumber_Check
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyNumber_ToBase
    - NULLABLE
    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:
    - PyNumber_AsSsize_t
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    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:
    - PyBytes_FromString
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    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:
    - Py_CLEAR
    - testBufObject_CAST
    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:
    - PyObject_GC_UnTrack
    - testBufObject_CAST
    - Py_XDECREF
    - Py_TYPE
    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
    - PyObject_GetBuffer
    - Py_SETREF
    - Py_NewRef
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Modules/_testcapi/buffer.c:109,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/buffer.c:112,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Modules/_testcapi/buffer.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: buffer_pointer_as_int
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - PyLong_FromVoidPtr
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffer_pointer_as_int(PyObject *Py_UNUSED(module), PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/cpython/Modules/_testcapi/buffer.c:124,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/buffer.c:127,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/buffer.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 135
    functionName: _PyTestCapi_Init_Buffer
    functionSourceFile: /src/cpython/Modules/_testcapi/buffer.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    - PyModule_AddObjectRef
    - PyType_Ready
    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:
    - PyFloat_Pack8
    - PyFloat_Pack4
    - PyBytes_FromStringAndSize
    - Py_ARRAY_LENGTH
    - PyFloat_Pack2
    - PyErr_SetString
    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
    - PyFloat_Unpack8
    - PyErr_SetString
    - PyFloat_FromDouble
    - PyErr_Occurred
    - assert
    - PyFloat_Unpack4
    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
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapi/float.c:175,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testcapi/float.c:175,1
    - Dst: PyModule_Add
      Src: /src/cpython/Modules/_testcapi/float.c:177,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_testcapi/float.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: _PyTestCapi_Init_Float
    functionSourceFile: /src/cpython/Modules/_testcapi/float.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    - PyBool_FromLong
    - PyModule_Add
    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:
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast_GET_ITEM
    - PyArg_ParseTupleAndKeywords
    - assert
    - PyBytes_Check
    - PyErr_SetString
    - Py_NewRef
    - PyUnicode_Check
    - strchr
    - PyUnicode_AsUTF8
    - PyTuple_SET_ITEM
    - memset
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - PyList_CheckExact
    - PyTuple_CheckExact
    - Py_ISALNUM
    - PyTuple_New
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    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:
    - PyDict_DelItemString
    - PyDict_SetItemString
    - PyErr_Clear
    - PyTuple_Pack
    - Py_XDECREF
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyDict_New
    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:
    - PyDict_GET_SIZE
    - PyLong_FromLong
    - assert
    - PyArg_ParseTupleAndKeywords
    - PyArg_ParseTuple
    - PyDict_CheckExact
    - 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:
    - PyArg_ParseTuple
    - Py_BuildValue
    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:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromSsize_t
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromLongLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLongLong
    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:
    - PyArg_ParseTuple
    - PyFloat_FromDouble
    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:
    - PyArg_ParseTuple
    - PyFloat_FromDouble
    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:
    - PyArg_ParseTuple
    - PyComplex_FromCComplex
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:
    - PyArg_ParseTuple
    - PyBytes_FromString
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    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:
    - PyArg_ParseTuple
    - PyBytes_FromString
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - Py_NewRef
    - PyBuffer_Release
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    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:
    - PyArg_ParseTuple
    - PyBytes_FromString
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    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_ParseTuple
    - PyArg_Parse
    - PyMem_Free
    - PyBytes_FromString
    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_ParseTuple
    - PyArg_Parse
    - PyMem_Free
    - PyBytes_FromString
    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:
    - PyBytes_FromStringAndSize
    - PyArg_Parse
    - PyByteArray_GET_SIZE
    - PyMem_Free
    - PyArg_ParseTuple
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_es_hash(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/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:
    - PyBytes_FromStringAndSize
    - PyArg_Parse
    - PyByteArray_GET_SIZE
    - PyMem_Free
    - PyArg_ParseTuple
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_et_hash(PyObject *self, PyObject *args)'
  - BBCount: 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:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyErr_Clear
    - PyMem_Free
    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_FromMetaclass
    - PyErr_SetString
    - PyType_Check
    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:
    - PyType_FromSpecWithBases
    - PySequence_Contains
    - PyErr_SetString
    - PyType_FromSpecWithBases::PyType_FromSpecWithBases
    - Py_XDECREF
    - PyObject_CallMethod
    - Py_NewRef
    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:
    - PyTuple_Size
    - PyType_FromSpecWithBases
    - PyTuple_GET_ITEM
    - PyException_GetArgs
    - PyUnicode_FromString
    - PyErr_SetString
    - PyUnicode_Contains
    - PyObject_CallFunction
    - PyType_FromSpecWithBases::PyType_FromSpecWithBases
    - PyTuple_Pack
    - PyErr_ExceptionMatches
    - PyTuple_Check
    - Py_XDECREF
    - PyErr_GetRaisedException
    - Py_NewRef
    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(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(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(PyUnicode_AsUTF8(obj), "<test>") == 0)
      pos:
        line_end: 301
        line_start: 301
        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
    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:
    - PyMem_New
    - strcmp
    - PyErr_NoMemory
    - PyObject_Str
    - PyUnicode_AsUTF8
    - Py_CLEAR
    - memset
    - memcpy
    - PyMem_Free
    - assert
    - PyObject_CallNoArgs
    - Py_XDECREF
    - Py_NewRef
    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_SetString
    - PyLong_AsLong
    - PyErr_Occurred
    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_FromSpecWithBases
    - PyType_Check
    - 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_FromSpecWithBases
    - PyType_Check
    - 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: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:406,1
    - Dst: PyObject_GetItemData_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:406,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (pointer == PyObject_GetItemData_DuringGC(o))
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 411
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 411
    functionName: pyobject_getitemdata
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - assert
    - PyObject_GetItemData_DuringGC
    - 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:419,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:422,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:434,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/heaptype.c:438,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:439,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:440,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:442,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 458
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 458
    functionName: create_type_with_token
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_FromMetaclass
    - PyErr_SetString
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - Py_DECREF
    - PyLong_AsVoidPtr
    - PyType_GetSlot
    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:463,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:464,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 468
    functionName: get_tp_token
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - PyType_GetSlot
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tp_token(PyObject *self, PyObject *type)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/heaptype.c:475,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:485,1
    - Dst: PyType_Check
      Src: /src/cpython/Modules/_testcapi/heaptype.c:485,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:489,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:490,1
    - Dst: PyType_GetBaseByToken_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:495,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:497,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:497,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_testcapi/heaptype.c:502,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:503,1
    - Dst: PyType_GetBaseByToken
      Src: /src/cpython/Modules/_testcapi/heaptype.c:507,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:509,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:515,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testcapi/heaptype.c:518,1
    - Dst: PyTuple_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:522,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/heaptype.c:526,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Modules/_testcapi/heaptype.c:527,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:530,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:531,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:532,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:532,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (result == result_duringgc)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (PyType_Check(type))
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (result == NULL)
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    - condition: (ret == ret_duringgc)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 534
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 534
    functionName: pytype_getbasebytoken
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_GetBaseByToken_DuringGC
    - PyLong_FromLong
    - PyType_Check
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - Py_XDECREF
    - PyType_GetBaseByToken
    - PyLong_AsVoidPtr
    - PyTuple_New
    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:539,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:540,1
    - Dst: PyType_GetModuleByToken_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:540,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mod == PyType_GetModuleByToken_DuringGC((PyTypeObject *)type, _testcapimodule))
      pos:
        line_end: 539
        line_start: 539
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 542
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 542
    functionName: pytype_getmodulebydef
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleByToken_DuringGC
    - Py_XNewRef
    - PyType_GetModuleByDef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pytype_getmodulebydef(PyObject *self, PyObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/heaptype.c:549,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:553,1
    - Dst: PyType_GetModuleByToken
      Src: /src/cpython/Modules/_testcapi/heaptype.c:556,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:557,1
    - Dst: PyType_GetModuleByToken_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (result == PyType_GetModuleByToken_DuringGC((PyTypeObject *)type,
        token))
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 559
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 559
    functionName: pytype_getmodulebytoken
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - PyType_GetModuleByToken
    - PyLong_AsVoidPtr
    - PyType_GetModuleByToken_DuringGC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pytype_getmodulebytoken(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 578
    functionName: create_heapctype_with_none_bases_slot
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_FromSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_heapctype_with_none_bases_slot(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - 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: 665
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 665
    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:671,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 673
    functionName: heapgcctype_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    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:679,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:680,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_testcapi/heaptype.c:681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 683
    functionName: heapgcctype_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapgcctype_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:710,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 713
    functionName: heapctype_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapctype_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heapctype_init
      Src: /src/cpython/Modules/_testcapi/heaptype.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 750
    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:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 791
    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:797,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: 796
        line_start: 796
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 798
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 798
    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:823,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:823,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Modules/_testcapi/heaptype.c:824,1
    - Dst: base_init
      Src: /src/cpython/Modules/_testcapi/heaptype.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 827
    functionName: heapctypesubclasswithfinalizer_init
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_GetSlot
    - Py_TYPE
    - base_init
    linkageType: ''
    returnType: int
    signature: int heapctypesubclasswithfinalizer_init(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_testcapi/heaptype.c:835,1
    - Dst: PyType_GetModule
      Src: /src/cpython/Modules/_testcapi/heaptype.c:837,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:837,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:838,1
    - Dst: PyType_GetModule_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:838,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:838,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:842,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:846,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:851,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/heaptype.c:854,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:854,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:861,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/heaptype.c:862,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:862,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:866,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:872,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:873,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/heaptype.c:876,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (m == PyType_GetModule_DuringGC(Py_TYPE(self)))
      pos:
        line_end: 837
        line_start: 837
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 877
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 877
    functionName: heapctypesubclasswithfinalizer_finalize
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyType_GetModule_DuringGC
    - Py_REFCNT
    - PyLong_FromSsize_t
    - PyObject_SetAttrString
    - PyObject_GetAttrString
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_XDECREF
    - PyErr_SetRaisedException
    - PyType_GetModule
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapctypesubclasswithfinalizer_finalize(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_new
      Src: /src/cpython/Modules/_testcapi/heaptype.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tp
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 911
    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:954,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:955,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 958
    functionName: heapctypewithdict_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapctypewithdict_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:997,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:997,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Modules/_testcapi/heaptype.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 999
    functionName: heapmanaged_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    - 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:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1006
    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:1012,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1013,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1014,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1017
    functionName: heapmanaged_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyObject_ClearManagedDict
    - 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:1039,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1040,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1041,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1044
    functionName: heapctypewithmanagedweakref_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - 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:1098,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1100,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1101,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1104
    functionName: heapctypewithweakref_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - Py_XDECREF
    - Py_DECREF
    - PyObject_Free
    - 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: 1147
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1147
    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:1153,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1156
    functionName: heapctypesetattr_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void heapctypesetattr_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1162,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1166,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1170,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1176,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1180,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - op
    - attr
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1185
    functionName: heapctypesetattr_setattro
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericSetAttr
    - PyObject_RichCompareBool
    - PyUnicode_FromString
    - PyNumber_Long
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    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:1228,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1229,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1233,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: 1242
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1242
    functionName: heapctype_vectorcall_vectorcall
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    - PyVectorcall_NARGS
    - 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:1247,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1248,1
    - Dst: PyObject_New
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1252
    functionName: heapctype_vectorcall_new
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyObject_New
    - 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:1256,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1264
    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:1296,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1297,1
    - Dst: PyObject_GetItemData
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1301,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1302,1
    - Dst: PyObject_GetItemData_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1302,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1308,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1308,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - subtype
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (data == PyObject_GetItemData_DuringGC(self))
      pos:
        line_end: 1301
        line_start: 1301
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 1316
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1316
    functionName: HeapCCollection_new
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_GetItemData
    - PyTuple_GET_ITEM
    - PyObject_GetItemData_DuringGC
    - Py_XDECREF
    - assert
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1323
    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:1328,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1329,1
    - Dst: PyObject_GetItemData
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1331,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1332,1
    - Dst: PyObject_GetItemData_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1332,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (data == PyObject_GetItemData_DuringGC(self))
      pos:
        line_end: 1331
        line_start: 1331
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 1337
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1337
    functionName: HeapCCollection_item
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_GetItemData
    - Py_SIZE
    - PyObject_GetItemData_DuringGC
    - PyErr_Format
    - assert
    - Py_NewRef
    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:1342,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1343,1
    - Dst: PyObject_GetItemData_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1343,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1347,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (data == PyObject_GetItemData_DuringGC(self))
      pos:
        line_end: 1342
        line_start: 1342
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 1351
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1351
    functionName: HeapCCollection_traverse
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_GetItemData
    - Py_VISIT
    - Py_SIZE
    - PyObject_GetItemData_DuringGC
    - assert
    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:1356,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1357,1
    - Dst: PyObject_GetItemData_DuringGC
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1357,1
    - Dst: Py_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1361,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1362,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (data == PyObject_GetItemData_DuringGC(self))
      pos:
        line_end: 1356
        line_start: 1356
        source_file: /src/cpython/Modules/_testcapi/heaptype.c
    constantsTouched: []
    func_position:
      end: 1367
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1367
    functionName: HeapCCollection_clear
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - PyObject_GetItemData
    - Py_SET_SIZE
    - Py_SIZE
    - PyObject_GetItemData_DuringGC
    - Py_CLEAR
    - assert
    linkageType: ''
    returnType: int
    signature: int HeapCCollection_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1372,1
    - Dst: HeapCCollection_clear
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1373,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1374,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1377
    functionName: HeapCCollection_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 0
    functionsReached:
    - HeapCCollection_clear
    - PyTypeObject*::tp_free
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void HeapCCollection_dealloc(PyObject *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDef
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1401,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1403,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1413,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1414,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1418,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1419,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1421,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1422,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1424,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1429,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1434,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1435,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1437,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1438,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1440,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1441,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1443,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1444,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1446,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1447,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1449,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1450,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1452,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1453,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1455,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1456,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1458,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1459,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1461,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1462,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1464,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1465,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1467,1
    - Dst: PyType_FromModuleAndSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1471,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1473,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1474,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1476,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1478,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1480,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1482,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1484,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1486,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1488,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1494,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1498,1
    - Dst: ADD
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1500,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1500,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1502,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/heaptype.c:1508,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1514
    functionName: _PyTestCapi_Init_Heaptype
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    - PyType_FromSpecWithBases
    - PyType_FromMetaclass
    - PyModule_AddType
    - PyType_FromModuleAndSpec
    - PyLong_FromVoidPtr
    - PyTuple_Pack
    - PyModule_GetDef
    - Py_DECREF
    - PyType_FromSpec
    - ADD
    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: 1412
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1412
    functionName: ADD
    functionSourceFile: /src/cpython/Modules/_testcapi/heaptype.c
    functionUses: 4
    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: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    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:21,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_testcapi/monitoring.c:24,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapi/monitoring.c:29,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/monitoring.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: CodeLike_new
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyMem_Calloc
    - PyTypeObject*::tp_alloc
    - PyMem_Free
    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:44,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_testcapi/monitoring.c:46,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: CodeLike_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyCodeLikeObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void CodeLike_dealloc(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyCodeLikeObject_CAST
      Src: /src/cpython/Modules/_testcapi/monitoring.c:54,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_testcapi/monitoring.c:59,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/monitoring.c:64,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/monitoring.c:68,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:69,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_testcapi/monitoring.c:75,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_testcapi/monitoring.c:79,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:80,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Modules/_testcapi/monitoring.c:85,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Modules/_testcapi/monitoring.c:89,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:92,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:93,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 95
    functionName: CodeLike_str
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyCodeLikeObject_CAST
    - PyUnicode_FromFormat
    - PyUnicode_Join
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    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: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    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:119,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:121,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Modules/_testcapi/monitoring.c:125,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testcapi/monitoring.c:125,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: 120
        line_start: 120
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: setup_fire
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RAISE_UNLESS_CODELIKE
    - Py_NewRef
    - PyErr_SetRaisedException
    - assert
    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:137,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/monitoring.c:137,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:138,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:138,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/monitoring.c:138,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testcapi/monitoring.c:142,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testcapi/monitoring.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - res
    - state
    - exception
    argTypes:
    - int
    - PyMonitoringState*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    - condition: (((PyObject*)Py_TYPE(exception)) == PyErr_Occurred())
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: teardown_fire
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Clear
    - PyErr_Occurred
    - 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:153,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:157,1
    - Dst: PyMonitoring_FirePyStartEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:161,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:162,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: fire_event_py_start
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - teardown_fire
    - PyMonitoring_FirePyStartEvent
    - setup_fire
    - PyArg_ParseTuple
    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:170,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:174,1
    - Dst: PyMonitoring_FirePyResumeEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:178,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:179,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: fire_event_py_resume
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - PyMonitoring_FirePyResumeEvent
    - teardown_fire
    - setup_fire
    - PyArg_ParseTuple
    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:188,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:192,1
    - Dst: PyMonitoring_FirePyReturnEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:196,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:197,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 198
    functionName: fire_event_py_return
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - PyMonitoring_FirePyReturnEvent
    - teardown_fire
    - setup_fire
    - PyArg_ParseTuple
    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:206,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:210,1
    - Dst: PyMonitoring_FireCReturnEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:214,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:215,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 216
    functionName: fire_event_c_return
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - teardown_fire
    - setup_fire
    - PyArg_ParseTuple
    - PyMonitoring_FireCReturnEvent
    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:224,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:228,1
    - Dst: PyMonitoring_FirePyYieldEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:232,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:233,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: fire_event_py_yield
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - teardown_fire
    - setup_fire
    - PyArg_ParseTuple
    - PyMonitoring_FirePyYieldEvent
    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:242,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:246,1
    - Dst: PyMonitoring_FireCallEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:250,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:251,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: fire_event_call
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - teardown_fire
    - PyMonitoring_FireCallEvent
    - setup_fire
    - PyArg_ParseTuple
    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:259,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:263,1
    - Dst: PyMonitoring_FireLineEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:267,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:268,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 269
    functionName: fire_event_line
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - PyMonitoring_FireLineEvent
    - teardown_fire
    - setup_fire
    - PyArg_ParseTuple
    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:277,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:281,1
    - Dst: PyMonitoring_FireJumpEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:285,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:286,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: fire_event_jump
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - teardown_fire
    - PyMonitoring_FireJumpEvent
    - setup_fire
    - PyArg_ParseTuple
    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:295,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:299,1
    - Dst: PyMonitoring_FireBranchRightEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:303,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:304,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 305
    functionName: fire_event_branch_right
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - PyMonitoring_FireBranchRightEvent
    - teardown_fire
    - setup_fire
    - PyArg_ParseTuple
    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:313,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:317,1
    - Dst: PyMonitoring_FireBranchLeftEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:321,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:322,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: fire_event_branch_left
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - PyMonitoring_FireBranchLeftEvent
    - teardown_fire
    - setup_fire
    - PyArg_ParseTuple
    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:331,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:334,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:335,1
    - Dst: PyMonitoring_FirePyThrowEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:339,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:340,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 341
    functionName: fire_event_py_throw
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - PyMonitoring_FirePyThrowEvent
    - teardown_fire
    - setup_fire
    - NULLABLE
    - PyArg_ParseTuple
    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:349,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:352,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:353,1
    - Dst: PyMonitoring_FireRaiseEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:357,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:358,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 359
    functionName: fire_event_raise
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_FireRaiseEvent
    - RETURN_INT
    - teardown_fire
    - setup_fire
    - NULLABLE
    - PyArg_ParseTuple
    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:367,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:370,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:371,1
    - Dst: PyMonitoring_FireCRaiseEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:375,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:376,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 377
    functionName: fire_event_c_raise
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_FireCRaiseEvent
    - RETURN_INT
    - teardown_fire
    - setup_fire
    - NULLABLE
    - PyArg_ParseTuple
    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:385,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:388,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:389,1
    - Dst: PyMonitoring_FireReraiseEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:393,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:394,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: fire_event_reraise
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - teardown_fire
    - PyMonitoring_FireReraiseEvent
    - setup_fire
    - NULLABLE
    - PyArg_ParseTuple
    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:403,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:406,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:407,1
    - Dst: PyMonitoring_FireExceptionHandledEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:411,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:412,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 413
    functionName: fire_event_exception_handled
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - teardown_fire
    - setup_fire
    - NULLABLE
    - PyArg_ParseTuple
    - PyMonitoring_FireExceptionHandledEvent
    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:421,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:424,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:425,1
    - Dst: PyMonitoring_FirePyUnwindEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:429,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:430,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 431
    functionName: fire_event_py_unwind
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - PyMonitoring_FirePyUnwindEvent
    - teardown_fire
    - setup_fire
    - NULLABLE
    - PyArg_ParseTuple
    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:439,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:442,1
    - Dst: setup_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:444,1
    - Dst: PyMonitoring_FireStopIterationEvent
      Src: /src/cpython/Modules/_testcapi/monitoring.c:448,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testcapi/monitoring.c:449,1
    - Dst: teardown_fire
      Src: /src/cpython/Modules/_testcapi/monitoring.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 450
    functionName: fire_event_stop_iteration
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - RETURN_INT
    - PyMonitoring_FireStopIterationEvent
    - teardown_fire
    - setup_fire
    - NULLABLE
    - PyArg_ParseTuple
    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:459,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:461,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/monitoring.c:466,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/monitoring.c:467,1
    - Dst: RAISE_UNLESS_CODELIKE
      Src: /src/cpython/Modules/_testcapi/monitoring.c:471,1
    - Dst: PyMonitoring_EnterScope
      Src: /src/cpython/Modules/_testcapi/monitoring.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (num_events == 2)
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/cpython/Modules/_testcapi/monitoring.c
    constantsTouched: []
    func_position:
      end: 482
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 482
    functionName: enter_scope
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 0
    functionsReached:
    - PyMonitoring_EnterScope
    - PyTuple_Size
    - RAISE_UNLESS_CODELIKE
    - assert
    - PyArg_ParseTuple
    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:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    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:517,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Modules/_testcapi/monitoring.c:520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/monitoring.c:521,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/monitoring.c:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 528
    functionName: _PyTestCapi_Init_Monitoring
    functionSourceFile: /src/cpython/Modules/_testcapi/monitoring.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyModule_AddFunctions
    - PyModule_AddObjectRef
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int _PyTestCapi_Init_Monitoring(PyObject *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/bytes.c:18,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/bytes.c:21,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:23,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:24,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Modules/_testcapi/bytes.c:24,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testcapi/bytes.c:25,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_testcapi/bytes.c:25,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/bytes.c:29,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testcapi/bytes.c:29,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Modules/_testcapi/bytes.c:29,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Modules/_testcapi/bytes.c:29,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Modules/_testcapi/bytes.c:33,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Modules/_testcapi/bytes.c:35,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:36,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    - condition: (PyBytes_CheckExact(obj))
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    - condition: (obj != NULL)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    - condition: (obj == NULL)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    constantsTouched: []
    func_position:
      end: 42
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 42
    functionName: bytes_resize
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyBytes_Size
    - PyBytes_FromStringAndSize
    - PyBytes_CheckExact
    - PyBytes_AsString
    - _PyBytes_Resize
    - memcpy
    - assert
    - PyArg_ParseTuple
    - Py_XINCREF
    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:50,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/bytes.c:53,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testcapi/bytes.c:54,1
    - Dst: PyBytes_Join
      Src: /src/cpython/Modules/_testcapi/bytes.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: bytes_join
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyBytes_Join
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_join(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Modules/_testcapi/bytes.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: writer_new
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/bytes.c:82,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testcapi/bytes.c:83,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/bytes.c:92,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_testcapi/bytes.c:99,1
    - Dst: _PyBytesWriter_CreateByteArray
      Src: /src/cpython/Modules/_testcapi/bytes.c:102,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_testcapi/bytes.c:105,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_testcapi/bytes.c:112,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/bytes.c:113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self_raw
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 117
    functionName: writer_init
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_GetData
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - memcpy
    - PyErr_Format
    - PyArg_ParseTuple
    - PyDict_GET_SIZE
    - _PyBytesWriter_CreateByteArray
    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/bytes.c:124,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_testcapi/bytes.c:126,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_testcapi/bytes.c:128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/bytes.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self_raw
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: writer_dealloc
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    - PyBytesWriter_Discard
    linkageType: ''
    returnType: void
    signature: void writer_dealloc(PyObject *self_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/bytes.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - WriterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: writer_check
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 11
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int writer_check(WriterObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/bytes.c:148,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/bytes.c:154,1
    - Dst: PyBytesWriter_WriteBytes
      Src: /src/cpython/Modules/_testcapi/bytes.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: writer_write_bytes
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyArg_ParseTuple
    - PyBytesWriter_WriteBytes
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_write_bytes(PyObject *self_raw, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/bytes.c:169,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/bytes.c:175,1
    - Dst: PyBytesWriter_Format
      Src: /src/cpython/Modules/_testcapi/bytes.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: writer_format_i
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyArg_ParseTuple
    - PyBytesWriter_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_format_i(PyObject *self_raw, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/bytes.c:190,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/bytes.c:197,1
    - Dst: assert
      Src: /src/cpython/Modules/_testcapi/bytes.c:202,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Modules/_testcapi/bytes.c:204,1
    - Dst: PyBytesWriter_Resize
      Src: /src/cpython/Modules/_testcapi/bytes.c:205,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_testcapi/bytes.c:209,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/bytes.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (size >= str_size)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/cpython/Modules/_testcapi/bytes.c
    constantsTouched: []
    func_position:
      end: 213
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 213
    functionName: writer_resize
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyBytesWriter_GetData
    - PyBytesWriter_Resize
    - memcpy
    - assert
    - PyArg_ParseTuple
    - PyBytesWriter_GetSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_resize(PyObject *self_raw, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/bytes.c:220,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Modules/_testcapi/bytes.c:224,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testcapi/bytes.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self_raw
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: writer_get_size
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyLong_FromSsize_t
    - PyBytesWriter_GetSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_get_size(PyObject *self_raw, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/bytes.c:233,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_testcapi/bytes.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self_raw
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: writer_finish
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyBytesWriter_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_finish(PyObject *self_raw, PyObject *Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: writer_check
      Src: /src/cpython/Modules/_testcapi/bytes.c:247,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/bytes.c:252,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Modules/_testcapi/bytes.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self_raw
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 259
    functionName: writer_finish_with_size
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - writer_check
    - PyArg_ParseTuple
    - PyBytesWriter_FinishWithSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      writer_finish_with_size(PyObject *self_raw, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_testcapi/bytes.c:291,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_testcapi/bytes.c:296,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/bytes.c:297,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_testcapi/bytes.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 300
    functionName: byteswriter_abc
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_GetData
    - PyBytesWriter_Create
    - memcpy
    - PyBytesWriter_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      byteswriter_abc(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_testcapi/bytes.c:307,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Modules/_testcapi/bytes.c:311,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/bytes.c:314,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testcapi/bytes.c:314,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testcapi/bytes.c:315,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Modules/_testcapi/bytes.c:318,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_testcapi/bytes.c:320,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_testcapi/bytes.c:325,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testcapi/bytes.c:325,1
    - Dst: strlen
      Src: /src/cpython/Modules/_testcapi/bytes.c:326,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Modules/_testcapi/bytes.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 330
    functionName: byteswriter_resize
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - memcpy
    - PyBytesWriter_GrowAndUpdatePointer
    - strlen
    - PyBytesWriter_GetData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      byteswriter_resize(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Modules/_testcapi/bytes.c:336,1
    - Dst: PyBytesWriter_WriteBytes
      Src: /src/cpython/Modules/_testcapi/bytes.c:340,1
    - Dst: PyBytesWriter_Format
      Src: /src/cpython/Modules/_testcapi/bytes.c:343,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Modules/_testcapi/bytes.c:346,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Modules/_testcapi/bytes.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 351
    functionName: byteswriter_highlevel
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - PyBytesWriter_Format
    - PyBytesWriter_Discard
    - PyBytesWriter_WriteBytes
    - PyBytesWriter_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      byteswriter_highlevel(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/bytes.c:366,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testcapi/bytes.c:370,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testcapi/bytes.c:374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/bytes.c:375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testcapi/bytes.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 381
    functionName: _PyTestCapi_Init_Bytes
    functionSourceFile: /src/cpython/Modules/_testcapi/bytes.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyModule_AddFunctions
    - PyType_FromSpec
    - PyModule_AddType
    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:
    - PyConfig_Get
    - PyArg_Parse
    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:
    - PyConfig_GetInt
    - PyLong_FromLong
    - PyArg_Parse
    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:
    - PyArg_ParseTuple
    - PyConfig_Set
    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:
    - PyArg_ParseTuple
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - NULLABLE
    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_GET_ITEM
    - PyTuple_SET_ITEM
    - PyTuple_GET_SIZE
    - Py_XNewRef
    - PyTuple_New
    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:
    - PyTuple_GET_ITEM
    - Py_XNewRef
    - PyTuple_SET_ITEM
    - NULLABLE
    - PyArg_ParseTuple
    - Py_DECREF
    - PyTuple_CheckExact
    - tuple_copy
    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:
    - assert
    - _PyTuple_Resize
    - NULLABLE
    - PyArg_ParseTuple
    - tuple_copy
    - Py_XINCREF
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _check_tuple_item_is_NULL(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testcapi/tuple.c:112,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_testcapi/tuple.c:115,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testcapi/tuple.c:116,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_testcapi/tuple.c:122,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_testcapi/tuple.c:124,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Modules/_testcapi/tuple.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 131
    functionName: tuple_fromarray
    functionSourceFile: /src/cpython/Modules/_testcapi/tuple.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_FromArray
    - PyErr_SetString
    - PyTuple_Check
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_fromarray(PyObject* Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testcapi/tuple.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    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:
    - PyDict_GetItemStringRef
    - PyDict_SetItemString
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyUnstable_Eval_RequestCodeExtraIndex
    - 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
    - get_code_extra_index
    - PyUnstable_Code_SetExtra
    - Py_NewRef
    - PyFunction_GetCode
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - PyImport_ImportModuleAttrString
    - PyUnstable_Code_GetExtra
    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:
    - Py_SET_TYPE
    - Py_SET_SIZE
    - Py_SIZE
    - PyList_New
    - assert
    - Py_DECREF
    - Py_TYPE
    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_GET_SIZE
    - PyErr_SetString
    - PyTuple_Check
    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:
    - PyErr_SetString
    - PyDict_Check
    - 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:
    - fastcall_args
    - PyObject_Vectorcall
    - PyErr_SetString
    - PyTuple_Check
    - PyTuple_GET_SIZE
    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:
    - PyFunction_SetVectorcall
    - PyErr_SetString
    - PyFunction_Check
    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:
    - PyVectorcall_Call
    - PyErr_SetString
    - PyTuple_Check
    - PyDict_Check
    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_AddFunctions
    - PyType_Ready
    - PyModule_AddType
    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
    - PyLong_Check
    - Py_BUILD_ASSERT
    - PyErr_Occurred
    - 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:
    - PyArg_ParseTuple
    - pytime_from_nanoseconds
    - PyTime_AsSecondsDouble
    - PyFloat_FromDouble
    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: (res == 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (t == 0)
      pos:
        line_end: 52
        line_start: 52
        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:
    - assert
    - pytime_as_float
    - PyTime_Monotonic
    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: (res == 0)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (t == 0)
      pos:
        line_end: 69
        line_start: 69
        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_MonotonicRaw
    - PyErr_SetString
    - pytime_as_float
    - assert
    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_as_float
    - PyTime_PerfCounter
    - 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: (t == 0)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (res == 0)
      pos:
        line_end: 105
        line_start: 105
        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_PerfCounterRaw
    - PyErr_SetString
    - pytime_as_float
    - 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: (res == 0)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (t == 0)
      pos:
        line_end: 116
        line_start: 116
        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_Time
    - pytime_as_float
    - 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: (res == 0)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Modules/_testcapi/time.c
    - condition: (t == 0)
      pos:
        line_end: 133
        line_start: 133
        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:
    - PyErr_SetString
    - PyTime_TimeRaw
    - pytime_as_float
    - 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:
    - PyModule_AddFunctions
    - PyModule_AddObject
    - Py_BUILD_ASSERT
    - PyLong_FromLongLong
    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_AddFunctions
    - PyModule_AddObject
    - PyLong_FromLong
    - PyModule_AddType
    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:
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - PyLong_AsInt
    - PyFloat_AsDouble
    - PyFloat_CheckExact
    - PyErr_Occurred
    - _testcapi_float_pack_impl
    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:
    - _testcapi_float_unpack_impl
    - _PyArg_ParseStack
    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:
    - PyLong_AsInt
    - _testcapi_pyfile_newstdprinter_impl
    - PyErr_Occurred
    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:
    - _testcapi_py_fopen_impl
    - _PyArg_ParseStack
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _testcapi_py_universalnewlinefgets_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _testcapi_watch_dict_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _testcapi_unwatch_dict_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _testcapi_watch_type_impl
    - PyErr_Occurred
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _testcapi_unwatch_type_impl
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - _testcapi_set_func_kwdefaults_via_capi_impl
    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:
    - _PyArg_CheckPositional
    - PyObject_IsTrue
    - _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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _testcapi_make_exception_with_doc_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _testcapi_exc_set_object_impl
    - _PyArg_CheckPositional
    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:
    - _PyArg_CheckPositional
    - _testcapi_exc_set_object_fetch_impl
    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:
    - _testcapi_err_setstring_impl
    - _PyArg_ParseStack
    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:
    - _PyArg_ParseStack
    - _testcapi_err_setfromerrnowithfilename_impl
    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:
    - PyLong_AsInt
    - _PyArg_CheckPositional
    - _testcapi_raise_exception_impl
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - _testcapi_unstable_exc_prep_reraise_star_impl
    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:
    - _PyArg_CheckPositional
    - _testcapi_pyobject_fastcalldict_impl
    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:
    - _PyArg_CheckPositional
    - _testcapi_pyvectorcall_call_impl
    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:
    - PyObject_TypeCheck
    - _testcapi_VectorCallClass_set_vectorcall_impl
    - _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:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - _testcapi_make_vectorcall_class_impl
    - _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
    - _testcapi_has_vectorcall_flag_impl
    - _PyArg_BadArgument
    - PyBool_FromLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcapi_has_vectorcall_flag(PyObject *module, PyObject *arg)'
  - 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: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: GET_MEMBER
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    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: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: CLEAR_PTR_TAG
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    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: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: GET_MEMBER_NO_TAG
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: MAX
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - 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: 187
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: set_exception_cause
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_exception_cause(unwinder, exc_type, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: REMOTE_DEBUG_UNLIKELY
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REMOTE_DEBUG_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: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: REMOTE_DEBUG_UNLIKELY
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REMOTE_DEBUG_UNLIKELY(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unwinder
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: STATS_INC
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATS_INC(unwinder, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - unwinder
    - ','
    - field
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: STATS_ADD
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATS_ADD(unwinder, field, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - unwinder
    - ','
    - requested
    - ','
    - completed
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: STATS_BATCHED_READ
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATS_BATCHED_READ(unwinder, requested, completed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - unwinder
    - ','
    - requested
    - ','
    - completed
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: STATS_BATCHED_READ
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATS_BATCHED_READ(unwinder, requested, completed)
  - 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: RemoteUnwinder_CAST
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RemoteUnwinder_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: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: GCMonitor_CAST
    functionSourceFile: /src/cpython/Modules/_remote_debugging/_remote_debugging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCMonitor_CAST(op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:35,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:41,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:47,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:53,1
    - Dst: processor
      Src: /src/cpython/Modules/_remote_debugging/threads.c:58,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:63,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - unwinder
    - processor
    - context
    argTypes:
    - RemoteUnwinderObject*
    - thread_processor_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 75
    functionName: iterate_threads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.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: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:93,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:99,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/threads.c:104,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:105,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:119,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:124,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: 129
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 129
    functionName: populate_initial_state_data
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.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/threads.c:138,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:143,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: 151
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: find_running_frame
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.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: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/threads.c:161,1
    - Dst: proc_pidinfo
      Src: /src/cpython/Modules/_remote_debugging/threads.c:166,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/threads.c:168,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/threads.c:180,1
    - Dst: proc_pidinfo
      Src: /src/cpython/Modules/_remote_debugging/threads.c:184,1
    - Dst: snprintf
      Src: /src/cpython/Modules/_remote_debugging/threads.c:195,1
    - Dst: open
      Src: /src/cpython/Modules/_remote_debugging/threads.c:197,1
    - Dst: read
      Src: /src/cpython/Modules/_remote_debugging/threads.c:202,1
    - Dst: close
      Src: /src/cpython/Modules/_remote_debugging/threads.c:203,1
    - Dst: close
      Src: /src/cpython/Modules/_remote_debugging/threads.c:206,1
    - Dst: strchr
      Src: /src/cpython/Modules/_remote_debugging/threads.c:208,1
    - Dst: NtQuerySystemInformation
      Src: /src/cpython/Modules/_remote_debugging/threads.c:232,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_remote_debugging/threads.c:241,1
    - Dst: get_thread_status
      Src: /src/cpython/Modules/_remote_debugging/threads.c:247,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 3
    argNames:
    - unwinder
    - tid
    - pthread_id
    argTypes:
    - RemoteUnwinderObject*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 274
    functionName: get_thread_status
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 1
    functionsReached:
    - close
    - PyMem_Realloc
    - proc_pidinfo
    - open
    - NtQuerySystemInformation
    - strchr
    - get_thread_status
    - read
    - PyMem_Free
    - PyMem_Malloc
    - snprintf
    linkageType: ''
    returnType: int
    signature: int get_thread_status(RemoteUnwinderObject *unwinder, uint64_t tid,
      uint64_t pthread_id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_BatchedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:308,1
    - Dst: STATS_BATCHED_READ
      Src: /src/cpython/Modules/_remote_debugging/threads.c:317,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - unwinder
    - tstate_addr
    - tstate_size
    - tstate_buffer
    - predicted_frame_addr
    - frame_buffer
    - frame_read
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - size_t
    - char*
    - uintptr_t
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 325
    functionName: read_thread_state_and_maybe_frame
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_BatchedReadRemoteMemory
    - STATS_BATCHED_READ
    - _Py_RemoteDebug_ReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int read_thread_state_and_maybe_frame(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t tstate_addr,\n    size_t tstate_size,\n    char *tstate_buffer,\n
      \   uintptr_t predicted_frame_addr,\n    char *frame_buffer,\n    int *frame_read)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: frame_cache_find_by_tstate
      Src: /src/cpython/Modules/_remote_debugging/threads.c:355,1
    - Dst: read_thread_state_and_maybe_frame
      Src: /src/cpython/Modules/_remote_debugging/threads.c:360,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:369,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:379,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:385,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/threads.c:390,1
    - Dst: STATS_ADD
      Src: /src/cpython/Modules/_remote_debugging/threads.c:391,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/threads.c:393,1
    - Dst: STATS_ADD
      Src: /src/cpython/Modules/_remote_debugging/threads.c:394,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:397,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:406,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:411,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:415,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:433,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:444,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:457,1
    - Dst: get_thread_status
      Src: /src/cpython/Modules/_remote_debugging/threads.c:462,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:493,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:497,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:498,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/threads.c:500,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:502,1
    - Dst: copy_stack_chunks
      Src: /src/cpython/Modules/_remote_debugging/threads.c:508,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:509,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/threads.c:527,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:531,1
    - Dst: collect_frames_with_cache
      Src: /src/cpython/Modules/_remote_debugging/threads.c:533,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:534,1
    - Dst: _Py_RemoteDebug_WriteRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:541,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/threads.c:543,1
    - Dst: process_frame_chain
      Src: /src/cpython/Modules/_remote_debugging/threads.c:548,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:549,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/threads.c:554,1
    - Dst: frame_cache_find
      Src: /src/cpython/Modules/_remote_debugging/threads.c:557,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_remote_debugging/threads.c:559,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_remote_debugging/threads.c:563,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:565,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/threads.c:570,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/threads.c:571,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:573,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/threads.c:578,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/threads.c:580,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/threads.c:585,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/threads.c:586,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/threads.c:587,1
    - Dst: cleanup_stack_chunks
      Src: /src/cpython/Modules/_remote_debugging/threads.c:589,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/threads.c:593,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/threads.c:594,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/threads.c:595,1
    - Dst: cleanup_stack_chunks
      Src: /src/cpython/Modules/_remote_debugging/threads.c:596,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 157
    argCount: 6
    argNames:
    - unwinder
    - current_tstate
    - gil_holder_tstate
    - gc_frame
    - main_thread_tstate
    - prefetch
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t*
    - uintptr_t
    - uintptr_t
    - uintptr_t
    - RemoteReadPrefetch*
    assertStmts:
    - condition: (ctx.max_addrs == FRAME_CACHE_MAX_FRAMES)
      pos:
        line_end: 526
        line_start: 526
        source_file: /src/cpython/Modules/_remote_debugging/threads.c
    constantsTouched: []
    func_position:
      end: 598
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 598
    functionName: unwind_stack_for_thread
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - PyLong_FromLong
    - cleanup_stack_chunks
    - assert
    - STATS_ADD
    - collect_frames_with_cache
    - _Py_RemoteDebug_ReadRemoteMemory
    - frame_cache_find
    - PyLong_FromLongLong
    - PyList_New
    - Py_XDECREF
    - frame_cache_find_by_tstate
    - read_thread_state_and_maybe_frame
    - process_frame_chain
    - set_exception_cause
    - _Py_RemoteDebug_WriteRemoteMemory
    - RemoteDebugging_GetStateFromObject
    - PyErr_Clear
    - Py_NewRef
    - PyStructSequence_SetItem
    - copy_stack_chunks
    - PyStructSequence_New
    - get_thread_status
    - STATS_INC
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunwind_stack_for_thread(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t *current_tstate,\n    uintptr_t gil_holder_tstate,\n    uintptr_t
      gc_frame,\n    uintptr_t main_thread_tstate,\n    const RemoteReadPrefetch *prefetch\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 611
    functionName: _Py_RemoteDebug_InitThreadsState
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_InitThreadsState(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: task_suspend
      Src: /src/cpython/Modules/_remote_debugging/threads.c:616,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/threads.c:619,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/threads.c:622,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/threads.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 633
    functionName: _Py_RemoteDebug_StopAllThreads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_ClearCache
    - task_suspend
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _Py_RemoteDebug_StopAllThreads(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_resume
      Src: /src/cpython/Modules/_remote_debugging/threads.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 644
    functionName: _Py_RemoteDebug_ResumeAllThreads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - task_resume
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_ResumeAllThreads(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: _Py_RemoteDebug_InitThreadsState
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_InitThreadsState(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/cpython/Modules/_remote_debugging/threads.c:659,1
    - Dst: opendir
      Src: /src/cpython/Modules/_remote_debugging/threads.c:661,1
    - Dst: _Py_RemoteDebug_InitThreadsState
      Src: /src/cpython/Modules/_remote_debugging/threads.c:663,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/threads.c:665,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_remote_debugging/threads.c:668,1
    - Dst: readdir
      Src: /src/cpython/Modules/_remote_debugging/threads.c:677,1
    - Dst: closedir
      Src: /src/cpython/Modules/_remote_debugging/threads.c:681,1
    - Dst: _Py_RemoteDebug_InitThreadsState
      Src: /src/cpython/Modules/_remote_debugging/threads.c:682,1
    - Dst: _set_debug_oserror_from_errno_with_filename
      Src: /src/cpython/Modules/_remote_debugging/threads.c:683,1
    - Dst: strerror
      Src: /src/cpython/Modules/_remote_debugging/threads.c:685,1
    - Dst: strtol
      Src: /src/cpython/Modules/_remote_debugging/threads.c:694,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/_remote_debugging/threads.c:700,1
    - Dst: closedir
      Src: /src/cpython/Modules/_remote_debugging/threads.c:702,1
    - Dst: _Py_RemoteDebug_InitThreadsState
      Src: /src/cpython/Modules/_remote_debugging/threads.c:703,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/threads.c:704,1
    - Dst: closedir
      Src: /src/cpython/Modules/_remote_debugging/threads.c:713,1
    - Dst: _Py_RemoteDebug_InitThreadsState
      Src: /src/cpython/Modules/_remote_debugging/threads.c:715,1
    - Dst: _set_debug_oserror_from_errno_with_filename
      Src: /src/cpython/Modules/_remote_debugging/threads.c:716,1
    - Dst: strerror
      Src: /src/cpython/Modules/_remote_debugging/threads.c:718,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 723
    functionName: read_thread_ids
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - closedir
    - PyErr_NoMemory
    - opendir
    - PyMem_RawRealloc
    - PyErr_SetFromErrnoWithFilename
    - strtol
    - strerror
    - PyErr_Format
    - readdir
    - _set_debug_oserror_from_errno_with_filename
    - _Py_RemoteDebug_InitThreadsState
    - snprintf
    linkageType: ''
    returnType: int
    signature: int read_thread_ids(RemoteUnwinderObject *unwinder, _Py_RemoteDebug_ThreadsState
      *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ptrace
      Src: /src/cpython/Modules/_remote_debugging/threads.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - st
    - up_to
    argTypes:
    - _Py_RemoteDebug_ThreadsState*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 731
    functionName: detach_threads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - ptrace
    linkageType: ''
    returnType: void
    signature: void detach_threads(_Py_RemoteDebug_ThreadsState *st, size_t up_to)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ptrace
      Src: /src/cpython/Modules/_remote_debugging/threads.c:736,1
    - Dst: ptrace
      Src: /src/cpython/Modules/_remote_debugging/threads.c:751,1
    - Dst: waitpid
      Src: /src/cpython/Modules/_remote_debugging/threads.c:753,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - tid
    - err
    argTypes:
    - pid_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 762
    functionName: seize_thread
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - waitpid
    - ptrace
    linkageType: ''
    returnType: int
    signature: int seize_thread(pid_t tid, int *err)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: read_thread_ids
      Src: /src/cpython/Modules/_remote_debugging/threads.c:767,1
    - Dst: seize_thread
      Src: /src/cpython/Modules/_remote_debugging/threads.c:777,1
    - Dst: detach_threads
      Src: /src/cpython/Modules/_remote_debugging/threads.c:782,1
    - Dst: _set_debug_oserror_from_errno
      Src: /src/cpython/Modules/_remote_debugging/threads.c:783,1
    - Dst: strerror
      Src: /src/cpython/Modules/_remote_debugging/threads.c:784,1
    - Dst: _Py_RemoteDebug_InitThreadsState
      Src: /src/cpython/Modules/_remote_debugging/threads.c:785,1
    - Dst: ptrace
      Src: /src/cpython/Modules/_remote_debugging/threads.c:790,1
    - Dst: detach_threads
      Src: /src/cpython/Modules/_remote_debugging/threads.c:793,1
    - Dst: _set_debug_oserror_from_errno
      Src: /src/cpython/Modules/_remote_debugging/threads.c:794,1
    - Dst: strerror
      Src: /src/cpython/Modules/_remote_debugging/threads.c:795,1
    - Dst: _Py_RemoteDebug_InitThreadsState
      Src: /src/cpython/Modules/_remote_debugging/threads.c:796,1
    - Dst: waitpid
      Src: /src/cpython/Modules/_remote_debugging/threads.c:802,1
    - Dst: detach_threads
      Src: /src/cpython/Modules/_remote_debugging/threads.c:805,1
    - Dst: _set_debug_oserror_from_errno
      Src: /src/cpython/Modules/_remote_debugging/threads.c:806,1
    - Dst: strerror
      Src: /src/cpython/Modules/_remote_debugging/threads.c:807,1
    - Dst: _Py_RemoteDebug_InitThreadsState
      Src: /src/cpython/Modules/_remote_debugging/threads.c:808,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 816
    functionName: _Py_RemoteDebug_StopAllThreads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - waitpid
    - read_thread_ids
    - ptrace
    - strerror
    - seize_thread
    - detach_threads
    - _set_debug_oserror_from_errno
    - _Py_RemoteDebug_InitThreadsState
    linkageType: ''
    returnType: int
    signature: int _Py_RemoteDebug_StopAllThreads(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: detach_threads
      Src: /src/cpython/Modules/_remote_debugging/threads.c:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 827
    functionName: _Py_RemoteDebug_ResumeAllThreads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - detach_threads
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_ResumeAllThreads(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 836
    functionName: _Py_RemoteDebug_InitThreadsState
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_InitThreadsState(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/cpython/Modules/_remote_debugging/threads.c:845,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_remote_debugging/threads.c:847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/threads.c:853,1
    - Dst: pNtSuspendProcess
      Src: /src/cpython/Modules/_remote_debugging/threads.c:857,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/threads.c:861,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/threads.c:865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 867
    functionName: _Py_RemoteDebug_StopAllThreads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_ClearCache
    - GetModuleHandleW
    - pNtSuspendProcess
    - PyErr_SetString
    - PyErr_Format
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int _Py_RemoteDebug_StopAllThreads(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/cpython/Modules/_remote_debugging/threads.c:880,1
    - Dst: GetProcAddress
      Src: /src/cpython/Modules/_remote_debugging/threads.c:882,1
    - Dst: pNtResumeProcess
      Src: /src/cpython/Modules/_remote_debugging/threads.c:888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 892
    functionName: _Py_RemoteDebug_ResumeAllThreads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - GetModuleHandleW
    - pNtResumeProcess
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_ResumeAllThreads(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 901
    functionName: _Py_RemoteDebug_InitThreadsState
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_InitThreadsState(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 909
    functionName: _Py_RemoteDebug_StopAllThreads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _Py_RemoteDebug_StopAllThreads(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unwinder
    - st
    argTypes:
    - RemoteUnwinderObject*
    - _Py_RemoteDebug_ThreadsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 916
    functionName: _Py_RemoteDebug_ResumeAllThreads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/threads.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_RemoteDebug_ResumeAllThreads(RemoteUnwinderObject *unwinder,
      _Py_RemoteDebug_ThreadsState *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:21,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: tlbc_cache_entry_destroy
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.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/code_objects.c:30,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:34,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: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: get_tlbc_cache_entry
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_get
    - _Py_hashtable_set
    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/code_objects.c:49,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:50,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:56,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:62,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:63,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:69,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:74,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:77,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:81,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:83,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:84,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:88,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:89,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:90,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:95,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:97,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:98,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:99,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:109,1
    - Dst: tlbc_cache_entry_destroy
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:110,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:111,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:112,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 4
    argNames:
    - unwinder
    - code_addr
    - tlbc_array_addr
    - generation
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t
    - uint32_t
    assertStmts:
    - condition: (tlbc_size > 0 && tlbc_size <= MAX_TLBC_SIZE)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/cpython/Modules/_remote_debugging/code_objects.c
    constantsTouched: []
    func_position:
      end: 117
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 117
    functionName: cache_tlbc_array
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _Py_hashtable_set
    - PyErr_SetString
    - PyMem_RawFree
    - PyMem_RawMalloc
    - assert
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - tlbc_cache_entry_destroy
    - set_exception_cause
    - read_ptr
    linkageType: ''
    returnType: int
    signature: int cache_tlbc_array(RemoteUnwinderObject *unwinder, uintptr_t code_addr,
      uintptr_t tlbc_array_addr, uint32_t generation)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - end
    - out
    argTypes:
    - uint8_t**
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: read_byte
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int read_byte(const uint8_t **ptr, const uint8_t *end, uint8_t *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:140,1
    - Dst: read_byte
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ptr
    - end
    argTypes:
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 157
    functionName: scan_varint
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached:
    - read_byte
    linkageType: ''
    returnType: int
    signature: int scan_varint(const uint8_t **ptr, const uint8_t *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: scan_varint
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - end
    argTypes:
    - uint8_t**
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: scan_signed_varint
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached:
    - scan_varint
    linkageType: ''
    returnType: int
    signature: int scan_signed_varint(const uint8_t **ptr, const uint8_t *end)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: scan_signed_varint
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:205,1
    - Dst: scan_varint
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:211,1
    - Dst: scan_varint
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:216,1
    - Dst: scan_varint
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:221,1
    - Dst: scan_signed_varint
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:228,1
    - Dst: read_byte
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:241,1
    - Dst: read_byte
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:245,1
    - Dst: read_byte
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:251,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 5
    argNames:
    - addrq
    - linetable
    - linetable_size
    - firstlineno
    - info
    argTypes:
    - uintptr_t
    - char*
    - Py_ssize_t
    - int
    - LocationInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 269
    functionName: parse_linetable
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached:
    - read_byte
    - scan_signed_varint
    - scan_varint
    linkageType: ''
    returnType: bool
    signature: "bool parse_linetable(const uintptr_t addrq, const char* linetable,
      Py_ssize_t linetable_size,\n                int firstlineno, LocationInfo* info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:279,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:280,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:282,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:288,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:291,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:295,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:298,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:302,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:305,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:309,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - unwinder
    - lineno
    - end_lineno
    - col_offset
    - end_col_offset
    argTypes:
    - RemoteUnwinderObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 315
    functionName: make_location_info
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_New
    - RemoteDebugging_GetStateFromObject
    - Py_DECREF
    - set_exception_cause
    - PyStructSequence_SetItem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmake_location_info(RemoteUnwinderObject *unwinder, int
      lineno, int end_lineno,\n                   int col_offset, int end_col_offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:321,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:322,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:324,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:327,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:328,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:329,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:330,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:331,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:332,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:333,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - unwinder
    - file
    - location
    - func
    - opcode
    argTypes:
    - RemoteUnwinderObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: make_frame_info
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyStructSequence_New
    - RemoteDebugging_GetStateFromObject
    - set_exception_cause
    - PyStructSequence_SetItem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmake_frame_info(RemoteUnwinderObject *unwinder, PyObject
      *file, PyObject *location,\n                PyObject *func, PyObject *opcode)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:358,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:360,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:362,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:368,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:371,1
    - Dst: read_py_str
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:375,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:376,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:378,1
    - Dst: read_py_str
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:382,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:383,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:385,1
    - Dst: read_py_bytes
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:389,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:390,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:392,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:396,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:398,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:399,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:408,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:411,1
    - Dst: cached_code_metadata_destroy
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:418,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:419,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:420,1
    - Dst: get_tlbc_cache_entry
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:442,1
    - Dst: cache_tlbc_array
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:446,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:447,1
    - Dst: get_tlbc_cache_entry
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:450,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:457,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:460,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:464,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:487,1
    - Dst: parse_linetable
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:492,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:492,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:493,1
    - Dst: make_location_info
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:503,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:516,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:520,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:521,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:526,1
    - Dst: make_frame_info
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:532,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:533,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:539,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:539,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:547,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:548,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/code_objects.c:549,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 138
    argCount: 3
    argNames:
    - unwinder
    - result
    - ctx
    argTypes:
    - RemoteUnwinderObject*
    - PyObject**
    - CodeObjectContext*
    assertStmts:
    - condition: (tlbc_entry->tlbc_array_size > 0)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/cpython/Modules/_remote_debugging/code_objects.c
    constantsTouched: []
    func_position:
      end: 551
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 551
    functionName: parse_code_object
    functionSourceFile: /src/cpython/Modules/_remote_debugging/code_objects.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - PyLong_FromLong
    - get_tlbc_cache_entry
    - assert
    - parse_linetable
    - read_py_str
    - PyErr_NoMemory
    - _Py_hashtable_set
    - make_location_info
    - Py_XDECREF
    - PyBytes_AS_STRING
    - cached_code_metadata_destroy
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    - cache_tlbc_array
    - _Py_hashtable_get
    - PyErr_Clear
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_NewRef
    - Py_XSETREF
    - PyMem_RawMalloc
    - read_py_bytes
    - PyErr_Format
    - make_frame_info
    - STATS_INC
    linkageType: ''
    returnType: int
    signature: "int parse_code_object(RemoteUnwinderObject *unwinder,\n                  PyObject
      **result,\n                  const CodeObjectContext *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/interpreters.c:24,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/interpreters.c:28,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/interpreters.c:33,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/interpreters.c:42,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/interpreters.c:47,1
    - Dst: processor
      Src: /src/cpython/Modules/_remote_debugging/interpreters.c:51,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/interpreters.c:55,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/interpreters.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - offsets
    - processor
    - context
    argTypes:
    - RuntimeOffsets*
    - interpreter_processor_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 66
    functionName: iterate_interpreters
    functionSourceFile: /src/cpython/Modules/_remote_debugging/interpreters.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - set_exception_cause
    - processor
    - _Py_RemoteDebug_ReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int iterate_interpreters(\n    RuntimeOffsets *offsets,\n    interpreter_processor_func
      processor,\n    void *context\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:41,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:47,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:48,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:50,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:51,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:52,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:53,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:54,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:55,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:56,1
    - Dst: SET_FIELD
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:58,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:60,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:61,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 4
    argNames:
    - stats
    - iid
    - result
    - gc_stats_info_type
    argTypes:
    - struct gc_stats*
    - int64_t
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 76
    functionName: read_gc_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/gc_stats.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - Py_CLEAR
    - Py_XDECREF
    - PyList_Append
    - SET_FIELD
    linkageType: ''
    returnType: int
    signature: "int read_gc_stats(struct gc_stats *stats, int64_t iid, PyObject *result,\n
      \             PyTypeObject *gc_stats_info_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - converter
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: SET_FIELD
    functionSourceFile: /src/cpython/Modules/_remote_debugging/gc_stats.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FIELD(converter, expr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:93,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:97,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:101,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:106,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:110,1
    - Dst: read_gc_stats
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:114,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - offsets
    - interpreter_state_addr
    - iid
    - context
    argTypes:
    - RuntimeOffsets*
    - uintptr_t
    - int64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: get_gc_stats_from_interpreter_state
    functionSourceFile: /src/cpython/Modules/_remote_debugging/gc_stats.c
    functionUses: 0
    functionsReached:
    - read_gc_stats
    - PyErr_SetString
    - set_exception_cause
    - _Py_RemoteDebug_ReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int get_gc_stats_from_interpreter_state(RuntimeOffsets *offsets,\n
      \                                   uintptr_t interpreter_state_addr,\n                                    int64_t
      iid,\n                                    void *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:129,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:134,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:138,1
    - Dst: iterate_interpreters
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:147,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/gc_stats.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - offsets
    - all_interpreters
    - gc_stats_info_type
    argTypes:
    - RuntimeOffsets*
    - bool
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 154
    functionName: get_gc_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/gc_stats.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyList_New
    - PyErr_Format
    - set_exception_cause
    - iterate_interpreters
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_gc_stats(RuntimeOffsets *offsets, bool all_interpreters,\n
      \            PyTypeObject *gc_stats_info_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:18,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - unwinder
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: frame_cache_init
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frame_cache.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int frame_cache_init(RemoteUnwinderObject *unwinder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:33,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:34,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - unwinder
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: frame_cache_cleanup
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frame_cache.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void frame_cache_cleanup(RemoteUnwinderObject *unwinder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:48,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - unwinder
    - thread_id
    argTypes:
    - RemoteUnwinderObject*
    - uint64_t
    assertStmts:
    - condition: (i >= 0 && i < FRAME_CACHE_MAX_THREADS)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/cpython/Modules/_remote_debugging/frame_cache.c
    - condition: (unwinder->frame_cache[i].num_addrs <= FRAME_CACHE_MAX_FRAMES)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/cpython/Modules/_remote_debugging/frame_cache.c
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: frame_cache_find
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frame_cache.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: FrameCacheEntry
    signature: 'FrameCacheEntry *

      frame_cache_find(RemoteUnwinderObject *unwinder, uint64_t thread_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - unwinder
    - tstate_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts:
    - condition: (unwinder->frame_cache[i].num_addrs <= FRAME_CACHE_MAX_FRAMES)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/cpython/Modules/_remote_debugging/frame_cache.c
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: frame_cache_find_by_tstate
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frame_cache.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: FrameCacheEntry
    signature: 'FrameCacheEntry *

      frame_cache_find_by_tstate(RemoteUnwinderObject *unwinder, uintptr_t tstate_addr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - unwinder
    - thread_id
    argTypes:
    - RemoteUnwinderObject*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: frame_cache_alloc_slot
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frame_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrameCacheEntry
    signature: 'FrameCacheEntry *

      frame_cache_alloc_slot(RemoteUnwinderObject *unwinder, uint64_t thread_id)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:102,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:110,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:112,1
    - Dst: PyStructSequence_GetItem
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:113,1
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:114,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:117,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:119,1
    - Dst: PyStructSequence_GetItem
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:120,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:123,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:126,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:146,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:147,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:151,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 2
    argNames:
    - unwinder
    - result
    argTypes:
    - RemoteUnwinderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 154
    functionName: frame_cache_invalidate_stale
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frame_cache.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_GetItem
    - PyList_GET_ITEM
    - Py_CLEAR
    - PyLong_AsUnsignedLongLong
    - PyList_Check
    - PyErr_Clear
    - PyErr_Occurred
    - PyList_GET_SIZE
    - STATS_INC
    linkageType: ''
    returnType: void
    signature: void frame_cache_invalidate_stale(RemoteUnwinderObject *unwinder, PyObject
      *result)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: frame_cache_find
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:172,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:177,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:191,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:193,1
    - Dst: PyList_GetSlice
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:204,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:209,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:211,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 7
    argNames:
    - unwinder
    - thread_id
    - last_profiled_frame
    - frame_info
    - frame_addrs
    - num_addrs
    - max_addrs
    argTypes:
    - RemoteUnwinderObject*
    - uint64_t
    - uintptr_t
    - PyObject*
    - uintptr_t*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts:
    - condition: (start_idx < entry->num_addrs)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/cpython/Modules/_remote_debugging/frame_cache.c
    - condition: (entry->num_addrs >= 0 && entry->num_addrs <= FRAME_CACHE_MAX_FRAMES)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Modules/_remote_debugging/frame_cache.c
    constantsTouched: []
    func_position:
      end: 225
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 225
    functionName: frame_cache_lookup_and_extend
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frame_cache.c
    functionUses: 0
    functionsReached:
    - frame_cache_find
    - PyList_GetSlice
    - PyList_GET_SIZE
    - assert
    - Py_DECREF
    - PyList_SetSlice
    linkageType: ''
    returnType: int
    signature: "int frame_cache_lookup_and_extend(\n    RemoteUnwinderObject *unwinder,\n
      \   uint64_t thread_id,\n    uintptr_t last_profiled_frame,\n    PyObject *frame_info,\n
      \   uintptr_t *frame_addrs,\n    Py_ssize_t *num_addrs,\n    Py_ssize_t max_addrs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:260,1
    - Dst: frame_cache_alloc_slot
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:262,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:269,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:273,1
    - Dst: PyList_GetSlice
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:274,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:281,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:286,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:288,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frame_cache.c:289,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 8
    argNames:
    - unwinder
    - thread_id
    - frame_list
    - addrs
    - num_addrs
    - thread_state_addr
    - base_frame_addr
    - last_frame_visited
    argTypes:
    - RemoteUnwinderObject*
    - uint64_t
    - PyObject*
    - uintptr_t*
    - Py_ssize_t
    - uintptr_t
    - uintptr_t
    - uintptr_t
    assertStmts:
    - condition: (num_addrs >= 0 && num_addrs <= FRAME_CACHE_MAX_FRAMES)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/cpython/Modules/_remote_debugging/frame_cache.c
    - condition: (entry->num_addrs == num_addrs)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/cpython/Modules/_remote_debugging/frame_cache.c
    - condition: (entry->thread_id == thread_id)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Modules/_remote_debugging/frame_cache.c
    constantsTouched: []
    func_position:
      end: 292
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 292
    functionName: frame_cache_store
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frame_cache.c
    functionUses: 0
    functionsReached:
    - PyList_GetSlice
    - frame_cache_alloc_slot
    - Py_CLEAR
    - memcpy
    - PyLong_FromUnsignedLongLong
    - assert
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int frame_cache_store(\n    RemoteUnwinderObject *unwinder,\n    uint64_t
      thread_id,\n    PyObject *frame_list,\n    const uintptr_t *addrs,\n    Py_ssize_t
      num_addrs,\n    uintptr_t thread_state_addr,\n    uintptr_t base_frame_addr,\n
      \   uintptr_t last_frame_visited)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: search_windows_map_for_section
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:22,1
    - Dst: _Py_RemoteDebug_HasPermissionError
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:25,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:26,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:27,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:28,1
    - Dst: search_linux_map_for_section
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:33,1
    - Dst: _Py_RemoteDebug_HasPermissionError
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:36,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:37,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:38,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:39,1
    - Dst: search_map_for_section
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:44,1
    - Dst: _Py_RemoteDebug_HasPermissionError
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:46,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:47,1
    - Dst: search_map_for_section
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:48,1
    - Dst: _Py_RemoteDebug_HasPermissionError
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:52,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:53,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:54,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:55,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:59,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - handle
    argTypes:
    - proc_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 63
    functionName: _Py_RemoteDebug_GetAsyncioDebugAddress
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - search_windows_map_for_section
    - PyErr_SetString
    - _Py_RemoteDebug_HasPermissionError
    - _PyErr_ChainExceptions1
    - Py_UNREACHABLE
    - PyErr_Clear
    - search_map_for_section
    - PyErr_GetRaisedException
    - search_linux_map_for_section
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t _Py_RemoteDebug_GetAsyncioDebugAddress(proc_handle_t* handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_GetAsyncioDebugAddress
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:68,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:70,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:75,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:77,1
    - Dst: _PyRemoteDebug_ValidateAsyncDebugOffsets
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:80,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - unwinder
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: read_async_debug
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    - _Py_RemoteDebug_GetAsyncioDebugAddress
    - _PyRemoteDebug_ValidateAsyncDebugOffsets
    linkageType: ''
    returnType: int
    signature: int read_async_debug(RemoteUnwinderObject *unwinder)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_async_debug
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:97,1
    - Dst: _Py_RemoteDebug_HasPermissionError
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:102,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:103,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:104,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - unwinder
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 113
    functionName: ensure_async_debug_offsets
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _Py_RemoteDebug_HasPermissionError
    - PyErr_Clear
    - read_async_debug
    - set_exception_cause
    linkageType: ''
    returnType: int
    signature: int ensure_async_debug_offsets(RemoteUnwinderObject *unwinder)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:127,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:129,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:133,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:134,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:135,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:139,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:140,1
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:150,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:151,1
    - Dst: read_Py_ssize_t
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:157,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:158,1
    - Dst: processor
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:164,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - unwinder
    - set_addr
    - processor
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - set_entry_processor_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 175
    functionName: iterate_set_entries
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - read_Py_ssize_t
    - processor
    - PyErr_SetString
    - read_py_ptr
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:188,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:194,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:198,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:202,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:208,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:214,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:216,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:220,1
    - Dst: read_py_long
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:225,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:226,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:227,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:230,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:234,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:235,1
    - Dst: read_py_str
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - unwinder
    - task_address
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 244
    functionName: parse_task_name
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - read_py_str
    - read_py_long
    - GET_MEMBER_NO_TAG
    - PyErr_SetString
    - PyUnicode_FromFormat
    - PyErr_Occurred
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nparse_task_name(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t task_address\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:259,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:265,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:269,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:270,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:273,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:277,1
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:281,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:286,1
    - Dst: read_ptr
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:292,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:297,1
    - Dst: parse_coro_chain
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:312,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:314,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: 322
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 322
    functionName: handle_yield_from_frame
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - GET_MEMBER_NO_TAG
    - parse_coro_chain
    - PyErr_SetString
    - read_py_ptr
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    - read_ptr
    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/asyncio.c:330,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:334,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:340,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:344,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:349,1
    - Dst: parse_frame_object
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:357,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:358,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:367,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:371,1
    - Dst: handle_yield_from_frame
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:374,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: 329
        line_start: 329
        source_file: /src/cpython/Modules/_remote_debugging/asyncio.c
    constantsTouched: []
    func_position:
      end: 378
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 378
    functionName: parse_coro_chain
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - handle_yield_from_frame
    - parse_frame_object
    - PyList_Append
    - assert
    - Py_DECREF
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    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/asyncio.c:396,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:398,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:403,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:405,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:410,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:413,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:417,1
    - Dst: parse_coro_chain
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:420,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:421,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:425,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:426,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:432,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:433,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:435,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:440,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:441,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:446,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:447,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:448,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - unwinder
    - task_address
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 450
    functionName: create_task_result
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - GET_MEMBER_NO_TAG
    - parse_coro_chain
    - RemoteDebugging_GetStateFromObject
    - PyList_New
    - PyLong_FromUnsignedLongLong
    - PyList_Reverse
    - Py_XDECREF
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    - PyStructSequence_SetItem
    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/asyncio.c:462,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:467,1
    - Dst: create_task_result
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:472,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:474,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:479,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:480,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:482,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:485,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:487,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:492,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:493,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:496,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:497,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:499,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:504,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:508,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: 510
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 510
    functionName: parse_task
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - RemoteDebugging_GetStateFromObject
    - PyList_Append
    - PyList_New
    - read_char
    - PyLong_FromUnsignedLongLong
    - Py_DECREF
    - Py_XDECREF
    - create_task_result
    - set_exception_cause
    - PyStructSequence_SetItem
    linkageType: ''
    returnType: int
    signature: "int parse_task(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      task_address,\n    PyObject *render_to\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_task
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unwinder
    - key_addr
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 520
    functionDepth: 5
    functionLinenumber: 520
    functionLinenumberEnd: 528
    functionName: process_task_parser
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.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:
    - Dst: process_task_awaited_by
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:536,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: 537
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 537
    functionName: parse_task_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:548,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:551,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:555,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:560,1
    - Dst: iterate_set_entries
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:563,1
    - Dst: processor
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:566,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: 568
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 568
    functionName: process_task_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - processor
    - GET_MEMBER_NO_TAG
    - iterate_set_entries
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_task_name
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:583,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:585,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:589,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:591,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:596,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:598,1
    - Dst: parse_task
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:602,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:603,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:607,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:609,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:613,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:614,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:616,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:620,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:621,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:622,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:623,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:632,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:639,1
    - Dst: PyStructSequence_GetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:642,1
    - Dst: parse_task_awaited_by
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:643,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:644,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:653,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:654,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:655,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:656,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:657,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: 659
      start: 570
    functionDepth: 5
    functionLinenumber: 570
    functionLinenumberEnd: 659
    functionName: process_single_task_node
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_GetItem
    - PyStructSequence_New
    - parse_task_awaited_by
    - PyStructSequence_SetItem
    - RemoteDebugging_GetStateFromObject
    - PyList_Append
    - PyList_New
    - PyLong_FromUnsignedLongLong
    - parse_task_name
    - Py_DECREF
    - Py_XDECREF
    - set_exception_cause
    - parse_task
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: process_single_task_node
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:668,1
    - Dst: process_task_awaited_by
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - unwinder
    - task_addr
    - result
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 661
    functionDepth: 6
    functionLinenumber: 661
    functionLinenumberEnd: 674
    functionName: process_task_and_waiters
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: process_task_and_waiters
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unwinder
    - key_addr
    - context
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 677
    functionDepth: 7
    functionLinenumber: 677
    functionLinenumberEnd: 685
    functionName: process_waiter_task
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.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: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:700,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:705,1
    - Dst: read_ptr
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:714,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:719,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: 724
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 724
    functionName: find_running_task_in_thread
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    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/asyncio.c:730,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:734,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:739,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:740,1
    - Dst: read_py_ptr
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:746,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:749,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:754,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:755,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: 760
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 760
    functionName: get_task_code_object
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_running_frame
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:774,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:775,1
    - Dst: parse_frame_object
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:782,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:791,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:800,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:805,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: 813
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 813
    functionName: parse_async_frame_chain
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - parse_frame_object
    - find_running_frame
    - PyList_Append
    - Py_DECREF
    - set_exception_cause
    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/asyncio.c:827,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:829,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:836,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:838,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:839,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:843,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:845,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:847,1
    - Dst: process_single_task_node
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:854,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:855,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:860,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - unwinder
    - head_addr
    - result
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 819
    functionDepth: 6
    functionLinenumber: 819
    functionLinenumberEnd: 871
    functionName: append_awaited_by_for_thread
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - PyErr_SetString
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    - process_single_task_node
    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/asyncio.c:880,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:882,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:888,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:889,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:893,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:897,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:898,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:902,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:903,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:905,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:909,1
    - Dst: append_awaited_by_for_thread
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:911,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:913,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: 918
      start: 873
    functionDepth: 7
    functionLinenumber: 873
    functionLinenumberEnd: 918
    functionName: append_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - RemoteDebugging_GetStateFromObject
    - PyList_New
    - append_awaited_by_for_thread
    - PyList_Append
    - Py_DECREF
    - set_exception_cause
    - PyStructSequence_SetItem
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: int
    signature: "int append_awaited_by(\n    RemoteUnwinderObject *unwinder,\n    unsigned
      long tid,\n    uintptr_t head_addr,\n    PyObject *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_awaited_by
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:933,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: 934
      start: 924
    functionDepth: 8
    functionLinenumber: 924
    functionLinenumberEnd: 934
    functionName: process_thread_for_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.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: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_task_code_object
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:944,1
    - Dst: process_single_task_node
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:950,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:955,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:956,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:957,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:958,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:960,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:961,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:964,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:965,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:966,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:967,1
    - Dst: PyList_Clear
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:970,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:971,1
    - Dst: parse_async_frame_chain
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:976,1
    - Dst: process_task_awaited_by
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:981,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    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: 955
        line_start: 955
        source_file: /src/cpython/Modules/_remote_debugging/asyncio.c
    - condition: (coro_info != NULL)
      pos:
        line_end: 964
        line_start: 964
        source_file: /src/cpython/Modules/_remote_debugging/asyncio.c
    - condition: (frame_chain != NULL)
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/cpython/Modules/_remote_debugging/asyncio.c
    constantsTouched: []
    func_position:
      end: 986
      start: 936
    functionDepth: 6
    functionLinenumber: 936
    functionLinenumberEnd: 986
    functionName: process_running_task_chain
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - get_task_code_object
    - process_task_awaited_by
    - parse_async_frame_chain
    - PyList_GET_ITEM
    - PyList_Clear
    - PyStructSequence_GET_ITEM
    - PyErr_Format
    - assert
    - PyList_GET_SIZE
    - set_exception_cause
    - process_single_task_node
    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/asyncio.c:999,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1005,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1007,1
    - Dst: process_running_task_chain
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1011,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1012,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1013,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1020,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1021,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1025,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1029,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1030,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1034,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1035,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1038,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/asyncio.c:1042,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: 1046
      start: 988
    functionDepth: 7
    functionLinenumber: 988
    functionLinenumberEnd: 1046
    functionName: process_thread_for_async_stack_trace
    functionSourceFile: /src/cpython/Modules/_remote_debugging/asyncio.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - find_running_task_in_thread
    - RemoteDebugging_GetStateFromObject
    - PyLong_FromUnsignedLong
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - set_exception_cause
    - PyStructSequence_SetItem
    - process_running_task_chain
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/frames.c:18,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/frames.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chunks
    argTypes:
    - StackChunkList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: cleanup_stack_chunks
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 1
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void cleanup_stack_chunks(StackChunkList *chunks)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging/frames.c:32,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:34,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:35,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:39,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/frames.c:40,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:41,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:46,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/frames.c:51,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/frames.c:52,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:54,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/_remote_debugging/frames.c:59,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/frames.c:61,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:62,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:63,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:68,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/frames.c:69,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - unwinder
    - chunk_addr
    - chunk_info
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - StackChunkInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 80
    functionName: process_single_stack_chunk
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - PyErr_NoMemory
    - PyMem_RawRealloc
    - PyMem_RawFree
    - PyMem_RawMalloc
    - PyErr_Format
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    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/frames.c:92,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:93,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging/frames.c:97,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:99,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:100,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Modules/_remote_debugging/frames.c:109,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:111,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:112,1
    - Dst: process_single_stack_chunk
      Src: /src/cpython/Modules/_remote_debugging/frames.c:119,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:120,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:125,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/frames.c:135,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/frames.c:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - unwinder
    - tstate_addr
    - out_chunks
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - StackChunkList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 139
    functionName: copy_stack_chunks
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - process_single_stack_chunk
    - PyErr_NoMemory
    - PyMem_RawRealloc
    - PyMem_RawFree
    - PyMem_RawMalloc
    - set_exception_cause
    - read_ptr
    linkageType: ''
    returnType: int
    signature: "int copy_stack_chunks(RemoteUnwinderObject *unwinder,\n                  uintptr_t
      tstate_addr,\n                  StackChunkList *out_chunks)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - chunks
    - remote_ptr
    argTypes:
    - StackChunkList*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 160
    functionName: find_frame_in_chunks
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      find_frame_in_chunks(StackChunkList *chunks, uintptr_t remote_ptr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:178,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/frames.c:184,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - unwinder
    - frame_addr
    - code_object_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: is_frame_valid
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 0
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:201,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging/frames.c:202,1
    - Dst: is_frame_valid
      Src: /src/cpython/Modules/_remote_debugging/frames.c:203,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:208,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:214,1
    - Dst: parse_code_object
      Src: /src/cpython/Modules/_remote_debugging/frames.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - unwinder
    - result
    - frame
    - address_of_code_object
    - previous_frame
    argTypes:
    - RemoteUnwinderObject*
    - PyObject**
    - char*
    - uintptr_t*
    - uintptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 226
    functionName: parse_frame_buffer
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - GET_MEMBER_NO_TAG
    - is_frame_valid
    - parse_code_object
    linkageType: ''
    returnType: int
    signature: "int parse_frame_buffer(\n    RemoteUnwinderObject *unwinder,\n    PyObject**
      result,\n    const char *frame,\n    uintptr_t* address_of_code_object,\n    uintptr_t*
      previous_frame\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:237,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:244,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/frames.c:247,1
    - Dst: STATS_ADD
      Src: /src/cpython/Modules/_remote_debugging/frames.c:248,1
    - Dst: parse_frame_buffer
      Src: /src/cpython/Modules/_remote_debugging/frames.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    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: 251
      start: 228
    functionDepth: 5
    functionLinenumber: 228
    functionLinenumberEnd: 251
    functionName: parse_frame_object
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 2
    functionsReached:
    - parse_frame_buffer
    - STATS_ADD
    - set_exception_cause
    - STATS_INC
    - _Py_RemoteDebug_ReadRemoteMemory
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_frame_in_chunks
      Src: /src/cpython/Modules/_remote_debugging/frames.c:262,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/frames.c:264,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:265,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:270,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:271,1
    - Dst: GET_MEMBER_NO_TAG
      Src: /src/cpython/Modules/_remote_debugging/frames.c:272,1
    - Dst: is_frame_valid
      Src: /src/cpython/Modules/_remote_debugging/frames.c:273,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:278,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/frames.c:284,1
    - Dst: parse_code_object
      Src: /src/cpython/Modules/_remote_debugging/frames.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - unwinder
    - result
    - address
    - previous_frame
    - stackpointer
    - chunks
    argTypes:
    - RemoteUnwinderObject*
    - PyObject**
    - uintptr_t
    - uintptr_t*
    - uintptr_t*
    - StackChunkList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 294
    functionName: parse_frame_from_chunks
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - parse_code_object
    - GET_MEMBER_NO_TAG
    - is_frame_valid
    - PyErr_Format
    - find_frame_in_chunks
    - set_exception_cause
    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
      \   uintptr_t *stackpointer,\n    StackChunkList *chunks\n)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frames.c:310,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/frames.c:322,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:323,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frames.c:326,1
    - Dst: parse_frame_from_chunks
      Src: /src/cpython/Modules/_remote_debugging/frames.c:329,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/frames.c:332,1
    - Dst: parse_frame_buffer
      Src: /src/cpython/Modules/_remote_debugging/frames.c:338,1
    - Dst: parse_frame_object
      Src: /src/cpython/Modules/_remote_debugging/frames.c:343,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:348,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:356,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frames.c:361,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/frames.c:363,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_remote_debugging/frames.c:368,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_remote_debugging/frames.c:369,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Modules/_remote_debugging/frames.c:376,1
    - Dst: _Py_STR
      Src: /src/cpython/Modules/_remote_debugging/frames.c:377,1
    - Dst: make_frame_info
      Src: /src/cpython/Modules/_remote_debugging/frames.c:380,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Modules/_remote_debugging/frames.c:381,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:383,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/frames.c:386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:387,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:388,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:389,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frames.c:393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:396,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/frames.c:401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:402,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:403,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/frames.c:407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:408,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/frames.c:409,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/frames.c:413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:416,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/frames.c:429,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 96
    argCount: 2
    argNames:
    - unwinder
    - ctx
    argTypes:
    - RemoteUnwinderObject*
    - FrameWalkContext*
    assertStmts:
    - condition: (MAX_FRAMES > 0 && MAX_FRAMES < 10000)
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/cpython/Modules/_remote_debugging/frames.c
    - condition: (ctx->num_addrs >= 0)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/cpython/Modules/_remote_debugging/frames.c
    - condition: (ctx->num_addrs >= 0)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/cpython/Modules/_remote_debugging/frames.c
    - condition: (frame_count <= MAX_FRAMES)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/cpython/Modules/_remote_debugging/frames.c
    constantsTouched: []
    func_position:
      end: 438
      start: 300
    functionDepth: 6
    functionLinenumber: 300
    functionLinenumberEnd: 438
    functionName: process_frame_chain
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 1
    functionsReached:
    - parse_frame_object
    - _Py_STR
    - _Py_DECLARE_STR
    - PyErr_SetString
    - PyList_Append
    - parse_frame_from_chunks
    - parse_frame_buffer
    - _Py_LATIN1_CHR
    - PyErr_Clear
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyErr_Format
    - make_frame_info
    - PyList_GET_SIZE
    - set_exception_cause
    linkageType: ''
    returnType: int
    signature: "int process_frame_chain(\n    RemoteUnwinderObject *unwinder,\n    FrameWalkContext
      *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:455,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/frames.c:461,1
    - Dst: _Py_RemoteDebug_WriteRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:472,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/frames.c:475,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:479,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/frames.c:484,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/frames.c:490,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/frames.c:495,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - unwinder
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 501
    functionName: clear_last_profiled_frames
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - PyErr_Clear
    - _Py_RemoteDebug_WriteRemoteMemory
    linkageType: ''
    returnType: int
    signature: int clear_last_profiled_frames(RemoteUnwinderObject *unwinder)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: frame_cache_find
      Src: /src/cpython/Modules/_remote_debugging/frames.c:522,1
    - Dst: parse_frame_buffer
      Src: /src/cpython/Modules/_remote_debugging/frames.c:536,1
    - Dst: parse_frame_object
      Src: /src/cpython/Modules/_remote_debugging/frames.c:541,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/frames.c:549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/frames.c:553,1
    - Dst: STATS_ADD
      Src: /src/cpython/Modules/_remote_debugging/frames.c:554,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frames.c:557,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/frames.c:559,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/frames.c:560,1
    - Dst: STATS_ADD
      Src: /src/cpython/Modules/_remote_debugging/frames.c:564,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/frames.c:566,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - unwinder
    - ctx
    - thread_id
    argTypes:
    - RemoteUnwinderObject*
    - FrameWalkContext*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 509
    functionDepth: 6
    functionLinenumber: 509
    functionLinenumberEnd: 568
    functionName: try_full_cache_hit
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 0
    functionsReached:
    - frame_cache_find
    - parse_frame_object
    - STATS_ADD
    - PyList_GET_ITEM
    - parse_frame_buffer
    - PyList_Append
    - Py_DECREF
    - PyList_GET_SIZE
    - STATS_INC
    linkageType: ''
    returnType: int
    signature: "int try_full_cache_hit(\n    RemoteUnwinderObject *unwinder,\n    const
      FrameWalkContext *ctx,\n    uint64_t thread_id)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: try_full_cache_hit
      Src: /src/cpython/Modules/_remote_debugging/frames.c:578,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frames.c:583,1
    - Dst: process_frame_chain
      Src: /src/cpython/Modules/_remote_debugging/frames.c:585,1
    - Dst: STATS_ADD
      Src: /src/cpython/Modules/_remote_debugging/frames.c:589,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frames.c:589,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frames.c:592,1
    - Dst: frame_cache_lookup_and_extend
      Src: /src/cpython/Modules/_remote_debugging/frames.c:593,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/frames.c:600,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frames.c:603,1
    - Dst: process_frame_chain
      Src: /src/cpython/Modules/_remote_debugging/frames.c:615,1
    - Dst: STATS_ADD
      Src: /src/cpython/Modules/_remote_debugging/frames.c:620,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frames.c:620,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/frames.c:625,1
    - Dst: STATS_ADD
      Src: /src/cpython/Modules/_remote_debugging/frames.c:626,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/frames.c:626,1
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/frames.c:630,1
    - Dst: frame_cache_store
      Src: /src/cpython/Modules/_remote_debugging/frames.c:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - unwinder
    - ctx
    - thread_id
    argTypes:
    - RemoteUnwinderObject*
    - FrameWalkContext*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 572
    functionDepth: 7
    functionLinenumber: 572
    functionLinenumberEnd: 641
    functionName: collect_frames_with_cache
    functionSourceFile: /src/cpython/Modules/_remote_debugging/frames.c
    functionUses: 1
    functionsReached:
    - try_full_cache_hit
    - frame_cache_lookup_and_extend
    - STATS_ADD
    - process_frame_chain
    - PyList_GET_SIZE
    - frame_cache_store
    - STATS_INC
    linkageType: ''
    returnType: int
    signature: "int collect_frames_with_cache(\n    RemoteUnwinderObject *unwinder,\n
      \   FrameWalkContext *ctx,\n    uint64_t thread_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:168,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:169,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/module.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: cached_code_metadata_destroy
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyMem_RawFree
    - Py_XDECREF
    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:176,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/module.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Modules/_remote_debugging/module.c
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 179
    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:184,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/module.c:185,1
    - Dst: RemoteDebugging_GetState
      Src: /src/cpython/Modules/_remote_debugging/module.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/cpython/Modules/_remote_debugging/module.c
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: RemoteDebugging_GetStateFromType
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - RemoteDebugging_GetState
    - PyType_GetModule
    - assert
    linkageType: ''
    returnType: RemoteDebuggingState
    signature: 'RemoteDebuggingState *

      RemoteDebugging_GetStateFromType(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetStateFromType
      Src: /src/cpython/Modules/_remote_debugging/module.c:194,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: RemoteDebugging_GetStateFromObject
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 8
    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: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    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: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    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:214,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:216,1
    - Dst: is_prerelease_version
      Src: /src/cpython/Modules/_remote_debugging/module.c:224,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:225,1
    - Dst: is_prerelease_version
      Src: /src/cpython/Modules/_remote_debugging/module.c:232,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:233,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/module.c:244,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:253,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:261,1
    - Dst: _PyRemoteDebug_ValidateDebugOffsetsLayout
      Src: /src/cpython/Modules/_remote_debugging/module.c:268,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - debug_offsets
    argTypes:
    - struct _Py_DebugOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 269
    functionName: validate_debug_offsets
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - memcmp
    - is_prerelease_version
    - PyErr_SetString
    - _PyRemoteDebug_ValidateDebugOffsetsLayout
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_debug_offsets(struct _Py_DebugOffsets *debug_offsets)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:355,1
    - Dst: memset
      Src: /src/cpython/Modules/_remote_debugging/module.c:369,1
    - Dst: memset
      Src: /src/cpython/Modules/_remote_debugging/module.c:370,1
    - Dst: memset
      Src: /src/cpython/Modules/_remote_debugging/module.c:381,1
    - Dst: _Py_RemoteDebug_InitProcHandle
      Src: /src/cpython/Modules/_remote_debugging/module.c:382,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:383,1
    - Dst: _Py_RemoteDebug_GetPyRuntimeAddress
      Src: /src/cpython/Modules/_remote_debugging/module.c:387,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:389,1
    - Dst: _Py_RemoteDebug_ReadDebugOffsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:393,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:397,1
    - Dst: validate_debug_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:402,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:403,1
    - Dst: read_async_debug
      Src: /src/cpython/Modules/_remote_debugging/module.c:409,1
    - Dst: _Py_RemoteDebug_HasPermissionError
      Src: /src/cpython/Modules/_remote_debugging/module.c:414,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/module.c:417,1
    - Dst: memset
      Src: /src/cpython/Modules/_remote_debugging/module.c:418,1
    - Dst: populate_initial_state_data
      Src: /src/cpython/Modules/_remote_debugging/module.c:422,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:425,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/_remote_debugging/module.c:429,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/module.c:437,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:438,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/_remote_debugging/module.c:445,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:453,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/module.c:454,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:455,1
    - Dst: frame_cache_init
      Src: /src/cpython/Modules/_remote_debugging/module.c:474,1
    - Dst: clear_last_profiled_frames
      Src: /src/cpython/Modules/_remote_debugging/module.c:481,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 87
    argCount: 12
    argNames:
    - self
    - pid
    - all_threads
    - only_active_thread
    - mode
    - debug
    - skip_non_matching_threads
    - native
    - gc
    - opcodes
    - cache_frames
    - stats
    argTypes:
    - RemoteUnwinderObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 485
    functionName: _remote_debugging_RemoteUnwinder___init___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 1
    functionsReached:
    - _Py_RemoteDebug_ReadDebugOffsets
    - populate_initial_state_data
    - PyErr_NoMemory
    - PyErr_SetString
    - validate_debug_offsets
    - _Py_RemoteDebug_HasPermissionError
    - PyErr_Clear
    - memset
    - frame_cache_init
    - _Py_RemoteDebug_GetPyRuntimeAddress
    - read_async_debug
    - clear_last_profiled_frames
    - _Py_RemoteDebug_InitProcHandle
    - _Py_hashtable_new_full
    - set_exception_cause
    - _Py_hashtable_destroy
    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
      mode, int debug,\n                                               int skip_non_matching_threads,\n
      \                                              int native, int gc,\n                                               int
      opcodes, int cache_frames,\n                                               int
      stats)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashPointerRaw
      Src: /src/cpython/Modules/_remote_debugging/module.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interpreter_addr
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: interpreter_thread_cache_index
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - _Py_HashPointerRaw
    linkageType: ''
    returnType: size_t
    signature: size_t interpreter_thread_cache_index(uintptr_t interpreter_addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: interpreter_thread_cache_index
      Src: /src/cpython/Modules/_remote_debugging/module.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - interpreter_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 518
    functionName: get_cached_tstate_for_interpreter
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - interpreter_thread_cache_index
    linkageType: ''
    returnType: uintptr_t
    signature: "uintptr_t get_cached_tstate_for_interpreter(\n    RemoteUnwinderObject
      *self,\n    uintptr_t interpreter_addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interpreter_thread_cache_index
      Src: /src/cpython/Modules/_remote_debugging/module.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - interpreter_addr
    - thread_state_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 537
    functionName: set_cached_tstate_for_interpreter
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - interpreter_thread_cache_index
    linkageType: ''
    returnType: void
    signature: "void set_cached_tstate_for_interpreter(\n    RemoteUnwinderObject
      *self,\n    uintptr_t interpreter_addr,\n    uintptr_t thread_state_addr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:545,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Modules/_remote_debugging/module.c:551,1
    - Dst: interpreter_thread_cache_index
      Src: /src/cpython/Modules/_remote_debugging/module.c:556,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Modules/_remote_debugging/module.c:566,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:573,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Modules/_remote_debugging/module.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - interpreter_addr
    - interp_state_buffer
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 580
    functionName: refresh_generation_caches_from_interp_state
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - GET_MEMBER
    - _Py_hashtable_clear
    - interpreter_thread_cache_index
    linkageType: ''
    returnType: void
    signature: "void refresh_generation_caches_from_interp_state(\n    RemoteUnwinderObject
      *self,\n    uintptr_t interpreter_addr,\n    const char *interp_state_buffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/module.c:588,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:593,1
    - Dst: refresh_generation_caches_from_interp_state
      Src: /src/cpython/Modules/_remote_debugging/module.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - interpreter_addr
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 599
    functionName: refresh_generation_caches_for_interpreter
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - refresh_generation_caches_from_interp_state
    - set_exception_cause
    - _Py_RemoteDebug_ReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int refresh_generation_caches_for_interpreter(\n    RemoteUnwinderObject
      *self,\n    uintptr_t interpreter_addr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_BatchedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/module.c:620,1
    - Dst: STATS_BATCHED_READ
      Src: /src/cpython/Modules/_remote_debugging/module.c:635,1
    - Dst: _Py_RemoteDebug_ReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/module.c:646,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - unwinder
    - interpreter_addr
    - interp_state_buffer
    - tstate_buffer
    - frame_buffer
    - prefetch
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - char*
    - char*
    - char*
    - RemoteReadPrefetch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 651
    functionName: read_interp_state_and_maybe_thread_frame
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_BatchedReadRemoteMemory
    - STATS_BATCHED_READ
    - _Py_RemoteDebug_ReadRemoteMemory
    linkageType: ''
    returnType: int
    signature: "int read_interp_state_and_maybe_thread_frame(\n    RemoteUnwinderObject
      *unwinder,\n    uintptr_t interpreter_addr,\n    char *interp_state_buffer,\n
      \   char *tstate_buffer,\n    char *frame_buffer,\n    RemoteReadPrefetch *prefetch)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: STATS_INC
      Src: /src/cpython/Modules/_remote_debugging/module.c:710,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/module.c:712,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:714,1
    - Dst: get_cached_tstate_for_interpreter
      Src: /src/cpython/Modules/_remote_debugging/module.c:727,1
    - Dst: frame_cache_find_by_tstate
      Src: /src/cpython/Modules/_remote_debugging/module.c:731,1
    - Dst: read_interp_state_and_maybe_thread_frame
      Src: /src/cpython/Modules/_remote_debugging/module.c:737,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:744,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:745,1
    - Dst: refresh_generation_caches_from_interp_state
      Src: /src/cpython/Modules/_remote_debugging/module.c:748,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:752,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:757,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/module.c:761,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:763,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:764,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:770,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:782,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:789,1
    - Dst: set_cached_tstate_for_interpreter
      Src: /src/cpython/Modules/_remote_debugging/module.c:796,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:800,1
    - Dst: unwind_stack_for_thread
      Src: /src/cpython/Modules/_remote_debugging/module.c:805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/module.c:813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:816,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/module.c:817,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:820,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:829,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:830,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:831,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/module.c:835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:837,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:838,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:842,1
    - Dst: RemoteDebugging_GetStateFromObject
      Src: /src/cpython/Modules/_remote_debugging/module.c:851,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/module.c:852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:854,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:855,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:856,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Modules/_remote_debugging/module.c:860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:863,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:864,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:865,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/module.c:869,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/module.c:870,1
    - Dst: PyList_Append
      Src: /src/cpython/Modules/_remote_debugging/module.c:873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:874,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:875,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:879,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/module.c:884,1
    - Dst: frame_cache_invalidate_stale
      Src: /src/cpython/Modules/_remote_debugging/module.c:899,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/module.c:902,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 124
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 904
    functionName: _remote_debugging_RemoteUnwinder_get_stack_trace_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - _Py_RemoteDebug_ClearCache
    - get_cached_tstate_for_interpreter
    - PyErr_Occurred
    - set_cached_tstate_for_interpreter
    - PyLong_FromLongLong
    - PyList_New
    - PyList_Append
    - frame_cache_find_by_tstate
    - set_exception_cause
    - refresh_generation_caches_from_interp_state
    - RemoteDebugging_GetStateFromObject
    - unwind_stack_for_thread
    - Py_DECREF
    - PyStructSequence_SetItem
    - PyStructSequence_New
    - frame_cache_invalidate_stale
    - Py_CLEAR
    - PyErr_Format
    - read_interp_state_and_maybe_thread_frame
    - STATS_INC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_stack_trace_impl(RemoteUnwinderObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ensure_async_debug_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:960,1
    - Dst: refresh_generation_caches_for_interpreter
      Src: /src/cpython/Modules/_remote_debugging/module.c:963,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/module.c:967,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:969,1
    - Dst: iterate_threads
      Src: /src/cpython/Modules/_remote_debugging/module.c:974,1
    - Dst: append_awaited_by
      Src: /src/cpython/Modules/_remote_debugging/module.c:986,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:988,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/module.c:992,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/module.c:996,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:997,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 956
    functionDepth: 8
    functionLinenumber: 956
    functionLinenumberEnd: 999
    functionName: _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 1
    functionsReached:
    - _Py_RemoteDebug_ClearCache
    - refresh_generation_caches_for_interpreter
    - ensure_async_debug_offsets
    - append_awaited_by
    - PyList_New
    - Py_XDECREF
    - set_exception_cause
    - iterate_threads
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject
      *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ensure_async_debug_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:1055,1
    - Dst: refresh_generation_caches_for_interpreter
      Src: /src/cpython/Modules/_remote_debugging/module.c:1058,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/module.c:1062,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:1064,1
    - Dst: iterate_threads
      Src: /src/cpython/Modules/_remote_debugging/module.c:1069,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/module.c:1073,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/module.c:1076,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:1077,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1051
    functionDepth: 4
    functionLinenumber: 1051
    functionLinenumberEnd: 1079
    functionName: _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 1
    functionsReached:
    - _Py_RemoteDebug_ClearCache
    - refresh_generation_caches_for_interpreter
    - ensure_async_debug_offsets
    - PyList_New
    - Py_XDECREF
    - set_exception_cause
    - iterate_threads
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl(RemoteUnwinderObject
      *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:1134,1
    - Dst: PyDict_New
      Src: /src/cpython/Modules/_remote_debugging/module.c:1140,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1155,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1156,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1157,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1158,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1159,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1160,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1161,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1162,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1163,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1164,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1165,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1166,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1167,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1168,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1169,1
    - Dst: ADD_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1170,1
    - Dst: ADD_DERIVED_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1192,1
    - Dst: ADD_DERIVED_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1199,1
    - Dst: ADD_DERIVED_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1207,1
    - Dst: ADD_DERIVED_STAT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1221
    functionName: _remote_debugging_RemoteUnwinder_get_stats_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - ADD_STAT
    - ADD_DERIVED_STAT
    - PyErr_SetString
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_stats_impl(RemoteUnwinderObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1154
    functionName: ADD_STAT
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_STAT(name)
  - 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: 1183
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1183
    functionName: ADD_DERIVED_STAT
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_DERIVED_STAT(name, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_InitThreadsState
      Src: /src/cpython/Modules/_remote_debugging/module.c:1249,1
    - Dst: _Py_RemoteDebug_StopAllThreads
      Src: /src/cpython/Modules/_remote_debugging/module.c:1250,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:1257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1240
    functionDepth: 2
    functionLinenumber: 1240
    functionLinenumberEnd: 1261
    functionName: _remote_debugging_RemoteUnwinder_pause_threads_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_StopAllThreads
    - PyErr_SetString
    - _Py_RemoteDebug_InitThreadsState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_pause_threads_impl(RemoteUnwinderObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ResumeAllThreads
      Src: /src/cpython/Modules/_remote_debugging/module.c:1285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - RemoteUnwinderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1293
    functionName: _remote_debugging_RemoteUnwinder_resume_threads_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_ResumeAllThreads
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_resume_threads_impl(RemoteUnwinderObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RemoteUnwinder_CAST
      Src: /src/cpython/Modules/_remote_debugging/module.c:1308,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:1309,1
    - Dst: _Py_RemoteDebug_ResumeAllThreads
      Src: /src/cpython/Modules/_remote_debugging/module.c:1313,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/module.c:1319,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:1325,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/module.c:1329,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:1335,1
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/module.c:1339,1
    - Dst: _Py_RemoteDebug_CleanupProcHandle
      Src: /src/cpython/Modules/_remote_debugging/module.c:1340,1
    - Dst: frame_cache_cleanup
      Src: /src/cpython/Modules/_remote_debugging/module.c:1342,1
    - Dst: PyObject_Del
      Src: /src/cpython/Modules/_remote_debugging/module.c:1343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:1344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1305
    functionDepth: 2
    functionLinenumber: 1305
    functionLinenumberEnd: 1345
    functionName: RemoteUnwinder_dealloc
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_ClearCache
    - _Py_RemoteDebug_ResumeAllThreads
    - RemoteUnwinder_CAST
    - _Py_RemoteDebug_CleanupProcHandle
    - PyObject_Del
    - PyMem_RawFree
    - PyMem_Free
    - Py_DECREF
    - frame_cache_cleanup
    - _Py_hashtable_destroy
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void RemoteUnwinder_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_ClearCache
      Src: /src/cpython/Modules/_remote_debugging/module.c:1373,1
    - Dst: _Py_RemoteDebug_CleanupProcHandle
      Src: /src/cpython/Modules/_remote_debugging/module.c:1374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - offsets
    argTypes:
    - RuntimeOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1376
    functionName: cleanup_runtime_offsets
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_ClearCache
    - _Py_RemoteDebug_CleanupProcHandle
    linkageType: ''
    returnType: void
    signature: void cleanup_runtime_offsets(RuntimeOffsets *offsets)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_InitProcHandle
      Src: /src/cpython/Modules/_remote_debugging/module.c:1382,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:1383,1
    - Dst: _Py_RemoteDebug_GetPyRuntimeAddress
      Src: /src/cpython/Modules/_remote_debugging/module.c:1386,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:1388,1
    - Dst: _Py_RemoteDebug_ReadDebugOffsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:1391,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:1395,1
    - Dst: validate_debug_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:1398,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/module.c:1399,1
    - Dst: cleanup_runtime_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:1405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - offsets
    - pid
    - debug
    argTypes:
    - RuntimeOffsets*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1407
    functionName: init_runtime_offsets
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_ReadDebugOffsets
    - set_exception_cause
    - _Py_RemoteDebug_GetPyRuntimeAddress
    - cleanup_runtime_offsets
    - _Py_RemoteDebug_InitProcHandle
    - validate_debug_offsets
    linkageType: ''
    returnType: int
    signature: int init_runtime_offsets(RuntimeOffsets *offsets, int pid, int debug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_runtime_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - pid
    - debug
    argTypes:
    - GCMonitorObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1439
    functionDepth: 3
    functionLinenumber: 1439
    functionLinenumberEnd: 1445
    functionName: _remote_debugging_GCMonitor___init___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - init_runtime_offsets
    linkageType: ''
    returnType: int
    signature: "int _remote_debugging_GCMonitor___init___impl(GCMonitorObject *self,
      int pid,\n                                          int debug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetStateFromType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1482,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:1482,1
    - Dst: get_gc_stats
      Src: /src/cpython/Modules/_remote_debugging/module.c:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - all_interpreters
    argTypes:
    - GCMonitorObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1477
    functionDepth: 3
    functionLinenumber: 1477
    functionLinenumberEnd: 1484
    functionName: _remote_debugging_GCMonitor_get_gc_stats_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - get_gc_stats
    - RemoteDebugging_GetStateFromType
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_remote_debugging_GCMonitor_get_gc_stats_impl(GCMonitorObject
      *self,\n                                              int all_interpreters)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCMonitor_CAST
      Src: /src/cpython/Modules/_remote_debugging/module.c:1494,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:1495,1
    - Dst: cleanup_runtime_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:1497,1
    - Dst: PyObject_Del
      Src: /src/cpython/Modules/_remote_debugging/module.c:1498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1491
    functionDepth: 2
    functionLinenumber: 1491
    functionLinenumberEnd: 1500
    functionName: GCMonitor_dealloc
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - GCMonitor_CAST
    - Py_DECREF
    - cleanup_runtime_offsets
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void GCMonitor_dealloc(PyObject *op)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: RemoteDebugging_GetState
      Src: /src/cpython/Modules/_remote_debugging/module.c:1531,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:1540,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1542,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:1546,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1547,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1552,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1556,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1560,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1564,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1568,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1572,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1576,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1580,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1584,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1588,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1592,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1596,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1600,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1604,1
    - Dst: PyStructSequence_NewType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1608,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1612,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:1617,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1618,1
    - Dst: CREATE_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:1622,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_remote_debugging/module.c:1623,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Modules/_remote_debugging/module.c:1628,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_remote_debugging/module.c:1630,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_remote_debugging/module.c:1636,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_remote_debugging/module.c:1639,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_remote_debugging/module.c:1642,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_remote_debugging/module.c:1645,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_remote_debugging/module.c:1648,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Modules/_remote_debugging/module.c:1651,1
    - Dst: RemoteDebugging_InitState
      Src: /src/cpython/Modules/_remote_debugging/module.c:1655,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 99
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1528
    functionDepth: 2
    functionLinenumber: 1528
    functionLinenumberEnd: 1659
    functionName: _remote_debugging_exec
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - CREATE_TYPE
    - PyUnstable_Module_SetGIL
    - RemoteDebugging_GetState
    - PyStructSequence_NewType
    - RemoteDebugging_InitState
    - PyModule_AddType
    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: 1539
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1539
    functionName: CREATE_TYPE
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 9
    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:1664,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1665,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1666,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1667,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1668,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1669,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1670,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1671,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1672,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1673,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1674,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1675,1
    - Dst: Py_VISIT
      Src: /src/cpython/Modules/_remote_debugging/module.c:1676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1678
    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:1683,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1684,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1685,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1686,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1687,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1688,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1689,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1690,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1691,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1692,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1693,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1694,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Modules/_remote_debugging/module.c:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1680
    functionDepth: 2
    functionLinenumber: 1680
    functionLinenumberEnd: 1697
    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:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1699
    functionDepth: 3
    functionLinenumber: 1699
    functionLinenumberEnd: 1703
    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: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1709
    functionDepth: 0
    functionLinenumber: 1709
    functionLinenumberEnd: 1710
    functionName: BinaryWriter_CAST
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BinaryWriter_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:1745,1
    - Dst: binary_writer_create
      Src: /src/cpython/Modules/_remote_debugging/module.c:1748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - self
    - filename
    - sample_interval_us
    - start_time_us
    - compression
    argTypes:
    - BinaryWriterObject*
    - PyObject*
    - unsigned long long
    - unsigned long long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1736
    functionDepth: 1
    functionLinenumber: 1736
    functionLinenumberEnd: 1754
    functionName: _remote_debugging_BinaryWriter___init___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_writer_create
    - binary_writer_destroy
    linkageType: ''
    returnType: int
    signature: "int _remote_debugging_BinaryWriter___init___impl(BinaryWriterObject
      *self,\n                                             PyObject *filename,\n                                             unsigned
      long long sample_interval_us,\n                                             unsigned
      long long start_time_us,\n                                             int compression)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:1776,1
    - Dst: binary_writer_write_sample
      Src: /src/cpython/Modules/_remote_debugging/module.c:1780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - stack_frames
    - timestamp_us
    argTypes:
    - BinaryWriterObject*
    - PyObject*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1785
    functionName: _remote_debugging_BinaryWriter_write_sample_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_writer_write_sample
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_remote_debugging_BinaryWriter_write_sample_impl(BinaryWriterObject
      *self,\n                                                 PyObject *stack_frames,\n
      \                                                unsigned long long timestamp_us)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer_finalize
      Src: /src/cpython/Modules/_remote_debugging/module.c:1796,1
    - Dst: binary_writer_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:1800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryWriterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1793
    functionDepth: 1
    functionLinenumber: 1793
    functionLinenumberEnd: 1803
    functionName: binary_writer_finalize_and_cache
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_writer_finalize
    - binary_writer_destroy
    linkageType: ''
    returnType: int
    signature: int binary_writer_finalize_and_cache(BinaryWriterObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:1818,1
    - Dst: binary_writer_finalize_and_cache
      Src: /src/cpython/Modules/_remote_debugging/module.c:1822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryWriterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1813
    functionDepth: 2
    functionLinenumber: 1813
    functionLinenumberEnd: 1827
    functionName: _remote_debugging_BinaryWriter_finalize_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_writer_finalize_and_cache
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter_finalize_impl(BinaryWriterObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:1840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryWriterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 1844
    functionName: _remote_debugging_BinaryWriter_close_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_writer_destroy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter_close_impl(BinaryWriterObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:1856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryWriterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1852
    functionDepth: 1
    functionLinenumber: 1852
    functionLinenumberEnd: 1858
    functionName: _remote_debugging_BinaryWriter___enter___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter___enter___impl(BinaryWriterObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer_finalize_and_cache
      Src: /src/cpython/Modules/_remote_debugging/module.c:1879,1
    - Dst: binary_writer_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:1881,1
    - Dst: binary_writer_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:1888,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - BinaryWriterObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1869
    functionDepth: 2
    functionLinenumber: 1869
    functionLinenumberEnd: 1893
    functionName: _remote_debugging_BinaryWriter___exit___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_writer_finalize_and_cache
    - binary_writer_destroy
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_remote_debugging_BinaryWriter___exit___impl(BinaryWriterObject
      *self,\n                                             PyObject *exc_type,\n                                             PyObject
      *exc_val,\n                                             PyObject *exc_tb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:1910,1
    - Dst: binary_writer_get_stats
      Src: /src/cpython/Modules/_remote_debugging/module.c:1913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryWriterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1905
    functionDepth: 1
    functionLinenumber: 1905
    functionLinenumberEnd: 1914
    functionName: _remote_debugging_BinaryWriter_get_stats_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - binary_writer_get_stats
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter_get_stats_impl(BinaryWriterObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BinaryWriter_CAST
      Src: /src/cpython/Modules/_remote_debugging/module.c:1919,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_remote_debugging/module.c:1922,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_remote_debugging/module.c:1924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1916
    functionDepth: 1
    functionLinenumber: 1916
    functionLinenumberEnd: 1925
    functionName: BinaryWriter_get_total_samples
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - BinaryWriter_CAST
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BinaryWriter_get_total_samples(PyObject *op, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BinaryWriter_CAST
      Src: /src/cpython/Modules/_remote_debugging/module.c:1945,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:1946,1
    - Dst: binary_writer_destroy
      Src: /src/cpython/Modules/_remote_debugging/module.c:1948,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_remote_debugging/module.c:1950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:1951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1942
    functionDepth: 1
    functionLinenumber: 1942
    functionLinenumberEnd: 1952
    functionName: BinaryWriter_dealloc
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_writer_destroy
    - PyTypeObject*::tp_free
    - BinaryWriter_CAST
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void BinaryWriter_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: 1977
      start: 1976
    functionDepth: 0
    functionLinenumber: 1976
    functionLinenumberEnd: 1977
    functionName: BinaryReader_CAST
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BinaryReader_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader_close
      Src: /src/cpython/Modules/_remote_debugging/module.c:2001,1
    - Dst: binary_reader_open
      Src: /src/cpython/Modules/_remote_debugging/module.c:2004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - filename
    argTypes:
    - BinaryReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2010
    functionName: _remote_debugging_BinaryReader___init___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_reader_open
    - binary_reader_close
    linkageType: ''
    returnType: int
    signature: "int _remote_debugging_BinaryReader___init___impl(BinaryReaderObject
      *self,\n                                             PyObject *filename)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:2034,1
    - Dst: binary_reader_replay
      Src: /src/cpython/Modules/_remote_debugging/module.c:2038,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_remote_debugging/module.c:2043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - collector
    - progress_callback
    argTypes:
    - BinaryReaderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2044
    functionName: _remote_debugging_BinaryReader_replay_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_FromSsize_t
    - binary_reader_replay
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_remote_debugging_BinaryReader_replay_impl(BinaryReaderObject
      *self,\n                                           PyObject *collector,\n                                           PyObject
      *progress_callback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:2060,1
    - Dst: binary_reader_get_info
      Src: /src/cpython/Modules/_remote_debugging/module.c:2064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryReaderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2065
    functionName: _remote_debugging_BinaryReader_get_info_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_reader_get_info
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader_get_info_impl(BinaryReaderObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/module.c:2081,1
    - Dst: binary_reader_get_stats
      Src: /src/cpython/Modules/_remote_debugging/module.c:2084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryReaderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2076
    functionDepth: 1
    functionLinenumber: 2076
    functionLinenumberEnd: 2085
    functionName: _remote_debugging_BinaryReader_get_stats_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - binary_reader_get_stats
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader_get_stats_impl(BinaryReaderObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader_close
      Src: /src/cpython/Modules/_remote_debugging/module.c:2098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryReaderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2093
    functionDepth: 1
    functionLinenumber: 2093
    functionLinenumberEnd: 2102
    functionName: _remote_debugging_BinaryReader_close_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_reader_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader_close_impl(BinaryReaderObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:2114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - BinaryReaderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2116
    functionName: _remote_debugging_BinaryReader___enter___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader___enter___impl(BinaryReaderObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader_close
      Src: /src/cpython/Modules/_remote_debugging/module.c:2135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - BinaryReaderObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2127
    functionDepth: 1
    functionLinenumber: 2127
    functionLinenumberEnd: 2139
    functionName: _remote_debugging_BinaryReader___exit___impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - binary_reader_close
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_remote_debugging_BinaryReader___exit___impl(BinaryReaderObject
      *self,\n                                             PyObject *exc_type,\n                                             PyObject
      *exc_val,\n                                             PyObject *exc_tb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/module.c:2145,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_remote_debugging/module.c:2147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - BinaryReaderObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2141
    functionDepth: 0
    functionLinenumber: 2141
    functionLinenumberEnd: 2148
    functionName: BinaryReader_get_sample_count
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BinaryReader_get_sample_count(BinaryReaderObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/module.c:2154,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/module.c:2156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - BinaryReaderObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2150
    functionDepth: 1
    functionLinenumber: 2150
    functionLinenumberEnd: 2157
    functionName: BinaryReader_get_sample_interval_us
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BinaryReader_get_sample_interval_us(BinaryReaderObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BinaryReader_CAST
      Src: /src/cpython/Modules/_remote_debugging/module.c:2178,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_remote_debugging/module.c:2179,1
    - Dst: binary_reader_close
      Src: /src/cpython/Modules/_remote_debugging/module.c:2181,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Modules/_remote_debugging/module.c:2183,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/module.c:2184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2175
    functionDepth: 1
    functionLinenumber: 2175
    functionLinenumberEnd: 2185
    functionName: BinaryReader_dealloc
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - BinaryReader_CAST
    - PyTypeObject*::tp_free
    - binary_reader_close
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void BinaryReader_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Modules/_remote_debugging/module.c:2222,1
    - Dst: binary_io_zstd_available
      Src: /src/cpython/Modules/_remote_debugging/module.c:2222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2218
    functionDepth: 1
    functionLinenumber: 2218
    functionLinenumberEnd: 2223
    functionName: _remote_debugging_zstd_available_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - binary_io_zstd_available
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_zstd_available_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enumerate_child_pids
      Src: /src/cpython/Modules/_remote_debugging/module.c:2258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - pid
    - recursive
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2253
    functionDepth: 1
    functionLinenumber: 2253
    functionLinenumberEnd: 2259
    functionName: _remote_debugging_get_child_pids_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - enumerate_child_pids
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_remote_debugging_get_child_pids_impl(PyObject *module,
      int pid,\n                                      int recursive)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_InitProcHandle
      Src: /src/cpython/Modules/_remote_debugging/module.c:2275,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/module.c:2276,1
    - Dst: _Py_RemoteDebug_GetPyRuntimeAddress
      Src: /src/cpython/Modules/_remote_debugging/module.c:2280,1
    - Dst: _Py_RemoteDebug_CleanupProcHandle
      Src: /src/cpython/Modules/_remote_debugging/module.c:2281,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/module.c:2284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2269
    functionDepth: 1
    functionLinenumber: 2269
    functionLinenumberEnd: 2289
    functionName: _remote_debugging_is_python_process_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_InitProcHandle
    - PyErr_Clear
    - _Py_RemoteDebug_GetPyRuntimeAddress
    - _Py_RemoteDebug_CleanupProcHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_is_python_process_impl(PyObject *module, int pid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_runtime_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:2325,1
    - Dst: RemoteDebugging_GetState
      Src: /src/cpython/Modules/_remote_debugging/module.c:2329,1
    - Dst: get_gc_stats
      Src: /src/cpython/Modules/_remote_debugging/module.c:2330,1
    - Dst: cleanup_runtime_offsets
      Src: /src/cpython/Modules/_remote_debugging/module.c:2333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - all_interpreters
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2319
    functionDepth: 3
    functionLinenumber: 2319
    functionLinenumberEnd: 2335
    functionName: _remote_debugging_get_gc_stats_impl
    functionSourceFile: /src/cpython/Modules/_remote_debugging/module.c
    functionUses: 0
    functionsReached:
    - cleanup_runtime_offsets
    - get_gc_stats
    - RemoteDebugging_GetState
    - init_runtime_offsets
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_remote_debugging_get_gc_stats_impl(PyObject *module,
      int pid,\n                                    int all_interpreters)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Modules/_remote_debugging/module.c:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2364
    functionDepth: 1
    functionLinenumber: 2364
    functionLinenumberEnd: 2368
    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: 7
    argNames:
    - (
    - obj
    - ','
    - var
    - ','
    - default_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: PYLONG_TO_INT32_OR_DEFAULT
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYLONG_TO_INT32_OR_DEFAULT(obj, var, default_val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:56,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:62,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:73,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:75,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:79,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:82,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:83,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:88,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:89,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:91,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - array1
    - array2
    - capacity
    - elem_size1
    - elem_size2
    argTypes:
    - void**
    - void**
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 98
    functionName: grow_parallel_arrays
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: "int grow_parallel_arrays(void **array1, void **array2, size_t *capacity,\n
      \                    size_t elem_size1, size_t elem_size2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:108,1
    - Dst: ferror
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:112,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:114,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - size
    - fp
    argTypes:
    - void*
    - size_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 123
    functionName: fwrite_checked_allow_threads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetFromErrno
    - fwrite
    - ferror
    linkageType: ''
    returnType: int
    signature: int fwrite_checked_allow_threads(const void *data, size_t size, FILE
      *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:133,1
    - Dst: writer_write_bytes
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - value
    argTypes:
    - BinaryWriter*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: writer_write_varint_u32
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - encode_varint_u32
    - writer_write_bytes
    linkageType: ''
    returnType: int
    signature: int writer_write_varint_u32(BinaryWriter *writer, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_varint_u64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:142,1
    - Dst: writer_write_bytes
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - value
    argTypes:
    - BinaryWriter*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: writer_write_varint_u64
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - writer_write_bytes
    - encode_varint_u64
    linkageType: ''
    returnType: int
    signature: int writer_write_varint_u64(BinaryWriter *writer, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: binary_io_zstd_available
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int binary_io_zstd_available(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: binary_io_get_best_compression
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int binary_io_get_best_compression(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createCCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:179,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:181,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:186,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:188,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:189,1
    - Dst: ZSTD_getErrorName
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:190,1
    - Dst: ZSTD_freeCCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:191,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:197,1
    - Dst: ZSTD_freeCCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:199,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:201,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - writer
    argTypes:
    - BinaryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 212
    functionName: writer_init_zstd
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - ZSTD_createCCtx
    - PyErr_NoMemory
    - PyErr_SetString
    - ZSTD_CCtx_setParameter
    - ZSTD_freeCCtx
    - PyErr_Format
    - PyMem_Malloc
    - ZSTD_isError
    linkageType: ''
    returnType: int
    signature: int writer_init_zstd(BinaryWriter *writer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressStream2
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:232,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:236,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:237,1
    - Dst: ZSTD_getErrorName
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:238,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:243,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - writer
    argTypes:
    - BinaryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 258
    functionName: writer_flush_buffer
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - ZSTD_compressStream2
    - fwrite_checked_allow_threads
    - PyErr_Format
    - ZSTD_isError
    linkageType: ''
    returnType: int
    signature: int writer_flush_buffer(BinaryWriter *writer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:270,1
    - Dst: writer_flush_buffer
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - writer
    - data
    - size
    argTypes:
    - BinaryWriter*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 284
    functionName: writer_write_bytes
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 2
    functionsReached:
    - writer_flush_buffer
    - memcpy
    linkageType: ''
    returnType: int
    signature: int writer_write_bytes(BinaryWriter *writer, const void *data, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:295,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: string_hash_func
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - PyErr_Clear
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t string_hash_func(const void *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:311,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: string_compare_func
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int string_compare_func(const void *key1, const void *key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: string_key_destroy
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void string_key_destroy(void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 346
    functionName: frame_key_hash_func
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t frame_key_hash_func(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: frame_key_compare_func
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int frame_key_compare_func(const void *key1, const void *key2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: frame_key_destroy
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void frame_key_destroy(void *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:371,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:378,1
    - Dst: grow_parallel_arrays
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:383,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:392,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:397,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:403,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:405,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:408,1
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:413,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:415,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:416,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:417,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - writer
    - string
    - index
    argTypes:
    - BinaryWriter*
    - PyObject*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 426
    functionName: writer_intern_string
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_NoMemory
    - _Py_hashtable_set
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - _Py_hashtable_get
    - memcpy
    - PyErr_Format
    - PyMem_Malloc
    - Py_DECREF
    - grow_parallel_arrays
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int writer_intern_string(BinaryWriter *writer, PyObject *string, uint32_t
      *index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:438,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:445,1
    - Dst: GROW_ARRAY
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:449,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:454,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:456,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:464,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:465,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:466,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - writer
    - entry
    - index
    argTypes:
    - BinaryWriter*
    - FrameEntry*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 472
    functionName: writer_intern_frame
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _Py_hashtable_set
    - PyErr_SetString
    - _Py_hashtable_get
    - PyMem_Free
    - PyMem_Malloc
    - GROW_ARRAY
    linkageType: ''
    returnType: int
    signature: int writer_intern_frame(BinaryWriter *writer, const FrameEntry *entry,
      uint32_t *index)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:494,1
    - Dst: grow_array
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:499,1
    - Dst: memset
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:509,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:516,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:518,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:522,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:524,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:525,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - writer
    - thread_id
    - interpreter_id
    - is_new
    argTypes:
    - BinaryWriter*
    - uint64_t
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 534
    functionName: writer_get_or_create_thread_entry
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - PyErr_SetString
    - memset
    - grow_array
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: ThreadEntry
    signature: "ThreadEntry *\nwriter_get_or_create_thread_entry(BinaryWriter *writer,
      uint64_t thread_id,\n                                   uint32_t interpreter_id,
      int *is_new)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 7
    argNames:
    - prev_stack
    - prev_depth
    - curr_stack
    - curr_depth
    - shared_count
    - pop_count
    - push_count
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    - size_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 609
    functionName: compare_stacks
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compare_stacks(const uint32_t *prev_stack, size_t prev_depth,\n
      \              const uint32_t *curr_stack, size_t curr_depth,\n               size_t
      *shared_count, size_t *pop_count, size_t *push_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:617,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:618,1
    - Dst: writer_write_bytes
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - entry
    - encoding
    argTypes:
    - BinaryWriter*
    - ThreadEntry*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 621
    functionName: write_sample_header
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - writer_write_bytes
    linkageType: ''
    returnType: int
    signature: int write_sample_header(BinaryWriter *writer, ThreadEntry *entry, uint8_t
      encoding)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:633,1
    - Dst: write_sample_header
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:643,1
    - Dst: writer_write_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:647,1
    - Dst: writer_write_varint_u64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:652,1
    - Dst: writer_write_bytes
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:655,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - writer
    - entry
    argTypes:
    - BinaryWriter*
    - ThreadEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 670
    functionName: flush_pending_rle
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - write_sample_header
    - PyErr_SetString
    - writer_write_varint_u32
    - writer_write_varint_u64
    - writer_write_bytes
    linkageType: ''
    returnType: int
    signature: int flush_pending_rle(BinaryWriter *writer, ThreadEntry *entry)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:682,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:689,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:690,1
    - Dst: encode_varint_u64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:692,1
    - Dst: writer_write_bytes
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:697,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:709,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:711,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:719,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:720,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:723,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:733,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:734,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:737,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:746,1
    - Dst: writer_write_bytes
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:750,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 10
    argNames:
    - writer
    - entry
    - timestamp_delta
    - status
    - encoding_type
    - frame_indices
    - stack_depth
    - shared_count
    - pop_count
    - push_count
    argTypes:
    - BinaryWriter*
    - ThreadEntry*
    - uint64_t
    - uint8_t
    - int
    - uint32_t*
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 757
    functionName: write_sample_with_encoding
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - encode_varint_u32
    - PyErr_SetString
    - encode_varint_u64
    - memcpy
    - writer_write_bytes
    linkageType: ''
    returnType: int
    signature: "int write_sample_with_encoding(BinaryWriter *writer, ThreadEntry *entry,\n
      \                          uint64_t timestamp_delta, uint8_t status,\n                           int
      encoding_type,\n                           const uint32_t *frame_indices, size_t
      stack_depth,\n                           size_t shared_count, size_t pop_count,
      size_t push_count)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:763,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:765,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:773,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:775,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:780,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:788,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:791,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:793,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:796,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:798,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:803,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:811,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:814,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:816,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:821,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:823,1
    - Dst: writer_init_zstd
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:829,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:834,1
    - Dst: fileno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:842,1
    - Dst: posix_fadvise
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:844,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:850,1
    - Dst: binary_writer_destroy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:857,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 4
    argNames:
    - path
    - sample_interval_us
    - compression_type
    - start_time_us
    argTypes:
    - PyObject*
    - uint64_t
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 859
    functionName: binary_writer_create
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 1
    functionsReached:
    - fileno
    - PyMem_Calloc
    - PyErr_NoMemory
    - binary_writer_destroy
    - posix_fadvise
    - writer_init_zstd
    - fwrite_checked_allow_threads
    - PyMem_Malloc
    - Py_fopen
    - _Py_hashtable_new_full
    linkageType: ''
    returnType: BinaryWriter
    signature: "BinaryWriter *\nbinary_writer_create(PyObject *path, uint64_t sample_interval_us,
      int compression_type,\n                     uint64_t start_time_us)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Size
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:867,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:872,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:875,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:876,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:877,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:878,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:889,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:890,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:891,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:892,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:893,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:894,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:895,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:896,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:897,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:898,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:899,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:900,1
    - Dst: PYLONG_TO_INT32_OR_DEFAULT
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:902,1
    - Dst: PYLONG_TO_INT32_OR_DEFAULT
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:903,1
    - Dst: PYLONG_TO_INT32_OR_DEFAULT
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:904,1
    - Dst: PYLONG_TO_INT32_OR_DEFAULT
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:905,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:911,1
    - Dst: UNLIKELY
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:912,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:912,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:913,1
    - Dst: writer_intern_string
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:922,1
    - Dst: writer_intern_string
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:928,1
    - Dst: writer_intern_frame
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:943,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - writer
    - frame_list
    - curr_stack
    - curr_depth
    argTypes:
    - BinaryWriter*
    - PyObject*
    - uint32_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 950
    functionName: build_frame_stack
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyList_GET_ITEM
    - writer_intern_string
    - writer_intern_frame
    - PYLONG_TO_INT32_OR_DEFAULT
    - PyLong_AsLong
    - PyStructSequence_GET_ITEM
    - PyTuple_Check
    - UNLIKELY
    - PyList_Size
    - PyErr_Occurred
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: "int build_frame_stack(BinaryWriter *writer, PyObject *frame_list,\n
      \                 uint32_t *curr_stack, size_t *curr_depth)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:958,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:959,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:960,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:962,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:963,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:966,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:967,1
    - Dst: writer_get_or_create_thread_entry
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:972,1
    - Dst: build_frame_stack
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:985,1
    - Dst: compare_stacks
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:991,1
    - Dst: GROW_ARRAY
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1005,1
    - Dst: flush_pending_rle
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1016,1
    - Dst: write_sample_with_encoding
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1021,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1027,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - writer
    - thread_info
    - interpreter_id
    - timestamp_us
    argTypes:
    - BinaryWriter*
    - PyObject*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 954
    functionDepth: 4
    functionLinenumber: 954
    functionLinenumberEnd: 1032
    functionName: process_thread_sample
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 0
    functionsReached:
    - flush_pending_rle
    - writer_get_or_create_thread_entry
    - PyLong_AsUnsignedLongLong
    - PyLong_AsLong
    - build_frame_stack
    - PyStructSequence_GET_ITEM
    - PyErr_Occurred
    - write_sample_with_encoding
    - memcpy
    - compare_stacks
    - GROW_ARRAY
    linkageType: ''
    returnType: int
    signature: "int process_thread_sample(BinaryWriter *writer, PyObject *thread_info,\n
      \                     uint32_t interpreter_id, uint64_t timestamp_us)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1037,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1038,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1042,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1044,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1046,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1047,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1049,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1050,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1055,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1062,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1064,1
    - Dst: process_thread_sample
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1065,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - writer
    - stack_frames
    - timestamp_us
    argTypes:
    - BinaryWriter*
    - PyObject*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1034
    functionDepth: 5
    functionLinenumber: 1034
    functionLinenumberEnd: 1072
    functionName: binary_writer_write_sample
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 1
    functionsReached:
    - process_thread_sample
    - PyErr_SetString
    - PyList_GET_ITEM
    - PyList_Check
    - PyStructSequence_GET_ITEM
    - PyErr_Occurred
    - PyLong_AsUnsignedLong
    - PyErr_Format
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int binary_writer_write_sample(BinaryWriter *writer, PyObject *stack_frames,
      uint64_t timestamp_us)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: flush_pending_rle
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1079,1
    - Dst: writer_flush_buffer
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1085,1
    - Dst: ZSTD_compressStream2
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1102,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1104,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1105,1
    - Dst: ZSTD_getErrorName
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1106,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1111,1
    - Dst: FTELL64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1120,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1122,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1129,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1130,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1131,1
    - Dst: FTELL64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1136,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1138,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1145,1
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1146,1
    - Dst: encode_varint_i32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1147,1
    - Dst: encode_varint_i32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1156,1
    - Dst: encode_varint_i32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1158,1
    - Dst: encode_varint_i32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1167,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1171,1
    - Dst: FTELL64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1177,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1179,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1188,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1189,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1190,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1192,1
    - Dst: FSEEK64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1196,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1197,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1211,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1212,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1216,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1217,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1218,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1219,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1220,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1221,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1222,1
    - Dst: fwrite_checked_allow_threads
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1223,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1227,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1229,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 91
    argCount: 1
    argNames:
    - writer
    argTypes:
    - BinaryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1235
    functionName: binary_writer_finalize
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 1
    functionsReached:
    - FSEEK64
    - ZSTD_compressStream2
    - ZSTD_getErrorName
    - Py_fclose
    - encode_varint_u32
    - encode_varint_i32
    - flush_pending_rle
    - FTELL64
    - fwrite_checked_allow_threads
    - memcpy
    - PyErr_Format
    - ZSTD_isError
    - writer_flush_buffer
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int binary_writer_finalize(BinaryWriter *writer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1245,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1248,1
    - Dst: ZSTD_freeCCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1252,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1254,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1258,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1262,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1264,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1266,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1269,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1271,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1275,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1276,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1278,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_writer.c:1281,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - writer
    argTypes:
    - BinaryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1282
    functionName: binary_writer_destroy
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_writer.c
    functionUses: 6
    functionsReached:
    - ZSTD_freeCCtx
    - _Py_hashtable_destroy
    - PyMem_Free
    - Py_fclose
    linkageType: ''
    returnType: void
    signature: void binary_writer_destroy(BinaryWriter *writer)
  - 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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: FIELD_SIZE
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIELD_SIZE(type, member)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - section_name
    - size
    argTypes:
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: validate_section_size
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_section_size(const char *section_name, uint64_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_section_size
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:72,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - section_name
    - size
    - buffer_size
    argTypes:
    - char*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: validate_read_size
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached:
    - validate_section_size
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_read_size(const char *section_name, uint64_t size, size_t
      buffer_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - field_name
    - offset
    - width
    - limit
    - limit_name
    argTypes:
    - char*
    - uint64_t
    - size_t
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 108
    functionName: validate_span
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int validate_span(\n    const char *field_name,\n    uint64_t offset,\n
      \   size_t width,\n    uint64_t limit,\n    const char *limit_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - field_name
    - offset
    - alignment
    argTypes:
    - char*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: validate_alignment
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int validate_alignment(\n    const char *field_name,\n    uint64_t
      offset,\n    size_t alignment)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_alignment
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:137,1
    - Dst: validate_span
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:140,1
    - Dst: validate_span
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - field_name
    - reported_size
    - offset
    - width
    - alignment
    - buffer_size
    argTypes:
    - char*
    - uint64_t
    - uint64_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 144
    functionName: validate_field
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached:
    - validate_alignment
    - validate_span
    linkageType: ''
    returnType: int
    signature: "int validate_field(\n    const char *field_name,\n    uint64_t reported_size,\n
      \   uint64_t offset,\n    size_t width,\n    size_t alignment,\n    size_t buffer_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:157,1
    - Dst: validate_field
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - field_name
    - reported_size
    - base_offset
    - nested_offset
    - width
    - alignment
    - buffer_size
    argTypes:
    - char*
    - uint64_t
    - uint64_t
    - uint64_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: validate_nested_field
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached:
    - validate_field
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int validate_nested_field(\n    const char *field_name,\n    uint64_t
      reported_size,\n    uint64_t base_offset,\n    uint64_t nested_offset,\n    size_t
      width,\n    size_t alignment,\n    size_t buffer_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_alignment
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:180,1
    - Dst: validate_span
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - field_name
    - offset
    - width
    - alignment
    - buffer_size
    argTypes:
    - char*
    - uint64_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: validate_fixed_field
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached:
    - validate_alignment
    - validate_span
    linkageType: ''
    returnType: int
    signature: "int validate_fixed_field(\n    const char *field_name,\n    uint64_t
      offset,\n    size_t width,\n    size_t alignment,\n    size_t buffer_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - section
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: PY_REMOTE_DEBUG_VALIDATE_SECTION
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_VALIDATE_SECTION(section)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - section
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: PY_REMOTE_DEBUG_VALIDATE_READ_SECTION
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_VALIDATE_READ_SECTION(section, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - section
    - ','
    - field
    - ','
    - field_size
    - ','
    - field_alignment
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 212
    functionName: PY_REMOTE_DEBUG_VALIDATE_FIELD
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_VALIDATE_FIELD(section, field, field_size, field_alignment,
      buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - section
    - ','
    - base
    - ','
    - nested_section
    - ','
    - field
    - ','
    - field_size
    - ','
    - field_alignment
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: PY_REMOTE_DEBUG_VALIDATE_NESTED_FIELD
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_VALIDATE_NESTED_FIELD(section, base, nested_section,
      field, field_size, field_alignment, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - section
    - ','
    - field
    - ','
    - field_size
    - ','
    - field_alignment
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: PY_REMOTE_DEBUG_VALIDATE_FIXED_FIELD
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_VALIDATE_FIXED_FIELD(section, field, field_size, field_alignment,
      buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: PY_REMOTE_DEBUG_RUNTIME_STATE_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_RUNTIME_STATE_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: PY_REMOTE_DEBUG_THREAD_STATE_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_THREAD_STATE_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: PY_REMOTE_DEBUG_INTERPRETER_STATE_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_INTERPRETER_STATE_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 283
    functionName: PY_REMOTE_DEBUG_INTERPRETER_FRAME_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_INTERPRETER_FRAME_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: PY_REMOTE_DEBUG_CODE_OBJECT_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_CODE_OBJECT_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: PY_REMOTE_DEBUG_SET_OBJECT_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_SET_OBJECT_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: PY_REMOTE_DEBUG_LONG_OBJECT_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_LONG_OBJECT_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: PY_REMOTE_DEBUG_BYTES_OBJECT_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_BYTES_OBJECT_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: PY_REMOTE_DEBUG_UNICODE_OBJECT_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_UNICODE_OBJECT_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: PY_REMOTE_DEBUG_GEN_OBJECT_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_GEN_OBJECT_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 322
    functionName: PY_REMOTE_DEBUG_TASK_OBJECT_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_TASK_OBJECT_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: PY_REMOTE_DEBUG_ASYNC_INTERPRETER_STATE_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_ASYNC_INTERPRETER_STATE_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - APPLY
    - ','
    - buffer_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: PY_REMOTE_DEBUG_ASYNC_THREAD_STATE_FIELDS
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_REMOTE_DEBUG_ASYNC_THREAD_STATE_FIELDS(APPLY, buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:339,1
    - Dst: PY_REMOTE_DEBUG_RUNTIME_STATE_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:340,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:344,1
    - Dst: PY_REMOTE_DEBUG_INTERPRETER_STATE_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:345,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_READ_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:349,1
    - Dst: PY_REMOTE_DEBUG_THREAD_STATE_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:350,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_FIXED_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:353,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_NESTED_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:359,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_READ_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:368,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:369,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:375,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_NESTED_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:381,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_NESTED_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:389,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:398,1
    - Dst: PY_REMOTE_DEBUG_INTERPRETER_FRAME_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:399,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:403,1
    - Dst: PY_REMOTE_DEBUG_CODE_OBJECT_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:404,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:408,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:409,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:416,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:417,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:424,1
    - Dst: PY_REMOTE_DEBUG_SET_OBJECT_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:425,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_READ_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:429,1
    - Dst: PY_REMOTE_DEBUG_LONG_OBJECT_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:430,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:434,1
    - Dst: PY_REMOTE_DEBUG_BYTES_OBJECT_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:435,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:439,1
    - Dst: PY_REMOTE_DEBUG_UNICODE_OBJECT_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:440,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:444,1
    - Dst: PY_REMOTE_DEBUG_GEN_OBJECT_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:445,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_FIXED_FIELD
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - debug_offsets
    argTypes:
    - struct _Py_DebugOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 457
    functionName: _PyRemoteDebug_ValidateDebugOffsetsLayout
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 1
    functionsReached:
    - PY_REMOTE_DEBUG_RUNTIME_STATE_FIELDS
    - PY_REMOTE_DEBUG_UNICODE_OBJECT_FIELDS
    - PY_REMOTE_DEBUG_CODE_OBJECT_FIELDS
    - PY_REMOTE_DEBUG_VALIDATE_FIELD
    - PY_REMOTE_DEBUG_GEN_OBJECT_FIELDS
    - PY_REMOTE_DEBUG_VALIDATE_FIXED_FIELD
    - PY_REMOTE_DEBUG_SET_OBJECT_FIELDS
    - PY_REMOTE_DEBUG_VALIDATE_NESTED_FIELD
    - PY_REMOTE_DEBUG_THREAD_STATE_FIELDS
    - PY_REMOTE_DEBUG_VALIDATE_SECTION
    - PY_REMOTE_DEBUG_LONG_OBJECT_FIELDS
    - PY_REMOTE_DEBUG_INTERPRETER_STATE_FIELDS
    - PY_REMOTE_DEBUG_BYTES_OBJECT_FIELDS
    - PY_REMOTE_DEBUG_VALIDATE_READ_SECTION
    - PY_REMOTE_DEBUG_INTERPRETER_FRAME_FIELDS
    linkageType: ''
    returnType: int
    signature: int _PyRemoteDebug_ValidateDebugOffsetsLayout(struct _Py_DebugOffsets
      *debug_offsets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PY_REMOTE_DEBUG_VALIDATE_READ_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:464,1
    - Dst: PY_REMOTE_DEBUG_TASK_OBJECT_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:465,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:468,1
    - Dst: PY_REMOTE_DEBUG_ASYNC_INTERPRETER_STATE_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:469,1
    - Dst: PY_REMOTE_DEBUG_VALIDATE_SECTION
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:472,1
    - Dst: PY_REMOTE_DEBUG_ASYNC_THREAD_STATE_FIELDS
      Src: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - debug_offsets
    argTypes:
    - struct _Py_AsyncioModuleDebugOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 477
    functionName: _PyRemoteDebug_ValidateAsyncDebugOffsets
    functionSourceFile: /src/cpython/Modules/_remote_debugging/debug_offsets_validation.h
    functionUses: 1
    functionsReached:
    - PY_REMOTE_DEBUG_TASK_OBJECT_FIELDS
    - PY_REMOTE_DEBUG_ASYNC_THREAD_STATE_FIELDS
    - PY_REMOTE_DEBUG_VALIDATE_SECTION
    - PY_REMOTE_DEBUG_ASYNC_INTERPRETER_STATE_FIELDS
    - PY_REMOTE_DEBUG_VALIDATE_READ_SECTION
    linkageType: ''
    returnType: int
    signature: "int _PyRemoteDebug_ValidateAsyncDebugOffsets(\n    struct _Py_AsyncioModuleDebugOffsets
      *debug_offsets)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:35,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arr
    argTypes:
    - pid_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: pid_array_init
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int pid_array_init(pid_array_t *arr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arr
    argTypes:
    - pid_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: pid_array_cleanup
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void pid_array_cleanup(pid_array_t *arr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:60,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:66,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:69,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - arr
    - pid
    argTypes:
    - pid_array_t*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 79
    functionName: pid_array_append
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyErr_SetString
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int pid_array_append(pid_array_t *arr, pid_t pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - arr
    - pid
    argTypes:
    - pid_array_t*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: pid_array_contains
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pid_array_contains(pid_array_t *arr, pid_t pid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pid_array_init
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:107,1
    - Dst: pid_array_append
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:110,1
    - Dst: pid_array_contains
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:123,1
    - Dst: pid_array_append
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:126,1
    - Dst: pid_array_append
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:129,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:142,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 6
    argNames:
    - target_pid
    - recursive
    - all_pids
    - ppids
    - pid_count
    - result
    argTypes:
    - pid_t
    - int
    - pid_t*
    - pid_t*
    - size_t
    - pid_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 144
    functionName: find_children_bfs
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - pid_array_init
    - pid_array_cleanup
    - pid_array_append
    - pid_array_contains
    linkageType: ''
    returnType: int
    signature: "int find_children_bfs(pid_t target_pid, int recursive,\n                  pid_t
      *all_pids, pid_t *ppids, size_t pid_count,\n                  pid_array_t *result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:159,1
    - Dst: open
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:161,1
    - Dst: read
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:166,1
    - Dst: close
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:167,1
    - Dst: strrchr
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:175,1
    - Dst: sscanf
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 201
    functionName: get_ppid_linux
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - strrchr
    - close
    - open
    - sscanf
    - read
    - snprintf
    linkageType: ''
    returnType: pid_t
    signature: pid_t get_ppid_linux(pid_t pid)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pid_array_init
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:211,1
    - Dst: pid_array_init
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:215,1
    - Dst: opendir
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:219,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:221,1
    - Dst: readdir
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:228,1
    - Dst: _set_debug_oserror_from_errno_with_filename
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:232,1
    - Dst: strerror
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:234,1
    - Dst: strtol
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:244,1
    - Dst: get_ppid_linux
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:249,1
    - Dst: pid_array_append
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:253,1
    - Dst: pid_array_append
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:254,1
    - Dst: closedir
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:259,1
    - Dst: _set_debug_oserror_from_errno_with_filename
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:262,1
    - Dst: strerror
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:264,1
    - Dst: find_children_bfs
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:269,1
    - Dst: closedir
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:279,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:281,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:282,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 59
    argCount: 3
    argNames:
    - target_pid
    - recursive
    - result
    argTypes:
    - pid_t
    - int
    - pid_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 284
    functionName: get_child_pids_platform
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - closedir
    - find_children_bfs
    - get_ppid_linux
    - opendir
    - pid_array_init
    - PyErr_SetFromErrnoWithFilename
    - pid_array_append
    - pid_array_cleanup
    - strtol
    - strerror
    - readdir
    - _set_debug_oserror_from_errno_with_filename
    linkageType: ''
    returnType: int
    signature: int get_child_pids_platform(pid_t target_pid, int recursive, pid_array_t
      *result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: proc_listpids
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:307,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:313,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:315,1
    - Dst: proc_listpids
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:320,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:322,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:327,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:329,1
    - Dst: proc_pidinfo
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:337,1
    - Dst: find_children_bfs
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:347,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:356,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:357,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - target_pid
    - recursive
    - result
    argTypes:
    - pid_t
    - int
    - pid_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 359
    functionName: get_child_pids_platform
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - find_children_bfs
    - PyErr_NoMemory
    - PyErr_SetString
    - proc_pidinfo
    - PyMem_Free
    - PyMem_Malloc
    - proc_listpids
    linkageType: ''
    returnType: int
    signature: int get_child_pids_platform(pid_t target_pid, int recursive, pid_array_t
      *result)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CreateToolhelp32Snapshot
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:377,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:379,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:380,1
    - Dst: pid_array_init
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:384,1
    - Dst: pid_array_init
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:388,1
    - Dst: Process32First
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:395,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:396,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:397,1
    - Dst: pid_array_append
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:402,1
    - Dst: pid_array_append
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:403,1
    - Dst: Process32Next
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:406,1
    - Dst: GetLastError
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:408,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:410,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:414,1
    - Dst: find_children_bfs
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:417,1
    - Dst: CloseHandle
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:427,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:429,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:430,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 3
    argNames:
    - target_pid
    - recursive
    - result
    argTypes:
    - pid_t
    - int
    - pid_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 432
    functionName: get_child_pids_platform
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - Process32First
    - PyErr_SetFromWindowsErr
    - find_children_bfs
    - pid_array_init
    - pid_array_append
    - Process32Next
    - CreateToolhelp32Snapshot
    - CloseHandle
    - pid_array_cleanup
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int get_child_pids_platform(pid_t target_pid, int recursive, pid_array_t
      *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - target_pid
    - recursive
    - result
    argTypes:
    - pid_t
    - int
    - pid_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: get_child_pids_platform
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int get_child_pids_platform(pid_t target_pid, int recursive, pid_array_t
      *result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pid_array_init
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:461,1
    - Dst: get_child_pids_platform
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:465,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:466,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:471,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:473,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:480,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:481,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:484,1
    - Dst: pid_array_cleanup
      Src: /src/cpython/Modules/_remote_debugging/subprocess.c:487,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - target_pid
    - recursive
    argTypes:
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 489
    functionName: enumerate_child_pids
    functionSourceFile: /src/cpython/Modules/_remote_debugging/subprocess.c
    functionUses: 1
    functionsReached:
    - PyList_SET_ITEM
    - PyLong_FromLong
    - pid_array_init
    - pid_array_cleanup
    - get_child_pids_platform
    - PyList_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enumerate_child_pids(pid_t target_pid, int recursive)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - swap
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: SWAP16_IF
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP16_IF(swap, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - swap
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: SWAP32_IF
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP32_IF(swap, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - swap
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: SWAP64_IF
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP64_IF(swap, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: FTELL64
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTELL64(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - offset
    - ','
    - whence
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: FSEEK64
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSEEK64(fp, offset, whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: FTELL64
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTELL64(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - offset
    - ','
    - whence
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: FSEEK64
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSEEK64(fp, offset, whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: UNLIKELY
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    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: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: LIKELY
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    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: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: UNLIKELY
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    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: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: LIKELY
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 382
    functionName: encode_varint_u64
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encode_varint_u64(uint8_t *buf, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_varint_u64
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: encode_varint_u32
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 3
    functionsReached:
    - encode_varint_u64
    linkageType: ''
    returnType: size_t
    signature: size_t encode_varint_u32(uint8_t *buf, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - uint8_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: encode_varint_i32
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    functionsReached:
    - encode_varint_u32
    linkageType: ''
    returnType: size_t
    signature: size_t encode_varint_i32(uint8_t *buf, int32_t value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIKELY
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:411,1
    - Dst: UNLIKELY
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:424,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:425,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - data
    - offset
    - max_size
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 432
    functionName: decode_varint_u64
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 0
    functionsReached:
    - LIKELY
    - PyErr_SetString
    - UNLIKELY
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t decode_varint_u64(const uint8_t *data, size_t *offset, size_t
      max_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint_u64
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:439,1
    - Dst: UNLIKELY
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:443,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - offset
    - max_size
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 449
    functionName: decode_varint_u32
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - PyErr_SetString
    - decode_varint_u64
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t decode_varint_u32(const uint8_t *data, size_t *offset, size_t
      max_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - data
    - offset
    - max_size
    argTypes:
    - uint8_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 461
    functionName: decode_varint_i32
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 0
    functionsReached:
    - decode_varint_u32
    linkageType: ''
    returnType: int32_t
    signature: int32_t decode_varint_i32(const uint8_t *data, size_t *offset, size_t
      max_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:476,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:483,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:487,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - capacity
    - elem_size
    argTypes:
    - void*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 494
    functionName: grow_array
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 1
    functionsReached:
    - PyMem_Realloc
    - PyErr_SetString
    - PyErr_NoMemory
    linkageType: ''
    returnType: void
    signature: 'void *

      grow_array(void *ptr, size_t *capacity, size_t elem_size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grow_array
      Src: /src/cpython/Modules/_remote_debugging/binary_io.h:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ptr_addr
    - count
    - capacity
    - elem_size
    argTypes:
    - void**
    - size_t
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 508
    functionName: grow_array_inplace
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 0
    functionsReached:
    - grow_array
    linkageType: ''
    returnType: int
    signature: int grow_array_inplace(void **ptr_addr, size_t count, size_t *capacity,
      size_t elem_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - count
    - ','
    - cap
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: GROW_ARRAY
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GROW_ARRAY(ptr, count, cap, type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:39,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:46,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:47,1
    - Dst: _Py_bswap32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:54,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:56,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:66,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:73,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:88,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:89,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:90,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:91,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:92,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:93,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:94,1
    - Dst: SWAP64_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:96,1
    - Dst: SWAP64_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:97,1
    - Dst: SWAP32_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:98,1
    - Dst: SWAP32_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:99,1
    - Dst: SWAP64_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:100,1
    - Dst: SWAP64_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:101,1
    - Dst: SWAP32_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 3
    argNames:
    - reader
    - data
    - file_size
    argTypes:
    - BinaryReader*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 105
    functionName: reader_parse_header
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - SWAP64_IF
    - PyErr_SetString
    - _Py_bswap32
    - SWAP32_IF
    - memcpy
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int reader_parse_header(BinaryReader *reader, const uint8_t *data,
      size_t file_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:111,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:118,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:119,1
    - Dst: SWAP32_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:121,1
    - Dst: SWAP32_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - reader
    - data
    - file_size
    argTypes:
    - BinaryReader*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 125
    functionName: reader_parse_footer
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - SWAP32_IF
    - memcpy
    linkageType: ''
    returnType: int
    signature: int reader_parse_footer(BinaryReader *reader, const uint8_t *data,
      size_t file_size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:139,1
    - Dst: ZSTD_createDCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:143,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:145,1
    - Dst: ZSTD_getFrameContentSize
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:150,1
    - Dst: ZSTD_freeDCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:155,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:156,1
    - Dst: ZSTD_DStreamOutSize
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:163,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:169,1
    - Dst: ZSTD_freeDCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:171,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:172,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:184,1
    - Dst: ZSTD_freeDCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:187,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:191,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:193,1
    - Dst: ZSTD_freeDCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:195,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:196,1
    - Dst: ZSTD_decompressStream
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:209,1
    - Dst: ZSTD_isError
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:210,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:211,1
    - Dst: ZSTD_freeDCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:213,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:214,1
    - Dst: ZSTD_getErrorName
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:215,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:224,1
    - Dst: ZSTD_freeDCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:226,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:227,1
    - Dst: ZSTD_freeDCtx
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:231,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 2
    argNames:
    - reader
    - data
    argTypes:
    - BinaryReader*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 237
    functionName: reader_decompress_samples
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - ZSTD_getErrorName
    - PyMem_Realloc
    - PyErr_SetString
    - ZSTD_DStreamOutSize
    - ZSTD_freeDCtx
    - PyMem_Free
    - PyMem_Malloc
    - ZSTD_isError
    - PyErr_Format
    - ZSTD_getFrameContentSize
    - ZSTD_createDCtx
    - ZSTD_decompressStream
    linkageType: ''
    returnType: int
    signature: int reader_decompress_samples(BinaryReader *reader, const uint8_t *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:243,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:245,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:252,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:254,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:258,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:262,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - reader
    - data
    - file_size
    argTypes:
    - BinaryReader*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 270
    functionName: reader_parse_string_table
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - PyErr_SetString
    - PyUnicode_DecodeUTF8
    - decode_varint_u32
    linkageType: ''
    returnType: int
    signature: int reader_parse_string_table(BinaryReader *reader, const uint8_t *data,
      size_t file_size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:278,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:284,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:286,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:296,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:298,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:303,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:305,1
    - Dst: decode_varint_i32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:310,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:312,1
    - Dst: decode_varint_i32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:317,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:319,1
    - Dst: decode_varint_i32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:330,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:332,1
    - Dst: decode_varint_i32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:337,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:339,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:351,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 3
    argNames:
    - reader
    - data
    - file_size
    argTypes:
    - BinaryReader*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 358
    functionName: reader_parse_frame_table
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    - decode_varint_i32
    - decode_varint_u32
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int reader_parse_frame_table(BinaryReader *reader, const uint8_t *data,
      size_t file_size)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:363,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:365,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:371,1
    - Dst: fileno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:375,1
    - Dst: fstat
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:378,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:379,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:380,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:384,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:385,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:389,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:395,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:396,1
    - Dst: mmap
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:406,1
    - Dst: mmap
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:409,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:414,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:415,1
    - Dst: madvise
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:420,1
    - Dst: madvise
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:424,1
    - Dst: madvise
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:430,1
    - Dst: posix_fadvise
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:436,1
    - Dst: posix_fadvise
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:438,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:442,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:443,1
    - Dst: Py_fopen
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:451,1
    - Dst: FSEEK64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:456,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:457,1
    - Dst: FTELL64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:460,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:466,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:471,1
    - Dst: FSEEK64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:474,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:475,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:479,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:481,1
    - Dst: fread
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:485,1
    - Dst: ferror
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:488,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:490,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:493,1
    - Dst: reader_parse_header
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:505,1
    - Dst: reader_parse_footer
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:508,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:514,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:520,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:526,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:532,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:538,1
    - Dst: reader_decompress_samples
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:548,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:552,1
    - Dst: reader_parse_string_table
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:562,1
    - Dst: reader_parse_frame_table
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:565,1
    - Dst: binary_reader_close
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:572,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 162
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 574
    functionName: binary_reader_open
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 1
    functionsReached:
    - reader_parse_frame_table
    - FTELL64
    - madvise
    - binary_reader_close
    - Py_fopen
    - mmap
    - reader_parse_string_table
    - fileno
    - fread
    - reader_parse_footer
    - FSEEK64
    - PyErr_NoMemory
    - Py_fclose
    - reader_parse_header
    - ferror
    - PyMem_Malloc
    - reader_decompress_samples
    - PyMem_Calloc
    - PyErr_SetString
    - posix_fadvise
    - PyErr_Format
    - PyErr_SetFromErrno
    - fstat
    linkageType: ''
    returnType: BinaryReader
    signature: 'BinaryReader *

      binary_reader_open(PyObject *path)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:590,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:599,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:601,1
    - Dst: grow_array
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:605,1
    - Dst: memset
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:615,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:620,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:622,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - reader
    - thread_id
    - interpreter_id
    argTypes:
    - BinaryReader*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 629
    functionName: reader_get_or_create_thread_state
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - memset
    - grow_array
    - PyErr_Format
    - PyMem_Malloc
    linkageType: ''
    returnType: ReaderThreadState
    signature: "ReaderThreadState *\nreader_get_or_create_thread_state(BinaryReader
      *reader, uint64_t thread_id,\n                                   uint32_t interpreter_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ts
    - final_depth
    argTypes:
    - ReaderThreadState*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 647
    functionName: validate_stack_depth
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_stack_depth(ReaderThreadState *ts, uint64_t final_depth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:657,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:664,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ts
    - data
    - offset
    - max_size
    argTypes:
    - ReaderThreadState*
    - uint8_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 678
    functionName: decode_stack_full
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - decode_varint_u32
    linkageType: ''
    returnType: int
    signature: "int decode_stack_full(ReaderThreadState *ts, const uint8_t *data,\n
      \                 size_t *offset, size_t max_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:688,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:693,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:700,1
    - Dst: validate_stack_depth
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:708,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:718,1
    - Dst: memmove
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:723,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:730,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - ts
    - data
    - offset
    - max_size
    argTypes:
    - ReaderThreadState*
    - uint8_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 737
    functionName: decode_stack_suffix
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - validate_stack_depth
    - memmove
    - PyErr_SetString
    - decode_varint_u32
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int decode_stack_suffix(ReaderThreadState *ts, const uint8_t *data,\n
      \                   size_t *offset, size_t max_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:747,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:752,1
    - Dst: validate_stack_depth
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:760,1
    - Dst: memmove
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:767,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:774,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - ts
    - data
    - offset
    - max_size
    argTypes:
    - ReaderThreadState*
    - uint8_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 782
    functionName: decode_stack_pop_push
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - validate_stack_depth
    - memmove
    - decode_varint_u32
    linkageType: ''
    returnType: int
    signature: "int decode_stack_pop_push(ReaderThreadState *ts, const uint8_t *data,\n
      \                     size_t *offset, size_t max_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:789,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:797,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:805,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:809,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:823,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:828,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:837,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:842,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:845,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:845,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:846,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:847,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:847,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:848,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:855,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 4
    argNames:
    - state
    - reader
    - frame_indices
    - stack_depth
    argTypes:
    - RemoteDebuggingState*
    - BinaryReader*
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 857
    functionName: build_frame_list
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyLong_FromLong
    - PyStructSequence_New
    - PyErr_SetString
    - PyStructSequence_SetItem
    - Py_BuildValue
    - PyList_New
    - PyErr_Format
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuild_frame_list(RemoteDebuggingState *state, BinaryReader
      *reader,\n                 const uint32_t *frame_indices, size_t stack_depth)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: build_frame_list
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:868,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:873,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:877,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:883,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:886,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:887,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:888,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:891,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:895,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:898,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:902,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:906,1
    - Dst: PyStructSequence_SetItem
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:907,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:910,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:914,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:918,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:919,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:920,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:921,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:922,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 7
    argNames:
    - state
    - reader
    - thread_id
    - interpreter_id
    - status
    - frame_indices
    - stack_depth
    argTypes:
    - RemoteDebuggingState*
    - BinaryReader*
    - uint64_t
    - uint32_t
    - uint8_t
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 924
    functionName: build_sample_list
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyLong_FromLong
    - PyStructSequence_New
    - build_frame_list
    - PyList_New
    - PyLong_FromUnsignedLongLong
    - Py_XDECREF
    - Py_DECREF
    - PyStructSequence_SetItem
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuild_sample_list(RemoteDebuggingState *state, BinaryReader
      *reader,\n                  uint64_t thread_id, uint32_t interpreter_id, uint8_t
      status,\n                  const uint32_t *frame_indices, size_t stack_depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_sample_list
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:933,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:940,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 9
    argNames:
    - state
    - collector
    - thread_id
    - interpreter_id
    - status
    - frame_indices
    - stack_depth
    - reader
    - timestamps_list
    argTypes:
    - RemoteDebuggingState*
    - PyObject*
    - uint64_t
    - uint32_t
    - uint8_t
    - uint32_t*
    - size_t
    - BinaryReader*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 948
    functionName: emit_sample
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethod
    - build_sample_list
    linkageType: ''
    returnType: int
    signature: "int emit_sample(RemoteDebuggingState *state, PyObject *collector,\n
      \           uint64_t thread_id, uint32_t interpreter_id, uint8_t status,\n            const
      uint32_t *frame_indices, size_t stack_depth,\n            BinaryReader *reader,
      PyObject *timestamps_list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_SetSlice
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:958,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:958,1
    - Dst: emit_sample
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 10
    argNames:
    - state
    - collector
    - thread_id
    - interpreter_id
    - status
    - frame_indices
    - stack_depth
    - reader
    - timestamps_list
    - actual_size
    argTypes:
    - RemoteDebuggingState*
    - PyObject*
    - uint64_t
    - uint32_t
    - uint8_t
    - uint32_t*
    - size_t
    - BinaryReader*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 951
    functionDepth: 4
    functionLinenumber: 951
    functionLinenumberEnd: 963
    functionName: emit_batch
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - emit_sample
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int emit_batch(RemoteDebuggingState *state, PyObject *collector,\n
      \          uint64_t thread_id, uint32_t interpreter_id, uint8_t status,\n           const
      uint32_t *frame_indices, size_t stack_depth,\n           BinaryReader *reader,
      PyObject *timestamps_list, Py_ssize_t actual_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:970,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - callback
    - current
    - total
    argTypes:
    - PyObject*
    - Py_ssize_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 978
    functionName: invoke_progress_callback
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunction
    linkageType: ''
    returnType: int
    signature: int invoke_progress_callback(PyObject *callback, Py_ssize_t current,
      uint32_t total)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttrString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:984,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:992,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:995,1
    - Dst: RemoteDebugging_GetState
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1000,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1003,1
    - Dst: invoke_progress_callback
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1011,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1018,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1027,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1030,1
    - Dst: SWAP64_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1033,1
    - Dst: SWAP32_IF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1034,1
    - Dst: reader_get_or_create_thread_state
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1037,1
    - Dst: decode_varint_u32
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1049,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1052,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1062,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1068,1
    - Dst: decode_varint_u64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1083,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1085,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1086,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1090,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1091,1
    - Dst: emit_batch
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1103,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1108,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1118,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1121,1
    - Dst: emit_batch
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1129,1
    - Dst: invoke_progress_callback
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1140,1
    - Dst: decode_varint_u64
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1155,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1159,1
    - Dst: decode_stack_full
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1166,1
    - Dst: decode_stack_suffix
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1171,1
    - Dst: decode_stack_pop_push
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1176,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1184,1
    - Dst: PyList_New
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1190,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1193,1
    - Dst: emit_sample
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1201,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1203,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1213,1
    - Dst: invoke_progress_callback
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1219,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1226,1
    - Dst: invoke_progress_callback
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1233,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 164
    argCount: 3
    argNames:
    - reader
    - collector
    - progress_callback
    argTypes:
    - BinaryReader*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 980
    functionDepth: 5
    functionLinenumber: 980
    functionLinenumberEnd: 1238
    functionName: binary_reader_replay
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 1
    functionsReached:
    - PyImport_ImportModule
    - reader_get_or_create_thread_state
    - decode_stack_suffix
    - decode_stack_pop_push
    - emit_batch
    - decode_varint_u64
    - memcpy
    - decode_stack_full
    - emit_sample
    - decode_varint_u32
    - PyList_New
    - Py_XDECREF
    - invoke_progress_callback
    - PyErr_SetString
    - RemoteDebugging_GetState
    - SWAP32_IF
    - Py_DECREF
    - PyList_SET_ITEM
    - SWAP64_IF
    - PyObject_GetOptionalAttrString
    - PyErr_Format
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t binary_reader_replay(BinaryReader *reader, PyObject *collector,
      PyObject *progress_callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1243,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reader
    argTypes:
    - BinaryReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1260
    functionName: binary_reader_get_info
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 1
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binary_reader_get_info(BinaryReader *reader)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - BinaryWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1289
    functionName: binary_writer_get_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 1
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binary_writer_get_stats(BinaryWriter *writer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reader
    argTypes:
    - BinaryReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1310
    functionName: binary_reader_get_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 1
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binary_reader_get_stats(BinaryReader *reader)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1321,1
    - Dst: Py_fclose
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1330,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1334,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1340,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1344,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1346,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1349,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1353,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1355,1
    - Dst: PyMem_Free
      Src: /src/cpython/Modules/_remote_debugging/binary_io_reader.c:1358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - reader
    argTypes:
    - BinaryReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1359
    functionName: binary_reader_close
    functionSourceFile: /src/cpython/Modules/_remote_debugging/binary_io_reader.c
    functionUses: 5
    functionsReached:
    - Py_XDECREF
    - munmap
    - PyMem_Free
    - Py_fclose
    linkageType: ''
    returnType: void
    signature: void binary_reader_close(BinaryReader *reader)
  - 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: 26
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 26
    functionName: DEFINE_MEMORY_READER
    functionSourceFile: /src/cpython/Modules/_remote_debugging/object_reading.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/object_reading.c:34,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:35,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: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: read_py_ptr
    functionSourceFile: /src/cpython/Modules/_remote_debugging/object_reading.c
    functionUses: 4
    functionsReached:
    - set_exception_cause
    - read_ptr
    linkageType: ''
    returnType: int
    signature: int read_py_ptr(RemoteUnwinderObject *unwinder, uintptr_t address,
      uintptr_t *ptr_addr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:55,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:62,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:66,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:68,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:70,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:77,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:83,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:85,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:103,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:105,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:120,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:122,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:127,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:129,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:136,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:145,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:155,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:156,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - unwinder
    - address
    - max_len
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 162
    functionName: read_py_str
    functionSourceFile: /src/cpython/Modules/_remote_debugging/object_reading.c
    functionUses: 2
    functionsReached:
    - GET_MEMBER
    - PyUnicode_DATA
    - PyUnicode_New
    - memcpy
    - PyErr_Format
    - Py_DECREF
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    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/object_reading.c:175,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:182,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:186,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:188,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:190,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:194,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:196,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:197,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:202,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:204,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:209,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:211,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:215,1
    - Dst: assert
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:216,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:221,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: 215
        line_start: 215
        source_file: /src/cpython/Modules/_remote_debugging/object_reading.c
    constantsTouched: []
    func_position:
      end: 224
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 224
    functionName: read_py_bytes
    functionSourceFile: /src/cpython/Modules/_remote_debugging/object_reading.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - PyMem_RawFree
    - PyMem_RawMalloc
    - PyErr_Format
    - assert
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nread_py_bytes(\n    RemoteUnwinderObject *unwinder,\n
      \   uintptr_t address,\n    Py_ssize_t max_len\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:236,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:242,1
    - Dst: GET_MEMBER
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:246,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:256,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:258,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:268,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:270,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:271,1
    - Dst: memcpy
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:276,1
    - Dst: _Py_RemoteDebug_PagedReadRemoteMemory
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:278,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:285,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:297,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:299,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:304,1
    - Dst: set_exception_cause
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:306,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:312,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Modules/_remote_debugging/object_reading.c:321,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 2
    argNames:
    - unwinder
    - address
    argTypes:
    - RemoteUnwinderObject*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 323
    functionName: read_py_long
    functionSourceFile: /src/cpython/Modules/_remote_debugging/object_reading.c
    functionUses: 1
    functionsReached:
    - GET_MEMBER
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_RawFree
    - PyMem_RawMalloc
    - memcpy
    - PyErr_Format
    - _Py_RemoteDebug_PagedReadRemoteMemory
    - set_exception_cause
    linkageType: ''
    returnType: long
    signature: "long read_py_long(\n    RemoteUnwinderObject *unwinder,\n    uintptr_t
      address\n)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:80,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:82,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:100,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:101,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:114,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:114,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:119,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:120,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:127,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:136,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:145,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:146,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:154,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:163,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:172,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:181,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:190,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:199,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:207,1
    - Dst: _remote_debugging_RemoteUnwinder___init___impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:212,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 125
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 216
    functionName: _remote_debugging_RemoteUnwinder___init__
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _remote_debugging_RemoteUnwinder___init___impl
    - PyObject_IsTrue
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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/_remote_debugging/clinic/module.c.h:280,1
    - Dst: _remote_debugging_RemoteUnwinder_get_stack_trace_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:281,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 5
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: _remote_debugging_RemoteUnwinder_get_stack_trace
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/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/_remote_debugging/clinic/module.c.h:342,1
    - Dst: _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:343,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 9
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: _remote_debugging_RemoteUnwinder_get_all_awaited_by
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl
    - Py_END_CRITICAL_SECTION
    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/_remote_debugging/clinic/module.c.h:404,1
    - Dst: _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:405,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 409
    functionName: _remote_debugging_RemoteUnwinder_get_async_stack_trace
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _remote_debugging_RemoteUnwinder_get_async_stack_trace_impl
    - Py_END_CRITICAL_SECTION
    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/_remote_debugging/clinic/module.c.h:469,1
    - Dst: _remote_debugging_RemoteUnwinder_get_stats_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:470,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: _remote_debugging_RemoteUnwinder_get_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _remote_debugging_RemoteUnwinder_get_stats_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_get_stats(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:503,1
    - Dst: _remote_debugging_RemoteUnwinder_pause_threads_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:504,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: _remote_debugging_RemoteUnwinder_pause_threads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _remote_debugging_RemoteUnwinder_pause_threads_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_pause_threads(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:533,1
    - Dst: _remote_debugging_RemoteUnwinder_resume_threads_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:534,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 538
    functionName: _remote_debugging_RemoteUnwinder_resume_threads
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _remote_debugging_RemoteUnwinder_resume_threads_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_RemoteUnwinder_resume_threads(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:578,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:580,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:580,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:598,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:599,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:603,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:603,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:608,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:609,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:615,1
    - Dst: _remote_debugging_GCMonitor___init___impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:620,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 624
    functionName: _remote_debugging_GCMonitor___init__
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _remote_debugging_GCMonitor___init___impl
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _remote_debugging_GCMonitor___init__(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:675,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:677,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:694,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:697,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:705,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:710,1
    - Dst: _remote_debugging_GCMonitor_get_gc_stats_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:711,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:712,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: 716
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 716
    functionName: _remote_debugging_GCMonitor_get_gc_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - _remote_debugging_GCMonitor_get_gc_stats_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_GCMonitor_get_gc_stats(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:756,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:756,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:756,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:756,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:774,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:775,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:781,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:781,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:787,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:790,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:796,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:797,1
    - Dst: _remote_debugging_BinaryWriter___init___impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:801,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 805
    functionName: _remote_debugging_BinaryWriter___init__
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyLong_UnsignedLongLong_Converter
    - _remote_debugging_BinaryWriter___init___impl
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _remote_debugging_BinaryWriter___init__(PyObject *self, PyObject
      *args, PyObject *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:839,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:841,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:841,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:861,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:867,1
    - Dst: _remote_debugging_BinaryWriter_write_sample_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:870,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: 874
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 874
    functionName: _remote_debugging_BinaryWriter_write_sample
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyLong_UnsignedLongLong_Converter
    - _remote_debugging_BinaryWriter_write_sample_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter_write_sample(PyObject *self, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_BinaryWriter_finalize_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 3
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: _remote_debugging_BinaryWriter_finalize
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryWriter_finalize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter_finalize(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_BinaryWriter_close_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 912
    functionName: _remote_debugging_BinaryWriter_close
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryWriter_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_BinaryWriter___enter___impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: _remote_debugging_BinaryWriter___enter__
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryWriter___enter___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter___enter__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:960,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:962,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:962,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:962,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:979,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:984,1
    - Dst: _remote_debugging_BinaryWriter___exit___impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1006,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: 1010
      start: 947
    functionDepth: 3
    functionLinenumber: 947
    functionLinenumberEnd: 1010
    functionName: _remote_debugging_BinaryWriter___exit__
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _remote_debugging_BinaryWriter___exit___impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter___exit__(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_BinaryWriter_get_stats_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1032
    functionName: _remote_debugging_BinaryWriter_get_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryWriter_get_stats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryWriter_get_stats(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1062,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1064,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1082,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1085,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1085,1
    - Dst: _remote_debugging_BinaryReader___init___impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1049
    functionDepth: 2
    functionLinenumber: 1049
    functionLinenumberEnd: 1095
    functionName: _remote_debugging_BinaryReader___init__
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _remote_debugging_BinaryReader___init___impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _remote_debugging_BinaryReader___init__(PyObject *self, PyObject
      *args, PyObject *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1131,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1133,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1133,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1150,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1154,1
    - Dst: _remote_debugging_BinaryReader_replay_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1165,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: 1169
      start: 1118
    functionDepth: 2
    functionLinenumber: 1118
    functionLinenumberEnd: 1169
    functionName: _remote_debugging_BinaryReader_replay
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _remote_debugging_BinaryReader_replay_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader_replay(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_BinaryReader_get_info_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1190
    functionName: _remote_debugging_BinaryReader_get_info
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryReader_get_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader_get_info(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_BinaryReader_get_stats_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1207
    functionDepth: 2
    functionLinenumber: 1207
    functionLinenumberEnd: 1211
    functionName: _remote_debugging_BinaryReader_get_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryReader_get_stats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader_get_stats(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_BinaryReader_close_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1229
    functionName: _remote_debugging_BinaryReader_close
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryReader_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_BinaryReader___enter___impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1247
    functionName: _remote_debugging_BinaryReader___enter__
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryReader___enter___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader___enter__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1277,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1279,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1279,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1279,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1296,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1301,1
    - Dst: _remote_debugging_BinaryReader___exit___impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1323,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: 1327
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1327
    functionName: _remote_debugging_BinaryReader___exit__
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_BinaryReader___exit___impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_BinaryReader___exit__(PyObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _remote_debugging_zstd_available_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1344
    functionDepth: 2
    functionLinenumber: 1344
    functionLinenumberEnd: 1348
    functionName: _remote_debugging_zstd_available
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_zstd_available_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_zstd_available(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1393,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1395,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1395,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1412,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1416,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1421,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1422,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1428,1
    - Dst: _remote_debugging_get_child_pids_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1433,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: 1437
      start: 1380
    functionDepth: 2
    functionLinenumber: 1380
    functionLinenumberEnd: 1437
    functionName: _remote_debugging_get_child_pids
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyErr_Occurred
    - _remote_debugging_get_child_pids_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_get_child_pids(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1464,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1466,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1485,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1490,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1491,1
    - Dst: _remote_debugging_is_python_process_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1494,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: 1498
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1498
    functionName: _remote_debugging_is_python_process
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - _remote_debugging_is_python_process_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_is_python_process(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1546,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1548,1
    - Dst: _Py_ID
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1548,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1565,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1569,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1574,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1575,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1581,1
    - Dst: _remote_debugging_get_gc_stats_impl
      Src: /src/cpython/Modules/_remote_debugging/clinic/module.c.h:1586,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: 1590
      start: 1533
    functionDepth: 4
    functionLinenumber: 1533
    functionLinenumberEnd: 1590
    functionName: _remote_debugging_get_gc_stats
    functionSourceFile: /src/cpython/Modules/_remote_debugging/clinic/module.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _remote_debugging_get_gc_stats_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _remote_debugging_get_gc_stats(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - 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:
    - PyArg_ParseTuple
    - PyFile_FromFd
    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:
    - PyArg_ParseTuple
    - PyFile_WriteString
    - RETURN_INT
    - NULLABLE
    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:
    - PyUnicode_FromString
    - PyEval_GetFuncName
    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:
    - PyUnicode_FromString
    - PyEval_GetFuncDesc
    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:
    - Py_XNewRef
    - PyEval_GetBuiltins
    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:
    - Py_XNewRef
    - PyEval_GetFrame
    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:
    - PyArg_ParseTuple
    - Py_SetRecursionLimit
    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:
    - PyLong_AsLongAndOverflow
    - PyLong_FromLong
    - PyNumber_Add
    - raiseTestError
    - PyNumber_Subtract
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_FromString
    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:
    - PyLong_FromLong
    - PyLong_FromLongLong
    - PyNumber_Add
    - raiseTestError
    - PyNumber_Subtract
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - Py_DECREF
    - PyLong_FromString
    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
    - PyLong_AsSize_t
    - raiseTestError
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - 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:
    - PyLong_AsUnsignedLongLongMask
    - raiseTestError
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    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
    - PyLong_AsDouble
    - raiseTestError
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    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
    - PyLong_FromLong
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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:
    - PyLong_FromDouble
    - PyArg_Parse
    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:
    - PyArg_ParseTuple
    - PyLong_FromString
    - Py_BuildValue
    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:
    - PyLong_FromLong
    - NULLABLE
    - PyLong_AsInt
    - PyErr_Occurred
    - 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:
    - PyLong_AsLong
    - PyLong_FromLong
    - PyErr_Occurred
    - NULLABLE
    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:
    - PyLong_AsLongAndOverflow
    - NULLABLE
    - Py_BuildValue
    - 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:
    - PyLong_FromUnsignedLong
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - 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:
    - PyLong_AsUnsignedLongMask
    - PyLong_FromUnsignedLong
    - PyErr_Occurred
    - 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:
    - PyLong_FromLongLong
    - PyErr_Occurred
    - 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:
    - NULLABLE
    - PyLong_AsLongLongAndOverflow
    - Py_BuildValue
    - PyErr_Occurred
    - 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:
    - PyLong_AsUnsignedLongLong
    - PyLong_FromUnsignedLongLong
    - PyErr_Occurred
    - 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:
    - PyLong_FromUnsignedLongLong
    - PyLong_AsUnsignedLongLongMask
    - PyErr_Occurred
    - 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:
    - PyLong_FromSsize_t
    - PyLong_AsSsize_t
    - PyErr_Occurred
    - 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:
    - PyLong_FromSize_t
    - PyErr_Occurred
    - PyLong_AsSize_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:
    - PyLong_AsDouble
    - PyFloat_FromDouble
    - PyErr_Occurred
    - 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:
    - Py_NewRef
    - PyLong_AsVoidPtr
    - PyErr_Occurred
    - 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:
    - PyLong_AsPid
    - PyLong_FromPid
    - PyErr_Occurred
    - NULLABLE
    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
    - PyLong_AsUInt32
    - NULLABLE
    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_AsInt64
    - PyLong_FromInt64
    - 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_AsUInt64
    - PyLong_FromUInt64
    - 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:
    - PyArg_ParseTuple
    - Py_GetConstant
    - PyErr_Occurred
    - assert
    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:
    - Py_GetConstantBorrowed
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - Py_NewRef
    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_False == Py_GetConstant(Py_CONSTANT_FALSE))
      pos:
        line_end: 56
        line_start: 56
        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_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: 13
        line_start: 13
        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("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: 15
        line_start: 15
        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("insect", "insert", 3) == 0)
      pos:
        line_end: 11
        line_start: 11
        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: 32
        line_start: 32
        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: 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("invert", "insert") == ('v' - 's'))
      pos:
        line_end: 40
        line_start: 40
        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
    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:
    - PyUnicode_FromString
    - PyTuple_SetItem
    - PyUnicode_InternFromString
    - PyObject_Vectorcall
    - Py_XDECREF
    - PyTuple_New
    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:
    - PyUnicode_FromString
    - PyObject_VectorcallMethod
    - PyTuple_SetItem
    - PyUnicode_InternFromString
    - Py_XDECREF
    - PyTuple_New
    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:
    - PyObject_GetTypeData
    - PyType_GetSlot
    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:
    - Py_DECREF
    - PyModule_AddFunctions
    - PyType_FromModuleAndSpec
    - PyModule_AddType
    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
    - PyLong_FromLong
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyComplex_FromDoubles
    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:
    - PyFloat_FromDouble
    - PyComplex_RealAsDouble
    - PyErr_Occurred
    - 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:
    - PyFloat_FromDouble
    - PyComplex_ImagAsDouble
    - PyErr_Occurred
    - NULLABLE
    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:
    - PySys_GetAttrString
    - PyArg_Parse
    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:
    - Py_FatalError
    - NULLABLE
    - PySys_GetOptionalAttr
    - PyErr_Occurred
    - assert
    - Py_NewRef
    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:
    - Py_FatalError
    - PySys_GetOptionalAttrString
    - PyArg_Parse
    - PyErr_Occurred
    - assert
    - Py_NewRef
    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:
    - Py_NewRef
    - PyArg_Parse
    - 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:
    - PyArg_ParseTuple
    - PySys_SetObject
    - RETURN_INT
    - NULLABLE
    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:
    - PySys_GetXOptions
    - Py_XNewRef
    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:
    - PyArg_ParseTuple
    - PyObject_GetAttr
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_GetAttrString
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    - PyObject_HasAttr
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_HasAttrString
    - PyLong_FromLong
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_SetAttr
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_SetAttrString
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_DelAttr
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_DelAttrString
    - RETURN_INT
    - NULLABLE
    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:
    - PyLong_FromLong
    - PyMapping_Check
    - NULLABLE
    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
    - PyMapping_Size
    - NULLABLE
    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:
    - RETURN_SIZE
    - PyMapping_Length
    - 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:
    - PyArg_ParseTuple
    - PyObject_GetItem
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyMapping_GetItemString
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyLong_FromLong
    - PyMapping_HasKey
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyMapping_HasKeyString
    - PyLong_FromLong
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyMapping_HasKeyWithError
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyMapping_HasKeyStringWithError
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_SetItem
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyMapping_SetItemString
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyObject_DelItem
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyMapping_DelItem
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyMapping_DelItemString
    - RETURN_INT
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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:
    - RETURN_SIZE
    - PySequence_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:
    - RETURN_SIZE
    - PySequence_Length
    - 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:
    - PyArg_ParseTuple
    - PySequence_Concat
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_Repeat
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_InPlaceConcat
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_InPlaceRepeat
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_GetItem
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_SetItem
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_DelItem
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_SetSlice
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_DelSlice
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - RETURN_SIZE
    - PySequence_Count
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_Contains
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - RETURN_SIZE
    - PySequence_Index
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySequence_Fast
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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:
    - PyLong_AsSsize_t
    - PyList_New
    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:
    - PyArg_ParseTuple
    - PyList_GetItem
    - Py_XNewRef
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyList_GetItemRef
    - NULLABLE
    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
    - RETURN_INT
    - NULLABLE
    - PyArg_ParseTuple
    - 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:
    - RETURN_INT
    - PyList_Insert
    - NULLABLE
    - PyArg_ParseTuple
    - Py_XNewRef
    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:
    - PyArg_ParseTuple
    - PyList_Append
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyList_GetSlice
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyList_SetSlice
    - RETURN_INT
    - NULLABLE
    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:
    - PyLong_FromLong
    - PyImport_GetMagicNumber
    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
    - Dst: Py_NewRef
      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:
    - PyUnicode_FromString
    - Py_NewRef
    - PyImport_GetMagicTag
    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:
    - assert
    - PyImport_GetModule
    - PyErr_Occurred
    - NULLABLE
    - Py_NewRef
    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:
    - PyArg_ParseTuple
    - PyImport_AddModule
    - Py_XNewRef
    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:
    - PyArg_ParseTuple
    - PyImport_AddModuleRef
    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:
    - PyArg_ParseTuple
    - PyImport_ImportModule
    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:
    - PyArg_ParseTuple
    - PyImport_ImportModuleNoBlock
    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:
    - PyArg_ParseTuple
    - PyImport_ImportModuleEx
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyImport_ImportModuleLevel
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyImport_ImportModuleLevelObject
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyImport_ImportFrozenModule
    - RETURN_INT
    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:
    - PyArg_ParseTuple
    - PyImport_ExecCodeModule
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyImport_ExecCodeModuleEx
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyImport_ExecCodeModuleWithPathnames
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyImport_ExecCodeModuleObject
    - NULLABLE
    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: 176
    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:
    - F_S_TO_PY
    - PyLong_FromLong
    - PyNumber_Negative
    - Py_INCREF
    - PyNumber_Rshift
    - F_PY_TO_U
    - Py_NewRef
    - PyNumber_Lshift
    - PyNumber_Subtract
    - PyErr_Clear
    - F_PY_TO_S
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - UNBIND
    - F_U_TO_PY
    - error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TESTNAME(PyObject *error(const char*))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:19,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:21,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:21,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - exporter
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: demo_getbuffer
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyObject_GetTypeData
    - Py_INCREF
    - PyBuffer_FillInfo
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int demo_getbuffer(PyObject *exporter, Py_buffer *view, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:33,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:35,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:35,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - exporter
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: demo_releasebuffer
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_WriteUnraisable
    - Py_TYPE
    - PyObject_GetTypeData
    linkageType: ''
    returnType: void
    signature: void demo_releasebuffer(PyObject *exporter, Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - o
    - key
    - v
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: demo_ass_subscript
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int demo_ass_subscript(PyObject *o, PyObject *key, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: demo_length
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t demo_length(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: binop_123
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *binop_123(PyObject* a, PyObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: binop_234
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *binop_234(PyObject* a, PyObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: binop_345
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *binop_345(PyObject* a, PyObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: binop_456
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *binop_456(PyObject* a, PyObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: binop_567
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *binop_567(PyObject* a, PyObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: binop_678
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *binop_678(PyObject* a, PyObject *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:71,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:86,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:87,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:88,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:89,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:90,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:91,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:92,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:93,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:94,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:95,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:96,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:97,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:98,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:99,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:100,1
    - Dst: PySlot_UINT64
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:101,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:103,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:104,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:105,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:106,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:107,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:109,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:110,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:112,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:113,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:115,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:116,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:118,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:119,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:120,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:122,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:123,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:124,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:125,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:126,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:127,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:128,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:129,1
    - Dst: PySlot_STATIC_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:130,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:134,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:135,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:136,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:137,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:138,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:139,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:140,1
    - Dst: PySlot_STATIC_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:141,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:145,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:146,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:147,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:148,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:152,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:153,1
    - Dst: PySlot_PTR
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:154,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:155,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:156,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:161,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:162,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:163,1
    - Dst: PySlot_PTR_STATIC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:164,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:168,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:169,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:170,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:171,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:172,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:175,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:176,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:177,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:178,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:179,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:180,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:181,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:182,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:183,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:184,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:185,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:194,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:195,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:196,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:197,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:198,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:199,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:200,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:201,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:202,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:203,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:204,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:205,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:206,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:217,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:218,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:219,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:220,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:224,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:225,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:226,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:227,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:243,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:244,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:245,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:246,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:266,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:267,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:268,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:269,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:272,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:273,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:276,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:285,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:286,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:287,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:288,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:289,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:290,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:291,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:292,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:293,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 299
    functionName: type_from_slots
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PySlot_SIZE
    - PySlot_STATIC_DATA
    - ENDCASE
    - PySlot_FUNC
    - CASE
    - PySlot_PTR
    - PyErr_Format
    - PyArg_ParseTuple
    - PySlot_UINT64
    - PySlot_DATA
    - PySlot_PTR_STATIC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_from_slots(PyObject* module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: CASE
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:305,1
    - Dst: PyType_FromSlots
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:308,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:309,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:310,1
    - Dst: PySlot_PTR_STATIC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: type_from_null_slot
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyType_FromSlots
    - PySlot_DATA
    - PySlot_PTR_STATIC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_from_null_slot(PyObject* module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:320,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: type_from_null_spec_slot
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyType_FromSpec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_from_null_spec_slot(PyObject* Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:335,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts:
    - condition: (def == NULL)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/cpython/Modules/_testlimitedcapi/slots.c
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: demo_create
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      demo_create(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddStringConstant
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: demo_exec
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    linkageType: ''
    returnType: int
    signature: int demo_exec(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:352,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:368,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:369,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:370,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:371,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:372,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:373,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:374,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:375,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:376,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:377,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:378,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:379,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:380,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:381,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:382,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:384,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:385,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:387,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:388,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:390,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:391,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:393,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:394,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:395,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:397,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:398,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:399,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:401,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:402,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:404,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:405,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:407,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:408,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:410,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:411,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:412,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:413,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:414,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:415,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:416,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:417,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:418,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:419,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:420,1
    - Dst: PySlot_PTR_STATIC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:421,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:422,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:423,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:424,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:425,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:426,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:429,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:430,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:431,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:432,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:433,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:434,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:435,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:436,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:437,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:446,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:447,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:448,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:449,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:450,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:451,1
    - Dst: PySlot_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:452,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:453,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:454,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:455,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:466,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:467,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:468,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:469,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:473,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:474,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:475,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:476,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:490,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:491,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:492,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:493,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:510,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:511,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:512,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:513,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:515,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:518,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:527,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:528,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:529,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:530,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:531,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:532,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:533,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:534,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:535,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:536,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:537,1
    - Dst: CASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:538,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:539,1
    - Dst: PySlot_FUNC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:540,1
    - Dst: ENDCASE
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:541,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:546,1
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 549
    functionName: module_from_slots
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PySlot_SIZE
    - ENDCASE
    - CASE
    - PyErr_Occurred
    - PyErr_Format
    - PyArg_ParseTuple
    - PySlot_FUNC
    - PySlot_DATA
    - PySlot_PTR_STATIC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_slots(PyObject* Py_UNUSED(module), PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 368
    functionName: CASE
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:574,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:577,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:578,1
    - Dst: PySlot_PTR_STATIC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: module_from_gil_slot
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    - PySlot_PTR_STATIC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_gil_slot(PyObject* Py_UNUSED(module), PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:589,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:597,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:598,1
    - Dst: PySlot_DATA
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:599,1
    - Dst: PySlot_PTR_STATIC
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 608
    functionName: module_from_null_slot
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyModule_FromSlotsAndSpec
    - PySlot_DATA
    - PySlot_PTR_STATIC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_from_null_slot(PyObject* Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/slots.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 629
    functionName: _PyTestLimitedCAPI_Init_Slots
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/slots.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_Slots(PyObject *m)
  - 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:
    - PyArg_ParseTuple
    - PyCodec_IncrementalEncoder
    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:
    - PyArg_ParseTuple
    - PyCodec_IncrementalDecoder
    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:
    - Py_DECREF
    - PyErr_SetString
    - PyUnicode_CompareWithASCIIString
    - PyUnicode_FromStringAndSize
    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_FromWideChar
    - PyUnicode_FromString
    - PyErr_SetString
    - PyUnicode_GetLength
    - PyUnicode_Compare
    - PyErr_Clear
    - PyErr_Occurred
    - Py_DECREF
    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
    - PyBytes_Size
    - PyUnicode_DecodeUTF8
    - PyUnicode_Check
    - PyUnicode_AsUTF8String
    - PyBytes_AsString
    - Py_DECREF
    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:
    - PyUnicode_WriteChar
    - Py_BuildValue
    - unicode_copy
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    - Py_DECREF
    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: (res == 0)
      pos:
        line_end: 171
        line_start: 171
        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
    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_WriteChar
    - PyUnicode_GetLength
    - assert
    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:
    - PyUnicode_Resize
    - PyUnicode_GetLength
    - PyUnicode_Check
    - Py_BuildValue
    - unicode_copy
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    - Py_XDECREF
    - unicode_fill
    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:
    - PyArg_ParseTuple
    - unicode_copy
    - PyUnicode_Append
    - NULLABLE
    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:
    - unicode_copy
    - NULLABLE
    - PyArg_ParseTuple
    - PyUnicode_AppendAndDel
    - 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:
    - PyArg_ParseTuple
    - PyUnicode_FromStringAndSize
    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:
    - PyUnicode_FromString
    - PyArg_Parse
    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:
    - PyArg_ParseTuple
    - PyUnicode_Substring
    - NULLABLE
    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:
    - RETURN_SIZE
    - PyUnicode_GetLength
    - 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:
    - PyArg_ParseTuple
    - PyUnicode_ReadChar
    - PyLong_FromUnsignedLong
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_FromEncodedObject
    - NULLABLE
    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:
    - PyUnicode_InternInPlace
    - Py_XINCREF
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyUnicode_FromWideChar
    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:
    - PyUnicode_FromWideChar
    - PyMem_New
    - PyErr_NoMemory
    - Py_BuildValue
    - PyUnicode_AsWideChar
    - NULLABLE
    - PyArg_ParseTuple
    - PyMem_Free
    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:
    - PyArg_ParseTuple
    - RETURN_SIZE
    - PyUnicode_AsWideChar
    - NULLABLE
    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:
    - PyUnicode_FromWideChar
    - NULLABLE
    - Py_BuildValue
    - PyMem_Free
    - assert
    - PyArg_ParseTuple
    - 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:
    - PyUnicode_FromWideChar
    - PyMem_Free
    - NULLABLE
    - PyArg_ParseTuple
    - 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:
    - PyArg_ParseTuple
    - PyUnicode_FromOrdinal
    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:
    - NULLABLE
    - Py_BuildValue
    - PyUnicode_AsUTF8AndSize
    - assert
    - PyArg_ParseTuple
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyUnicode_AsUTF8AndSize
    - NULLABLE
    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:
    - PyUnicode_GetDefaultEncoding
    - PyBytes_FromString
    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:
    - PyArg_ParseTuple
    - PyUnicode_Decode
    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:
    - PyArg_ParseTuple
    - PyUnicode_AsEncodedString
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeUTF7
    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:
    - PyArg_ParseTuple
    - assert
    - Py_BuildValue
    - PyUnicode_DecodeUTF7Stateful
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeUTF8
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeUTF8Stateful
    - Py_BuildValue
    - assert
    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:
    - PyUnicode_AsUTF8String
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeUTF32
    - Py_BuildValue
    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:
    - PyArg_ParseTuple
    - assert
    - Py_BuildValue
    - PyUnicode_DecodeUTF32Stateful
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeUTF16
    - Py_BuildValue
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeUTF16Stateful
    - Py_BuildValue
    - assert
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeUnicodeEscape
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeRawUnicodeEscape
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeLatin1
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeASCII
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeCharmap
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_AsCharmapString
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeMBCS
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeMBCSStateful
    - Py_BuildValue
    - assert
    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:
    - PyArg_ParseTuple
    - Py_BuildValue
    - PyUnicode_DecodeCodePageStateful
    - assert
    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:
    - PyUnicode_AsMBCSString
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_EncodeCodePage
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeLocaleAndSize
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeLocale
    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:
    - PyArg_ParseTuple
    - PyUnicode_EncodeLocale
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeFSDefault
    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:
    - PyArg_ParseTuple
    - PyUnicode_DecodeFSDefaultAndSize
    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:
    - PyUnicode_EncodeFSDefault
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Concat
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Split
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_RSplit
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Splitlines
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Partition
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_RPartition
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Translate
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Join
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Count
    - RETURN_SIZE
    - NULLABLE
    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:
    - NULLABLE
    - PyUnicode_Find
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    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:
    - PyArg_ParseTuple
    - PyUnicode_Tailmatch
    - RETURN_SIZE
    - NULLABLE
    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
    - PyUnicode_FindChar
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    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:
    - PyArg_ParseTuple
    - PyUnicode_Replace
    - NULLABLE
    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:
    - PyLong_FromLong
    - NULLABLE
    - PyUnicode_Compare
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    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:
    - PyLong_FromLong
    - PyUnicode_CompareWithASCIIString
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    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:
    - PyLong_FromLong
    - NULLABLE
    - PyUnicode_EqualToUTF8
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    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:
    - PyLong_FromLong
    - NULLABLE
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - PyUnicode_EqualToUTF8AndSize
    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:
    - PyArg_ParseTuple
    - PyUnicode_RichCompare
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Format
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyUnicode_Contains
    - RETURN_INT
    - NULLABLE
    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_Clear
    - PyErr_ExceptionMatches
    - 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:
    - PyUnicode_FromString
    - CHECK_FORMAT_0
    - CHECK_FORMAT_2
    - Py_XDECREF
    - CHECK_FORMAT_1
    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:
    - PyArg_ParseTuple
    - PyUnicode_Equal
    - RETURN_INT
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:35,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: dict_clear
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_clear(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:43,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    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:51,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:54,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:55,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:56,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: dict_contains
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDict_Contains
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_contains(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:62,1
    - Dst: RETURN_SIZE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:63,1
    - Dst: PyDict_Size
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: dict_size
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - RETURN_SIZE
    - PyDict_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:70,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:73,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:74,1
    - Dst: PyDict_GetItem
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:75,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:77,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:80,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 83
    functionName: dict_getitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItem
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    - 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:91,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:94,1
    - Dst: PyDict_GetItemString
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:95,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:97,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:100,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: dict_getitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemString
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    - Py_NewRef
    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:109,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:112,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:113,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:114,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:116,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:119,1
    - Dst: Py_NewRef
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 122
    functionName: dict_getitemwitherror
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - NULLABLE
    - PyArg_ParseTuple
    - Py_NewRef
    - PyDict_GetItemWithError
    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:129,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:132,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:133,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:134,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:135,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: dict_setitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDict_SetItem
    - RETURN_INT
    - NULLABLE
    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:144,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:147,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:148,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:149,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: dict_setitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDict_SetItemString
    - RETURN_INT
    - NULLABLE
    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:156,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:159,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:160,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:161,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: dict_delitem
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDict_DelItem
    - RETURN_INT
    - NULLABLE
    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:170,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:173,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:174,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: dict_delitemstring
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDict_DelItemString
    - RETURN_INT
    - NULLABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_delitemstring(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:180,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    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:187,1
    - Dst: PyDict_Values
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    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:194,1
    - Dst: PyDict_Items
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    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:203,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:206,1
    - Dst: PyDict_Next
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:207,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:209,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:211,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key == UNINITIALIZED_PTR)
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/cpython/Modules/_testlimitedcapi/dict.c
    - condition: (value == UNINITIALIZED_PTR)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Modules/_testlimitedcapi/dict.c
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: dict_next
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - NULLABLE
    - PyDict_Next
    - Py_BuildValue
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    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:224,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:227,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:228,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:229,1
    - Dst: PyDict_Merge
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: dict_merge
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDict_Merge
    - RETURN_INT
    - NULLABLE
    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:236,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:239,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:240,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:241,1
    - Dst: PyDict_Update
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 242
    functionName: dict_update
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDict_Update
    - RETURN_INT
    - NULLABLE
    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:249,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:252,1
    - Dst: NULLABLE
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:253,1
    - Dst: RETURN_INT
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:254,1
    - Dst: PyDict_MergeFromSeq2
      Src: /src/cpython/Modules/_testlimitedcapi/dict.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: dict_mergefromseq2
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/dict.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDict_MergeFromSeq2
    - RETURN_INT
    - NULLABLE
    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:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 292
    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: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:58,1
    - Dst: PyObject_GetTypeData_DuringGC
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:58,1
    - Dst: PyType_GetTypeDataSize
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:63,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:68,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:73,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:74,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:75,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: "(data_ptr == PyObject_GetTypeData_DuringGC(instance,\n                                                     (PyTypeObject
        *)sub))"
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    constantsTouched: []
    func_position:
      end: 77
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 77
    functionName: make_sized_heaptypes
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyType_FromMetaclass
    - PyObject_GetTypeData_DuringGC
    - PyObject_GetTypeData
    - PyType_GetTypeDataSize
    - Py_BuildValue
    - PyObject_CallNoArgs
    - assert
    - PyArg_ParseTuple
    - Py_XDECREF
    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:84,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:85,1
    - Dst: PyObject_GetTypeData_DuringGC
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:85,1
    - Dst: PyType_GetTypeDataSize
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:89,1
    - Dst: memset
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - defining_class
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (data_ptr == PyObject_GetTypeData_DuringGC(self, defining_class))
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: var_heaptype_set_data_to_3s
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyType_GetTypeDataSize
    - PyObject_GetTypeData
    - PyObject_GetTypeData_DuringGC
    - memset
    - assert
    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:101,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:102,1
    - Dst: PyObject_GetTypeData_DuringGC
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:102,1
    - Dst: PyType_GetTypeDataSize
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:106,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:110,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:
    - condition: (data_ptr == PyObject_GetTypeData_DuringGC(self, defining_class))
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: var_heaptype_get_data
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyType_GetTypeDataSize
    - PyObject_GetTypeData
    - PyObject_GetTypeData_DuringGC
    - assert
    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:130,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 151
    functionName: subclass_var_heaptype
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyType_FromMetaclass
    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:161,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 182
    functionName: subclass_heaptype
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyType_FromMetaclass
    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:187,1
    - Dst: Py_TYPE
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:187,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:189,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:190,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:195,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:199,1
    - Dst: strcmp
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:202,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:203,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 211
    functionName: heaptype_with_member_extract_and_check_memb
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_SetString
    - PyErr_Occurred
    - PyType_GetSlot
    - 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:216,1
    - Dst: PyMember_GetOne
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: heaptype_with_member_get_memb
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - heaptype_with_member_extract_and_check_memb
    - PyMember_GetOne
    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:223,1
    - Dst: PyMember_SetOne
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 229
    functionName: heaptype_with_member_set_memb
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyMember_SetOne
    - heaptype_with_member_extract_and_check_memb
    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:234,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: get_memb_offset
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - heaptype_with_member_extract_and_check_memb
    - PyLong_FromSsize_t
    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:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 243
    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:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 254
    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:264,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:265,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:266,1
    - Dst: PyObject_GetTypeData_DuringGC
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:266,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:267,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (data == PyObject_GetTypeData_DuringGC(self, tp))
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: heapctypewithrelativedict_dealloc
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyObject_GetTypeData_DuringGC
    - PyObject_GetTypeData
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyObject_Free
    - 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:303,1
    - Dst: PyObject_GetTypeData
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:304,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:305,1
    - Dst: PyObject_GetTypeData_DuringGC
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:305,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:307,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:309,1
    - Dst: PyObject_Free
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (data == PyObject_GetTypeData_DuringGC(self, tp))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    constantsTouched: []
    func_position:
      end: 312
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 312
    functionName: heapctypewithrelativeweakref_dealloc
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyObject_GetTypeData_DuringGC
    - PyObject_GetTypeData
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyObject_Free
    - 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:373,1
    - Dst: PyType_FromMetaclass
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:396,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:398,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: 400
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 400
    functionName: make_heaptype_with_member_impl
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 0
    functionsReached:
    - PyType_FromMetaclass
    - Py_XDECREF
    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:408,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:409,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:410,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:411,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:412,1
    - Dst: assert
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:415,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: 407
        line_start: 407
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: (ALIGNOF_MAX_ALIGN_T >= _Alignof(void*))
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: (ALIGNOF_MAX_ALIGN_T >= _Alignof(long long))
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: (ALIGNOF_MAX_ALIGN_T >= _Alignof(void (*)(void)))
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: (ALIGNOF_MAX_ALIGN_T >= _Alignof(long double))
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    - condition: ((ALIGNOF_MAX_ALIGN_T & (ALIGNOF_MAX_ALIGN_T - 1)) == 0)
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    constantsTouched: []
    func_position:
      end: 418
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 418
    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:432,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:436,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:452,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:459,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:461,1
    - Dst: PyModule_AddType
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:468,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:470,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c:473,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 478
    functionName: _PyTestLimitedCAPI_Init_HeaptypeRelative
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/heaptype_relative.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    - PyModule_AddIntMacro
    - Py_DECREF
    - PyType_FromSpec
    - PyModule_AddType
    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: 449
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 449
    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:
    - PyLong_FromLong
    - PyFloat_Check
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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:
    - PyFloat_FromDouble
    - PyArg_Parse
    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:
    - PyFloat_AsDouble
    - PyFloat_FromDouble
    - PyErr_Occurred
    - 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_GetMax
    - PyFloat_FromDouble
    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_GetMin
    - PyFloat_FromDouble
    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
    - PyLong_FromLong
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    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:
    - PyBytes_FromString
    - PyArg_Parse
    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:
    - RETURN_SIZE
    - PyBytes_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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyBytes_AsStringAndSize
    - Py_BuildValue
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyBytes_FromStringAndSize
    - PyBytes_AsStringAndSize
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyBytes_Repr
    - NULLABLE
    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: (left != NULL)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/cpython/Modules/_testlimitedcapi/bytes.c
    - condition: (PyBytes_CheckExact(left))
      pos:
        line_end: 161
        line_start: 161
        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:
    - NULLABLE
    - PyBytes_Size
    - PyBytes_Concat
    - PyBytes_FromStringAndSize
    - PyBytes_CheckExact
    - PyBytes_AsString
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - Py_XINCREF
    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: (left != NULL)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Modules/_testlimitedcapi/bytes.c
    - condition: (PyBytes_CheckExact(left))
      pos:
        line_end: 192
        line_start: 192
        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
    - PyBytes_Size
    - PyBytes_FromStringAndSize
    - PyBytes_ConcatAndDel
    - PyBytes_CheckExact
    - PyBytes_AsString
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - Py_XINCREF
    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:
    - PyArg_ParseTuple
    - PyBytes_DecodeEscape
    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
    - PyLong_FromLong
    - NULLABLE
    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
    - PyLong_FromLong
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyByteArray_FromStringAndSize
    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:
    - PyByteArray_Size
    - RETURN_SIZE
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyByteArray_AsString
    - PyByteArray_FromStringAndSize
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyByteArray_Concat
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyByteArray_Resize
    - RETURN_INT
    - NULLABLE
    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:
    - PyLong_FromLong
    - PyTuple_Check
    - NULLABLE
    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:
    - PyLong_FromLong
    - PyTuple_CheckExact
    - NULLABLE
    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:
    - PyLong_AsSsize_t
    - PyTuple_New
    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:
    - PyArg_ParseTuple
    - PyTuple_Pack
    - NULLABLE
    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
    - PyTuple_Size
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyTuple_GetItem
    - Py_XNewRef
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PyTuple_GetSlice
    - NULLABLE
    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_Size
    - PyTuple_SetItem
    - Py_XNewRef
    - PyTuple_GetItem
    - NULLABLE
    - PyArg_ParseTuple
    - Py_DECREF
    - PyTuple_CheckExact
    - PyTuple_New
    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:
    - PyFrozenSet_CheckExact
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySet_New
    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:
    - PyArg_ParseTuple
    - PyFrozenSet_New
    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:
    - PyArg_ParseTuple
    - PySet_Contains
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySet_Add
    - RETURN_INT
    - NULLABLE
    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:
    - PyArg_ParseTuple
    - PySet_Discard
    - RETURN_INT
    - NULLABLE
    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:
    - PyLong_FromLong
    - PySet_Add
    - PyErr_SetString
    - PySet_Contains
    - Py_XDECREF
    - Py_DECREF
    - PyFrozenSet_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_frozenset_add_in_capi(PyObject *self, PyObject *Py_UNUSED(obj))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: raiseTestError
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 12
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raiseTestError(const char* test_name, const char* msg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:169,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:174,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:178,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: test_frozenset_add_in_capi_tracking_immutable
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - PyObject_GC_IsTracked
    - raiseTestError
    - Py_DECREF
    - PyFrozenSet_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_frozenset_add_in_capi_tracking_immutable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:190,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:195,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:201,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:202,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:208,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:210,1
    - Dst: raiseTestError
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:218,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 221
    functionName: test_frozenset_add_in_capi_tracking
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PySet_Add
    - PyObject_GC_IsTracked
    - raiseTestError
    - Py_XDECREF
    - Py_DECREF
    - PyFrozenSet_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_frozenset_add_in_capi_tracking(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:228,1
    - Dst: PySet_New
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:232,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:239,1
    - Dst: PySet_Add
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:246,1
    - Dst: PySet_Contains
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:254,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:257,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:258,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(obj)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 267
    functionName: test_set_contains_does_not_convert_unhashable_key
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/set.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PySet_Add
    - PyErr_SetString
    - PySet_New
    - PySet_Contains
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_set_contains_does_not_convert_unhashable_key(PyObject *self, PyObject *Py_UNUSED(obj))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/set.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Modules/_testlimitedcapi/threadstate.c:9,1
    - Dst: PyThreadState_SetAsyncExc
      Src: /src/cpython/Modules/_testlimitedcapi/threadstate.c:12,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Modules/_testlimitedcapi/threadstate.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 14
    functionName: threadstate_set_async_exc
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/threadstate.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    - PyThreadState_SetAsyncExc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      threadstate_set_async_exc(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Modules/_testlimitedcapi/threadstate.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: _PyTestLimitedCAPI_Init_ThreadState
    functionSourceFile: /src/cpython/Modules/_testlimitedcapi/threadstate.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    linkageType: ''
    returnType: int
    signature: int _PyTestLimitedCAPI_Init_ThreadState(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:
    - Py_PACK_FULL_VERSION
    - PyLong_FromUnsignedLong
    - assert
    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:
    - PyLong_AsInt
    - _testcapi_pyfile_getline_impl
    - PyErr_Occurred
    - 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:
    - PyLong_AsInt
    - PyErr_Occurred
    - _testcapi_pyfile_writeobject_impl
    - 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:
    - PyLong_AsInt
    - _testlimitedcapi_pack_full_version_impl
    - PyErr_Occurred
    - 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:
    - PyLong_AsInt
    - _testlimitedcapi_pack_version_impl
    - PyErr_Occurred
    - 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
    - malloc
    - strlen
    - dladdr
    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:
    - posix_spawnattr_setbinpref_np
    - posix_spawnattr_setflags
    - err
    - exit
    - fprintf
    - posix_spawnattr_init
    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:
    - get_python_path
    - strrchr
    - setenv
    - posix_spawn
    - execve
    - strlcat
    - _NSGetExecutablePath
    - err
    - realpath
    - setup_spawnattr
    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_New
    - _PyObject_GC_TRACK
    - PyErr_SetString
    - _Py_FREELIST_POP
    - PyErr_Format
    - Py_XNewRef
    - Py_NewRef
    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:
    - PyErr_BadInternalCall
    - PyCFunction_GET_FUNCTION
    - PyCFunction_Check
    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:
    - PyErr_BadInternalCall
    - PyCFunction_GET_SELF
    - PyCFunction_Check
    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:
    - PyErr_BadInternalCall
    - PyCFunction_GET_FLAGS
    - PyCFunction_Check
    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:
    - PyErr_BadInternalCall
    - PyCFunction_GET_CLASS
    - PyCFunction_Check
    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:
    - PyCFunction_GET_CLASS
    - assert
    - Py_IS_TYPE
    - _PyCFunctionObject_CAST
    - Py_XDECREF
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - _Py_FREELIST_FREE
    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:
    - PyUnicode_FromString
    - _PyEval_GetBuiltin
    - _PyCFunctionObject_CAST
    - Py_BuildValue
    - PyModule_Check
    - _Py_ID
    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:
    - _PyCFunctionObject_CAST
    - _PyType_GetDocFromInternalDoc
    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:
    - PyUnicode_FromString
    - PyType_Check
    - PyErr_SetString
    - _PyCFunctionObject_CAST
    - PyModule_Check
    - PyObject_GetAttr
    - PyUnicode_Check
    - PyUnicode_FromFormat
    - Py_XDECREF
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    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:
    - Py_NewRef
    - PyCFunction_GET_SELF
    - _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:
    - Py_TYPE
    - PyUnicode_FromFormat
    - _PyCFunctionObject_CAST
    - PyModule_Check
    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:
    - Py_NewRef
    - PyCFunction_Check
    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
    - _PyCFunctionObject_CAST
    - PyObject_GenericHash
    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:
    - _PyErr_Format
    - _PyErr_Occurred
    - PyCFunction_Check
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyObject_FunctionStr
    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:
    - PyCFunction_GET_FUNCTION
    - _Py_EnterRecursiveCallTstate
    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:
    - meth
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - PyCFunction_GET_SELF
    - cfunction_check_kwargs
    - cfunction_enter_call
    - 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:
    - meth
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - PyCFunction_GET_SELF
    - cfunction_enter_call
    - 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:
    - meth
    - PyCFunction_GET_CLASS
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - PyCFunction_GET_SELF
    - cfunction_enter_call
    - 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:
    - _PyErr_Format
    - _PyCFunction_TrampolineCall
    - cfunction_enter_call
    - PyVectorcall_NARGS
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - PyCFunction_GET_SELF
    - cfunction_check_kwargs
    - Py_DECREF
    - _PyObject_FunctionStr
    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:
    - _PyErr_Format
    - _PyCFunction_TrampolineCall
    - cfunction_enter_call
    - PyVectorcall_NARGS
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - PyCFunction_GET_SELF
    - cfunction_check_kwargs
    - Py_DECREF
    - _PyObject_FunctionStr
    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:
    - _PyErr_Format
    - PyCFunction_GET_FUNCTION
    - _PyCFunction_TrampolineCall
    - PyDict_GET_SIZE
    - _Py_CheckFunctionResult
    - PyVectorcall_Call
    - _PyErr_Occurred
    - _PyThreadState_GET
    - PyCFunction_GET_FLAGS
    - PyDict_Check
    - PyCFunction_GET_SELF
    - _PyCFunctionWithKeywords_CAST
    - assert
    - _PyCFunctionWithKeywords_TrampolineCall
    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: 1
    functionsReached:
    - PyObject_GC_New
    - Py_XNewRef
    - _PyObject_GC_TRACK
    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_NoKeywords
    - PyCell_New
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCell_Check
      Src: /src/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:
    - PyErr_BadInternalCall
    - PyCell_GetRef
    - PyCell_Check
    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:
    - PyErr_BadInternalCall
    - Py_XNewRef
    - PyCell_Check
    - PyCell_SetTakeRef
    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:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - _PyCell_CAST
    - Py_XDECREF
    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:
    - PyCell_GetRef
    - PyCell_Check
    - Py_XDECREF
    - assert
    - cell_compare_impl
    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:
    - PyCell_GetRef
    - Py_DECREF
    - PyUnicode_FromFormat
    - Py_TYPE
    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:
    - Py_CLEAR
    - _PyCell_CAST
    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:
    - PyCell_GetRef
    - PyErr_SetString
    - _PyCell_CAST
    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:
    - _PyCell_CAST
    - PyCell_SetTakeRef
    - Py_XINCREF
    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:
    - GET_WEAKREFS_LISTPTR
    - UNLOCK_WEAKREFS
    - _PyType_SUPPORTS_WEAKREFS
    - LOCK_WEAKREFS
    - Py_TYPE
    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
    - Py_XNewRef
    - WEAKREF_LIST_LOCK
    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:
    - LOCK_WEAKREFS_FOR_WR
    - Py_XDECREF
    - clear_weakref_lock_held
    - UNLOCK_WEAKREFS_FOR_WR
    - _PyWeakref_CAST
    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
    - PyWeakref_Check
    - assert
    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:
    - PyObject_GC_UnTrack
    - clear_weakref
    - Py_TYPE
    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:
    - Py_VISIT
    - _PyWeakref_CAST
    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:
    - clear_weakref_lock_held
    - _PyWeakref_CAST
    - 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:
    - _PyArg_CheckPositional
    - _PyWeakref_GET_REF
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    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:
    - Py_DECREF
    - PyObject_Hash
    - PyErr_SetString
    - _PyWeakref_GET_REF
    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:
    - weakref_hash_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - _PyWeakref_CAST
    - Py_END_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:
    - _PyObject_LookupSpecial
    - PyUnicode_Check
    - PyUnicode_FromFormat
    - _PyWeakref_GET_REF
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    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:
    - _PyWeakref_GET_REF
    - PyObject_RichCompare
    - Py_XDECREF
    - Py_DECREF
    - PyWeakref_Check
    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_proxy
    - is_basic_ref
    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
    - is_basic_proxy
    - is_basic_ref
    - insert_after
    - insert_head
    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:
    - init_weakref
    - PyTypeObject*::tp_alloc
    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:
    - allocate_weakref
    - GET_WEAKREFS_LISTPTR
    - UNLOCK_WEAKREFS
    - _PyType_SUPPORTS_WEAKREFS
    - try_reuse_basic_ref
    - insert_weakref
    - PyErr_Format
    - LOCK_WEAKREFS
    - Py_TYPE
    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:
    - Py_DECREF
    - _PyWeakref_GET_REF
    - PyUnicode_FromFormat
    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:
    - Py_DECREF
    - PyObject_SetAttr
    - _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:
    - Py_DECREF
    - PyObject_RichCompare
    - UNWRAP
    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:
    - Py_DECREF
    - _PyWeakref_GET_REF
    - PyObject_IsTrue
    - 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:
    - PyObject_GC_UnTrack
    - clear_weakref
    - PyObject_GC_Del
    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:
    - Py_DECREF
    - PySequence_Contains
    - _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:
    - Py_DECREF
    - PyObject_Length
    - _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:
    - PyObject_DelItem
    - _PyWeakref_GET_REF
    - Py_DECREF
    - PyObject_SetItem
    - proxy_check_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
    - _PyWeakref_GET_REF
    - Py_DECREF
    - 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:
    - PyIter_Check
    - _PyWeakref_GET_REF
    - PyErr_Format
    - Py_DECREF
    - PyIter_Next
    - proxy_check_ref
    - 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: 8
    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:
    - PyCallable_Check
    - get_or_create_weakref
    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: 1
    functionsReached:
    - PyErr_BadInternalCall
    - _PyWeakref_IS_DEAD
    - PyWeakref_Check
    - PyErr_Format
    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_Check
    - _PyWeakref_GET_REF
    linkageType: ''
    returnType: int
    signature: int PyWeakref_GetRef(PyObject *ref, PyObject **pobj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_Check
      Src: /src/cpython/Objects/weakrefobject.c:971,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/weakrefobject.c:972,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Objects/weakrefobject.c:975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 981
    functionName: PyWeakref_GetObject
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - _PyWeakref_GET_REF
    - PyWeakref_Check
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void PyWeakref_GetObject(PyObject *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/weakrefobject.c:989,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/weakrefobject.c:992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - callback
    argTypes:
    - PyWeakReference*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 998
    functionName: handle_callback
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    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:1012,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:1012,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/weakrefobject.c:1013,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/weakrefobject.c:1015,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/weakrefobject.c:1019,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Objects/weakrefobject.c:1020,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1029,1
    - Dst: is_basic_ref_or_proxy
      Src: /src/cpython/Objects/weakrefobject.c:1030,1
    - Dst: clear_weakref_lock_held
      Src: /src/cpython/Objects/weakrefobject.c:1032,1
    - Dst: assert
      Src: /src/cpython/Objects/weakrefobject.c:1033,1
    - Dst: is_basic_ref_or_proxy
      Src: /src/cpython/Objects/weakrefobject.c:1035,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1036,1
    - Dst: _PyWeakref_GetWeakrefCount
      Src: /src/cpython/Objects/weakrefobject.c:1040,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/weakrefobject.c:1045,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/weakrefobject.c:1046,1
    - Dst: _PyWeakref_ClearWeakRefsNoCallbacks
      Src: /src/cpython/Objects/weakrefobject.c:1048,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/weakrefobject.c:1049,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/weakrefobject.c:1051,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1058,1
    - Dst: clear_weakref_lock_held
      Src: /src/cpython/Objects/weakrefobject.c:1061,1
    - Dst: _Py_TryIncref
      Src: /src/cpython/Objects/weakrefobject.c:1062,1
    - Dst: assert
      Src: /src/cpython/Objects/weakrefobject.c:1063,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/weakrefobject.c:1064,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/weakrefobject.c:1065,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1071,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/weakrefobject.c:1073,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/weakrefobject.c:1077,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/weakrefobject.c:1079,1
    - Dst: handle_callback
      Src: /src/cpython/Objects/weakrefobject.c:1080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/weakrefobject.c:1084,1
    - Dst: assert
      Src: /src/cpython/Objects/weakrefobject.c:1086,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/weakrefobject.c:1086,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/weakrefobject.c:1087,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - object
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (callback == NULL)
      pos:
        line_end: 1032
        line_start: 1032
        source_file: /src/cpython/Objects/weakrefobject.c
    - condition: (num_items / 2 < num_weakrefs)
      pos:
        line_end: 1062
        line_start: 1062
        source_file: /src/cpython/Objects/weakrefobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1085
        line_start: 1085
        source_file: /src/cpython/Objects/weakrefobject.c
    constantsTouched: []
    func_position:
      end: 1088
      start: 1006
    functionDepth: 3
    functionLinenumber: 1006
    functionLinenumberEnd: 1088
    functionName: PyObject_ClearWeakRefs
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 10
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyWeakref_ClearWeakRefsNoCallbacks
    - handle_callback
    - _PyType_SUPPORTS_WEAKREFS
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - assert
    - LOCK_WEAKREFS
    - Py_TYPE
    - GET_WEAKREFS_LISTPTR
    - Py_XDECREF
    - is_basic_ref_or_proxy
    - UNLOCK_WEAKREFS
    - PyErr_BadInternalCall
    - Py_REFCNT
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyTuple_New
    - FT_ATOMIC_LOAD_PTR
    - _Py_TryIncref
    - _PyWeakref_GetWeakrefCount
    - clear_weakref_lock_held
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void PyObject_ClearWeakRefs(PyObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1093,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/weakrefobject.c:1093,1
    - Dst: _PyWeakref_ClearWeakRefsNoCallbacks
      Src: /src/cpython/Objects/weakrefobject.c:1094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1096
    functionName: PyUnstable_Object_ClearWeakRefsNoCallbacks
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 1
    functionsReached:
    - _PyType_SUPPORTS_WEAKREFS
    - _PyWeakref_ClearWeakRefsNoCallbacks
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyUnstable_Object_ClearWeakRefsNoCallbacks(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/weakrefobject.c:1107,1
    - Dst: _PyStaticType_GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/weakrefobject.c:1108,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Objects/weakrefobject.c:1112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - type
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1104
    functionDepth: 3
    functionLinenumber: 1104
    functionLinenumberEnd: 1114
    functionName: _PyStaticType_ClearWeakRefs
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_GET_WEAKREFS_LISTPTR
    - _PyWeakref_ClearRef
    - _PyStaticType_GetState
    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:1123,1
    - Dst: LOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1124,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Objects/weakrefobject.c:1126,1
    - Dst: UNLOCK_WEAKREFS
      Src: /src/cpython/Objects/weakrefobject.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1116
    functionDepth: 3
    functionLinenumber: 1116
    functionLinenumberEnd: 1129
    functionName: _PyWeakref_ClearWeakRefsNoCallbacks
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 2
    functionsReached:
    - _PyWeakref_ClearRef
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - UNLOCK_WEAKREFS
    - LOCK_WEAKREFS
    linkageType: ''
    returnType: void
    signature: void _PyWeakref_ClearWeakRefsNoCallbacks(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWeakref_IS_DEAD
      Src: /src/cpython/Objects/weakrefobject.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - weakref
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1135
    functionName: _PyWeakref_IsDead
    functionSourceFile: /src/cpython/Objects/weakrefobject.c
    functionUses: 0
    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_AsUTF8AndSize
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    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:
    - PyObject_GC_New
    - Py_NewRef
    - PyObject_GC_Track
    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:
    - PyObject_GC_UnTrack
    - Py_TYPE
    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:
    - _PyType_Name
    - interpolationobject_CAST
    - PyUnicode_FromFormat
    - Py_TYPE
    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:
    - interpolationobject_CAST
    - Py_TYPE
    - Py_BuildValue
    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
    - _PyType_GetDict
    - Py_BuildValue
    - PyDict_SetItemString
    - _PyStatus_ERR
    - Py_DECREF
    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: 1
    functionsReached:
    - PyObject_GC_New
    - PyErr_SetString
    - _Py_LATIN1_CHR
    - Py_DECREF
    - Py_NewRef
    - PyObject_GC_Track
    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:
    - interpolationobject_CAST
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyInterpolation_GetValueRef(PyObject *interpolation)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/cpython/Objects/object.c:55,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Objects/object.c:55,1
    - Dst: CHECK
      Src: /src/cpython/Objects/object.c:56,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:56,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/object.c:58,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:58,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:60,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/object.c:61,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/object.c:63,1
    - Dst: _PyDict_CheckConsistency
      Src: /src/cpython/Objects/object.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: _PyObject_CheckConsistency
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - _PyType_CheckConsistency
    - _PyObject_IsFreed
    - PyUnicode_Check
    - _PyDict_CheckConsistency
    - Py_REFCNT
    - CHECK
    - _PyUnicode_CheckConsistency
    - Py_TYPE
    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: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    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: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    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:95,1
    - Dst: REFTOTAL
      Src: /src/cpython/Objects/object.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - n
    argTypes:
    - PyThreadState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 99
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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:128,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/object.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: get_reftotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFTOTAL
    - _Py_atomic_load_ssize_relaxed
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    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:145,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Objects/object.c:146,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Objects/object.c:147,1
    - Dst: get_reftotal
      Src: /src/cpython/Objects/object.c:148,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Objects/object.c:150,1
    - Dst: get_legacy_reftotal
      Src: /src/cpython/Objects/object.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 158
    functionName: get_global_reftotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - HEAD_LOCK
    - PyInterpreterState_Next
    - get_legacy_reftotal
    - PyInterpreterState_Head
    - get_reftotal
    - HEAD_UNLOCK
    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:165,1
    - Dst: get_global_reftotal
      Src: /src/cpython/Objects/object.c:167,1
    - Dst: _Py_GetGlobalAllocatedBlocks
      Src: /src/cpython/Objects/object.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 170
    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: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    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:186,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/object.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 190
    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:195,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:197,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:197,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/object.c:197,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:206,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Objects/object.c:206,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 213
    functionName: refchain_init
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    - REFCHAIN
    - _Py_hashtable_new_full
    - 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:218,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:218,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Objects/object.c:219,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:219,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 222
    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:227,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - obj
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: _PyRefchain_IsTraced
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_get
    - REFCHAIN
    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:234,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:234,1
    - Dst: Py_FatalError
      Src: /src/cpython/Objects/object.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - obj
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: _PyRefchain_Trace
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - REFCHAIN
    - _Py_hashtable_set
    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:245,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:245,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - obj
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts:
    - condition: (value == REFCHAIN_VALUE)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: _PyRefchain_Remove
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFCHAIN
    - _Py_hashtable_steal
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyRefchain_Remove(PyInterpreterState *interp, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/object.c:263,1
    - Dst: _PyRefchain_IsTraced
      Src: /src/cpython/Objects/object.c:264,1
    - Dst: _PyRefchain_Trace
      Src: /src/cpython/Objects/object.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: _Py_AddToAllObjects
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyRefchain_Trace
    - _PyRefchain_IsTraced
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void _Py_AddToAllObjects(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_AssertFailed
      Src: /src/cpython/Objects/object.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - lineno
    - op
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    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:283,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 284
    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:290,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 291
    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:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 297
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 303
    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:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - n
    argTypes:
    - PyThreadState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 309
    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:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 317
    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:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 323
    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:328,1
    - Dst: get_reftotal
      Src: /src/cpython/Objects/object.c:329,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Objects/object.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: _PyInterpreterState_GetRefTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - get_reftotal
    - HEAD_LOCK
    - HEAD_UNLOCK
    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:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 340
    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:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 346
    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:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    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:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 358
    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: 370
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 370
    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:382,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Objects/object.c:400,1
    - Dst: is_dead
      Src: /src/cpython/Objects/object.c:401,1
    - Dst: _Py_NegativeRefcount
      Src: /src/cpython/Objects/object.c:403,1
    - Dst: _Py_atomic_compare_exchange_ssize
      Src: /src/cpython/Objects/object.c:406,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/object.c:411,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:411,1
    - Dst: _Py_brc_queue_object
      Src: /src/cpython/Objects/object.c:413,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - o
    - filename
    - lineno
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 420
    functionName: _Py_DecRefSharedIsDead
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - is_dead
    - _Py_atomic_load_ssize_relaxed
    - _Py_IncRefTotal
    - _Py_REF_IS_MERGED
    - _Py_NegativeRefcount
    - _PyThreadState_GET
    - _Py_brc_queue_object
    - _Py_atomic_compare_exchange_ssize
    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:425,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Objects/object.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - o
    - filename
    - lineno
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 428
    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:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 5
    functionLinenumber: 430
    functionLinenumberEnd: 434
    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:439,1
    - Dst: _Py_atomic_load_ssize_acquire
      Src: /src/cpython/Objects/object.c:441,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Objects/object.c:444,1
    - Dst: _Py_atomic_store_uintptr_relaxed
      Src: /src/cpython/Objects/object.c:451,1
    - Dst: _Py_atomic_compare_exchange_ssize
      Src: /src/cpython/Objects/object.c:457,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Objects/object.c:463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op->ob_ref_local == 0)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 465
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 465
    functionName: _Py_MergeZeroLocalRefcount
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_acquire
    - _Py_atomic_store_uintptr_relaxed
    - _Py_Dealloc
    - assert
    - _Py_atomic_compare_exchange_ssize
    linkageType: ''
    returnType: void
    signature: void _Py_MergeZeroLocalRefcount(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:470,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:470,1
    - Dst: _Py_AddRefTotal
      Src: /src/cpython/Objects/object.c:473,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:473,1
    - Dst: _Py_atomic_store_uint32_relaxed
      Src: /src/cpython/Objects/object.c:478,1
    - Dst: _Py_atomic_store_uintptr_relaxed
      Src: /src/cpython/Objects/object.c:479,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/object.c:483,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Objects/object.c:485,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Objects/object.c:489,1
    - Dst: _Py_atomic_compare_exchange_ssize
      Src: /src/cpython/Objects/object.c:490,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: 469
        line_start: 469
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 493
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 493
    functionName: _Py_ExplicitMergeRefcount
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    - _Py_atomic_store_uint32_relaxed
    - Py_ARITHMETIC_RIGHT_SHIFT
    - _Py_AddRefTotal
    - _PyThreadState_GET
    - _Py_IsImmortal
    - _Py_atomic_store_uintptr_relaxed
    - assert
    - _Py_REF_SHARED
    - _Py_atomic_compare_exchange_ssize
    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:499,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/object.c:502,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Objects/object.c:506,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/object.c:509,1
    - Dst: _Py_DecRefSharedIsDead
      Src: /src/cpython/Objects/object.c:515,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/object.c:518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 523
    functionName: _PyObject_ResurrectEndSlow
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_ForgetReference
    - _Py_DecRefSharedIsDead
    - _Py_IsOwnedByCurrentThread
    - _Py_IsImmortal
    - _Py_ExplicitMergeRefcount
    linkageType: ''
    returnType: int
    signature: int _PyObject_ResurrectEndSlow(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/object.c:535,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/object.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - tp
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 540
    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:546,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/object.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - tp
    - size
    argTypes:
    - PyVarObject*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 551
    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:556,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Objects/object.c:556,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/object.c:558,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/object.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 562
    functionName: _PyObject_New
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - _PyObject_Init
    - PyErr_NoMemory
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_New(PyTypeObject *tp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/object.c:568,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/object.c:569,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/object.c:571,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/object.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tp
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 575
    functionName: _PyObject_NewVar
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - _PyObject_InitVar
    - _PyObject_VAR_SIZE
    - PyErr_NoMemory
    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:580,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/object.c:585,1
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Objects/object.c:585,1
    - Dst: PyTypeObject*::tp_finalize
      Src: /src/cpython/Objects/object.c:588,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/object.c:589,1
    - Dst: _PyGC_SET_FINALIZED
      Src: /src/cpython/Objects/object.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 592
    functionName: PyObject_CallFinalizer
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyGC_FINALIZED
    - _PyType_IS_GC
    - _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:597,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Objects/object.c:598,1
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/object.c:604,1
    - Dst: PyObject_CallFinalizer
      Src: /src/cpython/Objects/object.c:606,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Objects/object.c:608,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:609,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:612,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/object.c:613,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:613,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/object.c:614,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/object.c:618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 630
    functionName: PyObject_CallFinalizerFromDealloc
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 6
    functionsReached:
    - _PyObject_ASSERT
    - _PyType_IS_GC
    - _PyObject_ResurrectEnd
    - _PyObject_ResurrectStart
    - PyObject_CallFinalizer
    - Py_REFCNT
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_ASSERT_WITH_MSG
    - _PyObject_GC_IS_TRACKED
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyObject_CallFinalizerFromDealloc(PyObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Objects/object.c:637,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Objects/object.c:639,1
    - Dst: clearerr
      Src: /src/cpython/Objects/object.c:642,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:649,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:651,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/object.c:657,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/object.c:659,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:664,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:664,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/object.c:667,1
    - Dst: fwrite
      Src: /src/cpython/Objects/object.c:676,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:680,1
    - Dst: ferror
      Src: /src/cpython/Objects/object.c:685,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Objects/object.c:686,1
    - Dst: clearerr
      Src: /src/cpython/Objects/object.c:687,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/object.c:692,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - op
    - fp
    - flags
    argTypes:
    - PyObject*
    - FILE*
    - int
    assertStmts:
    - condition: (PyUnicode_Check(s))
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 694
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 694
    functionName: PyObject_Print
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 5
    functionsReached:
    - _Py_EnterRecursiveCall
    - PyObject_Str
    - PyErr_CheckSignals
    - _Py_LeaveRecursiveCall
    - PyUnicode_Check
    - ferror
    - PyUnicode_AsUTF8AndSize
    - Py_REFCNT
    - clearerr
    - PyObject_Repr
    - assert
    - Py_DECREF
    - PyErr_SetFromErrno
    - fwrite
    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: 700
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 700
    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:712,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Objects/object.c:712,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 716
    functionName: _PyObject_IsFreed
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 3
    functionsReached:
    - _PyMem_IsPtrFreed
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_IsFreed(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Objects/object.c:723,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:726,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:727,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:732,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:733,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:733,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:734,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:736,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:737,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:738,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:742,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:743,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Objects/object.c:745,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:746,1
    - Dst: PyObject_Print
      Src: /src/cpython/Objects/object.c:748,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:749,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/object.c:751,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Objects/object.c:752,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:754,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 756
    functionName: PyObject_Dump
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - fflush
    - _PyObject_IsFreed
    - PyGILState_Ensure
    - PyGILState_Release
    - Py_REFCNT
    - PyErr_SetRaisedException
    - fprintf
    - PyErr_GetRaisedException
    - Py_TYPE
    - PyObject_Print
    linkageType: ''
    returnType: void
    signature: void PyObject_Dump(PyObject* op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Objects/object.c:762,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:765,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:766,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/object.c:767,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:768,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:770,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:775,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:775,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:780,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:784,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:785,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:790,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/object.c:791,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:793,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 774
        line_start: 774
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 797
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 797
    functionName: PyObject_Repr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 9
    functionsReached:
    - _PyErr_Format
    - PyUnicode_FromString
    - PyErr_CheckSignals
    - _PyErr_Occurred
    - PyUnicode_FromFormat
    - PyUnicode_Check
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - assert
    - Py_DECREF
    - _Py_EnterRecursiveCallTstate
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Repr(PyObject *v)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Objects/object.c:803,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:806,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:807,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/object.c:808,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:810,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/object.c:811,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:813,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:818,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:818,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:823,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:826,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:827,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:832,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/object.c:833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:835,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:838,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/object.c:838,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/cpython/Objects/object.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 837
        line_start: 837
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 840
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 840
    functionName: PyObject_Str
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 17
    functionsReached:
    - _PyErr_Format
    - PyUnicode_FromString
    - PyErr_CheckSignals
    - PyUnicode_CheckExact
    - _PyErr_Occurred
    - PyUnicode_Check
    - PyObject_Repr
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - assert
    - Py_DECREF
    - _PyUnicode_CheckConsistency
    - _Py_EnterRecursiveCallTstate
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Str(PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/object.c:847,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/object.c:851,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Objects/object.c:855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:856,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Objects/object.c:860,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/object.c:861,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/object.c:862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 867
    functionName: PyObject_ASCII
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyObject_Repr
    - _PyUnicode_AsASCIIString
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyUnicode_DecodeASCII
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_ASCII(PyObject *v)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromString
      Src: /src/cpython/Objects/object.c:875,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/object.c:877,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/object.c:878,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/object.c:881,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:881,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/object.c:883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:884,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/object.c:887,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:891,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:896,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Objects/object.c:898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 899
    functionName: PyObject_Bytes
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _PyObject_LookupSpecial
    - PyBytes_Check
    - PyBytes_CheckExact
    - PyBytes_FromObject
    - PyErr_Format
    - PyErr_Occurred
    - PyBytes_FromString
    - _PyObject_CallNoArgs
    - Py_NewRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Bytes(PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFreeList_PopNoStats
      Src: /src/cpython/Objects/object.c:906,1
    - Dst: dofree
      Src: /src/cpython/Objects/object.c:907,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:909,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - freelist
    - is_finalization
    - dofree
    argTypes:
    - struct _Py_freelist*
    - int
    - freefunc
    assertStmts:
    - condition: (freelist->size == 0 || freelist->size == -1)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/cpython/Objects/object.c
    - condition: (freelist->freelist == NULL)
      pos:
        line_end: 909
        line_start: 909
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 914
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 914
    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:920,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Objects/object.c:921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 923
    functionName: free_object
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void free_object(void *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - 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:933,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:942,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:943,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:944,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:945,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:946,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:950,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:952,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:953,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:954,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:955,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:956,1
    - Dst: clear_freelist
      Src: /src/cpython/Objects/object.c:957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - freelists
    - is_finalization
    argTypes:
    - struct _Py_freelists*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 925
    functionDepth: 2
    functionLinenumber: 925
    functionLinenumberEnd: 958
    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:977,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:977,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/object.c:979,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:979,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/object.c:984,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/object.c:988,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:988,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/object.c:990,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:990,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/object.c:996,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/object.c:1003,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1005,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1006,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 976
        line_start: 976
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1008
      start: 974
    functionDepth: 4
    functionLinenumber: 974
    functionLinenumberEnd: 1008
    functionName: _PyObject_FunctionStr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 3
    functionsReached:
    - PyObject_RichCompareBool
    - PyObject_Str
    - PyUnicode_FromFormat
    - PyObject_GetOptionalAttr
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - Py_XDECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_FunctionStr(PyObject *x)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/object.c:1054,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1054,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/object.c:1055,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1055,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1055,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1056,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: Py_TYPE
      Src: /src/cpython/Objects/object.c:1069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1073,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/object.c:1085,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1088,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1089,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/object.c:1092,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - tstate
    - v
    - w
    - op
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1093
    functionName: do_richcompare
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PyType_IsSubtype
    - Py_IS_TYPE
    - Py_DECREF
    - Py_NewRef
    - 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:1101,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1103,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1105,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/object.c:1106,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:1110,1
    - Dst: do_richcompare
      Src: /src/cpython/Objects/object.c:1113,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/object.c:1114,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: 1102
        line_start: 1102
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1116
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1116
    functionName: PyObject_RichCompare
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 14
    functionsReached:
    - do_richcompare
    - _PyErr_Occurred
    - PyErr_BadInternalCall
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - assert
    - _Py_EnterRecursiveCallTstate
    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:1135,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/object.c:1138,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1140,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:1140,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/object.c:1143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1144,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: 1139
        line_start: 1139
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1147
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1147
    functionName: PyObject_RichCompareBool
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 43
    functionsReached:
    - PyBool_Check
    - PyObject_IsTrue
    - _Py_IsImmortal
    - PyObject_RichCompare
    - assert
    - Py_DECREF
    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:1152,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1155
    functionName: PyObject_HashNotImplemented
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyObject_HashNotImplemented(PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1160,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1168,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1169,1
    - Dst: PyObject_HashNotImplemented
      Src: /src/cpython/Objects/object.c:1175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1157
    functionDepth: 2
    functionLinenumber: 1157
    functionLinenumberEnd: 1176
    functionName: PyObject_Hash
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 13
    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:1183,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1184,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:1185,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/object.c:1188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1191
    functionName: PyObject_GetAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 60
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyObject_GetAttr
    - Py_TYPE
    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:1197,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1200
    functionName: PyObject_HasAttrStringWithError
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 4
    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:1206,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/object.c:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1203
    functionDepth: 2
    functionLinenumber: 1203
    functionLinenumberEnd: 1215
    functionName: PyObject_HasAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - PyObject_HasAttrStringWithError
    - PyErr_FormatUnraisable
    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:1220,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1221,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:1222,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/object.c:1223,1
    - Dst: _PyErr_ChainExceptions1Tstate
      Src: /src/cpython/Objects/object.c:1226,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1230,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1231,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Objects/object.c:1234,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/object.c:1239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - v
    - name
    - w
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1242
    functionName: PyObject_SetAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 15
    functionsReached:
    - PyObject_SetAttr
    - PyUnicode_InternFromString
    - _PyErr_SetString
    - _PyErr_Occurred
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - Py_DECREF
    - _PyErr_ChainExceptions1Tstate
    - Py_TYPE
    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:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1244
    functionDepth: 2
    functionLinenumber: 1244
    functionLinenumberEnd: 1248
    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:1259,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:1259,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/object.c:1261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1265
    functionName: _PyObject_IsAbstract
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyObject_IsTrue
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int _PyObject_IsAbstract(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/cpython/Objects/object.c:1273,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/object.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1279
    functionName: _PyObject_GetAttrId
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromId
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GetAttrId(PyObject *v, _Py_Identifier *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1284,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1284,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1285,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:1289,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/object.c:1290,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/object.c:1299,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:1299,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/object.c:1300,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:1300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1301,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/object.c:1305,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1283
        line_start: 1283
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1307
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1307
    functionName: _PyObject_SetAttributeErrorContext
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - PyErr_GetRaisedException
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - PyErr_SetRaisedException
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _PyObject_SetAttributeErrorContext(PyObject* v, PyObject* name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1312,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1313,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1314,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1316,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/object.c:1325,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1332,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1341
    functionName: PyObject_GetAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 45
    functionsReached:
    - PyUnicode_Check
    - _PyObject_SetAttributeErrorContext
    - PyUnicode_AsUTF8
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetAttr(PyObject *v, PyObject *name)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1349,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1350,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1351,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1353,1
    - Dst: _Py_type_getattro_stackref
      Src: /src/cpython/Objects/object.c:1359,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1360,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1361,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/object.c:1372,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1379,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1385,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1346
    functionDepth: 2
    functionLinenumber: 1346
    functionLinenumberEnd: 1389
    functionName: _PyObject_GetAttrStackRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyUnicode_Check
    - _PyObject_SetAttributeErrorContext
    - PyUnicode_AsUTF8
    - _Py_type_getattro_stackref
    - PyErr_Format
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_IsNull
    - Py_TYPE
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _PyObject_GetAttrStackRef(PyObject *v, PyObject *name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1394,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1396,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1397,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1399,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Objects/object.c:1405,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1409,1
    - Dst: _Py_type_getattro_impl
      Src: /src/cpython/Objects/object.c:1416,1
    - Dst: _Py_module_getattro_impl
      Src: /src/cpython/Objects/object.c:1424,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1428,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/object.c:1437,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1452,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1455,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - v
    - name
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1457
    functionName: PyObject_GetOptionalAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 47
    functionsReached:
    - _PyObject_GenericGetAttrWithDict
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - _Py_module_getattro_impl
    - Py_TYPE
    - _Py_type_getattro_impl
    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:1462,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:1463,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/object.c:1468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1469,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1473,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1477,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - obj
    - name
    - result
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1459
    functionDepth: 2
    functionLinenumber: 1459
    functionLinenumberEnd: 1482
    functionName: PyObject_GetOptionalAttrString
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 5
    functionsReached:
    - PyUnicode_FromString
    - PyObject_GetOptionalAttr
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - Py_TYPE
    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:1488,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1491
    functionName: PyObject_HasAttrWithError
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 6
    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:1496,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/object.c:1498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1493
    functionDepth: 3
    functionLinenumber: 1493
    functionLinenumberEnd: 1505
    functionName: PyObject_HasAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyObject_HasAttrWithError
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: int
    signature: int PyObject_HasAttr(PyObject *obj, PyObject *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:1510,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:1511,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:1512,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/object.c:1513,1
    - Dst: _PyErr_ChainExceptions1Tstate
      Src: /src/cpython/Objects/object.c:1516,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1520,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1523,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1524,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1526,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1529,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/object.c:1531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1534,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/object.c:1538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1547,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:1548,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:1548,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1550,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1557,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - v
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1564
    functionName: PyObject_SetAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 24
    functionsReached:
    - Py_INCREF
    - _PyObject_ASSERT
    - _PyErr_SetString
    - _PyErr_Occurred
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - Py_REFCNT
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - PyErr_Format
    - Py_DECREF
    - _PyUnicode_InternMortal
    - _PyErr_ChainExceptions1Tstate
    - Py_TYPE
    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:1569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1566
    functionDepth: 2
    functionLinenumber: 1566
    functionLinenumberEnd: 1570
    functionName: PyObject_DelAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    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:1575,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1576,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1584,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/object.c:1586,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/object.c:1590,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1591,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:1594,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:1595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((tp->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0)
      pos:
        line_end: 1575
        line_start: 1575
        source_file: /src/cpython/Objects/object.c
    - condition: (dictoffset != -1)
      pos:
        line_end: 1583
        line_start: 1583
        source_file: /src/cpython/Objects/object.c
    - condition: (size <= (size_t)PY_SSIZE_T_MAX)
      pos:
        line_end: 1590
        line_start: 1590
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1598
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1598
    functionName: _PyObject_ComputedDictPointer
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - _PyObject_VAR_SIZE
    - Py_SIZE
    - assert
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      _PyObject_ComputedDictPointer(PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1610,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1611,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/object.c:1613,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1614,1
    - Dst: _PyObject_MaterializeManagedDict
      Src: /src/cpython/Objects/object.c:1615,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1617,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/object.c:1621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1607
    functionDepth: 2
    functionLinenumber: 1607
    functionLinenumberEnd: 1622
    functionName: _PyObject_GetDictPtr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_MaterializeManagedDict
    - _PyObject_GetManagedDict
    - PyErr_Clear
    - _PyObject_ManagedDictPointer
    - _PyObject_ComputedDictPointer
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      _PyObject_GetDictPtr(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/object.c:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1628
    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:1638,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1642
    functionName: _PyObject_NextNotImplemented
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_NextNotImplemented(PyObject *self)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1660,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1662,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1663,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1664,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:1669,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/object.c:1670,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/object.c:1674,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/object.c:1677,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1677,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1681,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/object.c:1682,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1683,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1684,1
    - Dst: _PyObject_TryGetInstanceAttribute
      Src: /src/cpython/Objects/object.c:1691,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1694,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/object.c:1700,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1703,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/object.c:1705,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1712,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/object.c:1713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1715,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:1716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1720,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1729,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1729,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1730,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1739,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1743,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 3
    argNames:
    - obj
    - name
    - method
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (*method == NULL)
      pos:
        line_end: 1659
        line_start: 1659
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1745
      start: 1655
    functionDepth: 3
    functionLinenumber: 1655
    functionLinenumberEnd: 1745
    functionName: _PyObject_GetMethod
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyType_LookupRef
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - _PyObject_ComputedDictPointer
    - Py_TYPE
    - _PyObject_GetManagedDict
    - PyDescr_IsData
    - Py_XDECREF
    - f
    - _PyType_HasFeature
    - Py_INCREF
    - _PyObject_TryGetInstanceAttribute
    - Py_DECREF
    - PyDict_GetItemRef
    - _PyType_IsReady
    - PyUnicode_CheckExact
    - PyObject_GetAttr
    - _PyObject_SetAttributeErrorContext
    - PyErr_Format
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:1760,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1762,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1762,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1764,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1765,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1766,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1767,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:1772,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/object.c:1773,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1774,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1776,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/object.c:1782,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:1783,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/object.c:1786,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1786,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1790,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/object.c:1791,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1792,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1792,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1793,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1794,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1796,1
    - Dst: _PyObject_TryGetInstanceAttribute
      Src: /src/cpython/Objects/object.c:1805,1
    - Dst: PyStackRef_XSETREF
      Src: /src/cpython/Objects/object.c:1807,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1807,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1808,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/object.c:1814,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1817,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/object.c:1819,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1826,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:1826,1
    - Dst: _PyDict_GetMethodStackRef
      Src: /src/cpython/Objects/object.c:1827,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1829,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1829,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1830,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1834,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1840,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1840,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/object.c:1845,1
    - Dst: _PyClassMethod_GetFunc
      Src: /src/cpython/Objects/object.c:1846,1
    - Dst: PyStackRef_XSETREF
      Src: /src/cpython/Objects/object.c:1847,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/object.c:1847,1
    - Dst: PyStackRef_XSETREF
      Src: /src/cpython/Objects/object.c:1848,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/object.c:1848,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/object.c:1851,1
    - Dst: _PyStaticMethod_GetFunc
      Src: /src/cpython/Objects/object.c:1852,1
    - Dst: PyStackRef_XSETREF
      Src: /src/cpython/Objects/object.c:1853,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/object.c:1853,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1854,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1857,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1858,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1859,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/object.c:1861,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1868,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1868,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1869,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1873,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:1877,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:1878,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/object.c:1878,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/object.c:1879,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 95
    argCount: 4
    argNames:
    - ts
    - self
    - name
    - method
    argTypes:
    - PyThreadState*
    - _PyStackRef*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (!PyStackRef_IsNull(*method))
      pos:
        line_end: 1867
        line_start: 1867
        source_file: /src/cpython/Objects/object.c
    - condition: (PyStackRef_IsNull(*method))
      pos:
        line_end: 1828
        line_start: 1828
        source_file: /src/cpython/Objects/object.c
    - condition: (PyStackRef_IsNull(*method))
      pos:
        line_end: 1761
        line_start: 1761
        source_file: /src/cpython/Objects/object.c
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 1825
        line_start: 1825
        source_file: /src/cpython/Objects/object.c
    - condition: (!PyStackRef_IsNull(*method))
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/cpython/Objects/object.c
    - condition: (PyStackRef_IsNull(*method))
      pos:
        line_end: 1877
        line_start: 1877
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1881
      start: 1755
    functionDepth: 3
    functionLinenumber: 1755
    functionLinenumberEnd: 1881
    functionName: _PyObject_GetMethodStackRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyStackRef_CLEAR
    - _PyClassMethod_GetFunc
    - _PyType_LookupStackRefAndVersion
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - _PyObject_ComputedDictPointer
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _PyObject_GetManagedDict
    - _PyStaticMethod_GetFunc
    - PyDescr_IsData
    - PyStackRef_FromPyObjectSteal
    - f
    - _PyType_HasFeature
    - PyStackRef_XSETREF
    - Py_IS_TYPE
    - _PyObject_TryGetInstanceAttribute
    - _PyDict_GetMethodStackRef
    - PyStackRef_IsNull
    - _PyType_IsReady
    - PyUnicode_CheckExact
    - PyObject_GetAttr
    - _PyObject_SetAttributeErrorContext
    - PyErr_Format
    - PyStackRef_AsPyObjectBorrow
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: "int _PyObject_GetMethodStackRef(PyThreadState *ts, _PyStackRef *self,\n
      \                           PyObject *name, _PyStackRef *method)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1896,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:1901,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1902,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1904,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:1908,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:1909,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1913,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:1915,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/object.c:1917,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/object.c:1919,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:1920,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1924,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/object.c:1925,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1926,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1926,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1928,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1929,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/object.c:1936,1
    - Dst: _PyObject_TryGetInstanceAttribute
      Src: /src/cpython/Objects/object.c:1937,1
    - Dst: _PyObject_MaterializeManagedDict
      Src: /src/cpython/Objects/object.c:1943,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/object.c:1951,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:1954,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/object.c:1957,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:1965,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/object.c:1966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:1967,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1972,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1973,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:1982,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:1982,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:1984,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:1985,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/object.c:1991,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:1997,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:2001,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/object.c:2004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2005,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 89
    argCount: 4
    argNames:
    - obj
    - name
    - dict
    - suppress
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1886
    functionDepth: 2
    functionLinenumber: 1886
    functionLinenumberEnd: 2007
    functionName: _PyObject_GenericGetAttrWithDict
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - PyStackRef_AsPyObjectSteal
    - _PyType_LookupStackRefAndVersion
    - _PyThreadState_GET
    - _PyObject_ComputedDictPointer
    - Py_TYPE
    - _Py_atomic_load_ptr_acquire
    - _PyThreadState_PopCStackRef
    - _PyObject_GetManagedDict
    - PyUnicode_Check
    - _PyThreadState_PushCStackRef
    - PyDescr_IsData
    - f
    - _PyObject_MaterializeManagedDict
    - Py_INCREF
    - _PyObject_TryGetInstanceAttribute
    - PyErr_Clear
    - Py_DECREF
    - PyDict_GetItemRef
    - _PyType_IsReady
    - PyUnicode_CheckExact
    - _PyObject_SetAttributeErrorContext
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyStackRef_AsPyObjectBorrow
    - PyType_Ready
    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:2012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 2009
    functionDepth: 3
    functionLinenumber: 2009
    functionLinenumberEnd: 2013
    functionName: PyObject_GenericGetAttr
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 8
    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:2019,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2024,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/object.c:2024,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:2025,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:2026,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2028,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/object.c:2032,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/object.c:2032,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:2036,1
    - Dst: _Py_INCREF_TYPE
      Src: /src/cpython/Objects/object.c:2037,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:2039,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/object.c:2041,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/object.c:2043,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:2044,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2047,1
    - Dst: f
      Src: /src/cpython/Objects/object.c:2049,1
    - Dst: _PyObject_StoreInstanceAttribute
      Src: /src/cpython/Objects/object.c:2058,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/object.c:2063,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/object.c:2067,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:2072,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:2078,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:2082,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:2085,1
    - Dst: _PyObjectDict_SetItem
      Src: /src/cpython/Objects/object.c:2092,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:2096,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/object.c:2098,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/object.c:2100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2101,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/object.c:2104,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:2105,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/object.c:2108,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/object.c:2111,1
    - Dst: _Py_DECREF_TYPE
      Src: /src/cpython/Objects/object.c:2112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2113,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: 2023
        line_start: 2023
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2115
      start: 2015
    functionDepth: 2
    functionLinenumber: 2015
    functionLinenumberEnd: 2115
    functionName: _PyObject_GenericSetAttrWithDict
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_StoreInstanceAttribute
    - _Py_DECREF_TYPE
    - _PyType_LookupStackRefAndVersion
    - PyDict_DelItem
    - _PyThreadState_GET
    - _Py_INCREF_TYPE
    - assert
    - _PyObject_ComputedDictPointer
    - Py_TYPE
    - PyType_IsSubtype
    - _PyThreadState_PopCStackRef
    - PyUnicode_Check
    - _PyThreadState_PushCStackRef
    - f
    - Py_INCREF
    - Py_DECREF
    - _PyObject_ManagedDictPointer
    - _PyType_IsReady
    - _PyObject_SetAttributeErrorContext
    - PyDict_SetItem
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyStackRef_AsPyObjectBorrow
    - PyType_Ready
    - _PyObjectDict_SetItem
    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:2120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2117
    functionDepth: 3
    functionLinenumber: 2117
    functionLinenumberEnd: 2121
    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:2127,1
    - Dst: _PyObject_SetDict
      Src: /src/cpython/Objects/object.c:2130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - value
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2131
    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:2147,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2148,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2149,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2150,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2151,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2152,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2153,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2154,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2155,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/object.c:2159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2137
    functionDepth: 1
    functionLinenumber: 2137
    functionLinenumberEnd: 2160
    functionName: PyObject_IsTrue
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 207
    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:2169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2165
    functionDepth: 2
    functionLinenumber: 2165
    functionLinenumberEnd: 2173
    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:2182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2177
    functionDepth: 0
    functionLinenumber: 2177
    functionLinenumberEnd: 2183
    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:2193,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Objects/object.c:2194,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:2197,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Objects/object.c:2198,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:2200,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Objects/object.c:2201,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2202,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/object.c:2202,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:2206,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Objects/object.c:2213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2214,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/object.c:2218,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/object.c:2219,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2222,1
    - Dst: PyList_Sort
      Src: /src/cpython/Objects/object.c:2225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2201
        line_start: 2201
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2230
      start: 2187
    functionDepth: 1
    functionLinenumber: 2187
    functionLinenumberEnd: 2230
    functionName: _dir_locals
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyEval_GetFrame
    - Py_INCREF
    - _PyErr_Occurred
    - _PyThreadState_GET
    - PyList_Check
    - PyList_Sort
    - PyErr_Format
    - assert
    - Py_DECREF
    - _PyEval_GetFrameLocals
    - _PyEval_GetGlobalsFromRunningMain
    - PyMapping_Keys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dir_locals(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/object.c:2237,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:2237,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2239,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:2241,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/object.c:2242,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/object.c:2246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2247,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/object.c:2251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2252,1
    - Dst: PyList_Sort
      Src: /src/cpython/Objects/object.c:2255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:2256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 2238
        line_start: 2238
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2260
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2260
    functionName: _dir_object
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_LookupSpecial
    - PySequence_List
    - PyErr_SetString
    - PyList_Sort
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - _PyObject_CallNoArgs
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dir_object(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dir_locals
      Src: /src/cpython/Objects/object.c:2269,1
    - Dst: _dir_object
      Src: /src/cpython/Objects/object.c:2269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2270
    functionName: PyObject_Dir
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _dir_locals
    - _dir_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Dir(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/object.c:2282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2279
    functionDepth: 1
    functionLinenumber: 2279
    functionLinenumberEnd: 2283
    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:2292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - none
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2285
    functionDepth: 1
    functionLinenumber: 2285
    functionLinenumberEnd: 2293
    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:2298,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/object.c:2298,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/object.c:2299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2295
    functionDepth: 1
    functionLinenumber: 2295
    functionLinenumberEnd: 2303
    functionName: none_new
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      none_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2305
    functionDepth: 0
    functionLinenumber: 2305
    functionLinenumberEnd: 2309
    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: 2314
      start: 2311
    functionDepth: 0
    functionLinenumber: 2311
    functionLinenumberEnd: 2314
    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:2407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2408
    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:2413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2410
    functionDepth: 1
    functionLinenumber: 2410
    functionLinenumberEnd: 2414
    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:2424,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/object.c:2424,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/object.c:2425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2421
    functionDepth: 1
    functionLinenumber: 2421
    functionLinenumberEnd: 2429
    functionName: notimplemented_new
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      notimplemented_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/object.c:2438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - notimplemented
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2431
    functionDepth: 1
    functionLinenumber: 2431
    functionLinenumberEnd: 2439
    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:2444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2441
    functionDepth: 1
    functionLinenumber: 2441
    functionLinenumberEnd: 2447
    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:2506,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Objects/object.c:2507,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/object.c:2510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2502
    functionDepth: 3
    functionLinenumber: 2502
    functionLinenumberEnd: 2511
    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:2517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2513
    functionDepth: 3
    functionLinenumber: 2513
    functionLinenumberEnd: 2519
    functionName: _PyObject_FiniState
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - refchain_fini
    linkageType: ''
    returnType: void
    signature: void _PyObject_FiniState(PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/object.c:2672,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/object.c:2677,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/object.c:2678,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2682,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2683,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/object.c:2688,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/object.c:2689,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:2689,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:2690,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/object.c:2691,1
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/object.c:2693,1
    - Dst: _Py_initialize_generic
      Src: /src/cpython/Objects/object.c:2696,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/object.c:2697,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/object.c:2700,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyBaseObject_Type.tp_base == NULL)
      pos:
        line_end: 2681
        line_start: 2681
        source_file: /src/cpython/Objects/object.c
    - condition: (PyType_Type.tp_base == &PyBaseObject_Type)
      pos:
        line_end: 2682
        line_start: 2682
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2701
      start: 2668
    functionDepth: 1
    functionLinenumber: 2668
    functionLinenumberEnd: 2701
    functionName: _PyTypes_InitTypes
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_initialize_generic
    - _PyStatus_OK
    - Py_ARRAY_LENGTH
    - _PyStaticType_InitBuiltin
    - _Py_INTERP_CACHED_OBJECT
    - _PyType_GetDict
    - _PyStatus_ERR
    - assert
    - PyErr_Occurred
    - PyDict_GetItemWithError
    - _Py_ID
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyTypes_InitTypes(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/object.c:2715,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/object.c:2720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2710
    functionDepth: 1
    functionLinenumber: 2710
    functionLinenumberEnd: 2722
    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:2732,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2733,1
    - Dst: _Py_atomic_store_uintptr_relaxed
      Src: /src/cpython/Objects/object.c:2741,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Objects/object.c:2741,1
    - Dst: _Py_atomic_store_uint8_relaxed
      Src: /src/cpython/Objects/object.c:2742,1
    - Dst: _Py_atomic_store_uint32_relaxed
      Src: /src/cpython/Objects/object.c:2743,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/object.c:2744,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Objects/object.c:2746,1
    - Dst: _Py_AddToAllObjects
      Src: /src/cpython/Objects/object.c:2753,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/object.c:2755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op->ob_refcnt == 1)
      pos:
        line_end: 2731
        line_start: 2731
        source_file: /src/cpython/Objects/object.c
    - condition: (op->ob_flags == 0)
      pos:
        line_end: 2732
        line_start: 2732
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2756
      start: 2725
    functionDepth: 3
    functionLinenumber: 2725
    functionLinenumberEnd: 2756
    functionName: new_reference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uint32_relaxed
    - _Py_ThreadId
    - _Py_atomic_store_ssize_relaxed
    - _PyReftracerTrack
    - _Py_atomic_store_uintptr_relaxed
    - assert
    - _Py_atomic_store_uint8_relaxed
    - _Py_AddToAllObjects
    linkageType: ''
    returnType: void
    signature: void new_reference(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/object.c:2762,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:2762,1
    - Dst: new_reference
      Src: /src/cpython/Objects/object.c:2764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2758
    functionDepth: 4
    functionLinenumber: 2758
    functionLinenumberEnd: 2765
    functionName: _Py_NewReference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - new_reference
    - _Py_IncRefTotal
    - _PyThreadState_GET
    linkageType: ''
    returnType: void
    signature: void _Py_NewReference(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_reference
      Src: /src/cpython/Objects/object.c:2770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2767
    functionDepth: 4
    functionLinenumber: 2767
    functionLinenumberEnd: 2771
    functionName: _Py_NewReferenceNoTotal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - new_reference
    linkageType: ''
    returnType: void
    signature: void _Py_NewReferenceNoTotal(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:2777,1
    - Dst: _Py_atomic_store_uintptr_relaxed
      Src: /src/cpython/Objects/object.c:2781,1
    - Dst: _Py_atomic_store_uint32_relaxed
      Src: /src/cpython/Objects/object.c:2782,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/object.c:2783,1
    - Dst: _Py_atomic_or_uint8
      Src: /src/cpython/Objects/object.c:2784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2773
    functionDepth: 1
    functionLinenumber: 2773
    functionLinenumberEnd: 2791
    functionName: _Py_SetImmortalUntracked
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uint32_relaxed
    - _Py_atomic_store_ssize_relaxed
    - _Py_atomic_or_uint8
    - _Py_IsImmortal
    - _Py_atomic_store_uintptr_relaxed
    linkageType: ''
    returnType: void
    signature: void _Py_SetImmortalUntracked(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/cpython/Objects/object.c:2796,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/object.c:2796,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/object.c:2797,1
    - Dst: _Py_SetImmortalUntracked
      Src: /src/cpython/Objects/object.c:2799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2793
    functionDepth: 2
    functionLinenumber: 2793
    functionLinenumberEnd: 2800
    functionName: _Py_SetImmortal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _PyObject_GC_UNTRACK
    - _Py_SetImmortalUntracked
    - _PyObject_GC_IS_TRACKED
    - PyObject_IS_GC
    linkageType: ''
    returnType: void
    signature: void _Py_SetImmortal(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2806,1
    - Dst: PyType_IS_GC
      Src: /src/cpython/Objects/object.c:2806,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2806,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2807,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/object.c:2807,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2808,1
    - Dst: _PyObject_SET_GC_BITS
      Src: /src/cpython/Objects/object.c:2809,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Objects/object.c:2810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyType_IS_GC(Py_TYPE(op)))
      pos:
        line_end: 2805
        line_start: 2805
        source_file: /src/cpython/Objects/object.c
    - condition: (_Py_IsOwnedByCurrentThread(op))
      pos:
        line_end: 2806
        line_start: 2806
        source_file: /src/cpython/Objects/object.c
    - condition: (op->ob_ref_shared == 0)
      pos:
        line_end: 2807
        line_start: 2807
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2812
      start: 2802
    functionDepth: 1
    functionLinenumber: 2802
    functionLinenumberEnd: 2812
    functionName: _PyObject_SetDeferredRefcount
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_SET_GC_BITS
    - PyType_IS_GC
    - _Py_IsOwnedByCurrentThread
    - _Py_REF_SHARED
    - assert
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _PyObject_SetDeferredRefcount(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_IS_GC
      Src: /src/cpython/Objects/object.c:2818,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2818,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Objects/object.c:2824,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Objects/object.c:2831,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Objects/object.c:2836,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Objects/object.c:2836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2814
    functionDepth: 1
    functionLinenumber: 2814
    functionLinenumberEnd: 2841
    functionName: PyUnstable_Object_EnableDeferredRefcount
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_compare_exchange_uint8
    - _Py_atomic_add_ssize
    - PyType_IS_GC
    - _Py_atomic_load_uint8
    - _Py_REF_SHARED
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Object_EnableDeferredRefcount(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/object.c:2846,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Objects/object.c:2850,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Objects/object.c:2855,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Objects/object.c:2860,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/object.c:2863,1
    - Dst: PyStackRef_IsHeapSafe
      Src: /src/cpython/Objects/object.c:2864,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2843
    functionDepth: 1
    functionLinenumber: 2843
    functionLinenumberEnd: 2868
    functionName: PyUnstable_Object_IsUniqueReferencedTemporary
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _PyEval_GetFrame
    - PyStackRef_IsTaggedInt
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsHeapSafe
    - _PyFrame_Stackbase
    - _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:2873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2870
    functionDepth: 1
    functionLinenumber: 2870
    functionLinenumberEnd: 2874
    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:2880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2876
    functionDepth: 1
    functionLinenumber: 2876
    functionLinenumberEnd: 2882
    functionName: PyUnstable_EnableTryIncRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_SetMaybeWeakref
    linkageType: ''
    returnType: void
    signature: void PyUnstable_EnableTryIncRef(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:2887,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/object.c:2888,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/object.c:2888,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/object.c:2891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 2886
        line_start: 2886
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2893
      start: 2884
    functionDepth: 3
    functionLinenumber: 2884
    functionLinenumberEnd: 2893
    functionName: PyUnstable_SetImmortal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_SetImmortal
    - PyUnicode_Check
    - _PyObject_IsUniquelyReferenced
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnstable_SetImmortal(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AddToAllObjects
      Src: /src/cpython/Objects/object.c:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2895
    functionDepth: 3
    functionLinenumber: 2895
    functionLinenumberEnd: 2901
    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:2907,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Objects/object.c:2908,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/object.c:2911,1
    - Dst: _PyRefchain_Get
      Src: /src/cpython/Objects/object.c:2914,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Objects/object.c:2916,1
    - Dst: _PyRefchain_Remove
      Src: /src/cpython/Objects/object.c:2921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2903
    functionDepth: 2
    functionLinenumber: 2903
    functionLinenumberEnd: 2923
    functionName: _Py_ForgetReference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyRefchain_Get
    - _PyInterpreterState_GET
    - Py_REFCNT
    - _PyObject_ASSERT_FAILED_MSG
    - _PyRefchain_Remove
    linkageType: ''
    returnType: void
    signature: void _Py_ForgetReference(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:2934,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:2934,1
    - Dst: PyObject_Print
      Src: /src/cpython/Objects/object.c:2935,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/object.c:2936,1
    - Dst: putc
      Src: /src/cpython/Objects/object.c:2938,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: 2940
      start: 2927
    functionDepth: 3
    functionLinenumber: 2927
    functionLinenumberEnd: 2940
    functionName: _Py_PrintReference
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - putc
    - Py_REFCNT
    - PyErr_Clear
    - fprintf
    - PyObject_Print
    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:2950,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:2952,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Objects/object.c:2953,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:2953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - fp
    argTypes:
    - PyInterpreterState*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2946
    functionDepth: 1
    functionLinenumber: 2946
    functionLinenumberEnd: 2954
    functionName: _Py_PrintReferences
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - fprintf
    - _PyInterpreterState_Main
    - REFCHAIN
    - _Py_hashtable_foreach
    linkageType: ''
    returnType: void
    signature: void _Py_PrintReferences(PyInterpreterState *interp, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:2964,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:2965,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:2965,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: 2967
      start: 2957
    functionDepth: 0
    functionLinenumber: 2957
    functionLinenumberEnd: 2967
    functionName: _Py_PrintReferenceAddress
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - fprintf
    - Py_REFCNT
    - Py_TYPE
    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:2980,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Objects/object.c:2981,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:2981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - fp
    argTypes:
    - PyInterpreterState*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2977
    functionDepth: 1
    functionLinenumber: 2977
    functionLinenumberEnd: 2982
    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:3007,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/object.c:3025,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/object.c:3030,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: 3034
      start: 2999
    functionDepth: 1
    functionLinenumber: 2999
    functionLinenumberEnd: 3034
    functionName: _Py_GetObject
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyList_GET_SIZE
    - PyList_Append
    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:3043,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/object.c:3047,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/object.c:3059,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Objects/object.c:3060,1
    - Dst: REFCHAIN
      Src: /src/cpython/Objects/object.c:3060,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:3062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3038
    functionDepth: 1
    functionLinenumber: 3038
    functionLinenumberEnd: 3066
    functionName: _Py_GetObjects
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - REFCHAIN
    - _Py_hashtable_foreach
    - _PyInterpreterState_GET
    - PyList_New
    - PyArg_ParseTuple
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetObjects(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_DebugMallocStats
      Src: /src/cpython/Objects/object.c:3081,1
    - Dst: _PyFloat_DebugMallocStats
      Src: /src/cpython/Objects/object.c:3082,1
    - Dst: _PyList_DebugMallocStats
      Src: /src/cpython/Objects/object.c:3083,1
    - Dst: _PyTuple_DebugMallocStats
      Src: /src/cpython/Objects/object.c:3084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3078
    functionDepth: 1
    functionLinenumber: 3078
    functionLinenumberEnd: 3085
    functionName: _PyObject_DebugTypeStats
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyFloat_DebugMallocStats
    - _PyDict_DebugMallocStats
    - _PyTuple_DebugMallocStats
    - _PyList_DebugMallocStats
    linkageType: ''
    returnType: void
    signature: void _PyObject_DebugTypeStats(FILE *out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Objects/object.c:3106,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/object.c:3111,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:3111,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:3113,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/object.c:3116,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Objects/object.c:3119,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:3119,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/object.c:3123,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/object.c:3125,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/object.c:3128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3099
    functionDepth: 1
    functionLinenumber: 3099
    functionLinenumberEnd: 3131
    functionName: Py_ReprEnter
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 11
    functionsReached:
    - PyList_GET_ITEM
    - PyList_New
    - PyErr_Occurred
    - PyList_Append
    - PyThreadState_GetDict
    - PyList_GET_SIZE
    - _PyDict_SetItem_Take2
    - PyDict_GetItemWithError
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int Py_ReprEnter(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/object.c:3140,1
    - Dst: PyThreadState_GetDict
      Src: /src/cpython/Objects/object.c:3142,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/object.c:3146,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/object.c:3146,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/object.c:3147,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/object.c:3150,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/object.c:3153,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Objects/object.c:3154,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/object.c:3161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3133
    functionDepth: 1
    functionLinenumber: 3133
    functionLinenumberEnd: 3162
    functionName: Py_ReprLeave
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 11
    functionsReached:
    - PyList_GET_ITEM
    - PyList_SetSlice
    - PyList_Check
    - PyErr_SetRaisedException
    - PyErr_GetRaisedException
    - PyThreadState_GetDict
    - PyList_GET_SIZE
    - PyDict_GetItemWithError
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void Py_ReprLeave(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:3173,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:3173,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:3174,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3175,1
    - Dst: PyTypeObject*::tp_is_gc
      Src: /src/cpython/Objects/object.c:3177,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/object.c:3178,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/object.c:3180,1
    - Dst: _Py_AS_GC
      Src: /src/cpython/Objects/object.c:3187,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: 3174
        line_start: 3174
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3190
      start: 3170
    functionDepth: 1
    functionLinenumber: 3170
    functionLinenumberEnd: 3190
    functionName: _PyTrash_thread_deposit_object
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - _Py_AS_GC
    - PyTypeObject*::tp_is_gc
    - Py_REFCNT
    - assert
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - Py_TYPE
    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:3199,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/object.c:3204,1
    - Dst: _Py_AS_GC
      Src: /src/cpython/Objects/object.c:3206,1
    - Dst: _Py_AS_GC
      Src: /src/cpython/Objects/object.c:3207,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/object.c:3211,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:3219,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/object.c:3219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3222
      start: 3194
    functionDepth: 1
    functionLinenumber: 3194
    functionLinenumberEnd: 3222
    functionName: _PyTrash_thread_destroy_chain
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - _Py_AS_GC
    - _PyObject_GC_TRACK
    - _Py_atomic_store_ssize_relaxed
    - Py_REFCNT
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _PyTrash_thread_destroy_chain(PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3228,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3230,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3232,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3235,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3238,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3240,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3243,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3245,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3246,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Objects/object.c:3248,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3251,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3252,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:3258,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Objects/object.c:3259,1
    - Dst: _PyMem_DumpTraceback
      Src: /src/cpython/Objects/object.c:3261,1
    - Dst: fileno
      Src: /src/cpython/Objects/object.c:3261,1
    - Dst: PyObject_Dump
      Src: /src/cpython/Objects/object.c:3265,1
    - Dst: fprintf
      Src: /src/cpython/Objects/object.c:3267,1
    - Dst: fflush
      Src: /src/cpython/Objects/object.c:3268,1
    - Dst: _Py_NO_RETURN::Py_FatalError
      Src: /src/cpython/Objects/object.c:3271,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: 3272
      start: 3224
    functionDepth: 4
    functionLinenumber: 3224
    functionLinenumberEnd: 3272
    functionName: _Py_NO_RETURN::_PyObject_AssertFailed
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - fflush
    - fileno
    - PyObject_Dump
    - _PyObject_IsFreed
    - _Py_NO_RETURN::Py_FatalError
    - _PyType_PreHeaderSize
    - _PyMem_DumpTraceback
    - fprintf
    - Py_TYPE
    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:3285,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/object.c:3288,1
    - Dst: _Py_RecursionLimit_GetMargin
      Src: /src/cpython/Objects/object.c:3289,1
    - Dst: _PyTrash_thread_deposit_object
      Src: /src/cpython/Objects/object.c:3291,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3298,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/object.c:3303,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/object.c:3305,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/object.c:3309,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/object.c:3311,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Objects/object.c:3331,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/object.c:3333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/object.c:3334,1
    - Dst: _PyTrash_thread_destroy_chain
      Src: /src/cpython/Objects/object.c:3337,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: 3297
        line_start: 3297
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3339
      start: 3282
    functionDepth: 3
    functionLinenumber: 3282
    functionLinenumberEnd: 3339
    functionName: _Py_Dealloc
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - _Py_RecursionLimit_GetMargin
    - _Py_ForgetReference
    - _PyTrash_thread_destroy_chain
    - _PyThreadState_GET
    - _PyReftracerTrack
    - Py_XDECREF
    - assert
    - _PyTrash_thread_deposit_object
    - _Py_FatalErrorFormat
    - Py_DECREF
    - Py_TYPE
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void _Py_Dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR
      Src: /src/cpython/Objects/object.c:3345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3346
      start: 3342
    functionDepth: 1
    functionLinenumber: 3342
    functionLinenumberEnd: 3346
    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:3356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3353
    functionDepth: 1
    functionLinenumber: 3353
    functionLinenumberEnd: 3357
    functionName: Py_NewRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 596
    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:3362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3363
      start: 3359
    functionDepth: 1
    functionLinenumber: 3359
    functionLinenumberEnd: 3363
    functionName: Py_XNewRef
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 81
    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: 3375
      start: 3372
    functionDepth: 0
    functionLinenumber: 3372
    functionLinenumberEnd: 3375
    functionName: Py_Is
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    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:3379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3377
    functionDepth: 0
    functionLinenumber: 3377
    functionLinenumberEnd: 3380
    functionName: Py_IsNone
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 13
    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:3384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3382
    functionDepth: 0
    functionLinenumber: 3382
    functionLinenumberEnd: 3385
    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:3389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3390
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3390
    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:3397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - refcnt
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3394
    functionDepth: 1
    functionLinenumber: 3394
    functionLinenumberEnd: 3398
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Objects/object.c:3401,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Objects/object.c:3403,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/object.c:3405,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/object.c:3406,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Objects/object.c:3407,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Objects/object.c:3413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - tracer
    - data
    argTypes:
    - PyRefTracer
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3400
    functionDepth: 1
    functionLinenumber: 3400
    functionLinenumberEnd: 3415
    functionName: PyRefTracer_SetTracer
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _PyEval_StopTheWorldAll
    - _PyReftracerTrack
    - _PyEval_StartTheWorldAll
    - PyErr_Occurred
    - _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:3418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3423
      start: 3417
    functionDepth: 1
    functionLinenumber: 3417
    functionLinenumberEnd: 3423
    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:3443,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/object.c:3444,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/object.c:3445,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/object.c:3446,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/object.c:3447,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/object.c:3449,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3450,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3451,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:3451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (constants[i] != NULL)
      pos:
        line_end: 3449
        line_start: 3449
        source_file: /src/cpython/Objects/object.c
    - condition: (_Py_IsImmortal(constants[i]))
      pos:
        line_end: 3450
        line_start: 3450
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3454
      start: 3440
    functionDepth: 1
    functionLinenumber: 3440
    functionLinenumberEnd: 3454
    functionName: _Py_GetConstant_Init
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyLong_GetOne
    - Py_ARRAY_LENGTH
    - PyUnicode_New
    - _Py_IsImmortal
    - _PyLong_GetZero
    - assert
    - PyTuple_New
    linkageType: ''
    returnType: void
    signature: void _Py_GetConstant_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/object.c:3459,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/object.c:3463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - constant_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3466
      start: 3456
    functionDepth: 1
    functionLinenumber: 3456
    functionLinenumberEnd: 3466
    functionName: Py_GetConstant
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 43
    functionsReached:
    - PyErr_BadInternalCall
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_GetConstant(unsigned int constant_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/object.c:3473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - constant_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3469
    functionDepth: 2
    functionLinenumber: 3469
    functionLinenumberEnd: 3474
    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_AssertHoldsTstate
      Src: /src/cpython/Objects/object.c:3480,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3481,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/object.c:3482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 3480
        line_start: 3480
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3483
      start: 3476
    functionDepth: 1
    functionLinenumber: 3476
    functionLinenumberEnd: 3483
    functionName: PyUnstable_IsImmortal
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 2
    functionsReached:
    - _Py_AssertHoldsTstate
    - _Py_IsImmortal
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnstable_IsImmortal(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Objects/object.c:3488,1
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3489,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/object.c:3490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 3488
        line_start: 3488
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3491
      start: 3485
    functionDepth: 1
    functionLinenumber: 3485
    functionLinenumberEnd: 3491
    functionName: PyUnstable_Object_IsUniquelyReferenced
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 1
    functionsReached:
    - _Py_AssertHoldsTstate
    - _PyObject_IsUniquelyReferenced
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Object_IsUniquelyReferenced(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/object.c:3496,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/object.c:3497,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/object.c:3498,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/object.c:3498,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/object.c:3499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 3495
        line_start: 3495
        source_file: /src/cpython/Objects/object.c
    constantsTouched: []
    func_position:
      end: 3501
      start: 3493
    functionDepth: 1
    functionLinenumber: 3493
    functionLinenumberEnd: 3501
    functionName: _PyObject_VisitType
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - PyType_HasFeature
    - Py_VISIT
    - assert
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_VisitType(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_TYPE_impl
      Src: /src/cpython/Objects/object.c:3510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3510
    functionDepth: 1
    functionLinenumber: 3510
    functionLinenumberEnd: 3510
    functionName: Py_TYPE
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 785
    functionsReached:
    - _Py_TYPE_impl
    linkageType: ''
    returnType: PyTypeObject
    signature: PyTypeObject * Py_TYPE(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_REFCNT
      Src: /src/cpython/Objects/object.c:3511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3511
    functionDepth: 1
    functionLinenumber: 3511
    functionLinenumberEnd: 3511
    functionName: Py_REFCNT
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 32
    functionsReached:
    - _Py_REFCNT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t Py_REFCNT(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SIZE_impl
      Src: /src/cpython/Objects/object.c:3512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3512
    functionDepth: 1
    functionLinenumber: 3512
    functionLinenumberEnd: 3512
    functionName: Py_SIZE
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 104
    functionsReached:
    - _Py_SIZE_impl
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t Py_SIZE(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IS_TYPE_impl
      Src: /src/cpython/Objects/object.c:3513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - t
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3513
    functionDepth: 1
    functionLinenumber: 3513
    functionLinenumberEnd: 3513
    functionName: Py_IS_TYPE
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 45
    functionsReached:
    - _Py_IS_TYPE_impl
    linkageType: ''
    returnType: int
    signature: int Py_IS_TYPE(PyObject *o, PyTypeObject *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SET_SIZE_impl
      Src: /src/cpython/Objects/object.c:3514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - s
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3514
    functionDepth: 1
    functionLinenumber: 3514
    functionLinenumberEnd: 3514
    functionName: Py_SET_SIZE
    functionSourceFile: /src/cpython/Objects/object.c
    functionUses: 25
    functionsReached:
    - _Py_SET_SIZE_impl
    linkageType: ''
    returnType: void
    signature: void Py_SET_SIZE(PyVarObject *o, Py_ssize_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: STRINGLIB_GET_EMPTY
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_GET_EMPTY()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicode_writer.c:74,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_writer.c:75,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:78,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:78,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicode_writer.c:82,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicode_writer.c:83,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:86,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicode_writer.c:89,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:99,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:99,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:109,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:109,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicode_writer.c:113,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: 77
        line_start: 77
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (maxchar < 128)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: ((ucs2 - start) <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: ((ucs4 - start) <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 115
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 115
    functionName: unicode_write_cstr
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - PyUnicode_KIND
    - Py_UNREACHABLE
    - ucs1lib_find_max_char
    - PyUnicode_GET_LENGTH
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: "void unicode_write_cstr(PyObject *unicode, Py_ssize_t index,\n                   const
      char *str, Py_ssize_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicode_writer.c:121,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_writer.c:122,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicode_writer.c:125,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:126,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (writer->kind <= PyUnicode_1BYTE_KIND)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: _PyUnicodeWriter_Update
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - assert
    - PyUnicode_MAX_CHAR_VALUE
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Update(_PyUnicodeWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/unicode_writer.c:145,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:152,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (writer->kind < PyUnicode_1BYTE_KIND)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (writer->kind == 0)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: _PyUnicodeWriter_Init
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 3
    functionsReached:
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Init(_PyUnicodeWriter *writer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_writer.c:161,1
    - Dst: _Py_FREELIST_POP_MEM
      Src: /src/cpython/Objects/unicode_writer.c:168,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicode_writer.c:170,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicode_writer.c:172,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicode_writer.c:177,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_writer.c:178,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/unicode_writer.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - length
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: PyUnicodeWriter_Create
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 9
    functionsReached:
    - PyErr_NoMemory
    - _Py_FREELIST_POP_MEM
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Prepare
    - PyUnicodeWriter_Discard
    - PyErr_SetString
    - PyMem_Malloc
    linkageType: ''
    returnType: PyUnicodeWriter
    signature: 'PyUnicodeWriter *

      PyUnicodeWriter_Create(Py_ssize_t length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicode_writer.c:193,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/unicode_writer.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: PyUnicodeWriter_Discard
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 12
    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/unicode_writer.c:202,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/cpython/Objects/unicode_writer.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - buffer
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: _PyUnicodeWriter_InitWithBuffer
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 0
    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/unicode_writer.c:216,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:217,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:220,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicode_writer.c:224,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_writer.c:229,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:232,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicode_writer.c:241,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_writer.c:256,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicode_writer.c:257,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_writer.c:260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_writer.c:262,1
    - Dst: _PyUnicode_ResizeCompact
      Src: /src/cpython/Objects/unicode_writer.c:266,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:273,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicode_writer.c:274,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_writer.c:277,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicode_writer.c:279,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/cpython/Objects/unicode_writer.c:281,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: 215
        line_start: 215
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (maxchar <= _Py_MAX_UNICODE)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: "((maxchar > writer->maxchar && length >= 0)\n           || length
        > 0)"
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (!writer->readonly)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (!writer->readonly)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 285
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 285
    functionName: _PyUnicodeWriter_PrepareInternal
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Py_SETREF
    - _PyUnicode_FastCopyCharacters
    - Py_MAX
    - PyUnicode_New
    - _PyUnicode_ResizeCompact
    - assert
    - Py_DECREF
    - _PyUnicodeWriter_Update
    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/unicode_writer.c:294,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicode_writer.c:302,1
    - Dst: _PyUnicodeWriter_PrepareInternal
      Src: /src/cpython/Objects/unicode_writer.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - writer
    - kind
    argTypes:
    - _PyUnicodeWriter*
    - int
    assertStmts:
    - condition: (writer->kind < kind)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 306
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 306
    functionName: _PyUnicodeWriter_PrepareKindInternal
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - _PyUnicodeWriter_PrepareInternal
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_PrepareKindInternal(_PyUnicodeWriter *writer,\n
      \                                    int kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicode_writer.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - ch
    argTypes:
    - _PyUnicodeWriter*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: _PyUnicodeWriter_WriteChar
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 1
    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/unicode_writer.c:320,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/unicode_writer.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - writer
    - ch
    argTypes:
    - PyUnicodeWriter*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: PyUnicodeWriter_WriteChar
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 8
    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/unicode_writer.c:332,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicode_writer.c:332,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:337,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicode_writer.c:340,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:343,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicode_writer.c:343,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicode_writer.c:345,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/cpython/Objects/unicode_writer.c:346,1
    - Dst: _PyUnicodeWriter_PrepareInternal
      Src: /src/cpython/Objects/unicode_writer.c:350,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_writer.c:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(str))
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (_PyUnicode_CheckConsistency(str, 1))
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 357
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 357
    functionName: _PyUnicodeWriter_WriteStr
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 2
    functionsReached:
    - _PyUnicodeWriter_PrepareInternal
    - Py_NewRef
    - PyUnicode_Check
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_GET_LENGTH
    - assert
    - _PyUnicode_CheckConsistency
    - _PyUnicodeWriter_Update
    - PyUnicode_MAX_CHAR_VALUE
    linkageType: ''
    returnType: int
    signature: int _PyUnicodeWriter_WriteStr(_PyUnicodeWriter *writer, PyObject *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicode_writer.c:363,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicode_writer.c:365,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicode_writer.c:369,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicode_writer.c:372,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicode_writer.c:377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_writer.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - writer
    - obj
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 380
    functionName: PyUnicodeWriter_WriteStr
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 12
    functionsReached:
    - PyObject_Str
    - _PyLong_FormatWriter
    - Py_DECREF
    - _PyUnicodeWriter_WriteStr
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyUnicodeWriter_WriteStr(PyUnicodeWriter *writer, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicode_writer.c:387,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicode_writer.c:390,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicode_writer.c:391,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/unicode_writer.c:394,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicode_writer.c:399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_writer.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - writer
    - obj
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 402
    functionName: PyUnicodeWriter_WriteRepr
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 3
    functionsReached:
    - _PyLong_FormatWriter
    - _PyUnicodeWriter_WriteASCIIString
    - PyObject_Repr
    - Py_DECREF
    - _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/unicode_writer.c:409,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:410,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:410,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:411,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:413,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicode_writer.c:414,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicode_writer.c:422,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/cpython/Objects/unicode_writer.c:423,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_writer.c:428,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_writer.c:432,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: 408
        line_start: 408
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (start <= end)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (end <= PyUnicode_GET_LENGTH(str))
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 436
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 436
    functionName: _PyUnicodeWriter_WriteSubstring
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FindMaxChar
    - _PyUnicodeWriter_Prepare
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_GET_LENGTH
    - assert
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_MAX_CHAR_VALUE
    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/unicode_writer.c:443,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_writer.c:444,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_writer.c:448,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:451,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_writer.c:452,1
    - Dst: _PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Objects/unicode_writer.c:456,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: 458
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 458
    functionName: PyUnicodeWriter_WriteSubstring
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 5
    functionsReached:
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - PyUnicode_Check
    - _PyUnicodeWriter_WriteSubstring
    linkageType: ''
    returnType: int
    signature: "int PyUnicodeWriter_WriteSubstring(PyUnicodeWriter *writer, PyObject
      *str,\n                               Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/unicode_writer.c:466,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:472,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicode_writer.c:472,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicode_writer.c:477,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/cpython/Objects/unicode_writer.c:483,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_writer.c:488,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicode_writer.c:498,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicode_writer.c:503,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicode_writer.c:511,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicode_writer.c:518,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    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: 471
        line_start: 471
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 523
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 523
    functionName: _PyUnicodeWriter_WriteASCIIString
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_FromASCII
    - _PyUnicodeWriter_Prepare
    - _PyUnicode_CONVERT_BYTES
    - Py_UNREACHABLE
    - ucs1lib_find_max_char
    - memcpy
    - strlen
    - assert
    - _PyUnicodeWriter_Update
    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/unicode_writer.c:531,1
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Objects/unicode_writer.c:532,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicode_writer.c:535,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: 530
        line_start: 530
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 536
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 536
    functionName: PyUnicodeWriter_WriteASCII
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 6
    functionsReached:
    - _Py_AssertHoldsTstate
    - _PyUnicodeWriter_WriteASCIIString
    - 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/unicode_writer.c:545,1
    - Dst: _PyUnicode_DecodeUTF8Writer
      Src: /src/cpython/Objects/unicode_writer.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - writer
    - str
    - size
    argTypes:
    - PyUnicodeWriter*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 556
    functionName: PyUnicodeWriter_WriteUTF8
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 2
    functionsReached:
    - _PyUnicode_DecodeUTF8Writer
    - 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/unicode_writer.c:567,1
    - Dst: _PyUnicode_DecodeUTF8Writer
      Src: /src/cpython/Objects/unicode_writer.c:572,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: 582
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 582
    functionName: PyUnicodeWriter_DecodeUTF8Stateful
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_DecodeUTF8Writer
    - 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/unicode_writer.c:591,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_writer.c:592,1
    - Dst: unicode_write_cstr
      Src: /src/cpython/Objects/unicode_writer.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - writer
    - str
    - len
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 597
    functionName: _PyUnicodeWriter_WriteLatin1String
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Prepare
    - unicode_write_cstr
    - ucs1lib_find_max_char
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_WriteLatin1String(_PyUnicodeWriter *writer,\n
      \                                  const char *str, Py_ssize_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicode_writer.c:606,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicode_writer.c:607,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:614,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:614,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_writer.c:618,1
    - Dst: _PyUnicode_ResizeCompact
      Src: /src/cpython/Objects/unicode_writer.c:620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_writer.c:622,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:628,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicode_writer.c:628,1
    - Dst: _PyUnicode_Result
      Src: /src/cpython/Objects/unicode_writer.c:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (PyUnicode_GET_LENGTH(str) == writer->pos)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/cpython/Objects/unicode_writer.c
    - condition: (_PyUnicode_CheckConsistency(str, 1))
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 630
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 630
    functionName: _PyUnicodeWriter_Finish
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 3
    functionsReached:
    - _PyUnicode_Result
    - _PyUnicode_GetEmpty
    - Py_CLEAR
    - _PyUnicode_ResizeCompact
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    - _PyUnicode_CheckConsistency
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicodeWriter_Finish(_PyUnicodeWriter *writer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicode_writer.c:636,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_writer.c:637,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/unicode_writer.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyUnicodeWriter*
    assertStmts:
    - condition: (((_PyUnicodeWriter*)writer)->buffer == NULL)
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/cpython/Objects/unicode_writer.c
    constantsTouched: []
    func_position:
      end: 640
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 640
    functionName: PyUnicodeWriter_Finish
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 13
    functionsReached:
    - assert
    - _Py_FREELIST_FREE
    - _PyUnicodeWriter_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeWriter_Finish(PyUnicodeWriter *writer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicode_writer.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: _PyUnicodeWriter_Dealloc
    functionSourceFile: /src/cpython/Objects/unicode_writer.c
    functionUses: 4
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Dealloc(_PyUnicodeWriter *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - Py_UNUSED(ctx)
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    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:80,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: 81
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 81
    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:88,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: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(ctx)
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    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:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 109
    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:115,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:115,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:117,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:119,1
    - Dst: _Py_qbsr_goal_reached
      Src: /src/cpython/Objects/obmalloc.c:123,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: 114
        line_start: 114
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (page->qsbr_node.next == NULL)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: _PyMem_mi_page_is_safe_to_free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - mi_page_all_free
    - _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:142,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: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CONTAINER_OF
      Src: /src/cpython/Objects/obmalloc.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: tstate_from_heap
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _Py_CONTAINER_OF
    linkageType: ''
    returnType: _PyThreadStateImpl
    signature: '_PyThreadStateImpl *

      tstate_from_heap(mi_heap_t *heap)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:167,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:167,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:169,1
    - Dst: _Py_qbsr_goal_reached
      Src: /src/cpython/Objects/obmalloc.c:170,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:171,1
    - Dst: _mi_page_free
      Src: /src/cpython/Objects/obmalloc.c:172,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/obmalloc.c:181,1
    - Dst: _mi_page_unfull
      Src: /src/cpython/Objects/obmalloc.c:182,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:185,1
    - Dst: should_advance_qsbr_for_page
      Src: /src/cpython/Objects/obmalloc.c:188,1
    - Dst: _Py_qsbr_advance
      Src: /src/cpython/Objects/obmalloc.c:189,1
    - Dst: _Py_qsbr_shared_next
      Src: /src/cpython/Objects/obmalloc.c:192,1
    - Dst: tstate_from_heap
      Src: /src/cpython/Objects/obmalloc.c:197,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/obmalloc.c:197,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Objects/obmalloc.c:198,1
    - Dst: _mi_page_free
      Src: /src/cpython/Objects/obmalloc.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    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: 166
        line_start: 166
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 204
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 204
    functionName: _PyMem_mi_page_maybe_free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - tstate_from_heap
    - llist_insert_tail
    - _PyMem_mi_page_clear_qsbr
    - mi_page_heap
    - _Py_qsbr_shared_next
    - PyThreadState_GET
    - mi_page_is_in_full
    - _Py_qbsr_goal_reached
    - _mi_page_unfull
    - mi_page_all_free
    - should_advance_qsbr_for_page
    - _Py_qsbr_advance
    - 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:210,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:212,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:213,1
    - Dst: tstate_from_heap
      Src: /src/cpython/Objects/obmalloc.c:214,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/obmalloc.c:214,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:215,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:215,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Objects/obmalloc.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts:
    - condition: (page->qsbr_node.next == NULL)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (page->qsbr_node.next == NULL)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (tstate == (_PyThreadStateImpl *)_PyThreadState_GET())
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 224
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 224
    functionName: _PyMem_mi_page_reclaimed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - tstate_from_heap
    - llist_insert_tail
    - mi_page_heap
    - _PyThreadState_GET
    - mi_page_all_free
    - assert
    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:234,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:236,1
    - Dst: llist_data
      Src: /src/cpython/Objects/obmalloc.c:242,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:243,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:245,1
    - Dst: _Py_qsbr_poll
      Src: /src/cpython/Objects/obmalloc.c:249,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:253,1
    - Dst: _mi_page_free
      Src: /src/cpython/Objects/obmalloc.c:254,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/obmalloc.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 257
    functionName: _PyMem_mi_heap_collect_qsbr
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_mi_page_clear_qsbr
    - _PyThreadState_GET
    - llist_empty
    - mi_page_all_free
    - _Py_qsbr_poll
    - llist_data
    - mi_page_queue_of
    - _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:242,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/obmalloc.c:243,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:245,1
    - Dst: _Py_qsbr_poll
      Src: /src/cpython/Objects/obmalloc.c:249,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/obmalloc.c:253,1
    - Dst: _mi_page_free
      Src: /src/cpython/Objects/obmalloc.c:254,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/obmalloc.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: llist_for_each_safe
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    functionsReached:
    - _PyMem_mi_page_clear_qsbr
    - mi_page_queue_of
    - mi_page_all_free
    - _Py_qsbr_poll
    - llist_data
    - _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:263,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/obmalloc.c:265,1
    - Dst: mi_malloc
      Src: /src/cpython/Objects/obmalloc.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: _PyMem_MiMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_malloc
    - _PyThreadState_GET
    - mi_heap_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:275,1
    - Dst: mi_heap_calloc
      Src: /src/cpython/Objects/obmalloc.c:277,1
    - Dst: mi_calloc
      Src: /src/cpython/Objects/obmalloc.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: _PyMem_MiCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_calloc
    - _PyThreadState_GET
    - 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:287,1
    - Dst: mi_heap_realloc
      Src: /src/cpython/Objects/obmalloc.c:289,1
    - Dst: mi_realloc
      Src: /src/cpython/Objects/obmalloc.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: _PyMem_MiRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_realloc
    - _PyThreadState_GET
    - 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:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    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:305,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/obmalloc.c:307,1
    - Dst: mi_malloc
      Src: /src/cpython/Objects/obmalloc.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 311
    functionName: _PyObject_MiMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_malloc
    - _PyThreadState_GET
    - mi_heap_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:317,1
    - Dst: mi_heap_calloc
      Src: /src/cpython/Objects/obmalloc.c:319,1
    - Dst: mi_calloc
      Src: /src/cpython/Objects/obmalloc.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 323
    functionName: _PyObject_MiCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_calloc
    - _PyThreadState_GET
    - mi_heap_calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_MiCalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:330,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/obmalloc.c:333,1
    - Dst: mi_heap_malloc
      Src: /src/cpython/Objects/obmalloc.c:339,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:351,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:360,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Objects/obmalloc.c:361,1
    - Dst: _mi_memcpy
      Src: /src/cpython/Objects/obmalloc.c:363,1
    - Dst: _mi_memcpy
      Src: /src/cpython/Objects/obmalloc.c:366,1
    - Dst: mi_free
      Src: /src/cpython/Objects/obmalloc.c:368,1
    - Dst: mi_realloc
      Src: /src/cpython/Objects/obmalloc.c:371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - ptr
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (offset % sizeof(void*) == 0)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 373
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 373
    functionName: _PyObject_MiRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_free
    - mi_realloc
    - _Py_atomic_store_ptr_relaxed
    - _mi_memcpy
    - _PyThreadState_GET
    - memcpy
    - mi_heap_malloc
    - assert
    - mi_usable_size
    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:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    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: mi_malloc
      Src: /src/cpython/Objects/obmalloc.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: _PyMem_MiRawMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_MiRawMalloc(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_calloc
      Src: /src/cpython/Objects/obmalloc.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: _PyMem_MiRawCalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_MiRawCalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_realloc
      Src: /src/cpython/Objects/obmalloc.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: _PyMem_MiRawRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_MiRawRealloc(void *ctx, void *ptr, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_free
      Src: /src/cpython/Objects/obmalloc.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: _PyMem_MiRawFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - mi_free
    linkageType: ''
    returnType: void
    signature: void _PyMem_MiRawFree(void *ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawMalloc
      Src: /src/cpython/Objects/obmalloc.c:471,1
    - Dst: _PyMem_RawMalloc
      Src: /src/cpython/Objects/obmalloc.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 475
    functionName: _PyMem_DefaultRawMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawMalloc
    - _PyMem_DebugRawMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DefaultRawMalloc(size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawCalloc
      Src: /src/cpython/Objects/obmalloc.c:481,1
    - Dst: _PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 485
    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:491,1
    - Dst: _PyMem_RawRealloc
      Src: /src/cpython/Objects/obmalloc.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: _PyMem_DefaultRawRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawRealloc
    - _PyMem_DebugRawRealloc
    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:501,1
    - Dst: _PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 505
    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:510,1
    - Dst: wcslen
      Src: /src/cpython/Objects/obmalloc.c:512,1
    - Dst: _PyMem_DefaultRawMalloc
      Src: /src/cpython/Objects/obmalloc.c:518,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 525
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 525
    functionName: _PyMem_DefaultRawWcsdup
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DefaultRawMalloc
    - memcpy
    - wcslen
    - assert
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _PyMem_DefaultRawWcsdup(const wchar_t *str)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/cpython/Objects/obmalloc.c:557,1
    - Dst: fgets
      Src: /src/cpython/Objects/obmalloc.c:560,1
    - Dst: sscanf
      Src: /src/cpython/Objects/obmalloc.c:562,1
    - Dst: fclose
      Src: /src/cpython/Objects/obmalloc.c:567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 573
    functionName: _pymalloc_system_hugepage_size
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - fclose
    - fopen
    - sscanf
    - fgets
    linkageType: ''
    returnType: size_t
    signature: size_t _pymalloc_system_hugepage_size(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - size
    - multiple
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: _pymalloc_round_up_to_multiple
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t _pymalloc_round_up_to_multiple(size_t size, size_t multiple)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetLargePageMinimum
      Src: /src/cpython/Objects/obmalloc.c:603,1
    - Dst: _pymalloc_round_up_to_multiple
      Src: /src/cpython/Objects/obmalloc.c:605,1
    - Dst: _pymalloc_system_hugepage_size
      Src: /src/cpython/Objects/obmalloc.c:610,1
    - Dst: _pymalloc_round_up_to_multiple
      Src: /src/cpython/Objects/obmalloc.c:612,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 617
    functionName: _pymalloc_virtual_alloc_size
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _pymalloc_system_hugepage_size
    - _pymalloc_round_up_to_multiple
    - GetLargePageMinimum
    linkageType: ''
    returnType: size_t
    signature: size_t _pymalloc_virtual_alloc_size(size_t size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetLargePageMinimum
      Src: /src/cpython/Objects/obmalloc.c:625,1
    - Dst: VirtualAlloc
      Src: /src/cpython/Objects/obmalloc.c:627,1
    - Dst: VirtualAlloc
      Src: /src/cpython/Objects/obmalloc.c:636,1
    - Dst: _pymalloc_system_hugepage_size
      Src: /src/cpython/Objects/obmalloc.c:643,1
    - Dst: mmap
      Src: /src/cpython/Objects/obmalloc.c:651,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:654,1
    - Dst: _PyAnnotateMemoryMap
      Src: /src/cpython/Objects/obmalloc.c:655,1
    - Dst: mmap
      Src: /src/cpython/Objects/obmalloc.c:663,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:667,1
    - Dst: madvise
      Src: /src/cpython/Objects/obmalloc.c:669,1
    - Dst: _PyAnnotateMemoryMap
      Src: /src/cpython/Objects/obmalloc.c:671,1
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:674,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - Py_UNUSED(ctx)
    - size
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (ptr != NULL)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ptr != NULL)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 676
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 676
    functionName: _PyMem_ArenaAlloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - malloc
    - VirtualAlloc
    - _PyAnnotateMemoryMap
    - _pymalloc_system_hugepage_size
    - madvise
    - assert
    - mmap
    - GetLargePageMinimum
    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:730,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:750,1
    - Dst: set_up_debug_hooks_domain_unlocked
      Src: /src/cpython/Objects/obmalloc.c:752,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - domain
    - debug
    - old_alloc
    argTypes:
    - PyMemAllocatorDomain
    - int
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 755
    functionName: set_default_allocator_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - set_up_debug_hooks_domain_unlocked
    - get_allocator_unlocked
    - set_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:772,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:775,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:779,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:782,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:787,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:790,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:795,1
    - Dst: strcmp
      Src: /src/cpython/Objects/obmalloc.c:798,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - name
    - allocator
    argTypes:
    - char*
    - PyMemAllocatorName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 805
    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:819,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:820,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:821,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:826,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:827,1
    - Dst: set_default_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:828,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:837,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:840,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:841,1
    - Dst: set_up_debug_hooks_unlocked
      Src: /src/cpython/Objects/obmalloc.c:846,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:856,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:859,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:862,1
    - Dst: set_up_debug_hooks_unlocked
      Src: /src/cpython/Objects/obmalloc.c:867,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:878,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:879,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:880,1
    - Dst: set_up_debug_hooks_unlocked
      Src: /src/cpython/Objects/obmalloc.c:885,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyMemAllocatorName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 896
    functionName: set_up_allocators_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - set_default_allocator_unlocked
    - set_up_debug_hooks_unlocked
    - set_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:901,1
    - Dst: set_up_allocators_unlocked
      Src: /src/cpython/Objects/obmalloc.c:902,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyMemAllocatorName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 898
    functionDepth: 3
    functionLinenumber: 898
    functionLinenumberEnd: 905
    functionName: _PyMem_SetupAllocators
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - set_up_allocators_unlocked
    linkageType: ''
    returnType: int
    signature: int _PyMem_SetupAllocators(PyMemAllocatorName allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/cpython/Objects/obmalloc.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyMemAllocatorEx*
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 912
    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:928,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:929,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:930,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:935,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:936,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:937,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:943,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:944,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:945,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:955,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:956,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:957,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:960,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:961,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:962,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:967,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:968,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:969,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:975,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:976,1
    - Dst: pymemallocator_eq
      Src: /src/cpython/Objects/obmalloc.c:977,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 984
    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:989,1
    - Dst: get_current_allocator_name_unlocked
      Src: /src/cpython/Objects/obmalloc.c:990,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 993
    functionName: _PyMem_GetCurrentAllocatorName
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - get_current_allocator_name_unlocked
    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: 1000
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1000
    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:1006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1012
    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:1021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1028
    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:1044,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1050,1
    - Dst: get_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1057,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1063,1
    - Dst: get_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1070,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1076,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - domain
    argTypes:
    - PyMemAllocatorDomain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1078
    functionName: set_up_debug_hooks_domain_unlocked
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - get_allocator_unlocked
    - set_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:1084,1
    - Dst: set_up_debug_hooks_domain_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1085,1
    - Dst: set_up_debug_hooks_domain_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1088
    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:1093,1
    - Dst: set_up_debug_hooks_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1094,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1090
    functionDepth: 3
    functionLinenumber: 1090
    functionLinenumberEnd: 1096
    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: 1114
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1114
    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: 1126
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1126
    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:1131,1
    - Dst: get_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1132,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - allocator
    argTypes:
    - PyMemAllocatorDomain
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1134
    functionName: PyMem_GetAllocator
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - get_allocator_unlocked
    linkageType: ''
    returnType: void
    signature: void PyMem_GetAllocator(PyMemAllocatorDomain domain, PyMemAllocatorEx
      *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:1139,1
    - Dst: set_allocator_unlocked
      Src: /src/cpython/Objects/obmalloc.c:1140,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - allocator
    argTypes:
    - PyMemAllocatorDomain
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1142
    functionName: PyMem_SetAllocator
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    - set_allocator_unlocked
    linkageType: ''
    returnType: void
    signature: void PyMem_SetAllocator(PyMemAllocatorDomain domain, PyMemAllocatorEx
      *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:1147,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyObjectArenaAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1150
    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:1155,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyObjectArenaAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1158
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pymalloc_virtual_alloc_size
      Src: /src/cpython/Objects/obmalloc.c:1182,1
    - Dst: alloc
      Src: /src/cpython/Objects/obmalloc.c:1186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1187
    functionName: _PyObject_VirtualAlloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _pymalloc_virtual_alloc_size
    - alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_VirtualAlloc(size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pymalloc_virtual_alloc_size
      Src: /src/cpython/Objects/obmalloc.c:1192,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1193,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - size
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (alloc_size != 0 || size == 0)
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1195
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1195
    functionName: _PyObject_VirtualFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _pymalloc_virtual_alloc_size
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyObject_VirtualFree(void *obj, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:1213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1202
    functionDepth: 0
    functionLinenumber: 1202
    functionLinenumberEnd: 1214
    functionName: PyMem_RawMalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 26
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_RawMalloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/cpython/Objects/obmalloc.c:1222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1223
    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:1231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1232
    functionName: PyMem_RawRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 11
    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:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1237
    functionName: PyMem_RawFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 49
    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:1250,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1251,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1252,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1253,1
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:1254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1255
    functionName: PyMem_Malloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 129
    functionsReached:
    - malloc
    - OBJECT_STAT_INC_COND
    - OBJECT_STAT_INC
    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:1263,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1264,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1265,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1266,1
    - Dst: calloc
      Src: /src/cpython/Objects/obmalloc.c:1267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1268
    functionName: PyMem_Calloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 24
    functionsReached:
    - calloc
    - OBJECT_STAT_INC_COND
    - OBJECT_STAT_INC
    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:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1277
    functionName: PyMem_Realloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 21
    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:1282,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1284
    functionName: PyMem_Free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 301
    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:1294,1
    - Dst: wcslen
      Src: /src/cpython/Objects/obmalloc.c:1296,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Objects/obmalloc.c:1302,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:1307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 1293
        line_start: 1293
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1309
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1309
    functionName: _PyMem_RawWcsdup
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    functionsReached:
    - PyMem_RawMalloc
    - memcpy
    - wcslen
    - 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:1314,1
    - Dst: strlen
      Src: /src/cpython/Objects/obmalloc.c:1315,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Objects/obmalloc.c:1316,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 1313
        line_start: 1313
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1322
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1322
    functionName: _PyMem_RawStrdup
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_RawMalloc
    - memcpy
    - strlen
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyMem_RawStrdup(const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1327,1
    - Dst: strlen
      Src: /src/cpython/Objects/obmalloc.c:1328,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/obmalloc.c:1329,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:1333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 1326
        line_start: 1326
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1335
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1335
    functionName: _PyMem_Strdup
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 6
    functionsReached:
    - memcpy
    - PyMem_Malloc
    - strlen
    - assert
    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: 1364
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1364
    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:1369,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1373,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/obmalloc.c:1373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/obmalloc.c:1374,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1377,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/obmalloc.c:1377,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Objects/obmalloc.c:1378,1
    - Dst: cb
      Src: /src/cpython/Objects/obmalloc.c:1380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/obmalloc.c:1383,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1387,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: 1372
        line_start: 1372
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (_PyInterpreterState_GET()->stoptheworld.world_stopped)
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1389
      start: 1366
    functionDepth: 4
    functionLinenumber: 1366
    functionLinenumberEnd: 1389
    functionName: free_work_item
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - cb
    - _PyInterpreterState_GET
    - PyMem_Free
    - assert
    - Py_DECREF
    - _Py_ExplicitMergeRefcount
    - work_item_should_decref
    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: 1424
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1424
    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:1431,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/obmalloc.c:1433,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Objects/obmalloc.c:1434,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1439,1
    - Dst: work_item_should_decref
      Src: /src/cpython/Objects/obmalloc.c:1439,1
    - Dst: free_work_item
      Src: /src/cpython/Objects/obmalloc.c:1440,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:1444,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1448,1
    - Dst: llist_data
      Src: /src/cpython/Objects/obmalloc.c:1450,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/obmalloc.c:1458,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Objects/obmalloc.c:1460,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/obmalloc.c:1467,1
    - Dst: work_item_should_decref
      Src: /src/cpython/Objects/obmalloc.c:1468,1
    - Dst: _Py_ExplicitMergeRefcount
      Src: /src/cpython/Objects/obmalloc.c:1470,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1476,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/obmalloc.c:1478,1
    - Dst: _Py_Dealloc
      Src: /src/cpython/Objects/obmalloc.c:1480,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1485,1
    - Dst: should_advance_qsbr_for_free
      Src: /src/cpython/Objects/obmalloc.c:1487,1
    - Dst: _Py_qsbr_advance
      Src: /src/cpython/Objects/obmalloc.c:1488,1
    - Dst: _Py_qsbr_shared_next
      Src: /src/cpython/Objects/obmalloc.c:1491,1
    - Dst: _PyMem_ProcessDelayed
      Src: /src/cpython/Objects/obmalloc.c:1501,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: 1438
        line_start: 1438
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (buf != NULL && buf->wr_idx < WORK_ITEMS_PER_CHUNK)
      pos:
        line_end: 1484
        line_start: 1484
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1504
      start: 1427
    functionDepth: 5
    functionLinenumber: 1427
    functionLinenumberEnd: 1504
    functionName: free_delayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _Py_qsbr_shared_next
    - _PyThreadState_GET
    - llist_empty
    - _PyInterpreterState_GetFinalizing
    - _Py_Dealloc
    - assert
    - _Py_ExplicitMergeRefcount
    - _PyEval_StopTheWorld
    - PyMem_Free
    - work_item_should_decref
    - PyMem_Calloc
    - llist_insert_tail
    - _PyEval_StartTheWorld
    - should_advance_qsbr_for_free
    - llist_data
    - _Py_qsbr_advance
    - _PyMem_ProcessDelayed
    - _PyInterpreterState_GET
    - free_work_item
    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:1509,1
    - Dst: free_delayed
      Src: /src/cpython/Objects/obmalloc.c:1511,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: 1508
        line_start: 1508
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1513
      start: 1506
    functionDepth: 6
    functionLinenumber: 1506
    functionLinenumberEnd: 1513
    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:1519,1
    - Dst: free_delayed
      Src: /src/cpython/Objects/obmalloc.c:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!((uintptr_t)ptr & 0x01))
      pos:
        line_end: 1518
        line_start: 1518
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1526
      start: 1516
    functionDepth: 6
    functionLinenumber: 1516
    functionLinenumberEnd: 1526
    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:1534,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/obmalloc.c:1538,1
    - Dst: _PyObject_XDecRefDelayed
      Src: /src/cpython/Objects/obmalloc.c:1539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1541
    functionName: _PyObject_XSetRefDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _PyObject_XDecRefDelayed
    - _Py_IsImmortal
    linkageType: ''
    returnType: void
    signature: void _PyObject_XSetRefDelayed(PyObject **ptr, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_data
      Src: /src/cpython/Objects/obmalloc.c:1547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1548
    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:1554,1
    - Dst: work_queue_first
      Src: /src/cpython/Objects/obmalloc.c:1555,1
    - Dst: _Py_qsbr_poll
      Src: /src/cpython/Objects/obmalloc.c:1559,1
    - Dst: free_work_item
      Src: /src/cpython/Objects/obmalloc.c:1565,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1569,1
    - Dst: llist_remove
      Src: /src/cpython/Objects/obmalloc.c:1576,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1577,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: 1568
        line_start: 1568
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1579
      start: 1550
    functionDepth: 5
    functionLinenumber: 1550
    functionLinenumberEnd: 1579
    functionName: process_queue
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - work_queue_first
    - llist_remove
    - free_work_item
    - llist_empty
    - _Py_qsbr_poll
    - 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:1586,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Objects/obmalloc.c:1586,1
    - Dst: process_queue
      Src: /src/cpython/Objects/obmalloc.c:1587,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1589,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Objects/obmalloc.c:1590,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: 1585
        line_start: 1585
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1591
      start: 1581
    functionDepth: 6
    functionLinenumber: 1581
    functionLinenumberEnd: 1591
    functionName: process_interp_queue
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - process_queue
    - _Py_atomic_store_int_relaxed
    - llist_empty
    - assert
    - PyMutex_IsLocked
    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:1598,1
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Objects/obmalloc.c:1603,1
    - Dst: process_interp_queue
      Src: /src/cpython/Objects/obmalloc.c:1604,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1605,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: 1607
      start: 1593
    functionDepth: 7
    functionLinenumber: 1593
    functionLinenumberEnd: 1607
    functionName: maybe_process_interp_queue
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMutex_LockTimed
    - _Py_atomic_load_int_relaxed
    - process_interp_queue
    - PyMutex_Unlock
    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:1618,1
    - Dst: maybe_process_interp_queue
      Src: /src/cpython/Objects/obmalloc.c:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1609
    functionDepth: 8
    functionLinenumber: 1609
    functionLinenumberEnd: 1622
    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:1631,1
    - Dst: maybe_process_interp_queue
      Src: /src/cpython/Objects/obmalloc.c:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tstate
    - cb
    - state
    argTypes:
    - PyThreadState*
    - delayed_dealloc_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1624
    functionDepth: 8
    functionLinenumber: 1624
    functionLinenumberEnd: 1635
    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:1643,1
    - Dst: work_queue_first
      Src: /src/cpython/Objects/obmalloc.c:1648,1
    - Dst: llist_remove
      Src: /src/cpython/Objects/obmalloc.c:1650,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1651,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1652,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1652,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/obmalloc.c:1656,1
    - Dst: llist_concat
      Src: /src/cpython/Objects/obmalloc.c:1659,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/obmalloc.c:1662,1
    - Dst: process_interp_queue
      Src: /src/cpython/Objects/obmalloc.c:1663,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/obmalloc.c:1665,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1667,1
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (llist_empty(queue))
      pos:
        line_end: 1651
        line_start: 1651
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (llist_empty(queue))
      pos:
        line_end: 1666
        line_start: 1666
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1668
      start: 1637
    functionDepth: 7
    functionLinenumber: 1637
    functionLinenumberEnd: 1668
    functionName: _PyMem_AbandonDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - work_queue_first
    - PyMutex_Unlock
    - process_interp_queue
    - llist_remove
    - _PyThreadState_GET
    - llist_empty
    - PyMem_Free
    - assert
    - llist_concat
    - PyMutex_Lock
    linkageType: ''
    returnType: void
    signature: void _PyMem_AbandonDelayed(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_empty
      Src: /src/cpython/Objects/obmalloc.c:1674,1
    - Dst: work_queue_first
      Src: /src/cpython/Objects/obmalloc.c:1675,1
    - Dst: free_work_item
      Src: /src/cpython/Objects/obmalloc.c:1683,1
    - Dst: llist_remove
      Src: /src/cpython/Objects/obmalloc.c:1687,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/obmalloc.c:1688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1670
    functionDepth: 5
    functionLinenumber: 1670
    functionLinenumberEnd: 1690
    functionName: _PyMem_FiniDelayed
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - work_queue_first
    - llist_remove
    - free_work_item
    - 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:1702,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1703,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1704,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1705,1
    - Dst: malloc
      Src: /src/cpython/Objects/obmalloc.c:1706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1696
    functionDepth: 1
    functionLinenumber: 1696
    functionLinenumberEnd: 1707
    functionName: PyObject_Malloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 10
    functionsReached:
    - malloc
    - OBJECT_STAT_INC_COND
    - OBJECT_STAT_INC
    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:1715,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1716,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/obmalloc.c:1717,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/obmalloc.c:1718,1
    - Dst: calloc
      Src: /src/cpython/Objects/obmalloc.c:1719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1720
    functionName: PyObject_Calloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - calloc
    - OBJECT_STAT_INC_COND
    - OBJECT_STAT_INC
    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:1728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1722
    functionDepth: 0
    functionLinenumber: 1722
    functionLinenumberEnd: 1729
    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:1734,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1731
    functionDepth: 1
    functionLinenumber: 1731
    functionLinenumberEnd: 1736
    functionName: PyObject_Free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 22
    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: 1743
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1743
    functionName: UNLIKELY
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    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: 1744
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1744
    functionName: LIKELY
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    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: 1746
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1746
    functionName: UNLIKELY
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    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: 1747
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1747
    functionName: LIKELY
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/obmalloc.c:1770,1
    - Dst: _Py_IsMainInterpreterFinalizing
      Src: /src/cpython/Objects/obmalloc.c:1772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1767
    functionDepth: 1
    functionLinenumber: 1767
    functionLinenumberEnd: 1773
    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:1778,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (interp->obmalloc != NULL)
      pos:
        line_end: 1778
        line_start: 1778
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1781
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1781
    functionName: get_state
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 59
    functionsReached:
    - assert
    - _PyInterpreterState_GET
    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: 1802
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1802
    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:1813,1
    - Dst: _mi_abandoned_pool_visit_blocks
      Src: /src/cpython/Objects/obmalloc.c:1819,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/obmalloc.c:1824,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Objects/obmalloc.c:1825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1828
    functionName: get_mimalloc_allocated_blocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _mi_abandoned_pool_visit_blocks
    - mi_heap_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:1813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1815
    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:1835,1
    - Dst: get_mimalloc_allocated_blocks
      Src: /src/cpython/Objects/obmalloc.c:1836,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1841,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1841,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1843,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:1844,1
    - Dst: _Py_ALIGN_UP
      Src: /src/cpython/Objects/obmalloc.c:1862,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1865,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (has_own_state(interp))
      pos:
        line_end: 1840
        line_start: 1840
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (base <= (uintptr_t) allarenas[i].pool_address)
      pos:
        line_end: 1864
        line_start: 1864
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1872
      start: 1831
    functionDepth: 2
    functionLinenumber: 1831
    functionLinenumberEnd: 1872
    functionName: _PyInterpreterState_GetAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_MimallocEnabled
    - _Py_ALIGN_UP
    - _Py_FatalErrorFunc
    - assert
    - get_mimalloc_allocated_blocks
    - has_own_state
    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:1880,1
    - Dst: _PyInterpreterState_GetAllocatedBlocks
      Src: /src/cpython/Objects/obmalloc.c:1881,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1886,1
    - Dst: _PyInterpreterState_GetAllocatedBlocks
      Src: /src/cpython/Objects/obmalloc.c:1887,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1888,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1888,1
    - Dst: _PyMem_obmalloc_state_on_heap
      Src: /src/cpython/Objects/obmalloc.c:1890,1
    - Dst: free_obmalloc_arenas
      Src: /src/cpython/Objects/obmalloc.c:1898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (has_own_state(interp) || leaked == 0)
      pos:
        line_end: 1887
        line_start: 1887
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1901
      start: 1876
    functionDepth: 3
    functionLinenumber: 1876
    functionLinenumberEnd: 1901
    functionName: _PyInterpreterState_FinalizeAllocatedBlocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_obmalloc_state_on_heap
    - _PyMem_MimallocEnabled
    - free_obmalloc_arenas
    - assert
    - _PyInterpreterState_GetAllocatedBlocks
    - has_own_state
    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:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1911
    functionDepth: 1
    functionLinenumber: 1911
    functionLinenumberEnd: 1916
    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:1922,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/obmalloc.c:1923,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1929,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Objects/obmalloc.c:1929,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1932,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1934,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Objects/obmalloc.c:1934,1
    - Dst: _PyInterpreterState_GetAllocatedBlocks
      Src: /src/cpython/Objects/obmalloc.c:1935,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Objects/obmalloc.c:1939,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Objects/obmalloc.c:1940,1
    - Dst: PyInterpreterState_Head
      Src: /src/cpython/Objects/obmalloc.c:1941,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1942,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Objects/obmalloc.c:1946,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/obmalloc.c:1948,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1949,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1951,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1951,1
    - Dst: has_own_state
      Src: /src/cpython/Objects/obmalloc.c:1954,1
    - Dst: _PyInterpreterState_GetAllocatedBlocks
      Src: /src/cpython/Objects/obmalloc.c:1955,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Objects/obmalloc.c:1958,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Objects/obmalloc.c:1959,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:1961,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (has_own_state(interp))
      pos:
        line_end: 1950
        line_start: 1950
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (got_main)
      pos:
        line_end: 1960
        line_start: 1960
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (interp != NULL)
      pos:
        line_end: 1941
        line_start: 1941
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (!got_main)
      pos:
        line_end: 1948
        line_start: 1948
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (interp != NULL)
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (PyInterpreterState_Head() == NULL)
      pos:
        line_end: 1928
        line_start: 1928
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (PyInterpreterState_Next(interp) == NULL)
      pos:
        line_end: 1933
        line_start: 1933
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1967
      start: 1918
    functionDepth: 3
    functionLinenumber: 1918
    functionLinenumberEnd: 1967
    functionName: get_num_global_allocated_blocks
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - _Py_IsMainInterpreter
    - PyInterpreterState_Next
    - HEAD_LOCK
    - _PyRuntimeState_GetFinalizing
    - PyInterpreterState_Head
    - HEAD_UNLOCK
    - _PyInterpreterState_GetAllocatedBlocks
    - _PyEval_StartTheWorldAll
    - assert
    - _PyEval_StopTheWorldAll
    - _PyInterpreterState_Main
    - has_own_state
    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:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1969
    functionDepth: 4
    functionLinenumber: 1969
    functionLinenumberEnd: 1973
    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:1992,1
    - Dst: HIGH_BITS
      Src: /src/cpython/Objects/obmalloc.c:1992,1
    - Dst: HIGH_BITS
      Src: /src/cpython/Objects/obmalloc.c:1992,1
    - Dst: MAP_TOP_INDEX
      Src: /src/cpython/Objects/obmalloc.c:1993,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:1998,1
    - Dst: MAP_MID_INDEX
      Src: /src/cpython/Objects/obmalloc.c:2005,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:2010,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (HIGH_BITS(p) == HIGH_BITS(&arena_map_root))
      pos:
        line_end: 1991
        line_start: 1991
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2021
      start: 1987
    functionDepth: 1
    functionLinenumber: 1987
    functionLinenumberEnd: 2021
    functionName: 'arena_map_bot_t *

      arena_map_get(OMState *state, pymem_block *p, int create)'
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - HIGH_BITS
    - MAP_TOP_INDEX
    - MAP_MID_INDEX
    - PyMem_RawCalloc
    - 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:2052,1
    - Dst: HIGH_BITS
      Src: /src/cpython/Objects/obmalloc.c:2052,1
    - Dst: HIGH_BITS
      Src: /src/cpython/Objects/obmalloc.c:2052,1
    - Dst: arena_map_get
      Src: /src/cpython/Objects/obmalloc.c:2053,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2056,1
    - Dst: MAP_BOT_INDEX
      Src: /src/cpython/Objects/obmalloc.c:2059,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2078,1
    - Dst: arena_map_get
      Src: /src/cpython/Objects/obmalloc.c:2079,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2082,1
    - Dst: MAP_BOT_INDEX
      Src: /src/cpython/Objects/obmalloc.c:2086,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: 2051
        line_start: 2051
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (is_used)
      pos:
        line_end: 2055
        line_start: 2055
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (arena_base < arena_base_next)
      pos:
        line_end: 2077
        line_start: 2077
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (is_used)
      pos:
        line_end: 2081
        line_start: 2081
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2090
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2090
    functionName: arena_map_mark_used
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - MAP_BOT_INDEX
    - arena_map_get
    - 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:2097,1
    - Dst: MAP_BOT_INDEX
      Src: /src/cpython/Objects/obmalloc.c:2101,1
    - Dst: AS_UINT
      Src: /src/cpython/Objects/obmalloc.c:2105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - state
    - p
    argTypes:
    - OMState*
    - pymem_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2107
    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:2128,1
    - Dst: _PyObject_DebugMallocStats
      Src: /src/cpython/Objects/obmalloc.c:2133,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Objects/obmalloc.c:2152,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2163,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2164,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2179,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2182,1
    - Dst: alloc
      Src: /src/cpython/Objects/obmalloc.c:2183,1
    - Dst: arena_map_mark_used
      Src: /src/cpython/Objects/obmalloc.c:2186,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:2188,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 1
    argNames:
    - state
    argTypes:
    - OMState*
    assertStmts:
    - condition: (unused_arena_objects == NULL)
      pos:
        line_end: 2163
        line_start: 2163
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas == NULL)
      pos:
        line_end: 2162
        line_start: 2162
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (unused_arena_objects != NULL)
      pos:
        line_end: 2178
        line_start: 2178
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (arenaobj->address == 0)
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2220
      start: 2119
    functionDepth: 2
    functionLinenumber: 2119
    functionLinenumberEnd: 2220
    functionName: new_arena
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - Py_GETENV
    - free
    - PyMem_RawRealloc
    - arena_map_mark_used
    - _PyObject_DebugMallocStats
    - assert
    - alloc
    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:2231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - p
    - Py_UNUSED
    argTypes:
    - OMState*
    - void*
    - poolp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2228
    functionDepth: 2
    functionLinenumber: 2228
    functionLinenumberEnd: 2232
    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: 2323
      start: 2309
    functionDepth: 0
    functionLinenumber: 2309
    functionLinenumberEnd: 2323
    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:2334,1
    - Dst: INDEX2SIZE
      Src: /src/cpython/Objects/obmalloc.c:2337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - size
    argTypes:
    - poolp
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2348
    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:2359,1
    - Dst: new_arena
      Src: /src/cpython/Objects/obmalloc.c:2366,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2371,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2374,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2381,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2388,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2394,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2398,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2400,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2401,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2407,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2416,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2424,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2425,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2427,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2430,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2436,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2443,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2462,1
    - Dst: INDEX2SIZE
      Src: /src/cpython/Objects/obmalloc.c:2472,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 74
    argCount: 2
    argNames:
    - state
    - size
    argTypes:
    - OMState*
    - uint
    assertStmts:
    - condition: (nfp2lasta[usable_arenas->nfreepools] == NULL)
      pos:
        line_end: 2370
        line_start: 2370
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->nfreepools > 0)
      pos:
        line_end: 2380
        line_start: 2380
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "((pymem_block*)pool <= (pymem_block*)usable_arenas->address +\n
        \                                ARENA_SIZE - POOL_SIZE)"
      pos:
        line_end: 2427
        line_start: 2426
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 2406
        line_start: 2406
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 2442
        line_start: 2442
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->nfreepools > 0)
      pos:
        line_end: 2423
        line_start: 2423
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(usable_arenas->nextarena == NULL ||\n                   usable_arenas->nextarena->prevarena
        ==\n                   usable_arenas)"
      pos:
        line_end: 2437
        line_start: 2435
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 2373
        line_start: 2373
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (&allarenas[pool->arenaindex] == usable_arenas)
      pos:
        line_end: 2429
        line_start: 2429
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (nfp2lasta[usable_arenas->nfreepools - 1] == NULL)
      pos:
        line_end: 2387
        line_start: 2387
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->freepools == NULL)
      pos:
        line_end: 2399
        line_start: 2399
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(usable_arenas->nextarena == NULL ||\n                   usable_arenas->nextarena->prevarena
        ==\n                   usable_arenas)"
      pos:
        line_end: 2402
        line_start: 2400
        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: 2418
        line_start: 2415
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->freepools == NULL)
      pos:
        line_end: 2424
        line_start: 2424
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (bp != NULL)
      pos:
        line_end: 2461
        line_start: 2461
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2479
      start: 2353
    functionDepth: 3
    functionLinenumber: 2353
    functionLinenumberEnd: 2479
    functionName: allocate_from_new_pool
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - new_arena
    - INDEX2SIZE
    - UNLIKELY
    - assert
    - LIKELY
    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:2493,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2496,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2501,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2504,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2512,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2519,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2521,1
    - Dst: pymalloc_pool_extend
      Src: /src/cpython/Objects/obmalloc.c:2523,1
    - Dst: allocate_from_new_pool
      Src: /src/cpython/Objects/obmalloc.c:2530,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: 2518
        line_start: 2518
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2534
      start: 2489
    functionDepth: 4
    functionLinenumber: 2489
    functionLinenumberEnd: 2534
    functionName: pymalloc_alloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - allocate_from_new_pool
    - assert
    - LIKELY
    - pymalloc_pool_extend
    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:2540,1
    - Dst: pymalloc_alloc
      Src: /src/cpython/Objects/obmalloc.c:2541,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2542,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Objects/obmalloc.c:2546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2537
    functionDepth: 5
    functionLinenumber: 2537
    functionLinenumberEnd: 2551
    functionName: _PyObject_Malloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - LIKELY
    - pymalloc_alloc
    - PyMem_RawMalloc
    - get_state
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_Malloc(void *ctx, size_t nbytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2557,1
    - Dst: get_state
      Src: /src/cpython/Objects/obmalloc.c:2560,1
    - Dst: pymalloc_alloc
      Src: /src/cpython/Objects/obmalloc.c:2561,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2562,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:2563,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:2567,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: 2556
        line_start: 2556
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2572
      start: 2554
    functionDepth: 5
    functionLinenumber: 2554
    functionLinenumberEnd: 2572
    functionName: _PyObject_Calloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - get_state
    - PyMem_RawCalloc
    - memset
    - assert
    - LIKELY
    - pymalloc_alloc
    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:2578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - state
    - pool
    argTypes:
    - OMState*
    - poolp
    assertStmts:
    - condition: (pool->ref.count > 0)
      pos:
        line_end: 2577
        line_start: 2577
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2589
      start: 2575
    functionDepth: 0
    functionLinenumber: 2575
    functionLinenumberEnd: 2589
    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:2611,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2643,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2645,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2653,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2657,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2663,1
    - Dst: arena_map_mark_used
      Src: /src/cpython/Objects/obmalloc.c:2675,1
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:2679,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2698,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2725,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2734,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2739,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2751,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2752,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2753,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2754,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: 2615
        line_start: 2610
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(usable_arenas == NULL ||\n                   usable_arenas->address
        != 0)"
      pos:
        line_end: 2653
        line_start: 2652
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(ao->prevarena == NULL ||\n               ao->prevarena->address
        != 0)"
      pos:
        line_end: 2643
        line_start: 2642
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->prevarena->nextarena == ao)
      pos:
        line_end: 2656
        line_start: 2656
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "(ao ->nextarena == NULL ||\n               ao->nextarena->address
        != 0)"
      pos:
        line_end: 2645
        line_start: 2644
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->nextarena->prevarena == ao)
      pos:
        line_end: 2662
        line_start: 2662
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 2697
        line_start: 2697
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->nextarena != NULL)
      pos:
        line_end: 2724
        line_start: 2724
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->nextarena == NULL || nf <= ao->nextarena->nfreepools)
      pos:
        line_end: 2750
        line_start: 2750
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (usable_arenas == ao)
      pos:
        line_end: 2738
        line_start: 2738
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: "((usable_arenas == ao && ao->prevarena == NULL)\n           || ao->prevarena->nextarena
        == ao)"
      pos:
        line_end: 2754
        line_start: 2753
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->prevarena->nextarena == ao)
      pos:
        line_end: 2733
        line_start: 2733
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->nextarena == NULL || ao->nextarena->prevarena == ao)
      pos:
        line_end: 2752
        line_start: 2752
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (ao->prevarena == NULL || nf > ao->prevarena->nfreepools)
      pos:
        line_end: 2751
        line_start: 2751
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2756
      start: 2591
    functionDepth: 2
    functionLinenumber: 2591
    functionLinenumberEnd: 2756
    functionName: insert_to_freepool
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - arena_map_mark_used
    - free
    - 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:2764,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2767,1
    - Dst: POOL_ADDR
      Src: /src/cpython/Objects/obmalloc.c:2772,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2773,1
    - Dst: address_in_range
      Src: /src/cpython/Objects/obmalloc.c:2773,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2784,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2790,1
    - Dst: insert_to_usedpool
      Src: /src/cpython/Objects/obmalloc.c:2797,1
    - Dst: LIKELY
      Src: /src/cpython/Objects/obmalloc.c:2804,1
    - Dst: insert_to_freepool
      Src: /src/cpython/Objects/obmalloc.c:2814,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: 2763
        line_start: 2763
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (pool->ref.count > 0)
      pos:
        line_end: 2783
        line_start: 2783
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2816
      start: 2761
    functionDepth: 3
    functionLinenumber: 2761
    functionLinenumberEnd: 2816
    functionName: pymalloc_free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - address_in_range
    - UNLIKELY
    - insert_to_usedpool
    - assert
    - POOL_ADDR
    - LIKELY
    - insert_to_freepool
    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:2827,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2828,1
    - Dst: pymalloc_free
      Src: /src/cpython/Objects/obmalloc.c:2828,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:2830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2819
    functionDepth: 4
    functionLinenumber: 2819
    functionLinenumberEnd: 2833
    functionName: _PyObject_Free
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - UNLIKELY
    - pymalloc_free
    - get_state
    linkageType: ''
    returnType: void
    signature: void _PyObject_Free(void *ctx, void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:2853,1
    - Dst: UNLIKELY
      Src: /src/cpython/Objects/obmalloc.c:2857,1
    - Dst: POOL_ADDR
      Src: /src/cpython/Objects/obmalloc.c:2862,1
    - Dst: address_in_range
      Src: /src/cpython/Objects/obmalloc.c:2863,1
    - Dst: INDEX2SIZE
      Src: /src/cpython/Objects/obmalloc.c:2880,1
    - Dst: _PyObject_Malloc
      Src: /src/cpython/Objects/obmalloc.c:2897,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:2899,1
    - Dst: _PyObject_Free
      Src: /src/cpython/Objects/obmalloc.c:2900,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: 2852
        line_start: 2852
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2904
      start: 2845
    functionDepth: 6
    functionLinenumber: 2845
    functionLinenumberEnd: 2904
    functionName: pymalloc_realloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - address_in_range
    - INDEX2SIZE
    - UNLIKELY
    - memcpy
    - _PyObject_Malloc
    - assert
    - POOL_ADDR
    - _PyObject_Free
    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:2913,1
    - Dst: get_state
      Src: /src/cpython/Objects/obmalloc.c:2916,1
    - Dst: pymalloc_realloc
      Src: /src/cpython/Objects/obmalloc.c:2917,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Objects/obmalloc.c:2921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - ptr
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2907
    functionDepth: 7
    functionLinenumber: 2907
    functionLinenumberEnd: 2922
    functionName: _PyObject_Realloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - pymalloc_realloc
    - PyMem_RawRealloc
    - get_state
    - _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: 2934
      start: 2930
    functionDepth: 0
    functionLinenumber: 2930
    functionLinenumberEnd: 2934
    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: 2940
      start: 2936
    functionDepth: 0
    functionLinenumber: 2936
    functionLinenumberEnd: 2940
    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: 2946
      start: 2942
    functionDepth: 0
    functionLinenumber: 2942
    functionLinenumberEnd: 2946
    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: 2952
      start: 2948
    functionDepth: 0
    functionLinenumber: 2948
    functionLinenumberEnd: 2952
    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: 2975
      start: 2971
    functionDepth: 0
    functionLinenumber: 2971
    functionLinenumberEnd: 2975
    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: 2997
      start: 2987
    functionDepth: 0
    functionLinenumber: 2987
    functionLinenumberEnd: 2997
    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: 3012
      start: 3002
    functionDepth: 0
    functionLinenumber: 3002
    functionLinenumberEnd: 3012
    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:3022,1
    - Dst: _mi_ptr_page
      Src: /src/cpython/Objects/obmalloc.c:3029,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3033,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3038,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: 3039
      start: 3014
    functionDepth: 1
    functionLinenumber: 3014
    functionLinenumberEnd: 3039
    functionName: fill_mem_debug
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _mi_ptr_page
    - _PyThreadState_GET
    - 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:3097,1
    - Dst: debug_alloc_api_t*::alloc::malloc
      Src: /src/cpython/Objects/obmalloc.c:3100,1
    - Dst: bumpserialno
      Src: /src/cpython/Objects/obmalloc.c:3108,1
    - Dst: write_size_t
      Src: /src/cpython/Objects/obmalloc.c:3112,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3114,1
    - Dst: fill_mem_debug
      Src: /src/cpython/Objects/obmalloc.c:3117,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3122,1
    - Dst: write_size_t
      Src: /src/cpython/Objects/obmalloc.c:3124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - use_calloc
    - ctx
    - nbytes
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3070
    functionDepth: 2
    functionLinenumber: 3070
    functionLinenumberEnd: 3128
    functionName: _PyMem_DebugRawAlloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - write_size_t
    - debug_alloc_api_t*::alloc::calloc
    - debug_alloc_api_t*::alloc::malloc
    - memset
    - bumpserialno
    - fill_mem_debug
    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:3133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3130
    functionDepth: 3
    functionLinenumber: 3130
    functionLinenumberEnd: 3134
    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:3140,1
    - Dst: _PyMem_DebugRawAlloc
      Src: /src/cpython/Objects/obmalloc.c:3142,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: 3139
        line_start: 3139
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 3143
      start: 3136
    functionDepth: 3
    functionLinenumber: 3136
    functionLinenumberEnd: 3143
    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:3163,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3164,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3166,1
    - Dst: fill_mem_debug
      Src: /src/cpython/Objects/obmalloc.c:3167,1
    - Dst: debug_alloc_api_t*::alloc::free
      Src: /src/cpython/Objects/obmalloc.c:3168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3151
    functionDepth: 2
    functionLinenumber: 3151
    functionLinenumberEnd: 3169
    functionName: _PyMem_DebugRawFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - read_size_t
    - memset
    - _PyMem_DebugCheckAddress
    - debug_alloc_api_t*::alloc::free
    - fill_mem_debug
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugRawFree(void *ctx, void *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawAlloc
      Src: /src/cpython/Objects/obmalloc.c:3176,1
    - Dst: _PyMem_DebugCheckAddress
      Src: /src/cpython/Objects/obmalloc.c:3188,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3192,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3201,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3209,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3210,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3214,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3215,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3216,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3217,1
    - Dst: debug_alloc_api_t*::alloc::realloc
      Src: /src/cpython/Objects/obmalloc.c:3223,1
    - Dst: bumpserialno
      Src: /src/cpython/Objects/obmalloc.c:3232,1
    - Dst: write_size_t
      Src: /src/cpython/Objects/obmalloc.c:3238,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3240,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3243,1
    - Dst: write_size_t
      Src: /src/cpython/Objects/obmalloc.c:3245,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3251,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/obmalloc.c:3251,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3255,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/obmalloc.c:3255,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3257,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/obmalloc.c:3258,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 3
    argNames:
    - ctx
    - p
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3274
      start: 3172
    functionDepth: 3
    functionLinenumber: 3172
    functionLinenumberEnd: 3274
    functionName: _PyMem_DebugRawRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - write_size_t
    - read_size_t
    - Py_MIN
    - memset
    - _PyMem_DebugCheckAddress
    - memcpy
    - debug_alloc_api_t*::alloc::realloc
    - bumpserialno
    - _PyMem_DebugRawAlloc
    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:3279,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:3282,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:3286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3276
    functionDepth: 1
    functionLinenumber: 3276
    functionLinenumberEnd: 3292
    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:3297,1
    - Dst: _PyMem_DebugRawMalloc
      Src: /src/cpython/Objects/obmalloc.c:3298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3294
    functionDepth: 4
    functionLinenumber: 3294
    functionLinenumberEnd: 3299
    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:3304,1
    - Dst: _PyMem_DebugRawCalloc
      Src: /src/cpython/Objects/obmalloc.c:3305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3306
      start: 3301
    functionDepth: 4
    functionLinenumber: 3301
    functionLinenumberEnd: 3306
    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:3312,1
    - Dst: _PyMem_DebugRawFree
      Src: /src/cpython/Objects/obmalloc.c:3313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3314
      start: 3309
    functionDepth: 3
    functionLinenumber: 3309
    functionLinenumberEnd: 3314
    functionName: _PyMem_DebugFree
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugRawFree
    - _PyMem_DebugCheckGIL
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugFree(void *ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugCheckGIL
      Src: /src/cpython/Objects/obmalloc.c:3320,1
    - Dst: _PyMem_DebugRawRealloc
      Src: /src/cpython/Objects/obmalloc.c:3321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - ptr
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3317
    functionDepth: 4
    functionLinenumber: 3317
    functionLinenumberEnd: 3322
    functionName: _PyMem_DebugRealloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugCheckGIL
    - _PyMem_DebugRawRealloc
    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:3332,1
    - Dst: _PyObject_DebugDumpAddress
      Src: /src/cpython/Objects/obmalloc.c:3343,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Objects/obmalloc.c:3344,1
    - Dst: _PyObject_DebugDumpAddress
      Src: /src/cpython/Objects/obmalloc.c:3356,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:3357,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3361,1
    - Dst: _PyObject_DebugDumpAddress
      Src: /src/cpython/Objects/obmalloc.c:3365,1
    - Dst: _Py_FatalErrorFunc
      Src: /src/cpython/Objects/obmalloc.c:3366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - func
    - api
    - p
    argTypes:
    - char*
    - char
    - void*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 3331
        line_start: 3331
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 3369
      start: 3329
    functionDepth: 1
    functionLinenumber: 3329
    functionLinenumberEnd: 3369
    functionName: _PyMem_DebugCheckAddress
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - read_size_t
    - _Py_FatalErrorFunc
    - assert
    - _Py_FatalErrorFormat
    - _PyObject_DebugDumpAddress
    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:3382,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3384,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3388,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3390,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3391,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3394,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3403,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3405,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3409,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3411,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3412,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3415,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3422,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3431,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3433,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3437,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3440,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3441,1
    - Dst: read_size_t
      Src: /src/cpython/Objects/obmalloc.c:3446,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3447,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3454,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3457,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3464,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3468,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3472,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3474,1
    - Dst: fflush
      Src: /src/cpython/Objects/obmalloc.c:3476,1
    - Dst: _PyMem_DumpTraceback
      Src: /src/cpython/Objects/obmalloc.c:3477,1
    - Dst: fileno
      Src: /src/cpython/Objects/obmalloc.c:3477,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3478
      start: 3372
    functionDepth: 1
    functionLinenumber: 3372
    functionLinenumberEnd: 3478
    functionName: _PyObject_DebugDumpAddress
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - fflush
    - fileno
    - read_size_t
    - _PyMem_DumpTraceback
    - fputc
    - fputs
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _PyObject_DebugDumpAddress(const void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3488,1
    - Dst: strlen
      Src: /src/cpython/Objects/obmalloc.c:3489,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3490,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3491,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3512,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - out
    - msg
    - value
    argTypes:
    - FILE*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3515
      start: 3481
    functionDepth: 0
    functionLinenumber: 3481
    functionLinenumberEnd: 3515
    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:3523,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/obmalloc.c:3526,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3528,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: 3529
      start: 3517
    functionDepth: 1
    functionLinenumber: 3517
    functionLinenumberEnd: 3529
    functionName: _PyDebugAllocatorStats
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - printone
    - PyOS_snprintf
    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: 3546
      start: 3539
    functionDepth: 0
    functionLinenumber: 3539
    functionLinenumberEnd: 3546
    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:3555,1
    - Dst: memcpy
      Src: /src/cpython/Objects/obmalloc.c:3556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3557
      start: 3549
    functionDepth: 1
    functionLinenumber: 3549
    functionLinenumberEnd: 3557
    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:3565,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Objects/obmalloc.c:3566,1
    - Dst: init_obmalloc_pools
      Src: /src/cpython/Objects/obmalloc.c:3570,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Objects/obmalloc.c:3574,1
    - Dst: init_obmalloc_pools
      Src: /src/cpython/Objects/obmalloc.c:3578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3560
    functionDepth: 2
    functionLinenumber: 3560
    functionLinenumberEnd: 3582
    functionName: _PyMem_init_obmalloc
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - init_obmalloc_pools
    - _PyInterpreterState_HasFeature
    - PyMem_RawCalloc
    - _Py_IsMainInterpreter
    linkageType: ''
    returnType: int
    signature: int _PyMem_init_obmalloc(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/cpython/Objects/obmalloc.c:3594,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:3598,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:3613,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/obmalloc.c:3615,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3619
      start: 3587
    functionDepth: 1
    functionLinenumber: 3587
    functionLinenumberEnd: 3619
    functionName: free_obmalloc_arenas
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - PyMem_RawFree
    - free
    linkageType: ''
    returnType: void
    signature: void free_obmalloc_arenas(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - target
    - list
    argTypes:
    - poolp
    - poolp
    assertStmts:
    - condition: (target != NULL)
      pos:
        line_end: 3629
        line_start: 3629
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 3639
      start: 3626
    functionDepth: 0
    functionLinenumber: 3626
    functionLinenumberEnd: 3639
    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: 3662
      start: 3651
    functionDepth: 0
    functionLinenumber: 3651
    functionLinenumberEnd: 3662
    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:3667,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3669,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3671,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/obmalloc.c:3674,1
    - Dst: memset
      Src: /src/cpython/Objects/obmalloc.c:3676,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Objects/obmalloc.c:3677,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3679,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3680,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3681,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3682,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3684
      start: 3664
    functionDepth: 1
    functionLinenumber: 3664
    functionLinenumberEnd: 3684
    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:3691,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3720,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3748,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3757,1
    - Dst: pool_is_in_list
      Src: /src/cpython/Objects/obmalloc.c:3757,1
    - Dst: NUMBLOCKS
      Src: /src/cpython/Objects/obmalloc.c:3763,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3767,1
    - Dst: pool_is_in_list
      Src: /src/cpython/Objects/obmalloc.c:3767,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3771,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3773,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3774,1
    - Dst: INDEX2SIZE
      Src: /src/cpython/Objects/obmalloc.c:3782,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3784,1
    - Dst: fprintf
      Src: /src/cpython/Objects/obmalloc.c:3787,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3794,1
    - Dst: _PyMem_DebugEnabled
      Src: /src/cpython/Objects/obmalloc.c:3796,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3797,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3800,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3801,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3802,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3803,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/obmalloc.c:3805,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3808,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3810,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3813,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3814,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/obmalloc.c:3816,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3818,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3820,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3821,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3822,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3823,1
    - Dst: assert
      Src: /src/cpython/Objects/obmalloc.c:3824,1
    - Dst: fputs
      Src: /src/cpython/Objects/obmalloc.c:3827,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3829,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3830,1
    - Dst: fputc
      Src: /src/cpython/Objects/obmalloc.c:3831,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3833,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3835,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3837,1
    - Dst: printone
      Src: /src/cpython/Objects/obmalloc.c:3839,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 70
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts:
    - condition: (base <= (uintptr_t) allarenas[i].pool_address)
      pos:
        line_end: 3747
        line_start: 3747
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (narenas == narenas_currently_allocated)
      pos:
        line_end: 3770
        line_start: 3770
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (b == 0 && f == 0)
      pos:
        line_end: 3783
        line_start: 3783
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (narenas * ARENA_SIZE == total)
      pos:
        line_end: 3823
        line_start: 3823
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (pool_is_in_list(p, allarenas[i].freepools))
      pos:
        line_end: 3756
        line_start: 3756
        source_file: /src/cpython/Objects/obmalloc.c
    - condition: (pool_is_in_list(p, usedpools[sz + sz]))
      pos:
        line_end: 3766
        line_start: 3766
        source_file: /src/cpython/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 3843
      start: 3688
    functionDepth: 2
    functionLinenumber: 3688
    functionLinenumberEnd: 3843
    functionName: pymalloc_print_stats
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - printone
    - get_state
    - fputc
    - fputs
    - INDEX2SIZE
    - _PyMem_DebugEnabled
    - assert
    - fprintf
    - NUMBLOCKS
    - pool_is_in_list
    - PyOS_snprintf
    linkageType: ''
    returnType: void
    signature: void pymalloc_print_stats(FILE *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_MimallocEnabled
      Src: /src/cpython/Objects/obmalloc.c:3856,1
    - Dst: py_mimalloc_print_stats
      Src: /src/cpython/Objects/obmalloc.c:3857,1
    - Dst: _PyMem_PymallocEnabled
      Src: /src/cpython/Objects/obmalloc.c:3862,1
    - Dst: pymalloc_print_stats
      Src: /src/cpython/Objects/obmalloc.c:3863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3869
      start: 3852
    functionDepth: 3
    functionLinenumber: 3852
    functionLinenumberEnd: 3869
    functionName: _PyObject_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - py_mimalloc_print_stats
    - _PyMem_MimallocEnabled
    - _PyMem_PymallocEnabled
    - pymalloc_print_stats
    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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    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:31,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/sliceobject.c:31,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ellipsis_new
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ellipsis
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 46
    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:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    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:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    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:123,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/sliceobject.c:124,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/sliceobject.c:126,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/sliceobject.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (start != NULL && stop != NULL && step != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/cpython/Objects/sliceobject.c
    constantsTouched: []
    func_position:
      end: 143
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: _PyBuildSlice_ConsumeRefs
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _Py_FREELIST_POP
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop, PyObject *step)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Objects/sliceobject.c:157,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:157,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:158,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 159
    functionName: PySlice_New
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 2
    functionsReached:
    - _PyBuildSlice_ConsumeRefs
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySlice_New(PyObject *start, PyObject *stop, PyObject *step)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/sliceobject.c:165,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/sliceobject.c:168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:170,1
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Objects/sliceobject.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - istart
    - istop
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 176
    functionName: _PySlice_FromIndices
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - _PyBuildSlice_ConsumeRefs
    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:187,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/sliceobject.c:188,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/sliceobject.c:193,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/sliceobject.c:194,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/sliceobject.c:200,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/sliceobject.c:201,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: 208
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 208
    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:224,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:226,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/sliceobject.c:243,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/sliceobject.c:250,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: 254
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 254
    functionName: PySlice_Unpack
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 11
    functionsReached:
    - _PyEval_SliceIndex
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int PySlice_Unpack(PyObject *_r,\n               Py_ssize_t *start,
      Py_ssize_t *stop, Py_ssize_t *step)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/sliceobject.c:262,1
    - Dst: assert
      Src: /src/cpython/Objects/sliceobject.c:263,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: 261
        line_start: 261
        source_file: /src/cpython/Objects/sliceobject.c
    - condition: (step >= -PY_SSIZE_T_MAX)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/cpython/Objects/sliceobject.c
    constantsTouched: []
    func_position:
      end: 296
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 296
    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:305,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/sliceobject.c:307,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: 309
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 309
    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:318,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/sliceobject.c:321,1
    - Dst: PySlice_New
      Src: /src/cpython/Objects/sliceobject.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: slice_new
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PySlice_New
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:344,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/sliceobject.c:345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:348,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/sliceobject.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 350
    functionName: slice_dealloc
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_DECREF
    - _PySlice_CAST
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void slice_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:355,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/sliceobject.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: slice_repr
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PySlice_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/sliceobject.c:373,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/sliceobject.c:374,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 382
    functionName: evaluate_slice_index
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PyIndex_Check
    - PyErr_SetString
    - PyNumber_Index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      evaluate_slice_index(PyObject *v)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/sliceobject.c:399,1
    - Dst: evaluate_slice_index
      Src: /src/cpython/Objects/sliceobject.c:403,1
    - Dst: assert
      Src: /src/cpython/Objects/sliceobject.c:407,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/sliceobject.c:407,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Objects/sliceobject.c:410,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:412,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/sliceobject.c:421,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/sliceobject.c:425,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/sliceobject.c:430,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:431,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:436,1
    - Dst: evaluate_slice_index
      Src: /src/cpython/Objects/sliceobject.c:439,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/sliceobject.c:443,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/sliceobject.c:445,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:446,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/sliceobject.c:450,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:454,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:454,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/sliceobject.c:458,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:462,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:462,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:469,1
    - Dst: evaluate_slice_index
      Src: /src/cpython/Objects/sliceobject.c:472,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/sliceobject.c:476,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/sliceobject.c:478,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:479,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/sliceobject.c:483,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:487,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:487,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/sliceobject.c:491,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/sliceobject.c:495,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:504,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:509,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:510,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:511,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:512,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sliceobject.c:513,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: 406
        line_start: 406
        source_file: /src/cpython/Objects/sliceobject.c
    constantsTouched: []
    func_position:
      end: 515
      start: 388
    functionDepth: 4
    functionLinenumber: 388
    functionLinenumberEnd: 515
    functionName: _PySlice_GetLongIndices
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyObject_RichCompareBool
    - _PyLong_GetOne
    - PyErr_SetString
    - PyLong_GetSign
    - PyNumber_Add
    - _PyLong_IsNegative
    - Py_SETREF
    - PyLong_Check
    - _PyLong_GetZero
    - assert
    - Py_DECREF
    - Py_XDECREF
    - evaluate_slice_index
    - Py_NewRef
    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:522,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/sliceobject.c:528,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/sliceobject.c:532,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/sliceobject.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:535,1
    - Dst: _PySlice_GetLongIndices
      Src: /src/cpython/Objects/sliceobject.c:539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:540,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/sliceobject.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - op
    - len
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 545
    functionName: slice_indices
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PySlice_GetLongIndices
    - PyErr_SetString
    - _PySlice_CAST
    - _PyLong_IsNegative
    - Py_BuildValue
    - Py_DECREF
    - PyNumber_Index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_indices(PyObject *op, PyObject* len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_CAST
      Src: /src/cpython/Objects/sliceobject.c:558,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/sliceobject.c:559,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/sliceobject.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: slice_reduce
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PySlice_CAST
    - Py_TYPE
    - Py_BuildValue
    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:574,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/sliceobject.c:574,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sliceobject.c:591,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/sliceobject.c:595,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/sliceobject.c:603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:608,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/sliceobject.c:612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sliceobject.c:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 616
    functionName: slice_richcompare
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyTuple_Pack
    - PyObject_RichCompare
    - Py_DECREF
    - Py_NewRef
    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:621,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sliceobject.c:622,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sliceobject.c:623,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sliceobject.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 626
    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: 634
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 634
    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: 639
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 639
    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:644,1
    - Dst: _PyHASH_SLICE_PART
      Src: /src/cpython/Objects/sliceobject.c:655,1
    - Dst: _PyHASH_SLICE_PART
      Src: /src/cpython/Objects/sliceobject.c:656,1
    - Dst: _PyHASH_SLICE_PART
      Src: /src/cpython/Objects/sliceobject.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 663
    functionName: slice_hash
    functionSourceFile: /src/cpython/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PySlice_CAST
    - _PyHASH_SLICE_PART
    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: 655
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 655
    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:51,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:53,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/rangeobject.c:54,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/rangeobject.c:55,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/rangeobject.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - step
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: validate_step
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_IsZero
    - PyErr_SetString
    - Py_CLEAR
    - PyNumber_Index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      validate_step(PyObject *step)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: compute_range_length
      Src: /src/cpython/Objects/rangeobject.c:71,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/rangeobject.c:75,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/rangeobject.c:77,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - type
    - start
    - stop
    - step
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 88
    functionName: make_range_object
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_FREELIST_POP
    - PyObject_New
    - compute_range_length
    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:107,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:113,1
    - Dst: validate_step
      Src: /src/cpython/Objects/rangeobject.c:116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:119,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:124,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:128,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:129,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/rangeobject.c:132,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/rangeobject.c:136,1
    - Dst: make_range_object
      Src: /src/cpython/Objects/rangeobject.c:141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:149,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: 151
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 151
    functionName: range_from_array
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - validate_step
    - _PyLong_GetOne
    - PyErr_SetString
    - _PyLong_GetZero
    - PyErr_Format
    - Py_DECREF
    - PyNumber_Index
    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:156,1
    - Dst: range_from_array
      Src: /src/cpython/Objects/rangeobject.c:159,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/rangeobject.c:159,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/rangeobject.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: range_new
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - range_from_array
    - _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:167,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/rangeobject.c:168,1
    - Dst: range_from_array
      Src: /src/cpython/Objects/rangeobject.c:171,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: 172
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: range_vectorcall
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - range_from_array
    - PyVectorcall_NARGS
    - _PyArg_NoKwnames
    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:188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:191,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/rangeobject.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 193
    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:206,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:210,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/rangeobject.c:213,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:217,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/rangeobject.c:220,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:224,1
    - Dst: get_len_of_range
      Src: /src/cpython/Objects/rangeobject.c:228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 236
    functionName: compute_range_length_long
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - get_len_of_range
    - PyErr_Occurred
    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:255,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:256,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:258,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/rangeobject.c:258,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:259,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/rangeobject.c:259,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:260,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/rangeobject.c:260,1
    - Dst: compute_range_length_long
      Src: /src/cpython/Objects/rangeobject.c:263,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:265,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:271,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:273,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/rangeobject.c:280,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Objects/rangeobject.c:284,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:292,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:296,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:299,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:302,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Objects/rangeobject.c:305,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:318,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:320,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:321,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: 259
        line_start: 259
        source_file: /src/cpython/Objects/rangeobject.c
    - condition: (PyLong_Check(start))
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/cpython/Objects/rangeobject.c
    - condition: (len == -2)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Objects/rangeobject.c
    - condition: (PyLong_Check(stop))
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 323
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 323
    functionName: compute_range_length
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - PyObject_RichCompareBool
    - Py_INCREF
    - PyNumber_Negative
    - _PyLong_GetOne
    - PyNumber_Add
    - PyLong_Check
    - PyNumber_Subtract
    - PyNumber_FloorDivide
    - compute_range_length_long
    - _PyLong_GetZero
    - assert
    - Py_DECREF
    - Py_XDECREF
    - Py_NewRef
    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:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 330
    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:339,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:340,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:343,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - r
    - i
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 351
    functionName: compute_item
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_GetOne
    - PyNumber_Multiply
    - 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:356,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:367,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:372,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:377,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:385,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:394,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/rangeobject.c:395,1
    - Dst: compute_item
      Src: /src/cpython/Objects/rangeobject.c:400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - r
    - arg
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 403
    functionName: compute_range_item
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - compute_item
    - PyNumber_Add
    - PyErr_SetString
    - _PyLong_GetZero
    - Py_DECREF
    - Py_NewRef
    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:409,1
    - Dst: compute_range_item
      Src: /src/cpython/Objects/rangeobject.c:413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: range_item
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - 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:427,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:431,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/rangeobject.c:433,1
    - Dst: compute_item
      Src: /src/cpython/Objects/rangeobject.c:435,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/rangeobject.c:437,1
    - Dst: compute_item
      Src: /src/cpython/Objects/rangeobject.c:439,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/rangeobject.c:441,1
    - Dst: make_range_object
      Src: /src/cpython/Objects/rangeobject.c:443,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/rangeobject.c:443,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:448,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:449,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:450,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:451,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:452,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - r
    - _slice
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 418
    functionDepth: 5
    functionLinenumber: 418
    functionLinenumberEnd: 455
    functionName: compute_slice
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - compute_item
    - _PySlice_GetLongIndices
    - Py_CLEAR
    - PyNumber_Multiply
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_slice(rangeobject *r, PyObject *_slice)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:461,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:469,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:473,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:474,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:477,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:478,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:489,1
    - Dst: PyNumber_Remainder
      Src: /src/cpython/Objects/rangeobject.c:492,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:496,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:498,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:499,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - r
    - ob
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 501
    functionName: range_contains_long
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyNumber_Subtract
    - PyNumber_Remainder
    - Py_XDECREF
    - _PyLong_GetZero
    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:507,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/rangeobject.c:507,1
    - Dst: range_contains_long
      Src: /src/cpython/Objects/rangeobject.c:508,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/rangeobject.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ob
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 5
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: range_contains
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_Check
    - PyLong_CheckExact
    - range_contains_long
    - _PySequence_IterSearch
    linkageType: ''
    returnType: int
    signature: int range_contains(PyObject *self, PyObject *ob)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:536,1
    - Dst: PyObject_Not
      Src: /src/cpython/Objects/rangeobject.c:540,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:544,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:548,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:548,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - r0
    - r1
    argTypes:
    - rangeobject*
    - rangeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 553
    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:560,1
    - Dst: range_equals
      Src: /src/cpython/Objects/rangeobject.c:565,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/rangeobject.c:580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 555
    functionDepth: 5
    functionLinenumber: 555
    functionLinenumberEnd: 583
    functionName: range_richcompare
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyRange_Check
    - PyErr_BadArgument
    - range_equals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/rangeobject.c:601,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:604,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:604,1
    - Dst: PyObject_Not
      Src: /src/cpython/Objects/rangeobject.c:605,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:609,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:609,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:610,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:610,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:613,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:613,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:614,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:614,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:618,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:618,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/rangeobject.c:621,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:621,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/rangeobject.c:624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:626,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 593
    functionDepth: 4
    functionLinenumber: 593
    functionLinenumberEnd: 628
    functionName: range_hash
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - _PyLong_GetOne
    - PyObject_Hash
    - PyObject_Not
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    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:634,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/rangeobject.c:634,1
    - Dst: range_contains_long
      Src: /src/cpython/Objects/rangeobject.c:635,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:638,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/rangeobject.c:641,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/rangeobject.c:644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - ob
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 630
    functionDepth: 5
    functionLinenumber: 630
    functionLinenumberEnd: 646
    functionName: range_count
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_Check
    - _PySequence_IterSearch
    - PyLong_FromLong
    - range_contains_long
    - PyLong_CheckExact
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_count(PyObject *self, PyObject *ob)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/rangeobject.c:654,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/rangeobject.c:654,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/rangeobject.c:656,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/rangeobject.c:659,1
    - Dst: range_contains_long
      Src: /src/cpython/Objects/rangeobject.c:662,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:667,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:672,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Objects/rangeobject.c:677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:678,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/rangeobject.c:683,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - ob
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 648
    functionDepth: 5
    functionLinenumber: 648
    functionLinenumberEnd: 685
    functionName: range_index
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_Check
    - _PySequence_IterSearch
    - _PyLong_GetOne
    - PyErr_SetString
    - range_contains_long
    - PyLong_CheckExact
    - PyLong_FromSsize_t
    - PyNumber_Subtract
    - PyNumber_FloorDivide
    - Py_DECREF
    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:706,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:707,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:708,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/rangeobject.c:708,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/rangeobject.c:713,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/rangeobject.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_ExceptionMatches(PyExc_OverflowError))
      pos:
        line_end: 707
        line_start: 707
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 717
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 717
    functionName: range_repr
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_AsSsize_t
    - PyUnicode_FromFormat
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/rangeobject.c:724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/rangeobject.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 726
    functionName: range_reduce
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_reduce(PyObject *op, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/rangeobject.c:732,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/rangeobject.c:734,1
    - Dst: compute_range_item
      Src: /src/cpython/Objects/rangeobject.c:737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:738,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/rangeobject.c:741,1
    - Dst: compute_slice
      Src: /src/cpython/Objects/rangeobject.c:742,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/rangeobject.c:744,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/rangeobject.c:746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 728
    functionDepth: 6
    functionLinenumber: 728
    functionLinenumberEnd: 748
    functionName: range_subscript
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - compute_slice
    - compute_range_item
    - _PyIndex_Check
    - PyErr_Format
    - Py_DECREF
    - PyNumber_Index
    - 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:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 762
    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: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/rangeobject.c:849,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:855,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/rangeobject.c:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 859
    functionName: rangeiter_next
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_FromLong
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_next(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - _PyRangeIterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 874
    functionName: range_iterator___length_hint___impl
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iterator___length_hint___impl(_PyRangeIterObject *r)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:892,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:895,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/rangeobject.c:898,1
    - Dst: make_range_object
      Src: /src/cpython/Objects/rangeobject.c:901,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/rangeobject.c:906,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/rangeobject.c:906,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/rangeobject.c:906,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:909,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:910,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:911,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - r
    argTypes:
    - _PyRangeIterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 913
    functionName: range_iterator___reduce___impl
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - make_range_object
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - Py_XDECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iterator___reduce___impl(_PyRangeIterObject *r)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:929,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - _PyRangeIterObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: range_iterator___setstate___impl
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iterator___setstate___impl(_PyRangeIterObject *r, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/rangeobject.c:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 946
    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:1007,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - lo
    - hi
    - step
    argTypes:
    - long
    - long
    - long
    assertStmts:
    - condition: (step != 0)
      pos:
        line_end: 1006
        line_start: 1006
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 1014
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1014
    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:1022,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/rangeobject.c:1024,1
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:1029,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/rangeobject.c:1029,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: 1028
        line_start: 1028
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 1034
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1034
    functionName: fast_range_iter
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - _Py_FREELIST_POP
    - PyObject_New
    - assert
    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:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - longrangeiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1050
    functionName: longrange_iterator___length_hint___impl
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrange_iterator___length_hint___impl(longrangeiterobject *r)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:1068,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:1071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1072,1
    - Dst: make_range_object
      Src: /src/cpython/Objects/rangeobject.c:1075,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1076,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1076,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1078,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1080,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/rangeobject.c:1085,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/rangeobject.c:1085,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/rangeobject.c:1085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - r
    argTypes:
    - longrangeiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1087
    functionName: longrange_iterator___reduce___impl
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - _PyEval_GetBuiltin
    - PyNumber_Add
    - Py_BuildValue
    - PyNumber_Multiply
    - Py_DECREF
    - Py_NewRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrange_iterator___reduce___impl(longrangeiterobject *r)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/rangeobject.c:1103,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/rangeobject.c:1104,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:1108,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:1112,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:1119,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:1125,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:1128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1129,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:1132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1134,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/rangeobject.c:1139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - longrangeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1099
    functionDepth: 4
    functionLinenumber: 1099
    functionLinenumberEnd: 1142
    functionName: longrange_iterator___setstate___impl
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyNumber_Add
    - Py_SETREF
    - PyNumber_Multiply
    - PyLong_CheckExact
    - PyNumber_Subtract
    - _PyLong_GetZero
    - PyErr_Format
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrange_iterator___setstate___impl(longrangeiterobject *r, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:1155,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:1156,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/rangeobject.c:1157,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/rangeobject.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1159
    functionName: longrangeiter_dealloc
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void longrangeiter_dealloc(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/rangeobject.c:1165,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/rangeobject.c:1165,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:1168,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:1172,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:1172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1174,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/rangeobject.c:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1161
    functionDepth: 4
    functionLinenumber: 1161
    functionLinenumberEnd: 1181
    functionName: longrangeiter_next_lock_held
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - _PyLong_GetOne
    - PyNumber_Add
    - Py_SETREF
    - PyNumber_Subtract
    - _PyLong_GetZero
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_next_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/rangeobject.c:1187,1
    - Dst: longrangeiter_next_lock_held
      Src: /src/cpython/Objects/rangeobject.c:1188,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/rangeobject.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1183
    functionDepth: 5
    functionLinenumber: 1183
    functionLinenumberEnd: 1191
    functionName: longrangeiter_next
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - longrangeiter_next_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_next(PyObject *op)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:1234,1
    - Dst: PyRange_Check
      Src: /src/cpython/Objects/rangeobject.c:1234,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1238,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1239,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1240,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1244,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1245,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1248,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1249,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1250,1
    - Dst: get_len_of_range
      Src: /src/cpython/Objects/rangeobject.c:1253,1
    - Dst: fast_range_iter
      Src: /src/cpython/Objects/rangeobject.c:1268,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/rangeobject.c:1271,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1275,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1276,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1277,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyRange_Check(seq))
      pos:
        line_end: 1233
        line_start: 1233
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 1279
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1279
    functionName: range_iter
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_Clear
    - PyLong_AsLong
    - PyRange_Check
    - PyErr_Occurred
    - assert
    - get_len_of_range
    - fast_range_iter
    - Py_NewRef
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iter(PyObject *seq)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/rangeobject.c:1290,1
    - Dst: PyRange_Check
      Src: /src/cpython/Objects/rangeobject.c:1290,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1302,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1303,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1304,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1307,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1308,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1309,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/rangeobject.c:1312,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/rangeobject.c:1313,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/rangeobject.c:1314,1
    - Dst: get_len_of_range
      Src: /src/cpython/Objects/rangeobject.c:1343,1
    - Dst: fast_range_iter
      Src: /src/cpython/Objects/rangeobject.c:1349,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/rangeobject.c:1352,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/rangeobject.c:1358,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Objects/rangeobject.c:1360,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/rangeobject.c:1360,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Objects/rangeobject.c:1364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1365,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/rangeobject.c:1369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1370,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Objects/rangeobject.c:1375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/rangeobject.c:1382,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: 1289
        line_start: 1289
        source_file: /src/cpython/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 1384
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1384
    functionName: range_reverse
    functionSourceFile: /src/cpython/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Negative
    - _PyLong_GetOne
    - PyNumber_Add
    - PyNumber_Subtract
    - PyErr_Clear
    - PyLong_AsLong
    - PyRange_Check
    - PyErr_Occurred
    - assert
    - get_len_of_range
    - fast_range_iter
    - PyNumber_Multiply
    - Py_DECREF
    - Py_NewRef
    - PyObject_New
    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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    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: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    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: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    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:97,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:97,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: nodefault_new
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyErr_SetString
    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:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nodefault
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 112
    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: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    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:142,1
    - Dst: constevaluatorobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:143,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:145,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:147,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: constevaluator_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - constevaluatorobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void constevaluator_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constevaluatorobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:156,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 159
    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:164,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: constevaluator_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - constevaluatorobject_CAST
    linkageType: ''
    returnType: int
    signature: int constevaluator_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constevaluatorobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:172,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 174
    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:179,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/typevarobject.c:180,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/typevarobject.c:184,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/typevarobject.c:189,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:193,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/typevarobject.c:194,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:195,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:198,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:199,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/typevarobject.c:201,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:202,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/typevarobject.c:206,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:207,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/typevarobject.c:211,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:212,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/typevarobject.c:217,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/typevarobject.c:218,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/typevarobject.c:222,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:224,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 225
    functionName: constevaluator_call
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyTuple_GET_ITEM
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteChar
    - _Py_typing_type_repr
    - PyUnicodeWriter_Finish
    - PyTuple_Check
    - PyUnicodeWriter_WriteASCII
    - _PyArg_NoKeywords
    - PyArg_ParseTuple
    - constevaluatorobject_CAST
    - Py_NewRef
    - PyTuple_GET_SIZE
    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:230,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:231,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:232,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:236,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (tp != NULL)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: constevaluator_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - assert
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      constevaluator_alloc(PyObject *value)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typevarobject.c:277,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/typevarobject.c:282,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/typevarobject.c:285,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typevarobject.c:285,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/typevarobject.c:286,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typevarobject.c:286,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typevarobject.c:295,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typevarobject.c:295,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typevarobject.c:301,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typevarobject.c:301,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:309,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/typevarobject.c:310,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/typevarobject.c:313,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:317,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/typevarobject.c:322,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:324,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:325,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/typevarobject.c:329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:330,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 2
    argNames:
    - writer
    - p
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 332
    functionName: _Py_typing_type_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 1
    functionsReached:
    - PyObject_HasAttrWithError
    - PyUnicode_FromString
    - PyObject_Str
    - PyUnicodeWriter_WriteStr
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - _PyUnicode_EqualToASCIIString
    - PyUnicode_FromFormat
    - PyObject_Repr
    - Py_XDECREF
    - PyUnicodeWriter_WriteASCII
    - Py_DECREF
    - _Py_ID
    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:338,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typevarobject.c:342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:344,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typevarobject.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - name
    - args
    - nargs
    argTypes:
    - char*
    - PyObject**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: call_typing_func_object
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Vectorcall
    - PyImport_ImportModule
    - PyObject_GetAttrString
    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:357,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:358,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:358,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typevarobject.c:360,1
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/typevarobject.c:365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg
    - msg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 368
    functionName: type_check
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_IsNone
    - Py_DECREF
    - call_typing_func_object
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_check(PyObject *arg, const char *msg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/typevarobject.c:381,1
    - Dst: _Py_union_from_tuple
      Src: /src/cpython/Objects/typevarobject.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 388
    functionName: make_union
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - _Py_union_from_tuple
    - Py_DECREF
    - _PyTuple_FromPair
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_union(PyObject *self, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typevarobject.c:393,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typevarobject.c:397,1
    - Dst: PyFunction_GetModule
      Src: /src/cpython/Objects/typevarobject.c:400,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typevarobject.c:400,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typevarobject.c:402,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 406
    functionName: caller
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_GetModule
    - _PyThreadState_GET
    - PyErr_Clear
    - PyStackRef_AsPyObjectBorrow
    - Py_NewRef
    - PyStackRef_IsNull
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      caller(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/typevarobject.c:411,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typevarobject.c:415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:417,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/typevarobject.c:420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 424
    functionName: unpack
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyImport_ImportModule
    - PyObject_GetAttrString
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:429,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:430,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:432,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - params
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 438
    functionName: contains_typevartuple
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int contains_typevartuple(PyTupleObject *params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:443,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:443,1
    - Dst: contains_typevartuple
      Src: /src/cpython/Objects/typevarobject.c:445,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:446,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:447,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:451,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:453,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:454,1
    - Dst: unpack
      Src: /src/cpython/Objects/typevarobject.c:455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:457,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:460,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:463,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:463,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - params
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(params))
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 471
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 471
    functionName: unpack_typevartuples
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_IS_TYPE
    - _PyInterpreterState_GET
    - contains_typevartuple
    - unpack
    - PyTuple_SET_ITEM
    - PyTuple_Check
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_typevartuples(PyObject *params)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:476,1
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:477,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:479,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:481,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:482,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:483,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:484,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:485,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:486,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:487,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:488,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typevarobject.c:489,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 493
    functionName: typevar_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevarobject_CAST
    - PyObject_ClearWeakRefs
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - PyObject_ClearManagedDict
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void typevar_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:498,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:498,1
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:499,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:500,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:501,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:502,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:503,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:504,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:505,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:506,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Objects/typevarobject.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 508
    functionName: typevar_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevarobject_CAST
    - Py_VISIT
    - Py_TYPE
    - PyObject_VisitManagedDict
    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:513,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:514,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:515,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:516,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:517,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:518,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:519,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:520,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 523
    functionName: typevar_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyObject_ClearManagedDict
    - typevarobject_CAST
    linkageType: ''
    returnType: int
    signature: int typevar_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:528,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:531,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 536
    functionName: typevar_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_NewRef
    - typevarobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevar_repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevarobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:549,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:551,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:556,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 559
    functionName: typevar_bound
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyObject_CallNoArgs
    - Py_NewRef
    - 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:564,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:566,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:571,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 574
    functionName: typevar_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyObject_CallNoArgs
    - Py_NewRef
    - 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:579,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:581,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:584,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:586,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 589
    functionName: typevar_constraints
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevarobject_CAST
    - PyObject_CallNoArgs
    - Py_XNewRef
    - Py_NewRef
    - PyTuple_New
    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:594,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:596,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 602
    functionName: typevar_evaluate_bound
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - typevarobject_CAST
    - constevaluator_alloc
    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:607,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:609,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 615
    functionName: typevar_evaluate_constraints
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - typevarobject_CAST
    - constevaluator_alloc
    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:620,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:622,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 628
    functionName: typevar_evaluate_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - typevarobject_CAST
    - constevaluator_alloc
    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:647,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:648,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:649,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:654,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:656,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:657,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:658,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:659,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:660,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:666,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/typevarobject.c:669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:670,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: 647
        line_start: 647
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 676
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 676
    functionName: typevar_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - PyObject_SetAttrString
    - assert
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    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:700,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:706,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typevarobject.c:711,1
    - Dst: type_check
      Src: /src/cpython/Objects/typevarobject.c:715,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:721,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typevarobject.c:721,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:722,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:726,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:731,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:733,1
    - Dst: caller
      Src: /src/cpython/Objects/typevarobject.c:736,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:738,1
    - Dst: typevar_alloc
      Src: /src/cpython/Objects/typevarobject.c:742,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:747,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:748,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: 720
        line_start: 720
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 750
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 750
    functionName: typevar_new_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - caller
    - PyErr_SetString
    - Py_IsNone
    - Py_XDECREF
    - assert
    - typevar_alloc
    - type_check
    - PyTuple_CheckExact
    - PyTuple_GET_SIZE
    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:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - typevarobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 767
    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:783,1
    - Dst: PySequence_Index
      Src: /src/cpython/Objects/typevarobject.c:787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:789,1
    - Dst: PySequence_Length
      Src: /src/cpython/Objects/typevarobject.c:792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:799,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:800,1
    - Dst: typevar_default
      Src: /src/cpython/Objects/typevarobject.c:804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:806,1
    - Dst: PyTuple_Pack
      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:813,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Objects/typevarobject.c:816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:822,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typevarobject.c:823,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - self
    - alias
    - args
    argTypes:
    - typevarobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 827
    functionName: typevar_typing_prepare_subst_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Concat
    - PySequence_Length
    - PySequence_Index
    - typevar_default
    - PyTuple_Pack
    - PyObject_GetAttrString
    - PyErr_Format
    - Py_DECREF
    - Py_NewRef
    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:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - typevarobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 839
    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: 856
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 856
    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:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 864
    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: 951
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 951
    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:955,1
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:956,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:958,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:960,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 964
    functionName: paramspecattr_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecattrobject_CAST
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void paramspecattr_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:969,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 972
    functionName: paramspecattr_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - paramspecattrobject_CAST
    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:977,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 980
    functionName: paramspecattr_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - paramspecattrobject_CAST
    linkageType: ''
    returnType: int
    signature: int paramspecattr_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:985,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:985,1
    - Dst: paramspecattrobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:991,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/typevarobject.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 994
    functionName: paramspecattr_richcompare
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - paramspecattrobject_CAST
    - Py_TYPE
    - PyObject_RichCompare
    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:1004,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1008,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tp
    - origin
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1011
    functionName: paramspecattr_new
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_NewRef
    - _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:1016,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1017,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1018,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1019,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1023
    functionName: paramspecargs_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - paramspecattrobject_CAST
    - PyUnicode_FromFormat
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspecargs_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattr_new
      Src: /src/cpython/Objects/typevarobject.c:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - origin
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1040
    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:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1048
    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:1096,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1098,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1099,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1100,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1104
    functionName: paramspeckwargs_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - paramspecattrobject_CAST
    - PyUnicode_FromFormat
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspeckwargs_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paramspecattr_new
      Src: /src/cpython/Objects/typevarobject.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - origin
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1120
    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:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1128
    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:1176,1
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1177,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:1179,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1181,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1182,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1183,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1184,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1185,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typevarobject.c:1186,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1173
    functionDepth: 4
    functionLinenumber: 1173
    functionLinenumberEnd: 1190
    functionName: paramspec_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecobject_CAST
    - PyObject_ClearWeakRefs
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - PyObject_ClearManagedDict
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void paramspec_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1195,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1195,1
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1196,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1197,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1198,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1199,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1200,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1202
    functionName: paramspec_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecobject_CAST
    - Py_VISIT
    - Py_TYPE
    - 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:1207,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1208,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1209,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1210,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1211,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1214
    functionName: paramspec_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecobject_CAST
    - Py_CLEAR
    - PyObject_ClearManagedDict
    linkageType: ''
    returnType: int
    signature: int paramspec_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paramspecobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1219,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1222,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1227
    functionName: paramspec_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecobject_CAST
    - Py_NewRef
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      paramspec_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1241,1
    - Dst: paramspecattr_new
      Src: /src/cpython/Objects/typevarobject.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1243
    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:1248,1
    - Dst: paramspecattr_new
      Src: /src/cpython/Objects/typevarobject.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1250
    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:1255,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1257,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:1262,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1265
    functionName: paramspec_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecobject_CAST
    - Py_XNewRef
    - Py_NewRef
    - PyObject_CallNoArgs
    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:1270,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1272,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:1275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1267
    functionDepth: 2
    functionLinenumber: 1267
    functionLinenumberEnd: 1278
    functionName: paramspec_evaluate_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspecobject_CAST
    - Py_NewRef
    - constevaluator_alloc
    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:1292,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:1293,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1297,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1298,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1302,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:1304,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/typevarobject.c:1306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1307,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: 1312
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1312
    functionName: paramspec_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - PyObject_SetAttrString
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    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:1336,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1340,1
    - Dst: type_check
      Src: /src/cpython/Objects/typevarobject.c:1344,1
    - Dst: caller
      Src: /src/cpython/Objects/typevarobject.c:1349,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1351,1
    - Dst: paramspec_alloc
      Src: /src/cpython/Objects/typevarobject.c:1354,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1357,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: 1359
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1359
    functionName: paramspec_new_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - caller
    - PyErr_SetString
    - paramspec_alloc
    - Py_XDECREF
    - Py_DECREF
    - type_check
    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:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - paramspecobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1377
    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:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - alias
    - args
    argTypes:
    - paramspecobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1397
    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:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - paramspecobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1409
    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: 1425
      start: 1416
    functionDepth: 0
    functionLinenumber: 1416
    functionLinenumberEnd: 1425
    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:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1433
    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:1526,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:1527,1
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1528,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1530,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1531,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1532,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1533,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1534,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typevarobject.c:1535,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1523
    functionDepth: 4
    functionLinenumber: 1523
    functionLinenumberEnd: 1539
    functionName: typevartuple_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - typevartupleobject_CAST
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - PyObject_ClearManagedDict
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void typevartuple_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unpack
      Src: /src/cpython/Objects/typevarobject.c:1544,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typevarobject.c:1548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1550,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/typevarobject.c:1553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1557
    functionName: unpack_iter
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetIter
    - PyTuple_Pack
    - unpack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_iter(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1562,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1565,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typevarobject.c:1569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1570
    functionName: typevartuple_repr
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevartupleobject_CAST
    - Py_NewRef
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typevartuple_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:1586,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:1587,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1591,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1592,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1596,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:1598,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/typevarobject.c:1600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1601,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: 1606
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1606
    functionName: typevartuple_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - PyObject_SetAttrString
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    linkageType: ''
    returnType: typevartupleobject
    signature: "typevartupleobject *\ntypevartuple_alloc(PyObject *name, PyObject
      *bound, PyObject *default_value,\n                   bool covariant, bool contravariant,
      bool infer_variance,\n                   PyObject *module)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1630,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1634,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typevarobject.c:1637,1
    - Dst: type_check
      Src: /src/cpython/Objects/typevarobject.c:1641,1
    - Dst: caller
      Src: /src/cpython/Objects/typevarobject.c:1646,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1648,1
    - Dst: typevartuple_alloc
      Src: /src/cpython/Objects/typevarobject.c:1651,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1654,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 7
    argNames:
    - type
    - name
    - bound
    - covariant
    - contravariant
    - infer_variance
    - default_value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1623
    functionDepth: 3
    functionLinenumber: 1623
    functionLinenumberEnd: 1656
    functionName: typevartuple_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - caller
    - typevartuple_alloc
    - PyErr_SetString
    - Py_IsNone
    - Py_XDECREF
    - Py_DECREF
    - type_check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntypevartuple_impl(PyTypeObject *type, PyObject *name,
      PyObject *bound,\n                  int covariant, int contravariant, int infer_variance,\n
      \                 PyObject *default_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:1670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - typevartupleobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1672
    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:1689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - alias
    - args
    argTypes:
    - typevartupleobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1683
    functionDepth: 0
    functionLinenumber: 1683
    functionLinenumberEnd: 1692
    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:1703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - typevartupleobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1704
    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: 1721
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1721
    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:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1729
    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:1734,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1734,1
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1735,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1736,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1737,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1738,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:1739,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1731
    functionDepth: 1
    functionLinenumber: 1731
    functionLinenumberEnd: 1741
    functionName: typevartuple_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevartupleobject_CAST
    - Py_VISIT
    - Py_TYPE
    - 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:1746,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1747,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1748,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1749,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:1750,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typevarobject.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1753
    functionName: typevartuple_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - typevartupleobject_CAST
    - PyObject_ClearManagedDict
    linkageType: ''
    returnType: int
    signature: int typevartuple_clear(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typevartupleobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1758,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1760,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:1765,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1755
    functionDepth: 1
    functionLinenumber: 1755
    functionLinenumberEnd: 1768
    functionName: typevartuple_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevartupleobject_CAST
    - Py_XNewRef
    - Py_NewRef
    - PyObject_CallNoArgs
    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:1773,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1775,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:1778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1781
    functionName: typevartuple_evaluate_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevartupleobject_CAST
    - Py_NewRef
    - constevaluator_alloc
    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:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - evaluate_bound
    - evaluate_constraints
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1862
    functionDepth: 3
    functionLinenumber: 1862
    functionLinenumberEnd: 1867
    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:1872,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:1872,1
    - Dst: paramspec_alloc
      Src: /src/cpython/Objects/typevarobject.c:1873,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: 1871
        line_start: 1871
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 1874
      start: 1869
    functionDepth: 3
    functionLinenumber: 1869
    functionLinenumberEnd: 1874
    functionName: _Py_make_paramspec
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - paramspec_alloc
    - PyUnicode_Check
    - 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:1879,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:1879,1
    - Dst: typevartuple_alloc
      Src: /src/cpython/Objects/typevarobject.c:1880,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: 1878
        line_start: 1878
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 1881
      start: 1876
    functionDepth: 3
    functionLinenumber: 1876
    functionLinenumberEnd: 1881
    functionName: _Py_make_typevartuple
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typevartuple_alloc
    - PyUnicode_Check
    - 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:1886,1
    - Dst: typevar_default
      Src: /src/cpython/Objects/typevarobject.c:1887,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1889,1
    - Dst: paramspec_default
      Src: /src/cpython/Objects/typevarobject.c:1890,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1892,1
    - Dst: typevartuple_default
      Src: /src/cpython/Objects/typevarobject.c:1893,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typevarobject.c:1896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ts
    - typeparam
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1883
    functionDepth: 2
    functionLinenumber: 1883
    functionLinenumberEnd: 1899
    functionName: get_type_param_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - typevartuple_default
    - typevar_default
    - paramspec_default
    - PyErr_Format
    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:1904,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:1905,1
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:1906,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1907,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1908,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1909,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1910,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1911,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:1912,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:1913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1901
    functionDepth: 1
    functionLinenumber: 1901
    functionLinenumberEnd: 1915
    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:1921,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/typevarobject.c:1923,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ta
    argTypes:
    - typealiasobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1929
    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:1935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1931
    functionDepth: 0
    functionLinenumber: 1931
    functionLinenumberEnd: 1936
    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:1947,1
    - Dst: typealias_get_value
      Src: /src/cpython/Objects/typevarobject.c:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1944
    functionDepth: 2
    functionLinenumber: 1944
    functionLinenumberEnd: 1949
    functionName: typealias_value
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealias_get_value
    - typealiasobject_CAST
    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:1954,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1956,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:1958,1
    - Dst: constevaluator_alloc
      Src: /src/cpython/Objects/typevarobject.c:1959,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: 1957
        line_start: 1957
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 1960
      start: 1951
    functionDepth: 2
    functionLinenumber: 1951
    functionLinenumberEnd: 1960
    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:1965,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:1967,1
    - Dst: unpack_typevartuples
      Src: /src/cpython/Objects/typevarobject.c:1969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1962
    functionDepth: 3
    functionLinenumber: 1962
    functionLinenumberEnd: 1970
    functionName: typealias_parameters
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - unpack_typevartuples
    - typealiasobject_CAST
    - PyTuple_New
    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:1975,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:1977,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1972
    functionDepth: 1
    functionLinenumber: 1972
    functionLinenumberEnd: 1980
    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:1985,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/typevarobject.c:1987,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:1988,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/typevarobject.c:1989,1
    - Dst: PyFunction_GetModule
      Src: /src/cpython/Objects/typevarobject.c:1994,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:1999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1982
    functionDepth: 1
    functionLinenumber: 1982
    functionLinenumberEnd: 2003
    functionName: typealias_module
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_GetModule
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_NewRef
    - Py_XNewRef
    - typealiasobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_module(PyObject *self, void *Py_UNUSED(closure))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:2009,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/typevarobject.c:2010,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2012,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/typevarobject.c:2013,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:2014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2016
    functionName: typealias_set_module
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XDECREF
    - Py_XNewRef
    - typealiasobject_CAST
    linkageType: ''
    returnType: int
    signature: int typealias_set_module(PyObject *self, PyObject *value, void *Py_UNUSED(closure))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2038,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2038,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:2039,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typevarobject.c:2044,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2047,1
    - Dst: get_type_param_default
      Src: /src/cpython/Objects/typevarobject.c:2048,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typevarobject.c:2056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2064,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: 2037
        line_start: 2037
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 2069
      start: 2027
    functionDepth: 3
    functionLinenumber: 2027
    functionLinenumberEnd: 2069
    functionName: typealias_check_type_params
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_DECREF
    - _PyThreadState_GET
    - PyTuple_Check
    - assert
    - PyErr_Format
    - PyTuple_GET_SIZE
    - get_type_param_default
    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:2076,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2077,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:2077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - type_params
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2071
    functionDepth: 1
    functionLinenumber: 2071
    functionLinenumberEnd: 2084
    functionName: typealias_convert_type_params
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_IsNone
    - PyTuple_GET_SIZE
    - PyTuple_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_convert_type_params(PyObject *type_params)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typevarobject.c:2090,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2094,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2095,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2096,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2097,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2098,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typevarobject.c:2099,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typevarobject.c:2100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - name
    - qualname
    - type_params
    - compute_value
    - value
    - module
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2086
    functionDepth: 1
    functionLinenumber: 2086
    functionLinenumberEnd: 2102
    functionName: typealias_alloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_XNewRef
    - Py_NewRef
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: typealiasobject
    signature: "typealiasobject *\ntypealias_alloc(PyObject *name, PyObject *qualname,
      PyObject *type_params,\n                PyObject *compute_value, PyObject *value,
      PyObject *module)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typealiasobject_CAST
      Src: /src/cpython/Objects/typevarobject.c:2107,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2108,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2109,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2110,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2111,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2112,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typevarobject.c:2113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2115
    functionName: typealias_traverse
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - typealiasobject_CAST
    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:2120,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2121,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2122,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2123,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2124,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2125,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2128
    functionName: typealias_clear
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - typealiasobject_CAST
    linkageType: ''
    returnType: int
    signature: int typealias_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - typealiasobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2135
    functionDepth: 0
    functionLinenumber: 2135
    functionLinenumberEnd: 2140
    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:2145,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:2147,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Objects/typevarobject.c:2151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2152
    functionName: typealias_subscript
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - typealiasobject_CAST
    - Py_GenericAlias
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      typealias_subscript(PyObject *op, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2178,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:2179,1
    - Dst: typealias_check_type_params
      Src: /src/cpython/Objects/typevarobject.c:2184,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:2193,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:2194,1
    - Dst: caller
      Src: /src/cpython/Objects/typevarobject.c:2199,1
    - Dst: typealias_alloc
      Src: /src/cpython/Objects/typevarobject.c:2204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - type
    - name
    - value
    - type_params
    - qualname
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2173
    functionDepth: 4
    functionLinenumber: 2173
    functionLinenumberEnd: 2208
    functionName: typealias_new_impl
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealias_check_type_params
    - caller
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_Check
    - typealias_alloc
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntypealias_new_impl(PyTypeObject *type, PyObject *name,
      PyObject *value,\n                   PyObject *type_params, PyObject *qualname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2269,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2269,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2270,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:2270,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2271,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2272,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typevarobject.c:2272,1
    - Dst: typealias_convert_type_params
      Src: /src/cpython/Objects/typevarobject.c:2273,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2273,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2274,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2275,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/typevarobject.c:2275,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2280,1
    - Dst: typealias_alloc
      Src: /src/cpython/Objects/typevarobject.c:2282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - unused
    - args
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 2268
        line_start: 2268
        source_file: /src/cpython/Objects/typevarobject.c
    - condition: (PyTuple_GET_SIZE(args) == 3)
      pos:
        line_end: 2269
        line_start: 2269
        source_file: /src/cpython/Objects/typevarobject.c
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/cpython/Objects/typevarobject.c
    - condition: (PyFunction_Check(compute_value))
      pos:
        line_end: 2274
        line_start: 2274
        source_file: /src/cpython/Objects/typevarobject.c
    - condition: (qualname != NULL)
      pos:
        line_end: 2279
        line_start: 2279
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 2284
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2284
    functionName: _Py_make_typealias
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - typealias_convert_type_params
    - PyTuple_GET_ITEM
    - PyFunction_Check
    - typealias_alloc
    - PyUnicode_Check
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    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:2325,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typevarobject.c:2329,1
    - Dst: assert
      Src: /src/cpython/Objects/typevarobject.c:2333,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typevarobject.c:2333,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typevarobject.c:2334,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typevarobject.c:2335,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2339,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2339,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2341,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typevarobject.c:2342,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2342,1
    - Dst: PyObject_Call
      Src: /src/cpython/Objects/typevarobject.c:2344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2347,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:2350,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:2351,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typevarobject.c:2352,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: 2332
        line_start: 2332
        source_file: /src/cpython/Objects/typevarobject.c
    constantsTouched: []
    func_position:
      end: 2354
      start: 2321
    functionDepth: 2
    functionLinenumber: 2321
    functionLinenumberEnd: 2354
    functionName: call_typing_args_kwargs
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyTuple_GET_ITEM
    - assert
    - PyObject_Call
    - PyTuple_SET_ITEM
    - PyTuple_Check
    - PyObject_GetAttrString
    - Py_DECREF
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    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:2359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2356
    functionDepth: 3
    functionLinenumber: 2356
    functionLinenumberEnd: 2361
    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:2366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cls
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2363
    functionDepth: 3
    functionLinenumber: 2363
    functionLinenumberEnd: 2368
    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: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typevarobject.c:2373,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typevarobject.c:2375,1
    - Dst: unpack_typevartuples
      Src: /src/cpython/Objects/typevarobject.c:2378,1
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/typevarobject.c:2380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - unused
    - params
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2370
    functionDepth: 3
    functionLinenumber: 2370
    functionLinenumberEnd: 2383
    functionName: _Py_subscript_generic
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - Py_DECREF
    - call_typing_func_object
    - unpack_typevartuples
    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:2398,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typevarobject.c:2399,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typevarobject.c:2401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2395
    functionDepth: 0
    functionLinenumber: 2395
    functionLinenumberEnd: 2402
    functionName: generic_dealloc
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void generic_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2432,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2433,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2434,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2435,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2436,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2437,1
    - Dst: MAKE_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2421
    functionDepth: 1
    functionLinenumber: 2421
    functionLinenumberEnd: 2441
    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: 2431
      start: 2423
    functionDepth: 0
    functionLinenumber: 2423
    functionLinenumberEnd: 2431
    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:2445,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2446,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2447,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2448,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2449,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2450,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typevarobject.c:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2443
    functionDepth: 1
    functionLinenumber: 2443
    functionLinenumberEnd: 2452
    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:2457,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typevarobject.c:2458,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2458,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2459,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2461,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typevarobject.c:2462,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2462,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2463,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typevarobject.c:2465,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typevarobject.c:2466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typevarobject.c:2467,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typevarobject.c:2470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ts
    - typeparam
    - evaluate_default
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2473
    functionName: _Py_set_typeparam_default
    functionSourceFile: /src/cpython/Objects/typevarobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - Py_XSETREF
    - Py_NewRef
    - 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:
    - Py_ISUPPER
    - Py_ISLOWER
    - PyBool_FromLong
    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:
    - Py_ISUPPER
    - Py_ISLOWER
    - PyBool_FromLong
    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:
    - Py_ISUPPER
    - Py_ISLOWER
    - PyBool_FromLong
    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_TOUPPER
    - Py_CHARMASK
    - Py_ISUPPER
    - Py_ISLOWER
    - Py_TOLOWER
    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_bytes_lower
    - Py_TOUPPER
    linkageType: ''
    returnType: void
    signature: void _Py_bytes_capitalize(char *result, const char *s, Py_ssize_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CHARMASK
      Src: /src/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_TOUPPER
    - Py_CHARMASK
    - Py_ISUPPER
    - Py_ISLOWER
    - Py_TOLOWER
    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:360,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/bytes_methods.c:364,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytes_methods.c:368,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytes_methods.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: _Py_bytes_maketrans
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_GetData
    - PyBytesWriter_Create
    - PyErr_Format
    - PyBytesWriter_Finish
    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: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    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:406,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytes_methods.c:410,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytes_methods.c:411,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytes_methods.c:414,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:418,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytes_methods.c:419,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytes_methods.c:423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - function_name
    - subobj
    - byte
    argTypes:
    - char*
    - PyObject**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 430
    functionName: parse_args_finds_byte
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - _PyIndex_Check
    - PyErr_Format
    - PyErr_Occurred
    - PyObject_CheckBuffer
    - 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: 451
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 451
    functionName: ADJUST_INDICES
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 1
    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:464,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytes_methods.c:469,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/bytes_methods.c:480,1
    - Dst: stringlib_find_char
      Src: /src/cpython/Objects/bytes_methods.c:485,1
    - Dst: stringlib_rfind_char
      Src: /src/cpython/Objects/bytes_methods.c:489,1
    - Dst: stringlib_find_slice
      Src: /src/cpython/Objects/bytes_methods.c:497,1
    - Dst: stringlib_rfind_slice
      Src: /src/cpython/Objects/bytes_methods.c:501,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:507,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: 510
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 510
    functionName: find_internal
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - stringlib_find_slice
    - stringlib_find_char
    - stringlib_rfind_slice
    - PyBuffer_Release
    - stringlib_rfind_char
    - ADJUST_INDICES
    - PyObject_GetBuffer
    - parse_args_finds_byte
    linkageType: ''
    returnType: void
    signature: "void find_internal(const char *str, Py_ssize_t len,\n              const
      char *function_name, PyObject *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:516,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:519,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: 520
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 520
    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:526,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytes_methods.c:530,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:534,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: 535
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 535
    functionName: _Py_bytes_index
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_FromSsize_t
    - find_internal
    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:541,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:544,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: 545
      start: 537
    functionDepth: 3
    functionLinenumber: 537
    functionLinenumberEnd: 545
    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:551,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytes_methods.c:555,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:559,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: 560
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 560
    functionName: _Py_bytes_rindex
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_FromSsize_t
    - find_internal
    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:573,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytes_methods.c:578,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/bytes_methods.c:589,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytes_methods.c:591,1
    - Dst: stringlib_count
      Src: /src/cpython/Objects/bytes_methods.c:592,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:596,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: 599
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 599
    functionName: _Py_bytes_count
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - stringlib_count
    - PyObject_GetBuffer
    - ADJUST_INDICES
    - parse_args_finds_byte
    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:604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytes_methods.c:605,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytes_methods.c:608,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytes_methods.c:609,1
    - Dst: stringlib_find
      Src: /src/cpython/Objects/bytes_methods.c:611,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:613,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytes_methods.c:617,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytes_methods.c:621,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - str
    - len
    - arg
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 622
    functionName: _Py_bytes_contains
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - stringlib_find
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyBuffer_Release
    - PyErr_Clear
    - PyErr_Occurred
    - memchr
    - PyObject_GetBuffer
    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:637,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytes_methods.c:638,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytes_methods.c:639,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytes_methods.c:642,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/bytes_methods.c:648,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytes_methods.c:664,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:667,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytes_methods.c:671,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: 673
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 673
    functionName: tailmatch
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - memcmp
    - PyBytes_Check
    - PyBuffer_Release
    - PyObject_GetBuffer
    - ADJUST_INDICES
    - PyBytes_GET_SIZE
    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:681,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/bytes_methods.c:683,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/bytes_methods.c:684,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/bytes_methods.c:685,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/bytes_methods.c:695,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytes_methods.c:697,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytes_methods.c:698,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytes_methods.c:701,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytes_methods.c:705,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: 706
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 706
    functionName: _Py_bytes_tailmatch
    functionSourceFile: /src/cpython/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - tailmatch
    - PyBool_FromLong
    - PyErr_ExceptionMatches
    - PyTuple_Check
    - PyErr_Format
    - PyTuple_GET_SIZE
    - 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:712,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: 713
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 713
    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:719,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: 720
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 720
    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:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 738
    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:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyObject_GetBuffer
    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: 0
    functionsReached:
    - PyErr_SetString
    - PyPickleBuffer_Check
    - PyErr_Format
    - Py_TYPE
    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:
    - PyBuffer_Release
    - PyPickleBuffer_Check
    - PyErr_Format
    - Py_TYPE
    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:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyObject_GetBuffer
    - 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:
    - PyObject_GC_UnTrack
    - PyBuffer_Release
    - Py_TYPE
    - FT_CLEAR_WEAKREFS
    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: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    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:28,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/classobject.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    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:38,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/classobject.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/classobject.c:50,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/classobject.c:50,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/classobject.c:52,1
    - Dst: PyMethod_GET_SELF
      Src: /src/cpython/Objects/classobject.c:53,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:54,1
    - Dst: _PyObject_VectorcallPrepend
      Src: /src/cpython/Objects/classobject.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - method
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(method, &PyMethod_Type))
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/cpython/Objects/classobject.c
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: method_vectorcall
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_VectorcallPrepend
    - Py_IS_TYPE
    - PyMethod_GET_SELF
    - _PyThreadState_GET
    - assert
    - PyMethod_GET_FUNCTION
    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:68,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/classobject.c:71,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/classobject.c:73,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:79,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:80,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/classobject.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - func
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: PyMethod_New
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 3
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - _Py_FREELIST_POP
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMethod_New(PyObject *func, PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_GET_SELF
      Src: /src/cpython/Objects/classobject.c:94,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:95,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:96,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:96,1
    - Dst: _Py_IsPrivateName
      Src: /src/cpython/Objects/classobject.c:100,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/classobject.c:101,1
    - Dst: PyType_GetName
      Src: /src/cpython/Objects/classobject.c:102,1
    - Dst: PyType_GetName
      Src: /src/cpython/Objects/classobject.c:103,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:105,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/classobject.c:108,1
    - Dst: _Py_Mangle
      Src: /src/cpython/Objects/classobject.c:108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:109,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/classobject.c:114,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/classobject.c:115,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMethodObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 116
    functionName: method___reduce___impl
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _Py_Mangle
    - Py_DECREF
    - _PyEval_GetBuiltin
    - PyType_Check
    - Py_SETREF
    - PyObject_GetAttr
    - Py_BuildValue
    - PyMethod_GET_SELF
    - _Py_IsPrivateName
    - PyType_GetName
    - PyMethod_GET_FUNCTION
    - Py_TYPE
    - _Py_ID
    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: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    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:145,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:146,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: method_get_doc
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _PyMethodObject_CAST
    - PyObject_GetAttr
    - _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:158,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/classobject.c:162,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/classobject.c:163,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/classobject.c:166,1
    - Dst: TP_DESCR_GET
      Src: /src/cpython/Objects/classobject.c:170,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:170,1
    - Dst: f
      Src: /src/cpython/Objects/classobject.c:172,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:173,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 182
    functionName: method_getattro
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _PyType_IsReady
    - _PyType_LookupRef
    - PyObject_GetAttr
    - TP_DESCR_GET
    - Py_DECREF
    - f
    - PyType_Ready
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_getattro(PyObject *obj, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/classobject.c:198,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/classobject.c:199,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/classobject.c:204,1
    - Dst: PyMethod_New
      Src: /src/cpython/Objects/classobject.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - type
    - function
    - instance
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 210
    functionName: method_new_impl
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyErr_SetString
    - 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:215,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/classobject.c:216,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/classobject.c:217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:218,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/classobject.c:219,1
    - Dst: assert
      Src: /src/cpython/Objects/classobject.c:220,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/classobject.c:220,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/classobject.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(self, &PyMethod_Type))
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/cpython/Objects/classobject.c
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: method_dealloc
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_IS_TYPE
    - _PyMethodObject_CAST
    - Py_XDECREF
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void method_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/cpython/Objects/classobject.c:232,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Objects/classobject.c:233,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/classobject.c:239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 250
    functionName: method_richcompare
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_NewRef
    - PyMethod_Check
    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:255,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/classobject.c:261,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:261,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/classobject.c:263,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:263,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/classobject.c:268,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/classobject.c:269,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/classobject.c:273,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/classobject.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: method_repr
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - PyUnicode_FromFormat
    - _PyMethodObject_CAST
    - Py_XDECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_repr(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMethodObject_CAST
      Src: /src/cpython/Objects/classobject.c:283,1
    - Dst: PyObject_GenericHash
      Src: /src/cpython/Objects/classobject.c:284,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/classobject.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 295
    functionName: method_hash
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _PyMethodObject_CAST
    - 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:300,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/classobject.c:301,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/classobject.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 304
    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:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - meth
    - obj
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 311
    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:349,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:352,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/classobject.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 355
    functionName: PyInstanceMethod_New
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_NewRef
    - _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:360,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/classobject.c:361,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 365
    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: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    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:378,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:378,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: instancemethod_get_doc
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - PyObject_GetAttr
    - _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:390,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/classobject.c:393,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/classobject.c:394,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/classobject.c:397,1
    - Dst: TP_DESCR_GET
      Src: /src/cpython/Objects/classobject.c:400,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:400,1
    - Dst: f
      Src: /src/cpython/Objects/classobject.c:402,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/classobject.c:402,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:403,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/classobject.c:411,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 412
    functionName: instancemethod_getattro
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - _PyType_IsReady
    - _PyType_LookupRef
    - PyObject_GetAttr
    - TP_DESCR_GET
    - Py_DECREF
    - f
    - PyType_Ready
    - Py_TYPE
    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:416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/classobject.c:417,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:417,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/classobject.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: instancemethod_dealloc
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - PyInstanceMethod_GET_FUNCTION
    linkageType: ''
    returnType: void
    signature: void instancemethod_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/classobject.c:423,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 425
    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:430,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: instancemethod_call
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - PyInstanceMethod_GET_FUNCTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_call(PyObject *self, PyObject *arg, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/cpython/Objects/classobject.c:435,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:437,1
    - Dst: PyMethod_New
      Src: /src/cpython/Objects/classobject.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - descr
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 441
    functionName: instancemethod_descr_get
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - Py_NewRef
    - 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:451,1
    - Dst: PyInstanceMethod_Check
      Src: /src/cpython/Objects/classobject.c:452,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/classobject.c:458,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/classobject.c:465,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 443
    functionDepth: 4
    functionLinenumber: 443
    functionLinenumberEnd: 466
    functionName: instancemethod_richcompare
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_NewRef
    - PyInstanceMethod_Check
    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:471,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/classobject.c:476,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/classobject.c:480,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/classobject.c:480,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/classobject.c:483,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/classobject.c:484,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/classobject.c:487,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/classobject.c:490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 492
    functionName: instancemethod_repr
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - PyUnicode_Check
    - PyInstanceMethod_Function
    - PyErr_BadInternalCall
    - PyObject_GetOptionalAttr
    - PyUnicode_FromFormat
    - Py_XDECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/classobject.c:507,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/classobject.c:508,1
    - Dst: PyInstanceMethod_New
      Src: /src/cpython/Objects/classobject.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - function
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 514
    functionName: instancemethod_new_impl
    functionSourceFile: /src/cpython/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyErr_SetString
    - PyInstanceMethod_New
    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:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    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: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    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: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    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: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    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: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    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: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    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: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    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: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    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: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    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: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    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: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    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:198,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Objects/dictobject.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: load_keys_nentries
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr
    - _Py_atomic_load_ssize
    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:205,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/dictobject.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mp
    - keys
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    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:212,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/dictobject.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mp
    - values
    argTypes:
    - PyDictObject*
    - PyDictValues*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 214
    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: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    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: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    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: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    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: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    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: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    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: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    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: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    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: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    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: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    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: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    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:233,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:237,1
    - Dst: _Py_atomic_store_ssize_release
      Src: /src/cpython/Objects/dictobject.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: split_keys_entry_added
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ssize_relaxed
    - ASSERT_KEYS_LOCKED
    - _Py_atomic_store_ssize_release
    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: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    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: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    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: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    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: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    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: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    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: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    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: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    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: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    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: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    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: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    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: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    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: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:296,1
    - Dst: PyUnstable_Object_IsUniquelyReferenced
      Src: /src/cpython/Objects/dictobject.c:299,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/dictobject.c:299,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 307
    functionName: can_modify_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Object_IsUniquelyReferenced
    - _PyObject_CAST
    - ASSERT_DICT_LOCKED
    - PyFrozenDict_Check
    linkageType: ''
    returnType: int
    signature: int can_modify_dict(PyDictObject *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: _PyAnyDict_CAST
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyAnyDict_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: GET_USED
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_USED(ep)
  - 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: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    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: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    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: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    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: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    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: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    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: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    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: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    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: PyUnstable_Unicode_GET_CACHED_HASH
      Src: /src/cpython/Objects/dictobject.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: unicode_get_hash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Unicode_GET_CACHED_HASH
    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:444,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/dictobject.c:445,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Objects/dictobject.c:446,1
    - Dst: _PyDebugAllocatorStats
      Src: /src/cpython/Objects/dictobject.c:447,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/dictobject.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: _PyDict_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyType_PreHeaderSize
    - _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: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    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:468,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:469,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:469,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/dictobject.c:473,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:473,1
    - Dst: INCREF_KEYS
      Src: /src/cpython/Objects/dictobject.c:475,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: 468
        line_start: 468
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 476
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 476
    functionName: dictkeys_incref
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_IncRefTotal
    - INCREF_KEYS
    - _PyThreadState_GET
    - assert
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    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:481,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:482,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:482,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:485,1
    - Dst: FT_ATOMIC_LOAD_SSIZE
      Src: /src/cpython/Objects/dictobject.c:485,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/dictobject.c:487,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:487,1
    - Dst: DECREF_KEYS
      Src: /src/cpython/Objects/dictobject.c:489,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:490,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:491,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:494,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:495,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:499,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:502,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:503,1
    - Dst: free_keys_object
      Src: /src/cpython/Objects/dictobject.c:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dk
    - use_qsbr
    argTypes:
    - PyDictKeysObject*
    - bool
    assertStmts:
    - condition: (FT_ATOMIC_LOAD_SSIZE(dk->dk_refcnt) > 0)
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (FT_ATOMIC_LOAD_SSIZE_RELAXED(dk->dk_refcnt) == _Py_DICT_IMMORTAL_INITIAL_REFCNT)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 508
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 508
    functionName: dictkeys_decref
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DECREF_KEYS
    - free_keys_object
    - DK_IS_UNICODE
    - FT_ATOMIC_LOAD_SSIZE
    - _PyThreadState_GET
    - DK_ENTRIES
    - _Py_DecRefTotal
    - Py_XDECREF
    - assert
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - DK_UNICODE_ENTRIES
    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:514,1
    - Dst: LOAD_INDEX
      Src: /src/cpython/Objects/dictobject.c:518,1
    - Dst: LOAD_INDEX
      Src: /src/cpython/Objects/dictobject.c:521,1
    - Dst: LOAD_INDEX
      Src: /src/cpython/Objects/dictobject.c:525,1
    - Dst: LOAD_INDEX
      Src: /src/cpython/Objects/dictobject.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - keys
    - i
    argTypes:
    - PyDictKeysObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 530
    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:539,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:541,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:542,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:545,1
    - Dst: STORE_INDEX
      Src: /src/cpython/Objects/dictobject.c:546,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:549,1
    - Dst: STORE_INDEX
      Src: /src/cpython/Objects/dictobject.c:550,1
    - Dst: STORE_INDEX
      Src: /src/cpython/Objects/dictobject.c:554,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:558,1
    - Dst: STORE_INDEX
      Src: /src/cpython/Objects/dictobject.c:559,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: 544
        line_start: 544
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix >= DKIX_DUMMY)
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (keys->dk_version == 0)
      pos:
        line_end: 541
        line_start: 541
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix <= 0x7fff)
      pos:
        line_end: 548
        line_start: 548
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix <= 0x7fffffff)
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 560
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 560
    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: 576
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 576
    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:582,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Objects/dictobject.c:583,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/dictobject.c:586,1
    - Dst: _BitScanReverse64
      Src: /src/cpython/Objects/dictobject.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - minsize
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 598
    functionName: calculate_log2_keysize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_bit_length
    - _BitScanReverse64
    - Py_MAX
    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:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 609
    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: 623
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 623
    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: 652
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 652
    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: 654
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 654
    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:659,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:660,1
    - Dst: get_insertion_order_array
      Src: /src/cpython/Objects/dictobject.c:661,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: 658
        line_start: 658
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i < mp->ma_values->size)
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 663
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 663
    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:670,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:671,1
    - Dst: printf
      Src: /src/cpython/Objects/dictobject.c:672,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:675,1
    - Dst: printf
      Src: /src/cpython/Objects/dictobject.c:676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dk
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 679
    functionName: dump_entries
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_IS_UNICODE
    - printf
    - DK_ENTRIES
    - DK_UNICODE_ENTRIES
    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:685,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:690,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:691,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:691,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:695,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:696,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:696,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_ACQUIRE
      Src: /src/cpython/Objects/dictobject.c:700,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_ACQUIRE
      Src: /src/cpython/Objects/dictobject.c:701,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:703,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:704,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:705,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:706,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:710,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:711,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:714,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:715,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:717,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:718,1
    - Dst: LOCK_KEYS_IF_SPLIT
      Src: /src/cpython/Objects/dictobject.c:723,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:724,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:725,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:726,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:730,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:737,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:738,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:740,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:741,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:742,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:748,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:754,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:754,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:755,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:756,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:758,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:763,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:769,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:773,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:774,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:776,1
    - Dst: UNLOCK_KEYS_IF_SPLIT
      Src: /src/cpython/Objects/dictobject.c:779,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 784
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 784
    functionName: _PyDict_CheckConsistency
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_DICT_LOCKED
    - PyAnyDict_Check
    - DK_SIZE
    - USABLE_FRACTION
    - unicode_get_hash
    - PyUnicode_CheckExact
    - UNLOCK_KEYS_IF_SPLIT
    - FT_ATOMIC_LOAD_SSIZE_ACQUIRE
    - CHECK
    - DK_ENTRIES
    - _PyDict_HasSplitTable
    - assert
    - dictkeys_get_index
    - DK_UNICODE_ENTRIES
    - get_index_from_order
    - LOCK_KEYS_IF_SPLIT
    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: 689
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 689
    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:794,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:796,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: 793
        line_start: 793
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 810
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 810
    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:848,1
    - Dst: _PyDict_KeysSize
      Src: /src/cpython/Objects/dictobject.c:848,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:852,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/dictobject.c:853,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/dictobject.c:856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - keys
    - use_qsbr
    argTypes:
    - PyDictKeysObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 843
    functionDepth: 7
    functionLinenumber: 843
    functionLinenumberEnd: 858
    functionName: free_keys_object
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyMem_FreeDelayed
    - DK_LOG_SIZE
    - _PyDict_KeysSize
    - PyMem_Free
    - _Py_FREELIST_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:863,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Objects/dictobject.c:864,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:865,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - count
    argTypes:
    - size_t
    assertStmts:
    - condition: (count >= 1)
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (suffix_size < 128)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (suffix_size % sizeof(PyObject *) == 0)
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 868
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 868
    functionName: values_size_from_count
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_SIZE_ROUND_UP
    - assert
    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: 871
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 871
    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:875,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/dictobject.c:876,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts:
    - condition: (size < 256)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 885
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 885
    functionName: new_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - values_size_from_count
    - PyMem_Malloc
    linkageType: ''
    returnType: PyDictValues
    signature: 'PyDictValues *

      new_values(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:890,1
    - Dst: _PyMem_FreeDelayed
      Src: /src/cpython/Objects/dictobject.c:893,1
    - Dst: values_size_from_count
      Src: /src/cpython/Objects/dictobject.c:893,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/dictobject.c:897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - values
    - use_qsbr
    argTypes:
    - PyDictValues*
    - bool
    assertStmts:
    - condition: (values->embedded == 0)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 898
      start: 887
    functionDepth: 7
    functionLinenumber: 887
    functionLinenumberEnd: 898
    functionName: free_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyMem_FreeDelayed
    - values_size_from_count
    - PyMem_Free
    - 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:905,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:907,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:909,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:921,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - mp
    - keys
    - values
    - used
    - free_values_on_failure
    - frozendict
    argTypes:
    - PyDictObject*
    - PyDictKeysObject*
    - PyDictValues*
    - Py_ssize_t
    - int
    - int
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 924
      start: 900
    functionDepth: 8
    functionLinenumber: 900
    functionLinenumberEnd: 924
    functionName: new_dict_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - ASSERT_CONSISTENT
    - free_values
    - dictkeys_decref
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_dict_impl(PyDictObject *mp, PyDictKeysObject *keys,\n
      \             PyDictValues *values, Py_ssize_t used,\n              int free_values_on_failure,
      int frozendict)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/dictobject.c:931,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:933,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:935,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:935,1
    - Dst: new_dict_impl
      Src: /src/cpython/Objects/dictobject.c:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - keys
    - values
    - used
    - free_values_on_failure
    argTypes:
    - PyDictKeysObject*
    - PyDictValues*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (mp == NULL || Py_IS_TYPE(mp, &PyDict_Type))
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 938
      start: 927
    functionDepth: 9
    functionLinenumber: 927
    functionLinenumberEnd: 938
    functionName: new_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_IS_TYPE
    - new_dict_impl
    - _Py_FREELIST_POP
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_dict(PyDictKeysObject *keys, PyDictValues *values,\n
      \        Py_ssize_t used, int free_values_on_failure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:945,1
    - Dst: new_dict_impl
      Src: /src/cpython/Objects/dictobject.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keys
    - values
    - used
    - free_values_on_failure
    argTypes:
    - PyDictKeysObject*
    - PyDictValues*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 941
    functionDepth: 9
    functionLinenumber: 941
    functionLinenumberEnd: 947
    functionName: new_frozendict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - new_dict_impl
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_frozendict(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:952,1
    - Dst: new_values
      Src: /src/cpython/Objects/dictobject.c:953,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:955,1
    - Dst: dictkeys_incref
      Src: /src/cpython/Objects/dictobject.c:957,1
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 949
    functionDepth: 10
    functionLinenumber: 949
    functionLinenumberEnd: 962
    functionName: new_dict_with_shared_keys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - new_values
    - PyErr_NoMemory
    - new_dict
    - dictkeys_incref
    - shared_keys_usable_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_dict_with_shared_keys(PyDictKeysObject *keys)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:968,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:968,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:969,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:969,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:970,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:971,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:972,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:974,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:975,1
    - Dst: _PyDict_KeysSize
      Src: /src/cpython/Objects/dictobject.c:978,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/dictobject.c:979,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:981,1
    - Dst: memcpy
      Src: /src/cpython/Objects/dictobject.c:985,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:992,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:993,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:999,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:1009,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:1010,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/dictobject.c:1021,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:1021,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - orig
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (orig->ma_values == NULL)
      pos:
        line_end: 969
        line_start: 969
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_TYPE(orig)->tp_iter == dict_iter)
      pos:
        line_end: 968
        line_start: 968
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyAnyDict_Check(orig))
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (orig->ma_keys != Py_EMPTY_KEYS)
      pos:
        line_end: 970
        line_start: 970
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (orig->ma_keys->dk_refcnt == 1)
      pos:
        line_end: 971
        line_start: 971
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1024
      start: 965
    functionDepth: 3
    functionLinenumber: 965
    functionLinenumberEnd: 1024
    functionName: clone_combined_dict_keys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_IncRefTotal
    - PyAnyDict_Check
    - Py_INCREF
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyFrozenDict_Check
    - ASSERT_DICT_LOCKED
    - DK_IS_UNICODE
    - _PyThreadState_GET
    - DK_ENTRIES
    - _PyDict_KeysSize
    - memcpy
    - assert
    - DK_UNICODE_ENTRIES
    - Py_TYPE
    linkageType: ''
    returnType: PyDictKeysObject
    signature: 'PyDictKeysObject *

      clone_combined_dict_keys(PyDictObject *orig)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1026
    functionDepth: 10
    functionLinenumber: 1026
    functionLinenumberEnd: 1031
    functionName: PyDict_New
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 87
    functionsReached:
    - new_dict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:1037,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1042,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/dictobject.c:1052,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: 1053
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1053
    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:1059,1
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:1060,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1065,1
    - Dst: check_lookup
      Src: /src/cpython/Objects/dictobject.c:1067,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1081,1
    - Dst: check_lookup
      Src: /src/cpython/Objects/dictobject.c:1083,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/dictobject.c:1096,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: 1097
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1097
    functionName: do_lookup
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - check_lookup
    - Py_UNREACHABLE
    - _DK_ENTRIES
    - DK_MASK
    - dictkeys_get_index
    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:1104,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1105,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1105,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1106,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1106,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1108,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:1110,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:1111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1112,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: 1103
        line_start: 1103
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(ep->me_key))
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (!PyUnicode_CheckExact(key))
      pos:
        line_end: 1105
        line_start: 1105
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1125
      start: 1099
    functionDepth: 4
    functionLinenumber: 1099
    functionLinenumberEnd: 1125
    functionName: compare_unicode_generic
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_INCREF
    - unicode_get_hash
    - PyUnicode_CheckExact
    - assert
    - Py_DECREF
    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:1131,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: 1132
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1132
    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_CONSUME
      Src: /src/cpython/Objects/dictobject.c:1139,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1140,1
    - 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:1143,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/dictobject.c:1143,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: (ep_key != NULL)
      pos:
        line_end: 1139
        line_start: 1139
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(ep_key))
      pos:
        line_end: 1140
        line_start: 1140
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1147
      start: 1134
    functionDepth: 2
    functionLinenumber: 1134
    functionLinenumberEnd: 1147
    functionName: compare_unicode_unicode
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - unicode_get_hash
    - assert
    - PyUnicode_CheckExact
    - FT_ATOMIC_LOAD_PTR_CONSUME
    - unicode_eq
    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:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dk
    - key
    - hash
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1153
    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:1160,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:1166,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:1167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1168,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: 1159
        line_start: 1159
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1181
      start: 1155
    functionDepth: 4
    functionLinenumber: 1155
    functionLinenumberEnd: 1181
    functionName: compare_generic
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - Py_INCREF
    - 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:1186,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: 1187
      start: 1183
    functionDepth: 3
    functionLinenumber: 1183
    functionLinenumberEnd: 1187
    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:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - dk
    - key
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1193
    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:1198,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1198,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1199,1
    - Dst: tp_hash
      Src: /src/cpython/Objects/dictobject.c:1201,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1197
        line_start: 1197
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 1201
        line_start: 1201
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1205
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1205
    functionName: hash_unicode_key
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - unicode_get_hash
    - tp_hash
    - PyUnicode_CheckExact
    - assert
    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:1217,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1218,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1218,1
    - Dst: unicodekeys_lookup_unicode_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1224,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1226,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1227,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1228,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1231,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: 1216
        line_start: 1216
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1217
        line_start: 1217
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1234
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1234
    functionName: unicodekeys_lookup_split
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - unicodekeys_lookup_unicode
    - unicodekeys_lookup_unicode_threadsafe
    - LOCK_KEYS
    - PyUnicode_CheckExact
    - 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:1245,1
    - Dst: hash_unicode_key
      Src: /src/cpython/Objects/dictobject.c:1248,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dk
    - key
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1242
    functionDepth: 3
    functionLinenumber: 1242
    functionLinenumberEnd: 1250
    functionName: _PyDictKeys_StringLookup
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - hash_unicode_key
    - check_keys_unicode
    - unicodekeys_lookup_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:1255,1
    - Dst: hash_unicode_key
      Src: /src/cpython/Objects/dictobject.c:1259,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1260,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1261,1
    - Dst: _PyDictKeys_GetVersionForCurrentState
      Src: /src/cpython/Objects/dictobject.c:1262,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:1262,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - dk
    - key
    - version
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1252
    functionDepth: 3
    functionLinenumber: 1252
    functionLinenumberEnd: 1265
    functionName: _PyDictKeys_StringLookupAndVersion
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - hash_unicode_key
    - unicodekeys_lookup_unicode
    - _PyDictKeys_GetVersionForCurrentState
    - LOCK_KEYS
    - _PyInterpreterState_GET
    - UNLOCK_KEYS
    - check_keys_unicode
    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:1273,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1274,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1274,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1275,1
    - Dst: tp_hash
      Src: /src/cpython/Objects/dictobject.c:1277,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/dictobject.c:1279,1
    - Dst: unicodekeys_lookup_split
      Src: /src/cpython/Objects/dictobject.c:1283,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: 1272
        line_start: 1272
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1284
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1284
    functionName: _PyDictKeys_StringLookupSplit
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - unicode_get_hash
    - unicodekeys_lookup_split
    - PyUnicode_CheckExact
    - PyErr_Clear
    - assert
    - tp_hash
    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:1308,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1314,1
    - Dst: unicodekeys_lookup_split
      Src: /src/cpython/Objects/dictobject.c:1317,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1320,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1323,1
    - Dst: INCREF_KEYS_FT
      Src: /src/cpython/Objects/dictobject.c:1327,1
    - Dst: LOCK_KEYS_IF_SPLIT
      Src: /src/cpython/Objects/dictobject.c:1328,1
    - Dst: unicodekeys_lookup_generic
      Src: /src/cpython/Objects/dictobject.c:1330,1
    - Dst: UNLOCK_KEYS_IF_SPLIT
      Src: /src/cpython/Objects/dictobject.c:1332,1
    - Dst: DECREF_KEYS_FT
      Src: /src/cpython/Objects/dictobject.c:1333,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1333,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1344,1
    - Dst: dictkeys_generic_lookup
      Src: /src/cpython/Objects/dictobject.c:1352,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1357,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: 1365
      start: 1301
    functionDepth: 4
    functionLinenumber: 1301
    functionLinenumberEnd: 1365
    functionName: _Py_dict_lookup
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - dictkeys_generic_lookup
    - unicodekeys_lookup_unicode
    - unicodekeys_lookup_split
    - PyUnicode_CheckExact
    - UNLOCK_KEYS_IF_SPLIT
    - IS_DICT_SHARED
    - DK_ENTRIES
    - unicodekeys_lookup_generic
    - DECREF_KEYS_FT
    - DK_UNICODE_ENTRIES
    - INCREF_KEYS_FT
    - LOCK_KEYS_IF_SPLIT
    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:1371,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1371,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:1376,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1377,1
    - Dst: SET_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1378,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:1380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1382
    functionName: ensure_shared_on_read
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - IS_DICT_SHARED
    - _Py_IsOwnedByCurrentThread
    - SET_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:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1388
    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:1395,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/dictobject.c:1397,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1397,1
    - Dst: SET_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1409
    functionName: ensure_shared_on_resize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - IS_DICT_SHARED
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _Py_IsOwnedByCurrentThread
    - SET_DICT_SHARED
    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:1414,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1416,1
    - Dst: SET_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1411
    functionDepth: 2
    functionLinenumber: 1411
    functionLinenumberEnd: 1423
    functionName: ensure_shared_on_keys_version_assignment
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - IS_DICT_SHARED
    - ASSERT_DICT_LOCKED
    - 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_consume
      Src: /src/cpython/Objects/dictobject.c:1432,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1433,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1433,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1434,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1434,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:1437,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1441,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:1442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1443,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1447,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1457,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: 1433
        line_start: 1433
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (startkey == NULL || PyUnicode_CheckExact(ep->me_key))
      pos:
        line_end: 1432
        line_start: 1432
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1461
      start: 1427
    functionDepth: 4
    functionLinenumber: 1427
    functionLinenumberEnd: 1461
    functionName: compare_unicode_generic_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - _Py_atomic_load_ptr_consume
    - unicode_get_hash
    - PyUnicode_CheckExact
    - _Py_TryIncrefCompare
    - _Py_atomic_load_ptr_relaxed
    - assert
    - Py_DECREF
    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:1467,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: 1468
      start: 1464
    functionDepth: 3
    functionLinenumber: 1464
    functionLinenumberEnd: 1468
    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_consume
      Src: /src/cpython/Objects/dictobject.c:1475,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1477,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1477,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/dictobject.c:1481,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1482,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1482,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1483,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/dictobject.c:1483,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:1486,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1489,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1489,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:1490,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/dictobject.c:1490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1494,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: 1481
        line_start: 1481
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(startkey))
      pos:
        line_end: 1476
        line_start: 1476
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(startkey))
      pos:
        line_end: 1488
        line_start: 1488
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1498
      start: 1470
    functionDepth: 2
    functionLinenumber: 1470
    functionLinenumberEnd: 1498
    functionName: compare_unicode_unicode_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - unicode_eq
    - _Py_atomic_load_ptr_consume
    - unicode_get_hash
    - PyUnicode_CheckExact
    - _Py_TryIncrefCompare
    - _Py_IsImmortal
    - assert
    - Py_DECREF
    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:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dk
    - key
    - hash
    argTypes:
    - PyDictKeysObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1500
    functionDepth: 3
    functionLinenumber: 1500
    functionLinenumberEnd: 1504
    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_consume
      Src: /src/cpython/Objects/dictobject.c:1511,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:1515,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:1517,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:1520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1521,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1525,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/dictobject.c:1526,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: 1535
      start: 1506
    functionDepth: 4
    functionLinenumber: 1506
    functionLinenumberEnd: 1535
    functionName: compare_generic_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    - PyObject_RichCompareBool
    - _Py_atomic_load_ptr_consume
    - _Py_TryIncrefCompare
    - _Py_atomic_load_ptr_relaxed
    - Py_DECREF
    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:1540,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: 1541
      start: 1537
    functionDepth: 3
    functionLinenumber: 1537
    functionLinenumberEnd: 1541
    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:1551,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1553,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1557,1
    - Dst: unicodekeys_lookup_unicode_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1558,1
    - Dst: unicodekeys_lookup_generic_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1561,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1569,1
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Objects/dictobject.c:1573,1
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/dictobject.c:1577,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1582,1
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/dictobject.c:1587,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1587,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1593,1
    - Dst: dictkeys_generic_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1603,1
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/dictobject.c:1608,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1608,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1613,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:1630,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:1631,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1634,1
    - Dst: _Py_NewRefWithLock
      Src: /src/cpython/Objects/dictobject.c:1635,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:1637,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: 1633
        line_start: 1633
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1639
      start: 1543
    functionDepth: 5
    functionLinenumber: 1543
    functionLinenumberEnd: 1639
    functionName: _Py_dict_lookup_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictkeys_generic_lookup_threadsafe
    - unicodekeys_lookup_unicode_threadsafe
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_CheckExact
    - _Py_atomic_load_ptr
    - ensure_shared_on_read
    - DK_ENTRIES
    - _Py_dict_lookup
    - assert
    - unicodekeys_lookup_generic_threadsafe
    - _Py_TryXGetRef
    - _Py_NewRefWithLock
    - Py_DECREF
    - DK_UNICODE_ENTRIES
    - _Py_atomic_load_uint8_relaxed
    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:1644,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1645,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1645,1
    - Dst: unicodekeys_lookup_unicode_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1647,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1653,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:1654,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Objects/dictobject.c:1659,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:1663,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/dictobject.c:1664,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1669,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: 1643
        line_start: 1643
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1644
        line_start: 1644
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix == DKIX_KEY_CHANGED)
      pos:
        line_end: 1668
        line_start: 1668
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1671
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1671
    functionName: lookup_threadsafe_unicode
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_HasDeferredRefcount
    - unicodekeys_lookup_unicode_threadsafe
    - PyUnicode_CheckExact
    - _Py_atomic_load_ptr
    - _Py_TryIncrefCompare
    - assert
    - PyStackRef_FromPyObjectSteal
    - DK_UNICODE_ENTRIES
    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: ensure_shared_on_read
      Src: /src/cpython/Objects/dictobject.c:1676,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/dictobject.c:1678,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1679,1
    - Dst: lookup_threadsafe_unicode
      Src: /src/cpython/Objects/dictobject.c:1680,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1687,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/dictobject.c:1689,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1673
    functionDepth: 6
    functionLinenumber: 1673
    functionLinenumberEnd: 1695
    functionName: _Py_dict_lookup_threadsafe_stackref
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr_acquire
    - PyUnicode_CheckExact
    - lookup_threadsafe_unicode
    - ensure_shared_on_read
    - _Py_dict_lookup_threadsafe
    - PyStackRef_FromPyObjectSteal
    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:1702,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:1703,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: 1705
      start: 1699
    functionDepth: 5
    functionLinenumber: 1699
    functionLinenumberEnd: 1705
    functionName: _Py_dict_lookup_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_XNewRef
    - _Py_dict_lookup
    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:1711,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/dictobject.c:1716,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: 1719
      start: 1707
    functionDepth: 5
    functionLinenumber: 1707
    functionLinenumberEnd: 1719
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1728,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1728,1
    - Dst: hash_unicode_key
      Src: /src/cpython/Objects/dictobject.c:1729,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/dictobject.c:1738,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:1738,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/dictobject.c:1739,1
    - Dst: lookup_threadsafe_unicode
      Src: /src/cpython/Objects/dictobject.c:1742,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1744,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/dictobject.c:1744,1
    - Dst: PyStackRef_XSETREF
      Src: /src/cpython/Objects/dictobject.c:1745,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1751,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:1757,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1759,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/dictobject.c:1761,1
    - Dst: PyStackRef_XSETREF
      Src: /src/cpython/Objects/dictobject.c:1765,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/dictobject.c:1765,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - mp
    - key
    - method
    argTypes:
    - PyDictObject*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1727
        line_start: 1727
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (!PyStackRef_IsNull(ref))
      pos:
        line_end: 1743
        line_start: 1743
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix == DKIX_KEY_CHANGED)
      pos:
        line_end: 1750
        line_start: 1750
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1769
      start: 1725
    functionDepth: 6
    functionLinenumber: 1725
    functionLinenumberEnd: 1769
    functionName: _PyDict_GetMethodStackRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - hash_unicode_key
    - PyStackRef_CLEAR
    - _Py_atomic_load_ptr_acquire
    - Py_INCREF
    - PyStackRef_XSETREF
    - _Py_dict_lookup_threadsafe
    - PyUnicode_CheckExact
    - lookup_threadsafe_unicode
    - IS_DICT_SHARED
    - _Py_IsOwnedByCurrentThread
    - assert
    - Py_DECREF
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_IsNull
    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:1776,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:1776,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:1780,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/dictobject.c:1781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 1775
        line_start: 1775
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1784
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1784
    functionName: _PyDict_HasOnlyStringKeys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - PyUnicode_Check
    - PyDict_Next
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyDict_HasOnlyStringKeys(PyObject *dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1789,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:1789,1
    - Dst: _PyObject_AssignUniqueId
      Src: /src/cpython/Objects/dictobject.c:1791,1
    - Dst: _PyObject_ReleaseUniqueId
      Src: /src/cpython/Objects/dictobject.c:1796,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(op))
      pos:
        line_end: 1788
        line_start: 1788
        source_file: /src/cpython/Objects/dictobject.c
    - condition: ((mp->_ma_watcher_tag >> DICT_UNIQUE_ID_SHIFT) == 0)
      pos:
        line_end: 1800
        line_start: 1800
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1804
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1804
    functionName: _PyDict_EnablePerThreadRefcounting
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ReleaseUniqueId
    - PyDict_Check
    - _PyObject_AssignUniqueId
    - assert
    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: 1814
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1814
    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:1822,1
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:1824,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1826,1
    - Dst: is_unusable_slot
      Src: /src/cpython/Objects/dictobject.c:1827,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:1830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - keys
    - hash
    argTypes:
    - PyDictKeysObject*
    - Py_hash_t
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 1821
        line_start: 1821
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1833
      start: 1819
    functionDepth: 2
    functionLinenumber: 1819
    functionLinenumberEnd: 1833
    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:1838,1
    - Dst: calculate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:1838,1
    - Dst: GROWTH_RATE
      Src: /src/cpython/Objects/dictobject.c:1838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mp
    - unicode
    argTypes:
    - PyDictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1839
    functionName: insertion_resize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - GROWTH_RATE
    - calculate_log2_keysize
    - dictresize
    linkageType: ''
    returnType: int
    signature: int insertion_resize(PyDictObject *mp, int unicode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:1847,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1847,1
    - Dst: insertion_resize
      Src: /src/cpython/Objects/dictobject.c:1848,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1850,1
    - Dst: insertion_resize
      Src: /src/cpython/Objects/dictobject.c:1855,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1860,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:1861,1
    - Dst: find_empty_slot
      Src: /src/cpython/Objects/dictobject.c:1863,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:1864,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:1866,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1868,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:1869,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1870,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1874,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:1875,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1876,1
    - Dst: STORE_HASH
      Src: /src/cpython/Objects/dictobject.c:1877,1
    - Dst: STORE_KEYS_USABLE
      Src: /src/cpython/Objects/dictobject.c:1879,1
    - Dst: STORE_KEYS_NENTRIES
      Src: /src/cpython/Objects/dictobject.c:1880,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1881,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - mp
    - hash
    - key
    - value
    argTypes:
    - PyDictObject*
    - Py_hash_t
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mp->ma_keys->dk_kind == DICT_KEYS_GENERAL)
      pos:
        line_end: 1849
        line_start: 1849
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_keys->dk_usable >= 0)
      pos:
        line_end: 1880
        line_start: 1880
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1883
      start: 1841
    functionDepth: 3
    functionLinenumber: 1841
    functionLinenumberEnd: 1883
    functionName: insert_combined_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - STORE_KEYS_USABLE
    - insertion_resize
    - STORE_KEY
    - STORE_KEYS_NENTRIES
    - DK_UNICODE_ENTRIES
    - STORE_HASH
    - _PyDict_NotifyEvent
    - PyUnicode_CheckExact
    - find_empty_slot
    - DK_IS_UNICODE
    - DK_ENTRIES
    - assert
    - STORE_VALUE
    - dictkeys_set_index
    - FT_ATOMIC_STORE_UINT32_RELAXED
    linkageType: ''
    returnType: int
    signature: "int insert_combined_dict(PyDictObject *mp,\n                     Py_hash_t
      hash, PyObject *key, PyObject *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1888,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1888,1
    - Dst: unicodekeys_lookup_unicode_threadsafe
      Src: /src/cpython/Objects/dictobject.c:1893,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1899,1
    - Dst: unicodekeys_lookup_unicode
      Src: /src/cpython/Objects/dictobject.c:1900,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:1903,1
    - Dst: find_empty_slot
      Src: /src/cpython/Objects/dictobject.c:1904,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:1906,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1907,1
    - Dst: STORE_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:1908,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:1908,1
    - Dst: split_keys_entry_added
      Src: /src/cpython/Objects/dictobject.c:1909,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1911,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:1912,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: 1887
        line_start: 1887
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix < SHARED_KEYS_MAX_SIZE)
      pos:
        line_end: 1910
        line_start: 1910
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1914
      start: 1885
    functionDepth: 3
    functionLinenumber: 1885
    functionLinenumberEnd: 1914
    functionName: insert_split_key
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_UNICODE_ENTRIES
    - unicodekeys_lookup_unicode
    - unicodekeys_lookup_unicode_threadsafe
    - LOCK_KEYS
    - PyUnicode_CheckExact
    - find_empty_slot
    - Py_NewRef
    - split_keys_entry_added
    - UNLOCK_KEYS
    - STORE_SHARED_KEY
    - assert
    - dictkeys_set_index
    - FT_ATOMIC_STORE_UINT32_RELAXED
    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:1919,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:1919,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1920,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1920,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1924,1
    - Dst: STORE_SPLIT_VALUE
      Src: /src/cpython/Objects/dictobject.c:1925,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:1925,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Objects/dictobject.c:1926,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:1927,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1930,1
    - Dst: STORE_SPLIT_VALUE
      Src: /src/cpython/Objects/dictobject.c:1931,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:1931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1934,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:1936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - mp
    - key
    - value
    - ix
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 1918
        line_start: 1918
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 1919
        line_start: 1919
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1937
      start: 1916
    functionDepth: 3
    functionLinenumber: 1916
    functionLinenumberEnd: 1937
    functionName: _PyDict_InsertSplitValue
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - STORE_USED
    - _PyDict_NotifyEvent
    - PyUnicode_CheckExact
    - ASSERT_CONSISTENT
    - can_modify_dict
    - _PyDictValues_AddToInsertionOrder
    - STORE_SPLIT_VALUE
    - assert
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void _PyDict_InsertSplitValue(PyDictObject *mp, PyObject *key, PyObject
      *value, Py_ssize_t ix)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1949,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:1949,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:1954,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:1954,1
    - Dst: insert_split_key
      Src: /src/cpython/Objects/dictobject.c:1955,1
    - Dst: _PyDict_InsertSplitValue
      Src: /src/cpython/Objects/dictobject.c:1957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:1959,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:1965,1
    - Dst: insert_combined_dict
      Src: /src/cpython/Objects/dictobject.c:1978,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:1981,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:1982,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:1987,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:1988,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:1989,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:1990,1
    - Dst: STORE_SPLIT_VALUE
      Src: /src/cpython/Objects/dictobject.c:1991,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1994,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:1995,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:1999,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:2000,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:2003,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:2004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2010,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject*
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 1948
        line_start: 1948
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (old_value != NULL)
      pos:
        line_end: 1987
        line_start: 1987
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2012
      start: 1945
    functionDepth: 5
    functionLinenumber: 1945
    functionLinenumberEnd: 2012
    functionName: insertdict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - STORE_USED
    - _PyDict_NotifyEvent
    - PyUnicode_CheckExact
    - ASSERT_CONSISTENT
    - can_modify_dict
    - insert_split_key
    - DK_IS_UNICODE
    - DK_ENTRIES
    - STORE_SPLIT_VALUE
    - _PyDict_HasSplitTable
    - _Py_dict_lookup
    - assert
    - Py_DECREF
    - insert_combined_dict
    - Py_XDECREF
    - STORE_VALUE
    - DK_UNICODE_ENTRIES
    - _PyDict_InsertSplitValue
    linkageType: ''
    returnType: int
    signature: "int insertdict(PyDictObject *mp,\n           PyObject *key, Py_hash_t
      hash, PyObject *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2020,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:2020,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2021,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2023,1
    - Dst: new_keys_object
      Src: /src/cpython/Objects/dictobject.c:2024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2027,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:2030,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2033,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:2036,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2038,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:2040,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2043,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:2046,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:2048,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:2056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject*
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 2019
        line_start: 2019
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_keys == Py_EMPTY_KEYS)
      pos:
        line_end: 2020
        line_start: 2020
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_values == NULL)
      pos:
        line_end: 2032
        line_start: 2032
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2058
      start: 2016
    functionDepth: 3
    functionLinenumber: 2016
    functionLinenumberEnd: 2058
    functionName: insert_to_emptydict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - STORE_USED
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _PyDict_NotifyEvent
    - PyUnicode_CheckExact
    - new_keys_object
    - can_modify_dict
    - DK_ENTRIES
    - assert
    - Py_DECREF
    - STORE_VALUE
    - dictkeys_set_index
    - DK_UNICODE_ENTRIES
    linkageType: ''
    returnType: int
    signature: "int insert_to_emptydict(PyDictObject *mp,\n                    PyObject
      *key, Py_hash_t hash, PyObject *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DK_MASK
      Src: /src/cpython/Objects/dictobject.c:2066,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:2070,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:2074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - keys
    - ep
    - n
    argTypes:
    - PyDictKeysObject*
    - PyDictKeyEntry*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2076
    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:2081,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2083,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2084,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:2086,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:2090,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: 2083
        line_start: 2083
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2092
      start: 2078
    functionDepth: 2
    functionLinenumber: 2078
    functionLinenumberEnd: 2092
    functionName: build_indices_unicode
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - unicode_get_hash
    - assert
    - DK_MASK
    - dictkeys_set_index
    - dictkeys_get_index
    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:2097,1
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Objects/dictobject.c:2098,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:2100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - values
    argTypes:
    - PyDictValues*
    assertStmts:
    - condition: (values->embedded)
      pos:
        line_end: 2096
        line_start: 2096
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2102
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2102
    functionName: invalidate_and_clear_inline_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - FT_ATOMIC_STORE_UINT8
    - assert
    linkageType: ''
    returnType: void
    signature: void invalidate_and_clear_inline_values(PyDictValues *values)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2122,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:2122,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:2128,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2131,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:2136,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/dictobject.c:2140,1
    - Dst: new_keys_object
      Src: /src/cpython/Objects/dictobject.c:2147,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2152,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:2157,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2158,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2164,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:2167,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2169,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2170,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2171,1
    - Dst: build_indices_generic
      Src: /src/cpython/Objects/dictobject.c:2174,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2177,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:2180,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2182,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2183,1
    - Dst: build_indices_unicode
      Src: /src/cpython/Objects/dictobject.c:2186,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:2188,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:2189,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:2190,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:2190,1
    - Dst: set_values
      Src: /src/cpython/Objects/dictobject.c:2191,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2193,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2194,1
    - Dst: invalidate_and_clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:2195,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:2198,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:2198,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2204,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2205,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2206,1
    - Dst: memcpy
      Src: /src/cpython/Objects/dictobject.c:2208,1
    - Dst: build_indices_generic
      Src: /src/cpython/Objects/dictobject.c:2218,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2221,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2223,1
    - Dst: memcpy
      Src: /src/cpython/Objects/dictobject.c:2225,1
    - Dst: build_indices_unicode
      Src: /src/cpython/Objects/dictobject.c:2235,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2238,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2244,1
    - Dst: build_indices_generic
      Src: /src/cpython/Objects/dictobject.c:2248,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:2252,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/dictobject.c:2256,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:2256,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2258,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2259,1
    - Dst: free_keys_object
      Src: /src/cpython/Objects/dictobject.c:2260,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:2260,1
    - Dst: STORE_KEYS_USABLE
      Src: /src/cpython/Objects/dictobject.c:2264,1
    - Dst: STORE_KEYS_NENTRIES
      Src: /src/cpython/Objects/dictobject.c:2265,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:2266,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 96
    argCount: 3
    argNames:
    - mp
    - log2_newsize
    - unicode
    argTypes:
    - PyDictObject*
    - uint8_t
    - int
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 2121
        line_start: 2121
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (log2_newsize >= PyDict_LOG_MINSIZE)
      pos:
        line_end: 2130
        line_start: 2130
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldvalues->valid == 1)
      pos:
        line_end: 2193
        line_start: 2193
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldkeys->dk_refcnt == 1)
      pos:
        line_end: 2258
        line_start: 2258
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldvalues->embedded == 1)
      pos:
        line_end: 2192
        line_start: 2192
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldvalues->values[index] != NULL)
      pos:
        line_end: 2168
        line_start: 2168
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (newkeys->dk_kind == DICT_KEYS_GENERAL)
      pos:
        line_end: 2203
        line_start: 2203
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldkeys->dk_kind != DICT_KEYS_SPLIT)
      pos:
        line_end: 2257
        line_start: 2257
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (newkeys->dk_usable >= mp->ma_used)
      pos:
        line_end: 2151
        line_start: 2151
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldvalues->values[index] != NULL)
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2268
      start: 2118
    functionDepth: 8
    functionLinenumber: 2118
    functionLinenumberEnd: 2268
    functionName: dictresize
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - free_keys_object
    - can_modify_dict
    - _PyThreadState_GET
    - memcpy
    - assert
    - build_indices_unicode
    - DK_UNICODE_ENTRIES
    - STORE_KEYS_USABLE
    - STORE_KEYS_NENTRIES
    - PyErr_NoMemory
    - unicode_get_hash
    - set_values
    - ASSERT_CONSISTENT
    - DK_IS_UNICODE
    - IS_DICT_SHARED
    - build_indices_generic
    - ensure_shared_on_resize
    - invalidate_and_clear_inline_values
    - get_index_from_order
    - dictkeys_decref
    - set_keys
    - Py_NewRef
    - LOCK_KEYS
    - new_keys_object
    - free_values
    - DK_ENTRIES
    - UNLOCK_KEYS
    - _Py_DecRefTotal
    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:2278,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:2279,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:2285,1
    - Dst: estimate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:2289,1
    - Dst: new_keys_object
      Src: /src/cpython/Objects/dictobject.c:2292,1
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:2295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - minused
    - unicode
    argTypes:
    - Py_ssize_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2270
    functionDepth: 11
    functionLinenumber: 2270
    functionLinenumberEnd: 2296
    functionName: dict_new_presized
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - USABLE_FRACTION
    - new_dict
    - new_keys_object
    - estimate_log2_keysize
    - PyDict_New
    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:2301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - minused
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2298
    functionDepth: 12
    functionLinenumber: 2298
    functionLinenumberEnd: 2302
    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:2313,1
    - Dst: dict_new_presized
      Src: /src/cpython/Objects/dictobject.c:2320,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:2331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2332,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: 2340
      start: 2304
    functionDepth: 12
    functionLinenumber: 2304
    functionLinenumberEnd: 2340
    functionName: _PyDict_FromItems
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_new_presized
    - Py_DECREF
    - PyUnicode_CheckExact
    - setitem_lock_held
    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: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2355,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2360,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:2362,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/dictobject.c:2366,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Objects/dictobject.c:2370,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Objects/dictobject.c:2377,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2379,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:2380,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2382,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:2386,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/dictobject.c:2387,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:2388,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Objects/dictobject.c:2390,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2392,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: 2391
        line_start: 2391
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2394
      start: 2352
    functionDepth: 6
    functionLinenumber: 2352
    functionLinenumberEnd: 2394
    functionName: dict_getitem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - assert
    - _Py_EnsureTstateNotNULL
    - _PyErr_Occurred
    - _PyObject_HashFast
    - _PyErr_SetRaisedException
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - Py_XDECREF
    - _Py_dict_lookup_threadsafe
    - _Py_dict_lookup
    - PyErr_GivenExceptionMatches
    - PyErr_FormatUnraisable
    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:2399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2396
    functionDepth: 0
    functionLinenumber: 2396
    functionLinenumberEnd: 2402
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/dictobject.c:2407,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2408,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:2409,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/dictobject.c:2410,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:2415,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:2421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 2407
        line_start: 2407
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2423
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2423
    functionName: dict_unhashable_type
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_Check
    - Py_IS_TYPE
    - PyErr_SetRaisedException
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void dict_unhashable_type(PyObject *op, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2429,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2429,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2430,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2430,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2432,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2434,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mp
    - key
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (PyDict_CheckExact((PyObject*)mp))
      pos:
        line_end: 2428
        line_start: 2428
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(key))
      pos:
        line_end: 2429
        line_start: 2429
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2439
      start: 2425
    functionDepth: 5
    functionLinenumber: 2425
    functionLinenumberEnd: 2439
    functionName: _PyDict_LookupIndexAndValue
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_unhashable_type
    - PyUnicode_CheckExact
    - _PyObject_HashFast
    - _Py_dict_lookup
    - assert
    - PyDict_CheckExact
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDict_LookupIndexAndValue(PyDictObject *mp, PyObject *key,
      PyObject **value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_LookupIndexAndValue
      Src: /src/cpython/Objects/dictobject.c:2445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mp
    - key
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2441
    functionDepth: 6
    functionLinenumber: 2441
    functionLinenumberEnd: 2446
    functionName: _PyDict_LookupIndex
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_LookupIndexAndValue
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDict_LookupIndex(PyDictObject *mp, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2459,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2460,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2465,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:2466,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2468,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2470,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: 2469
        line_start: 2469
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2472
      start: 2452
    functionDepth: 6
    functionLinenumber: 2452
    functionLinenumberEnd: 2472
    functionName: _PyDict_GetItem_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - PyAnyDict_Check
    - assert
    - _Py_dict_lookup_threadsafe
    - PyErr_BadInternalCall
    - _Py_dict_lookup
    - Py_XDECREF
    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:2483,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2484,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2493,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: 2483
        line_start: 2483
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2495
      start: 2478
    functionDepth: 5
    functionLinenumber: 2478
    functionLinenumberEnd: 2495
    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:2506,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2508,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2510,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2522,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: 2509
        line_start: 2509
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2525
      start: 2501
    functionDepth: 6
    functionLinenumber: 2501
    functionLinenumberEnd: 2525
    functionName: _PyDict_GetItemRef_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - assert
    - Py_NewRef
    - _Py_dict_lookup
    - _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: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2530,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2531,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2536,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2538,1
    - Dst: _PyDict_GetItemRef_KnownHash
      Src: /src/cpython/Objects/dictobject.c:2543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2527
    functionDepth: 7
    functionLinenumber: 2527
    functionLinenumberEnd: 2544
    functionName: PyDict_GetItemRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 21
    functionsReached:
    - PyAnyDict_Check
    - dict_unhashable_type
    - _PyDict_GetItemRef_KnownHash
    - _PyObject_HashFast
    - PyErr_BadInternalCall
    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:2549,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2550,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2550,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2552,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2554,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2560,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2561,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2570,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: 2549
        line_start: 2549
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2560
        line_start: 2560
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2572
      start: 2546
    functionDepth: 5
    functionLinenumber: 2546
    functionLinenumberEnd: 2572
    functionName: _PyDict_GetItemRef_Unicode_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_unhashable_type
    - PyUnicode_CheckExact
    - ASSERT_DICT_LOCKED
    - _PyObject_HashFast
    - _Py_dict_lookup
    - assert
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int _PyDict_GetItemRef_Unicode_LockHeld(PyDictObject *op, PyObject
      *key, PyObject **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2586,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2587,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2590,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2592,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2597,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:2598,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2600,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (ix >= 0 || value == NULL)
      pos:
        line_end: 2601
        line_start: 2601
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2604
      start: 2578
    functionDepth: 6
    functionLinenumber: 2578
    functionLinenumberEnd: 2604
    functionName: PyDict_GetItemWithError
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 27
    functionsReached:
    - PyAnyDict_Check
    - assert
    - dict_unhashable_type
    - _PyObject_HashFast
    - PyErr_BadInternalCall
    - Py_XDECREF
    - _Py_dict_lookup_threadsafe
    - _Py_dict_lookup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_GetItemWithError(PyObject *op, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2609,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:2609,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:2610,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:2614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dp
    - kv
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(kv))
      pos:
        line_end: 2608
        line_start: 2608
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2615
      start: 2606
    functionDepth: 7
    functionLinenumber: 2606
    functionLinenumberEnd: 2615
    functionName: _PyDict_GetItemWithError
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItem_KnownHash
    - PyUnicode_CheckExact
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItemWithError(PyObject *dp, PyObject *kv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:2621,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/dictobject.c:2625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2617
    functionDepth: 7
    functionLinenumber: 2617
    functionLinenumberEnd: 2628
    functionName: _PyDict_GetItemStringWithError
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyDict_GetItemWithError
    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:2649,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2655,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:2662,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2663,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: 2662
        line_start: 2662
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2665
      start: 2642
    functionDepth: 6
    functionLinenumber: 2642
    functionLinenumberEnd: 2665
    functionName: _PyDict_LoadGlobal
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - assert
    - _Py_dict_lookup_threadsafe
    - _PyObject_HashFast
    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:2673,1
    - Dst: _Py_dict_lookup_threadsafe_stackref
      Src: /src/cpython/Objects/dictobject.c:2680,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/dictobject.c:2684,1
    - Dst: _Py_dict_lookup_threadsafe_stackref
      Src: /src/cpython/Objects/dictobject.c:2689,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2690,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/dictobject.c:2690,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: 2689
        line_start: 2689
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2691
      start: 2667
    functionDepth: 7
    functionLinenumber: 2667
    functionLinenumberEnd: 2691
    functionName: _PyDict_LoadGlobalStackRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyStackRef_IsNull
    - _Py_dict_lookup_threadsafe_stackref
    - _PyObject_HashFast
    linkageType: ''
    returnType: void
    signature: void _PyDict_LoadGlobalStackRef(PyDictObject *globals, PyDictObject
      *builtins, PyObject *key, _PyStackRef *res)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2696,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2697,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:2702,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:2703,1
    - Dst: _Py_dict_lookup_threadsafe_stackref
      Src: /src/cpython/Objects/dictobject.c:2710,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/dictobject.c:2714,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2715,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Objects/dictobject.c:2715,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/dictobject.c:2717,1
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/dictobject.c:2718,1
    - Dst: _PyModule_GetDict
      Src: /src/cpython/Objects/dictobject.c:2719,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2720,1
    - Dst: _Py_INCREF_BUILTINS
      Src: /src/cpython/Objects/dictobject.c:2722,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Objects/dictobject.c:2723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - globals
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (builtins != NULL)
      pos:
        line_end: 2719
        line_start: 2719
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2725
      start: 2693
    functionDepth: 7
    functionLinenumber: 2693
    functionLinenumberEnd: 2725
    functionName: _PyDict_LoadBuiltinsFromGlobals
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyStackRef_CLOSE
    - unicode_get_hash
    - PyStackRef_IsNull
    - PyModule_Check
    - PyErr_BadInternalCall
    - _PyModule_GetDict
    - PyEval_GetBuiltins
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _Py_INCREF_BUILTINS
    - Py_NewRef
    - _Py_dict_lookup_threadsafe_stackref
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_LoadBuiltinsFromGlobals(PyObject *globals)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - WHAT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2727
    functionDepth: 0
    functionLinenumber: 2727
    functionLinenumberEnd: 2730
    functionName: frozendict_does_not_support
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frozendict_does_not_support(WHAT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2735,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2735,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2736,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:2736,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2737,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2738,1
    - Dst: insert_to_emptydict
      Src: /src/cpython/Objects/dictobject.c:2741,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:2744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - mp
    - key
    - value
    - hash
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (PyAnyDict_Check(mp))
      pos:
        line_end: 2734
        line_start: 2734
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 2735
        line_start: 2735
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (key)
      pos:
        line_end: 2736
        line_start: 2736
        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: 2745
      start: 2732
    functionDepth: 6
    functionLinenumber: 2732
    functionLinenumberEnd: 2745
    functionName: setitem_take2_lock_held_known_hash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - insert_to_emptydict
    - insertdict
    - can_modify_dict
    - assert
    linkageType: ''
    returnType: int
    signature: int setitem_take2_lock_held_known_hash(PyDictObject *mp, PyObject *key,
      PyObject *value, Py_hash_t hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2750,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2754,1
    - Dst: setitem_take2_lock_held_known_hash
      Src: /src/cpython/Objects/dictobject.c:2758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mp
    - key
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2747
    functionDepth: 7
    functionLinenumber: 2747
    functionLinenumberEnd: 2759
    functionName: setitem_take2_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - dict_unhashable_type
    - setitem_take2_lock_held_known_hash
    - _PyObject_HashFast
    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:2765,1
    - Dst: setitem_take2_lock_held
      Src: /src/cpython/Objects/dictobject.c:2766,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mp
    - key
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2761
    functionDepth: 8
    functionLinenumber: 2761
    functionLinenumberEnd: 2769
    functionName: _PyDict_SetItem_Take2
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - setitem_take2_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int _PyDict_SetItem_Take2(PyDictObject *mp, PyObject *key, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2775,1
    - Dst: setitem_take2_lock_held_known_hash
      Src: /src/cpython/Objects/dictobject.c:2776,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - mp
    - key
    - value
    - hash
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2771
    functionDepth: 7
    functionLinenumber: 2771
    functionLinenumberEnd: 2779
    functionName: _PyDict_SetItem_Take2_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - setitem_take2_lock_held_known_hash
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int _PyDict_SetItem_Take2_KnownHash(PyDictObject *mp, PyObject *key,
      PyObject *value, Py_hash_t hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2790,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2791,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2793,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:2794,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:2795,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2798,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Objects/dictobject.c:2803,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2804,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - op
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2789
        line_start: 2789
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value)
      pos:
        line_end: 2790
        line_start: 2790
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2805
      start: 2787
    functionDepth: 9
    functionLinenumber: 2787
    functionLinenumberEnd: 2805
    functionName: PyDict_SetItem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 52
    functionsReached:
    - PyFrozenDict_Check
    - frozendict_does_not_support
    - Py_NewRef
    - PyErr_BadInternalCall
    - PyDict_Check
    - assert
    - _PyDict_SetItem_Take2
    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:2810,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2810,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2811,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2812,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Objects/dictobject.c:2813,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2814,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyAnyDict_Check(op))
      pos:
        line_end: 2809
        line_start: 2809
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value)
      pos:
        line_end: 2811
        line_start: 2811
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (key)
      pos:
        line_end: 2810
        line_start: 2810
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2815
      start: 2807
    functionDepth: 9
    functionLinenumber: 2807
    functionLinenumberEnd: 2815
    functionName: _PyAnyDict_SetItem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - Py_NewRef
    - _PyDict_SetItem_Take2
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyAnyDict_SetItem(PyObject *op, PyObject *key, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2820,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2821,1
    - Dst: setitem_take2_lock_held
      Src: /src/cpython/Objects/dictobject.c:2822,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2823,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mp
    - key
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2819
        line_start: 2819
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value)
      pos:
        line_end: 2820
        line_start: 2820
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2824
      start: 2817
    functionDepth: 8
    functionLinenumber: 2817
    functionLinenumberEnd: 2824
    functionName: setitem_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - setitem_take2_lock_held
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: int
    signature: int setitem_lock_held(PyDictObject *mp, PyObject *key, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insert_to_emptydict
      Src: /src/cpython/Objects/dictobject.c:2832,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2832,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2832,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:2835,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2835,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:2835,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: 2836
      start: 2827
    functionDepth: 6
    functionLinenumber: 2827
    functionLinenumberEnd: 2836
    functionName: _PyDict_SetItem_KnownHash_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - insert_to_emptydict
    - insertdict
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: "int _PyDict_SetItem_KnownHash_LockHeld(PyDictObject *mp, PyObject
      *key, PyObject *value,\n                                   Py_hash_t hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2842,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2843,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2844,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2846,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:2847,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:2848,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2851,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2857,1
    - Dst: _PyDict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/dictobject.c:2858,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - op
    - key
    - value
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2841
        line_start: 2841
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value)
      pos:
        line_end: 2842
        line_start: 2842
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 2843
        line_start: 2843
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2861
      start: 2838
    functionDepth: 7
    functionLinenumber: 2838
    functionLinenumberEnd: 2861
    functionName: _PyDict_SetItem_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - PyFrozenDict_Check
    - Py_END_CRITICAL_SECTION
    - frozendict_does_not_support
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDict_SetItem_KnownHash_LockHeld
    - 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:2866,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2868,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2871,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - values
    - ix
    argTypes:
    - PyDictValues*
    - Py_ssize_t
    assertStmts:
    - condition: (size <= values->capacity)
      pos:
        line_end: 2867
        line_start: 2867
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i < size)
      pos:
        line_end: 2870
        line_start: 2870
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i < size)
      pos:
        line_end: 2872
        line_start: 2872
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2879
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2879
    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
      Src: /src/cpython/Objects/dictobject.c:2885,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:2885,1
    - Dst: lookdict_index
      Src: /src/cpython/Objects/dictobject.c:2889,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2890,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:2892,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:2893,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2894,1
    - Dst: STORE_SPLIT_VALUE
      Src: /src/cpython/Objects/dictobject.c:2895,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2896,1
    - Dst: delete_index_from_values
      Src: /src/cpython/Objects/dictobject.c:2898,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:2899,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:2902,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:2903,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:2904,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2905,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:2907,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:2908,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:2911,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:2913,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:2914,1
    - Dst: STORE_HASH
      Src: /src/cpython/Objects/dictobject.c:2915,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:2919,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:2921,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: 2889
        line_start: 2889
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (old_value == mp->ma_values->values[ix])
      pos:
        line_end: 2893
        line_start: 2893
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (ix < SHARED_KEYS_MAX_SIZE)
      pos:
        line_end: 2895
        line_start: 2895
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 2884
        line_start: 2884
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2922
      start: 2881
    functionDepth: 3
    functionLinenumber: 2881
    functionLinenumberEnd: 2922
    functionName: delitem_common
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - STORE_KEY
    - lookdict_index
    - STORE_USED
    - DK_UNICODE_ENTRIES
    - delete_index_from_values
    - STORE_HASH
    - ASSERT_CONSISTENT
    - can_modify_dict
    - DK_IS_UNICODE
    - DK_ENTRIES
    - STORE_SPLIT_VALUE
    - _PyDict_HasSplitTable
    - assert
    - Py_DECREF
    - STORE_VALUE
    - dictkeys_set_index
    - FT_ATOMIC_STORE_UINT32_RELAXED
    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:2927,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:2928,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:2930,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:2934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key)
      pos:
        line_end: 2926
        line_start: 2926
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2935
      start: 2924
    functionDepth: 2
    functionLinenumber: 2924
    functionLinenumberEnd: 2935
    functionName: PyDict_DelItem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 12
    functionsReached:
    - _PyObject_HashFast
    - dict_unhashable_type
    - _PyDict_DelItem_KnownHash
    - assert
    linkageType: ''
    returnType: int
    signature: int PyDict_DelItem(PyObject *op, PyObject *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:2940,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:2941,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:2942,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:2945,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2953,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:2953,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2955,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2956,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2957,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/dictobject.c:2961,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:2965,1
    - Dst: delitem_common
      Src: /src/cpython/Objects/dictobject.c:2966,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 2952
        line_start: 2952
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (key)
      pos:
        line_end: 2954
        line_start: 2954
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 2955
        line_start: 2955
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2968
      start: 2937
    functionDepth: 5
    functionLinenumber: 2937
    functionLinenumberEnd: 2968
    functionName: _PyDict_DelItem_KnownHash_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_Check
    - frozendict_does_not_support
    - _PyErr_SetKeyError
    - _PyDict_NotifyEvent
    - can_modify_dict
    - PyErr_BadInternalCall
    - delitem_common
    - PyDict_Check
    - _Py_dict_lookup
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyDict_DelItem_KnownHash_LockHeld(PyObject *op, PyObject *key,
      Py_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2974,1
    - Dst: _PyDict_DelItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/dictobject.c:2975,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:2976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2970
    functionDepth: 6
    functionLinenumber: 2970
    functionLinenumberEnd: 2978
    functionName: _PyDict_DelItem_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDict_DelItem_KnownHash_LockHeld
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int _PyDict_DelItem_KnownHash(PyObject *op, PyObject *key, Py_hash_t
      hash)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:2985,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2986,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:2986,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:2993,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/dictobject.c:2994,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:2997,1
    - Dst: predicate
      Src: /src/cpython/Objects/dictobject.c:3005,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:3010,1
    - Dst: delitem_common
      Src: /src/cpython/Objects/dictobject.c:3011,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - op
    - key
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 2985
        line_start: 2985
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (key)
      pos:
        line_end: 2992
        line_start: 2992
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3016
      start: 2980
    functionDepth: 5
    functionLinenumber: 2980
    functionLinenumberEnd: 3016
    functionName: delitemif_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - predicate
    - PyObject_Hash
    - _PyDict_NotifyEvent
    - can_modify_dict
    - delitem_common
    - _Py_dict_lookup
    - assert
    - _PyAnyDict_CAST
    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:3027,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3027,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3029,1
    - Dst: delitemif_lock_held
      Src: /src/cpython/Objects/dictobject.c:3030,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3031,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: 3026
        line_start: 3026
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3033
      start: 3022
    functionDepth: 6
    functionLinenumber: 3022
    functionLinenumberEnd: 3033
    functionName: _PyDict_DelItemIf
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyDict_Check
    - delitemif_lock_held
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyDict_DelItemIf(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:3039,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - values
    - nentries
    argTypes:
    - PyDictValues*
    - Py_ssize_t
    assertStmts:
    - condition: (nentries <= SHARED_KEYS_MAX_SIZE)
      pos:
        line_end: 3038
        line_start: 3038
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3048
      start: 3035
    functionDepth: 0
    functionLinenumber: 3035
    functionLinenumberEnd: 3048
    functionName: clear_embedded_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_embedded_values(PyDictValues *values, Py_ssize_t nentries)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3053,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3057,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:3057,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:3069,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/dictobject.c:3071,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:3072,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:3074,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3075,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:3076,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:3076,1
    - Dst: clear_embedded_values
      Src: /src/cpython/Objects/dictobject.c:3079,1
    - Dst: set_values
      Src: /src/cpython/Objects/dictobject.c:3082,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:3083,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:3087,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3088,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:3090,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:3090,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:3091,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:3091,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:3093,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 3056
        line_start: 3056
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (oldkeys->dk_refcnt == 1)
      pos:
        line_end: 3074
        line_start: 3074
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3094
      start: 3050
    functionDepth: 8
    functionLinenumber: 3050
    functionLinenumberEnd: 3094
    functionName: clear_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - clear_embedded_values
    - STORE_USED
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _PyDict_NotifyEvent
    - set_values
    - ASSERT_CONSISTENT
    - can_modify_dict
    - free_values
    - IS_DICT_SHARED
    - PyDict_Check
    - dictkeys_decref
    - set_keys
    - assert
    - Py_XDECREF
    - ensure_shared_on_resize
    linkageType: ''
    returnType: void
    signature: void clear_lock_held(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_lock_held
      Src: /src/cpython/Objects/dictobject.c:3098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3099
      start: 3096
    functionDepth: 9
    functionLinenumber: 3096
    functionLinenumberEnd: 3099
    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:3104,1
    - Dst: clear_lock_held
      Src: /src/cpython/Objects/dictobject.c:3105,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3107
      start: 3101
    functionDepth: 9
    functionLinenumber: 3101
    functionLinenumberEnd: 3107
    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: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3123,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:3128,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3129,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:3132,1
    - Dst: LOAD_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:3134,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:3134,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:3135,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3136,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:3142,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:3143,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:3151,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:3155,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: 3128
        line_start: 3128
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 3135
        line_start: 3135
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3175
      start: 3114
    functionDepth: 2
    functionLinenumber: 3114
    functionLinenumberEnd: 3175
    functionName: _PyDict_Next
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - PyAnyDict_Check
    - unicode_get_hash
    - DK_IS_UNICODE
    - DK_ENTRIES
    - _PyDict_HasSplitTable
    - assert
    - LOAD_SHARED_KEY
    - DK_UNICODE_ENTRIES
    - get_index_from_order
    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:3198,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: 3199
      start: 3195
    functionDepth: 3
    functionLinenumber: 3195
    functionLinenumberEnd: 3199
    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:3207,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3207,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3208,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:3208,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:3218,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3233,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:3234,1
    - Dst: delitem_common
      Src: /src/cpython/Objects/dictobject.c:3235,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3235,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:3237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3242,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: 3206
        line_start: 3206
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 3207
        line_start: 3207
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (old_value != NULL)
      pos:
        line_end: 3232
        line_start: 3232
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3245
      start: 3203
    functionDepth: 5
    functionLinenumber: 3203
    functionLinenumberEnd: 3245
    functionName: _PyDict_Pop_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyDict_NotifyEvent
    - ASSERT_CONSISTENT
    - can_modify_dict
    - delitem_common
    - PyDict_Check
    - _Py_dict_lookup
    - assert
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: "int _PyDict_Pop_KnownHash(PyDictObject *mp, PyObject *key, Py_hash_t
      hash,\n                      PyObject **result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3250,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:3254,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:3255,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3258,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3263,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:3263,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:3272,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:3274,1
    - Dst: _PyDict_Pop_KnownHash
      Src: /src/cpython/Objects/dictobject.c:3280,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (can_modify_dict(dict))
      pos:
        line_end: 3262
        line_start: 3262
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3281
      start: 3247
    functionDepth: 6
    functionLinenumber: 3247
    functionLinenumberEnd: 3281
    functionName: pop_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_Pop_KnownHash
    - PyFrozenDict_Check
    - frozendict_does_not_support
    - dict_unhashable_type
    - can_modify_dict
    - PyErr_BadInternalCall
    - _PyObject_HashFast
    - PyDict_Check
    - assert
    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:3287,1
    - Dst: pop_lock_held
      Src: /src/cpython/Objects/dictobject.c:3288,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3283
    functionDepth: 7
    functionLinenumber: 3283
    functionLinenumberEnd: 3292
    functionName: PyDict_Pop
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 7
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - pop_lock_held
    - Py_END_CRITICAL_SECTION
    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:3298,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/dictobject.c:3306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - op
    - key
    - result
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3295
    functionDepth: 8
    functionLinenumber: 3295
    functionLinenumberEnd: 3309
    functionName: PyDict_PopString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 6
    functionsReached:
    - Py_DECREF
    - PyDict_Pop
    - PyUnicode_FromString
    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:3316,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3318,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/dictobject.c:3320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - dict
    - key
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3312
    functionDepth: 8
    functionLinenumber: 3312
    functionLinenumberEnd: 3324
    functionName: dict_pop_default
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Pop
    - _PyErr_SetKeyError
    - Py_NewRef
    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:3329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dict
    - key
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3326
    functionDepth: 9
    functionLinenumber: 3326
    functionLinenumberEnd: 3330
    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: assert
      Src: /src/cpython/Objects/dictobject.c:3335,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:3335,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:3341,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/dictobject.c:3342,1
    - Dst: estimate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:3343,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:3343,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:3344,1
    - Dst: dictresize
      Src: /src/cpython/Objects/dictobject.c:3345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3346,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3350,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:3351,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3351,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - mp
    - iterable
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 3334
        line_start: 3334
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3357
      start: 3332
    functionDepth: 9
    functionLinenumber: 3332
    functionLinenumberEnd: 3357
    functionName: dict_dict_fromkeys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - insertdict
    - can_modify_dict
    - Py_MAX
    - DK_IS_UNICODE
    - dictresize
    - DK_LOG_SIZE
    - assert
    - Py_DECREF
    - PyDict_GET_SIZE
    - _PyDict_Next
    - Py_NewRef
    - estimate_log2_keysize
    linkageType: ''
    returnType: PyDictObject
    signature: 'PyDictObject *

      dict_dict_fromkeys(PyDictObject *mp, PyObject *iterable, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3362,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:3362,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/dictobject.c:3367,1
    - Dst: estimate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:3368,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:3368,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:3369,1
    - Dst: dictresize
      Src: /src/cpython/Objects/dictobject.c:3370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3371,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3375,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Objects/dictobject.c:3376,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:3377,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - mp
    - iterable
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 3361
        line_start: 3361
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3383
      start: 3359
    functionDepth: 9
    functionLinenumber: 3359
    functionLinenumberEnd: 3383
    functionName: dict_set_fromkeys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - insertdict
    - PySet_GET_SIZE
    - _PySet_NextEntryRef
    - can_modify_dict
    - Py_MAX
    - dictresize
    - DK_LOG_SIZE
    - assert
    - Py_DECREF
    - Py_NewRef
    - estimate_log2_keysize
    linkageType: ''
    returnType: PyDictObject
    signature: 'PyDictObject *

      dict_set_fromkeys(PyDictObject *mp, PyObject *iterable, PyObject *value)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/dictobject.c:3394,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/dictobject.c:3401,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:3402,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Objects/dictobject.c:3405,1
    - Dst: frozendict_new
      Src: /src/cpython/Objects/dictobject.c:3406,1
    - Dst: dict_new
      Src: /src/cpython/Objects/dictobject.c:3409,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3412,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:3415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3417,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/dictobject.c:3420,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3422,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:3422,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:3422,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3424,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3425,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3428,1
    - Dst: dict_dict_fromkeys
      Src: /src/cpython/Objects/dictobject.c:3429,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3430,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3433,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3436,1
    - Dst: dict_dict_fromkeys
      Src: /src/cpython/Objects/dictobject.c:3437,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3438,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3441,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3444,1
    - Dst: dict_set_fromkeys
      Src: /src/cpython/Objects/dictobject.c:3445,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:3446,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3450,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3451,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3454,1
    - Dst: dict_dict_fromkeys
      Src: /src/cpython/Objects/dictobject.c:3455,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3456,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3459,1
    - Dst: dict_dict_fromkeys
      Src: /src/cpython/Objects/dictobject.c:3461,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3464,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3467,1
    - Dst: dict_set_fromkeys
      Src: /src/cpython/Objects/dictobject.c:3468,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3469,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:3474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3476,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3480,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3481,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:3482,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:3483,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3484,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3486,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3486,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3491,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:3493,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:3494,1
    - Dst: setitem_take2_lock_held
      Src: /src/cpython/Objects/dictobject.c:3496,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3497,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3499,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3499,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:3505,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/dictobject.c:3506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3507,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3520,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 110
    argCount: 3
    argNames:
    - cls
    - iterable
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyFrozenDict_Check(d) || can_modify_dict((PyDictObject*)d))
      pos:
        line_end: 3421
        line_start: 3421
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3498
        line_start: 3498
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3485
        line_start: 3485
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3522
      start: 3386
    functionDepth: 10
    functionLinenumber: 3386
    functionLinenumberEnd: 3522
    functionName: _PyDict_FromKeys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - setitem_take2_lock_held
    - can_modify_dict
    - PyObject_GetIter
    - PyErr_Occurred
    - assert
    - PyIter_Next
    - _PyType_CAST
    - dict_set_fromkeys
    - setitem_lock_held
    - PyAnySet_CheckExact
    - _PyObject_CallNoArgs
    - PyFrozenDict_CheckExact
    - PyFrozenDict_Check
    - dict_dict_fromkeys
    - Py_DECREF
    - PyDict_CheckExact
    - frozendict_new
    - PyObject_IsSubclass
    - Py_NewRef
    - PyObject_SetItem
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION
    - Py_SETREF
    - dict_merge
    - Py_END_CRITICAL_SECTION2
    - dict_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_FromKeys(PyObject *cls, PyObject *iterable, PyObject *value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/dictobject.c:3530,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:3531,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/dictobject.c:3532,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/dictobject.c:3540,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3544,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:3546,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:3548,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3551,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:3552,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:3554,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/dictobject.c:3555,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:3555,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:3558,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: 3550
        line_start: 3550
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3560
      start: 3526
    functionDepth: 8
    functionLinenumber: 3526
    functionLinenumberEnd: 3560
    functionName: dict_dealloc
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - _PyDict_NotifyEvent
    - _PyObject_ResurrectEnd
    - _PyObject_ResurrectStart
    - free_values
    - dictkeys_decref
    - Py_XDECREF
    - assert
    - PyObject_GC_UnTrack
    - _Py_FREELIST_FREE
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dict_dealloc(PyObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/dictobject.c:3569,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:3571,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/dictobject.c:3575,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:3576,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/dictobject.c:3581,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3586,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3594,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:3596,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:3597,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3601,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3604,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/dictobject.c:3611,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3616,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3619,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/dictobject.c:3624,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:3628,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:3629,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/dictobject.c:3632,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/dictobject.c:3636,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/dictobject.c:3638,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/dictobject.c:3641,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/dictobject.c:3642,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3643,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:3644,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3646
      start: 3563
    functionDepth: 5
    functionLinenumber: 3563
    functionLinenumberEnd: 3646
    functionName: anydict_repr_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicode_FromString
    - Py_ReprLeave
    - Py_INCREF
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteChar
    - Py_ReprEnter
    - Py_CLEAR
    - PyUnicodeWriter_Finish
    - Py_XDECREF
    - PyUnicodeWriter_WriteRepr
    - _PyDict_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anydict_repr_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3651,1
    - Dst: anydict_repr_impl
      Src: /src/cpython/Objects/dictobject.c:3652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3653
      start: 3648
    functionDepth: 6
    functionLinenumber: 3648
    functionLinenumberEnd: 3653
    functionName: dict_repr_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - anydict_repr_impl
    - ASSERT_DICT_LOCKED
    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:3659,1
    - Dst: dict_repr_lock_held
      Src: /src/cpython/Objects/dictobject.c:3660,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3663
      start: 3655
    functionDepth: 7
    functionLinenumber: 3655
    functionLinenumberEnd: 3663
    functionName: dict_repr
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - dict_repr_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_USED
      Src: /src/cpython/Objects/dictobject.c:3668,1
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:3668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3669
      start: 3665
    functionDepth: 1
    functionLinenumber: 3665
    functionLinenumberEnd: 3669
    functionName: dict_length
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyAnyDict_CAST
    - GET_USED
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dict_length(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:3674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3675
      start: 3671
    functionDepth: 1
    functionLinenumber: 3671
    functionLinenumberEnd: 3675
    functionName: frozendict_length
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyAnyDict_CAST
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t frozendict_length(PyObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:3684,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3688,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/dictobject.c:3691,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:3692,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/dictobject.c:3694,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3695,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3698,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/dictobject.c:3701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3677
    functionDepth: 6
    functionLinenumber: 3677
    functionLinenumberEnd: 3705
    functionName: _PyDict_SubscriptKnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_CheckExact
    - _PyObject_LookupSpecial
    - _PyErr_SetKeyError
    - _Py_ID
    - PyErr_Occurred
    - _Py_dict_lookup_threadsafe
    - Py_DECREF
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_SubscriptKnownHash(PyObject *self, PyObject *key, Py_hash_t hash)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:3710,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:3712,1
    - Dst: _PyDict_SubscriptKnownHash
      Src: /src/cpython/Objects/dictobject.c:3715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3716
      start: 3707
    functionDepth: 7
    functionLinenumber: 3707
    functionLinenumberEnd: 3716
    functionName: _PyDict_Subscript
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - dict_unhashable_type
    - _PyDict_SubscriptKnownHash
    - _PyObject_HashFast
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_Subscript(PyObject *self, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/dictobject.c:3722,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/dictobject.c:3724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mp
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3725
      start: 3718
    functionDepth: 10
    functionLinenumber: 3718
    functionLinenumberEnd: 3725
    functionName: _PyDict_StoreSubscript
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyDict_DelItem
    linkageType: ''
    returnType: int
    signature: int _PyDict_StoreSubscript(PyObject *mp, PyObject *v, PyObject *w)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3736,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3738,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3739,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/dictobject.c:3748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3755,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3762,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3763,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3764,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3764,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3767,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (j < n)
      pos:
        line_end: 3762
        line_start: 3762
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (j == n)
      pos:
        line_end: 3766
        line_start: 3766
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3769
      start: 3733
    functionDepth: 3
    functionLinenumber: 3733
    functionLinenumberEnd: 3769
    functionName: keys_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyAnyDict_Check
    - ASSERT_DICT_LOCKED
    - PyErr_BadInternalCall
    - PyList_New
    - assert
    - Py_DECREF
    - _PyDict_Next
    - Py_NewRef
    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:3775,1
    - Dst: keys_lock_held
      Src: /src/cpython/Objects/dictobject.c:3776,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3780
      start: 3771
    functionDepth: 4
    functionLinenumber: 3771
    functionLinenumberEnd: 3780
    functionName: PyDict_Keys
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - keys_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Keys(PyObject *dict)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:3785,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3787,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3788,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/dictobject.c:3797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3804,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3811,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3812,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3813,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3813,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (j < n)
      pos:
        line_end: 3811
        line_start: 3811
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (j == n)
      pos:
        line_end: 3815
        line_start: 3815
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3818
      start: 3782
    functionDepth: 3
    functionLinenumber: 3782
    functionLinenumberEnd: 3818
    functionName: values_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyAnyDict_Check
    - ASSERT_DICT_LOCKED
    - PyErr_BadInternalCall
    - PyList_New
    - assert
    - Py_DECREF
    - _PyDict_Next
    - Py_NewRef
    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:3824,1
    - Dst: values_lock_held
      Src: /src/cpython/Objects/dictobject.c:3825,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3828
      start: 3820
    functionDepth: 4
    functionLinenumber: 3820
    functionLinenumberEnd: 3828
    functionName: PyDict_Values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:3833,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3835,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:3836,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/dictobject.c:3850,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/dictobject.c:3854,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3856,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:3865,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:3872,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3873,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3874,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3875,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3875,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:3876,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:3876,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3879,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (j < n)
      pos:
        line_end: 3872
        line_start: 3872
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (j == n)
      pos:
        line_end: 3878
        line_start: 3878
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3881
      start: 3830
    functionDepth: 3
    functionLinenumber: 3830
    functionLinenumberEnd: 3881
    functionName: items_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyAnyDict_Check
    - ASSERT_DICT_LOCKED
    - PyList_GET_ITEM
    - PyErr_BadInternalCall
    - PyTuple_SET_ITEM
    - PyList_New
    - assert
    - Py_DECREF
    - _PyDict_Next
    - Py_NewRef
    - PyTuple_New
    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:3887,1
    - Dst: items_lock_held
      Src: /src/cpython/Objects/dictobject.c:3888,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:3889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3883
    functionDepth: 4
    functionLinenumber: 3883
    functionLinenumberEnd: 3892
    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:3909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - iterable
    - value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3910
      start: 3905
    functionDepth: 11
    functionLinenumber: 3905
    functionLinenumberEnd: 3910
    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: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:3916,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:3917,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/dictobject.c:3919,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:3919,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:3924,1
    - Dst: dict_merge_from_seq2
      Src: /src/cpython/Objects/dictobject.c:3926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3913
    functionDepth: 3
    functionLinenumber: 3913
    functionLinenumberEnd: 3927
    functionName: dict_update_arg
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrWithError
    - PyAnyDict_CheckExact
    - dict_merge
    - dict_merge_from_seq2
    - _Py_ID
    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:3936,1
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:3940,1
    - Dst: PyArg_ValidateKeywordArguments
      Src: /src/cpython/Objects/dictobject.c:3944,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:3945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - self
    - args
    - kwds
    - methname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3950
      start: 3929
    functionDepth: 4
    functionLinenumber: 3929
    functionLinenumberEnd: 3950
    functionName: dict_update_common
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyArg_ValidateKeywordArguments
    - dict_merge
    - dict_update_arg
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: "int dict_update_common(PyObject *self, PyObject *args, PyObject *kwds,\n
      \                  const char *methname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_update_common
      Src: /src/cpython/Objects/dictobject.c:3958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3961
      start: 3955
    functionDepth: 5
    functionLinenumber: 3955
    functionLinenumberEnd: 3961
    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:3981,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3982,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:3982,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:3983,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:3985,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:3994,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:3996,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/dictobject.c:4002,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/dictobject.c:4004,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Objects/dictobject.c:4005,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:4012,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:4014,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:4022,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:4023,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4024,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4025,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:4027,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4029,1
    - Dst: dict_setdefault_ref_lock_held
      Src: /src/cpython/Objects/dictobject.c:4034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4035,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4044,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4048,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:4051,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:4052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4055,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/dictobject.c:4056,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 3
    argNames:
    - d
    - seq2
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (d != NULL)
      pos:
        line_end: 3980
        line_start: 3980
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (seq2 != NULL)
      pos:
        line_end: 3982
        line_start: 3982
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyAnyDict_Check(d))
      pos:
        line_end: 3981
        line_start: 3981
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4057
      start: 3973
    functionDepth: 9
    functionLinenumber: 3973
    functionLinenumberEnd: 4057
    functionName: merge_from_seq2_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatNote
    - PyAnyDict_Check
    - Py_INCREF
    - PySequence_Fast
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast_GET_ITEM
    - setitem_lock_held
    - dict_setdefault_ref_lock_held
    - Py_SAFE_DOWNCAST
    - ASSERT_CONSISTENT
    - PyObject_GetIter
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - PyIter_Next
    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:4063,1
    - Dst: merge_from_seq2_lock_held
      Src: /src/cpython/Objects/dictobject.c:4064,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - d
    - seq2
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4068
      start: 4059
    functionDepth: 10
    functionLinenumber: 4059
    functionLinenumberEnd: 4068
    functionName: dict_merge_from_seq2
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - merge_from_seq2_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int dict_merge_from_seq2(PyObject *d, PyObject *seq2, int override)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4073,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4074,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4075,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:4076,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:4077,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:4080,1
    - Dst: dict_merge_from_seq2
      Src: /src/cpython/Objects/dictobject.c:4085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - d
    - seq2
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (d != NULL)
      pos:
        line_end: 4072
        line_start: 4072
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (seq2 != NULL)
      pos:
        line_end: 4073
        line_start: 4073
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4086
      start: 4070
    functionDepth: 11
    functionLinenumber: 4070
    functionLinenumberEnd: 4086
    functionName: PyDict_MergeFromSeq2
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - PyFrozenDict_Check
    - frozendict_does_not_support
    - PyErr_BadInternalCall
    - PyDict_Check
    - assert
    - dict_merge_from_seq2
    linkageType: ''
    returnType: int
    signature: int PyDict_MergeFromSeq2(PyObject *d, PyObject *seq2, int override)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4091,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:4091,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4092,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:4109,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:4110,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:4110,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:4112,1
    - Dst: clone_combined_dict_keys
      Src: /src/cpython/Objects/dictobject.c:4113,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/dictobject.c:4117,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:4118,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:4118,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:4119,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:4120,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4121,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/dictobject.c:4123,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/dictobject.c:4123,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:4125,1
    - Dst: USABLE_FRACTION
      Src: /src/cpython/Objects/dictobject.c:4135,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:4135,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:4136,1
    - Dst: dictresize
      Src: /src/cpython/Objects/dictobject.c:4137,1
    - Dst: estimate_log2_keysize
      Src: /src/cpython/Objects/dictobject.c:4137,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:4148,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4150,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4151,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:4153,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4153,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4153,1
    - Dst: _PyDict_Contains_KnownHash
      Src: /src/cpython/Objects/dictobject.c:4156,1
    - Dst: insertdict
      Src: /src/cpython/Objects/dictobject.c:4158,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4158,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4170,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:4175,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 4
    argNames:
    - mp
    - other
    - override
    - dupkey
    argTypes:
    - PyDictObject*
    - PyDictObject*
    - int
    - PyObject**
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 4090
        line_start: 4090
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4181
      start: 4088
    functionDepth: 9
    functionLinenumber: 4088
    functionLinenumberEnd: 4181
    functionName: dict_dict_merge
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - ASSERT_DICT_LOCKED
    - can_modify_dict
    - assert
    - _PyDict_Next
    - _PyObject_GC_IS_TRACKED
    - clone_combined_dict_keys
    - USABLE_FRACTION
    - _PyDict_NotifyEvent
    - ASSERT_CONSISTENT
    - dictresize
    - DK_IS_UNICODE
    - IS_DICT_SHARED
    - ensure_shared_on_resize
    - DK_SIZE
    - _PyDict_Contains_KnownHash
    - Py_INCREF
    - insertdict
    - PyErr_SetString
    - DK_LOG_SIZE
    - dictkeys_decref
    - set_keys
    - Py_DECREF
    - Py_NewRef
    - estimate_log2_keysize
    - STORE_USED
    linkageType: ''
    returnType: int
    signature: int dict_dict_merge(PyDictObject *mp, PyDictObject *other, int override,
      PyObject **dupkey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4186,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4187,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4188,1
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:4190,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4192,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:4192,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:4195,1
    - Dst: dict_dict_merge
      Src: /src/cpython/Objects/dictobject.c:4196,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4197,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:4198,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4203,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Objects/dictobject.c:4204,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:4219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4220,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:4226,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:4226,1
    - Dst: dict_contains
      Src: /src/cpython/Objects/dictobject.c:4228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4242,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/dictobject.c:4246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4249,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:4253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4263,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:4264,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4271,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4272,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 4
    argNames:
    - a
    - b
    - override
    - dupkey
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject**
    assertStmts:
    - condition: (0 <= override && override <= 2)
      pos:
        line_end: 4187
        line_start: 4187
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (b != NULL)
      pos:
        line_end: 4186
        line_start: 4186
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (a != NULL)
      pos:
        line_end: 4185
        line_start: 4185
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4275
      start: 4183
    functionDepth: 10
    functionLinenumber: 4183
    functionLinenumberEnd: 4275
    functionName: dict_merge
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 4
    functionsReached:
    - PyAnyDict_Check
    - setitem_lock_held
    - dict_contains
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION
    - ASSERT_CONSISTENT
    - PyObject_GetItem
    - PyObject_GetIter
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - Py_END_CRITICAL_SECTION2
    - _PyAnyDict_CAST
    - dict_dict_merge
    - PyIter_Next
    - Py_TYPE
    - PyMapping_Keys
    linkageType: ''
    returnType: int
    signature: int dict_merge(PyObject *a, PyObject *b, int override, PyObject **dupkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4285,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:4286,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:4287,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:4290,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:4294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - a
    - b
    - override
    - dupkey
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4295
      start: 4277
    functionDepth: 1
    functionLinenumber: 4277
    functionLinenumberEnd: 4295
    functionName: dict_merge_api
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_Check
    - frozendict_does_not_support
    - PyErr_BadInternalCall
    - PyDict_Check
    - dict_merge
    linkageType: ''
    returnType: int
    signature: int dict_merge_api(PyObject *a, PyObject *b, int override, PyObject
      **dupkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_merge_api
      Src: /src/cpython/Objects/dictobject.c:4300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4301
      start: 4297
    functionDepth: 2
    functionLinenumber: 4297
    functionLinenumberEnd: 4301
    functionName: PyDict_Update
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 9
    functionsReached:
    - dict_merge_api
    linkageType: ''
    returnType: int
    signature: int PyDict_Update(PyObject *a, PyObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_merge_api
      Src: /src/cpython/Objects/dictobject.c:4307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4308
      start: 4303
    functionDepth: 2
    functionLinenumber: 4303
    functionLinenumberEnd: 4308
    functionName: PyDict_Merge
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - dict_merge_api
    linkageType: ''
    returnType: int
    signature: int PyDict_Merge(PyObject *a, PyObject *b, int override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_merge_api
      Src: /src/cpython/Objects/dictobject.c:4313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - dupkey
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4310
    functionDepth: 2
    functionLinenumber: 4310
    functionLinenumberEnd: 4314
    functionName: _PyDict_MergeUniq
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - dict_merge_api
    linkageType: ''
    returnType: int
    signature: int _PyDict_MergeUniq(PyObject *a, PyObject *b, PyObject **dupkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/dictobject.c:4326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4322
    functionDepth: 1
    functionLinenumber: 4322
    functionLinenumberEnd: 4327
    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:4335,1
    - Dst: get_insertion_order_array
      Src: /src/cpython/Objects/dictobject.c:4340,1
    - Dst: get_insertion_order_array
      Src: /src/cpython/Objects/dictobject.c:4341,1
    - Dst: memcpy
      Src: /src/cpython/Objects/dictobject.c:4342,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - values
    argTypes:
    - PyDictValues*
    assertStmts:
    - condition: (newvalues->embedded == 0)
      pos:
        line_end: 4345
        line_start: 4345
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4348
      start: 4332
    functionDepth: 3
    functionLinenumber: 4332
    functionLinenumberEnd: 4348
    functionName: copy_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - new_values
    - memcpy
    - get_insertion_order_array
    - assert
    linkageType: ''
    returnType: PyDictValues
    signature: 'PyDictValues *

      copy_values(PyDictValues *values)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:4357,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4358,1
    - Dst: PyFrozenDict_New
      Src: /src/cpython/Objects/dictobject.c:4365,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:4368,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4372,1
    - Dst: copy_values
      Src: /src/cpython/Objects/dictobject.c:4374,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:4376,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:4379,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:4383,1
    - Dst: free_values
      Src: /src/cpython/Objects/dictobject.c:4386,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/dictobject.c:4390,1
    - Dst: dictkeys_incref
      Src: /src/cpython/Objects/dictobject.c:4396,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:4401,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:4405,1
    - Dst: clone_combined_dict_keys
      Src: /src/cpython/Objects/dictobject.c:4423,1
    - Dst: new_frozendict::new_frozendict
      Src: /src/cpython/Objects/dictobject.c:4429,1
    - Dst: new_dict::new_dict
      Src: /src/cpython/Objects/dictobject.c:4432,1
    - Dst: PyFrozenDict_New
      Src: /src/cpython/Objects/dictobject.c:4446,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:4449,1
    - Dst: dict_merge
      Src: /src/cpython/Objects/dictobject.c:4453,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4455,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 2
    argNames:
    - o
    - as_frozendict
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4457
      start: 4350
    functionDepth: 11
    functionLinenumber: 4350
    functionLinenumberEnd: 4457
    functionName: copy_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - clone_combined_dict_keys
    - PyObject_GC_New
    - Py_XINCREF
    - PyErr_NoMemory
    - PyFrozenDict_Check
    - new_frozendict::new_frozendict
    - _PyObject_GC_TRACK
    - copy_values
    - ASSERT_DICT_LOCKED
    - free_values
    - PyFrozenDict_New
    - new_dict::new_dict
    - _PyDict_HasSplitTable
    - dictkeys_incref
    - dict_merge
    - Py_DECREF
    - Py_TYPE
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      copy_lock_held(PyObject *o, int as_frozendict)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4462,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:4463,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4468,1
    - Dst: copy_lock_held
      Src: /src/cpython/Objects/dictobject.c:4469,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4472
      start: 4459
    functionDepth: 12
    functionLinenumber: 4459
    functionLinenumberEnd: 4472
    functionName: PyDict_Copy
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 11
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - PyDict_Check
    - copy_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Copy(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4479,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4479,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:4482,1
    - Dst: copy_lock_held
      Src: /src/cpython/Objects/dictobject.c:4483,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4486,1
    - Dst: copy_lock_held
      Src: /src/cpython/Objects/dictobject.c:4487,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyAnyDict_Check(o))
      pos:
        line_end: 4478
        line_start: 4478
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4491
      start: 4476
    functionDepth: 12
    functionLinenumber: 4476
    functionLinenumberEnd: 4491
    functionName: anydict_copy
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyFrozenDict_Check
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - copy_lock_held
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      anydict_copy(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4498,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4498,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:4501,1
    - Dst: copy_lock_held
      Src: /src/cpython/Objects/dictobject.c:4502,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4505,1
    - Dst: copy_lock_held
      Src: /src/cpython/Objects/dictobject.c:4506,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyAnyDict_Check(o))
      pos:
        line_end: 4497
        line_start: 4497
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4510
      start: 4495
    functionDepth: 12
    functionLinenumber: 4495
    functionLinenumberEnd: 4510
    functionName: _PyDict_CopyAsDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - PyAnyDict_Check
    - PyFrozenDict_Check
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - copy_lock_held
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_CopyAsDict(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4515,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:4516,1
    - Dst: GET_USED
      Src: /src/cpython/Objects/dictobject.c:4519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4512
    functionDepth: 1
    functionLinenumber: 4512
    functionLinenumberEnd: 4520
    functionName: PyDict_Size
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 6
    functionsReached:
    - PyErr_BadInternalCall
    - PyAnyDict_Check
    - GET_USED
    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:4531,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4532,1
    - Dst: LOAD_KEYS_NENTRIES
      Src: /src/cpython/Objects/dictobject.c:4538,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:4541,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4542,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:4547,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4548,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4554,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4564,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4566,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:4568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4571,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:4572,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:4576,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:4577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4579,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4580,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyDictObject*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4586
      start: 4526
    functionDepth: 5
    functionLinenumber: 4526
    functionLinenumberEnd: 4586
    functionName: dict_equal_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - unicode_get_hash
    - ASSERT_DICT_LOCKED
    - LOAD_KEYS_NENTRIES
    - DK_IS_UNICODE
    - DK_ENTRIES
    - _PyDict_HasSplitTable
    - _Py_dict_lookup
    - PyErr_Occurred
    - Py_DECREF
    - DK_UNICODE_ENTRIES
    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:4592,1
    - Dst: dict_equal_lock_held
      Src: /src/cpython/Objects/dictobject.c:4593,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:4594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyDictObject*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4597
      start: 4588
    functionDepth: 6
    functionLinenumber: 4588
    functionLinenumberEnd: 4597
    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: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4605,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4605,1
    - Dst: dict_equal
      Src: /src/cpython/Objects/dictobject.c:4609,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4617
      start: 4599
    functionDepth: 7
    functionLinenumber: 4599
    functionLinenumberEnd: 4617
    functionName: dict_richcompare
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_equal
    - PyAnyDict_Check
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict_contains
      Src: /src/cpython/Objects/dictobject.c:4634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4630
    functionDepth: 0
    functionLinenumber: 4630
    functionLinenumberEnd: 4642
    functionName: dict___contains___impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_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:4662,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:4664,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:4667,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4674
      start: 4654
    functionDepth: 6
    functionLinenumber: 4654
    functionLinenumberEnd: 4674
    functionName: dict_get_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - dict_unhashable_type
    - _Py_dict_lookup_threadsafe
    - Py_NewRef
    - _PyObject_HashFast
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_get_impl(PyDictObject *self, PyObject *key, PyObject *default_value)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:4680,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:4681,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:4682,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:4685,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4692,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:4692,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:4699,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:4701,1
    - Dst: insert_to_emptydict
      Src: /src/cpython/Objects/dictobject.c:4709,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4709,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4710,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4717,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4722,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:4722,1
    - Dst: insert_split_key
      Src: /src/cpython/Objects/dictobject.c:4723,1
    - Dst: _PyDict_InsertSplitValue
      Src: /src/cpython/Objects/dictobject.c:4728,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4732,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:4739,1
    - Dst: insert_combined_dict
      Src: /src/cpython/Objects/dictobject.c:4752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4754,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:4761,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4762,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4763,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4765,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4770,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4771,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:4773,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 5
    argNames:
    - d
    - key
    - default_value
    - result
    - incref_result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - int
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 4769
        line_start: 4769
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (can_modify_dict((PyDictObject*)d))
      pos:
        line_end: 4691
        line_start: 4691
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_keys->dk_usable >= 0)
      pos:
        line_end: 4761
        line_start: 4761
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4776
      start: 4676
    functionDepth: 5
    functionLinenumber: 4676
    functionLinenumberEnd: 4776
    functionName: dict_setdefault_ref_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - frozendict_does_not_support
    - insert_to_emptydict
    - can_modify_dict
    - _PyObject_HashFast
    - _PyDict_HasSplitTable
    - _Py_dict_lookup
    - assert
    - insert_combined_dict
    - ASSERT_CONSISTENT
    - _PyDict_InsertSplitValue
    - PyFrozenDict_Check
    - PyErr_BadInternalCall
    - Py_DECREF
    - Py_NewRef
    - STORE_USED
    - dict_unhashable_type
    - PyUnicode_CheckExact
    - insert_split_key
    - PyDict_Check
    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:4783,1
    - Dst: dict_setdefault_ref_lock_held
      Src: /src/cpython/Objects/dictobject.c:4784,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4785,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: 4787
      start: 4778
    functionDepth: 6
    functionLinenumber: 4778
    functionLinenumberEnd: 4787
    functionName: PyDict_SetDefaultRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 6
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - dict_setdefault_ref_lock_held
    - Py_END_CRITICAL_SECTION
    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:4793,1
    - Dst: dict_setdefault_ref_lock_held
      Src: /src/cpython/Objects/dictobject.c:4794,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:4795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - d
    - key
    - defaultobj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4797
      start: 4789
    functionDepth: 6
    functionLinenumber: 4789
    functionLinenumberEnd: 4797
    functionName: PyDict_SetDefault
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - dict_setdefault_ref_lock_held
    - Py_END_CRITICAL_SECTION
    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:4818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4820
      start: 4812
    functionDepth: 6
    functionLinenumber: 4812
    functionLinenumberEnd: 4820
    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:4833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4835
      start: 4829
    functionDepth: 10
    functionLinenumber: 4829
    functionLinenumberEnd: 4835
    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:4855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4856
      start: 4851
    functionDepth: 9
    functionLinenumber: 4851
    functionLinenumberEnd: 4856
    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: assert
      Src: /src/cpython/Objects/dictobject.c:4872,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:4872,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/dictobject.c:4886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4890,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:4891,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4895,1
    - Dst: dictresize
      Src: /src/cpython/Objects/dictobject.c:4896,1
    - Dst: DK_LOG_SIZE
      Src: /src/cpython/Objects/dictobject.c:4896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:4897,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:4901,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:4906,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4907,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4912,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:4915,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:4916,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:4918,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:4919,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4922,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4927,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:4930,1
    - Dst: STORE_KEY
      Src: /src/cpython/Objects/dictobject.c:4933,1
    - Dst: STORE_HASH
      Src: /src/cpython/Objects/dictobject.c:4934,1
    - Dst: STORE_VALUE
      Src: /src/cpython/Objects/dictobject.c:4935,1
    - Dst: lookdict_index
      Src: /src/cpython/Objects/dictobject.c:4938,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4939,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:4940,1
    - Dst: dictkeys_get_index
      Src: /src/cpython/Objects/dictobject.c:4940,1
    - Dst: dictkeys_set_index
      Src: /src/cpython/Objects/dictobject.c:4941,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:4943,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:4944,1
    - Dst: STORE_KEYS_NENTRIES
      Src: /src/cpython/Objects/dictobject.c:4946,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:4947,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:4948,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (can_modify_dict(self))
      pos:
        line_end: 4871
        line_start: 4871
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 4926
        line_start: 4926
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (j >= 0)
      pos:
        line_end: 4938
        line_start: 4938
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 4911
        line_start: 4911
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (dictkeys_get_index(self->ma_keys, j) == i)
      pos:
        line_end: 4939
        line_start: 4939
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4950
      start: 4868
    functionDepth: 9
    functionLinenumber: 4868
    functionLinenumberEnd: 4950
    functionName: dict_popitem_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - STORE_KEY
    - can_modify_dict
    - _PyDict_HasSplitTable
    - assert
    - STORE_VALUE
    - DK_UNICODE_ENTRIES
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - STORE_KEYS_NENTRIES
    - unicode_get_hash
    - _PyDict_NotifyEvent
    - ASSERT_CONSISTENT
    - dictresize
    - DK_IS_UNICODE
    - dictkeys_get_index
    - lookdict_index
    - STORE_HASH
    - PyErr_SetString
    - DK_LOG_SIZE
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    - STORE_USED
    - DK_ENTRIES
    - dictkeys_set_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_popitem_impl(PyDictObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:4959,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4960,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:4962,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4966,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:4968,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:4973,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:4976,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:4977,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4982
      start: 4952
    functionDepth: 1
    functionLinenumber: 4952
    functionLinenumberEnd: 4982
    functionName: dict_traverse
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - DK_IS_UNICODE
    - DK_ENTRIES
    - _PyDict_HasSplitTable
    - DK_UNICODE_ENTRIES
    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:4987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4989
      start: 4984
    functionDepth: 10
    functionLinenumber: 4984
    functionLinenumberEnd: 4989
    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: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:4996,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Objects/dictobject.c:4998,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:4998,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:4999,1
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:5000,1
    - Dst: _PyDict_KeysSize
      Src: /src/cpython/Objects/dictobject.c:5005,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (res <= (size_t)PY_SSIZE_T_MAX)
      pos:
        line_end: 5006
        line_start: 5006
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5009
      start: 4993
    functionDepth: 1
    functionLinenumber: 4993
    functionLinenumberEnd: 5009
    functionName: _PyDict_SizeOf_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - assert
    - _PyDict_HasSplitTable
    - _PyObject_SIZE
    - _PyDict_KeysSize
    - shared_keys_usable_size
    - Py_TYPE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDict_SizeOf_LockHeld(PyDictObject *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:5014,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5015,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:5015,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:5017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (can_modify_dict(mp))
      pos:
        line_end: 5014
        line_start: 5014
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5018
      start: 5011
    functionDepth: 3
    functionLinenumber: 5011
    functionLinenumberEnd: 5018
    functionName: _PyDict_ClearKeysVersionLockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - can_modify_dict
    - _PyAnyDict_CAST
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyDict_ClearKeysVersionLockHeld(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:5024,1
    - Dst: _PyDict_SizeOf_LockHeld
      Src: /src/cpython/Objects/dictobject.c:5025,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:5026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5029
      start: 5020
    functionDepth: 2
    functionLinenumber: 5020
    functionLinenumberEnd: 5029
    functionName: _PyDict_SizeOf
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_SizeOf_LockHeld
    - Py_BEGIN_CRITICAL_SECTION
    - 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:5038,1
    - Dst: DK_SIZE
      Src: /src/cpython/Objects/dictobject.c:5038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5040
      start: 5031
    functionDepth: 1
    functionLinenumber: 5031
    functionLinenumberEnd: 5040
    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:5052,1
    - Dst: _PyDict_SizeOf
      Src: /src/cpython/Objects/dictobject.c:5052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5053
      start: 5048
    functionDepth: 3
    functionLinenumber: 5048
    functionLinenumberEnd: 5053
    functionName: dict___sizeof___impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _PyDict_SizeOf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___sizeof___impl(PyDictObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5058,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5058,1
    - Dst: anydict_copy
      Src: /src/cpython/Objects/dictobject.c:5061,1
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:5065,1
    - Dst: other::other
      Src: /src/cpython/Objects/dictobject.c:5065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5070
      start: 5055
    functionDepth: 13
    functionLinenumber: 5055
    functionLinenumberEnd: 5070
    functionName: _PyDict_Or
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - other::other
    - PyAnyDict_Check
    - anydict_copy
    - dict_update_arg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_Or(PyObject *self, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:5075,1
    - Dst: GET_USED
      Src: /src/cpython/Objects/dictobject.c:5077,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:5078,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5080,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:5084,1
    - Dst: GET_USED
      Src: /src/cpython/Objects/dictobject.c:5085,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5087,1
    - Dst: _PyDict_Or
      Src: /src/cpython/Objects/dictobject.c:5091,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5092
      start: 5072
    functionDepth: 14
    functionLinenumber: 5072
    functionLinenumberEnd: 5092
    functionName: frozendict_or
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - PyAnyDict_CheckExact
    - GET_USED
    - _PyDict_Or
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_or(PyObject *self, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:5098,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5102
      start: 5095
    functionDepth: 4
    functionLinenumber: 5095
    functionLinenumberEnd: 5102
    functionName: _PyDict_IOr
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - dict_update_arg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_IOr(PyObject *self, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:5140,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:5142,1
    - Dst: _PyDict_Contains_KnownHash
      Src: /src/cpython/Objects/dictobject.c:5146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5147
      start: 5137
    functionDepth: 2
    functionLinenumber: 5137
    functionLinenumberEnd: 5147
    functionName: dict_contains
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - dict_unhashable_type
    - _PyDict_Contains_KnownHash
    - _PyObject_HashFast
    linkageType: ''
    returnType: int
    signature: int dict_contains(PyObject *op, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5153,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:5154,1
    - Dst: dict_contains
      Src: /src/cpython/Objects/dictobject.c:5158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5159
      start: 5150
    functionDepth: 1
    functionLinenumber: 5150
    functionLinenumberEnd: 5159
    functionName: PyDict_Contains
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 12
    functionsReached:
    - PyErr_BadInternalCall
    - PyAnyDict_Check
    - dict_contains
    linkageType: ''
    returnType: int
    signature: int PyDict_Contains(PyObject *op, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:5164,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/dictobject.c:5168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5171
      start: 5161
    functionDepth: 2
    functionLinenumber: 5161
    functionLinenumberEnd: 5171
    functionName: PyDict_ContainsString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyDict_Contains
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyDict_ContainsString(PyObject *op, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:5177,1
    - Dst: _Py_dict_lookup_threadsafe
      Src: /src/cpython/Objects/dictobject.c:5182,1
    - Dst: _Py_dict_lookup
      Src: /src/cpython/Objects/dictobject.c:5184,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5195
      start: 5174
    functionDepth: 6
    functionLinenumber: 5174
    functionLinenumberEnd: 5195
    functionName: _PyDict_Contains_KnownHash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _PyAnyDict_CAST
    - _Py_dict_lookup
    - _Py_dict_lookup_threadsafe
    linkageType: ''
    returnType: int
    signature: int _PyDict_Contains_KnownHash(PyObject *op, PyObject *key, Py_hash_t
      hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5219,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5220,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5222,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/dictobject.c:5222,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/dictobject.c:5224,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5233,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:5236,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/dictobject.c:5237,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:5238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL)
      pos:
        line_end: 5218
        line_start: 5218
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (type->tp_alloc != NULL)
      pos:
        line_end: 5219
        line_start: 5219
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyType_IS_GC(type))
      pos:
        line_end: 5221
        line_start: 5221
        source_file: /src/cpython/Objects/dictobject.c
    - condition: ((Py_EMPTY_KEYS)->dk_refcnt == _Py_DICT_IMMORTAL_INITIAL_REFCNT)
      pos:
        line_end: 5232
        line_start: 5232
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5241
      start: 5216
    functionDepth: 1
    functionLinenumber: 5216
    functionLinenumberEnd: 5241
    functionName: dict_new
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyType_IS_GC
    - _PyObject_GC_TRACK
    - ASSERT_CONSISTENT
    - assert
    - _PyObject_GC_IS_TRACKED
    - PyTypeObject*::tp_alloc
    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:5246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5247
      start: 5243
    functionDepth: 5
    functionLinenumber: 5243
    functionLinenumberEnd: 5247
    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:5253,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/dictobject.c:5254,1
    - Dst: dict_new
      Src: /src/cpython/Objects/dictobject.c:5258,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/dictobject.c:5258,1
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:5263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5264,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:5270,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:5271,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/dictobject.c:5272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5273,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: 5279
      start: 5249
    functionDepth: 10
    functionLinenumber: 5249
    functionLinenumberEnd: 5279
    functionName: dict_vectorcall
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - PyVectorcall_NARGS
    - dict_update_arg
    - PyDict_SetItem
    - Py_DECREF
    - PyTuple_GET_SIZE
    - dict_new
    - _PyType_CAST
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndict_vectorcall(PyObject *type, PyObject * const*args,\n
      \               size_t nargsf, PyObject *kwnames)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/dictobject.c:5285,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/dictobject.c:5286,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:5291,1
    - Dst: Py_Is
      Src: /src/cpython/Objects/dictobject.c:5292,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5295,1
    - Dst: frozendict_new
      Src: /src/cpython/Objects/dictobject.c:5298,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/dictobject.c:5298,1
    - Dst: dict_update_arg
      Src: /src/cpython/Objects/dictobject.c:5303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5304,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:5310,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:5311,1
    - Dst: _PyAnyDict_SetItem
      Src: /src/cpython/Objects/dictobject.c:5312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5313,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - type
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5319
      start: 5281
    functionDepth: 10
    functionLinenumber: 5281
    functionLinenumberEnd: 5319
    functionName: frozendict_vectorcall
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _PyAnyDict_SetItem
    - frozendict_new
    - dict_update_arg
    - Py_Is
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyVectorcall_NARGS
    - Py_NewRef
    - _PyType_CAST
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfrozendict_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:5325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5326
      start: 5321
    functionDepth: 1
    functionLinenumber: 5321
    functionLinenumberEnd: 5326
    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:5392,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:5394,1
    - Dst: dict_getitem
      Src: /src/cpython/Objects/dictobject.c:5399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5404
      start: 5388
    functionDepth: 1
    functionLinenumber: 5388
    functionLinenumberEnd: 5404
    functionName: PyDict_GetItemString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - dict_getitem
    - PyUnicode_FromString
    - PyErr_FormatUnraisable
    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:5409,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/dictobject.c:5414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - v
    - key
    - result
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5417
      start: 5406
    functionDepth: 8
    functionLinenumber: 5406
    functionLinenumberEnd: 5417
    functionName: PyDict_GetItemStringRef
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyDict_GetItemRef
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int PyDict_GetItemStringRef(PyObject *v, const char *key, PyObject
      **result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:5424,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:5427,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Objects/dictobject.c:5428,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/dictobject.c:5429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - v
    - key
    - item
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5432
      start: 5419
    functionDepth: 10
    functionLinenumber: 5419
    functionLinenumberEnd: 5432
    functionName: PyDict_SetItemString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 41
    functionsReached:
    - PyUnicode_FromString
    - _PyInterpreterState_GET
    - PyDict_SetItem
    - Py_DECREF
    - _PyUnicode_InternImmortal
    linkageType: ''
    returnType: int
    signature: int PyDict_SetItemString(PyObject *v, const char *key, PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:5439,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/dictobject.c:5442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5445
      start: 5434
    functionDepth: 3
    functionLinenumber: 5434
    functionLinenumberEnd: 5445
    functionName: PyDict_DelItemString
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - PyDict_DelItem
    - PyUnicode_FromString
    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:5463,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5467,1
    - Dst: GET_USED
      Src: /src/cpython/Objects/dictobject.c:5468,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5474,1
    - Dst: load_keys_nentries
      Src: /src/cpython/Objects/dictobject.c:5478,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/dictobject.c:5486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5488,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:5495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - dict
    - itertype
    argTypes:
    - PyDictObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5497
      start: 5458
    functionDepth: 1
    functionLinenumber: 5458
    functionLinenumberEnd: 5497
    functionName: dictiter_new
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - load_keys_nentries
    - _PyObject_GC_TRACK
    - _PyDict_HasSplitTable
    - GET_USED
    - _PyTuple_FromPairSteal
    - Py_DECREF
    - Py_NewRef
    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:5504,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:5505,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:5506,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/dictobject.c:5507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5508
      start: 5499
    functionDepth: 0
    functionLinenumber: 5499
    functionLinenumberEnd: 5508
    functionName: dictiter_dealloc
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void dictiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:5514,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:5515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5517
      start: 5510
    functionDepth: 1
    functionLinenumber: 5510
    functionLinenumberEnd: 5517
    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: GET_USED
      Src: /src/cpython/Objects/dictobject.c:5524,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:5525,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/dictobject.c:5526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5527
      start: 5519
    functionDepth: 1
    functionLinenumber: 5519
    functionLinenumberEnd: 5527
    functionName: dictiter_len
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - GET_USED
    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:5561,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5561,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:5562,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5565,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5573,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5574,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5577,1
    - Dst: LOAD_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:5578,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5578,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5579,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5583,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5584,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5594,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5606,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5616,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - d
    - self
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (PyAnyDict_Check(d))
      pos:
        line_end: 5560
        line_start: 5560
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 5572
        line_start: 5572
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (d->ma_values->values[index] != NULL)
      pos:
        line_end: 5578
        line_start: 5578
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5618
      start: 5553
    functionDepth: 2
    functionLinenumber: 5553
    functionLinenumberEnd: 5618
    functionName: dictiter_iternextkey_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyErr_SetString
    - Py_NewRef
    - ASSERT_DICT_LOCKED
    - DK_IS_UNICODE
    - DK_ENTRIES
    - _PyDict_HasSplitTable
    - assert
    - Py_DECREF
    - LOAD_SHARED_KEY
    - DK_UNICODE_ENTRIES
    - get_index_from_order
    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:5633,1
    - Dst: dictiter_iternextkey_lock_held
      Src: /src/cpython/Objects/dictobject.c:5637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5641
      start: 5622
    functionDepth: 3
    functionLinenumber: 5622
    functionLinenumberEnd: 5641
    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:5685,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5685,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:5686,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5689,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5696,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5697,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5700,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5702,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5706,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5707,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5717,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5729,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5735,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5739,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - d
    - self
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (PyAnyDict_Check(d))
      pos:
        line_end: 5684
        line_start: 5684
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 5695
        line_start: 5695
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 5701
        line_start: 5701
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5741
      start: 5678
    functionDepth: 2
    functionLinenumber: 5678
    functionLinenumberEnd: 5741
    functionName: dictiter_iternextvalue_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyErr_SetString
    - Py_NewRef
    - ASSERT_DICT_LOCKED
    - DK_IS_UNICODE
    - DK_ENTRIES
    - _PyDict_HasSplitTable
    - assert
    - Py_DECREF
    - DK_UNICODE_ENTRIES
    - get_index_from_order
    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:5756,1
    - Dst: dictiter_iternextvalue_lock_held
      Src: /src/cpython/Objects/dictobject.c:5760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5764
      start: 5745
    functionDepth: 3
    functionLinenumber: 5745
    functionLinenumberEnd: 5764
    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:5807,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5807,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:5808,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5811,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:5817,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5819,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5820,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5823,1
    - Dst: LOAD_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:5824,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5824,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5826,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5830,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5831,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5842,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5855,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5862,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:5865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5871,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 4
    argNames:
    - d
    - self
    - out_key
    - out_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (PyAnyDict_Check(d))
      pos:
        line_end: 5806
        line_start: 5806
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 5818
        line_start: 5818
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 5825
        line_start: 5825
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 5873
      start: 5799
    functionDepth: 2
    functionLinenumber: 5799
    functionLinenumberEnd: 5873
    functionName: dictiter_iternextitem_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - DK_UNICODE_ENTRIES
    - PyErr_SetString
    - Py_NewRef
    - ASSERT_DICT_LOCKED
    - DK_IS_UNICODE
    - DK_ENTRIES
    - _PyDict_HasSplitTable
    - assert
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - LOAD_SHARED_KEY
    - get_index_from_order
    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:5885,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:5892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:5894,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: 5902
      start: 5880
    functionDepth: 1
    functionLinenumber: 5880
    functionLinenumberEnd: 5902
    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:5913,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:5913,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5915,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5916,1
    - Dst: ensure_shared_on_read
      Src: /src/cpython/Objects/dictobject.c:5922,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5924,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/dictobject.c:5925,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:5926,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:5927,1
    - Dst: _Py_atomic_load_ptr_consume
      Src: /src/cpython/Objects/dictobject.c:5928,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Objects/dictobject.c:5933,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:5942,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:5943,1
    - Dst: acquire_key_value
      Src: /src/cpython/Objects/dictobject.c:5944,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5944,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5950,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:5951,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5952,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:5955,1
    - Dst: acquire_key_value
      Src: /src/cpython/Objects/dictobject.c:5962,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:5968,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/dictobject.c:5971,1
    - Dst: acquire_key_value
      Src: /src/cpython/Objects/dictobject.c:5979,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5987,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5991,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:5992,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:5996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6001,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:6005,1
    - Dst: dictiter_iternextitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:6006,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:6007,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 4
    argNames:
    - d
    - self
    - out_key
    - out_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (i >= 0)
      pos:
        line_end: 5925
        line_start: 5925
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyAnyDict_Check(d))
      pos:
        line_end: 5912
        line_start: 5912
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6009
      start: 5904
    functionDepth: 3
    functionLinenumber: 5904
    functionLinenumberEnd: 6009
    functionName: dictiter_iternext_threadsafe
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - acquire_key_value
    - Py_END_CRITICAL_SECTION
    - dictiter_iternextitem_lock_held
    - ensure_shared_on_read
    - _PyDict_HasSplitTable
    - assert
    - DK_UNICODE_ENTRIES
    - _Py_atomic_load_ptr_acquire
    - DK_IS_UNICODE
    - get_index_from_order
    - _Py_atomic_load_ssize_relaxed
    - PyAnyDict_Check
    - _Py_atomic_load_ptr_consume
    - PyErr_SetString
    - _Py_atomic_store_ssize_relaxed
    - Py_DECREF
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_atomic_load_ptr
    - _Py_atomic_load_uint8
    - DK_ENTRIES
    linkageType: ''
    returnType: int
    signature: "int dictiter_iternext_threadsafe(PyDictObject *d, PyObject *self,\n
      \                            PyObject **out_key, PyObject **out_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/dictobject.c:6016,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:6017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6021
      start: 6013
    functionDepth: 1
    functionLinenumber: 6013
    functionLinenumberEnd: 6021
    functionName: acquire_iter_result
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyObject_IsUniquelyReferenced
    linkageType: ''
    returnType: bool
    signature: bool acquire_iter_result(PyObject *result)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6100,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:6100,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:6101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:6104,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Objects/dictobject.c:6117,1
    - Dst: get_index_from_order
      Src: /src/cpython/Objects/dictobject.c:6118,1
    - Dst: LOAD_SHARED_KEY
      Src: /src/cpython/Objects/dictobject.c:6119,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:6119,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6121,1
    - Dst: DK_IS_UNICODE
      Src: /src/cpython/Objects/dictobject.c:6124,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:6125,1
    - Dst: DK_ENTRIES
      Src: /src/cpython/Objects/dictobject.c:6136,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:6150,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:6151,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:6153,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:6154,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/dictobject.c:6156,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/dictobject.c:6158,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6159,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6160,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6161,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:6161,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6162,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:6162,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:6163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6165,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Objects/dictobject.c:6168,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/dictobject.c:6171,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/dictobject.c:6176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6181,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 2
    argNames:
    - d
    - self
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts:
    - condition: (PyAnyDict_Check(d))
      pos:
        line_end: 6099
        line_start: 6099
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 6120
        line_start: 6120
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6183
      start: 6095
    functionDepth: 2
    functionLinenumber: 6095
    functionLinenumberEnd: 6183
    functionName: dictreviter_iter_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - ASSERT_DICT_LOCKED
    - _PyDict_HasSplitTable
    - assert
    - DK_UNICODE_ENTRIES
    - DK_IS_UNICODE
    - Py_UNREACHABLE
    - LOAD_SHARED_KEY
    - get_index_from_order
    - _PyObject_IsUniquelyReferenced
    - PyAnyDict_Check
    - Py_INCREF
    - Py_IS_TYPE
    - PyErr_SetString
    - _PyTuple_FromPair
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - _PyTuple_Recycle
    - DK_ENTRIES
    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:6195,1
    - Dst: dictreviter_iter_lock_held
      Src: /src/cpython/Objects/dictobject.c:6196,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:6197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6185
    functionDepth: 3
    functionLinenumber: 6185
    functionLinenumberEnd: 6200
    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:6225,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:6225,1
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:6226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (PyAnyDict_Check(self))
      pos:
        line_end: 6224
        line_start: 6224
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6227
      start: 6221
    functionDepth: 2
    functionLinenumber: 6221
    functionLinenumberEnd: 6227
    functionName: dict___reversed___impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_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:6235,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/dictobject.c:6236,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6237,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/dictobject.c:6241,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/dictobject.c:6241,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6242
      start: 6229
    functionDepth: 1
    functionLinenumber: 6229
    functionLinenumberEnd: 6242
    functionName: dictiter_reduce
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - PySequence_List
    - Py_BuildValue
    - _Py_ID
    - Py_XDECREF
    - 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:6279,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6280,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/dictobject.c:6281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6282
      start: 6274
    functionDepth: 0
    functionLinenumber: 6274
    functionLinenumberEnd: 6282
    functionName: dictview_dealloc
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void dictview_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:6288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6290
      start: 6284
    functionDepth: 1
    functionLinenumber: 6284
    functionLinenumberEnd: 6290
    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: GET_USED
      Src: /src/cpython/Objects/dictobject.c:6298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6300
      start: 6292
    functionDepth: 1
    functionLinenumber: 6292
    functionLinenumberEnd: 6300
    functionName: dictview_len
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - GET_USED
    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:6307,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/dictobject.c:6310,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:6312,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:6314,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/dictobject.c:6317,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:6320,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/dictobject.c:6321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dict
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6323
      start: 6302
    functionDepth: 1
    functionLinenumber: 6302
    functionLinenumberEnd: 6323
    functionName: _PyDictView_New
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - PyErr_Format
    - Py_NewRef
    - 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:6327,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6328,1
    - Dst: PyDictKeys_Check
      Src: /src/cpython/Objects/dictobject.c:6328,1
    - Dst: PyDictValues_Check
      Src: /src/cpython/Objects/dictobject.c:6329,1
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6330,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Objects/dictobject.c:6332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - view
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (view != NULL)
      pos:
        line_end: 6326
        line_start: 6326
        source_file: /src/cpython/Objects/dictobject.c
    - condition: "(PyDictKeys_Check(view)\n           || PyDictValues_Check(view)\n
        \          || PyDictItems_Check(view))"
      pos:
        line_end: 6329
        line_start: 6327
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6333
      start: 6325
    functionDepth: 1
    functionLinenumber: 6325
    functionLinenumberEnd: 6333
    functionName: dictview_mapping
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyDictKeys_Check
    - PyDictItems_Check
    - PyDictProxy_New
    - PyDictValues_Check
    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:6354,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:6360,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:6362,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/dictobject.c:6366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6371,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6373
      start: 6351
    functionDepth: 1
    functionLinenumber: 6351
    functionLinenumberEnd: 6373
    functionName: all_contained_in
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    - PyObject_GetIter
    - PyErr_Occurred
    - Py_DECREF
    - 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:6382,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6383,1
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6383,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6384,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/dictobject.c:6386,1
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6386,1
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/dictobject.c:6389,1
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/dictobject.c:6392,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6402,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6409,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6414,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6419,1
    - Dst: all_contained_in
      Src: /src/cpython/Objects/dictobject.c:6424,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:6431,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 6381
        line_start: 6381
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyDictViewSet_Check(self))
      pos:
        line_end: 6382
        line_start: 6382
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (other != NULL)
      pos:
        line_end: 6383
        line_start: 6383
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6432
      start: 6375
    functionDepth: 2
    functionLinenumber: 6375
    functionLinenumberEnd: 6432
    functionName: dictview_richcompare
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - all_contained_in
    - PyAnySet_Check
    - PyObject_Size
    - assert
    - PyDictViewSet_Check
    - Py_NewRef
    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:6442,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/dictobject.c:6444,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/dictobject.c:6446,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/dictobject.c:6450,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:6450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6451,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/dictobject.c:6454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6456
      start: 6434
    functionDepth: 2
    functionLinenumber: 6434
    functionLinenumberEnd: 6456
    functionName: dictview_repr
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_ReprLeave
    - PySequence_List
    - PyUnicode_FromFormat
    - Py_ReprEnter
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictview_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/cpython/Objects/dictobject.c:6467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6468
      start: 6460
    functionDepth: 2
    functionLinenumber: 6460
    functionLinenumberEnd: 6468
    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: dict_contains
      Src: /src/cpython/Objects/dictobject.c:6476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6477
      start: 6470
    functionDepth: 0
    functionLinenumber: 6470
    functionLinenumberEnd: 6477
    functionName: dictkeys_contains
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_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:6497,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:6500,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/dictobject.c:6504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6505
      start: 6493
    functionDepth: 1
    functionLinenumber: 6493
    functionLinenumberEnd: 6505
    functionName: dictviews_to_set
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PySet_New
    - PyDictKeys_Check
    - PyAnyDict_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:6510,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Objects/dictobject.c:6515,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6524
      start: 6507
    functionDepth: 2
    functionLinenumber: 6507
    functionLinenumberEnd: 6524
    functionName: dictviews_sub
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - dictviews_to_set
    - PyObject_CallMethodOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_sub(PyObject *self, PyObject *other)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6541,1
    - Dst: dictview_len
      Src: /src/cpython/Objects/dictobject.c:6547,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Objects/dictobject.c:6551,1
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/dictobject.c:6551,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Objects/dictobject.c:6552,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6553,1
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6558,1
    - Dst: dictview_len
      Src: /src/cpython/Objects/dictobject.c:6559,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/dictobject.c:6570,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:6574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6576,1
    - Dst: PyDictKeys_Check
      Src: /src/cpython/Objects/dictobject.c:6580,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:6588,1
    - Dst: dict_contains
      Src: /src/cpython/Objects/dictobject.c:6589,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/dictobject.c:6594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6598,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6600,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:6601,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6608,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6610,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6612
      start: 6529
    functionDepth: 2
    functionLinenumber: 6529
    functionLinenumberEnd: 6612
    functionName: _PyDictView_Intersect
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - dict_contains
    - dictview_len
    - PySet_New
    - PyObject_CallMethodObjArgs
    - PyObject_GetIter
    - PyObject_Size
    - PyDictKeys_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyDictViewSet_Check
    - PySet_CheckExact
    - PyIter_Next
    - _Py_ID
    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:6617,1
    - Dst: _PySet_Update
      Src: /src/cpython/Objects/dictobject.c:6622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6627
      start: 6614
    functionDepth: 2
    functionLinenumber: 6614
    functionLinenumberEnd: 6627
    functionName: dictviews_or
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - dictviews_to_set
    - _PySet_Update
    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:6632,1
    - Dst: ASSERT_DICT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:6633,1
    - Dst: copy_lock_held
      Src: /src/cpython/Objects/dictobject.c:6635,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/dictobject.c:6639,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:6641,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:6649,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:6650,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:6651,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:6652,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:6656,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:6662,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:6663,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:6664,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:6671,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/cpython/Objects/dictobject.c:6672,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:6675,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/dictobject.c:6678,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/dictobject.c:6683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6687,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/dictobject.c:6691,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6692,1
    - Dst: _PySet_Update
      Src: /src/cpython/Objects/dictobject.c:6696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6701,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6705,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6706,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6707,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6708,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:6709,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6711
      start: 6629
    functionDepth: 12
    functionLinenumber: 6629
    functionLinenumberEnd: 6711
    functionName: dictitems_xor_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_DelItem_KnownHash
    - Py_INCREF
    - PyObject_RichCompareBool
    - PySet_Add
    - ASSERT_DICT_LOCKED
    - _PySet_Update
    - PySet_New
    - Py_CLEAR
    - PyObject_CallMethodNoArgs
    - copy_lock_held
    - PyErr_Occurred
    - _PyTuple_FromPairSteal
    - _PyDict_GetItem_KnownHash
    - _PyDict_Next
    - Py_DECREF
    - Py_XDECREF
    - _Py_ID
    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:6716,1
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6716,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:6717,1
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6717,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:6722,1
    - Dst: dictitems_xor_lock_held
      Src: /src/cpython/Objects/dictobject.c:6723,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:6724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDictItems_Check(self))
      pos:
        line_end: 6715
        line_start: 6715
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (PyDictItems_Check(other))
      pos:
        line_end: 6716
        line_start: 6716
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 6727
      start: 6713
    functionDepth: 13
    functionLinenumber: 6713
    functionLinenumberEnd: 6727
    functionName: dictitems_xor
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - dictitems_xor_lock_held
    - PyDictItems_Check
    - assert
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictitems_xor(PyObject *self, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6732,1
    - Dst: PyDictItems_Check
      Src: /src/cpython/Objects/dictobject.c:6732,1
    - Dst: dictitems_xor
      Src: /src/cpython/Objects/dictobject.c:6733,1
    - Dst: dictviews_to_set
      Src: /src/cpython/Objects/dictobject.c:6735,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Objects/dictobject.c:6740,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:6741,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6749
      start: 6729
    functionDepth: 14
    functionLinenumber: 6729
    functionLinenumberEnd: 6749
    functionName: dictviews_xor
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - dictviews_to_set
    - PyDictItems_Check
    - dictitems_xor
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_xor(PyObject* self, PyObject *other)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dictview_len
      Src: /src/cpython/Objects/dictobject.c:6777,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/dictobject.c:6785,1
    - Dst: PyDictViewSet_Check
      Src: /src/cpython/Objects/dictobject.c:6785,1
    - Dst: dictview_len
      Src: /src/cpython/Objects/dictobject.c:6786,1
    - Dst: PyObject_Size
      Src: /src/cpython/Objects/dictobject.c:6787,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/dictobject.c:6798,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/dictobject.c:6802,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/dictobject.c:6803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6804,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6815,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:6816,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6819
      start: 6770
    functionDepth: 2
    functionLinenumber: 6770
    functionLinenumberEnd: 6819
    functionName: dictviews_isdisjoint
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    - dictview_len
    - PyObject_GetIter
    - PyAnySet_Check
    - PyObject_Size
    - PyErr_Occurred
    - Py_DECREF
    - PyDictViewSet_Check
    - PyIter_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_isdisjoint(PyObject *self, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/cpython/Objects/dictobject.c:6880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6881
      start: 6876
    functionDepth: 2
    functionLinenumber: 6876
    functionLinenumberEnd: 6881
    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:6890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6891
      start: 6883
    functionDepth: 2
    functionLinenumber: 6883
    functionLinenumberEnd: 6891
    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:6902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6903
      start: 6895
    functionDepth: 2
    functionLinenumber: 6895
    functionLinenumberEnd: 6903
    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:6913,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:6913,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6915,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:6916,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/dictobject.c:6917,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/dictobject.c:6919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:6920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6923
      start: 6905
    functionDepth: 8
    functionLinenumber: 6905
    functionLinenumberEnd: 6923
    functionName: dictitems_contains
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyObject_RichCompareBool
    - PyTuple_Check
    - Py_DECREF
    - PyDict_GetItemRef
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int dictitems_contains(PyObject *self, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/cpython/Objects/dictobject.c:6992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6993
      start: 6988
    functionDepth: 2
    functionLinenumber: 6988
    functionLinenumberEnd: 6993
    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:7002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7003
      start: 6995
    functionDepth: 2
    functionLinenumber: 6995
    functionLinenumberEnd: 7003
    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:7014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7015
      start: 7007
    functionDepth: 2
    functionLinenumber: 7007
    functionLinenumberEnd: 7015
    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:7082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7083
      start: 7078
    functionDepth: 2
    functionLinenumber: 7078
    functionLinenumberEnd: 7083
    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:7092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7093
      start: 7085
    functionDepth: 2
    functionLinenumber: 7085
    functionLinenumberEnd: 7093
    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:7101,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/dictobject.c:7103,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7106,1
    - Dst: PyDict_GetItem
      Src: /src/cpython/Objects/dictobject.c:7112,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/dictobject.c:7112,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/dictobject.c:7113,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/dictobject.c:7114,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/dictobject.c:7115,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:7117,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:7117,1
    - Dst: insert_split_key
      Src: /src/cpython/Objects/dictobject.c:7118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyHeapTypeObject*
    assertStmts:
    - condition: (keys->dk_nentries == 0)
      pos:
        line_end: 7105
        line_start: 7105
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7126
      start: 7098
    functionDepth: 4
    functionLinenumber: 7098
    functionLinenumberEnd: 7126
    functionName: _PyDict_NewKeysForClass
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - unicode_get_hash
    - PyUnicode_CheckExact
    - new_keys_object
    - insert_split_key
    - PyErr_Clear
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    - PyDict_GetItem
    - _Py_ID
    linkageType: ''
    returnType: PyDictKeysObject
    signature: 'PyDictKeysObject *

      _PyDict_NewKeysForClass(PyHeapTypeObject *cls)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7131,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7132,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7133,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7134,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7135,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:7136,1
    - Dst: _Py_atomic_load_ssize_relaxed
      Src: /src/cpython/Objects/dictobject.c:7138,1
    - Dst: LOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:7140,1
    - Dst: _Py_atomic_store_ssize
      Src: /src/cpython/Objects/dictobject.c:7142,1
    - Dst: UNLOCK_KEYS
      Src: /src/cpython/Objects/dictobject.c:7144,1
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:7151,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7152,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7153,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7161,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: 7130
        line_start: 7130
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (keys != NULL)
      pos:
        line_end: 7134
        line_start: 7134
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (tp->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 7131
        line_start: 7131
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (tp->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 7132
        line_start: 7132
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (size < 256)
      pos:
        line_end: 7152
        line_start: 7152
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7162
      start: 7128
    functionDepth: 1
    functionLinenumber: 7128
    functionLinenumberEnd: 7162
    functionName: _PyObject_InitInlineValues
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ssize_relaxed
    - _PyObject_InlineValues
    - LOCK_KEYS
    - _Py_atomic_store_ssize
    - OBJECT_STAT_INC
    - UNLOCK_KEYS
    - assert
    - CACHED_KEYS
    - _PyObject_ManagedDictPointer
    - shared_keys_usable_size
    linkageType: ''
    returnType: void
    signature: void _PyObject_InitInlineValues(PyObject *obj, PyTypeObject *tp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictkeys_incref
      Src: /src/cpython/Objects/dictobject.c:7167,1
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:7169,1
    - Dst: new_dict
      Src: /src/cpython/Objects/dictobject.c:7176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - keys
    - values
    argTypes:
    - PyDictKeysObject*
    - PyDictValues*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7178
      start: 7164
    functionDepth: 10
    functionLinenumber: 7164
    functionLinenumberEnd: 7178
    functionName: make_dict_from_instance_attributes
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - new_dict
    - shared_keys_usable_size
    - dictkeys_incref
    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:7183,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:7185,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7187,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7190,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7190,1
    - Dst: make_dict_from_instance_attributes
      Src: /src/cpython/Objects/dictobject.c:7191,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:7194,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:7196,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7199
      start: 7180
    functionDepth: 11
    functionLinenumber: 7180
    functionLinenumberEnd: 7199
    functionName: _PyObject_MaterializeManagedDict_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - make_dict_from_instance_attributes
    - FT_ATOMIC_STORE_PTR_RELEASE
    - ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
    - OBJECT_STAT_INC
    - CACHED_KEYS
    - _PyObject_ManagedDictPointer
    - Py_TYPE
    - PyDict_New
    linkageType: ''
    returnType: PyDictObject
    signature: 'PyDictObject *

      _PyObject_MaterializeManagedDict_LockHeld(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7204,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7209,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7212,1
    - Dst: _PyObject_MaterializeManagedDict_LockHeld
      Src: /src/cpython/Objects/dictobject.c:7218,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7225
      start: 7201
    functionDepth: 12
    functionLinenumber: 7201
    functionLinenumberEnd: 7225
    functionName: _PyObject_MaterializeManagedDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyObject_GetManagedDict
    - _PyObject_MaterializeManagedDict_LockHeld
    linkageType: ''
    returnType: PyDictObject
    signature: 'PyDictObject *

      _PyObject_MaterializeManagedDict(PyObject *obj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:7230,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:7231,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:7233,1
    - Dst: frozendict_does_not_support
      Src: /src/cpython/Objects/dictobject.c:7236,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/dictobject.c:7240,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/dictobject.c:7246,1
    - Dst: dict_unhashable_type
      Src: /src/cpython/Objects/dictobject.c:7248,1
    - Dst: _PyDict_DelItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/dictobject.c:7251,1
    - Dst: setitem_lock_held
      Src: /src/cpython/Objects/dictobject.c:7253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - dict
    - name
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7255
      start: 7227
    functionDepth: 9
    functionLinenumber: 7227
    functionLinenumberEnd: 7255
    functionName: _PyDict_SetItem_LockHeld
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_DelItem_KnownHash_LockHeld
    - setitem_lock_held
    - PyFrozenDict_Check
    - frozendict_does_not_support
    - dict_unhashable_type
    - _PyObject_HashFast
    - PyErr_BadInternalCall
    - PyDict_Check
    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:7264,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7264,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7265,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7266,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7267,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7267,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7269,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7270,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:7271,1
    - Dst: unicode_get_hash
      Src: /src/cpython/Objects/dictobject.c:7272,1
    - Dst: tp_hash
      Src: /src/cpython/Objects/dictobject.c:7274,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7275,1
    - Dst: insert_split_key
      Src: /src/cpython/Objects/dictobject.c:7278,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:7282,1
    - Dst: shared_keys_usable_size
      Src: /src/cpython/Objects/dictobject.c:7283,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:7284,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:7287,1
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Objects/dictobject.c:7291,1
    - Dst: make_dict_from_instance_attributes
      Src: /src/cpython/Objects/dictobject.c:7302,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/dictobject.c:7304,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:7305,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:7309,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7309,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/dictobject.c:7314,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/dictobject.c:7316,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:7322,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7324,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/dictobject.c:7325,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Objects/dictobject.c:7333,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:7336,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7336,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Objects/dictobject.c:7339,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7341,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:7342,1
    - Dst: delete_index_from_values
      Src: /src/cpython/Objects/dictobject.c:7347,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7349,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:7350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:7353,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: 7348
        line_start: 7348
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (values != NULL)
      pos:
        line_end: 7265
        line_start: 7265
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (keys != NULL)
      pos:
        line_end: 7264
        line_start: 7264
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 7274
        line_start: 7274
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (dict->ma_values == values)
      pos:
        line_end: 7340
        line_start: 7340
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 7266
        line_start: 7266
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (dict == NULL || ((PyDictObject *)dict)->ma_values == values)
      pos:
        line_end: 7269
        line_start: 7269
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7356
      start: 7260
    functionDepth: 11
    functionLinenumber: 7260
    functionLinenumberEnd: 7356
    functionName: store_instance_attr_lock_held
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - OBJECT_STAT_INC
    - assert
    - tp_hash
    - CACHED_KEYS
    - Py_XNewRef
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyObject_GetManagedDict
    - unicode_get_hash
    - _PyDict_NotifyEvent
    - Py_XDECREF
    - FT_ATOMIC_STORE_PTR_RELEASE
    - delete_index_from_values
    - Py_DECREF
    - _PyObject_ManagedDictPointer
    - STORE_USED
    - make_dict_from_instance_attributes
    - PyUnicode_CheckExact
    - _PyDict_SetItem_LockHeld
    - insert_split_key
    - _PyObject_SetAttributeErrorContext
    - _PyDictValues_AddToInsertionOrder
    - PyErr_Format
    - shared_keys_usable_size
    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:7361,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7363,1
    - Dst: store_instance_attr_lock_held
      Src: /src/cpython/Objects/dictobject.c:7365,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/dictobject.c:7368,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - obj
    - dict
    - name
    - value
    argTypes:
    - PyObject*
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7372
      start: 7358
    functionDepth: 12
    functionLinenumber: 7358
    functionLinenumberEnd: 7372
    functionName: store_instance_attr_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDict_SetItem_LockHeld
    - 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:7377,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7378,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7379,1
    - Dst: PyObject_GenericGetDict
      Src: /src/cpython/Objects/dictobject.c:7381,1
    - Dst: store_instance_attr_dict
      Src: /src/cpython/Objects/dictobject.c:7385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:7386,1
    - Dst: store_instance_attr_dict
      Src: /src/cpython/Objects/dictobject.c:7389,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7403,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7406,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7407,1
    - Dst: store_instance_attr_lock_held
      Src: /src/cpython/Objects/dictobject.c:7410,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7412,1
    - Dst: store_instance_attr_dict
      Src: /src/cpython/Objects/dictobject.c:7418,1
    - Dst: store_instance_attr_lock_held
      Src: /src/cpython/Objects/dictobject.c:7420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7422
      start: 7374
    functionDepth: 13
    functionLinenumber: 7374
    functionLinenumberEnd: 7422
    functionName: _PyObject_StoreInstanceAttribute
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_InlineValues
    - PyObject_GenericGetDict
    - _PyObject_GetManagedDict
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - store_instance_attr_lock_held
    - store_instance_attr_dict
    - Py_DECREF
    - FT_ATOMIC_LOAD_UINT8
    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: 7427
      start: 7426
    functionDepth: 0
    functionLinenumber: 7426
    functionLinenumberEnd: 7427
    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:7431,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:7432,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7433,1
    - Dst: _PyManagedDictPointer_IsValues
      Src: /src/cpython/Objects/dictobject.c:7434,1
    - Dst: _PyManagedDictPointer_GetValues
      Src: /src/cpython/Objects/dictobject.c:7435,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7438,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:7444,1
    - Dst: CHECK
      Src: /src/cpython/Objects/dictobject.c:7448,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/dictobject.c:7448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7452
      start: 7428
    functionDepth: 1
    functionLinenumber: 7428
    functionLinenumberEnd: 7452
    functionName: _PyObject_ManagedDictValidityCheck
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyManagedDictPointer_IsValues
    - _PyManagedDictPointer_GetValues
    - CHECK
    - PyDict_Check
    - CACHED_KEYS
    - _PyObject_ManagedDictPointer
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_ManagedDictValidityCheck(PyObject *obj)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7460,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/dictobject.c:7460,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7461,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7462,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7466,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7466,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7467,1
    - Dst: _PyDictKeys_StringLookupSplit
      Src: /src/cpython/Objects/dictobject.c:7468,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/dictobject.c:7475,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7477,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/dictobject.c:7482,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7487,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7492,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7494,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7497,1
    - Dst: _Py_XNewRefWithLock
      Src: /src/cpython/Objects/dictobject.c:7499,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7503,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7512,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7515,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7517,1
    - Dst: _Py_atomic_load_ptr_consume
      Src: /src/cpython/Objects/dictobject.c:7518,1
    - Dst: _Py_XNewRefWithLock
      Src: /src/cpython/Objects/dictobject.c:7519,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7526,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7531,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - obj
    - name
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 7459
        line_start: 7459
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (keys != NULL)
      pos:
        line_end: 7466
        line_start: 7466
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (values->valid)
      pos:
        line_end: 7496
        line_start: 7496
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (dict != NULL)
      pos:
        line_end: 7511
        line_start: 7511
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7534
      start: 7457
    functionDepth: 3
    functionLinenumber: 7457
    functionLinenumberEnd: 7534
    functionName: _PyObject_TryGetInstanceAttribute
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - _PyObject_InlineValues
    - _PyDictKeys_StringLookupSplit
    - _Py_atomic_load_ptr_acquire
    - _PyObject_GetManagedDict
    - _Py_atomic_load_ptr_consume
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_CheckExact
    - _Py_TryIncrefCompare
    - assert
    - CACHED_KEYS
    - _Py_XNewRefWithLock
    - Py_XNewRef
    - FT_ATOMIC_LOAD_UINT8
    - Py_TYPE
    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:7539,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7545,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7546,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7547,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7549,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7555,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7558,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7561,1
    - Dst: GET_USED
      Src: /src/cpython/Objects/dictobject.c:7567,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7568
      start: 7536
    functionDepth: 2
    functionLinenumber: 7536
    functionLinenumberEnd: 7568
    functionName: _PyObject_IsInstanceDictEmpty
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - _PyObject_GetManagedDict
    - GET_USED
    - CACHED_KEYS
    - _PyObject_ComputedDictPointer
    - FT_ATOMIC_LOAD_UINT8
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_IsInstanceDictEmpty(PyObject *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7573,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7577,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:7582,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7585,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/dictobject.c:7588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - obj
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7593
      start: 7570
    functionDepth: 1
    functionLinenumber: 7570
    functionLinenumberEnd: 7593
    functionName: PyObject_VisitManagedDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 7
    functionsReached:
    - _PyObject_InlineValues
    - _PyObject_ManagedDictPointer
    - Py_VISIT
    - Py_TYPE
    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:7599,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:7601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - values
    argTypes:
    - PyDictValues*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7604
      start: 7595
    functionDepth: 1
    functionLinenumber: 7595
    functionLinenumberEnd: 7604
    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:7609,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7611,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/dictobject.c:7613,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/dictobject.c:7614,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7614,1
    - Dst: clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:7616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - new_dict
    argTypes:
    - PyObject*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7617
      start: 7606
    functionDepth: 2
    functionLinenumber: 7606
    functionLinenumberEnd: 7617
    functionName: set_dict_inline_values
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - clear_inline_values
    - FT_ATOMIC_STORE_PTR
    - _PyObject_ManagedDictPointer
    - Py_XINCREF
    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:7628,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7630,1
    - Dst: set_dict_inline_values
      Src: /src/cpython/Objects/dictobject.c:7633,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7638,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7638,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/dictobject.c:7641,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7641,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7642,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/dictobject.c:7650,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - obj
    - new_dict
    - cur_dict
    argTypes:
    - PyObject*
    - PyObject*
    - PyDictObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7655
      start: 7624
    functionDepth: 3
    functionLinenumber: 7624
    functionLinenumberEnd: 7655
    functionName: try_set_dict_inline_only_or_other_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - set_dict_inline_values
    - Py_INCREF
    - _PyObject_GetManagedDict
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - FT_ATOMIC_STORE_PTR
    - _PyObject_ManagedDictPointer
    - Py_XNewRef
    - FT_ATOMIC_LOAD_PTR_RELAXED
    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:7664,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7667,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7667,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7667,1
    - Dst: _PyDict_DetachFromObject
      Src: /src/cpython/Objects/dictobject.c:7669,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7671,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/dictobject.c:7676,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7676,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7677,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: 7666
        line_start: 7666
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (new_dict == NULL)
      pos:
        line_end: 7670
        line_start: 7670
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7679
      start: 7660
    functionDepth: 1
    functionLinenumber: 7660
    functionLinenumberEnd: 7679
    functionName: replace_dict_probably_inline_materialized
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyDict_DetachFromObject
    - FT_ATOMIC_STORE_PTR
    - assert
    - _PyObject_ManagedDictPointer
    - Py_XNewRef
    - FT_ATOMIC_LOAD_PTR_RELAXED
    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:7687,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/dictobject.c:7690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - delay
    argTypes:
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7692
      start: 7683
    functionDepth: 0
    functionLinenumber: 7683
    functionLinenumberEnd: 7692
    functionName: decref_maybe_delay
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_XDecRefDelayed
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void decref_maybe_delay(PyObject *obj, bool delay)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7697,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7697,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7699,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7700,1
    - Dst: _PyObject_InlineValuesConsistencyCheck
      Src: /src/cpython/Objects/dictobject.c:7700,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7701,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7704,1
    - Dst: try_set_dict_inline_only_or_other_dict
      Src: /src/cpython/Objects/dictobject.c:7708,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7715,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:7716,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7721,1
    - Dst: replace_dict_probably_inline_materialized
      Src: /src/cpython/Objects/dictobject.c:7723,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/dictobject.c:7726,1
    - Dst: decref_maybe_delay
      Src: /src/cpython/Objects/dictobject.c:7730,1
    - Dst: decref_maybe_delay
      Src: /src/cpython/Objects/dictobject.c:7740,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7745,1
    - Dst: set_dict_inline_values
      Src: /src/cpython/Objects/dictobject.c:7747,1
    - Dst: _PyDict_DetachFromObject
      Src: /src/cpython/Objects/dictobject.c:7750,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7751,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:7752,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7755,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7762,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7764,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/dictobject.c:7766,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7766,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7767,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7769,1
    - Dst: decref_maybe_delay
      Src: /src/cpython/Objects/dictobject.c:7770,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7772,1
    - Dst: _PyObject_InlineValuesConsistencyCheck
      Src: /src/cpython/Objects/dictobject.c:7772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 2
    argNames:
    - obj
    - new_dict
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyObject_InlineValuesConsistencyCheck(obj))
      pos:
        line_end: 7771
        line_start: 7771
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (prev_dict != NULL)
      pos:
        line_end: 7714
        line_start: 7714
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (new_dict == NULL)
      pos:
        line_end: 7754
        line_start: 7754
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 7696
        line_start: 7696
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyObject_InlineValuesConsistencyCheck(obj))
      pos:
        line_end: 7699
        line_start: 7699
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7774
      start: 7694
    functionDepth: 4
    functionLinenumber: 7694
    functionLinenumberEnd: 7774
    functionName: _PyObject_SetManagedDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - set_dict_inline_values
    - _PyObject_GetManagedDict
    - Py_END_CRITICAL_SECTION
    - assert
    - Py_BEGIN_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - _PyDict_DetachFromObject
    - try_set_dict_inline_only_or_other_dict
    - FT_ATOMIC_STORE_PTR
    - replace_dict_probably_inline_materialized
    - _PyObject_InlineValuesConsistencyCheck
    - Py_DECREF
    - Py_END_CRITICAL_SECTION2
    - decref_maybe_delay
    - _PyObject_ManagedDictPointer
    - Py_XNewRef
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_SetManagedDict(PyObject *obj, PyObject *new_dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7779,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7779,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7780,1
    - Dst: _PyObject_InlineValuesConsistencyCheck
      Src: /src/cpython/Objects/dictobject.c:7780,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7782,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7782,1
    - Dst: ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
      Src: /src/cpython/Objects/dictobject.c:7788,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7789,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7790,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7791,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7791,1
    - Dst: copy_values
      Src: /src/cpython/Objects/dictobject.c:7793,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/dictobject.c:7796,1
    - Dst: invalidate_and_clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:7801,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7801,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7803,1
    - Dst: _PyObject_InlineValuesConsistencyCheck
      Src: /src/cpython/Objects/dictobject.c:7803,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:7804,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: 7778
        line_start: 7778
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyObject_InlineValuesConsistencyCheck(obj))
      pos:
        line_end: 7779
        line_start: 7779
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_values->embedded == 1)
      pos:
        line_end: 7788
        line_start: 7788
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (mp->ma_values->valid == 1)
      pos:
        line_end: 7789
        line_start: 7789
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 7790
        line_start: 7790
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (_PyObject_InlineValuesConsistencyCheck(obj))
      pos:
        line_end: 7802
        line_start: 7802
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7806
      start: 7776
    functionDepth: 4
    functionLinenumber: 7776
    functionLinenumberEnd: 7806
    functionName: detach_dict_from_object
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - PyErr_NoMemory
    - assert
    - ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
    - copy_values
    - ASSERT_CONSISTENT
    - _PyObject_InlineValuesConsistencyCheck
    - invalidate_and_clear_inline_values
    - _PyObject_ManagedDictPointer
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - Py_TYPE
    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:7814,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7815,1
    - Dst: clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:7820,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7820,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:7823,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7824,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7829,1
    - Dst: detach_dict_from_object
      Src: /src/cpython/Objects/dictobject.c:7830,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7831,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7835,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/dictobject.c:7835,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:7836,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7839,1
    - Dst: set_keys
      Src: /src/cpython/Objects/dictobject.c:7841,1
    - Dst: dictkeys_decref
      Src: /src/cpython/Objects/dictobject.c:7843,1
    - Dst: IS_DICT_SHARED
      Src: /src/cpython/Objects/dictobject.c:7843,1
    - Dst: STORE_USED
      Src: /src/cpython/Objects/dictobject.c:7844,1
    - Dst: clear_inline_values
      Src: /src/cpython/Objects/dictobject.c:7845,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7845,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7846,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/dictobject.c:7850,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred() == PyExc_MemoryError)
      pos:
        line_end: 7834
        line_start: 7834
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7851
      start: 7809
    functionDepth: 5
    functionLinenumber: 7809
    functionLinenumberEnd: 7851
    functionName: PyObject_ClearManagedDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 11
    functionsReached:
    - _PyObject_InlineValues
    - STORE_USED
    - _PyObject_GetManagedDict
    - detach_dict_from_object
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - clear_inline_values
    - IS_DICT_SHARED
    - Py_CLEAR
    - dictkeys_decref
    - PyErr_Occurred
    - assert
    - set_keys
    - _PyObject_ManagedDictPointer
    - PyErr_FormatUnraisable
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - Py_TYPE
    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:7856,1
    - Dst: detach_dict_from_object
      Src: /src/cpython/Objects/dictobject.c:7858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mp
    - obj
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7859
      start: 7853
    functionDepth: 5
    functionLinenumber: 7853
    functionLinenumberEnd: 7859
    functionName: _PyDict_DetachFromObject
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED
    - detach_dict_from_object
    linkageType: ''
    returnType: int
    signature: int _PyDict_DetachFromObject(PyDictObject *mp, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7864,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7866,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Objects/dictobject.c:7868,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:7868,1
    - Dst: _PyObject_MaterializeManagedDict
      Src: /src/cpython/Objects/dictobject.c:7869,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7874,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:7875,1
    - Dst: new_dict_with_shared_keys
      Src: /src/cpython/Objects/dictobject.c:7880,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7880,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:7881,1
    - Dst: _PyObject_ManagedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7881,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7886,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7891
      start: 7861
    functionDepth: 13
    functionLinenumber: 7861
    functionLinenumberEnd: 7891
    functionName: ensure_managed_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_MaterializeManagedDict
    - _PyObject_InlineValues
    - _PyObject_GetManagedDict
    - Py_END_CRITICAL_SECTION
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_BEGIN_CRITICAL_SECTION
    - new_dict_with_shared_keys
    - CACHED_KEYS
    - _PyObject_ManagedDictPointer
    - FT_ATOMIC_LOAD_UINT8
    - 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:7898,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7901,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:7907,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/dictobject.c:7908,1
    - Dst: CACHED_KEYS
      Src: /src/cpython/Objects/dictobject.c:7908,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7909,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/dictobject.c:7909,1
    - Dst: new_dict_with_shared_keys
      Src: /src/cpython/Objects/dictobject.c:7910,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/dictobject.c:7913,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:7915,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7918,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: 7908
        line_start: 7908
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7922
      start: 7893
    functionDepth: 11
    functionLinenumber: 7893
    functionLinenumberEnd: 7922
    functionName: ensure_nonmanaged_dict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - Py_END_CRITICAL_SECTION
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_BEGIN_CRITICAL_SECTION
    - new_dict_with_shared_keys
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - CACHED_KEYS
    - Py_TYPE
    - PyDict_New
    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:7927,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/dictobject.c:7928,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7929,1
    - Dst: ensure_managed_dict
      Src: /src/cpython/Objects/dictobject.c:7929,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/dictobject.c:7932,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:7934,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/dictobject.c:7939,1
    - Dst: ensure_nonmanaged_dict
      Src: /src/cpython/Objects/dictobject.c:7939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7941
      start: 7924
    functionDepth: 14
    functionLinenumber: 7924
    functionLinenumberEnd: 7941
    functionName: PyObject_GenericGetDict
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyType_HasFeature
    - ensure_nonmanaged_dict
    - PyErr_SetString
    - ensure_managed_dict
    - Py_XNewRef
    - _PyObject_ComputedDictPointer
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GenericGetDict(PyObject *obj, void *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:7950,1
    - Dst: ensure_nonmanaged_dict
      Src: /src/cpython/Objects/dictobject.c:7951,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7956,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/dictobject.c:7957,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/cpython/Objects/dictobject.c:7958,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/dictobject.c:7959,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: 7949
        line_start: 7949
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 7961
      start: 7943
    functionDepth: 12
    functionLinenumber: 7943
    functionLinenumberEnd: 7961
    functionName: _PyObjectDict_SetItem
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - ensure_nonmanaged_dict
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDict_SetItem_LockHeld
    - 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:7966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7967
      start: 7963
    functionDepth: 4
    functionLinenumber: 7963
    functionLinenumberEnd: 7967
    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:7975,1
    - Dst: _Py_atomic_compare_exchange_uint32
      Src: /src/cpython/Objects/dictobject.c:7980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7989
      start: 7969
    functionDepth: 0
    functionLinenumber: 7969
    functionLinenumberEnd: 7989
    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:7997,1
    - Dst: get_next_dict_keys_version
      Src: /src/cpython/Objects/dictobject.c:8001,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/dictobject.c:8002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - interp
    - dictkeys
    argTypes:
    - PyInterpreterState*
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8004
      start: 7993
    functionDepth: 1
    functionLinenumber: 7993
    functionLinenumberEnd: 8004
    functionName: _PyDictKeys_GetVersionForCurrentState
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - get_next_dict_keys_version
    - FT_ATOMIC_STORE_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:8010,1
    - Dst: _PyDictKeys_GetVersionForCurrentState
      Src: /src/cpython/Objects/dictobject.c:8012,1
    - Dst: ensure_shared_on_keys_version_assignment
      Src: /src/cpython/Objects/dictobject.c:8013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - dict
    argTypes:
    - PyInterpreterState*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8015
      start: 8006
    functionDepth: 3
    functionLinenumber: 8006
    functionLinenumberEnd: 8015
    functionName: _PyDict_GetKeysVersionForCurrentState
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictKeys_GetVersionForCurrentState
    - ensure_shared_on_keys_version_assignment
    - 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:8021,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Objects/dictobject.c:8024,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/dictobject.c:8027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - interp
    - watcher_id
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8031
      start: 8017
    functionDepth: 1
    functionLinenumber: 8017
    functionLinenumberEnd: 8031
    functionName: validate_watcher_id
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - 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:8040,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:8041,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:8044,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/dictobject.c:8045,1
    - Dst: FT_ATOMIC_OR_UINT64
      Src: /src/cpython/Objects/dictobject.c:8048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - watcher_id
    - dict
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8051
      start: 8037
    functionDepth: 1
    functionLinenumber: 8037
    functionLinenumberEnd: 8051
    functionName: PyDict_Watch
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_OR_UINT64
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyDict_Check
    - validate_watcher_id
    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:8056,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:8057,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:8060,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/dictobject.c:8061,1
    - Dst: FT_ATOMIC_AND_UINT64
      Src: /src/cpython/Objects/dictobject.c:8064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - watcher_id
    - dict
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8067
      start: 8053
    functionDepth: 1
    functionLinenumber: 8053
    functionLinenumberEnd: 8067
    functionName: PyDict_Unwatch
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyDict_Check
    - validate_watcher_id
    - FT_ATOMIC_AND_UINT64
    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:8073,1
    - Dst: FT_MUTEX_LOCK_FLAGS
      Src: /src/cpython/Objects/dictobject.c:8075,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:8080,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/dictobject.c:8085,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/dictobject.c:8087,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - callback
    argTypes:
    - PyDict_WatchCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8089
      start: 8069
    functionDepth: 1
    functionLinenumber: 8069
    functionLinenumberEnd: 8089
    functionName: PyDict_AddWatcher
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - FT_MUTEX_LOCK_FLAGS
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PyErr_SetString
    - _PyInterpreterState_GET
    - FT_MUTEX_UNLOCK
    linkageType: ''
    returnType: int
    signature: int PyDict_AddWatcher(PyDict_WatchCallback callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:8095,1
    - Dst: FT_MUTEX_LOCK_FLAGS
      Src: /src/cpython/Objects/dictobject.c:8096,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/dictobject.c:8098,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/dictobject.c:8102,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/dictobject.c:8104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - watcher_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8106
      start: 8091
    functionDepth: 1
    functionLinenumber: 8091
    functionLinenumberEnd: 8106
    functionName: PyDict_ClearWatcher
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - FT_MUTEX_LOCK_FLAGS
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _PyInterpreterState_GET
    - validate_watcher_id
    - FT_MUTEX_UNLOCK
    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:8114,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/dictobject.c:8117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - event
    argTypes:
    - PyDict_WatchEvent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8118
      start: 8108
    functionDepth: 1
    functionLinenumber: 8108
    functionLinenumberEnd: 8118
    functionName: dict_event_name
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - PY_FOREACH_DICT_EVENT
    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: 8114
      start: 8111
    functionDepth: 0
    functionLinenumber: 8111
    functionLinenumberEnd: 8114
    functionName: CASE
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/dictobject.c:8127,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/dictobject.c:8130,1
    - Dst: cb
      Src: /src/cpython/Objects/dictobject.c:8132,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/dictobject.c:8137,1
    - Dst: dict_event_name
      Src: /src/cpython/Objects/dictobject.c:8139,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: 8144
      start: 8120
    functionDepth: 2
    functionLinenumber: 8120
    functionLinenumberEnd: 8144
    functionName: _PyDict_SendEvent
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_event_name
    - cb
    - _PyInterpreterState_GET
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyErr_FormatUnraisable
    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:8150,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:8153,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:8153,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/dictobject.c:8154,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:8158,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Objects/dictobject.c:8159,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:8162,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: 8152
        line_start: 8152
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (0)
      pos:
        line_end: 8161
        line_start: 8161
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 8164
      start: 8147
    functionDepth: 1
    functionLinenumber: 8147
    functionLinenumberEnd: 8164
    functionName: _PyObject_InlineValuesConsistencyCheck
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - _PyObject_InlineValues
    - _PyObject_GetManagedDict
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyObject_InlineValuesConsistencyCheck(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/dictobject.c:8173,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/dictobject.c:8177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8178
      start: 8169
    functionDepth: 1
    functionLinenumber: 8169
    functionLinenumberEnd: 8178
    functionName: frozendict_getnewargs
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_getnewargs(PyObject *op, PyObject *Py_UNUSED(dummy))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:8210,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/dictobject.c:8212,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:8212,1
    - Dst: anydict_repr_impl
      Src: /src/cpython/Objects/dictobject.c:8215,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:8219,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/dictobject.c:8219,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/dictobject.c:8221,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/dictobject.c:8222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:8224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(repr))
      pos:
        line_end: 8218
        line_start: 8218
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 8226
      start: 8207
    functionDepth: 6
    functionLinenumber: 8207
    functionLinenumberEnd: 8226
    functionName: frozendict_repr
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - PyUnicode_Check
    - anydict_repr_impl
    - assert
    - Py_DECREF
    - _PyAnyDict_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - Py_uhash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8232
      start: 8228
    functionDepth: 0
    functionLinenumber: 8228
    functionLinenumberEnd: 8232
    functionName: _shuffle_bits
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t _shuffle_bits(Py_uhash_t h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:8239,1
    - Dst: _PyTuple_HASH_XXROTATE
      Src: /src/cpython/Objects/dictobject.c:8246,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/dictobject.c:8249,1
    - Dst: _PyTuple_HASH_XXROTATE
      Src: /src/cpython/Objects/dictobject.c:8254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - key_hash
    - value
    argTypes:
    - Py_hash_t
    - PyObject*
    assertStmts:
    - condition: (key_hash != -1)
      pos:
        line_end: 8238
        line_start: 8238
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 8264
      start: 8236
    functionDepth: 3
    functionLinenumber: 8236
    functionLinenumberEnd: 8264
    functionName: frozendict_pair_hash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_HASH_XXROTATE
    - PyObject_Hash
    - assert
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t frozendict_pair_hash(Py_hash_t key_hash, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrozenDictObject_CAST
      Src: /src/cpython/Objects/dictobject.c:8271,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:8272,1
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:8277,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/dictobject.c:8283,1
    - Dst: frozendict_pair_hash
      Src: /src/cpython/Objects/dictobject.c:8284,1
    - Dst: _shuffle_bits
      Src: /src/cpython/Objects/dictobject.c:8288,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/dictobject.c:8303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8305
      start: 8268
    functionDepth: 4
    functionLinenumber: 8268
    functionLinenumberEnd: 8305
    functionName: frozendict_hash
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyAnyDict_CAST
    - _PyFrozenDictObject_CAST
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _shuffle_bits
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - frozendict_pair_hash
    - _PyDict_Next
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t frozendict_hash(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dict_new
      Src: /src/cpython/Objects/dictobject.c:8311,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:8315,1
    - Dst: can_modify_dict
      Src: /src/cpython/Objects/dictobject.c:8315,1
    - Dst: _PyAnyDict_CAST
      Src: /src/cpython/Objects/dictobject.c:8315,1
    - Dst: _PyFrozenDictObject_CAST
      Src: /src/cpython/Objects/dictobject.c:8317,1
    - Dst: dict_update_common
      Src: /src/cpython/Objects/dictobject.c:8321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:8322,1
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:8327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (can_modify_dict(_PyAnyDict_CAST(d)))
      pos:
        line_end: 8314
        line_start: 8314
        source_file: /src/cpython/Objects/dictobject.c
    - condition: (kwds == NULL)
      pos:
        line_end: 8326
        line_start: 8326
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 8331
      start: 8308
    functionDepth: 5
    functionLinenumber: 8308
    functionLinenumberEnd: 8331
    functionName: frozendict_new
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - _PyAnyDict_CAST
    - dict_update_common
    - can_modify_dict
    - assert
    - Py_DECREF
    - _PyFrozenDictObject_CAST
    - dict_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:8338,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:8340,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/dictobject.c:8343,1
    - Dst: frozendict_new
      Src: /src/cpython/Objects/dictobject.c:8347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/dictobject.c:8348,1
    - Dst: Py_GetConstantBorrowed
      Src: /src/cpython/Objects/dictobject.c:8352,1
    - Dst: frozendict_new
      Src: /src/cpython/Objects/dictobject.c:8353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8355
      start: 8334
    functionDepth: 3
    functionLinenumber: 8334
    functionLinenumberEnd: 8355
    functionName: PyFrozenDict_New
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - PyFrozenDict_CheckExact
    - Py_GetConstantBorrowed
    - PyTuple_Pack
    - Py_DECREF
    - frozendict_new
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrozenDict_New(PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/dictobject.c:8367,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Objects/dictobject.c:8367,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/dictobject.c:8369,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/dictobject.c:8370,1
    - Dst: anydict_copy
      Src: /src/cpython/Objects/dictobject.c:8373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrozenDictObject*
    assertStmts:
    - condition: (PyFrozenDict_Check(self))
      pos:
        line_end: 8366
        line_start: 8366
        source_file: /src/cpython/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 8374
      start: 8363
    functionDepth: 13
    functionLinenumber: 8363
    functionLinenumberEnd: 8374
    functionName: frozendict_copy_impl
    functionSourceFile: /src/cpython/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - PyFrozenDict_Check
    - anydict_copy
    - assert
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_copy_impl(PyFrozenDictObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - grouping
    argTypes:
    - GroupGenerator*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: GroupGenerator_init
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    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: 51
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: GroupGenerator_next
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    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/unicode_formatter.c:66,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:67,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_formatter.c:77,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_formatter.c:89,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicode_formatter.c:101,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_formatter.c:102,1
    - Dst: _PyUnicode_Fill
      Src: /src/cpython/Objects/unicode_formatter.c:103,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: 108
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 108
    functionName: InsertThousandsGrouping_fill
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - _PyUnicode_Fill
    - _PyUnicode_FastCopyCharacters
    - Py_MAX
    - PyUnicode_MAX_CHAR_VALUE
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:147,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:149,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:150,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:153,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:154,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:156,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:157,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:158,1
    - Dst: GroupGenerator_init
      Src: /src/cpython/Objects/unicode_formatter.c:175,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_formatter.c:176,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:180,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:185,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_formatter.c:185,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:186,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_formatter.c:186,1
    - Dst: GroupGenerator_next
      Src: /src/cpython/Objects/unicode_formatter.c:196,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicode_formatter.c:197,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:197,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:197,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:198,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:199,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicode_formatter.c:199,1
    - Dst: InsertThousandsGrouping_fill
      Src: /src/cpython/Objects/unicode_formatter.c:207,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:228,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:228,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:229,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:230,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicode_formatter.c:230,1
    - Dst: InsertThousandsGrouping_fill
      Src: /src/cpython/Objects/unicode_formatter.c:236,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: (0 <= n_digits)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (!(grouping[0] == CHAR_MAX && thousands_sep_len != 0))
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (digits != NULL)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (0 <= d_pos)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (maxchar == NULL)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (maxchar != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (grouping != NULL)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (digits == NULL)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (buffer_pos <= PyUnicode_GET_LENGTH(writer->buffer))
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (digits_pos <= PyUnicode_GET_LENGTH(digits))
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/cpython/Objects/unicode_formatter.c
    constantsTouched: []
    func_position:
      end: 243
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 243
    functionName: _PyUnicode_InsertThousandsGrouping
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - GroupGenerator_next
    - GroupGenerator_init
    - Py_MAX
    - Py_MIN
    - InsertThousandsGrouping_fill
    - 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: PyErr_Format
      Src: /src/cpython/Objects/unicode_formatter.c:255,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_formatter.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - presentation_type
    - type_name
    argTypes:
    - Py_UCS4
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 266
    functionName: unknown_presentation_type
    functionSourceFile: /src/cpython/Objects/unicode_formatter.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/Objects/unicode_formatter.c:271,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_formatter.c:273,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_formatter.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - specifier
    - presentation_type
    argTypes:
    - char
    - Py_UCS4
    assertStmts:
    - condition: (specifier == ',' || specifier == '_')
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/cpython/Objects/unicode_formatter.c
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: invalid_thousands_separator_type
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - assert
    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/Objects/unicode_formatter.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: invalid_comma_and_underscore
    functionSourceFile: /src/cpython/Objects/unicode_formatter.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/Objects/unicode_formatter.c:301,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_formatter.c:302,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/cpython/Objects/unicode_formatter.c:306,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_formatter.c:306,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_formatter.c:316,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: 326
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 326
    functionName: get_integer
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyErr_Format
    - Py_UNICODE_TODECIMAL
    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: 342
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 342
    functionName: is_alignment_token
    functionSourceFile: /src/cpython/Objects/unicode_formatter.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: 354
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: is_sign_element
    functionSourceFile: /src/cpython/Objects/unicode_formatter.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/Objects/unicode_formatter.c:394,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_formatter.c:395,1
    - Dst: is_alignment_token
      Src: /src/cpython/Objects/unicode_formatter.c:417,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:417,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:418,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:419,1
    - Dst: is_alignment_token
      Src: /src/cpython/Objects/unicode_formatter.c:424,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:424,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:425,1
    - Dst: is_sign_element
      Src: /src/cpython/Objects/unicode_formatter.c:431,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:431,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:432,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:438,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:445,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:451,1
    - Dst: get_integer
      Src: /src/cpython/Objects/unicode_formatter.c:459,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:472,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:477,1
    - Dst: invalid_comma_and_underscore
      Src: /src/cpython/Objects/unicode_formatter.c:479,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:485,1
    - Dst: invalid_comma_and_underscore
      Src: /src/cpython/Objects/unicode_formatter.c:487,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:493,1
    - Dst: get_integer
      Src: /src/cpython/Objects/unicode_formatter.c:496,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:501,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:509,1
    - Dst: invalid_comma_and_underscore
      Src: /src/cpython/Objects/unicode_formatter.c:511,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:521,1
    - Dst: invalid_comma_and_underscore
      Src: /src/cpython/Objects/unicode_formatter.c:523,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_formatter.c:531,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Objects/unicode_formatter.c:545,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_formatter.c:549,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicode_formatter.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_formatter.c:552,1
    - Dst: READ_spec
      Src: /src/cpython/Objects/unicode_formatter.c:558,1
    - Dst: invalid_thousands_separator_type
      Src: /src/cpython/Objects/unicode_formatter.c:591,1
    - Dst: invalid_thousands_separator_type
      Src: /src/cpython/Objects/unicode_formatter.c:599,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:604,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:605,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: 603
        line_start: 603
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (format->sign <= 127)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/cpython/Objects/unicode_formatter.c
    constantsTouched: []
    func_position:
      end: 607
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 607
    functionName: parse_internal_render_format_spec
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - invalid_thousands_separator_type
    - PyUnicode_DATA
    - PyUnicode_KIND
    - get_integer
    - READ_spec
    - invalid_comma_and_underscore
    - is_sign_element
    - PyErr_Format
    - assert
    - PyUnicode_FromKindAndData
    - is_alignment_token
    - Py_DECREF
    - Py_TYPE
    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: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: READ_spec
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_spec(index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicode_formatter.c:636,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: 640
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 640
    functionName: calc_padding
    functionSourceFile: /src/cpython/Objects/unicode_formatter.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/Objects/unicode_formatter.c:655,1
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Objects/unicode_formatter.c:661,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: 667
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 667
    functionName: fill_padding
    functionSourceFile: /src/cpython/Objects/unicode_formatter.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/Objects/unicode_formatter.c:728,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_formatter.c:729,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicode_formatter.c:731,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_formatter.c:731,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_formatter.c:737,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicode_formatter.c:745,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_formatter.c:745,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: 751
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 751
    functionName: parse_number
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - Py_ISDIGIT
    - PyUnicode_DATA
    - PyUnicode_KIND
    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/Objects/unicode_formatter.c:771,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/cpython/Objects/unicode_formatter.c:822,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:830,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/cpython/Objects/unicode_formatter.c:852,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:860,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicode_formatter.c:888,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:893,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:896,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicode_formatter.c:896,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: 901
      start: 758
    functionDepth: 3
    functionLinenumber: 758
    functionLinenumberEnd: 901
    functionName: calc_number_widths
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - Py_UNREACHABLE
    - _PyUnicode_InsertThousandsGrouping
    - PyUnicode_GET_LENGTH
    - PyUnicode_MAX_CHAR_VALUE
    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/Objects/unicode_formatter.c:920,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_formatter.c:925,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_formatter.c:929,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_formatter.c:935,1
    - Dst: Py_TOUPPER
      Src: /src/cpython/Objects/unicode_formatter.c:936,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:937,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_formatter.c:938,1
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Objects/unicode_formatter.c:944,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/cpython/Objects/unicode_formatter.c:952,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:959,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_formatter.c:965,1
    - Dst: Py_TOUPPER
      Src: /src/cpython/Objects/unicode_formatter.c:966,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:968,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_formatter.c:971,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_formatter.c:977,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/cpython/Objects/unicode_formatter.c:985,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_formatter.c:992,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_formatter.c:998,1
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Objects/unicode_formatter.c:1006,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: 936
        line_start: 936
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (r == spec->n_grouped_digits)
      pos:
        line_end: 958
        line_start: 958
        source_file: /src/cpython/Objects/unicode_formatter.c
    - condition: (r == spec->n_grouped_frac_digits)
      pos:
        line_end: 991
        line_start: 991
        source_file: /src/cpython/Objects/unicode_formatter.c
    constantsTouched: []
    func_position:
      end: 1012
      start: 906
    functionDepth: 3
    functionLinenumber: 906
    functionLinenumberEnd: 1012
    functionName: fill_number
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - PyUnicode_READ
    - PyErr_SetString
    - _PyUnicode_FastCopyCharacters
    - Py_TOUPPER
    - _PyUnicode_InsertThousandsGrouping
    - _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/Objects/unicode_formatter.c:1026,1
    - Dst: _Py_GetLocaleconvNumeric
      Src: /src/cpython/Objects/unicode_formatter.c:1027,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Objects/unicode_formatter.c:1036,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicode_formatter.c:1038,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicode_formatter.c:1047,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicode_formatter.c:1048,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicode_formatter.c:1060,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/unicode_formatter.c:1061,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicode_formatter.c:1068,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/unicode_formatter.c:1078,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: 1081
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1081
    functionName: get_locale_info
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - _PyMem_Strdup
    - PyErr_NoMemory
    - PyUnicode_FromOrdinal
    - localeconv
    - _Py_GetLocaleconvNumeric
    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/Objects/unicode_formatter.c:1086,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_formatter.c:1087,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_formatter.c:1088,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicode_formatter.c:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - locale_info
    argTypes:
    - LocaleInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1090
    functionName: free_locale_info
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void free_locale_info(LocaleInfo *locale_info)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_formatter.c:1107,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1112,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1124,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1132,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1140,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicode_formatter.c:1149,1
    - Dst: calc_padding
      Src: /src/cpython/Objects/unicode_formatter.c:1158,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:1162,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicode_formatter.c:1163,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/cpython/Objects/unicode_formatter.c:1164,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:1165,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_formatter.c:1169,1
    - Dst: fill_padding
      Src: /src/cpython/Objects/unicode_formatter.c:1173,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_formatter.c:1179,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1096
    functionDepth: 4
    functionLinenumber: 1096
    functionLinenumberEnd: 1187
    functionName: format_string_internal
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FindMaxChar
    - _PyUnicodeWriter_Prepare
    - PyErr_SetString
    - fill_padding
    - _PyUnicode_FastCopyCharacters
    - Py_MAX
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_MAX_CHAR_VALUE
    - calc_padding
    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/Objects/unicode_formatter.c:1219,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1225,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1235,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1242,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/unicode_formatter.c:1250,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicode_formatter.c:1251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1254,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicode_formatter.c:1258,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:1261,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/unicode_formatter.c:1303,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicode_formatter.c:1306,1
    - Dst: _PyLong_Format
      Src: /src/cpython/Objects/unicode_formatter.c:1315,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_formatter.c:1320,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicode_formatter.c:1326,1
    - Dst: get_locale_info
      Src: /src/cpython/Objects/unicode_formatter.c:1338,1
    - Dst: calc_number_widths
      Src: /src/cpython/Objects/unicode_formatter.c:1344,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_formatter.c:1352,1
    - Dst: fill_number
      Src: /src/cpython/Objects/unicode_formatter.c:1356,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_formatter.c:1362,1
    - Dst: free_locale_info
      Src: /src/cpython/Objects/unicode_formatter.c:1363,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 94
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1194
    functionDepth: 4
    functionLinenumber: 1194
    functionLinenumberEnd: 1365
    functionName: format_long_internal
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - _PyLong_Format
    - PyUnicode_READ_CHAR
    - free_locale_info
    - _PyUnicodeWriter_Prepare
    - fill_number
    - PyErr_SetString
    - PyUnicode_FromOrdinal
    - Py_MAX
    - _PyLong_FormatWriter
    - get_locale_info
    - PyLong_CheckExact
    - PyLong_AsLong
    - calc_number_widths
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - Py_XDECREF
    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/Objects/unicode_formatter.c:1401,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/unicode_formatter.c:1425,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicode_formatter.c:1426,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/unicode_formatter.c:1443,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicode_formatter.c:1447,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicode_formatter.c:1464,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicode_formatter.c:1465,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicode_formatter.c:1471,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicode_formatter.c:1472,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicode_formatter.c:1479,1
    - Dst: parse_number
      Src: /src/cpython/Objects/unicode_formatter.c:1487,1
    - Dst: get_locale_info
      Src: /src/cpython/Objects/unicode_formatter.c:1491,1
    - Dst: calc_number_widths
      Src: /src/cpython/Objects/unicode_formatter.c:1498,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_formatter.c:1506,1
    - Dst: fill_number
      Src: /src/cpython/Objects/unicode_formatter.c:1510,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_formatter.c:1516,1
    - Dst: free_locale_info
      Src: /src/cpython/Objects/unicode_formatter.c:1517,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1372
    functionDepth: 4
    functionLinenumber: 1372
    functionLinenumberEnd: 1519
    functionName: format_float_internal
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyFloat_AsDouble
    - _PyUnicode_FromASCII
    - _PyUnicodeWriter_Prepare
    - fill_number
    - PyErr_SetString
    - PyOS_double_to_string
    - free_locale_info
    - _PyUnicodeWriter_WriteASCIIString
    - get_locale_info
    - calc_number_widths
    - strlen
    - PyErr_Occurred
    - PyMem_Free
    - parse_number
    - Py_XDECREF
    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/Objects/unicode_formatter.c:1574,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1581,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_formatter.c:1589,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/cpython/Objects/unicode_formatter.c:1595,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicode_formatter.c:1596,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/cpython/Objects/unicode_formatter.c:1598,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicode_formatter.c:1599,1
    - Dst: copysign
      Src: /src/cpython/Objects/unicode_formatter.c:1611,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/unicode_formatter.c:1630,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/unicode_formatter.c:1634,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicode_formatter.c:1639,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicode_formatter.c:1640,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicode_formatter.c:1644,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicode_formatter.c:1649,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicode_formatter.c:1656,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicode_formatter.c:1661,1
    - Dst: parse_number
      Src: /src/cpython/Objects/unicode_formatter.c:1669,1
    - Dst: parse_number
      Src: /src/cpython/Objects/unicode_formatter.c:1671,1
    - Dst: get_locale_info
      Src: /src/cpython/Objects/unicode_formatter.c:1675,1
    - Dst: calc_number_widths
      Src: /src/cpython/Objects/unicode_formatter.c:1688,1
    - Dst: calc_number_widths
      Src: /src/cpython/Objects/unicode_formatter.c:1701,1
    - Dst: calc_padding
      Src: /src/cpython/Objects/unicode_formatter.c:1713,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_formatter.c:1717,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_formatter.c:1719,1
    - Dst: fill_padding
      Src: /src/cpython/Objects/unicode_formatter.c:1725,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_formatter.c:1732,1
    - Dst: fill_number
      Src: /src/cpython/Objects/unicode_formatter.c:1737,1
    - Dst: fill_number
      Src: /src/cpython/Objects/unicode_formatter.c:1745,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_formatter.c:1752,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_formatter.c:1756,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicode_formatter.c:1763,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicode_formatter.c:1764,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_formatter.c:1765,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_formatter.c:1766,1
    - Dst: free_locale_info
      Src: /src/cpython/Objects/unicode_formatter.c:1767,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 135
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1525
    functionDepth: 4
    functionLinenumber: 1525
    functionLinenumberEnd: 1769
    functionName: format_complex_internal
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Prepare
    - copysign
    - free_locale_info
    - PyErr_Occurred
    - parse_number
    - PyUnicode_WRITE
    - PyUnicode_READ_CHAR
    - fill_padding
    - get_locale_info
    - calc_number_widths
    - strlen
    - PyMem_Free
    - Py_XDECREF
    - PyComplex_RealAsDouble
    - PyErr_SetString
    - Py_MAX
    - PyComplex_ImagAsDouble
    - calc_padding
    - _PyUnicode_FromASCII
    - fill_number
    - PyOS_double_to_string
    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/Objects/unicode_formatter.c:1780,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicode_formatter.c:1783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_formatter.c:1784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - writer
    argTypes:
    - PyObject*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1774
    functionDepth: 4
    functionLinenumber: 1774
    functionLinenumberEnd: 1786
    functionName: format_obj
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    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/Objects/unicode_formatter.c:1796,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicode_formatter.c:1796,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicode_formatter.c:1801,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicode_formatter.c:1802,1
    - Dst: format_obj
      Src: /src/cpython/Objects/unicode_formatter.c:1804,1
    - Dst: parse_internal_render_format_spec
      Src: /src/cpython/Objects/unicode_formatter.c:1808,1
    - Dst: format_string_internal
      Src: /src/cpython/Objects/unicode_formatter.c:1816,1
    - Dst: unknown_presentation_type
      Src: /src/cpython/Objects/unicode_formatter.c:1819,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicode_formatter.c:1819,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: 1795
        line_start: 1795
        source_file: /src/cpython/Objects/unicode_formatter.c
    constantsTouched: []
    func_position:
      end: 1822
      start: 1788
    functionDepth: 5
    functionLinenumber: 1788
    functionLinenumberEnd: 1822
    functionName: _PyUnicode_FormatAdvancedWriter
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - parse_internal_render_format_spec
    - unknown_presentation_type
    - format_obj
    - PyUnicode_CheckExact
    - PyUnicode_Check
    - assert
    - _PyUnicodeWriter_WriteStr
    - format_string_internal
    - Py_TYPE
    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/Objects/unicode_formatter.c:1837,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicode_formatter.c:1838,1
    - Dst: format_obj
      Src: /src/cpython/Objects/unicode_formatter.c:1840,1
    - Dst: parse_internal_render_format_spec
      Src: /src/cpython/Objects/unicode_formatter.c:1844,1
    - Dst: format_long_internal
      Src: /src/cpython/Objects/unicode_formatter.c:1858,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Objects/unicode_formatter.c:1869,1
    - Dst: format_float_internal
      Src: /src/cpython/Objects/unicode_formatter.c:1872,1
    - Dst: unknown_presentation_type
      Src: /src/cpython/Objects/unicode_formatter.c:1877,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicode_formatter.c:1877,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_formatter.c:1882,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: 1884
      start: 1824
    functionDepth: 5
    functionLinenumber: 1824
    functionLinenumberEnd: 1884
    functionName: _PyLong_FormatAdvancedWriter
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - parse_internal_render_format_spec
    - unknown_presentation_type
    - format_obj
    - format_long_internal
    - _PyLong_FormatWriter
    - PyLong_CheckExact
    - PyNumber_Float
    - Py_XDECREF
    - format_float_internal
    - 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/Objects/unicode_formatter.c:1897,1
    - Dst: parse_internal_render_format_spec
      Src: /src/cpython/Objects/unicode_formatter.c:1900,1
    - Dst: format_float_internal
      Src: /src/cpython/Objects/unicode_formatter.c:1916,1
    - Dst: unknown_presentation_type
      Src: /src/cpython/Objects/unicode_formatter.c:1920,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicode_formatter.c:1920,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: 1923
      start: 1886
    functionDepth: 5
    functionLinenumber: 1886
    functionLinenumberEnd: 1923
    functionName: _PyFloat_FormatAdvancedWriter
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - parse_internal_render_format_spec
    - unknown_presentation_type
    - format_obj
    - format_float_internal
    - 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/Objects/unicode_formatter.c:1936,1
    - Dst: parse_internal_render_format_spec
      Src: /src/cpython/Objects/unicode_formatter.c:1939,1
    - Dst: format_complex_internal
      Src: /src/cpython/Objects/unicode_formatter.c:1954,1
    - Dst: unknown_presentation_type
      Src: /src/cpython/Objects/unicode_formatter.c:1958,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicode_formatter.c:1958,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: 1961
      start: 1925
    functionDepth: 5
    functionLinenumber: 1925
    functionLinenumberEnd: 1961
    functionName: _PyComplex_FormatAdvancedWriter
    functionSourceFile: /src/cpython/Objects/unicode_formatter.c
    functionUses: 0
    functionsReached:
    - parse_internal_render_format_spec
    - unknown_presentation_type
    - format_obj
    - 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: 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:
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyObject_CallFunction
    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:
    - PyUnicode_READ_CHAR
    - PyBytes_Check
    - PyErr_SetString
    - Py_SETREF
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - PyUnicode_Substring
    - _PyObject_CallMethod
    - PyErr_Format
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    - PyObject_CallMethodNoArgs
    - PyUnicode_GET_LENGTH
    - PyBytes_GET_SIZE
    - _Py_ID
    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
    - PyErr_SetString
    - PyObject_GetAttr
    - PyObject_Repr
    - Py_DECREF
    - PyObject_CallOneArg
    - _Py_ID
    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:
    - PyUnicode_FromString
    - PyErr_SetString
    - PyErr_Occurred
    - Py_DECREF
    - PyFile_WriteObject
    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:
    - PyBool_Check
    - PyErr_WarnEx
    - PyLong_AsInt
    - PyErr_SetString
    - PyObject_GetOptionalAttr
    - PyLong_Check
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_CallNoArgs
    - _Py_ID
    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:
    - ungetc
    - FUNLOCKFILE
    - GETC
    - 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:
    - _PyUnicode_AsUTF8String
    - PyBytes_AS_STRING
    - PyUnicode_AsUTF8AndSize
    - PyErr_Clear
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - assert
    - PyArg_ParseTuple
    - _Py_write
    - Py_XDECREF
    - PyBytes_GET_SIZE
    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:
    - PySys_Audit
    - PyErr_SetString
    - Py_IsInitialized
    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:
    - PyUnicode_Check
    - PyObject_CallFunction
    - hook
    - PyErr_Format
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - 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_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:
    - PyErr_Format
    - Py_TYPE
    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
    - Py_TYPE
    - null_error
    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:
    - _Py_CheckSlotResult
    - PySequenceMethods*::sq_length
    - PyMapping_Size
    - assert
    - null_error
    - Py_TYPE
    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: 7
    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_LookupSpecial
    - _PyErr_Occurred
    - _PyErr_ExceptionMatches
    - PyObject_Length
    - _PyThreadState_GET
    - _PyObject_HasLen
    - _PyErr_Clear
    - PyLong_Check
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_Format
    - _PyObject_CallNoArgs
    - PyLong_AsSsize_t
    - _Py_ID
    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: 12
    functionsReached:
    - Py_DECREF
    - _Py_CheckSlotResult
    - PyType_Check
    - PyNumber_AsSsize_t
    - PySequence_GetItem
    - type_error
    - _PyIndex_Check
    - Py_GenericAlias
    - PyObject_GetOptionalAttr
    - PyMappingMethods*::mp_subscript
    - assert
    - PyErr_Occurred
    - Py_XDECREF
    - null_error
    - PyObject_CallOneArg
    - PyErr_Format
    - Py_TYPE
    - _Py_ID
    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:
    - PyObject_GetItem
    - PyErr_Clear
    - PyDict_GetItemRef
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - PyDict_CheckExact
    linkageType: ''
    returnType: int
    signature: int PyMapping_GetOptionalItem(PyObject *obj, PyObject *key, PyObject
      **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/abstract.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - key
    - err
    argTypes:
    - PyObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 9
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: _PyMapping_GetOptionalItem2
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 4
    functionsReached:
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMapping_GetOptionalItem2(PyObject *obj, PyObject *key, int *err)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:239,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:243,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/cpython/Objects/abstract.c:245,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:246,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:246,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:250,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:251,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:253,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:254,1
    - Dst: PySequence_SetItem
      Src: /src/cpython/Objects/abstract.c:256,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:258,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:259,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:265,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: 245
        line_start: 245
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 267
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 267
    functionName: PyObject_SetItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 12
    functionsReached:
    - _Py_CheckSlotResult
    - PyNumber_AsSsize_t
    - PySequence_SetItem
    - type_error
    - _PyIndex_Check
    - PyMappingMethods*::mp_ass_subscript
    - PyErr_Occurred
    - assert
    - null_error
    - Py_TYPE
    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:273,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:277,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/cpython/Objects/abstract.c:279,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:280,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:280,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:284,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:285,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:287,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:288,1
    - Dst: PySequence_DelItem
      Src: /src/cpython/Objects/abstract.c:290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:292,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:293,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:299,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: 279
        line_start: 279
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 301
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 301
    functionName: PyObject_DelItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - _Py_CheckSlotResult
    - PyNumber_AsSsize_t
    - type_error
    - _PyIndex_Check
    - PySequence_DelItem
    - PyMappingMethods*::mp_ass_subscript
    - PyErr_Occurred
    - assert
    - null_error
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyObject_DelItem(PyObject *o, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:310,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:313,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Objects/abstract.c:316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 319
    functionName: PyObject_DelItemString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_DelItem
    - PyUnicode_FromString
    - null_error
    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:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    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:343,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:350,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 355
    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:363,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/abstract.c:366,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:371,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: 373
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 373
    functionName: as_read_buffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - PyObject_GetBuffer
    - null_error
    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:386,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: 387
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 387
    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:400,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: 401
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 401
    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:418,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:421,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:425,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:432,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: 434
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 434
    functionName: PyObject_AsWriteBuffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyBuffer_Release
    - Py_TYPE
    - null_error
    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:443,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:447,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:450,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:452,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:456,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:456,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: 455
        line_start: 455
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 458
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 458
    functionName: PyObject_GetBuffer
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 149
    functionsReached:
    - _Py_CheckSlotResult
    - PyErr_BadInternalCall
    - PyErr_Format
    - assert
    - Py_TYPE
    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:475,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:486,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->shape != NULL)
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/cpython/Objects/abstract.c
    - condition: (view->shape != NULL)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Objects/abstract.c
    - condition: (view->ndim > 0)
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 498
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 498
    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:513,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->ndim > 0)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/cpython/Objects/abstract.c
    - condition: (view->shape != NULL)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 525
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 525
    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:534,1
    - Dst: _IsFortranContiguous
      Src: /src/cpython/Objects/abstract.c:536,1
    - Dst: _IsCContiguous
      Src: /src/cpython/Objects/abstract.c:538,1
    - Dst: _IsFortranContiguous
      Src: /src/cpython/Objects/abstract.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - view
    - order
    argTypes:
    - Py_buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 540
    functionName: PyBuffer_IsContiguous
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 13
    functionsReached:
    - _IsCContiguous
    - _IsFortranContiguous
    linkageType: ''
    returnType: int
    signature: int PyBuffer_IsContiguous(const Py_buffer *view, char order)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - view
    - indices
    argTypes:
    - Py_buffer*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 556
    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: 573
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 573
    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: 589
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 589
    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:599,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:604,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/abstract.c:609,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:614,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:620,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:621,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 624
    functionName: PyBuffer_SizeFromFormat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - PyObject_CallFunctionObjArgs
    - Py_XDECREF
    - PyLong_AsSsize_t
    - PyImport_ImportModuleAttrString
    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:639,1
    - Dst: memcpy
      Src: /src/cpython/Objects/abstract.c:641,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/abstract.c:648,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/abstract.c:650,1
    - Dst: PyBuffer_GetPointer
      Src: /src/cpython/Objects/abstract.c:669,1
    - Dst: memcpy
      Src: /src/cpython/Objects/abstract.c:670,1
    - Dst: addone
      Src: /src/cpython/Objects/abstract.c:672,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/abstract.c:675,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - view
    - buf
    - len
    - order
    argTypes:
    - Py_buffer*
    - void*
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 677
    functionName: PyBuffer_FromContiguous
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - addone
    - PyErr_NoMemory
    - PyBuffer_GetPointer
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - PyBuffer_IsContiguous
    linkageType: ''
    returnType: int
    signature: int PyBuffer_FromContiguous(const Py_buffer *view, const void *buf,
      Py_ssize_t len, char order)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/abstract.c:686,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/abstract.c:687,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:688,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/abstract.c:694,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/abstract.c:695,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:696,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:701,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:703,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:704,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:708,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:709,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:710,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Objects/abstract.c:711,1
    - Dst: memcpy
      Src: /src/cpython/Objects/abstract.c:713,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:714,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:715,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/abstract.c:722,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/abstract.c:724,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:725,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:726,1
    - Dst: _Py_add_one_to_index_C
      Src: /src/cpython/Objects/abstract.c:738,1
    - Dst: PyBuffer_GetPointer
      Src: /src/cpython/Objects/abstract.c:739,1
    - Dst: PyBuffer_GetPointer
      Src: /src/cpython/Objects/abstract.c:740,1
    - Dst: memcpy
      Src: /src/cpython/Objects/abstract.c:741,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/abstract.c:743,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:744,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:745,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 747
    functionName: PyObject_CopyData
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    - PyBuffer_Release
    - PyBuffer_GetPointer
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - PyBuffer_IsContiguous
    - PyObject_GetBuffer
    - _Py_add_one_to_index_C
    - PyObject_CheckBuffer
    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
    - order
    argTypes:
    - int
    - Py_ssize_t*
    - Py_ssize_t*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 771
    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 order)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:778,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/abstract.c:785,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:790,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/abstract.c:796,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: 814
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 814
    functionName: PyBuffer_FillInfo
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 17
    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:823,1
    - Dst: PyBufferProcs*::bf_releasebuffer
      Src: /src/cpython/Objects/abstract.c:825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 829
    functionName: PyBuffer_Release
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 201
    functionsReached:
    - Py_DECREF
    - PyBufferProcs*::bf_releasebuffer
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyBuffer_Release(Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 836
    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:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - view
    argTypes:
    - PyInterpreterState*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 843
    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:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - view
    argTypes:
    - PyInterpreterState*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 850
    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:859,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:860,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:862,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/abstract.c:867,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/abstract.c:868,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:869,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:871,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/abstract.c:872,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/abstract.c:878,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/abstract.c:883,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:883,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:885,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:886,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/abstract.c:887,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:889,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/abstract.c:895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:896,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/abstract.c:898,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:899,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:902,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:907,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - obj
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 852
    functionDepth: 4
    functionLinenumber: 852
    functionLinenumberEnd: 909
    functionName: PyObject_Format
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - Py_GetConstant
    - _PyErr_Format
    - _PyObject_LookupSpecial
    - PyObject_Str
    - PyUnicode_CheckExact
    - _PyErr_Occurred
    - PyUnicode_Check
    - Py_SETREF
    - PyLong_CheckExact
    - _PyThreadState_GET
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallOneArg
    - Py_NewRef
    - Py_TYPE
    - _Py_ID
    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:917,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Objects/abstract.c:918,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 919
    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: 924
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 924
    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: 926
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 926
    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: 928
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 928
    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: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: Py_IS_TYPE
      Src: /src/cpython/Objects/abstract.c:955,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:955,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:955,1
    - Dst: NB_BINOP
      Src: /src/cpython/Objects/abstract.c:956,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:956,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/abstract.c:967,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:967,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:967,1
    - Dst: slotw
      Src: /src/cpython/Objects/abstract.c:968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:971,1
    - Dst: slotv
      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
    - Dst: slotw
      Src: /src/cpython/Objects/abstract.c:982,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:983,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:987,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(w, op_name, x != NULL))
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(v, op_name, x != NULL))
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 990
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 990
    functionName: binary_op1
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyType_IsSubtype
    - slotw
    - _Py_CheckSlotResult
    - Py_IS_TYPE
    - assert
    - slotv
    - NB_BINOP
    - Py_DECREF
    - Py_TYPE
    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: 994
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 994
    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: 996
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 996
    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:1001,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1005,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - w
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1008
    functionName: binop_type_error
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    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:1013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1015,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1016,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: 1019
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1019
    functionName: binary_op
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - BINARY_OP1
    - binop_type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binary_op(PyObject *v, PyObject *w, const int op_slot, const char *op_name)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1037,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1038,1
    - Dst: NB_TERNOP
      Src: /src/cpython/Objects/abstract.c:1042,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/abstract.c:1049,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1049,1
    - Dst: NB_TERNOP
      Src: /src/cpython/Objects/abstract.c:1050,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/abstract.c:1061,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1061,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1061,1
    - Dst: slotw
      Src: /src/cpython/Objects/abstract.c:1062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1066,1
    - Dst: slotv
      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: slotw
      Src: /src/cpython/Objects/abstract.c:1077,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1078,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1078,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1082,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1085,1
    - Dst: NB_TERNOP
      Src: /src/cpython/Objects/abstract.c:1087,1
    - Dst: slotz
      Src: /src/cpython/Objects/abstract.c:1092,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1093,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1093,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1097,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1102,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1107,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1108,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1111,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1116,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1117,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1118,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: 1069
        line_start: 1069
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(w, op_name, x != NULL))
      pos:
        line_end: 1077
        line_start: 1077
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(z, op_name, x != NULL))
      pos:
        line_end: 1092
        line_start: 1092
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1121
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1121
    functionName: ternary_op
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyType_IsSubtype
    - slotw
    - _Py_CheckSlotResult
    - Py_IS_TYPE
    - slotv
    - NB_TERNOP
    - PyErr_Format
    - assert
    - Py_DECREF
    - slotz
    - Py_TYPE
    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: 1128
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1128
    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:1140,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1144,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1146,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1149,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1149,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1153,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: 1148
        line_start: 1148
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1154
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1154
    functionName: PyNumber_Add
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 24
    functionsReached:
    - binop_type_error
    - _Py_CheckSlotResult
    - NB_SLOT
    - BINARY_OP1
    - assert
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Add(PyObject *v, PyObject *w)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:1160,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:1161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:1162,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1167,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1171,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1171,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: 1170
        line_start: 1170
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1173
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1173
    functionName: sequence_repeat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - _Py_CheckSlotResult
    - PyNumber_AsSsize_t
    - type_error
    - _PyIndex_Check
    - PyErr_Occurred
    - 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:1178,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1178,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1180,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1182,1
    - Dst: sequence_repeat
      Src: /src/cpython/Objects/abstract.c:1184,1
    - Dst: sequence_repeat
      Src: /src/cpython/Objects/abstract.c:1187,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1192
    functionName: PyNumber_Multiply
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 20
    functionsReached:
    - binop_type_error
    - NB_SLOT
    - BINARY_OP1
    - Py_DECREF
    - sequence_repeat
    - 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:1202,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1203
    functionName: PyNumber_Power
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - ternary_op
    - NB_SLOT
    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:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1205
    functionDepth: 3
    functionLinenumber: 1205
    functionLinenumberEnd: 1209
    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:1234,1
    - Dst: NB_BINOP
      Src: /src/cpython/Objects/abstract.c:1236,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1239,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1243,1
    - Dst: binary_op1
      Src: /src/cpython/Objects/abstract.c:1247,1
    - Dst: binary_op1
      Src: /src/cpython/Objects/abstract.c:1249,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: 1238
        line_start: 1238
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1251
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1251
    functionName: binary_iop1
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - NB_BINOP
    - _Py_CheckSlotResult
    - binary_op1
    - assert
    - Py_DECREF
    - Py_TYPE
    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: 1255
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1255
    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: 1257
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1257
    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:1263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1265,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1266,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: 1269
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1269
    functionName: binary_iop
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - binop_type_error
    - 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:1275,1
    - Dst: NB_TERNOP
      Src: /src/cpython/Objects/abstract.c:1277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1283,1
    - Dst: ternary_op
      Src: /src/cpython/Objects/abstract.c:1286,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: 1287
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1287
    functionName: ternary_iop
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - ternary_op
    - NB_TERNOP
    - Py_TYPE
    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: 1294
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1294
    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:1309,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1309,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1310,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1313,1
    - Dst: func
      Src: /src/cpython/Objects/abstract.c:1319,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1320,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1320,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1324,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: 1319
        line_start: 1319
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1327
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1327
    functionName: PyNumber_InPlaceAdd
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - binop_type_error
    - _Py_CheckSlotResult
    - BINARY_IOP1
    - NB_SLOT
    - func
    - assert
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceAdd(PyObject *v, PyObject *w)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BINARY_IOP1
      Src: /src/cpython/Objects/abstract.c:1332,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1332,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1333,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1336,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1338,1
    - Dst: sequence_repeat
      Src: /src/cpython/Objects/abstract.c:1344,1
    - Dst: sequence_repeat
      Src: /src/cpython/Objects/abstract.c:1351,1
    - Dst: binop_type_error
      Src: /src/cpython/Objects/abstract.c:1353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1356
    functionName: PyNumber_InPlaceMultiply
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - binop_type_error
    - BINARY_IOP1
    - NB_SLOT
    - Py_DECREF
    - sequence_repeat
    - 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:1361,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1361,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1358
    functionDepth: 3
    functionLinenumber: 1358
    functionLinenumberEnd: 1363
    functionName: PyNumber_InPlacePower
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - ternary_iop
    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:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1365
    functionDepth: 4
    functionLinenumber: 1365
    functionLinenumberEnd: 1369
    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: 1390
      start: 1374
    functionDepth: 0
    functionLinenumber: 1374
    functionLinenumberEnd: 1390
    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:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1401
    functionName: PyIndex_Check
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 46
    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:1413,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:1416,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:1417,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/abstract.c:1419,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1420,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1422,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1426,1
    - Dst: nb_index
      Src: /src/cpython/Objects/abstract.c:1426,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1427,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1427,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:1428,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:1432,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1436,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/abstract.c:1440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(item, "__index__", result != NULL))
      pos:
        line_end: 1426
        line_start: 1426
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1449
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1449
    functionName: _PyNumber_Index
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 101
    functionsReached:
    - _Py_CheckSlotResult
    - assert
    - PyErr_WarnFormat
    - _PyIndex_Check
    - PyLong_Check
    - PyLong_CheckExact
    - PyErr_Format
    - null_error
    - Py_DECREF
    - Py_NewRef
    - Py_TYPE
    - nb_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyNumber_Index(PyObject *item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1458,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:1459,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:1460,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/abstract.c:1460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1463
    functionName: PyNumber_Index
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 115
    functionsReached:
    - _PyNumber_Index
    - PyLong_CheckExact
    - Py_SETREF
    - _PyLong_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Index(PyObject *item)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1472,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/abstract.c:1477,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:1481,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:1482,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/abstract.c:1488,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:1491,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1496,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:1496,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/abstract.c:1500,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1507,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1513,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - item
    - err
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(value))
      pos:
        line_end: 1495
        line_start: 1495
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1515
      start: 1467
    functionDepth: 2
    functionLinenumber: 1467
    functionLinenumberEnd: 1515
    functionName: PyNumber_AsSsize_t
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 26
    functionsReached:
    - _PyErr_Format
    - _PyErr_Occurred
    - _PyLong_IsNegative
    - PyLong_Check
    - _PyThreadState_GET
    - _PyErr_Clear
    - assert
    - _PyNumber_Index
    - PyErr_GivenExceptionMatches
    - Py_DECREF
    - PyLong_AsSsize_t
    - Py_TYPE
    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:1526,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:1529,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:1530,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1532,1
    - Dst: PyNumberMethods*::nb_int
      Src: /src/cpython/Objects/abstract.c:1536,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1537,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1537,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/abstract.c:1538,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/abstract.c:1542,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1546,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/abstract.c:1550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1555,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:1558,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/abstract.c:1558,1
    - Dst: PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1562,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/abstract.c:1565,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/cpython/Objects/abstract.c:1567,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/abstract.c:1569,1
    - Dst: _PyLong_FromBytes
      Src: /src/cpython/Objects/abstract.c:1574,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/abstract.c:1574,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:1575,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/abstract.c:1577,1
    - Dst: _PyLong_FromBytes
      Src: /src/cpython/Objects/abstract.c:1578,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/abstract.c:1578,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:1579,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/abstract.c:1581,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/abstract.c:1585,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:1587,1
    - Dst: _PyLong_FromBytes
      Src: /src/cpython/Objects/abstract.c:1590,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/abstract.c:1590,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:1591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1592,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/abstract.c:1593,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1597,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__int__", result != NULL))
      pos:
        line_end: 1536
        line_start: 1536
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1599
      start: 1518
    functionDepth: 3
    functionLinenumber: 1518
    functionLinenumberEnd: 1599
    functionName: PyNumber_Long
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - _Py_CheckSlotResult
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - assert
    - PyObject_GetBuffer
    - Py_TYPE
    - PyUnicode_Check
    - PyLong_Check
    - _PyLong_FromBytes
    - PyLong_FromUnicodeObject
    - PyBytes_AS_STRING
    - PyNumber_Index
    - PyByteArray_AS_STRING
    - PyErr_WarnFormat
    - type_error
    - PyLong_CheckExact
    - PyByteArray_GET_SIZE
    - null_error
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_NewRef
    - Py_SETREF
    - PyBuffer_Release
    - PyErr_Format
    - PyByteArray_Check
    - PyNumberMethods*::nb_int
    - _PyLong_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Long(PyObject *o)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1605,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/abstract.c:1608,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:1609,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1612,1
    - Dst: PyNumberMethods*::nb_float
      Src: /src/cpython/Objects/abstract.c:1614,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1615,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1615,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/abstract.c:1616,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/abstract.c:1620,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:1621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1623,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/abstract.c:1627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1632,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/abstract.c:1635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1636,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/abstract.c:1637,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1641,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/abstract.c:1645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1646,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:1647,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/abstract.c:1650,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/abstract.c:1654,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/abstract.c:1655,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/abstract.c:1655,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Objects/abstract.c:1657,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__float__", res != NULL))
      pos:
        line_end: 1614
        line_start: 1614
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1658
      start: 1601
    functionDepth: 2
    functionLinenumber: 1601
    functionLinenumberEnd: 1658
    functionName: PyNumber_Float
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - _Py_CheckSlotResult
    - PyFloat_AS_DOUBLE
    - assert
    - PyFloat_FromDouble
    - PyLong_AsDouble
    - PyFloat_Check
    - PyErr_WarnFormat
    - _PyNumber_Index
    - PyFloat_CheckExact
    - PyFloat_FromString
    - PyErr_Format
    - PyNumberMethods*::nb_float
    - Py_DECREF
    - PyErr_Occurred
    - null_error
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Float(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:1665,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/abstract.c:1669,1
    - Dst: _PyLong_Format
      Src: /src/cpython/Objects/abstract.c:1672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - n
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1675
    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:1683,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1687
    functionName: PySequence_Check
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 14
    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:1693,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1697,1
    - Dst: PySequenceMethods*::sq_length
      Src: /src/cpython/Objects/abstract.c:1699,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1700,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1700,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1704,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1704,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1705,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1708,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(s, "__len__", len >= 0))
      pos:
        line_end: 1699
        line_start: 1699
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1710
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1710
    functionName: PySequence_Size
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 18
    functionsReached:
    - _Py_CheckSlotResult
    - PySequenceMethods*::sq_length
    - type_error
    - assert
    - null_error
    - Py_TYPE
    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:1716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1713
    functionDepth: 3
    functionLinenumber: 1713
    functionLinenumberEnd: 1717
    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:1724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1727,1
    - Dst: PySequenceMethods*::sq_concat
      Src: /src/cpython/Objects/abstract.c:1729,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1730,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1730,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1737,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1737,1
    - Dst: BINARY_OP1
      Src: /src/cpython/Objects/abstract.c:1738,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1741,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1743,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: 1729
        line_start: 1729
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1744
      start: 1720
    functionDepth: 2
    functionLinenumber: 1720
    functionLinenumberEnd: 1744
    functionName: PySequence_Concat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 6
    functionsReached:
    - PySequence_Check
    - _Py_CheckSlotResult
    - NB_SLOT
    - BINARY_OP1
    - type_error
    - PySequenceMethods*::sq_concat
    - assert
    - Py_DECREF
    - null_error
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Concat(PyObject *s, PyObject *o)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1750,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1753,1
    - Dst: PySequenceMethods*::sq_repeat
      Src: /src/cpython/Objects/abstract.c:1755,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1756,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1756,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1763,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/abstract.c:1765,1
    - Dst: BINARY_OP1
      Src: /src/cpython/Objects/abstract.c:1768,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1768,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1772,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1774,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: 1755
        line_start: 1755
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1775
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1775
    functionName: PySequence_Repeat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PySequence_Check
    - _Py_CheckSlotResult
    - NB_SLOT
    - BINARY_OP1
    - type_error
    - PyLong_FromSsize_t
    - assert
    - Py_DECREF
    - PySequenceMethods*::sq_repeat
    - null_error
    - Py_TYPE
    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:1781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1784,1
    - Dst: PySequenceMethods*::sq_inplace_concat
      Src: /src/cpython/Objects/abstract.c:1786,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1787,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1787,1
    - Dst: PySequenceMethods*::sq_concat
      Src: /src/cpython/Objects/abstract.c:1791,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1792,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1792,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1796,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1796,1
    - Dst: BINARY_IOP1
      Src: /src/cpython/Objects/abstract.c:1797,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1797,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1801,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1803,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: 1786
        line_start: 1786
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(s, "+", res != NULL))
      pos:
        line_end: 1791
        line_start: 1791
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1804
      start: 1777
    functionDepth: 2
    functionLinenumber: 1777
    functionLinenumberEnd: 1804
    functionName: PySequence_InPlaceConcat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PySequence_Check
    - _Py_CheckSlotResult
    - BINARY_IOP1
    - NB_SLOT
    - type_error
    - PySequenceMethods*::sq_concat
    - assert
    - Py_DECREF
    - PySequenceMethods*::sq_inplace_concat
    - null_error
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_InPlaceConcat(PyObject *s, PyObject *o)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:1810,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1813,1
    - Dst: PySequenceMethods*::sq_inplace_repeat
      Src: /src/cpython/Objects/abstract.c:1815,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1816,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1816,1
    - Dst: PySequenceMethods*::sq_repeat
      Src: /src/cpython/Objects/abstract.c:1820,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1821,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1821,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:1825,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/abstract.c:1827,1
    - Dst: BINARY_IOP1
      Src: /src/cpython/Objects/abstract.c:1830,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1830,1
    - Dst: NB_SLOT
      Src: /src/cpython/Objects/abstract.c:1831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1832,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1835,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1837,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: 1815
        line_start: 1815
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(o, "*", res != NULL))
      pos:
        line_end: 1820
        line_start: 1820
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1838
      start: 1806
    functionDepth: 2
    functionLinenumber: 1806
    functionLinenumberEnd: 1838
    functionName: PySequence_InPlaceRepeat
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PySequence_Check
    - _Py_CheckSlotResult
    - BINARY_IOP1
    - NB_SLOT
    - type_error
    - PyLong_FromSsize_t
    - PySequenceMethods*::sq_inplace_repeat
    - assert
    - Py_DECREF
    - PySequenceMethods*::sq_repeat
    - null_error
    - Py_TYPE
    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:1844,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1847,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1852,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1852,1
    - Dst: PySequenceMethods*::sq_item
      Src: /src/cpython/Objects/abstract.c:1859,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1860,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1860,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1864,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1864,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1865,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1867,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: 1851
        line_start: 1851
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(s, "__getitem__", res != NULL))
      pos:
        line_end: 1859
        line_start: 1859
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1868
      start: 1840
    functionDepth: 2
    functionLinenumber: 1840
    functionLinenumberEnd: 1868
    functionName: PySequence_GetItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 17
    functionsReached:
    - _Py_CheckSlotResult
    - type_error
    - assert
    - PySequenceMethods*::sq_item
    - null_error
    - Py_TYPE
    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:1874,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1877,1
    - Dst: _PySlice_FromIndices
      Src: /src/cpython/Objects/abstract.c:1879,1
    - Dst: PyMappingMethods*::mp_subscript
      Src: /src/cpython/Objects/abstract.c:1883,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1884,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1885,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1889,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: 1883
        line_start: 1883
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1890
      start: 1870
    functionDepth: 3
    functionLinenumber: 1870
    functionLinenumberEnd: 1890
    functionName: PySequence_GetSlice
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - _Py_CheckSlotResult
    - _PySlice_FromIndices
    - type_error
    - PyMappingMethods*::mp_subscript
    - assert
    - Py_DECREF
    - null_error
    - Py_TYPE
    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:1896,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1900,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1905,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1905,1
    - Dst: PySequenceMethods*::sq_ass_item
      Src: /src/cpython/Objects/abstract.c:1912,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1913,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1913,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1917,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1917,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1918,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1921,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: 1904
        line_start: 1904
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(s, "__setitem__", res >= 0))
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1923
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 1923
    functionName: PySequence_SetItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - _Py_CheckSlotResult
    - PySequenceMethods*::sq_ass_item
    - type_error
    - assert
    - null_error
    - Py_TYPE
    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:1929,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1933,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1938,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1938,1
    - Dst: PySequenceMethods*::sq_ass_item
      Src: /src/cpython/Objects/abstract.c:1945,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1946,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1946,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1950,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1950,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1951,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1954,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: 1937
        line_start: 1937
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(s, "__delitem__", res >= 0))
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1956
      start: 1925
    functionDepth: 2
    functionLinenumber: 1925
    functionLinenumberEnd: 1956
    functionName: PySequence_DelItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - _Py_CheckSlotResult
    - PySequenceMethods*::sq_ass_item
    - type_error
    - assert
    - null_error
    - Py_TYPE
    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:1962,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1966,1
    - Dst: _PySlice_FromIndices
      Src: /src/cpython/Objects/abstract.c:1968,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/cpython/Objects/abstract.c:1971,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1972,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1973,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:1977,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: 1971
        line_start: 1971
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1979
      start: 1958
    functionDepth: 3
    functionLinenumber: 1958
    functionLinenumberEnd: 1979
    functionName: PySequence_SetSlice
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - _Py_CheckSlotResult
    - _PySlice_FromIndices
    - type_error
    - PyMappingMethods*::mp_ass_subscript
    - assert
    - Py_DECREF
    - null_error
    - Py_TYPE
    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:1985,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:1989,1
    - Dst: _PySlice_FromIndices
      Src: /src/cpython/Objects/abstract.c:1991,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/cpython/Objects/abstract.c:1995,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:1996,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:1996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:1997,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2000,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: 1995
        line_start: 1995
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2002
      start: 1981
    functionDepth: 3
    functionLinenumber: 1981
    functionLinenumberEnd: 2002
    functionName: PySequence_DelSlice
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - _Py_CheckSlotResult
    - _PySlice_FromIndices
    - type_error
    - PyMappingMethods*::mp_ass_subscript
    - assert
    - Py_DECREF
    - null_error
    - Py_TYPE
    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:2010,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/abstract.c:2014,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:2019,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/abstract.c:2021,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Objects/abstract.c:2022,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/abstract.c:2025,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/abstract.c:2032,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2037,1
    - Dst: _PyTuple_FromArraySteal
      Src: /src/cpython/Objects/abstract.c:2038,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/abstract.c:2042,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2046,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/abstract.c:2047,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/abstract.c:2049,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/abstract.c:2052,1
    - Dst: PyErr_Occurred
      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:2056,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Objects/abstract.c:2061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2067,1
    - Dst: _PyList_AsTupleAndClear
      Src: /src/cpython/Objects/abstract.c:2068,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2075,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (n == 8)
      pos:
        line_end: 2045
        line_start: 2045
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2078
      start: 2004
    functionDepth: 1
    functionLinenumber: 2004
    functionLinenumberEnd: 2078
    functionName: PySequence_Tuple
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 19
    functionsReached:
    - PyList_SET_ITEM
    - _PyList_AppendTakeRef
    - PyIter_Next
    - Py_SET_SIZE
    - assert
    - _PyTuple_FromArraySteal
    - PyObject_GetIter
    - _PyList_AsTupleAndClear
    - PyList_AsTuple
    - PyList_New
    - PyErr_Occurred
    - null_error
    - Py_DECREF
    - PyList_CheckExact
    - PyTuple_CheckExact
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Tuple(PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2087,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/abstract.c:2090,1
    - Dst: _PyList_Extend
      Src: /src/cpython/Objects/abstract.c:2094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2101
    functionName: PySequence_List
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 12
    functionsReached:
    - _PyList_Extend
    - Py_DECREF
    - PyList_New
    - null_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_List(PyObject *v)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2109,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/abstract.c:2112,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/abstract.c:2112,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/abstract.c:2113,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/abstract.c:2116,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2118,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:2119,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2120,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/abstract.c:2125,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - v
    - m
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2129
      start: 2103
    functionDepth: 2
    functionLinenumber: 2103
    functionLinenumberEnd: 2129
    functionName: PySequence_Fast
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 17
    functionsReached:
    - PySequence_List
    - _PyErr_SetString
    - _PyErr_ExceptionMatches
    - PyObject_GetIter
    - _PyThreadState_GET
    - null_error
    - Py_DECREF
    - PyList_CheckExact
    - PyTuple_CheckExact
    - Py_NewRef
    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:2145,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/abstract.c:2149,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:2151,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2153,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2159,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/abstract.c:2168,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2170,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/abstract.c:2175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2176,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2183,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2192,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/abstract.c:2203,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2224,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 3
    argNames:
    - seq
    - obj
    - operation
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2137
    functionDepth: 4
    functionLinenumber: 2137
    functionLinenumberEnd: 2227
    functionName: _PySequence_IterSearch
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_SetString
    - type_error
    - PyObject_GetIter
    - Py_UNREACHABLE
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - null_error
    - Py_DECREF
    - PyIter_Next
    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:2233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2230
    functionDepth: 5
    functionLinenumber: 2230
    functionLinenumberEnd: 2234
    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:2242,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2245,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:2245,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/abstract.c:2248,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/abstract.c:2249,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: 2244
        line_start: 2244
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2250
      start: 2239
    functionDepth: 5
    functionLinenumber: 2239
    functionLinenumberEnd: 2250
    functionName: PySequence_Contains
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 8
    functionsReached:
    - _PySequence_IterSearch
    - _Py_CheckSlotResult
    - Py_SAFE_DOWNCAST
    - assert
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PySequence_Contains(PyObject *seq, PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/abstract.c:2257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2254
    functionDepth: 6
    functionLinenumber: 2254
    functionLinenumberEnd: 2258
    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:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2260
    functionDepth: 5
    functionLinenumber: 2260
    functionLinenumberEnd: 2264
    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:2271,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2273
    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:2279,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2283,1
    - Dst: PyMappingMethods*::mp_length
      Src: /src/cpython/Objects/abstract.c:2285,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2286,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:2286,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2290,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2291,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_CheckSlotResult(o, "__len__", len >= 0))
      pos:
        line_end: 2285
        line_start: 2285
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2297
      start: 2275
    functionDepth: 2
    functionLinenumber: 2275
    functionLinenumberEnd: 2297
    functionName: PyMapping_Size
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - _Py_CheckSlotResult
    - PyMappingMethods*::mp_length
    - type_error
    - assert
    - null_error
    - Py_TYPE
    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:2303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2300
    functionDepth: 3
    functionLinenumber: 2300
    functionLinenumberEnd: 2304
    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:2313,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:2316,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/abstract.c:2319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2307
    functionDepth: 3
    functionLinenumber: 2307
    functionLinenumberEnd: 2322
    functionName: PyMapping_GetItemString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyObject_GetItem
    - null_error
    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:2329,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:2332,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/abstract.c:2337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - key
    - result
    argTypes:
    - PyObject*
    - char*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2324
    functionDepth: 9
    functionLinenumber: 2324
    functionLinenumberEnd: 2340
    functionName: PyMapping_GetOptionalItemString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 6
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyMapping_GetOptionalItem
    - null_error
    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:2349,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/abstract.c:2353,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/abstract.c:2356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - o
    - key
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2342
    functionDepth: 3
    functionLinenumber: 2342
    functionLinenumberEnd: 2359
    functionName: PyMapping_SetItemString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyObject_SetItem
    - null_error
    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:2365,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2361
    functionDepth: 10
    functionLinenumber: 2361
    functionLinenumberEnd: 2368
    functionName: PyMapping_HasKeyStringWithError
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyMapping_GetOptionalItemString
    - Py_XDECREF
    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:2374,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2370
    functionDepth: 9
    functionLinenumber: 2370
    functionLinenumberEnd: 2377
    functionName: PyMapping_HasKeyWithError
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyMapping_GetOptionalItem
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int PyMapping_HasKeyWithError(PyObject *obj, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2387,1
    - Dst: PyMapping_GetOptionalItemString
      Src: /src/cpython/Objects/abstract.c:2391,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/abstract.c:2394,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2379
    functionDepth: 10
    functionLinenumber: 2379
    functionLinenumberEnd: 2402
    functionName: PyMapping_HasKeyString
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyMapping_GetOptionalItemString
    - PyErr_FormatUnraisable
    - Py_XDECREF
    - null_error
    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:2412,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/abstract.c:2416,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/abstract.c:2419,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/abstract.c:2425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2404
    functionDepth: 9
    functionLinenumber: 2404
    functionLinenumberEnd: 2427
    functionName: PyMapping_HasKey
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyMapping_GetOptionalItem
    - PyErr_FormatUnraisable
    - Py_XDECREF
    - null_error
    linkageType: ''
    returnType: int
    signature: int PyMapping_HasKey(PyObject *obj, PyObject *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2437,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/abstract.c:2438,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/abstract.c:2439,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/abstract.c:2442,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2444,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:2445,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/abstract.c:2446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2453,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/abstract.c:2454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - o
    - meth
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (o != NULL)
      pos:
        line_end: 2436
        line_start: 2436
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2457
      start: 2432
    functionDepth: 2
    functionLinenumber: 2432
    functionLinenumberEnd: 2457
    functionName: method_output_as_list
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PySequence_List
    - _PyErr_ExceptionMatches
    - PyObject_GetIter
    - _PyThreadState_GET
    - assert
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyList_CheckExact
    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:2463,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/abstract.c:2465,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/abstract.c:2466,1
    - Dst: method_output_as_list
      Src: /src/cpython/Objects/abstract.c:2468,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2459
    functionDepth: 5
    functionLinenumber: 2459
    functionLinenumberEnd: 2469
    functionName: PyMapping_Keys
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 6
    functionsReached:
    - method_output_as_list
    - PyDict_Keys
    - null_error
    - PyDict_CheckExact
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Keys(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2475,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/abstract.c:2477,1
    - Dst: PyDict_Items
      Src: /src/cpython/Objects/abstract.c:2478,1
    - Dst: method_output_as_list
      Src: /src/cpython/Objects/abstract.c:2480,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2471
    functionDepth: 5
    functionLinenumber: 2471
    functionLinenumberEnd: 2481
    functionName: PyMapping_Items
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - method_output_as_list
    - PyDict_Items
    - null_error
    - PyDict_CheckExact
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Items(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/cpython/Objects/abstract.c:2487,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/abstract.c:2489,1
    - Dst: PyDict_Values
      Src: /src/cpython/Objects/abstract.c:2490,1
    - Dst: method_output_as_list
      Src: /src/cpython/Objects/abstract.c:2492,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2483
    functionDepth: 5
    functionLinenumber: 2483
    functionLinenumberEnd: 2493
    functionName: PyMapping_Values
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - PyDict_Values
    - method_output_as_list
    - null_error
    - PyDict_CheckExact
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Values(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/abstract.c:2526,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2526,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/abstract.c:2527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2521
    functionDepth: 2
    functionLinenumber: 2521
    functionLinenumberEnd: 2532
    functionName: abstract_get_bases
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PyTuple_Check
    - 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:2544,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/abstract.c:2552,1
    - Dst: abstract_get_bases
      Src: /src/cpython/Objects/abstract.c:2552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2554,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:2558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2560,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/abstract.c:2565,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2570,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Objects/abstract.c:2571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2572,1
    - Dst: abstract_issubclass
      Src: /src/cpython/Objects/abstract.c:2576,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/abstract.c:2576,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/abstract.c:2581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2582,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (n >= 2)
      pos:
        line_end: 2569
        line_start: 2569
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2584
      start: 2535
    functionDepth: 3
    functionLinenumber: 2535
    functionLinenumberEnd: 2584
    functionName: abstract_issubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - _Py_EnterRecursiveCall
    - assert
    - Py_XSETREF
    - abstract_issubclass
    - abstract_get_bases
    - _Py_LeaveRecursiveCall
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - PyTuple_GET_SIZE
    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:2589,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2592,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2593,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/abstract.c:2594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cls
    - error
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2586
    functionDepth: 3
    functionLinenumber: 2586
    functionLinenumberEnd: 2600
    functionName: check_class
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - abstract_get_bases
    - _PyErr_SetString
    - _PyErr_Occurred
    - _PyThreadState_GET
    - Py_DECREF
    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:2607,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/abstract.c:2608,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/abstract.c:2610,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2610,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2612,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/abstract.c:2612,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/abstract.c:2613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2620,1
    - Dst: check_class
      Src: /src/cpython/Objects/abstract.c:2625,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/abstract.c:2628,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2628,1
    - Dst: abstract_issubclass
      Src: /src/cpython/Objects/abstract.c:2630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2602
    functionDepth: 4
    functionLinenumber: 2602
    functionLinenumberEnd: 2636
    functionName: object_isinstance
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyType_IsSubtype
    - check_class
    - PyType_Check
    - abstract_issubclass
    - PyObject_GetOptionalAttr
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    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:2642,1
    - Dst: PyType_CheckExact
      Src: /src/cpython/Objects/abstract.c:2647,1
    - Dst: object_isinstance
      Src: /src/cpython/Objects/abstract.c:2648,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/abstract.c:2651,1
    - Dst: _Py_union_args
      Src: /src/cpython/Objects/abstract.c:2652,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/abstract.c:2655,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2658,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:2661,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/abstract.c:2664,1
    - Dst: object_recursive_isinstance
      Src: /src/cpython/Objects/abstract.c:2665,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2671,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/abstract.c:2675,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2675,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2678,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/abstract.c:2682,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2684,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/abstract.c:2689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2690,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2694,1
    - Dst: object_isinstance
      Src: /src/cpython/Objects/abstract.c:2699,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - tstate
    - inst
    - cls
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2638
    functionDepth: 5
    functionLinenumber: 2638
    functionLinenumberEnd: 2700
    functionName: object_recursive_isinstance
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - PyType_CheckExact
    - object_recursive_isinstance
    - Py_IS_TYPE
    - _PyObject_LookupSpecial
    - PyObject_IsTrue
    - _PyErr_Occurred
    - object_isinstance
    - _Py_LeaveRecursiveCallTstate
    - _PyUnion_Check
    - PyTuple_Check
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyObject_CallOneArg
    - _Py_EnterRecursiveCallTstate
    - _Py_union_args
    - _Py_ID
    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:2706,1
    - Dst: object_recursive_isinstance
      Src: /src/cpython/Objects/abstract.c:2707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2703
    functionDepth: 6
    functionLinenumber: 2703
    functionLinenumberEnd: 2708
    functionName: PyObject_IsInstance
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 14
    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:2714,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/abstract.c:2714,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/abstract.c:2716,1
    - Dst: check_class
      Src: /src/cpython/Objects/abstract.c:2718,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/abstract.c:2722,1
    - Dst: check_class
      Src: /src/cpython/Objects/abstract.c:2722,1
    - Dst: abstract_issubclass
      Src: /src/cpython/Objects/abstract.c:2728,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2711
    functionDepth: 4
    functionLinenumber: 2711
    functionLinenumberEnd: 2729
    functionName: recursive_issubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyType_IsSubtype
    - check_class
    - PyType_Check
    - abstract_issubclass
    - _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:2737,1
    - Dst: recursive_issubclass
      Src: /src/cpython/Objects/abstract.c:2741,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/abstract.c:2744,1
    - Dst: _Py_union_args
      Src: /src/cpython/Objects/abstract.c:2745,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/abstract.c:2748,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2750,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/abstract.c:2753,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/abstract.c:2756,1
    - Dst: object_issubclass
      Src: /src/cpython/Objects/abstract.c:2757,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2762,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/abstract.c:2766,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2766,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2770,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/abstract.c:2773,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Objects/abstract.c:2774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2775,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/abstract.c:2777,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/abstract.c:2778,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2782,1
    - Dst: recursive_issubclass
      Src: /src/cpython/Objects/abstract.c:2787,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - tstate
    - derived
    - cls
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2731
    functionDepth: 5
    functionLinenumber: 2731
    functionLinenumberEnd: 2788
    functionName: object_issubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - PyObject_CallOneArg
    - PyType_CheckExact
    - _PyObject_LookupSpecial
    - PyObject_IsTrue
    - _PyErr_Occurred
    - object_issubclass
    - _Py_LeaveRecursiveCallTstate
    - PyTuple_Check
    - _PyUnion_Check
    - recursive_issubclass
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _Py_EnterRecursiveCallTstate
    - _Py_union_args
    - _Py_ID
    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:2794,1
    - Dst: object_issubclass
      Src: /src/cpython/Objects/abstract.c:2795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2791
    functionDepth: 6
    functionLinenumber: 2791
    functionLinenumberEnd: 2796
    functionName: PyObject_IsSubclass
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 6
    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:2802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2799
    functionDepth: 5
    functionLinenumber: 2799
    functionLinenumberEnd: 2803
    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:2808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2805
    functionDepth: 5
    functionLinenumber: 2805
    functionLinenumberEnd: 2809
    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:2815,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/abstract.c:2820,1
    - Dst: PySeqIter_New
      Src: /src/cpython/Objects/abstract.c:2821,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2822,1
    - Dst: PyIter_Check
      Src: /src/cpython/Objects/abstract.c:2826,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:2827,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:2830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2834
      start: 2812
    functionDepth: 2
    functionLinenumber: 2812
    functionLinenumberEnd: 2834
    functionName: PyObject_GetIter
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 58
    functionsReached:
    - PySequence_Check
    - Py_SETREF
    - type_error
    - PyIter_Check
    - PyErr_Format
    - PySeqIter_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetIter(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2838,1
    - Dst: type_error
      Src: /src/cpython/Objects/abstract.c:2842,1
    - Dst: PyAIter_Check
      Src: /src/cpython/Objects/abstract.c:2846,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:2847,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/abstract.c:2850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2836
    functionDepth: 2
    functionLinenumber: 2836
    functionLinenumberEnd: 2853
    functionName: PyObject_GetAIter
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - type_error
    - PyErr_Format
    - Py_TYPE
    - PyAIter_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetAIter(PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2855
    functionDepth: 0
    functionLinenumber: 2855
    functionLinenumberEnd: 2861
    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:2866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2863
    functionDepth: 0
    functionLinenumber: 2863
    functionLinenumberEnd: 2870
    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:2875,1
    - Dst: tp_iternext
      Src: /src/cpython/Objects/abstract.c:2876,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/abstract.c:2880,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/abstract.c:2883,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Objects/abstract.c:2886,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Objects/abstract.c:2887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - iter
    - item
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2872
    functionDepth: 1
    functionLinenumber: 2872
    functionLinenumberEnd: 2893
    functionName: iternext
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 12
    functionsReached:
    - _PyErr_ExceptionMatches
    - _PyErr_Occurred
    - _PyThreadState_GET
    - _PyErr_Clear
    - tp_iternext
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int iternext(PyObject *iter, PyObject **item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2902,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2903,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2905,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/abstract.c:2907,1
    - Dst: iternext
      Src: /src/cpython/Objects/abstract.c:2911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - iter
    - item
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 2901
        line_start: 2901
        source_file: /src/cpython/Objects/abstract.c
    - condition: (item != NULL)
      pos:
        line_end: 2902
        line_start: 2902
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2912
      start: 2899
    functionDepth: 2
    functionLinenumber: 2899
    functionLinenumberEnd: 2912
    functionName: PyIter_NextItem
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - iternext
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int PyIter_NextItem(PyObject *iter, PyObject **item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iternext
      Src: /src/cpython/Objects/abstract.c:2926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2922
    functionDepth: 2
    functionLinenumber: 2922
    functionLinenumberEnd: 2928
    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:2933,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2934,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2935,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2935,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2936,1
    - Dst: am_send
      Src: /src/cpython/Objects/abstract.c:2936,1
    - Dst: assert
      Src: /src/cpython/Objects/abstract.c:2937,1
    - Dst: _Py_CheckSlotResult
      Src: /src/cpython/Objects/abstract.c:2937,1
    - Dst: PyIter_Check
      Src: /src/cpython/Objects/abstract.c:2940,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/abstract.c:2941,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Objects/abstract.c:2944,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/abstract.c:2944,1
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/cpython/Objects/abstract.c:2949,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - iter
    - arg
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (arg != NULL)
      pos:
        line_end: 2932
        line_start: 2932
        source_file: /src/cpython/Objects/abstract.c
    - condition: (result != NULL)
      pos:
        line_end: 2933
        line_start: 2933
        source_file: /src/cpython/Objects/abstract.c
    - condition: (_Py_CheckSlotResult(iter, "am_send", res != PYGEN_ERROR))
      pos:
        line_end: 2936
        line_start: 2936
        source_file: /src/cpython/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2953
      start: 2930
    functionDepth: 1
    functionLinenumber: 2930
    functionLinenumberEnd: 2953
    functionName: PyIter_Send
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - _Py_CheckSlotResult
    - PyObject_CallMethodOneArg
    - PyIter_Check
    - _PyGen_FetchStopIterationValue
    - assert
    - am_send
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PySendResult
    signature: PySendResult PyIter_Send(PyObject *iter, PyObject *arg, PyObject **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyIter_Send
      Src: /src/cpython/Objects/abstract.c:2959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iter
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2955
    functionDepth: 2
    functionLinenumber: 2955
    functionLinenumberEnd: 2961
    functionName: _PyIter_Send
    functionSourceFile: /src/cpython/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyIter_Send
    linkageType: ''
    returnType: PySendResultPair
    signature: PySendResultPair _PyIter_Send(PyObject *iter, PyObject *arg)
  - 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: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    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: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    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: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: _PyAsyncGenObject_CAST
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyAsyncGenObject_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_yield
      Src: /src/cpython/Objects/genobject.c:46,1
    - Dst: _Py_atomic_load_int8_relaxed
      Src: /src/cpython/Objects/genobject.c:47,1
    - Dst: _Py_atomic_compare_exchange_int8
      Src: /src/cpython/Objects/genobject.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - gen
    - expected
    - state
    argTypes:
    - PyGenObject*
    - int8_t*
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: gen_try_set_frame_state
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_int8
    - _Py_atomic_load_int8_relaxed
    - _Py_yield
    linkageType: ''
    returnType: bool
    signature: bool gen_try_set_frame_state(PyGenObject *gen, int8_t *expected, int8_t
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - gen
    - ','
    - expected
    - ','
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: _Py_GEN_TRY_SET_FRAME_STATE
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_GEN_TRY_SET_FRAME_STATE(gen, expected, state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - gen
    - ','
    - expected
    - ','
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: _Py_GEN_TRY_SET_FRAME_STATE
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_GEN_TRY_SET_FRAME_STATE(gen, expected, state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/genobject.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    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:75,1
    - Dst: PyGen_Check
      Src: /src/cpython/Objects/genobject.c:75,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:76,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genobject.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts:
    - condition: (PyGen_Check(gen))
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: PyGen_GetCode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - _PyGen_GetCode
    - Py_INCREF
    - PyGen_Check
    - assert
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyGen_GetCode(PyGenObject *gen)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:84,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:85,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:86,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:89,1
    - Dst: _PyFrame_Traverse
      Src: /src/cpython/Objects/genobject.c:91,1
    - Dst: _Py_VISIT_STACKREF
      Src: /src/cpython/Objects/genobject.c:99,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:103,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: 89
        line_start: 88
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 105
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 105
    functionName: gen_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _Py_VISIT_STACKREF
    - _PyGen_CAST
    - Py_VISIT
    - assert
    - _PyFrame_Traverse
    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:112,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:117,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/genobject.c:122,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/genobject.c:124,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/genobject.c:126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:130,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/genobject.c:133,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/genobject.c:139,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:143,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:143,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:144,1
    - Dst: _PyErr_WarnUnawaitedCoroutine
      Src: /src/cpython/Objects/genobject.c:147,1
    - Dst: gen_close
      Src: /src/cpython/Objects/genobject.c:150,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:152,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/genobject.c:153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:158,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/genobject.c:163,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyGen_GetCode(gen) != NULL)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 164
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 164
    functionName: gen_finalize
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_GetCode
    - PyAsyncGen_CheckExact
    - _PyErr_WarnUnawaitedCoroutine
    - FRAME_STATE_FINISHED
    - gen_close
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    linkageType: ''
    returnType: void
    signature: void gen_finalize(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:169,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:169,1
    - Dst: _PyFrame_ClearExceptCode
      Src: /src/cpython/Objects/genobject.c:172,1
    - Dst: _PyErr_ClearExcState
      Src: /src/cpython/Objects/genobject.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts:
    - condition: (FT_ATOMIC_LOAD_INT8_RELAXED(gen->gi_frame_state) == FRAME_CLEARED)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: gen_clear_frame
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_ClearExceptCode
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - _PyErr_ClearExcState
    - assert
    linkageType: ''
    returnType: void
    signature: void gen_clear_frame(PyGenObject *gen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:179,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:185,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:189,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:190,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:194,1
    - Dst: _Py_GEN_TRY_SET_FRAME_STATE
      Src: /src/cpython/Objects/genobject.c:195,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:197,1
    - Dst: _PyErr_WarnUnawaitedCoroutine
      Src: /src/cpython/Objects/genobject.c:198,1
    - Dst: gen_clear_frame
      Src: /src/cpython/Objects/genobject.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts:
    - condition: (frame_state == FRAME_CREATED)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 202
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 202
    functionName: _PyGen_ClearFrame
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - _PyGen_GetCode
    - _PyErr_WarnUnawaitedCoroutine
    - PyErr_SetString
    - FRAME_STATE_FINISHED
    - gen_clear_frame
    - FRAME_STATE_SUSPENDED
    - _Py_GEN_TRY_SET_FRAME_STATE
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyGen_ClearFrame(PyGenObject *gen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:207,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:209,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/genobject.c:211,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:213,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/genobject.c:215,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:218,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:219,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:223,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:225,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:226,1
    - Dst: gen_clear_frame
      Src: /src/cpython/Objects/genobject.c:230,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:232,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/genobject.c:233,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:234,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:235,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/genobject.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (gen->gi_exc_state.exc_value == NULL)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 238
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 238
    functionName: gen_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - PyCoro_CheckExact
    - PyStackRef_CLEAR
    - _PyGen_CAST
    - assert
    - _PyObject_GC_TRACK
    - PyAsyncGen_CheckExact
    - Py_CLEAR
    - gen_clear_frame
    - PyObject_GC_Del
    - FT_CLEAR_WEAKREFS
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void gen_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:244,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:247,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: gen_raise_already_executing_error
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyCoro_CheckExact
    - PyErr_SetString
    - PyAsyncGen_CheckExact
    linkageType: ''
    returnType: void
    signature: void gen_raise_already_executing_error(PyGenObject *gen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:261,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:261,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:263,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Objects/genobject.c:268,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/genobject.c:268,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:275,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:275,1
    - Dst: _PyErr_ChainStackItem
      Src: /src/cpython/Objects/genobject.c:276,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Objects/genobject.c:279,1
    - Dst: _PyEval_EvalFrame
      Src: /src/cpython/Objects/genobject.c:280,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:281,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:283,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:284,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:285,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:295,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:295,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:297,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:297,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:303,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:304,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:305,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:305,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:310,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:310,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:311,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:313,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:317,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:317,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:318,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:318,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - gen
    - arg
    - presult
    - exc
    argTypes:
    - PyGenObject*
    - PyObject*
    - PyObject**
    - int
    assertStmts:
    - condition: (gen->gi_frame_state != FRAME_EXECUTING)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Objects/genobject.c
    - condition: (gen->gi_exc_state.previous_item == NULL)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/cpython/Objects/genobject.c
    - condition: (result != NULL && !_PyErr_Occurred(tstate))
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Objects/genobject.c
    - condition: (return_kind == GENERATOR_RETURN)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Objects/genobject.c
    - condition: (tstate->exc_info == prev_exc_info)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/cpython/Objects/genobject.c
    - condition: (FRAME_STATE_SUSPENDED(gen->gi_frame_state))
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/cpython/Objects/genobject.c
    - condition: (!PyErr_ExceptionMatches(PyExc_StopIteration))
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/cpython/Objects/genobject.c
    - condition: (FT_ATOMIC_LOAD_INT8_RELAXED(gen->gi_frame_state) == FRAME_EXECUTING)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/cpython/Objects/genobject.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/cpython/Objects/genobject.c
    - condition: (frame->previous == NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/cpython/Objects/genobject.c
    - condition: (result == Py_None || !PyAsyncGen_CheckExact(gen))
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/cpython/Objects/genobject.c
    - condition: (FT_ATOMIC_LOAD_INT8_RELAXED(gen->gi_frame_state) == FRAME_CLEARED)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/cpython/Objects/genobject.c
    - condition: "(!PyAsyncGen_CheckExact(gen) ||\n            !PyErr_ExceptionMatches(PyExc_StopAsyncIteration))"
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/cpython/Objects/genobject.c
    - condition: (gen->gi_exc_state.exc_value == NULL)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 324
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 324
    functionName: gen_send_ex2
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - PyStackRef_FromPyObjectNew
    - PyAsyncGen_CheckExact
    - _PyErr_Occurred
    - _PyEval_EvalFrame
    - Py_CLEAR
    - _PyThreadState_GET
    - _PyErr_ChainStackItem
    - FRAME_STATE_SUSPENDED
    - PyErr_ExceptionMatches
    - assert
    - _PyFrame_StackPush
    - EVAL_CALL_STAT_INC
    linkageType: ''
    returnType: PySendResult
    signature: PySendResult gen_send_ex2(PyGenObject *gen, PyObject *arg, PyObject
      **presult, int exc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:332,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:337,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:340,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:344,1
    - Dst: gen_raise_already_executing_error
      Src: /src/cpython/Objects/genobject.c:348,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:351,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:352,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:356,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:369,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:370,1
    - Dst: _Py_GEN_TRY_SET_FRAME_STATE
      Src: /src/cpython/Objects/genobject.c:371,1
    - Dst: gen_send_ex2
      Src: /src/cpython/Objects/genobject.c:373,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - gen
    - arg
    - presult
    argTypes:
    - PyGenObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: "((frame_state == FRAME_CREATED) ||\n               FRAME_STATE_SUSPENDED(frame_state))"
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 374
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 374
    functionName: gen_send_ex
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - PyCoro_CheckExact
    - gen_send_ex2
    - PyAsyncGen_CheckExact
    - PyErr_SetString
    - FRAME_STATE_FINISHED
    - gen_raise_already_executing_error
    - FRAME_STATE_SUSPENDED
    - _Py_GEN_TRY_SET_FRAME_STATE
    - assert
    linkageType: ''
    returnType: PySendResult
    signature: PySendResult gen_send_ex(PyGenObject *gen, PyObject *arg, PyObject
      **presult)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:379,1
    - Dst: gen_send_ex
      Src: /src/cpython/Objects/genobject.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: PyGen_am_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - gen_send_ex
    linkageType: ''
    returnType: PySendResult
    signature: PySendResult PyGen_am_send(PyObject *self, PyObject *arg, PyObject
      **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:386,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:387,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:388,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:391,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Objects/genobject.c:394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - gen
    - result
    argTypes:
    - PyGenObject*
    - PyObject*
    assertStmts:
    - condition: (result == Py_None)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 398
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 398
    functionName: gen_set_stop_iteration
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyAsyncGen_CheckExact
    - _PyGen_SetStopIterationValue
    - assert
    - PyErr_SetNone
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_set_stop_iteration(PyGenObject *gen, PyObject *result)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:408,1
    - Dst: gen_send_ex
      Src: /src/cpython/Objects/genobject.c:409,1
    - Dst: gen_set_stop_iteration
      Src: /src/cpython/Objects/genobject.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: gen_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - gen_send_ex
    - gen_set_stop_iteration
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_send(PyObject *op, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:428,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:428,1
    - Dst: gen_close
      Src: /src/cpython/Objects/genobject.c:429,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genobject.c:435,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:435,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/genobject.c:436,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/genobject.c:440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:441,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:446,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - yf
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 448
    functionName: gen_close_iter
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyCoro_CheckExact
    - Py_DECREF
    - gen_close
    - PyObject_GetOptionalAttr
    - Py_XDECREF
    - PyGen_CheckExact
    - _PyObject_CallNoArgs
    - PyErr_FormatUnraisable
    - _Py_ID
    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:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - instr
    argTypes:
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 460
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:465,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:467,1
    - Dst: _Py_GEN_TRY_SET_FRAME_STATE
      Src: /src/cpython/Objects/genobject.c:471,1
    - Dst: gen_clear_frame
      Src: /src/cpython/Objects/genobject.c:474,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:478,1
    - Dst: gen_raise_already_executing_error
      Src: /src/cpython/Objects/genobject.c:483,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:487,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:487,1
    - Dst: _Py_GEN_TRY_SET_FRAME_STATE
      Src: /src/cpython/Objects/genobject.c:488,1
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Objects/genobject.c:493,1
    - Dst: _PyFrame_StackPeek
      Src: /src/cpython/Objects/genobject.c:493,1
    - Dst: gen_close_iter
      Src: /src/cpython/Objects/genobject.c:494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:495,1
    - Dst: is_resume
      Src: /src/cpython/Objects/genobject.c:498,1
    - Dst: _PyEval_NoToolsForUnwind
      Src: /src/cpython/Objects/genobject.c:499,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:499,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:506,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Objects/genobject.c:507,1
    - Dst: gen_clear_frame
      Src: /src/cpython/Objects/genobject.c:508,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:513,1
    - Dst: gen_send_ex2
      Src: /src/cpython/Objects/genobject.c:517,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:519,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:519,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:524,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:529,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:530,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:533,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:533,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:535,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:536,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (FRAME_STATE_SUSPENDED(frame_state))
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Objects/genobject.c
    - condition: ((oparg & RESUME_OPARG_LOCATION_MASK) != RESUME_AT_FUNC_START)
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/cpython/Objects/genobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 518
        line_start: 518
        source_file: /src/cpython/Objects/genobject.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 540
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 540
    functionName: gen_close
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - gen_close_iter
    - gen_send_ex2
    - FRAME_STATE_FINISHED
    - gen_clear_frame
    - _PyThreadState_GET
    - _PyFrame_StackPeek
    - assert
    - PyErr_SetNone
    - PyErr_Occurred
    - PyStackRef_AsPyObjectNew
    - PyCoro_CheckExact
    - PyErr_SetString
    - PyErr_Clear
    - FRAME_STATE_SUSPENDED
    - _Py_GEN_TRY_SET_FRAME_STATE
    - Py_DECREF
    - _PyEval_NoToolsForUnwind
    - _PyGen_CAST
    - PyAsyncGen_CheckExact
    - gen_raise_already_executing_error
    - FT_ATOMIC_STORE_INT8_RELEASE
    - is_resume
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_close(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Objects/genobject.c:552,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:553,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genobject.c:558,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/genobject.c:559,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/genobject.c:560,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/genobject.c:562,1
    - Dst: PyErr_NormalizeException
      Src: /src/cpython/Objects/genobject.c:563,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/genobject.c:565,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:568,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/genobject.c:574,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:575,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Objects/genobject.c:575,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Objects/genobject.c:579,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genobject.c:584,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genobject.c:587,1
    - Dst: PyErr_Restore
      Src: /src/cpython/Objects/genobject.c:591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:596,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:597,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:598,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - typ
    - val
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 600
    functionName: gen_set_exception
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyExceptionClass_Check
    - Py_XSETREF
    - PyExceptionInstance_Class
    - PyErr_SetString
    - Py_NewRef
    - PyErr_Restore
    - PyException_GetTraceback
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyTraceBack_Check
    - PyErr_NormalizeException
    - Py_TYPE
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int gen_set_exception(PyObject *typ, PyObject *val, PyObject *tb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:605,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:605,1
    - Dst: gen_send_ex2
      Src: /src/cpython/Objects/genobject.c:608,1
    - Dst: gen_set_stop_iteration
      Src: /src/cpython/Objects/genobject.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts:
    - condition: (FT_ATOMIC_LOAD_INT8_RELAXED(gen->gi_frame_state) == FRAME_EXECUTING)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 612
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 612
    functionName: gen_throw_current_exception
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - gen_send_ex2
    - gen_set_stop_iteration
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_throw_current_exception(PyGenObject *gen)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:627,1
    - Dst: gen_raise_already_executing_error
      Src: /src/cpython/Objects/genobject.c:630,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:634,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:635,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:637,1
    - Dst: gen_set_exception
      Src: /src/cpython/Objects/genobject.c:642,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:646,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:647,1
    - Dst: _Py_GEN_TRY_SET_FRAME_STATE
      Src: /src/cpython/Objects/genobject.c:648,1
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Objects/genobject.c:652,1
    - Dst: _PyFrame_StackPeek
      Src: /src/cpython/Objects/genobject.c:652,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/genobject.c:655,1
    - Dst: gen_close_iter
      Src: /src/cpython/Objects/genobject.c:662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:663,1
    - Dst: gen_throw_current_exception
      Src: /src/cpython/Objects/genobject.c:665,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:669,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:670,1
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:671,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:671,1
    - Dst: _gen_throw
      Src: /src/cpython/Objects/genobject.c:682,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genobject.c:690,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:691,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Objects/genobject.c:692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:696,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/genobject.c:703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:708,1
    - Dst: gen_throw_current_exception
      Src: /src/cpython/Objects/genobject.c:710,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Objects/genobject.c:712,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:717,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:717,1
    - Dst: gen_set_exception
      Src: /src/cpython/Objects/genobject.c:718,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Objects/genobject.c:719,1
    - Dst: gen_throw_current_exception
      Src: /src/cpython/Objects/genobject.c:722,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 5
    argNames:
    - gen
    - close_on_genexit
    - typ
    - val
    - tb
    argTypes:
    - PyGenObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Objects/genobject.c
    - condition: (FT_ATOMIC_LOAD_INT8_RELAXED(gen->gi_frame_state) == FRAME_EXECUTING)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/cpython/Objects/genobject.c
    - condition: "((frame_state == FRAME_CREATED) ||\n               FRAME_STATE_SUSPENDED(frame_state))"
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 723
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 723
    functionName: _gen_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - gen_close_iter
    - FRAME_STATE_FINISHED
    - _PyThreadState_GET
    - _PyFrame_StackPeek
    - assert
    - gen_throw_current_exception
    - PyObject_GetOptionalAttr
    - PyStackRef_AsPyObjectNew
    - PyGen_CheckExact
    - _gen_throw
    - PyCoro_CheckExact
    - PyErr_SetString
    - PyObject_CallFunctionObjArgs
    - FRAME_STATE_SUSPENDED
    - _Py_GEN_TRY_SET_FRAME_STATE
    - Py_DECREF
    - gen_raise_already_executing_error
    - FT_ATOMIC_STORE_INT8_RELEASE
    - gen_set_exception
    - PyErr_GivenExceptionMatches
    - _Py_ID
    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:729,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/genobject.c:734,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/genobject.c:738,1
    - Dst: _gen_throw
      Src: /src/cpython/Objects/genobject.c:753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - op
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 754
    functionName: gen_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - _PyGen_CAST
    - _PyArg_CheckPositional
    - _gen_throw
    - PyErr_WarnEx
    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:760,1
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Objects/genobject.c:760,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:760,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:761,1
    - Dst: gen_send_ex
      Src: /src/cpython/Objects/genobject.c:764,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Objects/genobject.c:766,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyGen_CheckExact(self) || PyCoro_CheckExact(self))
      pos:
        line_end: 759
        line_start: 759
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 771
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 771
    functionName: gen_iternext
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyCoro_CheckExact
    - _PyGen_CAST
    - _PyGen_SetStopIterationValue
    - Py_CLEAR
    - assert
    - PyGen_CheckExact
    - gen_send_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_iternext(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:782,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:782,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/genobject.c:789,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/genobject.c:790,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/genobject.c:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 781
        line_start: 781
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 796
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 796
    functionName: _PyGen_SetStopIterationValue
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 3
    functionsReached:
    - assert
    - PyErr_SetRaisedException
    - PyObject_CallNoArgs
    - PyErr_Occurred
    - PyObject_CallOneArg
    linkageType: ''
    returnType: int
    signature: int _PyGen_SetStopIterationValue(PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:811,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/genobject.c:812,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:814,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genobject.c:815,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pvalue
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 823
    functionName: _PyGen_FetchStopIterationValue
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int _PyGen_FetchStopIterationValue(PyObject **pvalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:828,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/genobject.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 831
    functionName: gen_repr
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:836,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/genobject.c:837,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 839
    functionName: gen_get_name
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - Py_NewRef
    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:844,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/genobject.c:847,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:848,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/genobject.c:852,1
    - Dst: _PyObject_XSetRefDelayed
      Src: /src/cpython/Objects/genobject.c:855,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:855,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/genobject.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 858
    functionName: gen_set_name
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - _PyGen_CAST
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyUnicode_Check
    - _PyObject_XSetRefDelayed
    - Py_NewRef
    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:863,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/genobject.c:864,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 866
    functionName: gen_get_qualname
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - Py_NewRef
    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:871,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/genobject.c:874,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:875,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/genobject.c:879,1
    - Dst: _PyObject_XSetRefDelayed
      Src: /src/cpython/Objects/genobject.c:882,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:882,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/genobject.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 885
    functionName: gen_set_qualname
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - _PyGen_CAST
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyUnicode_Check
    - _PyObject_XSetRefDelayed
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int gen_set_qualname(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:890,1
    - Dst: _Py_atomic_load_int8_relaxed
      Src: /src/cpython/Objects/genobject.c:892,1
    - Dst: _Py_GEN_TRY_SET_FRAME_STATE
      Src: /src/cpython/Objects/genobject.c:899,1
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Objects/genobject.c:901,1
    - Dst: _PyFrame_StackPeek
      Src: /src/cpython/Objects/genobject.c:901,1
    - Dst: _Py_atomic_store_int8_release
      Src: /src/cpython/Objects/genobject.c:902,1
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Objects/genobject.c:909,1
    - Dst: _PyFrame_StackPeek
      Src: /src/cpython/Objects/genobject.c:909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 911
    functionName: gen_getyieldfrom
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int8_relaxed
    - _PyGen_CAST
    - _Py_atomic_store_int8_release
    - PyStackRef_AsPyObjectNew
    - _Py_GEN_TRY_SET_FRAME_STATE
    - _PyFrame_StackPeek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getyieldfrom(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:917,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 920
    functionName: gen_getrunning
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - FT_ATOMIC_LOAD_INT8_RELAXED
    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:925,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:926,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/genobject.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 928
    functionName: gen_getsuspended
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - FRAME_STATE_SUSPENDED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getsuspended(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:933,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:934,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:937,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:938,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:939,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:940,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:941,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:942,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:945,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/genobject.c:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: "(frame_state >= 0 &&\n           (size_t)frame_state < Py_ARRAY_LENGTH(state_strings))"
      pos:
        line_end: 945
        line_start: 944
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 948
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 948
    functionName: gen_getstate
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - _PyGen_CAST
    - Py_ARRAY_LENGTH
    - assert
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getstate(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/genobject.c:953,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:956,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:957,1
    - Dst: _Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:961,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Objects/genobject.c:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - gen
    - name
    argTypes:
    - PyGenObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 962
    functionName: _gen_getframe
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - PySys_Audit
    - _Py_XNewRef
    - FRAME_STATE_FINISHED
    - _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:967,1
    - Dst: _gen_getframe
      Src: /src/cpython/Objects/genobject.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 969
    functionName: gen_getframe
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _PyGen_CAST
    - _gen_getframe
    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:974,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:977,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gen
    - name
    argTypes:
    - PyGenObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 971
    functionDepth: 2
    functionLinenumber: 971
    functionLinenumberEnd: 978
    functionName: _gen_getcode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_NewRef
    - _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:983,1
    - Dst: _gen_getcode
      Src: /src/cpython/Objects/genobject.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 980
    functionDepth: 3
    functionLinenumber: 980
    functionLinenumberEnd: 985
    functionName: gen_getcode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _PyGen_CAST
    - _gen_getcode
    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:1010,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:1013,1
    - Dst: _PyFrame_NumSlotsForCodeObject
      Src: /src/cpython/Objects/genobject.c:1014,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/genobject.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1016
    functionName: gen_sizeof
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - _PyGen_GetCode
    - PyLong_FromSsize_t
    - _PyFrame_NumSlotsForCodeObject
    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:1095,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/genobject.c:1096,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1105,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1106,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1107,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1108,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - type
    - func
    argTypes:
    - PyTypeObject*
    - PyFunctionObject*
    assertStmts:
    - condition: (func->func_name != NULL)
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/cpython/Objects/genobject.c
    - condition: (func->func_qualname != NULL)
      pos:
        line_end: 1106
        line_start: 1106
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1111
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1111
    functionName: make_gen
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_NewVar
    - _PyObject_GC_TRACK
    - _PyFrame_NumSlotsForCodeObject
    - assert
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_gen(PyTypeObject *type, PyFunctionObject *func)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1118,1
    - Dst: make_gen
      Src: /src/cpython/Objects/genobject.c:1120,1
    - Dst: make_gen
      Src: /src/cpython/Objects/genobject.c:1124,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1135,1
    - Dst: make_gen
      Src: /src/cpython/Objects/genobject.c:1136,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:1140,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1147,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1148,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/genobject.c:1148,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Objects/genobject.c:1149,1
    - Dst: _PyCoro_ComputeOrigin
      Src: /src/cpython/Objects/genobject.c:1150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyFunctionObject*
    assertStmts:
    - condition: (coro_flags)
      pos:
        line_end: 1117
        line_start: 1117
        source_file: /src/cpython/Objects/genobject.c
    - condition: (coro_flags == CO_COROUTINE)
      pos:
        line_end: 1134
        line_start: 1134
        source_file: /src/cpython/Objects/genobject.c
    - condition: (frame)
      pos:
        line_end: 1146
        line_start: 1146
        source_file: /src/cpython/Objects/genobject.c
    - condition: (_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 1147
        line_start: 1147
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1158
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1158
    functionName: _Py_MakeCoro
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_GetFirstComplete
    - _PyFrame_IsIncomplete
    - _PyThreadState_GET
    - assert
    - _PyCoro_ComputeOrigin
    - make_gen
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_MakeCoro(PyFunctionObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/genobject.c:1164,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/genobject.c:1166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1168,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1172,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1173,1
    - Dst: _PyFrame_Copy
      Src: /src/cpython/Objects/genobject.c:1175,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1177,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1180,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Objects/genobject.c:1180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1181,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1186,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1188,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:1188,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1190,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1192,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:1192,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:1193,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: 1171
        line_start: 1171
        source_file: /src/cpython/Objects/genobject.c
    - condition: (f->f_frame->owner == FRAME_OWNED_BY_FRAME_OBJECT)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/cpython/Objects/genobject.c
    - condition: (frame->frame_obj == f)
      pos:
        line_end: 1176
        line_start: 1176
        source_file: /src/cpython/Objects/genobject.c
    - condition: (PyObject_GC_IsTracked((PyObject *)f))
      pos:
        line_end: 1179
        line_start: 1179
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1195
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1195
    functionName: gen_new_with_qualname
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_NewVar
    - _PyFrame_GetCode
    - PyObject_GC_IsTracked
    - _PyGen_GetCode
    - _PyObject_GC_TRACK
    - assert
    - Py_DECREF
    - _PyFrame_Copy
    - Py_NewRef
    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:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1197
    functionDepth: 3
    functionLinenumber: 1197
    functionLinenumberEnd: 1201
    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:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1203
    functionDepth: 3
    functionLinenumber: 1203
    functionLinenumberEnd: 1207
    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: 1219
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1219
    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:1224,1
    - Dst: _PyGen_GetCode
      Src: /src/cpython/Objects/genobject.c:1225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1231
    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:1247,1
    - Dst: gen_is_coroutine
      Src: /src/cpython/Objects/genobject.c:1247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1249,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genobject.c:1252,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Objects/genobject.c:1259,1
    - Dst: gen_is_coroutine
      Src: /src/cpython/Objects/genobject.c:1259,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genobject.c:1262,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1265,1
    - Dst: PyIter_Check
      Src: /src/cpython/Objects/genobject.c:1266,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genobject.c:1267,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1270,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genobject.c:1276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1241
    functionDepth: 3
    functionLinenumber: 1241
    functionLinenumberEnd: 1280
    functionName: _PyCoro_GetAwaitableIter
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyCoro_CheckExact
    - PyIter_Check
    - Py_CLEAR
    - gen_is_coroutine
    - PyErr_Format
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCoro_GetAwaitableIter(PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroObject_CAST
      Src: /src/cpython/Objects/genobject.c:1285,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/genobject.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1288
    functionName: coro_repr
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyCoroObject_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genobject.c:1293,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1297,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:1298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1300
    functionName: coro_await
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_NewRef
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_await(PyObject *coro)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gen_getframe
      Src: /src/cpython/Objects/genobject.c:1305,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - coro
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1302
    functionDepth: 2
    functionLinenumber: 1302
    functionLinenumberEnd: 1306
    functionName: cr_getframe
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - _gen_getframe
    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:1311,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - coro
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1308
    functionDepth: 3
    functionLinenumber: 1308
    functionLinenumberEnd: 1312
    functionName: cr_getcode
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_CAST
    - _gen_getcode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cr_getcode(PyObject *coro, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:1317,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:1318,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1321,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1322,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1323,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1324,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1325,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1326,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1329,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/genobject.c:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: "(frame_state >= 0 &&\n           (size_t)frame_state < Py_ARRAY_LENGTH(state_strings))"
      pos:
        line_end: 1329
        line_start: 1328
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1332
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1332
    functionName: cr_getstate
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - _PyGen_CAST
    - Py_ARRAY_LENGTH
    - assert
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cr_getstate(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroWrapper_CAST
      Src: /src/cpython/Objects/genobject.c:1443,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:1444,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1445,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/genobject.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1447
    functionName: coro_wrapper_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - _PyCoroWrapper_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void coro_wrapper_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCoroWrapper_CAST
      Src: /src/cpython/Objects/genobject.c:1452,1
    - Dst: gen_iternext
      Src: /src/cpython/Objects/genobject.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1449
    functionDepth: 4
    functionLinenumber: 1449
    functionLinenumberEnd: 1454
    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:1459,1
    - Dst: gen_send
      Src: /src/cpython/Objects/genobject.c:1460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1456
    functionDepth: 4
    functionLinenumber: 1456
    functionLinenumberEnd: 1461
    functionName: coro_wrapper_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_send
    - _PyCoroWrapper_CAST
    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:1466,1
    - Dst: gen_throw
      Src: /src/cpython/Objects/genobject.c:1467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1463
    functionDepth: 5
    functionLinenumber: 1463
    functionLinenumberEnd: 1468
    functionName: coro_wrapper_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_throw
    - _PyCoroWrapper_CAST
    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:1473,1
    - Dst: gen_close
      Src: /src/cpython/Objects/genobject.c:1474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1470
    functionDepth: 4
    functionLinenumber: 1470
    functionLinenumberEnd: 1475
    functionName: coro_wrapper_close
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_close
    - _PyCoroWrapper_CAST
    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:1480,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1483
    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:1542,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/genobject.c:1546,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/genobject.c:1552,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Objects/genobject.c:1553,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genobject.c:1554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1557,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genobject.c:1560,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Objects/genobject.c:1561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - origin_depth
    - current_frame
    argTypes:
    - int
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1565
    functionName: _PyCoro_ComputeOrigin
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_GetCode
    - Py_BuildValue
    - PyTuple_SET_ITEM
    - Py_DECREF
    - _PyFrame_GetFirstComplete
    - PyUnstable_InterpreterFrame_GetLine
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCoro_ComputeOrigin(int origin_depth, _PyInterpreterFrame *current_frame)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gen_new_with_qualname
      Src: /src/cpython/Objects/genobject.c:1570,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:1575,1
    - Dst: _PyCoro_ComputeOrigin
      Src: /src/cpython/Objects/genobject.c:1581,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Objects/genobject.c:1581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1567
    functionDepth: 3
    functionLinenumber: 1567
    functionLinenumberEnd: 1590
    functionName: PyCoro_New
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetFrame
    - gen_new_with_qualname
    - _PyThreadState_GET
    - _PyCoro_ComputeOrigin
    - Py_DECREF
    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: 1616
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1616
    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: 1640
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1640
    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: 1643
      start: 1640
    functionDepth: 0
    functionLinenumber: 1640
    functionLinenumberEnd: 1643
    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:1648,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:1649,1
    - Dst: gen_traverse
      Src: /src/cpython/Objects/genobject.c:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1645
    functionDepth: 2
    functionLinenumber: 1645
    functionLinenumberEnd: 1651
    functionName: async_gen_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenObject_CAST
    - gen_traverse
    - Py_VISIT
    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:1657,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/genobject.c:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1660
    functionName: async_gen_repr
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenObject_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_repr(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/genobject.c:1676,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:1680,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genobject.c:1687,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/genobject.c:1688,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1697
    functionName: async_gen_init_hooks
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyThreadState_GET
    - Py_DECREF
    - 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:1703,1
    - Dst: async_gen_init_hooks
      Src: /src/cpython/Objects/genobject.c:1704,1
    - Dst: async_gen_asend_new
      Src: /src/cpython/Objects/genobject.c:1707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1700
    functionDepth: 2
    functionLinenumber: 1700
    functionLinenumberEnd: 1708
    functionName: async_gen_anext
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_asend_new
    - _PyAsyncGenObject_CAST
    - async_gen_init_hooks
    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:1715,1
    - Dst: async_gen_asend_new
      Src: /src/cpython/Objects/genobject.c:1718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1711
    functionDepth: 2
    functionLinenumber: 1711
    functionLinenumberEnd: 1719
    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:1726,1
    - Dst: async_gen_athrow_new
      Src: /src/cpython/Objects/genobject.c:1729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1722
    functionDepth: 2
    functionLinenumber: 1722
    functionLinenumberEnd: 1730
    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:1736,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/genobject.c:1737,1
    - Dst: async_gen_init_hooks
      Src: /src/cpython/Objects/genobject.c:1744,1
    - Dst: async_gen_athrow_new
      Src: /src/cpython/Objects/genobject.c:1747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1732
    functionDepth: 2
    functionLinenumber: 1732
    functionLinenumberEnd: 1748
    functionName: async_gen_athrow
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_athrow_new
    - PyTuple_GET_SIZE
    - async_gen_init_hooks
    - PyErr_WarnEx
    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:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ag
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1754
    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:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gen
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1756
    functionDepth: 3
    functionLinenumber: 1756
    functionLinenumberEnd: 1760
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:1765,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Objects/genobject.c:1766,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1769,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1770,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1771,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1772,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1773,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:1774,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:1777,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/genobject.c:1778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: "(frame_state >= 0 &&\n           (size_t)frame_state < Py_ARRAY_LENGTH(state_strings))"
      pos:
        line_end: 1777
        line_start: 1776
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1780
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1780
    functionName: ag_getstate
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - _PyGen_CAST
    - Py_ARRAY_LENGTH
    - assert
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ag_getstate(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gen_new_with_qualname
      Src: /src/cpython/Objects/genobject.c:1893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1889
    functionDepth: 3
    functionLinenumber: 1889
    functionLinenumberEnd: 1904
    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:1910,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:1911,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:1914,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:1915,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:1924,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/cpython/Objects/genobject.c:1926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:1927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - gen
    - result
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1906
    functionDepth: 2
    functionLinenumber: 1906
    functionLinenumberEnd: 1933
    functionName: async_gen_unwrap_value
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_SetStopIterationValue
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - PyErr_SetNone
    - Py_DECREF
    - _PyAsyncGenWrappedValue_CheckExact
    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:1942,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Objects/genobject.c:1942,1
    - Dst: _PyAsyncGenASend_CAST
      Src: /src/cpython/Objects/genobject.c:1943,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/genobject.c:1945,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:1949,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1950,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:1951,1
    - Dst: _PyGC_CLEAR_FINALIZED
      Src: /src/cpython/Objects/genobject.c:1953,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/genobject.c:1955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyAsyncGenASend_CheckExact(self))
      pos:
        line_end: 1941
        line_start: 1941
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1956
      start: 1939
    functionDepth: 3
    functionLinenumber: 1939
    functionLinenumberEnd: 1956
    functionName: async_gen_asend_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - PyAsyncGenASend_CheckExact
    - _PyGC_CLEAR_FINALIZED
    - Py_CLEAR
    - assert
    - _PyObject_GC_UNTRACK
    - _PyAsyncGenASend_CAST
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void async_gen_asend_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenASend_CAST
      Src: /src/cpython/Objects/genobject.c:1961,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:1962,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:1963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1958
    functionDepth: 1
    functionLinenumber: 1958
    functionLinenumberEnd: 1965
    functionName: async_gen_asend_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenASend_CAST
    - Py_VISIT
    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:1971,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:1973,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:1982,1
    - Dst: gen_send
      Src: /src/cpython/Objects/genobject.c:1995,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:1996,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1968
    functionDepth: 4
    functionLinenumber: 1968
    functionLinenumberEnd: 2003
    functionName: async_gen_asend_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_send
    - async_gen_unwrap_value
    - PyErr_SetString
    - _PyAsyncGenASend_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_send(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_asend_send
      Src: /src/cpython/Objects/genobject.c:2008,1
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/cpython/Objects/genobject.c:2012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - iter
    - arg
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2005
    functionDepth: 5
    functionLinenumber: 2005
    functionLinenumberEnd: 2016
    functionName: _PyAsyncGenASend_Send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _PyGen_FetchStopIterationValue
    - async_gen_asend_send
    linkageType: ''
    returnType: PySendResult
    signature: PySendResult _PyAsyncGenASend_Send(PyObject *iter, PyObject *arg, PyObject
      **result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_asend_send
      Src: /src/cpython/Objects/genobject.c:2022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ags
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2019
    functionDepth: 5
    functionLinenumber: 2019
    functionLinenumberEnd: 2023
    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:2029,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2032,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2041,1
    - Dst: gen_throw
      Src: /src/cpython/Objects/genobject.c:2051,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:2052,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2026
    functionDepth: 5
    functionLinenumber: 2026
    functionLinenumberEnd: 2060
    functionName: async_gen_asend_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_throw
    - async_gen_unwrap_value
    - PyErr_SetString
    - _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:2066,1
    - Dst: async_gen_asend_throw
      Src: /src/cpython/Objects/genobject.c:2071,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2073,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2074,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2075,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:2077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2083,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2063
    functionDepth: 6
    functionLinenumber: 2063
    functionLinenumberEnd: 2086
    functionName: async_gen_asend_close
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - async_gen_asend_throw
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - _PyAsyncGenASend_CAST
    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:2091,1
    - Dst: _PyErr_WarnUnawaitedAgenMethod
      Src: /src/cpython/Objects/genobject.c:2093,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:2093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2095
    functionName: async_gen_asend_finalize
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyErr_WarnUnawaitedAgenMethod
    - _PyAsyncGenASend_CAST
    - _Py_ID
    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:2158,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genobject.c:2160,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:2166,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:2167,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:2170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - gen
    - sendval
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2172
    functionName: async_gen_asend_new
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _Py_FREELIST_POP
    - Py_XNewRef
    - Py_NewRef
    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:2181,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:2182,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:2183,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/genobject.c:2184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2185
    functionName: async_gen_wrapped_val_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - _Py_FREELIST_FREE
    - _PyAsyncGenWrappedValue_CAST
    - Py_CLEAR
    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:2191,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2188
    functionDepth: 1
    functionLinenumber: 2188
    functionLinenumberEnd: 2194
    functionName: async_gen_wrapped_val_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyAsyncGenWrappedValue_CAST
    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:2243,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/genobject.c:2245,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genobject.c:2247,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:2253,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:2253,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:2254,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:2255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - tstate
    - val
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (val)
      pos:
        line_end: 2242
        line_start: 2242
        source_file: /src/cpython/Objects/genobject.c
    - condition: (_PyAsyncGenWrappedValue_CheckExact(o))
      pos:
        line_end: 2252
        line_start: 2252
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 2257
      start: 2240
    functionDepth: 1
    functionLinenumber: 2240
    functionLinenumberEnd: 2257
    functionName: _PyAsyncGenValueWrapperNew
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenWrappedValue_CheckExact
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _Py_FREELIST_POP
    - assert
    - Py_NewRef
    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: 2265
      start: 2262
    functionDepth: 0
    functionLinenumber: 2262
    functionLinenumberEnd: 2265
    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:2269,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/genobject.c:2270,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/genobject.c:2274,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genobject.c:2275,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:2276,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:2277,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genobject.c:2278,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/genobject.c:2279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2266
    functionDepth: 3
    functionLinenumber: 2266
    functionLinenumberEnd: 2280
    functionName: async_gen_athrow_dealloc
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - _PyAsyncGenAThrow_CAST
    - Py_CLEAR
    - PyObject_GC_Del
    - Py_XDECREF
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void async_gen_athrow_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAsyncGenAThrow_CAST
      Src: /src/cpython/Objects/genobject.c:2286,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2287,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2288,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2289,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genobject.c:2290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2283
    functionDepth: 1
    functionLinenumber: 2283
    functionLinenumberEnd: 2292
    functionName: async_gen_athrow_traverse
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenAThrow_CAST
    - Py_VISIT
    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:2298,1
    - Dst: _PyGen_CAST
      Src: /src/cpython/Objects/genobject.c:2299,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2303,1
    - Dst: FRAME_STATE_FINISHED
      Src: /src/cpython/Objects/genobject.c:2309,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:2311,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2319,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2324,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:2333,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2338,1
    - Dst: _gen_throw
      Src: /src/cpython/Objects/genobject.c:2349,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:2354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2355,1
    - Dst: _gen_throw
      Src: /src/cpython/Objects/genobject.c:2359,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:2363,1
    - Dst: assert
      Src: /src/cpython/Objects/genobject.c:2371,1
    - Dst: gen_send
      Src: /src/cpython/Objects/genobject.c:2373,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:2375,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:2379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2380,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2395,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2402,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2403,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:2411,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:2412,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: 2370
        line_start: 2370
        source_file: /src/cpython/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 2416
      start: 2295
    functionDepth: 4
    functionLinenumber: 2295
    functionLinenumberEnd: 2416
    functionName: async_gen_athrow_send
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_send
    - _PyAsyncGenAThrow_CAST
    - _PyGen_CAST
    - PyErr_SetString
    - FRAME_STATE_FINISHED
    - async_gen_unwrap_value
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - assert
    - PyErr_SetNone
    - Py_DECREF
    - _PyAsyncGenWrappedValue_CheckExact
    - _gen_throw
    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:2422,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2425,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2435,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2440,1
    - Dst: gen_throw
      Src: /src/cpython/Objects/genobject.c:2451,1
    - Dst: async_gen_unwrap_value
      Src: /src/cpython/Objects/genobject.c:2453,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/cpython/Objects/genobject.c:2462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2465,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2466,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2473,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2474,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:2481,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/genobject.c:2482,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2419
    functionDepth: 5
    functionLinenumber: 2419
    functionLinenumberEnd: 2486
    functionName: async_gen_athrow_throw
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenAThrow_CAST
    - PyErr_SetString
    - PyErr_SetNone
    - async_gen_unwrap_value
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - gen_throw
    - _PyAsyncGenWrappedValue_CheckExact
    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:2492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - agt
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2489
    functionDepth: 5
    functionLinenumber: 2489
    functionLinenumberEnd: 2493
    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:2499,1
    - Dst: async_gen_athrow_throw
      Src: /src/cpython/Objects/genobject.c:2503,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2506,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2507,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genobject.c:2508,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genobject.c:2510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genobject.c:2515,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/genobject.c:2516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2496
    functionDepth: 6
    functionLinenumber: 2496
    functionLinenumberEnd: 2519
    functionName: async_gen_athrow_close
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyAsyncGenAThrow_CAST
    - PyErr_SetString
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - async_gen_athrow_throw
    - Py_DECREF
    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:2527,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genobject.c:2527,1
    - Dst: _PyErr_WarnUnawaitedAgenMethod
      Src: /src/cpython/Objects/genobject.c:2528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2522
    functionDepth: 1
    functionLinenumber: 2522
    functionLinenumberEnd: 2530
    functionName: async_gen_athrow_finalize
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyErr_WarnUnawaitedAgenMethod
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void async_gen_athrow_finalize(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/genobject.c:2599,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/genobject.c:2604,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genobject.c:2608,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:2609,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:2610,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/genobject.c:2611,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/genobject.c:2614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - gen
    - args
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2593
    functionDepth: 1
    functionLinenumber: 2593
    functionLinenumberEnd: 2616
    functionName: async_gen_athrow_new
    functionSourceFile: /src/cpython/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_XNewRef
    - Py_NewRef
    - PyArg_UnpackTuple
    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: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    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: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    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:46,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:47,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:49,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:65,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/frameobject.c:71,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/frameobject.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - frame
    - co
    - i
    argTypes:
    - _PyInterpreterFrame*
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 82
    functionName: framelocalsproxy_getval
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyCell_GetRef
    - Py_XINCREF
    - _PyLocals_GetKind
    - PyCell_Check
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_GetLocalsArray
    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:87,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - frame
    - co
    - i
    argTypes:
    - _PyInterpreterFrame*
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: framelocalsproxy_hasval
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - framelocalsproxy_getval
    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:110,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:112,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/frameobject.c:115,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:125,1
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:134,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:139,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:154,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/frameobject.c:155,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:156,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/frameobject.c:160,1
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:166,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:172,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:177,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: 109
        line_start: 109
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (name_hash != -1)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 185
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 185
    functionName: framelocalsproxy_getkeyindex
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyObject_RichCompareBool
    - _PyFrame_GetCode
    - PyObject_Hash
    - _PyLocals_GetKind
    - framelocalsproxy_getval
    - assert
    - Py_DECREF
    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:190,1
    - Dst: framelocalsproxy_getkeyindex
      Src: /src/cpython/Objects/frameobject.c:193,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:198,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:201,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/frameobject.c:207,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (value != NULL)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 217
      start: 187
    functionDepth: 8
    functionLinenumber: 187
    functionLinenumberEnd: 217
    functionName: framelocalsproxy_getitem
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_getkeyindex
    - PyErr_Format
    - assert
    - PyDict_GetItemRef
    - PyFrameLocalsProxyObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_getitem(PyObject *self, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/frameobject.c:227,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/frameobject.c:233,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:238,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/frameobject.c:239,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:239,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/frameobject.c:241,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:241,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/frameobject.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - frame
    - obj
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 244
    functionName: add_overwritten_fast_local
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Size
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_New
    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:250,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/frameobject.c:251,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:252,1
    - Dst: framelocalsproxy_getkeyindex
      Src: /src/cpython/Objects/frameobject.c:254,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:260,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Objects/frameobject.c:265,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/frameobject.c:265,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:268,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:274,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/frameobject.c:274,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:274,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:274,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:275,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/frameobject.c:276,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:277,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:278,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/frameobject.c:283,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Objects/frameobject.c:284,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:285,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:286,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/frameobject.c:287,1
    - Dst: add_overwritten_fast_local
      Src: /src/cpython/Objects/frameobject.c:288,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Objects/frameobject.c:291,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/frameobject.c:293,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/frameobject.c:304,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:307,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:314,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:314,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/frameobject.c:317,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/frameobject.c:319,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyStackRef_IsNull(oldvalue) && PyCell_Check(PyStackRef_AsPyObjectBorrow(oldvalue)))
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (PyDict_Check(extra))
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 321
      start: 246
    functionDepth: 11
    functionLinenumber: 246
    functionLinenumberEnd: 321
    functionName: framelocalsproxy_setitem
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - add_overwritten_fast_local
    - PyCell_SetTakeRef
    - PyDict_DelItem
    - assert
    - PyStackRef_FromPyObjectNew
    - _Py_Executors_InvalidateDependency
    - PyCell_Check
    - _PyFrame_GetLocalsArray
    - _PyFrame_GetCode
    - PyErr_SetString
    - _Py_IsImmortal
    - PyFrameLocalsProxyObject_CAST
    - PyStackRef_IsNull
    - Py_XINCREF
    - PyDict_New
    - framelocalsproxy_getkeyindex
    - PyStackRef_CLOSE
    - _PyErr_SetKeyError
    - _PyInterpreterState_GET
    - PyDict_SetItem
    - _PyLocals_GetKind
    - PyDict_Check
    - PyStackRef_AsPyObjectBorrow
    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:326,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Objects/frameobject.c:326,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Objects/frameobject.c:330,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/frameobject.c:335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:336,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/frameobject.c:344,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/frameobject.c:345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:348,1
    - Dst: framelocalsproxy_setitem
      Src: /src/cpython/Objects/frameobject.c:352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:363,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/frameobject.c:365,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 323
    functionDepth: 12
    functionLinenumber: 323
    functionLinenumberEnd: 370
    functionName: framelocalsproxy_merge
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_setitem
    - PyObject_GetItem
    - PyObject_GetIter
    - PyDict_Check
    - PyFrameLocalsProxy_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - PyMapping_Keys
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_merge(PyObject* self, PyObject* other)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:375,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:376,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/frameobject.c:377,1
    - Dst: framelocalsproxy_hasval
      Src: /src/cpython/Objects/frameobject.c:383,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:384,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:386,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:394,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:394,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/frameobject.c:400,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:402,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: 393
        line_start: 393
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 409
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 409
    functionName: framelocalsproxy_keys
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyFrame_GetCode
    - assert
    - PyDict_Next
    - framelocalsproxy_hasval
    - PyDict_Check
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - PyFrameLocalsProxyObject_CAST
    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:414,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/frameobject.c:415,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:416,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/frameobject.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 418
    functionName: framelocalsproxy_dealloc
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_CLEAR
    - PyFrameLocalsProxyObject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void framelocalsproxy_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/frameobject.c:423,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:424,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/frameobject.c:426,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:429,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Objects/frameobject.c:431,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:432,1
    - Dst: PyDict_Size
      Src: /src/cpython/Objects/frameobject.c:437,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:438,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/frameobject.c:443,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 451
    functionName: framelocalsproxy_new
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyFrame_Check
    - PyDict_Size
    - PyErr_SetString
    - PyErr_Format
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:456,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 459
    functionName: framelocalsproxy_tp_clear
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyFrameLocalsProxyObject_CAST
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_tp_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:464,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/frameobject.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 467
    functionName: framelocalsproxy_visit
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyFrameLocalsProxyObject_CAST
    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:472,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/frameobject.c:477,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/frameobject.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 481
    functionName: framelocalsproxy_iter
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_keys
    - PyObject_GetIter
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_iter(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:486,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Objects/frameobject.c:487,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/frameobject.c:491,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/frameobject.c:493,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:495,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:496,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:502,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/frameobject.c:506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - lhs
    - rhs
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 483
    functionDepth: 11
    functionLinenumber: 483
    functionLinenumberEnd: 512
    functionName: framelocalsproxy_richcompare
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - PyBool_FromLong
    - PyDict_Check
    - PyObject_RichCompare
    - PyFrameLocalsProxy_Check
    - Py_DECREF
    - PyFrameLocalsProxyObject_CAST
    - PyDict_New
    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:517,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/frameobject.c:519,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:522,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/frameobject.c:524,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:529,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/frameobject.c:530,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/frameobject.c:534,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:535,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/frameobject.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 514
    functionDepth: 11
    functionLinenumber: 514
    functionLinenumberEnd: 540
    functionName: framelocalsproxy_repr
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - PyUnicode_FromString
    - Py_ReprLeave
    - Py_ReprEnter
    - PyObject_Repr
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_repr(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:545,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Objects/frameobject.c:545,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:549,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:555,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 542
    functionDepth: 11
    functionLinenumber: 542
    functionLinenumberEnd: 565
    functionName: framelocalsproxy_or
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - PyDict_Check
    - PyFrameLocalsProxy_Check
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      framelocalsproxy_or(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:570,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Objects/frameobject.c:570,1
    - Dst: framelocalsproxy_merge
      Src: /src/cpython/Objects/frameobject.c:574,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 567
    functionDepth: 13
    functionLinenumber: 567
    functionLinenumberEnd: 579
    functionName: framelocalsproxy_inplace_or
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_merge
    - PyDict_Check
    - Py_NewRef
    - PyFrameLocalsProxy_Check
    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:584,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:585,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/frameobject.c:586,1
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:592,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:595,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:599,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/frameobject.c:608,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:610,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 581
    functionDepth: 4
    functionLinenumber: 581
    functionLinenumberEnd: 617
    functionName: framelocalsproxy_values
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    - PyDict_Next
    - framelocalsproxy_getval
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - PyFrameLocalsProxyObject_CAST
    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:622,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:623,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/frameobject.c:624,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:630,1
    - Dst: framelocalsproxy_getval
      Src: /src/cpython/Objects/frameobject.c:631,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/frameobject.c:634,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:634,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:640,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/frameobject.c:652,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/frameobject.c:653,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/frameobject.c:658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:659,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:669,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 619
    functionDepth: 4
    functionLinenumber: 619
    functionLinenumberEnd: 671
    functionName: framelocalsproxy_items
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyFrame_GetCode
    - Py_NewRef
    - PyDict_Next
    - _PyTuple_FromPair
    - framelocalsproxy_getval
    - PyList_New
    - PyList_Append
    - _PyTuple_FromPairSteal
    - Py_DECREF
    - PyFrameLocalsProxyObject_CAST
    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:676,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:677,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:681,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/frameobject.c:681,1
    - Dst: PyDict_Size
      Src: /src/cpython/Objects/frameobject.c:682,1
    - Dst: framelocalsproxy_hasval
      Src: /src/cpython/Objects/frameobject.c:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(frame->f_extra_locals))
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 691
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 691
    functionName: framelocalsproxy_length
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Size
    - _PyFrame_GetCode
    - framelocalsproxy_hasval
    - PyDict_Check
    - assert
    - PyFrameLocalsProxyObject_CAST
    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:696,1
    - Dst: framelocalsproxy_getkeyindex
      Src: /src/cpython/Objects/frameobject.c:698,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/frameobject.c:708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 693
    functionDepth: 5
    functionLinenumber: 693
    functionLinenumberEnd: 712
    functionName: framelocalsproxy_contains
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_getkeyindex
    - PyDict_Contains
    - PyFrameLocalsProxyObject_CAST
    linkageType: ''
    returnType: int
    signature: int framelocalsproxy_contains(PyObject *self, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: framelocalsproxy_contains
      Src: /src/cpython/Objects/frameobject.c:716,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/frameobject.c:720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 714
    functionDepth: 6
    functionLinenumber: 714
    functionLinenumberEnd: 721
    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:726,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 723
    functionDepth: 13
    functionLinenumber: 723
    functionLinenumberEnd: 732
    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:738,1
    - Dst: framelocalsproxy_getitem
      Src: /src/cpython/Objects/frameobject.c:749,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/frameobject.c:752,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/frameobject.c:753,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 734
    functionDepth: 9
    functionLinenumber: 734
    functionLinenumberEnd: 760
    functionName: framelocalsproxy_get
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_getitem
    - PyErr_SetString
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XNewRef
    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:766,1
    - Dst: framelocalsproxy_getitem
      Src: /src/cpython/Objects/frameobject.c:777,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/frameobject.c:780,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/frameobject.c:781,1
    - Dst: framelocalsproxy_setitem
      Src: /src/cpython/Objects/frameobject.c:782,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:785,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 762
    functionDepth: 12
    functionLinenumber: 762
    functionLinenumberEnd: 791
    functionName: framelocalsproxy_setdefault
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_getitem
    - framelocalsproxy_setitem
    - PyErr_SetString
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XNewRef
    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:796,1
    - Dst: PyFrameLocalsProxyObject_CAST
      Src: /src/cpython/Objects/frameobject.c:807,1
    - Dst: framelocalsproxy_getkeyindex
      Src: /src/cpython/Objects/frameobject.c:809,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:815,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:823,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/frameobject.c:825,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/frameobject.c:830,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:836,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/frameobject.c:838,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 793
    functionDepth: 8
    functionLinenumber: 793
    functionLinenumberEnd: 844
    functionName: framelocalsproxy_pop
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - framelocalsproxy_getkeyindex
    - _PyErr_SetKeyError
    - PyErr_SetString
    - PyDict_Pop
    - Py_XNewRef
    - PyFrameLocalsProxyObject_CAST
    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:849,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/frameobject.c:855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 846
    functionDepth: 11
    functionLinenumber: 846
    functionLinenumberEnd: 861
    functionName: framelocalsproxy_copy
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_Update
    - 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:866,1
    - Dst: PyList_Reverse
      Src: /src/cpython/Objects/frameobject.c:872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 863
    functionDepth: 5
    functionLinenumber: 863
    functionLinenumberEnd: 877
    functionName: framelocalsproxy_reversed
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - framelocalsproxy_keys
    - Py_DECREF
    - PyList_Reverse
    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:949,1
    - Dst: framelocalsproxy_new
      Src: /src/cpython/Objects/frameobject.c:954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 957
    functionName: _PyFrameLocalsProxy_New
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - framelocalsproxy_new
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyFrameLocalsProxy_New(PyFrameObject *frame)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:976,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:976,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:978,1
    - Dst: _PyFrame_HasHiddenLocals
      Src: /src/cpython/Objects/frameobject.c:980,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:985,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:990,1
    - Dst: _PyFrameLocalsProxy_New
      Src: /src/cpython/Objects/frameobject.c:993,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(self->f_frame))
      pos:
        line_end: 975
        line_start: 975
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 994
      start: 972
    functionDepth: 11
    functionLinenumber: 972
    functionLinenumberEnd: 994
    functionName: frame_locals_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    - _PyFrameLocalsProxy_New
    - _PyFrame_IsIncomplete
    - _PyFrame_HasHiddenLocals
    - assert
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_locals_get_impl(PyFrameObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:999,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Objects/frameobject.c:1003,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Objects/frameobject.c:1013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (f != NULL)
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1014
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1014
    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:1028,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/frameobject.c:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1033
    functionName: frame_lineno_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyFrame_GetLineNumber
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_lineno_get_impl(PyFrameObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnstable_InterpreterFrame_GetLasti
      Src: /src/cpython/Objects/frameobject.c:1047,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/frameobject.c:1049,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/frameobject.c:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1052
    functionName: frame_lasti_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyUnstable_InterpreterFrame_GetLasti
    - 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:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1071
    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:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1090
    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:1103,1
    - Dst: PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:1106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1107
    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:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1124
    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: 1139
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1139
    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:1151,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1152,1
    - Dst: _PyEval_SetOpcodeTrace
      Src: /src/cpython/Objects/frameobject.c:1159,1
    - Dst: _PyEval_SetOpcodeTrace
      Src: /src/cpython/Objects/frameobject.c:1164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1167
    functionName: frame_trace_opcodes_set_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyBool_Check
    - PyErr_SetString
    - _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: 1195
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1195
    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: 1216
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1216
    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:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1222
    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: 1230
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1230
    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:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - n
    argTypes:
    - int64_t
    - int
    assertStmts:
    - condition: (n >= 1)
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1237
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1237
    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:1242,1
    - Dst: peek
      Src: /src/cpython/Objects/frameobject.c:1243,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - n
    argTypes:
    - int64_t
    - int
    assertStmts:
    - condition: (n >= 1)
      pos:
        line_end: 1241
        line_start: 1241
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1249
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1249
    functionName: stack_swap
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - top_of_stack
    - peek
    - assert
    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:1259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - stack
    - level
    argTypes:
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1251
    functionDepth: 2
    functionLinenumber: 1251
    functionLinenumberEnd: 1262
    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:1269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - stack
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1282
    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:1288,1
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1291,1
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1294,1
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1299,1
    - Dst: tos_char
      Src: /src/cpython/Objects/frameobject.c:1299,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - stack
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1302
    functionName: print_stack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - tos_char
    - printf
    - pop_value
    linkageType: ''
    returnType: void
    signature: void print_stack(int64_t stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1307,1
    - Dst: print_stack
      Src: /src/cpython/Objects/frameobject.c:1308,1
    - Dst: printf
      Src: /src/cpython/Objects/frameobject.c:1309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stacks
    - n
    argTypes:
    - int64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1304
    functionDepth: 3
    functionLinenumber: 1304
    functionLinenumberEnd: 1311
    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:1318,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/frameobject.c:1322,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/frameobject.c:1325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:1326,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/frameobject.c:1340,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/frameobject.c:1346,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1364,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1365,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1367,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1374,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1375,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1381,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1382,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1388,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1389,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1393,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1397,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1397,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1398,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1402,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1402,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1407,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1410,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1411,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1416,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1416,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1420,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1424,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1424,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1425,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1429,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1429,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1430,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1430,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1435,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1435,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1439,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1445,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1447,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1454,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1454,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1457,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1458,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1459,1
    - Dst: stack_swap
      Src: /src/cpython/Objects/frameobject.c:1467,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1474,1
    - Dst: peek
      Src: /src/cpython/Objects/frameobject.c:1474,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1481,1
    - Dst: PyCompile_OpcodeStackEffect
      Src: /src/cpython/Objects/frameobject.c:1485,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1486,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1488,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1492,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/frameobject.c:1501,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/frameobject.c:1502,1
    - Dst: parse_varint
      Src: /src/cpython/Objects/frameobject.c:1506,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1507,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:1513,1
    - Dst: pop_to_level
      Src: /src/cpython/Objects/frameobject.c:1519,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1521,1
    - Dst: push_value
      Src: /src/cpython/Objects/frameobject.c:1523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:1529,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 178
    argCount: 2
    argNames:
    - code_obj
    - len
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (j < len)
      pos:
        line_end: 1363
        line_start: 1363
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j >= 0)
      pos:
        line_end: 1387
        line_start: 1387
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == next_stack)
      pos:
        line_end: 1381
        line_start: 1381
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == next_stack)
      pos:
        line_end: 1374
        line_start: 1374
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == target_stack)
      pos:
        line_end: 1410
        line_start: 1410
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (top_of_stack(next_stack) == Object)
      pos:
        line_end: 1429
        line_start: 1429
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (top_of_stack(next_stack) == Except)
      pos:
        line_end: 1434
        line_start: 1434
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1388
        line_start: 1388
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (top_of_stack(next_stack) == Except)
      pos:
        line_end: 1423
        line_start: 1423
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (top_of_stack(next_stack) == Object)
      pos:
        line_end: 1453
        line_start: 1453
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (handler >= 0 && handler < len)
      pos:
        line_end: 1510
        line_start: 1510
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == target_stack)
      pos:
        line_end: 1366
        line_start: 1366
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (stacks[j] == UNINITIALIZED || stacks[j] == next_stack)
      pos:
        line_end: 1392
        line_start: 1392
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (pop_value(next_stack) == EMPTY_STACK)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (0)
      pos:
        line_end: 1480
        line_start: 1480
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (delta != PY_INVALID_STACK_EFFECT)
      pos:
        line_end: 1485
        line_start: 1485
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (size >= 0 && start_offset+size <= len)
      pos:
        line_end: 1508
        line_start: 1508
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (start_offset >= 0 && start_offset < len)
      pos:
        line_end: 1506
        line_start: 1506
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1373
        line_start: 1373
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (j < len)
      pos:
        line_end: 1380
        line_start: 1380
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1531
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1531
    functionName: mark_stacks
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - pop_value
    - PyErr_NoMemory
    - push_value
    - PyBytes_AS_STRING
    - _Py_GetBaseCodeUnit
    - top_of_stack
    - _PyCode_GetCode
    - PyCompile_OpcodeStackEffect
    - peek
    - pop_to_level
    - parse_varint
    - assert
    - Py_DECREF
    - stack_swap
    - PyBytes_GET_SIZE
    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:1540,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1543,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1544,1
    - Dst: compatible_kind
      Src: /src/cpython/Objects/frameobject.c:1545,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1548,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - from_stack
    - to_stack
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1533
    functionDepth: 2
    functionLinenumber: 1533
    functionLinenumberEnd: 1552
    functionName: compatible_stack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - compatible_kind
    - pop_value
    - 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:1557,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1564,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/frameobject.c:1576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - to_stack
    argTypes:
    - int64_t
    assertStmts:
    - condition: (to_stack != 0)
      pos:
        line_end: 1556
        line_start: 1556
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1578
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1578
    functionName: explain_incompatible_stack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - top_of_stack
    - Py_UNREACHABLE
    - assert
    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:1584,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1585,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/frameobject.c:1588,1
    - Dst: _PyLineTable_NextAddressRange
      Src: /src/cpython/Objects/frameobject.c:1596,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - code
    - len
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (bounds.ar_end == 0)
      pos:
        line_end: 1584
        line_start: 1584
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (bounds.ar_start / (int)sizeof(_Py_CODEUNIT) < len)
      pos:
        line_end: 1596
        line_start: 1596
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1604
      start: 1580
    functionDepth: 1
    functionLinenumber: 1580
    functionLinenumberEnd: 1604
    functionName: marklines
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - _PyCode_InitAddressRange
    - _PyLineTable_NextAddressRange
    - 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: 1619
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1619
    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:1623,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:1623,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Objects/frameobject.c:1625,1
    - Dst: FRAME_STATE_SUSPENDED
      Src: /src/cpython/Objects/frameobject.c:1626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 1622
        line_start: 1622
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1629
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1629
    functionName: frame_is_suspended
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_GetGeneratorFromFrame
    - _PyFrame_IsIncomplete
    - FRAME_STATE_SUSPENDED
    - assert
    linkageType: ''
    returnType: bool
    signature: bool frame_is_suspended(PyFrameObject *frame)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:1655,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1657,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/frameobject.c:1661,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1662,1
    - Dst: frame_is_suspended
      Src: /src/cpython/Objects/frameobject.c:1667,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/frameobject.c:1676,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1678,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1693,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1698,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1708,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1712,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/frameobject.c:1722,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1729,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1736,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/frameobject.c:1744,1
    - Dst: marklines
      Src: /src/cpython/Objects/frameobject.c:1745,1
    - Dst: first_line_not_before
      Src: /src/cpython/Objects/frameobject.c:1750,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:1752,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/frameobject.c:1755,1
    - Dst: mark_stacks
      Src: /src/cpython/Objects/frameobject.c:1759,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/frameobject.c:1761,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/frameobject.c:1767,1
    - Dst: compatible_stack
      Src: /src/cpython/Objects/frameobject.c:1773,1
    - Dst: explain_incompatible_stack
      Src: /src/cpython/Objects/frameobject.c:1788,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/frameobject.c:1794,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/frameobject.c:1795,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:1797,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/frameobject.c:1807,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/frameobject.c:1812,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/frameobject.c:1818,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1823,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1827,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Objects/frameobject.c:1830,1
    - Dst: top_of_stack
      Src: /src/cpython/Objects/frameobject.c:1831,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:1833,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1834,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/frameobject.c:1834,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/frameobject.c:1835,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/frameobject.c:1836,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Objects/frameobject.c:1839,1
    - Dst: pop_value
      Src: /src/cpython/Objects/frameobject.c:1841,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Objects/frameobject.c:1845,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 118
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts:
    - condition: (unbound == 0)
      pos:
        line_end: 1822
        line_start: 1822
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (PyExceptionInstance_Check(exc) || exc == Py_None)
      pos:
        line_end: 1833
        line_start: 1833
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1847
      start: 1651
    functionDepth: 4
    functionLinenumber: 1651
    functionLinenumberEnd: 1847
    functionName: frame_lineno_set_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - pop_value
    - mark_stacks
    - _PyFrame_GetBytecode
    - top_of_stack
    - _PyThreadState_GET
    - assert
    - first_line_not_before
    - PyThreadState_GET
    - PyMem_Free
    - _PyInterpreterFrame_LASTI
    - compatible_stack
    - _PyFrame_GetCode
    - PyErr_SetString
    - Py_SIZE
    - PyErr_WarnFormat
    - PyLong_CheckExact
    - PyExceptionInstance_Check
    - PyStackRef_IsNull
    - marklines
    - Py_XSETREF
    - _PyFrame_StackPop
    - frame_is_suspended
    - PyErr_Format
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - explain_incompatible_stack
    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:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1858
    functionDepth: 0
    functionLinenumber: 1858
    functionLinenumberEnd: 1867
    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:1884,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:1884,1
    - Dst: _PyEval_SetOpcodeTrace
      Src: /src/cpython/Objects/frameobject.c:1886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1890
    functionName: frame_trace_set_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_XNewRef
    - _PyEval_SetOpcodeTrace
    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:1906,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:1907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1901
    functionDepth: 1
    functionLinenumber: 1901
    functionLinenumberEnd: 1910
    functionName: frame_generator_get_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_GetGeneratorFromFrame
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_generator_get_impl(PyFrameObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameObject_CAST
      Src: /src/cpython/Objects/frameobject.c:1932,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/frameobject.c:1933,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/frameobject.c:1934,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1945,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1946,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1947,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/frameobject.c:1948,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1952,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1955,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: PyObject_GC_Del
      Src: /src/cpython/Objects/frameobject.c:1960,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1961
    functionName: frame_dealloc
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_CLEAR
    - PyFrameObject_CAST
    - Py_CLEAR
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - _PyFrame_GetLocalsArray
    linkageType: ''
    returnType: void
    signature: void frame_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameObject_CAST
      Src: /src/cpython/Objects/frameobject.c:1966,1
    - Dst: Py_VISIT
      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: assert
      Src: /src/cpython/Objects/frameobject.c:1975,1
    - Dst: _PyFrame_Traverse
      Src: /src/cpython/Objects/frameobject.c:1976,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: 1974
        line_start: 1974
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1977
      start: 1963
    functionDepth: 1
    functionLinenumber: 1963
    functionLinenumberEnd: 1977
    functionName: frame_traverse
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_VISIT
    - _PyFrame_Traverse
    - PyFrameObject_CAST
    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:1982,1
    - Dst: Py_CLEAR
      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: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/frameobject.c:1989,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:1991,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1994,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/frameobject.c:1997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (sp >= locals)
      pos:
        line_end: 1990
        line_start: 1990
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 1999
      start: 1979
    functionDepth: 1
    functionLinenumber: 1979
    functionLinenumberEnd: 1999
    functionName: frame_tp_clear
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_CLEAR
    - PyFrameObject_CAST
    - Py_CLEAR
    - assert
    - _PyFrame_GetLocalsArray
    linkageType: ''
    returnType: int
    signature: int frame_tp_clear(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Objects/frameobject.c:2013,1
    - Dst: _PyGen_ClearFrame
      Src: /src/cpython/Objects/frameobject.c:2014,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/frameobject.c:2019,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2024,1
    - Dst: frame_tp_clear
      Src: /src/cpython/Objects/frameobject.c:2025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (self->f_frame->owner == FRAME_OWNED_BY_FRAME_OBJECT)
      pos:
        line_end: 2023
        line_start: 2023
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2028
      start: 2008
    functionDepth: 3
    functionLinenumber: 2008
    functionLinenumberEnd: 2028
    functionName: frame_clear_impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_GetGeneratorFromFrame
    - _PyGen_ClearFrame
    - PyErr_SetString
    - assert
    - frame_tp_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_clear_impl(PyFrameObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2043,1
    - Dst: _PyFrame_NumSlotsForCodeObject
      Src: /src/cpython/Objects/frameobject.c:2044,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/frameobject.c:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2037
    functionDepth: 1
    functionLinenumber: 2037
    functionLinenumberEnd: 2046
    functionName: frame___sizeof___impl
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _PyFrame_GetCode
    - _PyFrame_NumSlotsForCodeObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame___sizeof___impl(PyFrameObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrameObject_CAST
      Src: /src/cpython/Objects/frameobject.c:2051,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2053,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/cpython/Objects/frameobject.c:2054,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2055,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/frameobject.c:2056,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2061
    functionName: frame_repr
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    - PyFrame_GetLineNumber
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_FromFormat
    - PyFrameObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_Initialize
      Src: /src/cpython/Objects/frameobject.c:2110,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/frameobject.c:2110,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tstate
    - frame
    - func
    - locals
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2105
    functionDepth: 1
    functionLinenumber: 2105
    functionLinenumberEnd: 2112
    functionName: init_frame
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - PyStackRef_FromPyObjectNew
    - _PyFrame_Initialize
    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:2117,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/frameobject.c:2119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2114
    functionDepth: 1
    functionLinenumber: 2114
    functionLinenumberEnd: 2132
    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:2139,1
    - Dst: _PyFunction_FromConstructor
      Src: /src/cpython/Objects/frameobject.c:2153,1
    - Dst: _Py_DECREF_BUILTINS
      Src: /src/cpython/Objects/frameobject.c:2154,1
    - Dst: _PyFrame_New_NoTrack
      Src: /src/cpython/Objects/frameobject.c:2158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:2160,1
    - Dst: init_frame
      Src: /src/cpython/Objects/frameobject.c:2163,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/frameobject.c:2167,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2168,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:2169,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/frameobject.c:2170,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: 2167
        line_start: 2167
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2172
      start: 2135
    functionDepth: 8
    functionLinenumber: 2135
    functionLinenumberEnd: 2172
    functionName: PyFrame_New
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_New_NoTrack
    - _PyDict_LoadBuiltinsFromGlobals
    - _PyFunction_FromConstructor
    - _PyObject_GC_TRACK
    - _PyCode_CODE
    - _PyFrame_IsIncomplete
    - _Py_DECREF_BUILTINS
    - assert
    - Py_DECREF
    - init_frame
    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:2180,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/frameobject.c:2181,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Objects/frameobject.c:2183,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Objects/frameobject.c:2184,1
    - Dst: _PyFrame_GetFunction
      Src: /src/cpython/Objects/frameobject.c:2191,1
    - Dst: PyUnstable_Code_GetFirstFree
      Src: /src/cpython/Objects/frameobject.c:2193,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:2195,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/frameobject.c:2196,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Objects/frameobject.c:2199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2175
    functionDepth: 1
    functionLinenumber: 2175
    functionLinenumberEnd: 2200
    functionName: frame_init_get_vars
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FunctionCheck
    - PyUnstable_Code_GetFirstFree
    - PyStackRef_FromPyObjectNew
    - PyTuple_GET_ITEM
    - _PyFrame_GetCode
    - _PyFrame_GetBytecode
    - _PyFrame_GetFunction
    - _PyInterpreterFrame_LASTI
    linkageType: ''
    returnType: void
    signature: void frame_init_get_vars(_PyInterpreterFrame *frame)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:2207,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/frameobject.c:2223,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2226,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:2226,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/frameobject.c:2227,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/frameobject.c:2231,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2232,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2232,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/frameobject.c:2233,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/frameobject.c:2239,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/frameobject.c:2244,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: 2225
        line_start: 2225
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 2231
        line_start: 2231
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2249
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2249
    functionName: frame_get_var
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyCell_GetRef
    - Py_INCREF
    - _PyFrame_IsIncomplete
    - _PyLocals_GetKind
    - PyCell_Check
    - assert
    - PyStackRef_AsPyObjectBorrow
    - Py_XINCREF
    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:2259,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/frameobject.c:2262,1
    - Dst: framelocalsproxy_hasval
      Src: /src/cpython/Objects/frameobject.c:2265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2252
    functionDepth: 3
    functionLinenumber: 2252
    functionLinenumberEnd: 2272
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2280,1
    - Dst: _PyFrame_HasHiddenLocals
      Src: /src/cpython/Objects/frameobject.c:2282,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/frameobject.c:2287,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:2292,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Objects/frameobject.c:2295,1
    - Dst: _PyFrameLocalsProxy_New
      Src: /src/cpython/Objects/frameobject.c:2300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2275
    functionDepth: 11
    functionLinenumber: 2275
    functionLinenumberEnd: 2301
    functionName: _PyFrame_GetLocals
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    - _PyFrameLocalsProxy_New
    - _PyFrame_HasHiddenLocals
    - _PyFrame_GetFrameObject
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyFrame_GetLocals(_PyInterpreterFrame *frame)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/frameobject.c:2307,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:2308,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/frameobject.c:2309,1
    - Dst: frame_init_get_vars
      Src: /src/cpython/Objects/frameobject.c:2314,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2316,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/frameobject.c:2318,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/frameobject.c:2319,1
    - Dst: frame_get_var
      Src: /src/cpython/Objects/frameobject.c:2324,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/frameobject.c:2333,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - frame_obj
    - name
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2304
    functionDepth: 2
    functionLinenumber: 2304
    functionLinenumberEnd: 2335
    functionName: PyFrame_GetVar
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - frame_init_get_vars
    - PyTuple_GET_ITEM
    - _PyFrame_GetCode
    - _PyUnicode_Equal
    - PyUnicode_Check
    - PyErr_Format
    - frame_get_var
    - Py_TYPE
    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:2341,1
    - Dst: PyFrame_GetVar
      Src: /src/cpython/Objects/frameobject.c:2345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/frameobject.c:2346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - frame
    - name
    argTypes:
    - PyFrameObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2338
    functionDepth: 3
    functionLinenumber: 2338
    functionLinenumberEnd: 2348
    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: 2357
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2357
    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: 2365
      start: 2359
    functionDepth: 0
    functionLinenumber: 2359
    functionLinenumberEnd: 2365
    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: 2373
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2373
    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:2378,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2380,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 2377
        line_start: 2377
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!_PyFrame_IsIncomplete(f))
      pos:
        line_end: 2379
        line_start: 2379
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2382
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2382
    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:2387,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2389,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2390,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2390,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/frameobject.c:2391,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/frameobject.c:2391,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 2386
        line_start: 2386
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2389
        line_start: 2389
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2394
      start: 2384
    functionDepth: 1
    functionLinenumber: 2384
    functionLinenumberEnd: 2394
    functionName: PyFrame_GetCode
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 35
    functionsReached:
    - _PyFrame_GetCode
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyFrame_IsIncomplete
    - assert
    - Py_NewRef
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyFrame_GetCode(PyFrameObject *frame)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2400,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2401,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2401,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Objects/frameobject.c:2405,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Objects/frameobject.c:2407,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/frameobject.c:2410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 2399
        line_start: 2399
        source_file: /src/cpython/Objects/frameobject.c
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2400
        line_start: 2400
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2411
      start: 2397
    functionDepth: 1
    functionLinenumber: 2397
    functionLinenumberEnd: 2411
    functionName: PyFrame_GetBack
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - Py_XNewRef
    - _PyFrame_IsIncomplete
    - assert
    - _PyFrame_GetFirstComplete
    - _PyFrame_GetFrameObject
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyFrame_GetBack(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2416,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2416,1
    - Dst: frame_locals_get
      Src: /src/cpython/Objects/frameobject.c:2417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2415
        line_start: 2415
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2418
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2418
    functionName: PyFrame_GetLocals
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _PyFrame_IsIncomplete
    - frame_locals_get
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrame_GetLocals(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2423,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2423,1
    - Dst: frame_globals_get
      Src: /src/cpython/Objects/frameobject.c:2424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2422
        line_start: 2422
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2425
      start: 2420
    functionDepth: 1
    functionLinenumber: 2420
    functionLinenumberEnd: 2425
    functionName: PyFrame_GetGlobals
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - frame_globals_get
    - _PyFrame_IsIncomplete
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrame_GetGlobals(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2430,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2430,1
    - Dst: frame_builtins_get
      Src: /src/cpython/Objects/frameobject.c:2431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2429
        line_start: 2429
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2432
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2432
    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:2438,1
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2439,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2439,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/frameobject.c:2440,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/frameobject.c:2442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2438
        line_start: 2438
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2444
      start: 2434
    functionDepth: 1
    functionLinenumber: 2434
    functionLinenumberEnd: 2444
    functionName: PyFrame_GetLasti
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyFrame_IsIncomplete
    - assert
    - _PyInterpreterFrame_LASTI
    linkageType: ''
    returnType: int
    signature: int PyFrame_GetLasti(PyFrameObject *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/frameobject.c:2449,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Objects/frameobject.c:2449,1
    - Dst: frame_generator_get
      Src: /src/cpython/Objects/frameobject.c:2450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!_PyFrame_IsIncomplete(frame->f_frame))
      pos:
        line_end: 2448
        line_start: 2448
        source_file: /src/cpython/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 2451
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2451
    functionName: PyFrame_GetGenerator
    functionSourceFile: /src/cpython/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - frame_generator_get
    - _PyFrame_IsIncomplete
    - assert
    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_TYPE
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    - FT_CLEAR_WEAKREFS
    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:
    - PyTuple_GET_ITEM
    - PyObject_Hash
    - PyErr_Format
    - assert
    - PyTuple_GET_SIZE
    - 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:
    - PyTuple_GET_SIZE
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    - PySequence_Contains
    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:
    - unions_equal
    - PyBool_FromLong
    - _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:
    - PySet_New
    - Py_DECREF
    - PyList_New
    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_DECREF
    - Py_XDECREF
    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:
    - PySequence_Contains
    - PySet_Add
    - PyObject_Hash
    - PySet_Contains
    - PyErr_Clear
    - PyList_New
    - PyList_Append
    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:
    - unionbuilder_add_single_unchecked
    - unionbuilder_add_tuple
    - Py_IsNone
    - _PyUnion_Check
    - Py_DECREF
    - type_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:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - unionbuilder_add_single
    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: PySentinel_Check
      Src: /src/cpython/Objects/unionobject.c:248,1
    - Dst: _PyGenericAlias_Check
      Src: /src/cpython/Objects/unionobject.c:249,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/unionobject.c:250,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/unionobject.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: is_unionable
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - Py_IS_TYPE
    - _PyGenericAlias_Check
    - PySentinel_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:260,1
    - Dst: is_unionable
      Src: /src/cpython/Objects/unionobject.c:260,1
    - Dst: unionbuilder_init
      Src: /src/cpython/Objects/unionobject.c:266,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:269,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:270,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:271,1
    - Dst: make_union
      Src: /src/cpython/Objects/unionobject.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 257
    functionDepth: 8
    functionLinenumber: 257
    functionLinenumberEnd: 277
    functionName: _Py_union_type_or
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - make_union
    - unionbuilder_finalize
    - unionbuilder_init
    - is_unionable
    - unionbuilder_add_single
    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:283,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/unionobject.c:287,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/unionobject.c:293,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unionobject.c:296,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/unionobject.c:297,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/unionobject.c:303,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/unionobject.c:304,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/unionobject.c:305,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/unionobject.c:306,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/unionobject.c:308,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/unionobject.c:309,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unionobject.c:313,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/unionobject.c:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 318
    functionName: union_repr
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyTuple_GET_ITEM
    - PyUnicodeWriter_Discard
    - _Py_typing_type_repr
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteASCII
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/unionobject.c:330,1
    - Dst: _Py_make_parameters
      Src: /src/cpython/Objects/unionobject.c:332,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/unionobject.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - alias
    argTypes:
    - unionobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 339
    functionName: union_init_parameters
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_make_parameters
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int union_init_parameters(unionobject *alias)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: union_init_parameters
      Src: /src/cpython/Objects/unionobject.c:345,1
    - Dst: _Py_subs_parameters
      Src: /src/cpython/Objects/unionobject.c:349,1
    - Dst: _Py_union_from_tuple
      Src: /src/cpython/Objects/unionobject.c:354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 357
    functionName: union_getitem
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - union_init_parameters
    - Py_DECREF
    - _Py_union_from_tuple
    - _Py_subs_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:367,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unionobject.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(unused)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 371
    functionName: union_parameters
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - union_init_parameters
    - Py_NewRef
    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:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 377
    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:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 383
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: unionbuilder_init
      Src: /src/cpython/Objects/unionobject.c:401,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:404,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:405,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:406,1
    - Dst: make_union
      Src: /src/cpython/Objects/unionobject.c:409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 397
    functionDepth: 8
    functionLinenumber: 397
    functionLinenumberEnd: 410
    functionName: union_nb_or
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - make_union
    - unionbuilder_finalize
    - unionbuilder_add_single
    - unionbuilder_init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      union_nb_or(PyObject *a, PyObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unionobject.c:425,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/unionobject.c:430,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/unionobject.c:431,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unionobject.c:431,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Objects/unionobject.c:435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 436
    functionName: union_getattro
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - PyObject_GetAttr
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    - 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:441,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Objects/unionobject.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnion_Check(self))
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Objects/unionobject.c
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 443
    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:448,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/unionobject.c:452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:454,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/unionobject.c:457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:458,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - name
    - args
    - nargs
    argTypes:
    - char*
    - PyObject**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 461
    functionName: call_typing_func_object
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 6
    functionsReached:
    - Py_DECREF
    - PyObject_Vectorcall
    - PyImport_ImportModule
    - PyObject_GetAttrString
    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:466,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unionobject.c:468,1
    - Dst: is_unionable
      Src: /src/cpython/Objects/unionobject.c:471,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unionobject.c:472,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/unionobject.c:474,1
    - Dst: call_typing_func_object
      Src: /src/cpython/Objects/unionobject.c:479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unionobject.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - arg
    - msg
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 482
    functionName: type_check
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_FromString
    - is_unionable
    - Py_IsNone
    - Py_DECREF
    - call_typing_func_object
    - Py_NewRef
    - Py_TYPE
    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:488,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/unionobject.c:491,1
    - Dst: unionbuilder_add_tuple
      Src: /src/cpython/Objects/unionobject.c:492,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:493,1
    - Dst: unionbuilder_add_single
      Src: /src/cpython/Objects/unionobject.c:498,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:499,1
    - Dst: make_union
      Src: /src/cpython/Objects/unionobject.c:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - args
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 484
    functionDepth: 9
    functionLinenumber: 484
    functionLinenumberEnd: 504
    functionName: _Py_union_from_tuple
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 2
    functionsReached:
    - make_union
    - unionbuilder_init
    - unionbuilder_finalize
    - unionbuilder_add_tuple
    - PyTuple_CheckExact
    - unionbuilder_add_single
    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:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 10
    functionLinenumber: 506
    functionLinenumberEnd: 510
    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:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 517
    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:552,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unionobject.c:554,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:555,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/unionobject.c:559,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unionobject.c:560,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:561,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Objects/unionobject.c:566,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Objects/unionobject.c:570,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Objects/unionobject.c:575,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/unionobject.c:581,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:585,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/unionobject.c:592,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:595,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:596,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unionobject.c:597,1
    - Dst: unionbuilder_finalize
      Src: /src/cpython/Objects/unionobject.c:598,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - ub
    argTypes:
    - unionbuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 600
    functionName: make_union
    functionSourceFile: /src/cpython/Objects/unionobject.c
    functionUses: 3
    functionsReached:
    - PyObject_GC_New
    - Py_INCREF
    - unionbuilder_finalize
    - _PyObject_GC_TRACK
    - PyErr_SetString
    - PyList_GET_ITEM
    - PyList_AsTuple
    - Py_XDECREF
    - PyFrozenSet_New
    - PyList_GET_SIZE
    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: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    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: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    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:88,1
    - Dst: SetDblFlag
      Src: /src/cpython/Objects/floatobject.c:106,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:107,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:108,1
    - Dst: SetDblFlag
      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: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:113,1
    - Dst: SetDblFlag
      Src: /src/cpython/Objects/floatobject.c:114,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:115,1
    - Dst: SetIntFlag
      Src: /src/cpython/Objects/floatobject.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 122
    functionName: PyFloat_GetInfo
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - SetIntFlag
    - PyStructSequence_New
    - SetDblFlag
    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: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    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: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    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: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    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:127,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/floatobject.c:129,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/floatobject.c:131,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/floatobject.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fval
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: PyFloat_FromDouble
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 86
    functionsReached:
    - PyObject_Malloc
    - _Py_FREELIST_POP
    - _PyObject_Init
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFloat_FromDouble(double fval)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/floatobject.c:146,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:150,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/floatobject.c:157,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Objects/floatobject.c:164,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:166,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:171,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:175,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - s
    - len
    - obj
    argTypes:
    - char*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 177
    functionName: float_from_string_inner
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - Py_ISSPACE
    - PyOS_string_to_double
    - PyErr_Occurred
    - PyErr_Format
    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:188,1
    - Dst: _PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/cpython/Objects/floatobject.c:189,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:192,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/floatobject.c:192,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/floatobject.c:194,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:195,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/floatobject.c:197,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/floatobject.c:198,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/floatobject.c:199,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/floatobject.c:201,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/floatobject.c:202,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/floatobject.c:203,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/floatobject.c:205,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/floatobject.c:209,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/floatobject.c:211,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/floatobject.c:214,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:217,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/floatobject.c:219,1
    - Dst: _Py_string_to_number_with_underscores
      Src: /src/cpython/Objects/floatobject.c:222,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/floatobject.c:224,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(s_buffer))
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (s != NULL)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 227
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 227
    functionName: PyFloat_FromString
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 5
    functionsReached:
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - PyBytes_AS_STRING
    - PyUnicode_IS_ASCII
    - _Py_string_to_number_with_underscores
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - PyUnicode_Check
    - PyBuffer_Release
    - PyUnicode_AsUTF8AndSize
    - PyByteArray_GET_SIZE
    - PyObject_GetBuffer
    - PyErr_Format
    - assert
    - Py_XDECREF
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_AS_STRING
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFloat_FromString(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:232,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/floatobject.c:232,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/floatobject.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyFloat_CheckExact(obj))
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 234
    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:239,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:239,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/floatobject.c:240,1
    - Dst: _PyFloat_ExactDealloc
      Src: /src/cpython/Objects/floatobject.c:241,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/floatobject.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyFloat_Check(op))
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: float_dealloc
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_Check
    - PyFloat_CheckExact
    - assert
    - _PyFloat_ExactDealloc
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void float_dealloc(PyObject *op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/floatobject.c:254,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:258,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:259,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/floatobject.c:262,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/floatobject.c:265,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/floatobject.c:269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:270,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:273,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/floatobject.c:274,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/floatobject.c:282,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:283,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/floatobject.c:284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:287,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/floatobject.c:290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:295,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:301,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 303
    functionName: PyFloat_AsDouble
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 61
    functionsReached:
    - PyFloat_AS_DOUBLE
    - PyLong_AsDouble
    - PyFloat_Check
    - PyErr_WarnFormat
    - PyFloat_CheckExact
    - PyErr_Format
    - _PyNumber_Index
    - Py_DECREF
    - 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: 316
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 316
    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:324,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/floatobject.c:325,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:326,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/floatobject.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - v
    - dbl
    argTypes:
    - PyObject**
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 336
    functionName: _Py_convert_int_to_double
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsDouble
    - Py_NewRef
    - PyErr_Occurred
    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:341,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/floatobject.c:345,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:345,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/floatobject.c:350,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/floatobject.c:351,1
    - Dst: strlen
      Src: /src/cpython/Objects/floatobject.c:351,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/floatobject.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 354
    functionName: float_repr
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyFloat_AS_DOUBLE
    - _PyUnicode_FromASCII
    - PyOS_double_to_string
    - _PyFloat_CAST
    - strlen
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_repr(PyObject *op)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:377,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:377,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:378,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: isfinite
      Src: /src/cpython/Objects/floatobject.c:386,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/floatobject.c:387,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/floatobject.c:397,1
    - Dst: PyLong_GetSign
      Src: /src/cpython/Objects/floatobject.c:402,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Objects/floatobject.c:413,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:414,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:415,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:415,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:424,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/floatobject.c:430,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:432,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:432,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:435,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:436,1
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:439,1
    - Dst: modf
      Src: /src/cpython/Objects/floatobject.c:462,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:490,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/floatobject.c:494,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/floatobject.c:497,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:499,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/floatobject.c:528,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 108
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyFloat_Check(v))
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (wsign != 0)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (vsign != 0)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (wsign != 0)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (j != -1.0 || ! PyErr_Occurred())
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (nbits64 >= 0)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 532
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 532
    functionName: float_richcompare
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - frexp
    - PyFloat_AS_DOUBLE
    - _PyLong_NumBits
    - modf
    - PyLong_FromDouble
    - PyLong_AsDouble
    - PyLong_GetSign
    - PyFloat_Check
    - isfinite
    - PyLong_Check
    - PyBool_FromLong
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    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:537,1
    - Dst: _Py_HashDouble
      Src: /src/cpython/Objects/floatobject.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: float_hash
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _Py_HashDouble
    - _PyFloat_CAST
    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:545,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:546,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: float_add
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - CONVERT_TO_DOUBLE
    - PyFloat_FromDouble
    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:555,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:556,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: float_sub
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - CONVERT_TO_DOUBLE
    - PyFloat_FromDouble
    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:565,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:566,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 569
    functionName: float_mul
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - CONVERT_TO_DOUBLE
    - PyFloat_FromDouble
    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:575,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:576,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:578,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 584
    functionName: float_div
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - CONVERT_TO_DOUBLE
    - PyFloat_FromDouble
    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:591,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:592,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:594,1
    - Dst: fmod
      Src: /src/cpython/Objects/floatobject.c:598,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:609,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 612
    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:618,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:637,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:641,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - vx
    - wx
    - floordiv
    - mod
    argTypes:
    - double
    - double
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 650
    functionName: _float_div_mod
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - fmod
    - copysign
    - floor
    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:657,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:658,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:660,1
    - Dst: _float_div_mod
      Src: /src/cpython/Objects/floatobject.c:663,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/floatobject.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 665
    functionName: float_divmod
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - CONVERT_TO_DOUBLE
    - Py_BuildValue
    - _float_div_mod
    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:672,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:673,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:675,1
    - Dst: _float_div_mod
      Src: /src/cpython/Objects/floatobject.c:678,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 680
    functionName: float_floor_div
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - CONVERT_TO_DOUBLE
    - PyFloat_FromDouble
    - _float_div_mod
    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: 685
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 685
    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:693,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:698,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:699,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:703,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:705,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:706,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:708,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:709,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:711,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:718,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:720,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:722,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:722,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:724,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:726,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/cpython/Objects/floatobject.c:731,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:733,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:733,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:735,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:736,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/cpython/Objects/floatobject.c:741,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:743,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:748,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:755,1
    - Dst: tp_as_number::nb_power
      Src: /src/cpython/Objects/floatobject.c:759,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/cpython/Objects/floatobject.c:766,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:781,1
    - Dst: pow
      Src: /src/cpython/Objects/floatobject.c:789,1
    - Dst: _Py_ADJUST_ERANGE1
      Src: /src/cpython/Objects/floatobject.c:790,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Objects/floatobject.c:798,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:802,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 803
    functionName: float_pow
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - floor
    - copysign
    - fabs
    - PyErr_SetString
    - CONVERT_TO_DOUBLE
    - PyFloat_FromDouble
    - isinf
    - DOUBLE_IS_ODD_INTEGER
    - tp_as_number::nb_power
    - pow
    - isnan
    - _Py_ADJUST_ERANGE1
    - PyErr_SetFromErrno
    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:810,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 812
    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:817,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:818,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 819
    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:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 826
    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:838,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:841,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:843,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:846,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Objects/floatobject.c:848,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/floatobject.c:852,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 853
    functionName: float_is_integer_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - floor
    - PyFloat_AsDouble
    - isfinite
    - PyErr_Occurred
    - PyErr_SetFromErrno
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_is_integer_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:865,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 866
    functionName: float___trunc___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromDouble
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___trunc___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:878,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:879,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 880
    functionName: float___floor___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromDouble
    - floor
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___floor___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/floatobject.c:892,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:893,1
    - Dst: ceil
      Src: /src/cpython/Objects/floatobject.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 894
    functionName: float___ceil___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromDouble
    - ceil
    - PyFloat_AS_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___ceil___impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_dtoa
      Src: /src/cpython/Objects/floatobject.c:917,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/floatobject.c:920,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/floatobject.c:929,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/floatobject.c:931,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/floatobject.c:936,1
    - Dst: _Py_dg_strtod
      Src: /src/cpython/Objects/floatobject.c:942,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:944,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:945,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:948,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/floatobject.c:952,1
    - Dst: _Py_dg_freedtoa
      Src: /src/cpython/Objects/floatobject.c:954,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - x
    - ndigits
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 956
    functionName: double_round
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _Py_dg_freedtoa
    - _Py_dg_strtod
    - fabs
    - PyErr_SetString
    - PyFloat_FromDouble
    - PyMem_Free
    - PyMem_Malloc
    - _Py_dg_dtoa
    - PyOS_snprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_round(double x, int ndigits)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/cpython/Objects/floatobject.c:970,1
    - Dst: pow
      Src: /src/cpython/Objects/floatobject.c:974,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:979,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:980,1
    - Dst: pow
      Src: /src/cpython/Objects/floatobject.c:983,1
    - Dst: round
      Src: /src/cpython/Objects/floatobject.c:988,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:989,1
    - Dst: round
      Src: /src/cpython/Objects/floatobject.c:991,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:999,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1000,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - x
    - ndigits
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 963
    functionDepth: 3
    functionLinenumber: 963
    functionLinenumberEnd: 1006
    functionName: double_round
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - fabs
    - PyFloat_FromDouble
    - PyErr_SetString
    - round
    - isfinite
    - pow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_round(double x, int ndigits)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/floatobject.c:1030,1
    - Dst: round
      Src: /src/cpython/Objects/floatobject.c:1034,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:1035,1
    - Dst: round
      Src: /src/cpython/Objects/floatobject.c:1037,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1038,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/floatobject.c:1042,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:1043,1
    - Dst: isfinite
      Src: /src/cpython/Objects/floatobject.c:1047,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1048,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1057,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1060,1
    - Dst: double_round
      Src: /src/cpython/Objects/floatobject.c:1063,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - o_ndigits
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1023
    functionDepth: 4
    functionLinenumber: 1023
    functionLinenumberEnd: 1066
    functionName: float___round___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - double_round
    - PyFloat_AsDouble
    - PyLong_FromDouble
    - fabs
    - PyFloat_FromDouble
    - PyNumber_AsSsize_t
    - round
    - isfinite
    - PyErr_Occurred
    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:1071,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/floatobject.c:1072,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1068
    functionDepth: 3
    functionLinenumber: 1068
    functionLinenumberEnd: 1077
    functionName: float_float
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_CheckExact
    - PyFloat_FromDouble
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_float(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_float
      Src: /src/cpython/Objects/floatobject.c:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1085
    functionDepth: 4
    functionLinenumber: 1085
    functionLinenumberEnd: 1090
    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:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts:
    - condition: (0 <= x && x < 16)
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 1099
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1099
    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: 1134
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1134
    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:1163,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:1165,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:1165,1
    - Dst: float_repr
      Src: /src/cpython/Objects/floatobject.c:1166,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:1169,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/floatobject.c:1170,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/floatobject.c:1172,1
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:1175,1
    - Dst: fabs
      Src: /src/cpython/Objects/floatobject.c:1175,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/floatobject.c:1176,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1177,1
    - Dst: char_from_hex
      Src: /src/cpython/Objects/floatobject.c:1181,1
    - Dst: char_from_hex
      Src: /src/cpython/Objects/floatobject.c:1188,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/floatobject.c:1202,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/floatobject.c:1204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1153
    functionDepth: 3
    functionLinenumber: 1153
    functionLinenumberEnd: 1205
    functionName: float_hex_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - frexp
    - copysign
    - fabs
    - float_repr
    - CONVERT_TO_DOUBLE
    - isinf
    - Py_MAX
    - PyUnicode_FromFormat
    - isnan
    - char_from_hex
    - ldexp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_hex_impl(PyObject *self)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/floatobject.c:1280,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/floatobject.c:1290,1
    - Dst: _Py_parse_inf_or_nan
      Src: /src/cpython/Objects/floatobject.c:1294,1
    - Dst: hex_from_char
      Src: /src/cpython/Objects/floatobject.c:1320,1
    - Dst: hex_from_char
      Src: /src/cpython/Objects/floatobject.c:1325,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/floatobject.c:1337,1
    - Dst: strtol
      Src: /src/cpython/Objects/floatobject.c:1352,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1367,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1381,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/floatobject.c:1394,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1400,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1401,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1409,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1410,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1418,1
    - Dst: HEX_DIGIT
      Src: /src/cpython/Objects/floatobject.c:1422,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1429,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1435,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/floatobject.c:1439,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1443,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:1445,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/floatobject.c:1445,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1450,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1455,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1460,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 137
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1463
    functionName: float_fromhex_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - HEX_DIGIT
    - PyFloat_FromDouble
    - _Py_parse_inf_or_nan
    - Py_SETREF
    - PyErr_SetString
    - Py_MAX
    - PyUnicode_AsUTF8AndSize
    - Py_MIN
    - Py_ISSPACE
    - strtol
    - PyObject_CallOneArg
    - hex_from_char
    - ldexp
    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: 1361
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1361
    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:1497,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:1499,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1500,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:1504,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1505,1
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:1510,1
    - Dst: floor
      Src: /src/cpython/Objects/floatobject.c:1512,1
    - Dst: PyLong_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1520,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/floatobject.c:1523,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/floatobject.c:1526,1
    - Dst: Py_ABS
      Src: /src/cpython/Objects/floatobject.c:1526,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:1532,1
    - Dst: PyNumberMethods*::nb_lshift
      Src: /src/cpython/Objects/floatobject.c:1533,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:1538,1
    - Dst: PyNumberMethods*::nb_lshift
      Src: /src/cpython/Objects/floatobject.c:1539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:1543,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/floatobject.c:1545,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:1548,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:1549,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/floatobject.c:1550,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1552
    functionName: float_as_integer_ratio_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - frexp
    - floor
    - PyLong_FromDouble
    - PyErr_SetString
    - CONVERT_TO_DOUBLE
    - Py_SETREF
    - isinf
    - isnan
    - Py_XDECREF
    - PyNumberMethods*::nb_lshift
    - Py_DECREF
    - Py_ABS
    - _PyTuple_FromPairSteal
    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:1572,1
    - Dst: float_subtype_new
      Src: /src/cpython/Objects/floatobject.c:1574,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1578,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/floatobject.c:1582,1
    - Dst: PyFloat_FromString
      Src: /src/cpython/Objects/floatobject.c:1583,1
    - Dst: PyNumber_Float
      Src: /src/cpython/Objects/floatobject.c:1584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - type
    - x
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1566
    functionDepth: 3
    functionLinenumber: 1566
    functionLinenumberEnd: 1585
    functionName: float_new_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - float_subtype_new
    - PyFloat_FromDouble
    - PyUnicode_CheckExact
    - PyNumber_Float
    - _PyLong_GetZero
    - PyFloat_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_new_impl(PyTypeObject *type, PyObject *x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:1597,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/floatobject.c:1597,1
    - Dst: float_new_impl
      Src: /src/cpython/Objects/floatobject.c:1598,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:1601,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Objects/floatobject.c:1601,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/floatobject.c:1602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:1604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/floatobject.c:1608,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: 1596
        line_start: 1596
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (PyFloat_Check(tmp))
      pos:
        line_end: 1600
        line_start: 1600
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 1610
      start: 1592
    functionDepth: 4
    functionLinenumber: 1592
    functionLinenumberEnd: 1610
    functionName: float_subtype_new
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - PyType_IsSubtype
    - float_new_impl
    - PyFloat_Check
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    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:1616,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/floatobject.c:1620,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/floatobject.c:1621,1
    - Dst: float_new_impl
      Src: /src/cpython/Objects/floatobject.c:1626,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/floatobject.c:1626,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: 1627
      start: 1612
    functionDepth: 4
    functionLinenumber: 1612
    functionLinenumberEnd: 1627
    functionName: float_vectorcall
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - float_new_impl
    - _PyArg_NoKwnames
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:1644,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/floatobject.c:1645,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/floatobject.c:1648,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/floatobject.c:1649,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/floatobject.c:1652,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/floatobject.c:1654,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/floatobject.c:1654,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - type
    - number
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1640
    functionDepth: 3
    functionLinenumber: 1640
    functionLinenumberEnd: 1657
    functionName: float_from_number_impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyFloat_AsDouble
    - PyFloat_FromDouble
    - Py_SETREF
    - PyFloat_CheckExact
    - PyErr_Occurred
    - PyObject_CallOneArg
    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:1668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1669
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Objects/floatobject.c:1693,1
    - Dst: strcmp
      Src: /src/cpython/Objects/floatobject.c:1693,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1694,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/floatobject.c:1699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - type
    - typestr
    argTypes:
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1689
    functionDepth: 1
    functionLinenumber: 1689
    functionLinenumberEnd: 1701
    functionName: float___getformat___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetString
    - strcmp
    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:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1703
    functionDepth: 4
    functionLinenumber: 1703
    functionLinenumberEnd: 1707
    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:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(v)
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1709
    functionDepth: 3
    functionLinenumber: 1709
    functionLinenumberEnd: 1713
    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:1731,1
    - Dst: _PyFloat_FormatAdvancedWriter
      Src: /src/cpython/Objects/floatobject.c:1732,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/floatobject.c:1735,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/floatobject.c:1737,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/floatobject.c:1740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1724
    functionDepth: 6
    functionLinenumber: 1724
    functionLinenumberEnd: 1741
    functionName: float___format___impl
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Dealloc
    - _PyFloat_FormatAdvancedWriter
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_InitBuiltin
      Src: /src/cpython/Objects/floatobject.c:1857,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/floatobject.c:1860,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/floatobject.c:1863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1864
    functionName: _PyFloat_InitTypes
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyStructSequence_InitBuiltin
    - _PyStatus_OK
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyFloat_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Objects/floatobject.c:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1870
    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:1876,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/floatobject.c:1878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1873
    functionDepth: 2
    functionLinenumber: 1873
    functionLinenumberEnd: 1880
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:1905,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:1909,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:1914,1
    - Dst: copysign
      Src: /src/cpython/Objects/floatobject.c:1915,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:1919,1
    - Dst: frexp
      Src: /src/cpython/Objects/floatobject.c:1933,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1935,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:1954,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:1965,1
    - Dst: assert
      Src: /src/cpython/Objects/floatobject.c:1966,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:1997,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 3
    argNames:
    - x
    - data
    - le
    argTypes:
    - double
    - char*
    - int
    assertStmts:
    - condition: (bits < 1024)
      pos:
        line_end: 1964
        line_start: 1964
        source_file: /src/cpython/Objects/floatobject.c
    - condition: (e < 31)
      pos:
        line_end: 1965
        line_start: 1965
        source_file: /src/cpython/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 2000
      start: 1894
    functionDepth: 1
    functionLinenumber: 1894
    functionLinenumberEnd: 2000
    functionName: PyFloat_Pack2
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 3
    functionsReached:
    - frexp
    - copysign
    - PyErr_SetString
    - isinf
    - memcpy
    - isnan
    - assert
    - ldexp
    linkageType: ''
    returnType: int
    signature: int PyFloat_Pack2(double x, char *data, int le)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:2009,1
    - Dst: isinf
      Src: /src/cpython/Objects/floatobject.c:2009,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/floatobject.c:2010,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:2016,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2019,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2023,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2028,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2033,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2049,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2054,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - x
    - data
    - le
    argTypes:
    - double
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2002
    functionDepth: 1
    functionLinenumber: 2002
    functionLinenumberEnd: 2066
    functionName: PyFloat_Pack4
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 8
    functionsReached:
    - memcpy
    - PyErr_SetString
    - isnan
    - isinf
    linkageType: ''
    returnType: int
    signature: int PyFloat_Pack4(double x, char *data, int le)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2073,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - x
    - data
    - le
    argTypes:
    - double
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2068
    functionDepth: 0
    functionLinenumber: 2068
    functionLinenumberEnd: 2087
    functionName: PyFloat_Pack8
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 8
    functionsReached:
    - memcpy
    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:2123,1
    - Dst: ldexp
      Src: /src/cpython/Objects/floatobject.c:2137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - data
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2143
    functionName: PyFloat_Unpack2
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 4
    functionsReached:
    - memcpy
    - ldexp
    linkageType: ''
    returnType: double
    signature: double PyFloat_Unpack2(const char *data, int le)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2159,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2162,1
    - Dst: isnan
      Src: /src/cpython/Objects/floatobject.c:2166,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2168,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2174,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2176,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2183,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2195,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - data
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2201
    functionName: PyFloat_Unpack4
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 7
    functionsReached:
    - memcpy
    - isnan
    linkageType: ''
    returnType: double
    signature: double PyFloat_Unpack4(const char *data, int le)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2217,1
    - Dst: memcpy
      Src: /src/cpython/Objects/floatobject.c:2220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - data
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2224
    functionName: PyFloat_Unpack8
    functionSourceFile: /src/cpython/Objects/floatobject.c
    functionUses: 8
    functionsReached:
    - memcpy
    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: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    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:47,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/bytesobject.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_Py_IsImmortal(empty))
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    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:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - hash
    argTypes:
    - PyBytesObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    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:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    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:105,1
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:112,1
    - Dst: PyObject_Calloc
      Src: /src/cpython/Objects/bytesobject.c:119,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/bytesobject.c:121,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:123,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/bytesobject.c:125,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:126,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: 104
        line_start: 104
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 131
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 131
    functionName: _PyBytes_FromSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InitVar
    - PyErr_NoMemory
    - PyErr_SetString
    - set_ob_shash
    - bytes_get_empty
    - PyObject_Malloc
    - PyObject_Calloc
    - 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:138,1
    - Dst: CHARACTER
      Src: /src/cpython/Objects/bytesobject.c:143,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:144,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/bytesobject.c:144,1
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:148,1
    - Dst: _PyBytes_FromSize
      Src: /src/cpython/Objects/bytesobject.c:151,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:157,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: 143
        line_start: 143
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 159
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 159
    functionName: PyBytes_FromStringAndSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 149
    functionsReached:
    - CHARACTER
    - PyErr_SetString
    - bytes_get_empty
    - _PyBytes_FromSize
    - _Py_IsImmortal
    - memcpy
    - assert
    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:167,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:168,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:170,1
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:176,1
    - Dst: CHARACTER
      Src: /src/cpython/Objects/bytesobject.c:179,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:180,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/bytesobject.c:180,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/bytesobject.c:185,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:187,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/bytesobject.c:189,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:190,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (_Py_IsImmortal(op))
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 193
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 193
    functionName: PyBytes_FromString
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 19
    functionsReached:
    - _PyObject_InitVar
    - PyErr_NoMemory
    - CHARACTER
    - PyErr_SetString
    - set_ob_shash
    - bytes_get_empty
    - PyObject_Malloc
    - _Py_IsImmortal
    - strlen
    - assert
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromString(const char *str)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:214,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:237,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:244,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Objects/bytesobject.c:249,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:270,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:272,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:283,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:283,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:286,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:286,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:289,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:289,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:291,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:291,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:292,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:297,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:297,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:300,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:300,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:303,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:303,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:305,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:305,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:306,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:310,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:310,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:311,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:311,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:312,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:316,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:316,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:317,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:317,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:318,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:325,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:327,1
    - Dst: WRITE_BYTES_LEN
      Src: /src/cpython/Objects/bytesobject.c:335,1
    - Dst: sprintf
      Src: /src/cpython/Objects/bytesobject.c:340,1
    - Dst: va_arg
      Src: /src/cpython/Objects/bytesobject.c:340,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:341,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:341,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytesobject.c:346,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:346,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:350,1
    - Dst: WRITE_BYTES
      Src: /src/cpython/Objects/bytesobject.c:359,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 109
    argCount: 4
    argNames:
    - writer
    - writer_pos
    - format
    - vargs
    argTypes:
    - PyBytesWriter*
    - Py_ssize_t
    - char*
    - va_list
    assertStmts:
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 371
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 371
    functionName: bytes_fromformat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_ISALPHA
    - memmove
    - PyErr_SetString
    - WRITE_BYTES
    - Py_ISDIGIT
    - WRITE_BYTES_LEN
    - strlen
    - assert
    - PyBytesWriter_GetData
    - va_arg
    - sprintf
    linkageType: ''
    returnType: char
    signature: "char *\nbytes_fromformat(PyBytesWriter *writer, Py_ssize_t writer_pos,\n
      \                const char *format, va_list vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - len_expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: WRITE_BYTES_LEN
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_BYTES_LEN(str, len_expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: WRITE_BYTES
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_BYTES(str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:377,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/bytesobject.c:378,1
    - Dst: bytes_fromformat
      Src: /src/cpython/Objects/bytesobject.c:383,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:385,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/bytesobject.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - format
    - vargs
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 390
    functionName: PyBytes_FromFormatV
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - bytes_fromformat
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - strlen
    - PyBytesWriter_FinishWithPointer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromFormatV(const char *format, va_list vargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Objects/bytesobject.c:399,1
    - Dst: PyBytes_FromFormatV
      Src: /src/cpython/Objects/bytesobject.c:400,1
    - Dst: va_end
      Src: /src/cpython/Objects/bytesobject.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 403
    functionName: PyBytes_FromFormat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - va_end
    - PyBytes_FromFormatV
    - va_start
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromFormat(const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - EXC
    - ','
    - FMT
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 421
    functionName: FORMAT_ERROR
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORMAT_ERROR(EXC, FMT, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Objects/bytesobject.c:429,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - args
    - arglen
    - p_argidx
    - allowone
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 439
    functionName: getnextarg
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void getnextarg(PyObject *args, Py_ssize_t arglen, Py_ssize_t *p_argidx,
      int allowone)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/bytesobject.c:454,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:455,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:456,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:457,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/bytesobject.c:470,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:475,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/bytesobject.c:477,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytesobject.c:479,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:482,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytesobject.c:483,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:488,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/bytesobject.c:489,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 9
    argNames:
    - v
    - argidx
    - key
    - flags
    - prec
    - type
    - p_result
    - writer
    - str
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - int
    - int
    - int
    - PyObject**
    - PyBytesWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 443
    functionDepth: 4
    functionLinenumber: 443
    functionLinenumberEnd: 492
    functionName: formatfloat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - FORMAT_ERROR
    - PyFloat_AsDouble
    - PyBytes_FromStringAndSize
    - PyOS_double_to_string
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - strlen
    - PyBytesWriter_GrowAndUpdatePointer
    - PyMem_Free
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *\nformatfloat(PyObject *v, Py_ssize_t argidx, PyObject *key,\n
      \           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:499,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/cpython/Objects/bytesobject.c:500,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Objects/bytesobject.c:501,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/bytesobject.c:504,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Objects/bytesobject.c:506,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:508,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:508,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/cpython/Objects/bytesobject.c:509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:510,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:513,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 6
    argNames:
    - v
    - argidx
    - key
    - flags
    - prec
    - type
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (PyLong_Check(iobj))
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 523
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 523
    functionName: formatlong
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - FORMAT_ERROR
    - PyNumber_Check
    - PyLong_Check
    - PyNumber_Long
    - PyErr_ExceptionMatches
    - assert
    - _PyNumber_Index
    - _PyUnicode_FormatLong
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nformatlong(PyObject *v, Py_ssize_t argidx, PyObject *key,\n
      \          int flags, int prec, int type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:528,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:529,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:530,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:533,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:536,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytesobject.c:539,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:540,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:541,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:544,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:547,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Objects/bytesobject.c:550,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/bytesobject.c:552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:553,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:558,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:565,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - arg
    - argidx
    - key
    - p
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 570
    functionName: byte_converter
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - FORMAT_ERROR
    - PyBytes_Check
    - PyByteArray_GET_SIZE
    - PyIndex_Check
    - PyBytes_AS_STRING
    - PyErr_Occurred
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: int byte_converter(PyObject *arg, Py_ssize_t argidx, PyObject *key,
      char *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:580,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:581,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:582,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:583,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytesobject.c:585,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:586,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:587,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:588,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/bytesobject.c:591,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/bytesobject.c:591,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/bytesobject.c:593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:594,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:597,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:598,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:601,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:604,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:605,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytesobject.c:609,1
    - Dst: _PyBytes_FromBuffer
      Src: /src/cpython/Objects/bytesobject.c:611,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:614,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:615,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:618,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 5
    argNames:
    - v
    - argidx
    - key
    - pbuf
    - plen
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 623
    functionName: format_obj
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - PyByteArray_AS_STRING
    - _PyBytes_FromBuffer
    - FORMAT_ERROR
    - _PyObject_LookupSpecial
    - PyBytes_Check
    - _PyObject_CallNoArgs
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - Py_NewRef
    - PyObject_CheckBuffer
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nformat_obj(PyObject *v, Py_ssize_t argidx, PyObject *key,\n
      \          const char **pbuf, Py_ssize_t *plen)"
  - BBCount: 118
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:639,1
    - Dst: _PyBytesWriter_CreateByteArray
      Src: /src/cpython/Objects/bytesobject.c:647,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/bytesobject.c:650,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:655,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/bytesobject.c:657,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:658,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:665,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:665,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/bytesobject.c:666,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:666,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:666,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytesobject.c:667,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytesobject.c:676,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:681,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:683,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:710,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:718,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:736,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:747,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/bytesobject.c:750,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:760,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:783,1
    - Dst: getnextarg
      Src: /src/cpython/Objects/bytesobject.c:789,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:792,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:793,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:796,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:797,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:798,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:799,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:811,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:814,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:815,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:818,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:834,1
    - Dst: getnextarg
      Src: /src/cpython/Objects/bytesobject.c:840,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:843,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:844,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/bytesobject.c:848,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:849,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:850,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/bytesobject.c:851,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:861,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:864,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/bytesobject.c:865,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:868,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:884,1
    - Dst: getnextarg
      Src: /src/cpython/Objects/bytesobject.c:889,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Objects/bytesobject.c:904,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:907,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/bytesobject.c:907,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/bytesobject.c:908,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/bytesobject.c:909,1
    - Dst: format_obj
      Src: /src/cpython/Objects/bytesobject.c:917,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:930,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/bytesobject.c:942,1
    - Dst: _PyLong_FormatBytesWriter
      Src: /src/cpython/Objects/bytesobject.c:958,1
    - Dst: formatlong
      Src: /src/cpython/Objects/bytesobject.c:965,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:968,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/bytesobject.c:968,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/bytesobject.c:969,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/bytesobject.c:970,1
    - Dst: formatfloat
      Src: /src/cpython/Objects/bytesobject.c:986,1
    - Dst: formatfloat
      Src: /src/cpython/Objects/bytesobject.c:992,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:994,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:995,1
    - Dst: byte_converter
      Src: /src/cpython/Objects/bytesobject.c:1003,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Objects/bytesobject.c:1014,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1015,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1020,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1028,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1036,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1041,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/bytesobject.c:1067,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:1069,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1089,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1090,1
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:1103,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1114,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1115,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:1122,1
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:1127,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1133,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:1135,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:1138,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1142,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1148,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1152,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:1160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:1162,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/bytesobject.c:1164,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:1167,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:1168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:1170,1
    CyclomaticComplexity: 179
    EdgeCount: 179
    ICount: 423
    argCount: 4
    argNames:
    - format
    - format_len
    - args
    - use_bytearray
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts:
    - condition: (writer->overallocate || fmtcnt == 0 || use_bytearray)
      pos:
        line_end: 1147
        line_start: 1147
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (pbuf[1] == c)
      pos:
        line_end: 1089
        line_start: 1089
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyUnicode_IS_ASCII(temp))
      pos:
        line_end: 906
        line_start: 906
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (pbuf[0] == '0')
      pos:
        line_end: 1088
        line_start: 1088
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (pbuf[1] == c)
      pos:
        line_end: 1114
        line_start: 1114
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (pbuf[0] == '0')
      pos:
        line_end: 1113
        line_start: 1113
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: ((res - before) == alloc)
      pos:
        line_end: 1141
        line_start: 1141
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyUnicode_IS_ASCII(temp))
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (len != 0)
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1173
      start: 627
    functionDepth: 5
    functionLinenumber: 627
    functionLinenumberEnd: 1173
    functionName: _PyBytes_FormatEx
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_ISALPHA
    - FORMAT_ERROR
    - PyUnicode_IS_ASCII
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - Py_CHARMASK
    - Py_ISDIGIT
    - byte_converter
    - memcpy
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - getnextarg
    - PyTuple_GET_SIZE
    - _PyBytesWriter_CreateByteArray
    - Py_TYPE
    - PyUnicode_1BYTE_DATA
    - format_obj
    - PyUnicode_Check
    - formatfloat
    - Py_UNREACHABLE
    - PyLong_Check
    - Py_XDECREF
    - PyBytes_AS_STRING
    - memchr
    - PyBytesWriter_FinishWithPointer
    - PyLong_AsSsize_t
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyObject_GetItem
    - PyErr_BadInternalCall
    - PyBytesWriter_Discard
    - PyLong_CheckExact
    - Py_DECREF
    - PyBytesWriter_GetData
    - PyBytes_GET_SIZE
    - PyLong_AsInt
    - formatlong
    - Py_CLEAR
    - _PyLong_FormatBytesWriter
    - memset
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - PyBytesWriter_GrowAndUpdatePointer
    - PyByteArray_Check
    - PyObject_ASCII
    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_Create
      Src: /src/cpython/Objects/bytesobject.c:1182,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:1186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1200,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1240,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1241,1
    - Dst: strcmp
      Src: /src/cpython/Objects/bytesobject.c:1250,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1251,1
    - Dst: strcmp
      Src: /src/cpython/Objects/bytesobject.c:1256,1
    - Dst: strcmp
      Src: /src/cpython/Objects/bytesobject.c:1258,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1261,1
    - Dst: Py_ISXDIGIT
      Src: /src/cpython/Objects/bytesobject.c:1268,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/bytesobject.c:1283,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:1286,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 113
    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: 1288
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1288
    functionName: _PyBytes_DecodeEscape2
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_FinishWithPointer
    - Py_CHARMASK
    - Py_ISXDIGIT
    - PyBytesWriter_Discard
    - PyErr_Format
    - PyBytesWriter_GetData
    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:1298,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/bytesobject.c:1305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:1310,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/bytesobject.c:1315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:1320,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: 1326
      start: 1290
    functionDepth: 2
    functionLinenumber: 1290
    functionLinenumberEnd: 1326
    functionName: PyBytes_DecodeEscape
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - _PyBytes_DecodeEscape2
    - Py_DECREF
    - PyErr_WarnFormat
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyBytes_DecodeEscape(const char *s,\n                                Py_ssize_t
      len,\n                                const char *errors,\n                                Py_ssize_t
      Py_UNUSED(unicode),\n                                const char *Py_UNUSED(recode_encoding))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1333,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1334,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1335,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1339
    functionName: PyBytes_Size
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 11
    functionsReached:
    - Py_SIZE
    - PyBytes_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyBytes_Size(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1344,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1345,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1350
    functionName: PyBytes_AsString
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 22
    functionsReached:
    - PyBytes_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: char
    signature: 'char *

      PyBytes_AsString(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:1358,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1362,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1363,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1364,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1368,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1370,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:1371,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1371,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - obj
    - s
    - len
    argTypes:
    - PyObject*
    - char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1377
    functionName: PyBytes_AsStringAndSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 9
    functionsReached:
    - PyBytes_Check
    - PyErr_SetString
    - PyErr_BadInternalCall
    - PyErr_Format
    - PyBytes_AS_STRING
    - strlen
    - PyBytes_GET_SIZE
    - Py_TYPE
    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: 1383
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1383
    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:1404,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1405,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1413,1
    - Dst: stringlib_find
      Src: /src/cpython/Objects/bytesobject.c:1414,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:1418,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: 1403
        line_start: 1403
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (len_haystack >= 1)
      pos:
        line_end: 1412
        line_start: 1412
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (len_needle >= 0)
      pos:
        line_end: 1404
        line_start: 1404
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1423
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1423
    functionName: _PyBytes_Find
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - memcmp
    - stringlib_find
    - assert
    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:1430,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: 1432
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1432
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_repr
      Src: /src/cpython/Objects/bytesobject.c:1437,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1437,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - smartquotes
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1439
    functionName: PyBytes_Repr
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - _Py_bytes_repr
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_Repr(PyObject *obj, int smartquotes)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/bytesobject.c:1479,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/bytesobject.c:1483,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:1506,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/bytesobject.c:1506,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1510,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 4
    argNames:
    - data
    - length
    - smartquotes
    - classname
    argTypes:
    - char*
    - Py_ssize_t
    - int
    - char*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(v, 1))
      pos:
        line_end: 1505
        line_start: 1505
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1513
      start: 1441
    functionDepth: 1
    functionLinenumber: 1441
    functionLinenumberEnd: 1513
    functionName: _Py_bytes_repr
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_New
    - PyErr_Format
    - assert
    - _PyUnicode_CheckConsistency
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_repr(const char *data, Py_ssize_t length, int
      smartquotes,\n               const char *classname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Repr
      Src: /src/cpython/Objects/bytesobject.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1515
    functionDepth: 2
    functionLinenumber: 1515
    functionLinenumberEnd: 1519
    functionName: bytes_repr
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    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:1524,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytesobject.c:1525,1
    - Dst: bytes_repr
      Src: /src/cpython/Objects/bytesobject.c:1530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1531
    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:1536,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1538
    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:1549,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:1550,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1551,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1552,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1552,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1557,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1558,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1561,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1562,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:1567,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:1571,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:1573,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1573,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:1574,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1574,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:1579,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:1581,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1541
    functionDepth: 4
    functionLinenumber: 1541
    functionLinenumberEnd: 1583
    functionName: _PyBytes_Concat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - PyBuffer_Release
    - PyBytes_CheckExact
    - memcpy
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyObject_GetBuffer
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_Concat(PyObject *a, PyObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1588,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1594,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1595,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1599,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1600,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1600,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1601,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1605,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/bytesobject.c:1609,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:1611,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/bytesobject.c:1613,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:1614,1
    - Dst: _PyBytes_RepeatBuffer
      Src: /src/cpython/Objects/bytesobject.c:1617,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1617,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1585
    functionDepth: 2
    functionLinenumber: 1585
    functionLinenumberEnd: 1620
    functionName: _PyBytes_Repeat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_InitVar
    - PyErr_NoMemory
    - PyErr_SetString
    - set_ob_shash
    - Py_SIZE
    - _PyBytes_CAST
    - PyBytes_CheckExact
    - PyObject_Malloc
    - _PyBytes_RepeatBuffer
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_Repeat(PyObject *self, Py_ssize_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_contains
      Src: /src/cpython/Objects/bytesobject.c:1625,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1625,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1622
    functionDepth: 2
    functionLinenumber: 1622
    functionLinenumberEnd: 1626
    functionName: bytes_contains
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - _Py_bytes_contains
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int bytes_contains(PyObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1631,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1632,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1633,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytesobject.c:1636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1637
    functionName: bytes_item
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - PyErr_SetString
    - _PyLong_FromUnsignedChar
    - Py_SIZE
    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:1645,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1646,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:1652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyBytesObject*
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1654
    functionName: bytes_compare_eq
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - memcmp
    - Py_SIZE
    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:1660,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:1660,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/bytesobject.c:1661,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:1662,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:1662,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytesobject.c:1663,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:1667,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/bytesobject.c:1667,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytesobject.c:1668,1
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1676,1
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1677,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/bytesobject.c:1690,1
    - Dst: bytes_compare_eq
      Src: /src/cpython/Objects/bytesobject.c:1695,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytesobject.c:1697,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1700,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1701,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytesobject.c:1702,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1705,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:1705,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:1707,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/bytesobject.c:1713,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/bytesobject.c:1715,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 3
    argNames:
    - aa
    - bb
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1717
    functionName: bytes_richcompare
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - bytes_compare_eq
    - PyErr_WarnEx
    - memcmp
    - PyBytes_Check
    - PyUnicode_Check
    - Py_SIZE
    - _PyBytes_CAST
    - PyLong_Check
    - Py_MIN
    - PyBool_FromLong
    - Py_CHARMASK
    - PyErr_BadArgument
    - _Py_GetConfig
    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:1722,1
    - Dst: get_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:1723,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/bytesobject.c:1726,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1726,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:1727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1730
    functionName: bytes_hash
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - set_ob_shash
    - Py_SIZE
    - _PyBytes_CAST
    - get_ob_shash
    - Py_HashBuffer
    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:1735,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytesobject.c:1736,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:1737,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:1738,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1741,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1742,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:1743,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytesobject.c:1747,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/bytesobject.c:1749,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/bytesobject.c:1756,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/bytesobject.c:1759,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1759,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/bytesobject.c:1763,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1766,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:1767,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1768,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:1771,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1772,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1776,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:1777,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1781,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:1791,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:1793,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1732
    functionDepth: 4
    functionLinenumber: 1732
    functionLinenumberEnd: 1796
    functionName: bytes_subscript
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PySlice_Check
    - _PyLong_FromUnsignedChar
    - PySlice_AdjustIndices
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - _PyBytes_CAST
    - _PyIndex_Check
    - PyBytes_CheckExact
    - PySlice_Unpack
    - PyErr_Occurred
    - PyBytes_AS_STRING
    - PyErr_Format
    - PyBytes_GET_SIZE
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_subscript(PyObject *op, PyObject* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:1801,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Objects/bytesobject.c:1802,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - op
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1804
    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:1838,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:1839,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:1842,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1834
    functionDepth: 4
    functionLinenumber: 1834
    functionLinenumberEnd: 1844
    functionName: bytes___bytes___impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBytes_CheckExact
    - Py_NewRef
    - 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:1870,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1871,1
    - Dst: stringlib_split_whitespace
      Src: /src/cpython/Objects/bytesobject.c:1878,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:1879,1
    - Dst: stringlib_split
      Src: /src/cpython/Objects/bytesobject.c:1884,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:1885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1866
    functionDepth: 2
    functionLinenumber: 1866
    functionLinenumberEnd: 1887
    functionName: bytes_split_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_split_whitespace
    - PyBuffer_Release
    - PyObject_GetBuffer
    - stringlib_split
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    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:1909,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1911,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1905
    functionDepth: 1
    functionLinenumber: 1905
    functionLinenumberEnd: 1914
    functionName: bytes_partition_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_partition
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_partition_impl(PyBytesObject *self, Py_buffer *sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_rpartition
      Src: /src/cpython/Objects/bytesobject.c:1937,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1939,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1933
    functionDepth: 1
    functionLinenumber: 1933
    functionLinenumberEnd: 1942
    functionName: bytes_rpartition_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_rpartition
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rpartition_impl(PyBytesObject *self, Py_buffer *sep)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:1958,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:1959,1
    - Dst: stringlib_rsplit_whitespace
      Src: /src/cpython/Objects/bytesobject.c:1966,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:1967,1
    - Dst: stringlib_rsplit
      Src: /src/cpython/Objects/bytesobject.c:1972,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:1973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1954
    functionDepth: 2
    functionLinenumber: 1954
    functionLinenumberEnd: 1975
    functionName: bytes_rsplit_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - stringlib_rsplit_whitespace
    - PyBytes_AS_STRING
    - stringlib_rsplit
    - PyObject_GetBuffer
    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:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 1998
    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:2004,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:2007,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:2008,1
    - Dst: stringlib_bytes_join
      Src: /src/cpython/Objects/bytesobject.c:2013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sep
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2014
    functionName: PyBytes_Join
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 5
    functionsReached:
    - PyErr_BadInternalCall
    - PyBytes_Check
    - 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:2038,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2038,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2038,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: 2040
      start: 2033
    functionDepth: 4
    functionLinenumber: 2033
    functionLinenumberEnd: 2040
    functionName: bytes_find_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_find
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    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:2056,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2056,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2056,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: 2058
      start: 2051
    functionDepth: 4
    functionLinenumber: 2051
    functionLinenumberEnd: 2058
    functionName: bytes_index_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_bytes_index
    - PyBytes_AS_STRING
    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:2074,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2074,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2074,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: 2076
      start: 2069
    functionDepth: 4
    functionLinenumber: 2069
    functionLinenumberEnd: 2076
    functionName: bytes_rfind_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_bytes_rfind
    - PyBytes_AS_STRING
    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:2092,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2092,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2092,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: 2094
      start: 2087
    functionDepth: 4
    functionLinenumber: 2087
    functionLinenumberEnd: 2094
    functionName: bytes_rindex_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_bytes_rindex
    - PyBytes_AS_STRING
    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:2101,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2102,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2107,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytesobject.c:2114,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2114,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytesobject.c:2123,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2123,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2127,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2129,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2130,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2133,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - self
    - striptype
    - sepobj
    argTypes:
    - PyBytesObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2098
    functionDepth: 4
    functionLinenumber: 2098
    functionLinenumberEnd: 2134
    functionName: do_xstrip
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_CHARMASK
    - PyBuffer_Release
    - PyBytes_CheckExact
    - PyObject_GetBuffer
    - PyBytes_AS_STRING
    - memchr
    - PyBytes_GET_SIZE
    - Py_NewRef
    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:2140,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2141,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytesobject.c:2145,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytesobject.c:2154,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2158,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2159,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - self
    - striptype
    argTypes:
    - PyBytesObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2138
    functionDepth: 4
    functionLinenumber: 2138
    functionLinenumberEnd: 2163
    functionName: do_strip
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBytes_CheckExact
    - Py_ISSPACE
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void do_strip(PyBytesObject *self, int striptype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_xstrip
      Src: /src/cpython/Objects/bytesobject.c:2170,1
    - Dst: do_strip
      Src: /src/cpython/Objects/bytesobject.c:2172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - striptype
    - bytes
    argTypes:
    - PyBytesObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2167
    functionDepth: 5
    functionLinenumber: 2167
    functionLinenumberEnd: 2173
    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:2191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2187
    functionDepth: 0
    functionLinenumber: 2187
    functionLinenumberEnd: 2192
    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:2209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2210
    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:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2228
    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:2243,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2243,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2243,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: 2245
      start: 2238
    functionDepth: 3
    functionLinenumber: 2238
    functionLinenumberEnd: 2245
    functionName: bytes_count_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_bytes_count
    - PyBytes_AS_STRING
    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:2281,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2282,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2283,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2290,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2297,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2299,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:2304,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2305,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2306,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2309,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2310,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2322,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2323,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2325,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2326,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2329,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2330,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2335,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2341,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:2342,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2342,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytesobject.c:2343,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2343,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2346,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2347,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2353,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2356,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2358,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2361,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2362,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2365,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytesobject.c:2367,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2372,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2373,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytesobject.c:2377,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 3
    argNames:
    - self
    - table
    - deletechars
    argTypes:
    - PyBytesObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2264
    functionDepth: 4
    functionLinenumber: 2264
    functionLinenumberEnd: 2379
    functionName: bytes_translate_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcmp
    - PyBytes_Check
    - PyErr_SetString
    - Py_SETREF
    - PyBuffer_Release
    - Py_CHARMASK
    - PyBytes_CheckExact
    - _PyBytes_Resize
    - PyObject_GetBuffer
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_NewRef
    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:2404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2400
    functionDepth: 2
    functionLinenumber: 2400
    functionLinenumberEnd: 2405
    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:2429,1
    - Dst: buf::buf
      Src: /src/cpython/Objects/bytesobject.c:2431,1
    - Dst: len::len
      Src: /src/cpython/Objects/bytesobject.c:2431,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: 2432
      start: 2424
    functionDepth: 1
    functionLinenumber: 2424
    functionLinenumberEnd: 2432
    functionName: bytes_replace_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - len::len
    - stringlib_replace
    - 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:2454,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2455,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:2461,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2463,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2467,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2468,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2450
    functionDepth: 4
    functionLinenumber: 2450
    functionLinenumberEnd: 2472
    functionName: bytes_removeprefix_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcmp
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - Py_NewRef
    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:2492,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2493,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytesobject.c:2499,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2502,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:2506,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:2507,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:2510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - self
    - suffix
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2488
    functionDepth: 4
    functionLinenumber: 2488
    functionLinenumberEnd: 2511
    functionName: bytes_removesuffix_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcmp
    - PyBytes_CheckExact
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    - Py_NewRef
    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:2534,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2534,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2534,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: 2536
      start: 2529
    functionDepth: 3
    functionLinenumber: 2529
    functionLinenumberEnd: 2536
    functionName: bytes_startswith_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_bytes_startswith
    - PyBytes_AS_STRING
    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:2559,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2559,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2559,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: 2561
      start: 2554
    functionDepth: 3
    functionLinenumber: 2554
    functionLinenumberEnd: 2561
    functionName: bytes_endswith_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_endswith
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    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:2584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyBytesObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2585
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2585
    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:2604,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2605,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyBytesObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2600
    functionDepth: 1
    functionLinenumber: 2600
    functionLinenumberEnd: 2608
    functionName: bytes_splitlines_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_splitlines
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    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:2627,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytesobject.c:2629,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/bytesobject.c:2629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2623
    functionDepth: 1
    functionLinenumber: 2623
    functionLinenumberEnd: 2632
    functionName: bytes_fromhex_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_FromHex
    - Py_SETREF
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_fromhex_impl(PyTypeObject *type, PyObject *string)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:2644,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/bytesobject.c:2645,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/bytesobject.c:2647,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/bytesobject.c:2648,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/bytesobject.c:2649,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/bytesobject.c:2654,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:2661,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/bytesobject.c:2661,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/bytesobject.c:2662,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytesobject.c:2664,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:2665,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:2672,1
    - Dst: _PyBytesWriter_CreateByteArray
      Src: /src/cpython/Objects/bytesobject.c:2680,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/bytesobject.c:2683,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:2688,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytesobject.c:2694,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/bytesobject.c:2697,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2725,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/bytesobject.c:2727,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2731,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:2734,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:2738,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2742,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 2
    argNames:
    - string
    - use_bytearray
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyUnicode_KIND(string) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2660
        line_start: 2660
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 2745
      start: 2634
    functionDepth: 2
    functionLinenumber: 2634
    functionLinenumberEnd: 2745
    functionName: _PyBytes_FromHex
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_IS_ASCII
    - assert
    - _PyBytesWriter_CreateByteArray
    - PyObject_GetBuffer
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_Check
    - Py_ISSPACE
    - PyBytesWriter_FinishWithPointer
    - PyObject_CheckBuffer
    - PyUnicode_READ
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyBytesWriter_GetData
    - PyBuffer_Release
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:2774,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2775,1
    - Dst: _Py_strhex_with_sep
      Src: /src/cpython/Objects/bytesobject.c:2776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2777
      start: 2770
    functionDepth: 1
    functionLinenumber: 2770
    functionLinenumberEnd: 2777
    functionName: bytes_hex_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_strhex_with_sep
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_hex_impl(PyBytesObject *self, PyObject *sep, Py_ssize_t bytes_per_sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:2782,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytesobject.c:2783,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2779
    functionDepth: 1
    functionLinenumber: 2779
    functionLinenumberEnd: 2784
    functionName: bytes_getnewargs
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - Py_SIZE
    - Py_BuildValue
    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:2849,1
    - Dst: _PyBytes_FormatEx
      Src: /src/cpython/Objects/bytesobject.c:2852,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:2852,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2846
    functionDepth: 6
    functionLinenumber: 2846
    functionLinenumberEnd: 2854
    functionName: bytes_mod
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_FormatEx
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_mod(PyObject *self, PyObject *arg)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2887,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/bytesobject.c:2893,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:2897,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2898,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Objects/bytesobject.c:2902,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2905,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:2906,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/bytesobject.c:2914,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/bytesobject.c:2914,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/bytesobject.c:2915,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2916,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:2919,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:2920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:2923,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2927,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:2929,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2930,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytesobject.c:2935,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:2936,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:2937,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:2938,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytesobject.c:2940,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Objects/bytesobject.c:2941,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:2945,1
    - Dst: _PyBytes_FromSize
      Src: /src/cpython/Objects/bytesobject.c:2948,1
    - Dst: PyBytes_FromObject
      Src: /src/cpython/Objects/bytesobject.c:2952,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytesobject.c:2956,1
    - Dst: bytes_subtype_new
      Src: /src/cpython/Objects/bytesobject.c:2956,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 4
    argNames:
    - type
    - x
    - encoding
    - errors
    argTypes:
    - PyTypeObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2876
    functionDepth: 3
    functionLinenumber: 2876
    functionLinenumberEnd: 2960
    functionName: bytes_new_impl
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_LookupSpecial
    - PyBytes_Check
    - _PyIndex_Check
    - PyBytes_FromObject
    - PyErr_Occurred
    - bytes_subtype_new
    - PyUnicode_Check
    - _PyBytes_FromSize
    - _PyObject_CallNoArgs
    - PyUnicode_AsEncodedString
    - PyErr_SetString
    - PyErr_Clear
    - Py_DECREF
    - Py_GetConstant
    - PyNumber_AsSsize_t
    - Py_SETREF
    - PyErr_ExceptionMatches
    - PyErr_Format
    - _Py_ID
    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:2966,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/bytesobject.c:2969,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/bytesobject.c:2974,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:2974,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2979,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:2980,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:2983,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:2984,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2962
    functionDepth: 2
    functionLinenumber: 2962
    functionLinenumberEnd: 2986
    functionName: _PyBytes_FromBuffer
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBytesWriter_Create
    - PyBuffer_Release
    - PyBytesWriter_Discard
    - PyBuffer_ToContiguous
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromBuffer(PyObject *x)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2991,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/bytesobject.c:2992,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:2996,1
    - Dst: _PyBytesWriter_GetAllocated
      Src: /src/cpython/Objects/bytesobject.c:2997,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:2999,1
    - Dst: _PyList_GetItemRef
      Src: /src/cpython/Objects/bytesobject.c:3000,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:3004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3005,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:3006,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:3010,1
    - Dst: _PyBytesWriter_ResizeAndUpdatePointer
      Src: /src/cpython/Objects/bytesobject.c:3016,1
    - Dst: _PyBytesWriter_GetAllocated
      Src: /src/cpython/Objects/bytesobject.c:3020,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/bytesobject.c:3024,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:3027,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 2988
    functionDepth: 3
    functionLinenumber: 2988
    functionLinenumberEnd: 3029
    functionName: _PyBytes_FromList
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyList_GetItemRef
    - PyBytesWriter_Create
    - _PyBytesWriter_GetAllocated
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - PyErr_Occurred
    - PyBytesWriter_GetData
    - _PyBytesWriter_ResizeAndUpdatePointer
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromList(PyObject *x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3034,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/bytesobject.c:3038,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:3042,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/bytesobject.c:3045,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:3046,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:3047,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:3051,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Objects/bytesobject.c:3057,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:3060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3031
    functionDepth: 3
    functionLinenumber: 3031
    functionLinenumberEnd: 3062
    functionName: _PyBytes_FromTuple
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyBytesWriter_Discard
    - PyErr_Occurred
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromTuple(PyObject *x)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_LengthHint
      Src: /src/cpython/Objects/bytesobject.c:3070,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:3071,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/bytesobject.c:3074,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:3078,1
    - Dst: _PyBytesWriter_GetAllocated
      Src: /src/cpython/Objects/bytesobject.c:3079,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/bytesobject.c:3087,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:3089,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytesobject.c:3095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3096,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:3097,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:3102,1
    - Dst: _PyBytesWriter_ResizeAndUpdatePointer
      Src: /src/cpython/Objects/bytesobject.c:3109,1
    - Dst: _PyBytesWriter_GetAllocated
      Src: /src/cpython/Objects/bytesobject.c:3113,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/bytesobject.c:3117,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:3120,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - it
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3122
      start: 3064
    functionDepth: 4
    functionLinenumber: 3064
    functionLinenumberEnd: 3122
    functionName: _PyBytes_FromIterator
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_Create
    - _PyBytesWriter_GetAllocated
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyBytesWriter_FinishWithPointer
    - PyBytesWriter_Discard
    - PyObject_LengthHint
    - PyErr_Occurred
    - PyBytesWriter_GetData
    - _PyBytesWriter_ResizeAndUpdatePointer
    - Py_DECREF
    - PyIter_Next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromIterator(PyObject *it, PyObject *x)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:3130,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3134,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:3135,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytesobject.c:3139,1
    - Dst: _PyBytes_FromBuffer
      Src: /src/cpython/Objects/bytesobject.c:3140,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3142,1
    - Dst: _PyBytes_FromList
      Src: /src/cpython/Objects/bytesobject.c:3143,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3145,1
    - Dst: _PyBytes_FromTuple
      Src: /src/cpython/Objects/bytesobject.c:3146,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytesobject.c:3148,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/bytesobject.c:3149,1
    - Dst: _PyBytes_FromIterator
      Src: /src/cpython/Objects/bytesobject.c:3151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3152,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytesobject.c:3155,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:3160,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:3162,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3164
      start: 3124
    functionDepth: 5
    functionLinenumber: 3124
    functionLinenumberEnd: 3164
    functionName: PyBytes_FromObject
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - _PyBytes_FromBuffer
    - _PyBytes_FromTuple
    - _PyBytes_FromList
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - PyBytes_CheckExact
    - PyObject_GetIter
    - _PyBytes_FromIterator
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Py_DECREF
    - PyList_CheckExact
    - PyTuple_CheckExact
    - Py_NewRef
    - PyObject_CheckBuffer
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromObject(PyObject *x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/bytesobject.c:3174,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:3178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3171
    functionDepth: 1
    functionLinenumber: 3171
    functionLinenumberEnd: 3180
    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:3188,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/bytesobject.c:3188,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3189,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:3189,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3190,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/bytesobject.c:3191,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3193,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3193,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3194,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:3195,1
    - Dst: get_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:3196,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: 3187
        line_start: 3187
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (PyBytes_Check(tmp))
      pos:
        line_end: 3188
        line_start: 3188
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3199
      start: 3182
    functionDepth: 1
    functionLinenumber: 3182
    functionLinenumberEnd: 3199
    functionName: bytes_subtype_new
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyType_IsSubtype
    - PyBytes_AS_STRING
    - PyBytes_Check
    - set_ob_shash
    - PyBytes_GET_SIZE
    - memcpy
    - assert
    - PyTypeObject*::tp_alloc
    - get_ob_shash
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_subtype_new(PyTypeObject *type, PyObject *tmp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_CAST
      Src: /src/cpython/Objects/bytesobject.c:3220,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3221,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytesobject.c:3224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3217
    functionDepth: 1
    functionLinenumber: 3217
    functionLinenumberEnd: 3226
    functionName: bytes_iteritem
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_CAST
    - _PyLong_FromUnsignedChar
    - Py_SIZE
    linkageType: ''
    returnType: _PyObjectIndexPair
    signature: _PyObjectIndexPair bytes_iteritem(PyObject *obj, Py_ssize_t index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3277,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:3281,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/bytesobject.c:3285,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytesobject.c:3285,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytesobject.c:3290,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytesobject.c:3291,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:3292,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytesobject.c:3292,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:3293,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3297,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:3299,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytesobject.c:3302,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3305,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3305,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:3306,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytesobject.c:3310,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytesobject.c:3311,1
    - Dst: _PyBytes_Concat
      Src: /src/cpython/Objects/bytesobject.c:3318,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytesobject.c:3319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - pv
    - w
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (pv != NULL)
      pos:
        line_end: 3276
        line_start: 3276
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3321
      start: 3274
    functionDepth: 5
    functionLinenumber: 3274
    functionLinenumberEnd: 3321
    functionName: PyBytes_Concat
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - Py_SETREF
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - Py_CLEAR
    - PyBytes_CheckExact
    - _PyBytes_Concat
    - memcpy
    - PyErr_Format
    - assert
    - _PyBytes_Resize
    - PyObject_GetBuffer
    - _PyObject_IsUniquelyReferenced
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyBytes_Concat(PyObject **pv, PyObject *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Concat
      Src: /src/cpython/Objects/bytesobject.c:3326,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:3327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pv
    - w
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3328
      start: 3323
    functionDepth: 6
    functionLinenumber: 3323
    functionLinenumberEnd: 3328
    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:3349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3351,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:3352,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3355,1
    - Dst: _PyBytes_FromSize
      Src: /src/cpython/Objects/bytesobject.c:3361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3362,1
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:3366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3367,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/bytesobject.c:3370,1
    - Dst: _PyBytes_FromSize
      Src: /src/cpython/Objects/bytesobject.c:3372,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3374,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3374,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3374,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3378,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3380,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/bytesobject.c:3385,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/bytesobject.c:3387,1
    - Dst: PyObject_Realloc
      Src: /src/cpython/Objects/bytesobject.c:3389,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/bytesobject.c:3392,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/bytesobject.c:3392,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/bytesobject.c:3394,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:3395,1
    - Dst: _Py_NewReferenceNoTotal
      Src: /src/cpython/Objects/bytesobject.c:3398,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3400,1
    - Dst: set_ob_shash
      Src: /src/cpython/Objects/bytesobject.c:3402,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - pv
    - newsize
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3404
      start: 3343
    functionDepth: 5
    functionLinenumber: 3343
    functionLinenumberEnd: 3404
    functionName: _PyBytes_Resize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 22
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - set_ob_shash
    - bytes_get_empty
    - _PyThreadState_GET
    - memcpy
    - PyErr_NoMemory
    - _PyBytes_FromSize
    - PyBytes_AS_STRING
    - PyObject_Free
    - _PyObject_IsUniquelyReferenced
    - Py_SET_SIZE
    - PyObject_Realloc
    - PyErr_BadInternalCall
    - _PyReftracerTrack
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _Py_ForgetReference
    - _Py_NewReferenceNoTotal
    - _Py_DecRefTotal
    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: 3416
      start: 3415
    functionDepth: 0
    functionLinenumber: 3415
    functionLinenumberEnd: 3416
    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:3420,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/bytesobject.c:3421,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:3422,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/bytesobject.c:3423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3424
      start: 3417
    functionDepth: 1
    functionLinenumber: 3417
    functionLinenumberEnd: 3424
    functionName: striter_dealloc
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    - _striterobject_CAST
    linkageType: ''
    returnType: void
    signature: void striter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3429,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/bytesobject.c:3430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3426
    functionDepth: 1
    functionLinenumber: 3426
    functionLinenumberEnd: 3432
    functionName: striter_traverse
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _striterobject_CAST
    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:3437,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3440,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3444,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:3444,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3446,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytesobject.c:3447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytesobject.c:3452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(seq))
      pos:
        line_end: 3443
        line_start: 3443
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (it != NULL)
      pos:
        line_end: 3439
        line_start: 3439
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3454
      start: 3434
    functionDepth: 1
    functionLinenumber: 3434
    functionLinenumberEnd: 3454
    functionName: striter_next
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromUnsignedChar
    - _striterobject_CAST
    - PyBytes_Check
    - assert
    - Py_DECREF
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_next(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3459,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3462,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytesobject.c:3463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3464
      start: 3456
    functionDepth: 1
    functionLinenumber: 3456
    functionLinenumberEnd: 3464
    functionName: striter_len
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyBytes_GET_SIZE
    - _striterobject_CAST
    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:3472,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/bytesobject.c:3472,1
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3477,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytesobject.c:3479,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytesobject.c:3481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3483
      start: 3469
    functionDepth: 1
    functionLinenumber: 3469
    functionLinenumberEnd: 3483
    functionName: striter_reduce
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _striterobject_CAST
    - Py_BuildValue
    - _PyEval_GetBuiltin
    - _Py_ID
    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:3490,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytesobject.c:3491,1
    - Dst: _striterobject_CAST
      Src: /src/cpython/Objects/bytesobject.c:3493,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3497,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3487
    functionDepth: 1
    functionLinenumber: 3487
    functionLinenumberEnd: 3502
    functionName: striter_setstate
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsSsize_t
    - PyBytes_GET_SIZE
    - PyErr_Occurred
    - _striterobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_setstate(PyObject *op, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytesobject.c:3551,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytesobject.c:3552,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/bytesobject.c:3555,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytesobject.c:3559,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/bytesobject.c:3560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3562
      start: 3546
    functionDepth: 1
    functionLinenumber: 3546
    functionLinenumberEnd: 3562
    functionName: bytes_iter
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyBytes_Check
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_iter(PyObject *seq)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:3573,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3577,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytesobject.c:3581,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3582,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: 3586
      start: 3565
    functionDepth: 1
    functionLinenumber: 3565
    functionLinenumberEnd: 3586
    functionName: _PyBytes_RepeatBuffer
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - Py_MIN
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void _PyBytes_RepeatBuffer(char* dest, Py_ssize_t len_dest,\n    const
      char* src, Py_ssize_t len_src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_GetData
      Src: /src/cpython/Objects/bytesobject.c:3594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3595
      start: 3591
    functionDepth: 1
    functionLinenumber: 3591
    functionLinenumberEnd: 3595
    functionName: byteswriter_data
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_GetData
    linkageType: ''
    returnType: char
    signature: 'char *

      byteswriter_data(PyBytesWriter *writer)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3605,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3598
    functionDepth: 1
    functionLinenumber: 3598
    functionLinenumberEnd: 3610
    functionName: byteswriter_allocated
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t byteswriter_allocated(PyBytesWriter *writer)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3624,1
    - Dst: byteswriter_allocated
      Src: /src/cpython/Objects/bytesobject.c:3626,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytesobject.c:3639,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytesobject.c:3644,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3648,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3651,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3656,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3657,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3657,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3663,1
    - Dst: assert
      Src: /src/cpython/Objects/bytesobject.c:3668,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3669,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytesobject.c:3669,1
    - Dst: byteswriter_allocated
      Src: /src/cpython/Objects/bytesobject.c:3676,1
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:3678,1
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3678,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - writer
    - size
    - resize
    argTypes:
    - PyBytesWriter*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 3623
        line_start: 3623
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: (writer->obj != NULL)
      pos:
        line_end: 3647
        line_start: 3647
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: ((size_t)size > sizeof(writer->small_buffer))
      pos:
        line_end: 3655
        line_start: 3655
        source_file: /src/cpython/Objects/bytesobject.c
    - condition: ((size_t)size > sizeof(writer->small_buffer))
      pos:
        line_end: 3667
        line_start: 3667
        source_file: /src/cpython/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3684
      start: 3621
    functionDepth: 6
    functionLinenumber: 3621
    functionLinenumberEnd: 3684
    functionName: byteswriter_resize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - PyBytes_AS_STRING
    - PyBytes_FromStringAndSize
    - byteswriter_allocated
    - memset
    - memcpy
    - assert
    - _PyBytes_Resize
    - PyByteArray_AS_STRING
    - byteswriter_data
    linkageType: ''
    returnType: int
    signature: int byteswriter_resize(PyBytesWriter *writer, Py_ssize_t size, int
      resize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:3691,1
    - Dst: _Py_FREELIST_POP_MEM
      Src: /src/cpython/Objects/bytesobject.c:3695,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/bytesobject.c:3697,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:3699,1
    - Dst: byteswriter_resize
      Src: /src/cpython/Objects/bytesobject.c:3709,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:3710,1
    - Dst: memset
      Src: /src/cpython/Objects/bytesobject.c:3716,1
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3716,1
    - Dst: byteswriter_allocated
      Src: /src/cpython/Objects/bytesobject.c:3716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - size
    - use_bytearray
    argTypes:
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3687
    functionDepth: 2
    functionLinenumber: 3687
    functionLinenumberEnd: 3719
    functionName: byteswriter_create
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - byteswriter_resize
    - PyErr_NoMemory
    - _Py_FREELIST_POP_MEM
    - PyErr_SetString
    - byteswriter_allocated
    - PyBytesWriter_Discard
    - memset
    - PyMem_Malloc
    - byteswriter_data
    linkageType: ''
    returnType: PyBytesWriter
    signature: 'PyBytesWriter *

      byteswriter_create(Py_ssize_t size, int use_bytearray)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byteswriter_create
      Src: /src/cpython/Objects/bytesobject.c:3724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3725
      start: 3721
    functionDepth: 3
    functionLinenumber: 3721
    functionLinenumberEnd: 3725
    functionName: PyBytesWriter_Create
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 60
    functionsReached:
    - byteswriter_create
    linkageType: ''
    returnType: PyBytesWriter
    signature: 'PyBytesWriter *

      PyBytesWriter_Create(Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byteswriter_create
      Src: /src/cpython/Objects/bytesobject.c:3730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3731
      start: 3727
    functionDepth: 3
    functionLinenumber: 3727
    functionLinenumberEnd: 3731
    functionName: _PyBytesWriter_CreateByteArray
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - byteswriter_create
    linkageType: ''
    returnType: PyBytesWriter
    signature: 'PyBytesWriter *

      _PyBytesWriter_CreateByteArray(Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytesobject.c:3741,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/bytesobject.c:3742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3743
      start: 3734
    functionDepth: 1
    functionLinenumber: 3734
    functionLinenumberEnd: 3743
    functionName: PyBytesWriter_Discard
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 51
    functionsReached:
    - _Py_FREELIST_FREE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyBytesWriter_Discard(PyBytesWriter *writer)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bytes_get_empty
      Src: /src/cpython/Objects/bytesobject.c:3751,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3755,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytesobject.c:3756,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/bytesobject.c:3762,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytesobject.c:3763,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3772,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytesobject.c:3775,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:3777,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:3781,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - writer
    - size
    argTypes:
    - PyBytesWriter*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3783
      start: 3746
    functionDepth: 6
    functionLinenumber: 3746
    functionLinenumberEnd: 3783
    functionName: PyBytesWriter_FinishWithSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 21
    functionsReached:
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - PyBytes_FromStringAndSize
    - bytes_get_empty
    - PyBytesWriter_Discard
    - PyByteArray_GET_SIZE
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytesWriter_FinishWithSize(PyBytesWriter *writer, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Objects/bytesobject.c:3788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3789
      start: 3785
    functionDepth: 7
    functionLinenumber: 3785
    functionLinenumberEnd: 3789
    functionName: PyBytesWriter_Finish
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 22
    functionsReached:
    - PyBytesWriter_FinishWithSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytesWriter_Finish(PyBytesWriter *writer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3795,1
    - Dst: byteswriter_allocated
      Src: /src/cpython/Objects/bytesobject.c:3796,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/bytesobject.c:3797,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:3798,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Objects/bytesobject.c:3802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - buf
    argTypes:
    - PyBytesWriter*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3803
      start: 3792
    functionDepth: 7
    functionLinenumber: 3792
    functionLinenumberEnd: 3803
    functionName: PyBytesWriter_FinishWithPointer
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 19
    functionsReached:
    - byteswriter_allocated
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyBytesWriter_FinishWithSize
    - byteswriter_data
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytesWriter_FinishWithPointer(PyBytesWriter *writer, void *buf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3810
      start: 3806
    functionDepth: 2
    functionLinenumber: 3806
    functionLinenumberEnd: 3810
    functionName: PyBytesWriter_GetData
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 60
    functionsReached:
    - byteswriter_data
    linkageType: ''
    returnType: void
    signature: 'void *

      PyBytesWriter_GetData(PyBytesWriter *writer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_GetSize
      Src: /src/cpython/Objects/bytesobject.c:3816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3817
      start: 3813
    functionDepth: 1
    functionLinenumber: 3813
    functionLinenumberEnd: 3817
    functionName: PyBytesWriter_GetSize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 6
    functionsReached:
    - _PyBytesWriter_GetSize
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyBytesWriter_GetSize(PyBytesWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byteswriter_allocated
      Src: /src/cpython/Objects/bytesobject.c:3823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3824
      start: 3820
    functionDepth: 2
    functionLinenumber: 3820
    functionLinenumberEnd: 3824
    functionName: _PyBytesWriter_GetAllocated
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - byteswriter_allocated
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyBytesWriter_GetAllocated(PyBytesWriter *writer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:3831,1
    - Dst: byteswriter_resize
      Src: /src/cpython/Objects/bytesobject.c:3834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - writer
    - size
    argTypes:
    - PyBytesWriter*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3827
    functionDepth: 1
    functionLinenumber: 3827
    functionLinenumberEnd: 3839
    functionName: PyBytesWriter_Resize
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - PyErr_SetString
    - byteswriter_resize
    linkageType: ''
    returnType: int
    signature: int PyBytesWriter_Resize(PyBytesWriter *writer, Py_ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3846,1
    - Dst: PyBytesWriter_Resize
      Src: /src/cpython/Objects/bytesobject.c:3847,1
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - size
    - data
    argTypes:
    - PyBytesWriter*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3851
      start: 3842
    functionDepth: 2
    functionLinenumber: 3842
    functionLinenumberEnd: 3851
    functionName: _PyBytesWriter_ResizeAndUpdatePointer
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - PyBytesWriter_Resize
    - byteswriter_data
    linkageType: ''
    returnType: void
    signature: "void *\n_PyBytesWriter_ResizeAndUpdatePointer(PyBytesWriter *writer,
      Py_ssize_t size,\n                                      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytesobject.c:3858,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:3862,1
    - Dst: byteswriter_resize
      Src: /src/cpython/Objects/bytesobject.c:3867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - writer
    - size
    argTypes:
    - PyBytesWriter*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3872
      start: 3854
    functionDepth: 1
    functionLinenumber: 3854
    functionLinenumberEnd: 3872
    functionName: PyBytesWriter_Grow
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - byteswriter_resize
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int PyBytesWriter_Grow(PyBytesWriter *writer, Py_ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3879,1
    - Dst: PyBytesWriter_Grow
      Src: /src/cpython/Objects/bytesobject.c:3880,1
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - size
    - buf
    argTypes:
    - PyBytesWriter*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3884
      start: 3875
    functionDepth: 2
    functionLinenumber: 3875
    functionLinenumberEnd: 3884
    functionName: PyBytesWriter_GrowAndUpdatePointer
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - PyBytesWriter_Grow
    - byteswriter_data
    linkageType: ''
    returnType: void
    signature: "void *\nPyBytesWriter_GrowAndUpdatePointer(PyBytesWriter *writer,
      Py_ssize_t size,\n                                   void *buf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:3892,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytesobject.c:3894,1
    - Dst: PyBytesWriter_Grow
      Src: /src/cpython/Objects/bytesobject.c:3901,1
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3904,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytesobject.c:3905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - writer
    - bytes
    - size
    argTypes:
    - PyBytesWriter*
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3907
      start: 3887
    functionDepth: 2
    functionLinenumber: 3887
    functionLinenumberEnd: 3907
    functionName: PyBytesWriter_WriteBytes
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - PyErr_NoMemory
    - memcpy
    - strlen
    - PyBytesWriter_Grow
    - byteswriter_data
    linkageType: ''
    returnType: int
    signature: "int PyBytesWriter_WriteBytes(PyBytesWriter *writer,\n                         const
      void *bytes, Py_ssize_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_Grow
      Src: /src/cpython/Objects/bytesobject.c:3914,1
    - Dst: strlen
      Src: /src/cpython/Objects/bytesobject.c:3914,1
    - Dst: va_start
      Src: /src/cpython/Objects/bytesobject.c:3919,1
    - Dst: bytes_fromformat
      Src: /src/cpython/Objects/bytesobject.c:3920,1
    - Dst: va_end
      Src: /src/cpython/Objects/bytesobject.c:3921,1
    - Dst: byteswriter_data
      Src: /src/cpython/Objects/bytesobject.c:3923,1
    - Dst: PyBytesWriter_Resize
      Src: /src/cpython/Objects/bytesobject.c:3924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - format
    argTypes:
    - PyBytesWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3910
    functionDepth: 2
    functionLinenumber: 3910
    functionLinenumberEnd: 3925
    functionName: PyBytesWriter_Format
    functionSourceFile: /src/cpython/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - bytes_fromformat
    - PyBytesWriter_Resize
    - va_start
    - va_end
    - strlen
    - PyBytesWriter_Grow
    - byteswriter_data
    linkageType: ''
    returnType: int
    signature: int PyBytesWriter_Format(PyBytesWriter *writer, const char *format,
      ...)
  - 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:
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _getbytevalue(PyObject* arg, int *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:49,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:50,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - size
    - alloc
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: bytearray_reinit_from_bytes
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - Py_SET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: "void bytearray_reinit_from_bytes(PyByteArrayObject *self, Py_ssize_t
      size,\n                            Py_ssize_t alloc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:57,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:58,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:60,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:65,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Objects/bytearrayobject.c:66,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: bytearray_getbuffer_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetString
    - Py_SIZE
    - PyBuffer_FillInfo
    - _PyByteArray_CAST
    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:77,1
    - Dst: bytearray_getbuffer_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:78,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: bytearray_getbuffer
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_getbuffer_lock_held
    - Py_END_CRITICAL_SECTION
    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:86,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:87,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:89,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:90,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: 88
        line_start: 88
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: bytearray_releasebuffer
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    - _PyByteArray_CAST
    linkageType: ''
    returnType: void
    signature: void bytearray_releasebuffer(PyObject *self, Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:103,1
    - Dst: op
      Src: /src/cpython/Objects/bytearrayobject.c:107,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:107,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - self
    - op
    - sub
    - start
    - end
    argTypes:
    - PyByteArrayObject*
    - _ba_bytes_op
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: _bytearray_with_buffer
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyByteArray_AS_STRING
    - Py_SIZE
    - op
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_bytearray_with_buffer(PyByteArrayObject *self, _ba_bytes_op
      op, PyObject *sub,\n                       Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    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:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    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:139,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:142,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/bytearrayobject.c:144,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:144,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytearrayobject.c:147,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: _PyByteArray_FromBufferObject
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_FromStringAndSize
    - PyBuffer_Release
    - PyBuffer_ToContiguous
    - Py_CLEAR
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyByteArray_FromBufferObject(PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:159,1
    - Dst: PyObject_New::PyObject_New
      Src: /src/cpython/Objects/bytearrayobject.c:164,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:180,1
    - Dst: ob_bytes_object::ob_bytes_object
      Src: /src/cpython/Objects/bytearrayobject.c:181,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:187,1
    - Dst: ob_bytes::ob_bytes
      Src: /src/cpython/Objects/bytearrayobject.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bytes
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 191
    functionName: PyByteArray_FromStringAndSize
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 10
    functionsReached:
    - PyObject_New::PyObject_New
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - memcpy
    - ob_bytes_object::ob_bytes_object
    - ob_bytes::ob_bytes
    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:196,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:197,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:197,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: PyByteArray_Size
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 2
    functionsReached:
    - PyByteArray_Check
    - PyByteArray_GET_SIZE
    - assert
    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:205,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:206,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:206,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: PyByteArray_AsString
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 2
    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:214,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:222,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:223,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:223,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:224,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:227,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:232,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:235,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:248,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:250,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:266,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:276,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytearrayobject.c:277,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:277,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:280,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/bytearrayobject.c:282,1
    - Dst: bytearray_reinit_from_bytes
      Src: /src/cpython/Objects/bytearrayobject.c:285,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - self
    - requested_size
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (self != NULL)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (logical_offset <= alloc)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 292
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 292
    functionName: bytearray_resize_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_NoMemory
    - Py_SET_SIZE
    - memmove
    - Py_SIZE
    - _canresize
    - bytearray_reinit_from_bytes
    - Py_MIN
    - PyErr_Format
    - assert
    - _PyBytes_Resize
    - PyByteArray_Check
    - PyByteArray_AS_STRING
    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:298,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:299,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - requested_size
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 7
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: PyByteArray_Resize
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 6
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_resize_lock_held
    - Py_END_CRITICAL_SECTION
    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:312,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:313,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:314,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:315,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:315,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:320,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:325,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:329,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:330,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:335,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 304
    functionDepth: 5
    functionLinenumber: 304
    functionLinenumberEnd: 339
    functionName: PyByteArray_Concat
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - PyByteArray_FromStringAndSize
    - PyErr_NoMemory
    - PyBuffer_Release
    - memcpy
    - PyErr_Format
    - PyObject_GetBuffer
    - Py_TYPE
    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:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 347
    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:352,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:353,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:356,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:357,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:358,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:358,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:362,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:364,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:365,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:368,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:369,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:373,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:373,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:374,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytearrayobject.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - op
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 349
    functionDepth: 7
    functionLinenumber: 349
    functionLinenumberEnd: 376
    functionName: bytearray_iconcat_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_NoMemory
    - bytearray_resize_lock_held
    - Py_NewRef
    - Py_SIZE
    - PyBuffer_Release
    - memcpy
    - PyErr_Format
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    - Py_TYPE
    - _PyByteArray_CAST
    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:382,1
    - Dst: bytearray_iconcat_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:383,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 8
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: bytearray_iconcat
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_iconcat_lock_held
    - Py_END_CRITICAL_SECTION
    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:391,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:392,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:396,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:398,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:402,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:403,1
    - Dst: _PyBytes_RepeatBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - op
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 388
    functionDepth: 5
    functionLinenumber: 388
    functionLinenumberEnd: 408
    functionName: bytearray_repeat_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyByteArray_FromStringAndSize
    - PyErr_NoMemory
    - Py_SIZE
    - _PyBytes_RepeatBuffer
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    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:414,1
    - Dst: bytearray_repeat_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:415,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 6
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: bytearray_repeat
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:423,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:424,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytearrayobject.c:429,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:432,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:434,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:437,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:441,1
    - Dst: _PyBytes_RepeatBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:442,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytearrayobject.c:444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - op
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 420
    functionDepth: 7
    functionLinenumber: 420
    functionLinenumberEnd: 445
    functionName: bytearray_irepeat_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_NoMemory
    - Py_SIZE
    - _PyBytes_RepeatBuffer
    - Py_NewRef
    - bytearray_resize_lock_held
    - _PyByteArray_CAST
    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:451,1
    - Dst: bytearray_irepeat_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:452,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 8
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: bytearray_irepeat
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_irepeat_lock_held
    - Py_END_CRITICAL_SECTION
    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:460,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:461,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:462,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:463,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytearrayobject.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 467
    functionName: bytearray_getitem_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyLong_FromUnsignedChar
    - PyErr_SetString
    - Py_SIZE
    - _PyByteArray_CAST
    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:473,1
    - Dst: bytearray_getitem_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:474,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: bytearray_getitem
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_getitem_lock_held
    - Py_END_CRITICAL_SECTION
    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:482,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:483,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytearrayobject.c:484,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:485,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:487,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:491,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:493,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:494,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytearrayobject.c:497,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/bytearrayobject.c:499,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/bytearrayobject.c:502,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/bytearrayobject.c:505,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:505,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:509,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:511,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:512,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:515,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:519,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:523,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:532,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:534,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 537
    functionName: bytearray_subscript_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyLong_FromUnsignedChar
    - PyByteArray_FromStringAndSize
    - PySlice_AdjustIndices
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - Py_SIZE
    - _PyIndex_Check
    - PyByteArray_GET_SIZE
    - PySlice_Unpack
    - PyErr_Occurred
    - PyErr_Format
    - PyByteArray_AS_STRING
    - Py_TYPE
    - _PyByteArray_CAST
    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:543,1
    - Dst: bytearray_subscript_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:544,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 539
    functionDepth: 6
    functionLinenumber: 539
    functionLinenumberEnd: 548
    functionName: bytearray_subscript
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_subscript_lock_held
    - Py_END_CRITICAL_SECTION
    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:555,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:557,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:560,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:563,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:583,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:584,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:586,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:587,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:603,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:603,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:606,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:609,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:610,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:614,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:615,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:618,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:626,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:627,1
    - Dst: memcpy
      Src: /src/cpython/Objects/bytearrayobject.c:631,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: 559
        line_start: 559
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 633
      start: 550
    functionDepth: 7
    functionLinenumber: 550
    functionLinenumberEnd: 633
    functionName: bytearray_setslice_linear
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_NoMemory
    - Py_SET_SIZE
    - memmove
    - Py_SIZE
    - _canresize
    - memcpy
    - assert
    - PyByteArray_AS_STRING
    - bytearray_resize_lock_held
    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:639,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:649,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:649,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:650,1
    - Dst: bytearray_setslice
      Src: /src/cpython/Objects/bytearrayobject.c:653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:654,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:663,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:664,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:666,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:677,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:678,1
    - Dst: bytearray_setslice_linear
      Src: /src/cpython/Objects/bytearrayobject.c:680,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:682,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: 684
      start: 635
    functionDepth: 8
    functionLinenumber: 635
    functionLinenumberEnd: 684
    functionName: bytearray_setslice
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyByteArray_FromStringAndSize
    - bytearray_setslice_linear
    - Py_SIZE
    - PyBuffer_Release
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - Py_DECREF
    - bytearray_setslice
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    - Py_TYPE
    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:689,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:690,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:695,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:700,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:703,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:704,1
    - Dst: bytearray_setslice
      Src: /src/cpython/Objects/bytearrayobject.c:709,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:712,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:713,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: 711
        line_start: 711
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 715
      start: 686
    functionDepth: 9
    functionLinenumber: 686
    functionLinenumberEnd: 715
    functionName: bytearray_setitem_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _getbytevalue
    - PyErr_SetString
    - Py_SIZE
    - assert
    - bytearray_setslice
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    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:721,1
    - Dst: bytearray_setitem_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:722,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - i
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 10
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: bytearray_setitem
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:730,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:731,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytearrayobject.c:737,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:738,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:740,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:748,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:753,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:756,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:757,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:769,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:770,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/bytearrayobject.c:774,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/bytearrayobject.c:775,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/bytearrayobject.c:778,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:778,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:782,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:784,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:794,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Objects/bytearrayobject.c:796,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:796,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:797,1
    - Dst: PyByteArray_FromObject
      Src: /src/cpython/Objects/bytearrayobject.c:803,1
    - Dst: bytearray_ass_subscript_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:807,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:811,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:811,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:812,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:813,1
    - Dst: bytearray_setslice_linear
      Src: /src/cpython/Objects/bytearrayobject.c:824,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:831,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:833,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:849,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:850,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:852,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:857,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:858,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:860,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:862,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:863,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:872,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:875,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: 810
        line_start: 810
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (0 <= ival && ival < 256)
      pos:
        line_end: 768
        line_start: 768
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 886
      start: 727
    functionDepth: 8
    functionLinenumber: 727
    functionLinenumberEnd: 886
    functionName: bytearray_ass_subscript_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - PySlice_Check
    - _canresize
    - _PyIndex_Check
    - PyErr_Occurred
    - assert
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyNumber_Check
    - PyUnicode_Check
    - PySlice_AdjustIndices
    - memmove
    - PyErr_SetString
    - Py_SIZE
    - PyByteArray_GET_SIZE
    - bytearray_ass_subscript_lock_held
    - Py_DECREF
    - _getbytevalue
    - bytearray_setslice_linear
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - PyByteArray_FromObject
    - PyErr_Format
    - PyByteArray_Check
    - PyByteArray_AS_STRING
    - bytearray_resize_lock_held
    - _PyByteArray_CAST
    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:892,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/bytearrayobject.c:893,1
    - Dst: bytearray_ass_subscript_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:894,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/bytearrayobject.c:895,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:898,1
    - Dst: bytearray_ass_subscript_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:899,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - op
    - index
    - values
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 888
    functionDepth: 9
    functionLinenumber: 888
    functionLinenumberEnd: 903
    functionName: bytearray_ass_subscript
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_ass_subscript_lock_held
    - Py_END_CRITICAL_SECTION2
    - PyByteArray_Check
    linkageType: ''
    returnType: int
    signature: int bytearray_ass_subscript(PyObject *op, PyObject *index, PyObject
      *values)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/bytearrayobject.c:925,1
    - Dst: bytearray_reinit_from_bytes
      Src: /src/cpython/Objects/bytearrayobject.c:926,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:930,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:932,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:937,1
    - Dst: Py_GetConstantBorrowed
      Src: /src/cpython/Objects/bytearrayobject.c:937,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:938,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:943,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:952,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:956,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Objects/bytearrayobject.c:960,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:964,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/bytearrayobject.c:964,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/bytearrayobject.c:967,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/bytearrayobject.c:968,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:970,1
    - Dst: bytearray_reinit_from_bytes
      Src: /src/cpython/Objects/bytearrayobject.c:972,1
    - Dst: bytearray_iconcat::bytearray_iconcat
      Src: /src/cpython/Objects/bytearrayobject.c:975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:976,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:985,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytearrayobject.c:993,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:994,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:995,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:996,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytearrayobject.c:998,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:1002,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1006,1
    - Dst: memset
      Src: /src/cpython/Objects/bytearrayobject.c:1008,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1008,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1015,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1018,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1021,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/bytearrayobject.c:1022,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1022,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1025,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1028,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/bytearrayobject.c:1032,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/bytearrayobject.c:1032,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1033,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1034,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/bytearrayobject.c:1037,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1038,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/bytearrayobject.c:1041,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1043,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1044,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:1050,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/bytearrayobject.c:1060,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:1062,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:1063,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:1065,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:1069,1
    - Dst: iternext
      Src: /src/cpython/Objects/bytearrayobject.c:1077,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:1079,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:1080,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytearrayobject.c:1082,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:1088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1089,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1094,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1095,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1095,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1096,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1096,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1098,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1098,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1100,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1109,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 142
    argCount: 4
    argNames:
    - self
    - arg
    - encoding
    - errors
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - char*
    - char*
    assertStmts:
    - condition: (self->ob_bytes_object == Py_GetConstantBorrowed(Py_CONSTANT_EMPTY_BYTES))
      pos:
        line_end: 936
        line_start: 936
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (self->ob_exports == 0)
      pos:
        line_end: 937
        line_start: 937
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (PyBytes_Check(encoded))
      pos:
        line_end: 963
        line_start: 963
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 1111
      start: 914
    functionDepth: 9
    functionLinenumber: 914
    functionLinenumberEnd: 1111
    functionName: bytearray___init___impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_GetConstantBorrowed
    - PyByteArray_Resize
    - PyBytes_Check
    - _PyIndex_Check
    - PyObject_GetIter
    - PyErr_Occurred
    - assert
    - PyObject_GetBuffer
    - Py_TYPE
    - PyUnicode_Check
    - PyBytes_CheckExact
    - PyTuple_CheckExact
    - bytearray_iconcat::bytearray_iconcat
    - _PyObject_IsUniquelyReferenced
    - PyUnicode_AsEncodedString
    - PyObject_CheckBuffer
    - Py_SET_SIZE
    - PyErr_SetString
    - Py_SIZE
    - PyLong_CheckExact
    - PyErr_Clear
    - Py_DECREF
    - Py_GetConstant
    - _getbytevalue
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast_ITEMS
    - PyNumber_AsSsize_t
    - bytearray_reinit_from_bytes
    - PyBuffer_Release
    - iternext
    - PyBuffer_ToContiguous
    - memset
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyList_CheckExact
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: "int bytearray___init___impl(PyByteArrayObject *self, PyObject *arg,\n
      \                       const char *encoding, const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/bytearrayobject.c:1116,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/bytearrayobject.c:1117,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:1117,1
    - Dst: _Py_bytes_repr
      Src: /src/cpython/Objects/bytearrayobject.c:1118,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1118,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1119,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/bytearrayobject.c:1124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1127
    functionName: bytearray_repr_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyUnicode_FromFormat
    - PyByteArray_GET_SIZE
    - _Py_bytes_repr
    - _PyType_Name
    - Py_DECREF
    - PyByteArray_AS_STRING
    - Py_TYPE
    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:1133,1
    - Dst: bytearray_repr_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:1134,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1137
    functionName: bytearray_repr
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_repr_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_repr(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/bytearrayobject.c:1142,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytearrayobject.c:1143,1
    - Dst: bytearray_repr
      Src: /src/cpython/Objects/bytearrayobject.c:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1139
    functionDepth: 4
    functionLinenumber: 1139
    functionLinenumberEnd: 1149
    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:1158,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1158,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:1159,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:1159,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/bytearrayobject.c:1160,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Objects/bytearrayobject.c:1161,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1170,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytearrayobject.c:1171,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1176,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/bytearrayobject.c:1177,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1178,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1185,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1186,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/bytearrayobject.c:1187,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytearrayobject.c:1190,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/bytearrayobject.c:1191,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1194,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1195,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/bytearrayobject.c:1198,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/bytearrayobject.c:1201,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1204
    functionName: bytearray_richcompare
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - PyErr_WarnEx
    - memcmp
    - PyUnicode_Check
    - PyBuffer_Release
    - Py_MIN
    - PyErr_Clear
    - PyBool_FromLong
    - PyObject_GetBuffer
    - PyObject_CheckBuffer
    - _Py_GetConfig
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:1209,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:1211,1
    - Dst: PyErr_Print
      Src: /src/cpython/Objects/bytearrayobject.c:1213,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1215,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:1216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1217
    functionName: bytearray_dealloc
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - PyErr_SetString
    - Py_XDECREF
    - Py_TYPE
    - _PyByteArray_CAST
    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: 1226
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1226
    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: 1233
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1233
    functionName: STRINGLIB_ISLINEBREAK
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_ISLINEBREAK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bytearray_with_buffer
      Src: /src/cpython/Objects/bytearrayobject.c:1270,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: 1271
      start: 1265
    functionDepth: 2
    functionLinenumber: 1265
    functionLinenumberEnd: 1271
    functionName: bytearray_find_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytearray_with_buffer
    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: _bytearray_with_buffer
      Src: /src/cpython/Objects/bytearrayobject.c:1286,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: 1287
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1287
    functionName: bytearray_count_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytearray_with_buffer
    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:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1295
    functionDepth: 8
    functionLinenumber: 1295
    functionLinenumberEnd: 1302
    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:1315,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1315,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1311
    functionDepth: 5
    functionLinenumber: 1311
    functionLinenumberEnd: 1317
    functionName: bytearray_copy_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyByteArray_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_copy_impl(PyByteArrayObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bytearray_with_buffer
      Src: /src/cpython/Objects/bytearrayobject.c:1334,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: 1335
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1335
    functionName: bytearray_index_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytearray_with_buffer
    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: _bytearray_with_buffer
      Src: /src/cpython/Objects/bytearrayobject.c:1352,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: 1353
      start: 1347
    functionDepth: 2
    functionLinenumber: 1347
    functionLinenumberEnd: 1353
    functionName: bytearray_rfind_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytearray_with_buffer
    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: _bytearray_with_buffer
      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: 1371
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1371
    functionName: bytearray_rindex_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytearray_with_buffer
    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:1377,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:1378,1
    - Dst: _Py_bytes_contains
      Src: /src/cpython/Objects/bytearrayobject.c:1382,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1382,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1383,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 1388
    functionName: bytearray_contains
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_contains
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    linkageType: ''
    returnType: int
    signature: int bytearray_contains(PyObject *self, PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bytearray_with_buffer
      Src: /src/cpython/Objects/bytearrayobject.c:1412,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: 1413
      start: 1407
    functionDepth: 2
    functionLinenumber: 1407
    functionLinenumberEnd: 1413
    functionName: bytearray_startswith_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytearray_with_buffer
    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: _bytearray_with_buffer
      Src: /src/cpython/Objects/bytearrayobject.c:1437,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: 1438
      start: 1432
    functionDepth: 2
    functionLinenumber: 1432
    functionLinenumberEnd: 1438
    functionName: bytearray_endswith_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytearray_with_buffer
    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:1458,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1459,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytearrayobject.c:1464,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1466,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - PyByteArrayObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1454
    functionDepth: 5
    functionLinenumber: 1454
    functionLinenumberEnd: 1471
    functionName: bytearray_removeprefix_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memcmp
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - PyByteArray_FromStringAndSize
    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:1491,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1492,1
    - Dst: memcmp
      Src: /src/cpython/Objects/bytearrayobject.c:1497,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1500,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - suffix
    argTypes:
    - PyByteArrayObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1487
    functionDepth: 5
    functionLinenumber: 1487
    functionLinenumberEnd: 1505
    functionName: bytearray_removesuffix_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memcmp
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - PyByteArray_FromStringAndSize
    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:1521,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:1522,1
    - Dst: memset
      Src: /src/cpython/Objects/bytearrayobject.c:1528,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1517
    functionDepth: 7
    functionLinenumber: 1517
    functionLinenumberEnd: 1531
    functionName: bytearray_resize_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - memset
    - PyByteArray_AS_STRING
    - bytearray_resize_lock_held
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_resize_impl(PyByteArrayObject *self, Py_ssize_t size)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1548,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/bytearrayobject.c:1549,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/bytearrayobject.c:1553,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:1554,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:1555,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:1563,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:1568,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:1575,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/bytearrayobject.c:1580,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1587,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1592,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1597,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:1605,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1610,1
    - Dst: bytearray_reinit_from_bytes
      Src: /src/cpython/Objects/bytearrayobject.c:1617,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1543
    functionDepth: 6
    functionLinenumber: 1543
    functionLinenumberEnd: 1619
    functionName: bytearray_take_bytes_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - Py_SET_SIZE
    - PyBytes_FromStringAndSize
    - memmove
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - Py_SIZE
    - _canresize
    - _PyIndex_Check
    - Py_IsNone
    - bytearray_reinit_from_bytes
    - PyErr_Occurred
    - PyErr_Format
    - _PyBytes_Resize
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_take_bytes_impl(PyByteArrayObject *self, PyObject *n)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1657,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:1661,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1663,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1670,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1672,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1681,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:1682,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1685,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1686,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1691,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1699,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1702,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1706,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/bytearrayobject.c:1709,1
    - Dst: PyByteArray_Resize
      Src: /src/cpython/Objects/bytearrayobject.c:1715,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytearrayobject.c:1716,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1722,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1724,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 3
    argNames:
    - self
    - table
    - deletechars
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1639
    functionDepth: 8
    functionLinenumber: 1639
    functionLinenumberEnd: 1726
    functionName: bytearray_translate_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - PyErr_SetString
    - PyBuffer_Release
    - Py_CHARMASK
    - Py_CLEAR
    - PyByteArray_GET_SIZE
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    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:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1747
    functionDepth: 2
    functionLinenumber: 1747
    functionLinenumberEnd: 1752
    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:1777,1
    - Dst: buf::buf
      Src: /src/cpython/Objects/bytearrayobject.c:1779,1
    - Dst: len::len
      Src: /src/cpython/Objects/bytearrayobject.c:1779,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: 1780
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1780
    functionName: bytearray_replace_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - len::len
    - stringlib_replace
    - 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_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1807,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1808,1
    - Dst: stringlib_split_whitespace
      Src: /src/cpython/Objects/bytearrayobject.c:1814,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1819,1
    - Dst: stringlib_split
      Src: /src/cpython/Objects/bytearrayobject.c:1823,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1825,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1830
    functionName: bytearray_split_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_split_whitespace
    - PyBuffer_Release
    - PyByteArray_GET_SIZE
    - stringlib_split
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_split_impl(PyByteArrayObject *self, PyObject
      *sep,\n                     Py_ssize_t maxsplit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_FromBufferObject
      Src: /src/cpython/Objects/bytearrayobject.c:1856,1
    - Dst: stringlib_partition
      Src: /src/cpython/Objects/bytearrayobject.c:1860,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1862,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1862,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1864,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1850
    functionDepth: 3
    functionLinenumber: 1850
    functionLinenumberEnd: 1869
    functionName: bytearray_partition_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_partition
    - PyByteArray_GET_SIZE
    - _PyByteArray_FromBufferObject
    - Py_DECREF
    - PyByteArray_AS_STRING
    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:1896,1
    - Dst: stringlib_rpartition
      Src: /src/cpython/Objects/bytearrayobject.c:1900,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1902,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1902,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1904,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:1907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1890
    functionDepth: 3
    functionLinenumber: 1890
    functionLinenumberEnd: 1909
    functionName: bytearray_rpartition_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_rpartition
    - PyByteArray_GET_SIZE
    - _PyByteArray_FromBufferObject
    - Py_DECREF
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rpartition_impl(PyByteArrayObject *self, PyObject *sep)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1931,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1932,1
    - Dst: stringlib_rsplit_whitespace
      Src: /src/cpython/Objects/bytearrayobject.c:1938,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/bytearrayobject.c:1943,1
    - Dst: stringlib_rsplit
      Src: /src/cpython/Objects/bytearrayobject.c:1947,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:1949,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1922
    functionDepth: 2
    functionLinenumber: 1922
    functionLinenumberEnd: 1954
    functionName: bytearray_rsplit_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - PyByteArray_GET_SIZE
    - stringlib_rsplit_whitespace
    - stringlib_rsplit
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_rsplit_impl(PyByteArrayObject *self, PyObject
      *sep,\n                      Py_ssize_t maxsplit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:1968,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:1971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1963
    functionDepth: 1
    functionLinenumber: 1963
    functionLinenumberEnd: 1980
    functionName: bytearray_reverse_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AS_STRING
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reverse_impl(PyByteArrayObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2008,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2011,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2013,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:2022,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - index
    - item
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2004
    functionDepth: 7
    functionLinenumber: 2004
    functionLinenumberEnd: 2026
    functionName: bytearray_insert_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memmove
    - bytearray_resize_lock_held
    - PyByteArray_AS_STRING
    - Py_SIZE
    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:2032,1
    - Dst: stringlib_isalnum
      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_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:2042,1
    - Dst: stringlib_isalpha
      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_isalpha
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_isalpha
    - Py_END_CRITICAL_SECTION
    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:2052,1
    - Dst: stringlib_isascii
      Src: /src/cpython/Objects/bytearrayobject.c:2053,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2056
    functionName: bytearray_isascii
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:2062,1
    - Dst: stringlib_isdigit
      Src: /src/cpython/Objects/bytearrayobject.c:2063,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2058
    functionDepth: 1
    functionLinenumber: 2058
    functionLinenumberEnd: 2066
    functionName: bytearray_isdigit
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_isdigit
    - Py_END_CRITICAL_SECTION
    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:2072,1
    - Dst: stringlib_islower
      Src: /src/cpython/Objects/bytearrayobject.c:2073,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2076
    functionName: bytearray_islower
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_islower
    - Py_END_CRITICAL_SECTION
    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:2082,1
    - Dst: stringlib_isspace
      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_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:2092,1
    - Dst: stringlib_istitle
      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: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2096
    functionName: bytearray_istitle
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_istitle
    - Py_END_CRITICAL_SECTION
    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:2102,1
    - Dst: stringlib_isupper
      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: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2106
    functionName: bytearray_isupper
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_isupper
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_isupper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2123,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2125,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2119
    functionDepth: 7
    functionLinenumber: 2119
    functionLinenumberEnd: 2131
    functionName: bytearray_append_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - bytearray_resize_lock_held
    - PyByteArray_AS_STRING
    - Py_SIZE
    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:2137,1
    - Dst: stringlib_capitalize
      Src: /src/cpython/Objects/bytearrayobject.c:2138,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2141
    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:2147,1
    - Dst: stringlib_center
      Src: /src/cpython/Objects/bytearrayobject.c:2148,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2151
    functionName: bytearray_center
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_center
    - Py_END_CRITICAL_SECTION
    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:2157,1
    - Dst: stringlib_expandtabs
      Src: /src/cpython/Objects/bytearrayobject.c:2158,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2159,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: 2161
      start: 2153
    functionDepth: 1
    functionLinenumber: 2153
    functionLinenumberEnd: 2161
    functionName: bytearray_expandtabs
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_expandtabs
    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:2185,1
    - Dst: bytearray_setslice
      Src: /src/cpython/Objects/bytearrayobject.c:2186,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2186,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2186,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/bytearrayobject.c:2192,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:2194,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:2195,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2197,1
    - Dst: PyObject_LengthHint
      Src: /src/cpython/Objects/bytearrayobject.c:2203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2205,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:2209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2211,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2214,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/bytearrayobject.c:2216,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/bytearrayobject.c:2217,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/bytearrayobject.c:2218,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/bytearrayobject.c:2218,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/bytearrayobject.c:2219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2233,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/bytearrayobject.c:2234,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2243,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2248,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2252,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:2254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2255,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2261,1
    - Dst: bytearray_setslice
      Src: /src/cpython/Objects/bytearrayobject.c:2265,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2265,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2269,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:2271,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:2271,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 2
    argNames:
    - self
    - iterable_of_ints
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2270
        line_start: 2270
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 2273
      start: 2175
    functionDepth: 9
    functionLinenumber: 2175
    functionLinenumberEnd: 2273
    functionName: bytearray_extend_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _getbytevalue
    - PyByteArray_FromStringAndSize
    - PyErr_NoMemory
    - bytearray_resize_lock_held
    - assert
    - Py_SIZE
    - PyUnicode_Check
    - PyObject_GetIter
    - PyObject_LengthHint
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - bytearray_setslice
    - PyIter_Next
    - PyByteArray_AS_STRING
    - PyObject_CheckBuffer
    - Py_TYPE
    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:2294,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:2298,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2303,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2304,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:2305,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:2308,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2311,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:2313,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2314,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytearrayobject.c:2317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2289
    functionDepth: 7
    functionLinenumber: 2289
    functionLinenumberEnd: 2318
    functionName: bytearray_pop_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromUnsignedChar
    - memmove
    - PyErr_SetString
    - Py_SIZE
    - _canresize
    - PyByteArray_AS_STRING
    - 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:2335,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2336,1
    - Dst: stringlib_find_char
      Src: /src/cpython/Objects/bytearrayobject.c:2338,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/bytearrayobject.c:2340,1
    - Dst: _canresize
      Src: /src/cpython/Objects/bytearrayobject.c:2343,1
    - Dst: memmove
      Src: /src/cpython/Objects/bytearrayobject.c:2346,1
    - Dst: bytearray_resize_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2331
    functionDepth: 7
    functionLinenumber: 2331
    functionLinenumberEnd: 2351
    functionName: bytearray_remove_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_find_char
    - memmove
    - PyErr_SetString
    - Py_SIZE
    - _canresize
    - PyByteArray_AS_STRING
    - 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:2370,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2375,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2376,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytearrayobject.c:2380,1
    - Dst: memchr
      Src: /src/cpython/Objects/bytearrayobject.c:2387,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/bytearrayobject.c:2391,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/bytearrayobject.c:2392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - bytes
    - striptype
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2357
    functionDepth: 5
    functionLinenumber: 2357
    functionLinenumberEnd: 2393
    functionName: bytearray_strip_impl_helper
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_FromStringAndSize
    - Py_SIZE
    - PyBuffer_Release
    - memchr
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    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:2412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2408
    functionDepth: 6
    functionLinenumber: 2408
    functionLinenumberEnd: 2413
    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:2419,1
    - Dst: stringlib_swapcase
      Src: /src/cpython/Objects/bytearrayobject.c:2420,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2423
    functionName: bytearray_swapcase
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_swapcase
    - Py_END_CRITICAL_SECTION
    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:2429,1
    - Dst: stringlib_title
      Src: /src/cpython/Objects/bytearrayobject.c:2430,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2433
      start: 2425
    functionDepth: 1
    functionLinenumber: 2425
    functionLinenumberEnd: 2433
    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:2439,1
    - Dst: stringlib_upper
      Src: /src/cpython/Objects/bytearrayobject.c:2440,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2435
    functionDepth: 1
    functionLinenumber: 2435
    functionLinenumberEnd: 2443
    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:2449,1
    - Dst: stringlib_lower
      Src: /src/cpython/Objects/bytearrayobject.c:2450,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2445
    functionDepth: 1
    functionLinenumber: 2445
    functionLinenumberEnd: 2453
    functionName: bytearray_lower
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_lower
    - Py_END_CRITICAL_SECTION
    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:2459,1
    - Dst: stringlib_zfill
      Src: /src/cpython/Objects/bytearrayobject.c:2460,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2463
    functionName: bytearray_zfill
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:2481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2477
    functionDepth: 6
    functionLinenumber: 2477
    functionLinenumberEnd: 2482
    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:2500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2496
    functionDepth: 6
    functionLinenumber: 2496
    functionLinenumberEnd: 2501
    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:2525,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Objects/bytearrayobject.c:2526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyByteArrayObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2519
    functionDepth: 1
    functionLinenumber: 2519
    functionLinenumberEnd: 2527
    functionName: bytearray_decode_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetDefaultEncoding
    - PyUnicode_FromEncodedObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_decode_impl(PyByteArrayObject *self, const char
      *encoding,\n                      const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2537,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2538,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:2542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2543
    functionName: bytearray_alloc
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLong_FromSsize_t
    - _PyByteArray_CAST
    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:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2560
    functionDepth: 0
    functionLinenumber: 2560
    functionLinenumberEnd: 2569
    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:2575,1
    - Dst: stringlib_ljust
      Src: /src/cpython/Objects/bytearrayobject.c:2576,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2571
    functionDepth: 1
    functionLinenumber: 2571
    functionLinenumberEnd: 2579
    functionName: bytearray_ljust
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_ljust
    - Py_END_CRITICAL_SECTION
    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:2585,1
    - Dst: stringlib_rjust
      Src: /src/cpython/Objects/bytearrayobject.c:2586,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2581
    functionDepth: 1
    functionLinenumber: 2581
    functionLinenumberEnd: 2589
    functionName: bytearray_rjust
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - stringlib_rjust
    - Py_END_CRITICAL_SECTION
    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:2608,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2609,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2604
    functionDepth: 1
    functionLinenumber: 2604
    functionLinenumberEnd: 2612
    functionName: bytearray_splitlines_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_splitlines
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    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:2632,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/bytearrayobject.c:2634,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/bytearrayobject.c:2634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2628
    functionDepth: 3
    functionLinenumber: 2628
    functionLinenumberEnd: 2637
    functionName: bytearray_fromhex_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_FromHex
    - Py_SETREF
    - PyObject_CallOneArg
    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:2668,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2669,1
    - Dst: _Py_strhex_with_sep
      Src: /src/cpython/Objects/bytearrayobject.c:2674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2663
    functionDepth: 1
    functionLinenumber: 2663
    functionLinenumberEnd: 2677
    functionName: bytearray_hex_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_strhex_with_sep
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_hex_impl(PyByteArrayObject *self, PyObject *sep,\n
      \                  Py_ssize_t bytes_per_sep)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetState
      Src: /src/cpython/Objects/bytearrayobject.c:2685,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2690,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:2691,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2691,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2693,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/cpython/Objects/bytearrayobject.c:2696,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2696,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:2697,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2697,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:2701,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2701,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2679
    functionDepth: 1
    functionLinenumber: 2679
    functionLinenumberEnd: 2703
    functionName: _common_reduce
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLatin1
    - Py_SIZE
    - Py_BuildValue
    - _PyObject_GetState
    - 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:2716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2712
    functionDepth: 0
    functionLinenumber: 2712
    functionLinenumberEnd: 2717
    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:2733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2734
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2746,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/bytearrayobject.c:2746,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2747,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:2752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2742
    functionDepth: 1
    functionLinenumber: 2742
    functionLinenumberEnd: 2753
    functionName: bytearray_sizeof_impl
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLong_FromSsize_t
    - _PyObject_SIZE
    - Py_TYPE
    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:2846,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:2847,1
    - Dst: _PyByteArray_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2850,1
    - Dst: _PyBytes_FormatEx
      Src: /src/cpython/Objects/bytearrayobject.c:2853,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2854,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2843
    functionDepth: 6
    functionLinenumber: 2843
    functionLinenumberEnd: 2858
    functionName: bytearray_mod_lock_held
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyBytes_FormatEx
    - PyByteArray_GET_SIZE
    - PyByteArray_Check
    - PyByteArray_AS_STRING
    - _PyByteArray_CAST
    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:2864,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/bytearrayobject.c:2865,1
    - Dst: bytearray_mod_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2866,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/bytearrayobject.c:2867,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2870,1
    - Dst: bytearray_mod_lock_held
      Src: /src/cpython/Objects/bytearrayobject.c:2871,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2860
    functionDepth: 7
    functionLinenumber: 2860
    functionLinenumberEnd: 2875
    functionName: bytearray_mod
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION2
    - PyByteArray_Check
    - bytearray_mod_lock_held
    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: 2954
      start: 2953
    functionDepth: 0
    functionLinenumber: 2953
    functionLinenumberEnd: 2954
    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:2958,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/bytearrayobject.c:2959,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/bytearrayobject.c:2960,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/bytearrayobject.c:2961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2955
    functionDepth: 1
    functionLinenumber: 2955
    functionLinenumberEnd: 2962
    functionName: bytearrayiter_dealloc
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - _bytesiterobject_CAST
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void bytearrayiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:2967,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/bytearrayobject.c:2968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2970
    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:2975,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:2978,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2979,1
    - Dst: assert
      Src: /src/cpython/Objects/bytearrayobject.c:2984,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/bytearrayobject.c:2984,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2986,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:2987,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/bytearrayobject.c:2988,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/bytearrayobject.c:2993,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:2996,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/bytearrayobject.c:2998,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:3002,1
    - Dst: _PyLong_FromUnsignedChar
      Src: /src/cpython/Objects/bytearrayobject.c:3003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyByteArray_Check(seq))
      pos:
        line_end: 2983
        line_start: 2983
        source_file: /src/cpython/Objects/bytearrayobject.c
    - condition: (it != NULL)
      pos:
        line_end: 2977
        line_start: 2977
        source_file: /src/cpython/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 3004
      start: 2972
    functionDepth: 1
    functionLinenumber: 2972
    functionLinenumberEnd: 3004
    functionName: bytearrayiter_next
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytesiterobject_CAST
    - _PyLong_FromUnsignedChar
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_SIZE
    - Py_CLEAR
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - assert
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyByteArray_Check
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_next(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:3009,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:3011,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:3013,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/bytearrayobject.c:3018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 3006
    functionDepth: 1
    functionLinenumber: 3006
    functionLinenumberEnd: 3019
    functionName: bytearrayiter_length_hint
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _bytesiterobject_CAST
    - PyByteArray_GET_SIZE
    - PyLong_FromSsize_t
    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:3027,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/bytearrayobject.c:3027,1
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:3032,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:3033,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:3035,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/bytearrayobject.c:3037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3024
    functionDepth: 1
    functionLinenumber: 3024
    functionLinenumberEnd: 3038
    functionName: bytearrayiter_reduce
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytesiterobject_CAST
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _Py_ID
    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:3043,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/bytearrayobject.c:3044,1
    - Dst: _bytesiterobject_CAST
      Src: /src/cpython/Objects/bytearrayobject.c:3048,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:3049,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/bytearrayobject.c:3054,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/bytearrayobject.c:3059,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 3040
    functionDepth: 1
    functionLinenumber: 3040
    functionLinenumberEnd: 3062
    functionName: bytearrayiter_setstate
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _bytesiterobject_CAST
    - PyByteArray_GET_SIZE
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyErr_Occurred
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - 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:3114,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/bytearrayobject.c:3115,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/bytearrayobject.c:3118,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/bytearrayobject.c:3122,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/bytearrayobject.c:3123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3109
    functionDepth: 1
    functionLinenumber: 3109
    functionLinenumberEnd: 3125
    functionName: bytearray_iter
    functionSourceFile: /src/cpython/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - PyByteArray_Check
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_iter(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - EXC
    - ','
    - FMT
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: FORMAT_ERROR
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORMAT_ERROR(EXC, FMT, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Objects/unicode_format.c:104,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - allowone
    argTypes:
    - struct unicode_formatter_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: unicode_format_getnextarg
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_format_getnextarg(struct unicode_formatter_t *ctx, int allowone)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Objects/unicode_format.c:136,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicode_format.c:137,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicode_format.c:138,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:139,1
    - Dst: PyOS_double_to_string
      Src: /src/cpython/Objects/unicode_format.c:152,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicode_format.c:155,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicode_format.c:157,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicode_format.c:158,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicode_format.c:163,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicode_format.c:164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - v
    - ctx
    - arg
    - p_output
    - writer
    argTypes:
    - PyObject*
    - struct unicode_formatter_t*
    - struct unicode_format_arg_t*
    - PyObject**
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 166
    functionName: formatfloat
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 1
    functionsReached:
    - FORMAT_ERROR
    - PyFloat_AsDouble
    - _PyUnicode_FromASCII
    - PyOS_double_to_string
    - _PyUnicodeWriter_WriteASCIIString
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - strlen
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: "int formatfloat(PyObject *v,\n            struct unicode_formatter_t
      *ctx,\n            struct unicode_format_arg_t *arg,\n            PyObject **p_output,\n
      \           _PyUnicodeWriter *writer)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_format.c:201,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:206,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicode_format.c:206,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicode_format.c:210,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Objects/unicode_format.c:216,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Objects/unicode_format.c:220,1
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Objects/unicode_format.c:225,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:231,1
    - Dst: _PyUnicode_IsModifiable
      Src: /src/cpython/Objects/unicode_format.c:231,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:232,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicode_format.c:232,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/unicode_format.c:235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:236,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicode_format.c:237,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_format.c:240,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_format.c:241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:243,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_format.c:244,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:252,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:257,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:258,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:265,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:266,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicode_format.c:271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:275,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicode_format.c:278,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicode_format.c:286,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicode_format.c:287,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicode_format.c:299,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_format.c:300,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicode_format.c:302,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicode_format.c:303,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_format.c:305,1
    - Dst: PyUnicode_Resize
      Src: /src/cpython/Objects/unicode_format.c:306,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicode_format.c:307,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 4
    argNames:
    - val
    - alt
    - prec
    - type
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (_PyUnicode_IsModifiable(result))
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (PyUnicode_IS_ASCII(result))
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: "(buf[sign+1] == 'x' || buf[sign+1] == 'X' ||\n               buf[sign+1]
        == 'o')"
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (len == numnondigits + numdigits)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (PyLong_Check(val))
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (numdigits > 0)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (buf[sign] == '0')
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (numdigits > 0)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/cpython/Objects/unicode_format.c
    constantsTouched: []
    func_position:
      end: 310
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 310
    functionName: _PyUnicode_FormatLong
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 1
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyBytes_FromStringAndSize
    - assert
    - PyUnicode_DATA
    - PyUnicode_Check
    - Py_UNREACHABLE
    - PyLong_Check
    - PyBytes_AS_STRING
    - _PyObject_IsUniquelyReferenced
    - PyUnicode_Resize
    - PyErr_SetString
    - PyErr_BadInternalCall
    - _PyUnicode_IsModifiable
    - Py_DECREF
    - _PyUnicode_FromASCII
    - Py_SETREF
    - PyNumber_ToBase
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    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/unicode_format.c:327,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicode_format.c:331,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/unicode_format.c:333,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Objects/unicode_format.c:336,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicode_format.c:339,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:343,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicode_format.c:343,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicode_format.c:346,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/unicode_format.c:349,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicode_format.c:361,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicode_format.c:376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:380,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/cpython/Objects/unicode_format.c:384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:385,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:397,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:402,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 5
    argNames:
    - v
    - ctx
    - arg
    - p_output
    - writer
    argTypes:
    - PyObject*
    - struct unicode_formatter_t*
    - struct unicode_format_arg_t*
    - PyObject**
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (PyLong_Check(iobj))
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Objects/unicode_format.c
    constantsTouched: []
    func_position:
      end: 408
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 408
    functionName: mainformatlong
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 0
    functionsReached:
    - FORMAT_ERROR
    - PyNumber_Check
    - _PyLong_FormatWriter
    - Py_UNREACHABLE
    - PyLong_Check
    - PyNumber_Long
    - PyLong_CheckExact
    - PyErr_ExceptionMatches
    - assert
    - _PyNumber_Index
    - _PyUnicode_FormatLong
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: "int mainformatlong(PyObject *v,\n               struct unicode_formatter_t
      *ctx,\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/unicode_format.c:417,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_format.c:418,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicode_format.c:419,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:421,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_format.c:424,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/unicode_format.c:429,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicode_format.c:430,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicode_format.c:431,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:432,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:442,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - v
    - ctx
    - arg
    argTypes:
    - PyObject*
    - struct unicode_formatter_t*
    - struct unicode_format_arg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 449
    functionName: formatchar
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - FORMAT_ERROR
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: Py_UCS4
    signature: "Py_UCS4 formatchar(PyObject *v,\n           struct unicode_formatter_t
      *ctx,\n           struct unicode_format_arg_t *arg)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:474,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicode_format.c:484,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:493,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicode_format.c:498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:504,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/unicode_format.c:506,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:515,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicode_format.c:525,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:540,1
    - Dst: unicode_format_getnextarg
      Src: /src/cpython/Objects/unicode_format.c:546,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicode_format.c:549,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:550,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/unicode_format.c:553,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicode_format.c:554,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicode_format.c:555,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:556,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicode_format.c:566,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicode_format.c:573,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:581,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicode_format.c:594,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:599,1
    - Dst: unicode_format_getnextarg
      Src: /src/cpython/Objects/unicode_format.c:605,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicode_format.c:608,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:609,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/unicode_format.c:612,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicode_format.c:613,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicode_format.c:614,1
    - Dst: FORMAT_ERROR
      Src: /src/cpython/Objects/unicode_format.c:615,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicode_format.c:623,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicode_format.c:630,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:635,1
    - Dst: FORMAT_READ
      Src: /src/cpython/Objects/unicode_format.c:649,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:655,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 165
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - struct unicode_formatter_t*
    - struct unicode_format_arg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 662
    functionName: unicode_format_arg_parse
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 0
    functionsReached:
    - unicode_format_getnextarg
    - FORMAT_ERROR
    - PyLong_AsInt
    - FORMAT_READ
    - PyObject_GetItem
    - PyLong_Check
    - PyUnicode_Substring
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - 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: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: FORMAT_READ
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORMAT_READ(ctx)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: unicode_format_getnextarg
      Src: /src/cpython/Objects/unicode_format.c:690,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/unicode_format.c:699,1
    - Dst: _PyLong_FormatWriter
      Src: /src/cpython/Objects/unicode_format.c:701,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicode_format.c:706,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicode_format.c:707,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicode_format.c:711,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/unicode_format.c:713,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Objects/unicode_format.c:715,1
    - Dst: mainformatlong
      Src: /src/cpython/Objects/unicode_format.c:726,1
    - Dst: formatfloat
      Src: /src/cpython/Objects/unicode_format.c:743,1
    - Dst: formatfloat
      Src: /src/cpython/Objects/unicode_format.c:749,1
    - Dst: formatchar
      Src: /src/cpython/Objects/unicode_format.c:755,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicode_format.c:760,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicode_format.c:764,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Objects/unicode_format.c:769,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:770,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:775,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:782,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Objects/unicode_format.c:788,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:789,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:796,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:805,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicode_format.c:805,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 83
    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: 804
        line_start: 804
        source_file: /src/cpython/Objects/unicode_format.c
    constantsTouched: []
    func_position:
      end: 807
      start: 679
    functionDepth: 6
    functionLinenumber: 679
    functionLinenumberEnd: 807
    functionName: unicode_format_arg_format
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 0
    functionsReached:
    - Py_ISALPHA
    - unicode_format_getnextarg
    - _PyUnicodeWriter_WriteCharInline
    - PyObject_Str
    - PyUnicode_CheckExact
    - PyUnicode_FromOrdinal
    - _PyLong_FormatWriter
    - mainformatlong
    - PyObject_Repr
    - PyLong_CheckExact
    - formatfloat
    - formatchar
    - Py_UNICODE_ISPRINTABLE
    - PyErr_Format
    - assert
    - PyUnicode_Check
    - PyObject_ASCII
    - Py_NewRef
    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/unicode_format.c:830,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicode_format.c:836,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicode_format.c:849,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_format.c:850,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_format.c:854,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_format.c:875,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_format.c:879,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicode_format.c:882,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/cpython/Objects/unicode_format.c:883,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicode_format.c:884,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicode_format.c:890,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_format.c:896,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:907,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_format.c:907,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:908,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_format.c:908,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_format.c:910,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_format.c:911,1
    - Dst: _PyUnicode_Fill
      Src: /src/cpython/Objects/unicode_format.c:924,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_format.c:933,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:937,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_format.c:937,1
    - Dst: assert
      Src: /src/cpython/Objects/unicode_format.c:938,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_format.c:938,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_format.c:939,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicode_format.c:940,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicode_format.c:948,1
    - Dst: _PyUnicode_Fill
      Src: /src/cpython/Objects/unicode_format.c:956,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) == '0')
      pos:
        line_end: 906
        line_start: 906
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex+1) == arg->ch)
      pos:
        line_end: 937
        line_start: 937
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex + 1) == arg->ch)
      pos:
        line_end: 907
        line_start: 907
        source_file: /src/cpython/Objects/unicode_format.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex) == '0')
      pos:
        line_end: 936
        line_start: 936
        source_file: /src/cpython/Objects/unicode_format.c
    constantsTouched: []
    func_position:
      end: 960
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 960
    functionName: unicode_format_arg_output
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - _PyUnicode_FindMaxChar
    - PyUnicode_DATA
    - PyUnicode_KIND
    - _PyUnicodeWriter_Prepare
    - PyUnicode_READ
    - _PyUnicode_Fill
    - _PyUnicode_FastCopyCharacters
    - Py_MAX
    - PyUnicode_GET_LENGTH
    - assert
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_MAX_CHAR_VALUE
    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/unicode_format.c:972,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicode_format.c:976,1
    - Dst: unicode_format_arg_parse
      Src: /src/cpython/Objects/unicode_format.c:988,1
    - Dst: unicode_format_arg_format
      Src: /src/cpython/Objects/unicode_format.c:993,1
    - Dst: unicode_format_arg_output
      Src: /src/cpython/Objects/unicode_format.c:999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:1000,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicode_format.c:1008,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_format.c:1012,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicode_format.c:1016,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct unicode_formatter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 965
    functionDepth: 7
    functionLinenumber: 965
    functionLinenumberEnd: 1018
    functionName: unicode_format_arg
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteCharInline
    - unicode_format_arg_parse
    - PyUnicode_READ
    - PyErr_SetString
    - unicode_format_arg_format
    - Py_XDECREF
    - unicode_format_arg_output
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int unicode_format_arg(struct unicode_formatter_t *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicode_format.c:1027,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicode_format.c:1031,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicode_format.c:1035,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicode_format.c:1036,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicode_format.c:1037,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicode_format.c:1040,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicode_format.c:1044,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/unicode_format.c:1045,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Objects/unicode_format.c:1053,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicode_format.c:1053,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicode_format.c:1053,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_format.c:1060,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicode_format.c:1065,1
    - Dst: _PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Objects/unicode_format.c:1074,1
    - Dst: unicode_format_arg
      Src: /src/cpython/Objects/unicode_format.c:1080,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicode_format.c:1086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:1095,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicode_format.c:1097,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicode_format.c:1100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicode_format.c:1102,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1021
    functionDepth: 8
    functionLinenumber: 1021
    functionLinenumberEnd: 1105
    functionName: PyUnicode_Format
    functionSourceFile: /src/cpython/Objects/unicode_format.c
    functionUses: 1
    functionsReached:
    - PyTuple_Size
    - PyUnicode_KIND
    - PyUnicode_DATA
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Finish
    - PyUnicode_READ
    - PyMapping_Check
    - ensure_unicode
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - unicode_format_arg
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_GET_LENGTH
    - PyTuple_Check
    - _PyUnicodeWriter_WriteSubstring
    - PyErr_Format
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Format(PyObject *format, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/exceptions.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    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:44,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    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:56,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:66,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:70,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 77
    functionName: BaseException_new
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyTuple_New
    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:82,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/exceptions.c:83,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:83,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:86,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: BaseException_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyBaseExceptionObject_CAST
    - _PyArg_NoKeywords
    - Py_NewRef
    - 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:95,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/exceptions.c:96,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/exceptions.c:101,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Objects/exceptions.c:114,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/exceptions.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:116,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: 121
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 121
    functionName: BaseException_vectorcall
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - _PyArg_NoKwnames
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:127,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:128,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:129,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:130,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:131,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:132,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: BaseException_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyBaseExceptionObject_CAST
    linkageType: ''
    returnType: int
    signature: int BaseException_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:140,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/exceptions.c:141,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:145,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: BaseException_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - BaseException_clear
    - Py_TYPE
    - PyBaseExceptionObject_CAST
    linkageType: ''
    returnType: void
    signature: void BaseException_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:152,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:153,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:154,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:155,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:156,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:157,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: BaseException_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyBaseExceptionObject_CAST
    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:165,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:168,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:169,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/exceptions.c:171,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:174,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:174,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:177,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: BaseException_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyTuple_GET_ITEM
    - Py_END_CRITICAL_SECTION
    - PyObject_Str
    - Py_BEGIN_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_str(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:188,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:191,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/exceptions.c:192,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:192,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:193,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:194,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:195,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:198,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: BaseException_repr
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_FromFormat
    - PyBaseExceptionObject_CAST
    - _PyType_Name
    - PyTuple_GET_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:216,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:216,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/exceptions.c:218,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: BaseException___reduce___impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromPair
    - 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:242,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:243,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/exceptions.c:246,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:247,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:248,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/exceptions.c:249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 258
    functionName: BaseException___setstate___impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_SetAttr
    - PyErr_SetString
    - PyDict_Next
    - PyDict_Check
    - Py_DECREF
    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:274,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - tb
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 278
    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:294,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:294,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:298,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/exceptions.c:302,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:303,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/exceptions.c:307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:308,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:309,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - note
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 318
    functionName: BaseException_add_note_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - PyErr_SetString
    - PyObject_GetOptionalAttr
    - PyList_Check
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - _Py_ID
    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:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 342
    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:356,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/exceptions.c:359,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 364
    functionName: BaseException_args_set_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyErr_SetString
    - PySequence_Tuple
    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:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 380
    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:395,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Objects/exceptions.c:398,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:399,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:399,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:402,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 410
    functionName: BaseException___traceback___set_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_XSETREF
    - PyErr_SetString
    - Py_CLEAR
    - PyTraceBack_Check
    - Py_NewRef
    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:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 426
    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:440,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:444,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:445,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:449,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 453
    functionName: BaseException___context___set_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_INCREF
    - PyExceptionInstance_Check
    - PyErr_SetString
    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:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 469
    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:483,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:487,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:488,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:493,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Objects/exceptions.c:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 497
    functionName: BaseException___cause___set_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyException_SetCause
    - Py_INCREF
    - PyExceptionInstance_Check
    - PyErr_SetString
    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:514,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:515,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:515,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: PyException_GetTraceback
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 5
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XNewRef
    - PyBaseExceptionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetTraceback(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:525,1
    - Dst: BaseException___traceback___set_impl
      Src: /src/cpython/Objects/exceptions.c:526,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:526,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 529
    functionName: PyException_SetTraceback
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - BaseException___traceback___set_impl
    - PyBaseExceptionObject_CAST
    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:535,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:536,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:536,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 539
    functionName: PyException_GetCause
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XNewRef
    - PyBaseExceptionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetCause(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:545,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:546,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:548,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - cause
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 550
    functionName: PyException_SetCause
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 3
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XSETREF
    - PyBaseExceptionObject_CAST
    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:556,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:557,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:557,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 560
    functionName: PyException_GetContext
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XNewRef
    - PyBaseExceptionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetContext(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:566,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:567,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:567,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 569
    functionName: PyException_SetContext
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XSETREF
    - PyBaseExceptionObject_CAST
    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:575,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:576,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:576,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 579
    functionName: PyException_GetArgs
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_NewRef
    - PyBaseExceptionObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetArgs(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:584,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:585,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:586,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:586,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/exceptions.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 588
    functionName: PyException_SetArgs
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_END_CRITICAL_SECTION
    - Py_XSETREF
    - Py_BEGIN_CRITICAL_SECTION
    - PyBaseExceptionObject_CAST
    linkageType: ''
    returnType: void
    signature: void PyException_SetArgs(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:593,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/exceptions.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyExceptionClass_Check(ob))
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 595
    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: 668
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 668
    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: 682
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 682
    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: 687
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 687
    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: 21
    argNames:
    - (
    - EXCBASE
    - ','
    - EXCNAME
    - ','
    - EXCSTORE
    - ','
    - EXCNEW
    - ','
    - EXCMETHODS
    - ','
    - EXCMEMBERS
    - ','
    - EXCGETSET
    - ','
    - EXCSTR
    - ','
    - EXCREPR
    - ','
    - EXCDOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 705
    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, EXCREPR,
      EXCDOC)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:741,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_StopIteration))
      pos:
        line_end: 740
        line_start: 740
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 743
    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:748,1
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:751,1
    - Dst: PyStopIterationObject_CAST
      Src: /src/cpython/Objects/exceptions.c:753,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:754,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:756,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 761
    functionName: StopIteration_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_CLEAR
    - BaseException_init
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyStopIterationObject_CAST
    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:766,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:767,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 763
    functionDepth: 3
    functionLinenumber: 763
    functionLinenumberEnd: 769
    functionName: StopIteration_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyStopIterationObject_CAST
    - BaseException_clear
    linkageType: ''
    returnType: int
    signature: int StopIteration_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/exceptions.c:774,1
    - Dst: StopIteration_clear
      Src: /src/cpython/Objects/exceptions.c:775,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 771
    functionDepth: 4
    functionLinenumber: 771
    functionLinenumberEnd: 777
    functionName: StopIteration_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_TYPE
    - StopIteration_clear
    linkageType: ''
    returnType: void
    signature: void StopIteration_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStopIterationObject_CAST
      Src: /src/cpython/Objects/exceptions.c:782,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:783,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 785
    functionName: StopIteration_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyStopIterationObject_CAST
    - BaseException_traverse
    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:806,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_SystemExit))
      pos:
        line_end: 805
        line_start: 805
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 808
    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:813,1
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:815,1
    - Dst: PySystemExitObject_CAST
      Src: /src/cpython/Objects/exceptions.c:818,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:822,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:822,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:822,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:825,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 828
    functionName: SystemExit_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - BaseException_init
    - PySystemExitObject_CAST
    - PyTuple_GET_SIZE
    - Py_NewRef
    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:833,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:834,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 836
    functionName: SystemExit_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PySystemExitObject_CAST
    - BaseException_clear
    - 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:841,1
    - Dst: SystemExit_clear
      Src: /src/cpython/Objects/exceptions.c:842,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 844
    functionName: SystemExit_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - SystemExit_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SystemExit_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySystemExitObject_CAST
      Src: /src/cpython/Objects/exceptions.c:849,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:850,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: SystemExit_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PySystemExitObject_CAST
    - Py_VISIT
    - BaseException_traverse
    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:873,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyBaseExceptionGroup_Check(exc))
      pos:
        line_end: 872
        line_start: 872
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 875
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 875
    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: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_exc_state
      Src: /src/cpython/Objects/exceptions.c:880,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:888,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/exceptions.c:895,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:896,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/exceptions.c:903,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/exceptions.c:903,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/exceptions.c:904,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/exceptions.c:914,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:921,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:923,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:931,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:935,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:936,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Objects/exceptions.c:942,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:954,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Objects/exceptions.c:970,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:975,1
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:990,1
    - Dst: BaseException_new
      Src: /src/cpython/Objects/exceptions.c:990,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:995,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1000,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1001,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 877
    functionDepth: 7
    functionLinenumber: 877
    functionLinenumberEnd: 1003
    functionName: BaseExceptionGroup_new
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PyExceptionInstance_Check
    - PyBaseExceptionGroupObject_CAST
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - get_exc_state
    - PyErr_SetString
    - Py_NewRef
    - PyObject_Repr
    - PyList_Check
    - PyTuple_Check
    - PyErr_Format
    - PyArg_ParseTuple
    - BaseException_new
    - PyTuple_GET_SIZE
    - Py_XDECREF
    - PyObject_IsSubclass
    - PyObject_IsInstance
    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:1008,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/exceptions.c:1012,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1012,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Objects/exceptions.c:1016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - msg_str
    - excs
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1019
    functionName: _PyExc_CreateExceptionGroup
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyObject_CallObject
    - _PyTuple_FromPairSteal
    - Py_DECREF
    - Py_NewRef
    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:1024,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1024,1
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:1027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1021
    functionDepth: 3
    functionLinenumber: 1021
    functionLinenumberEnd: 1031
    functionName: BaseExceptionGroup_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Py_TYPE
    - BaseException_init
    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:1036,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1037,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1038,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1039,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1033
    functionDepth: 3
    functionLinenumber: 1033
    functionLinenumberEnd: 1041
    functionName: BaseExceptionGroup_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - BaseException_clear
    - PyBaseExceptionGroupObject_CAST
    linkageType: ''
    returnType: int
    signature: int BaseExceptionGroup_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:1046,1
    - Dst: BaseExceptionGroup_clear
      Src: /src/cpython/Objects/exceptions.c:1047,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1043
    functionDepth: 4
    functionLinenumber: 1043
    functionLinenumberEnd: 1049
    functionName: BaseExceptionGroup_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - BaseExceptionGroup_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void BaseExceptionGroup_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1054,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1055,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1056,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1057,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1059
    functionName: BaseExceptionGroup_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_traverse
    - Py_VISIT
    - PyBaseExceptionGroupObject_CAST
    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:1064,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1065,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1066,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/exceptions.c:1066,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1068,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1068,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/exceptions.c:1069,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->msg)
      pos:
        line_end: 1064
        line_start: 1064
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyTuple_CheckExact(self->excs))
      pos:
        line_end: 1067
        line_start: 1067
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyUnicode_Check(self->msg))
      pos:
        line_end: 1065
        line_start: 1065
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1073
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1073
    functionName: BaseExceptionGroup_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionGroupObject_CAST
    - PyTuple_Size
    - PyUnicode_Check
    - PyUnicode_FromFormat
    - assert
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseExceptionGroup_str(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1078,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1079,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1085,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1088,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1094,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/exceptions.c:1094,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1095,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/exceptions.c:1095,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1095,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/exceptions.c:1096,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/exceptions.c:1101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1102,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/exceptions.c:1105,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1113,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/exceptions.c:1115,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1115,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:1116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->excs)
      pos:
        line_end: 1087
        line_start: 1087
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (self->msg)
      pos:
        line_end: 1078
        line_start: 1078
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyTuple_Check(self->args))
      pos:
        line_end: 1093
        line_start: 1093
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (exceptions_str != NULL)
      pos:
        line_end: 1112
        line_start: 1112
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1122
      start: 1075
    functionDepth: 3
    functionLinenumber: 1075
    functionLinenumberEnd: 1122
    functionName: BaseExceptionGroup_repr
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBaseExceptionGroupObject_CAST
    - PyTuple_GET_ITEM
    - PySequence_List
    - PyUnicode_FromFormat
    - PyObject_Repr
    - PyList_Check
    - PyTuple_Check
    - assert
    - Py_DECREF
    - _PyType_Name
    - PyTuple_GET_SIZE
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseExceptionGroup_repr(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/exceptions.c:1136,1
    - Dst: PyObject_CallObject
      Src: /src/cpython/Objects/exceptions.c:1140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - excs
    argTypes:
    - PyBaseExceptionGroupObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1144
    functionName: BaseExceptionGroup_derive_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallObject
    - _PyTuple_FromPair
    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:1161,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/exceptions.c:1169,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1175,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:1176,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Objects/exceptions.c:1183,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Objects/exceptions.c:1185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1186,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Objects/exceptions.c:1191,1
    - Dst: PyException_GetContext
      Src: /src/cpython/Objects/exceptions.c:1191,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Objects/exceptions.c:1192,1
    - Dst: PyException_GetCause
      Src: /src/cpython/Objects/exceptions.c:1192,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/exceptions.c:1195,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1195,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/exceptions.c:1199,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/exceptions.c:1201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1202,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/exceptions.c:1206,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1224,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - _orig
    - excs
    - result
    argTypes:
    - PyBaseExceptionGroupObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1226
    functionName: exceptiongroup_subset
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PyException_GetCause
    - PyObject_SetAttr
    - PySequence_List
    - PyErr_SetString
    - _PyBaseExceptionGroup_Check
    - PyException_SetTraceback
    - PyException_SetCause
    - PyException_GetTraceback
    - PyObject_GetOptionalAttr
    - PySequence_Size
    - PyException_SetContext
    - Py_DECREF
    - PyException_GetContext
    - PyObject_CallMethod
    - _Py_ID
    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:1244,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/exceptions.c:1246,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/exceptions.c:1246,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/exceptions.c:1251,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1256,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1257,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/exceptions.c:1259,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1259,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:1268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - value
    - type
    argTypes:
    - PyObject*
    - _exceptiongroup_split_matcher_type*
    assertStmts:
    - condition: (value)
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1272
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1272
    functionName: get_matcher_type
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyExceptionClass_Check
    - PyType_Check
    - PyCallable_Check
    - PyErr_SetString
    - assert
    - PyTuple_GET_SIZE
    - 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:1281,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Objects/exceptions.c:1281,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1282,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Objects/exceptions.c:1283,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1286,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/exceptions.c:1286,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/exceptions.c:1286,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/exceptions.c:1287,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/exceptions.c:1291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1292,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1296,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/exceptions.c:1296,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1297,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/exceptions.c:1298,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/exceptions.c:1302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1303,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: 1281
        line_start: 1280
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyCallable_Check(matcher_value) && !PyType_Check(matcher_value))
      pos:
        line_end: 1285
        line_start: 1285
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PySet_Check(matcher_value))
      pos:
        line_end: 1295
        line_start: 1295
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1310
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1310
    functionName: exceptiongroup_split_check_match
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyExceptionClass_Check
    - PyType_Check
    - PyCallable_Check
    - _PyBaseExceptionGroup_Check
    - PyObject_IsTrue
    - PySet_Contains
    - PySet_Check
    - assert
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - PyTuple_CheckExact
    - PyLong_FromVoidPtr
    - PyObject_CallOneArg
    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:1327,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1335,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1338,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1341,1
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1348,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1349,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1349,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/exceptions.c:1350,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1354,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:1357,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:1364,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1371,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1373,1
    - Dst: exceptiongroup_split_recursive
      Src: /src/cpython/Objects/exceptions.c:1376,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1379,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1380,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1381,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1384,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1386,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1386,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:1387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1388,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1392,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1395,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1396,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1396,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:1397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1401,1
    - Dst: exceptiongroup_subset
      Src: /src/cpython/Objects/exceptions.c:1406,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1411,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1411,1
    - Dst: exceptiongroup_subset
      Src: /src/cpython/Objects/exceptions.c:1412,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1419,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1422,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1423,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: (PyTuple_CheckExact(eg->excs))
      pos:
        line_end: 1348
        line_start: 1348
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyList_CheckExact(rest_list))
      pos:
        line_end: 1410
        line_start: 1410
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (!rec_result.rest)
      pos:
        line_end: 1379
        line_start: 1379
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (construct_rest)
      pos:
        line_end: 1394
        line_start: 1394
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (num_excs > 0)
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (!rec_result.match)
      pos:
        line_end: 1378
        line_start: 1378
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyList_CheckExact(rest_list))
      pos:
        line_end: 1395
        line_start: 1395
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyList_CheckExact(match_list))
      pos:
        line_end: 1385
        line_start: 1385
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1426
      start: 1317
    functionDepth: 4
    functionLinenumber: 1317
    functionLinenumberEnd: 1426
    functionName: exceptiongroup_split_recursive
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyBaseExceptionGroupObject_CAST
    - PyTuple_Size
    - PyTuple_GET_ITEM
    - _Py_EnterRecursiveCall
    - _PyBaseExceptionGroup_Check
    - exceptiongroup_split_recursive
    - _Py_LeaveRecursiveCall
    - PyList_Append
    - Py_CLEAR
    - PyList_New
    - Py_XDECREF
    - assert
    - Py_DECREF
    - exceptiongroup_subset
    - exceptiongroup_split_check_match
    - PyTuple_CheckExact
    - Py_NewRef
    - PyList_CheckExact
    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:1441,1
    - Dst: exceptiongroup_split_recursive
      Src: /src/cpython/Objects/exceptions.c:1447,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1453,1
    - Dst: _Py_IsStaticImmortal
      Src: /src/cpython/Objects/exceptions.c:1453,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/exceptions.c:1454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - matcher_value
    argTypes:
    - PyBaseExceptionGroupObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_IsStaticImmortal(Py_None))
      pos:
        line_end: 1452
        line_start: 1452
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1459
      start: 1435
    functionDepth: 5
    functionLinenumber: 1435
    functionLinenumberEnd: 1459
    functionName: BaseExceptionGroup_split_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - exceptiongroup_split_recursive
    - _Py_IsStaticImmortal
    - get_matcher_type
    - assert
    - _PyTuple_FromPairSteal
    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:1474,1
    - Dst: exceptiongroup_split_recursive
      Src: /src/cpython/Objects/exceptions.c:1480,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1486,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1489,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - matcher_value
    argTypes:
    - PyBaseExceptionGroupObject*
    - PyObject*
    assertStmts:
    - condition: (!split_result.rest)
      pos:
        line_end: 1489
        line_start: 1489
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1492
      start: 1468
    functionDepth: 5
    functionLinenumber: 1468
    functionLinenumberEnd: 1492
    functionName: BaseExceptionGroup_subgroup_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - assert
    - exceptiongroup_split_recursive
    - Py_XDECREF
    - get_matcher_type
    - Py_NewRef
    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:1497,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1501,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1501,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1502,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/exceptions.c:1502,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1506,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/exceptions.c:1507,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/exceptions.c:1511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1512,1
    - Dst: PyBaseExceptionGroupObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1515,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1516,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1519,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1520,1
    - Dst: collect_exception_group_leaf_ids
      Src: /src/cpython/Objects/exceptions.c:1523,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Objects/exceptions.c:1524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - exc
    - leaf_ids
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 1500
        line_start: 1500
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PySet_Check(leaf_ids))
      pos:
        line_end: 1501
        line_start: 1501
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1530
      start: 1494
    functionDepth: 2
    functionLinenumber: 1494
    functionLinenumberEnd: 1530
    functionName: collect_exception_group_leaf_ids
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyBaseExceptionGroupObject_CAST
    - PyTuple_GET_ITEM
    - PySet_Add
    - _Py_EnterRecursiveCall
    - _PyBaseExceptionGroup_Check
    - _Py_LeaveRecursiveCall
    - collect_exception_group_leaf_ids
    - Py_IsNone
    - PySet_Check
    - assert
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyLong_FromVoidPtr
    - PyTuple_GET_SIZE
    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:1541,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1541,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1542,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1542,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/exceptions.c:1544,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1549,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1551,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1552,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1553,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1553,1
    - Dst: collect_exception_group_leaf_ids
      Src: /src/cpython/Objects/exceptions.c:1554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1555,1
    - Dst: exceptiongroup_split_recursive
      Src: /src/cpython/Objects/exceptions.c:1562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1565,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1571,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - eg
    - keep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyBaseExceptionGroup_Check(eg))
      pos:
        line_end: 1540
        line_start: 1540
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyList_CheckExact(keep))
      pos:
        line_end: 1541
        line_start: 1541
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (e != NULL)
      pos:
        line_end: 1551
        line_start: 1551
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (_PyBaseExceptionGroup_Check(e))
      pos:
        line_end: 1552
        line_start: 1552
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (split_result.rest == NULL)
      pos:
        line_end: 1571
        line_start: 1571
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1574
      start: 1538
    functionDepth: 5
    functionLinenumber: 1538
    functionLinenumberEnd: 1574
    functionName: exception_group_projection
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyBaseExceptionGroup_Check
    - PyList_GET_ITEM
    - collect_exception_group_leaf_ids
    - exceptiongroup_split_recursive
    - PySet_New
    - assert
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GET_SIZE
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      exception_group_projection(PyObject *eg, PyObject *keep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1579,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1579,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1580,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - exc1
    - exc2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc1))
      pos:
        line_end: 1578
        line_start: 1578
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyExceptionInstance_Check(exc2))
      pos:
        line_end: 1579
        line_start: 1579
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1589
      start: 1576
    functionDepth: 1
    functionLinenumber: 1576
    functionLinenumberEnd: 1589
    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:1611,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1611,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1612,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1612,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1614,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/exceptions.c:1614,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1616,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1619,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Objects/exceptions.c:1622,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1627,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1627,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1629,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1630,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1631,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:1634,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/exceptions.c:1638,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1640,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1650,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1651,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1652,1
    - Dst: is_same_exception_metadata
      Src: /src/cpython/Objects/exceptions.c:1655,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:1657,1
    - Dst: exception_group_projection
      Src: /src/cpython/Objects/exceptions.c:1662,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1667,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1668,1
    - Dst: is_same_exception_metadata
      Src: /src/cpython/Objects/exceptions.c:1668,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1670,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1676,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/exceptions.c:1677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1679,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1683,1
    - Dst: _PyExc_CreateExceptionGroup
      Src: /src/cpython/Objects/exceptions.c:1684,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1687,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Objects/exceptions.c:1687,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1695,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:1696,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 2
    argNames:
    - orig
    - excs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(excs))
      pos:
        line_end: 1613
        line_start: 1613
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (e != NULL)
      pos:
        line_end: 1650
        line_start: 1650
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyBaseExceptionObject_CAST(orig)->traceback != NULL)
      pos:
        line_end: 1611
        line_start: 1611
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (numexcs == 1 || (numexcs == 2 && PyList_GET_ITEM(excs, 1) == Py_None))
      pos:
        line_end: 1626
        line_start: 1626
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (is_same_exception_metadata(reraised_eg, orig))
      pos:
        line_end: 1667
        line_start: 1667
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (e != NULL)
      pos:
        line_end: 1629
        line_start: 1629
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (PyExceptionInstance_Check(orig))
      pos:
        line_end: 1610
        line_start: 1610
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1698
      start: 1607
    functionDepth: 6
    functionLinenumber: 1607
    functionLinenumberEnd: 1698
    functionName: _PyExc_PrepReraiseStar
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - is_same_exception_metadata
    - exception_group_projection
    - assert
    - _PyBaseExceptionGroup_Check
    - PyList_GET_ITEM
    - PyList_Append
    - _PyExc_CreateExceptionGroup
    - Py_IsNone
    - PyList_Check
    - PyList_New
    - Py_XDECREF
    - PyBaseExceptionObject_CAST
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyList_GET_SIZE
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyExc_PrepReraiseStar(PyObject *orig, PyObject *excs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1703,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:1704,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/exceptions.c:1707,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:1708,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1712,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1714,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:1715,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/exceptions.c:1715,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:1716,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Objects/exceptions.c:1725,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:1728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1731,1
    - Dst: _PyExc_PrepReraiseStar
      Src: /src/cpython/Objects/exceptions.c:1733,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - orig
    - excs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1700
    functionDepth: 7
    functionLinenumber: 1700
    functionLinenumberEnd: 1734
    functionName: PyUnstable_Exc_PrepReraiseStar
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyExc_PrepReraiseStar
    - PyList_GET_ITEM
    - Py_IsNone
    - PyList_Check
    - PyException_GetTraceback
    - PyErr_Format
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyList_GET_SIZE
    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:1764,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/exceptions.c:1766,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1772,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Objects/exceptions.c:1773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!state->PyExc_ExceptionGroup)
      pos:
        line_end: 1771
        line_start: 1771
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1778
      start: 1762
    functionDepth: 2
    functionLinenumber: 1762
    functionLinenumberEnd: 1778
    functionName: create_exception_group_class
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - get_exc_state
    - _PyTuple_FromPair
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_exception_group_class(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:1794,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_ImportError))
      pos:
        line_end: 1793
        line_start: 1793
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1796
      start: 1791
    functionDepth: 1
    functionLinenumber: 1791
    functionLinenumberEnd: 1796
    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:1808,1
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1811,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:1812,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Objects/exceptions.c:1815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1820,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:1822,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:1822,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:1823,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:1823,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:1824,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:1824,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:1826,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1827,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:1827,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:1829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1798
    functionDepth: 3
    functionLinenumber: 1798
    functionLinenumberEnd: 1832
    functionName: ImportError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - BaseException_init
    - PyImportErrorObject_CAST
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_XNewRef
    - Py_NewRef
    - PyTuple_New
    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:1837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1838,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1839,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1840,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:1841,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1834
    functionDepth: 3
    functionLinenumber: 1834
    functionLinenumberEnd: 1843
    functionName: ImportError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyImportErrorObject_CAST
    - BaseException_clear
    linkageType: ''
    returnType: int
    signature: int ImportError_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:1848,1
    - Dst: ImportError_clear
      Src: /src/cpython/Objects/exceptions.c:1849,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1845
    functionDepth: 4
    functionLinenumber: 1845
    functionLinenumberEnd: 1851
    functionName: ImportError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - ImportError_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ImportError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1856,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1857,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1858,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1859,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:1860,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:1861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1853
    functionDepth: 3
    functionLinenumber: 1853
    functionLinenumberEnd: 1862
    functionName: ImportError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyImportErrorObject_CAST
    - Py_VISIT
    - BaseException_traverse
    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:1867,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/exceptions.c:1868,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1869,1
    - Dst: BaseException_str
      Src: /src/cpython/Objects/exceptions.c:1871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1864
    functionDepth: 5
    functionLinenumber: 1864
    functionLinenumberEnd: 1872
    functionName: ImportError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyImportErrorObject_CAST
    - BaseException_str
    - PyUnicode_CheckExact
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_str(PyObject *op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1877,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/exceptions.c:1880,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/exceptions.c:1880,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/exceptions.c:1883,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1884,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/exceptions.c:1887,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1888,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/exceptions.c:1891,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/exceptions.c:1891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1892,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:1898,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1874
    functionDepth: 13
    functionLinenumber: 1874
    functionLinenumberEnd: 1903
    functionName: ImportError_getstate
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyDict_Copy
    - PyDict_SetItem
    - PyImportErrorObject_CAST
    - PyDict_New
    - Py_DECREF
    - Py_NewRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_getstate(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ImportError_getstate
      Src: /src/cpython/Objects/exceptions.c:1910,1
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1913,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/exceptions.c:1915,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1915,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:1917,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:1917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1906
    functionDepth: 14
    functionLinenumber: 1906
    functionLinenumberEnd: 1920
    functionName: ImportError_reduce
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromPair
    - PyTuple_Pack
    - ImportError_getstate
    - PyBaseExceptionObject_CAST
    - Py_DECREF
    - 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:1925,1
    - Dst: PyImportErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:1926,1
    - Dst: BaseException_repr
      Src: /src/cpython/Objects/exceptions.c:1928,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/exceptions.c:1930,1
    - Dst: BaseException_repr
      Src: /src/cpython/Objects/exceptions.c:1934,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Objects/exceptions.c:1938,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:1939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:1944,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/exceptions.c:1947,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Objects/exceptions.c:1951,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/exceptions.c:1958,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Objects/exceptions.c:1962,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/exceptions.c:1967,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/exceptions.c:1971,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/exceptions.c:1974,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1922
    functionDepth: 6
    functionLinenumber: 1922
    functionLinenumberEnd: 1976
    functionName: ImportError_repr
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - BaseException_repr
    - PyUnicodeWriter_WriteChar
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_WriteSubstring
    - PyImportErrorObject_CAST
    - PyUnicodeWriter_Finish
    - PyUnicode_GET_LENGTH
    - PyUnicodeWriter_WriteASCII
    - Py_DECREF
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:2036,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:2036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_OSError))
      pos:
        line_end: 2035
        line_start: 2035
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2038
      start: 2033
    functionDepth: 1
    functionLinenumber: 2033
    functionLinenumberEnd: 2038
    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:2081,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/exceptions.c:2084,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/exceptions.c:2089,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/exceptions.c:2094,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/exceptions.c:2095,1
    - Dst: winerror_to_errno
      Src: /src/cpython/Objects/exceptions.c:2097,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/exceptions.c:2098,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2101,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2104,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2106,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2107,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2107,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2109,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: 2116
      start: 2061
    functionDepth: 1
    functionLinenumber: 2061
    functionLinenumberEnd: 2116
    functionName: oserror_parse_args
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyTuple_GET_ITEM
    - PyLong_Check
    - PyLong_AsLong
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - winerror_to_errno
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - PyArg_UnpackTuple
    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:2128,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/exceptions.c:2132,1
    - Dst: PyNumber_Check
      Src: /src/cpython/Objects/exceptions.c:2133,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/exceptions.c:2137,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/exceptions.c:2138,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2142,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2145,1
    - Dst: PyTuple_GetSlice
      Src: /src/cpython/Objects/exceptions.c:2151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2155,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2160,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2161,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2163,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2167,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: 2171
      start: 2118
    functionDepth: 3
    functionLinenumber: 2118
    functionLinenumberEnd: 2171
    functionName: oserror_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - Py_XSETREF
    - PyNumber_Check
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GetSlice
    - PyTuple_GET_SIZE
    - Py_XNewRef
    - Py_NewRef
    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:2192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: ((PyObject *) type != PyExc_OSError)
      pos:
        line_end: 2191
        line_start: 2191
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2196
      start: 2178
    functionDepth: 0
    functionLinenumber: 2178
    functionLinenumberEnd: 2196
    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:2208,1
    - Dst: oserror_use_init
      Src: /src/cpython/Objects/exceptions.c:2210,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/exceptions.c:2211,1
    - Dst: oserror_parse_args
      Src: /src/cpython/Objects/exceptions.c:2214,1
    - Dst: get_exc_state
      Src: /src/cpython/Objects/exceptions.c:2222,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/exceptions.c:2223,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/exceptions.c:2226,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/exceptions.c:2228,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/exceptions.c:2230,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/exceptions.c:2235,1
    - Dst: oserror_use_init
      Src: /src/cpython/Objects/exceptions.c:2243,1
    - Dst: oserror_init
      Src: /src/cpython/Objects/exceptions.c:2244,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2252,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:2257,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:2261,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:2262,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2198
    functionDepth: 7
    functionLinenumber: 2198
    functionLinenumberEnd: 2264
    functionName: OSError_new
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyType_CAST
    - PyTuple_New
    - get_exc_state
    - oserror_parse_args
    - oserror_init
    - oserror_use_init
    - PyLong_Check
    - PyErr_Occurred
    - Py_XDECREF
    - _PyArg_NoKeywords
    - PyTypeObject*::tp_alloc
    - PyDict_GetItemWithError
    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:2269,1
    - Dst: oserror_use_init
      Src: /src/cpython/Objects/exceptions.c:2276,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2276,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/exceptions.c:2280,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2280,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:2283,1
    - Dst: oserror_parse_args
      Src: /src/cpython/Objects/exceptions.c:2284,1
    - Dst: oserror_init
      Src: /src/cpython/Objects/exceptions.c:2291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2266
    functionDepth: 4
    functionLinenumber: 2266
    functionLinenumberEnd: 2303
    functionName: OSError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyOSErrorObject_CAST
    - oserror_init
    - oserror_parse_args
    - oserror_use_init
    - _PyArg_NoKeywords
    - Py_DECREF
    - Py_TYPE
    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:2308,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2309,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2310,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2311,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2312,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2314,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:2316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2305
    functionDepth: 3
    functionLinenumber: 2305
    functionLinenumberEnd: 2317
    functionName: OSError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyOSErrorObject_CAST
    - BaseException_clear
    linkageType: ''
    returnType: int
    signature: int OSError_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:2322,1
    - Dst: OSError_clear
      Src: /src/cpython/Objects/exceptions.c:2323,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2319
    functionDepth: 4
    functionLinenumber: 2319
    functionLinenumberEnd: 2325
    functionName: OSError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - OSError_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void OSError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOSErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2330,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2331,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2332,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2333,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2334,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2336,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:2338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2327
    functionDepth: 3
    functionLinenumber: 2327
    functionLinenumberEnd: 2339
    functionName: OSError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyOSErrorObject_CAST
    - Py_VISIT
    - BaseException_traverse
    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:2344,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2350,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2351,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2352,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2356,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2357,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2358,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2363,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2369,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2370,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2371,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2375,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2376,1
    - Dst: OR_NONE
      Src: /src/cpython/Objects/exceptions.c:2377,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2382,1
    - Dst: BaseException_str
      Src: /src/cpython/Objects/exceptions.c:2384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2341
    functionDepth: 5
    functionLinenumber: 2341
    functionLinenumberEnd: 2385
    functionName: OSError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - OR_NONE
    - PyOSErrorObject_CAST
    - BaseException_str
    - PyUnicode_FromFormat
    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: 2346
      start: 2345
    functionDepth: 0
    functionLinenumber: 2345
    functionLinenumberEnd: 2346
    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:2390,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:2396,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2398,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2402,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2402,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2402,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2403,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2403,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2403,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2404,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2404,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2412,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2412,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2415,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2415,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:2418,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:2421,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2421,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/exceptions.c:2423,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2387
    functionDepth: 2
    functionLinenumber: 2387
    functionLinenumberEnd: 2426
    functionName: OSError_reduce
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyOSErrorObject_CAST
    - PyTuple_GET_ITEM
    - Py_INCREF
    - _PyTuple_FromPair
    - PyTuple_SET_ITEM
    - PyTuple_Pack
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - 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:2431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:2433,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/exceptions.c:2436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2428
    functionDepth: 2
    functionLinenumber: 2428
    functionLinenumberEnd: 2437
    functionName: OSError_written_get
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyOSErrorObject_CAST
    - 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:2442,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:2445,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/exceptions.c:2452,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/exceptions.c:2453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - op
    - arg
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2439
    functionDepth: 3
    functionLinenumber: 2439
    functionLinenumberEnd: 2457
    functionName: OSError_written_set
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyOSErrorObject_CAST
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    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:2571,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:2571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_NameError))
      pos:
        line_end: 2570
        line_start: 2570
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2573
      start: 2568
    functionDepth: 1
    functionLinenumber: 2568
    functionLinenumberEnd: 2573
    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:2581,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2585,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Objects/exceptions.c:2589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2594,1
    - Dst: PyNameErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2596,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2597,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2575
    functionDepth: 3
    functionLinenumber: 2575
    functionLinenumberEnd: 2600
    functionName: NameError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyNameErrorObject_CAST
    - Py_XSETREF
    - BaseException_init
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - Py_XNewRef
    - PyTuple_New
    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:2605,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2606,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:2607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2602
    functionDepth: 3
    functionLinenumber: 2602
    functionLinenumberEnd: 2608
    functionName: NameError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyNameErrorObject_CAST
    - BaseException_clear
    - 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:2613,1
    - Dst: NameError_clear
      Src: /src/cpython/Objects/exceptions.c:2614,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2610
    functionDepth: 4
    functionLinenumber: 2610
    functionLinenumberEnd: 2616
    functionName: NameError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - NameError_clear
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void NameError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNameErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2621,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2622,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:2623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2618
    functionDepth: 3
    functionLinenumber: 2618
    functionLinenumberEnd: 2624
    functionName: NameError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyNameErrorObject_CAST
    - Py_VISIT
    - BaseException_traverse
    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:2654,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:2654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_AttributeError))
      pos:
        line_end: 2653
        line_start: 2653
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2656
      start: 2651
    functionDepth: 1
    functionLinenumber: 2651
    functionLinenumberEnd: 2656
    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:2665,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/exceptions.c:2669,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Objects/exceptions.c:2673,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2678,1
    - Dst: PyAttributeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2680,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2681,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2681,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2682,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2658
    functionDepth: 3
    functionLinenumber: 2658
    functionLinenumberEnd: 2685
    functionName: AttributeError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - BaseException_init
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - Py_XNewRef
    - PyAttributeErrorObject_CAST
    - PyTuple_New
    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:2690,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2691,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2692,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:2693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2687
    functionDepth: 3
    functionLinenumber: 2687
    functionLinenumberEnd: 2694
    functionName: AttributeError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyAttributeErrorObject_CAST
    - 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:2699,1
    - Dst: AttributeError_clear
      Src: /src/cpython/Objects/exceptions.c:2700,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2696
    functionDepth: 4
    functionLinenumber: 2696
    functionLinenumberEnd: 2702
    functionName: AttributeError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - AttributeError_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void AttributeError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyAttributeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2707,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2708,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2709,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:2710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2704
    functionDepth: 3
    functionLinenumber: 2704
    functionLinenumberEnd: 2711
    functionName: AttributeError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyAttributeErrorObject_CAST
    - BaseException_traverse
    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:2717,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/exceptions.c:2720,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/exceptions.c:2720,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:2724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2725,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:2731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2732,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2714
    functionDepth: 13
    functionLinenumber: 2714
    functionLinenumberEnd: 2741
    functionName: AttributeError_getstate
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyDict_Copy
    - PyDict_SetItemString
    - Py_DECREF
    - PyAttributeErrorObject_CAST
    - PyDict_New
    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:2746,1
    - Dst: PyAttributeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2751,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/exceptions.c:2752,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2743
    functionDepth: 14
    functionLinenumber: 2743
    functionLinenumberEnd: 2755
    functionName: AttributeError_reduce
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - Py_DECREF
    - AttributeError_getstate
    - PyAttributeErrorObject_CAST
    - Py_TYPE
    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:2781,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/exceptions.c:2781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(self, (PyTypeObject *)PyExc_SyntaxError))
      pos:
        line_end: 2780
        line_start: 2780
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 2783
      start: 2778
    functionDepth: 1
    functionLinenumber: 2778
    functionLinenumberEnd: 2783
    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:2789,1
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:2791,1
    - Dst: PySyntaxErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2794,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2796,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2796,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2796,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:2799,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/exceptions.c:2800,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:2809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2813,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2817,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2817,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2818,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2818,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2819,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2819,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2820,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2820,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2821,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2821,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2822,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2822,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:2823,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/exceptions.c:2823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:2824,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/exceptions.c:2827,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2832
      start: 2785
    functionDepth: 3
    functionLinenumber: 2785
    functionLinenumberEnd: 2832
    functionName: SyntaxError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PySyntaxErrorObject_CAST
    - PySequence_Tuple
    - Py_XSETREF
    - PyErr_SetString
    - BaseException_init
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    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:2837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2838,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2839,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2840,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2841,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2842,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2843,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2844,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2845,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:2846,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:2847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2834
    functionDepth: 3
    functionLinenumber: 2834
    functionLinenumberEnd: 2848
    functionName: SyntaxError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PySyntaxErrorObject_CAST
    - BaseException_clear
    linkageType: ''
    returnType: int
    signature: int SyntaxError_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:2853,1
    - Dst: SyntaxError_clear
      Src: /src/cpython/Objects/exceptions.c:2854,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:2855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2850
    functionDepth: 4
    functionLinenumber: 2850
    functionLinenumberEnd: 2856
    functionName: SyntaxError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - SyntaxError_clear
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void SyntaxError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySyntaxErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2861,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2862,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2863,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2864,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2865,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2866,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2867,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2868,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2869,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:2870,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:2871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2858
    functionDepth: 3
    functionLinenumber: 2858
    functionLinenumberEnd: 2872
    functionName: SyntaxError_traverse
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PySyntaxErrorObject_CAST
    - Py_VISIT
    - BaseException_traverse
    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:2884,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/exceptions.c:2885,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:2886,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/exceptions.c:2889,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/exceptions.c:2894,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:2897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2877
    functionDepth: 1
    functionLinenumber: 2877
    functionLinenumberEnd: 2899
    functionName: my_basename
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      my_basename(PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySyntaxErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:2905,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/exceptions.c:2917,1
    - Dst: my_basename
      Src: /src/cpython/Objects/exceptions.c:2918,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/exceptions.c:2924,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:2927,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2932,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/exceptions.c:2935,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2937,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:2941,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/exceptions.c:2943,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:2944,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2902
    functionDepth: 4
    functionLinenumber: 2902
    functionLinenumberEnd: 2946
    functionName: SyntaxError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PySyntaxErrorObject_CAST
    - PyObject_Str
    - PyUnicode_Check
    - PyUnicode_FromFormat
    - PyLong_CheckExact
    - Py_XDECREF
    - my_basename
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SyntaxError_str(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3025,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:3026,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/exceptions.c:3027,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/exceptions.c:3027,1
    - Dst: BaseException_str
      Src: /src/cpython/Objects/exceptions.c:3029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 3013
    functionDepth: 5
    functionLinenumber: 3013
    functionLinenumberEnd: 3030
    functionName: KeyError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyObject_Repr
    - BaseException_str
    - PyBaseExceptionObject_CAST
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      KeyError_str(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3062,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:3064,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/exceptions.c:3069,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/exceptions.c:3069,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:3070,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: 3061
        line_start: 3061
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3076
      start: 3059
    functionDepth: 1
    functionLinenumber: 3059
    functionLinenumberEnd: 3076
    functionName: check_unicode_error_attribute
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyUnicode_Check
    - PyErr_Format
    - assert
    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:3091,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - attr
    - name
    - as_bytes
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3088
    functionDepth: 2
    functionLinenumber: 3088
    functionLinenumberEnd: 3093
    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: 3098
      start: 3096
    functionDepth: 0
    functionLinenumber: 3096
    functionLinenumberEnd: 3098
    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: 3100
      start: 3098
    functionDepth: 0
    functionLinenumber: 3098
    functionLinenumberEnd: 3100
    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:3125,1
    - Dst: PyUnicodeError_Check
      Src: /src/cpython/Objects/exceptions.c:3126,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:3127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - expect_type
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3124
        line_start: 3124
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3132
      start: 3122
    functionDepth: 1
    functionLinenumber: 3122
    functionLinenumberEnd: 3132
    functionName: check_unicode_error_type
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeError_Check
    - PyErr_Format
    - assert
    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:3147,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3148,1
    - Dst: as_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3146
        line_start: 3146
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3150
      start: 3144
    functionDepth: 3
    functionLinenumber: 3144
    functionLinenumberEnd: 3150
    functionName: unicode_error_get_encoding_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - as_unicode_error_attribute
    - PyUnicodeError_CAST
    - 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:3160,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3161,1
    - Dst: as_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - as_bytes
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3159
        line_start: 3159
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3163
      start: 3157
    functionDepth: 3
    functionLinenumber: 3157
    functionLinenumberEnd: 3163
    functionName: unicode_error_get_object_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - as_unicode_error_attribute
    - PyUnicodeError_CAST
    - 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:3172,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3173,1
    - Dst: as_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3171
        line_start: 3171
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3175
      start: 3169
    functionDepth: 3
    functionLinenumber: 3169
    functionLinenumberEnd: 3175
    functionName: unicode_error_get_reason_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - as_unicode_error_attribute
    - PyUnicodeError_CAST
    - 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:3186,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/exceptions.c:3187,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3191,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3185
        line_start: 3185
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3194
      start: 3183
    functionDepth: 1
    functionLinenumber: 3183
    functionLinenumberEnd: 3194
    functionName: unicode_error_set_reason_impl
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyUnicode_FromString
    - PyUnicodeError_CAST
    - 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:3205,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3204
        line_start: 3204
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3209
      start: 3202
    functionDepth: 1
    functionLinenumber: 3202
    functionLinenumberEnd: 3209
    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:3220,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3219
        line_start: 3219
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3224
      start: 3217
    functionDepth: 1
    functionLinenumber: 3217
    functionLinenumberEnd: 3224
    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:3240,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: 3239
        line_start: 3239
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3248
      start: 3237
    functionDepth: 0
    functionLinenumber: 3237
    functionLinenumberEnd: 3248
    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:3256,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3259,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/exceptions.c:3261,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3262,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: 3255
        line_start: 3255
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (start <= max_start)
      pos:
        line_end: 3261
        line_start: 3261
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (start >= min_start)
      pos:
        line_end: 3258
        line_start: 3258
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3263
      start: 3253
    functionDepth: 1
    functionLinenumber: 3253
    functionLinenumberEnd: 3263
    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:3281,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: 3280
        line_start: 3280
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3289
      start: 3278
    functionDepth: 0
    functionLinenumber: 3278
    functionLinenumberEnd: 3289
    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: 3293
      start: 3291
    functionDepth: 0
    functionLinenumber: 3291
    functionLinenumberEnd: 3293
    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: 3295
      start: 3293
    functionDepth: 0
    functionLinenumber: 3293
    functionLinenumberEnd: 3295
    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:3301,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/exceptions.c:3303,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3304,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/exceptions.c:3306,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3307,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: 3300
        line_start: 3300
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (end <= max_end)
      pos:
        line_end: 3306
        line_start: 3306
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (end >= min_end)
      pos:
        line_end: 3303
        line_start: 3303
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3308
      start: 3298
    functionDepth: 1
    functionLinenumber: 3298
    functionLinenumberEnd: 3308
    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:3327,1
    - Dst: assert_adjusted_unicode_error_end
      Src: /src/cpython/Objects/exceptions.c:3328,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3330,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: 3329
        line_start: 3329
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3332
      start: 3324
    functionDepth: 2
    functionLinenumber: 3324
    functionLinenumberEnd: 3332
    functionName: unicode_error_adjust_len
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - assert_adjusted_unicode_error_start
    - assert_adjusted_unicode_error_end
    - 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:3340,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3341,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3342,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: 3339
        line_start: 3339
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (ranlen <= objlen)
      pos:
        line_end: 3341
        line_start: 3341
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (ranlen >= 0)
      pos:
        line_end: 3340
        line_start: 3340
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3343
      start: 3337
    functionDepth: 0
    functionLinenumber: 3337
    functionLinenumberEnd: 3343
    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:3383,1
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3384,1
    - Dst: PyUnicodeError_CAST
      Src: /src/cpython/Objects/exceptions.c:3385,1
    - Dst: as_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3386,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:3391,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:3391,1
    - Dst: unicode_error_adjust_start
      Src: /src/cpython/Objects/exceptions.c:3398,1
    - Dst: assert_adjusted_unicode_error_start
      Src: /src/cpython/Objects/exceptions.c:3401,1
    - Dst: unicode_error_adjust_end
      Src: /src/cpython/Objects/exceptions.c:3407,1
    - Dst: assert_adjusted_unicode_error_end
      Src: /src/cpython/Objects/exceptions.c:3410,1
    - Dst: unicode_error_adjust_len
      Src: /src/cpython/Objects/exceptions.c:3415,1
    - Dst: assert_adjusted_unicode_error_len
      Src: /src/cpython/Objects/exceptions.c:3416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:3423,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: 3382
        line_start: 3382
        source_file: /src/cpython/Objects/exceptions.c
    - condition: (as_bytes == 0 || as_bytes == 1)
      pos:
        line_end: 3383
        line_start: 3383
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3426
      start: 3377
    functionDepth: 3
    functionLinenumber: 3377
    functionLinenumberEnd: 3426
    functionName: _PyUnicodeError_GetParams
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - as_unicode_error_attribute
    - unicode_error_adjust_len
    - assert_adjusted_unicode_error_len
    - assert_adjusted_unicode_error_start
    - PyBytes_GET_SIZE
    - unicode_error_adjust_end
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    - PyUnicodeError_CAST
    - unicode_error_adjust_start
    - assert_adjusted_unicode_error_end
    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:3435,1
    - Dst: unicode_error_get_encoding_impl
      Src: /src/cpython/Objects/exceptions.c:3436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3432
    functionDepth: 4
    functionLinenumber: 3432
    functionLinenumberEnd: 3437
    functionName: PyUnicodeEncodeError_GetEncoding
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_get_encoding_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetEncoding(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3443,1
    - Dst: unicode_error_get_encoding_impl
      Src: /src/cpython/Objects/exceptions.c:3444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3440
    functionDepth: 4
    functionLinenumber: 3440
    functionLinenumberEnd: 3445
    functionName: PyUnicodeDecodeError_GetEncoding
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_get_encoding_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetEncoding(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3453,1
    - Dst: unicode_error_get_object_impl
      Src: /src/cpython/Objects/exceptions.c:3454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3455
      start: 3450
    functionDepth: 4
    functionLinenumber: 3450
    functionLinenumberEnd: 3455
    functionName: PyUnicodeEncodeError_GetObject
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_get_object_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetObject(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3461,1
    - Dst: unicode_error_get_object_impl
      Src: /src/cpython/Objects/exceptions.c:3462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3458
    functionDepth: 4
    functionLinenumber: 3458
    functionLinenumberEnd: 3463
    functionName: PyUnicodeDecodeError_GetObject
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_get_object_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetObject(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3469,1
    - Dst: unicode_error_get_object_impl
      Src: /src/cpython/Objects/exceptions.c:3470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3466
    functionDepth: 4
    functionLinenumber: 3466
    functionLinenumberEnd: 3471
    functionName: PyUnicodeTranslateError_GetObject
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_get_object_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeTranslateError_GetObject(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:3485,1
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Objects/exceptions.c:3486,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: 3484
        line_start: 3484
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3489
      start: 3482
    functionDepth: 4
    functionLinenumber: 3482
    functionLinenumberEnd: 3489
    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:3495,1
    - Dst: unicode_error_get_start_impl
      Src: /src/cpython/Objects/exceptions.c:3496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3497
      start: 3492
    functionDepth: 5
    functionLinenumber: 3492
    functionLinenumberEnd: 3497
    functionName: PyUnicodeEncodeError_GetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_get_start_impl
    - check_unicode_error_type
    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:3503,1
    - Dst: unicode_error_get_start_impl
      Src: /src/cpython/Objects/exceptions.c:3504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3505
      start: 3500
    functionDepth: 5
    functionLinenumber: 3500
    functionLinenumberEnd: 3505
    functionName: PyUnicodeDecodeError_GetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_get_start_impl
    - check_unicode_error_type
    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:3511,1
    - Dst: unicode_error_get_start_impl
      Src: /src/cpython/Objects/exceptions.c:3512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3508
    functionDepth: 5
    functionLinenumber: 3508
    functionLinenumberEnd: 3513
    functionName: PyUnicodeTranslateError_GetStart
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_get_start_impl
    - check_unicode_error_type
    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:3521,1
    - Dst: unicode_error_set_start_impl
      Src: /src/cpython/Objects/exceptions.c:3522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3523
      start: 3518
    functionDepth: 2
    functionLinenumber: 3518
    functionLinenumberEnd: 3523
    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:3529,1
    - Dst: unicode_error_set_start_impl
      Src: /src/cpython/Objects/exceptions.c:3530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3531
      start: 3526
    functionDepth: 2
    functionLinenumber: 3526
    functionLinenumberEnd: 3531
    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:3537,1
    - Dst: unicode_error_set_start_impl
      Src: /src/cpython/Objects/exceptions.c:3538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3534
    functionDepth: 2
    functionLinenumber: 3534
    functionLinenumberEnd: 3539
    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:3553,1
    - Dst: _PyUnicodeError_GetParams
      Src: /src/cpython/Objects/exceptions.c:3554,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: 3552
        line_start: 3552
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 3557
      start: 3550
    functionDepth: 4
    functionLinenumber: 3550
    functionLinenumberEnd: 3557
    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:3563,1
    - Dst: unicode_error_get_end_impl
      Src: /src/cpython/Objects/exceptions.c:3564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3565
      start: 3560
    functionDepth: 5
    functionLinenumber: 3560
    functionLinenumberEnd: 3565
    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:3571,1
    - Dst: unicode_error_get_end_impl
      Src: /src/cpython/Objects/exceptions.c:3572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3568
    functionDepth: 5
    functionLinenumber: 3568
    functionLinenumberEnd: 3573
    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:3579,1
    - Dst: unicode_error_get_end_impl
      Src: /src/cpython/Objects/exceptions.c:3580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3581
      start: 3576
    functionDepth: 5
    functionLinenumber: 3576
    functionLinenumberEnd: 3581
    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:3589,1
    - Dst: unicode_error_set_end_impl
      Src: /src/cpython/Objects/exceptions.c:3590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3591
      start: 3586
    functionDepth: 2
    functionLinenumber: 3586
    functionLinenumberEnd: 3591
    functionName: PyUnicodeEncodeError_SetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 2
    functionsReached:
    - unicode_error_set_end_impl
    - check_unicode_error_type
    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:3597,1
    - Dst: unicode_error_set_end_impl
      Src: /src/cpython/Objects/exceptions.c:3598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3599
      start: 3594
    functionDepth: 2
    functionLinenumber: 3594
    functionLinenumberEnd: 3599
    functionName: PyUnicodeDecodeError_SetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 2
    functionsReached:
    - unicode_error_set_end_impl
    - check_unicode_error_type
    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:3605,1
    - Dst: unicode_error_set_end_impl
      Src: /src/cpython/Objects/exceptions.c:3606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3602
    functionDepth: 2
    functionLinenumber: 3602
    functionLinenumberEnd: 3607
    functionName: PyUnicodeTranslateError_SetEnd
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_set_end_impl
    - check_unicode_error_type
    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:3615,1
    - Dst: unicode_error_get_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3617
      start: 3612
    functionDepth: 4
    functionLinenumber: 3612
    functionLinenumberEnd: 3617
    functionName: PyUnicodeEncodeError_GetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_get_reason_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetReason(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3623,1
    - Dst: unicode_error_get_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3625
      start: 3620
    functionDepth: 4
    functionLinenumber: 3620
    functionLinenumberEnd: 3625
    functionName: PyUnicodeDecodeError_GetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_get_reason_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetReason(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3631,1
    - Dst: unicode_error_get_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3633
      start: 3628
    functionDepth: 4
    functionLinenumber: 3628
    functionLinenumberEnd: 3633
    functionName: PyUnicodeTranslateError_GetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_get_reason_impl
    - check_unicode_error_type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeTranslateError_GetReason(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_unicode_error_type
      Src: /src/cpython/Objects/exceptions.c:3641,1
    - Dst: unicode_error_set_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3643
      start: 3638
    functionDepth: 2
    functionLinenumber: 3638
    functionLinenumberEnd: 3643
    functionName: PyUnicodeEncodeError_SetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_set_reason_impl
    - check_unicode_error_type
    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:3649,1
    - Dst: unicode_error_set_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3651
      start: 3646
    functionDepth: 2
    functionLinenumber: 3646
    functionLinenumberEnd: 3651
    functionName: PyUnicodeDecodeError_SetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - unicode_error_set_reason_impl
    - check_unicode_error_type
    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:3657,1
    - Dst: unicode_error_set_reason_impl
      Src: /src/cpython/Objects/exceptions.c:3658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3659
      start: 3654
    functionDepth: 2
    functionLinenumber: 3654
    functionLinenumberEnd: 3659
    functionName: PyUnicodeTranslateError_SetReason
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - unicode_error_set_reason_impl
    - check_unicode_error_type
    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:3665,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:3666,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:3667,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:3668,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:3669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3662
    functionDepth: 3
    functionLinenumber: 3662
    functionLinenumberEnd: 3670
    functionName: UnicodeError_clear
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - BaseException_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:3675,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:3676,1
    - Dst: UnicodeError_clear
      Src: /src/cpython/Objects/exceptions.c:3677,1
    - Dst: PyTypeObject*::tp_free
      Src: /src/cpython/Objects/exceptions.c:3678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3679
      start: 3672
    functionDepth: 4
    functionLinenumber: 3672
    functionLinenumberEnd: 3679
    functionName: UnicodeError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_free
    - _PyObject_GC_UNTRACK
    - UnicodeError_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void UnicodeError_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3684,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:3685,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:3686,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/exceptions.c:3687,1
    - Dst: BaseException_traverse
      Src: /src/cpython/Objects/exceptions.c:3688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3689
      start: 3681
    functionDepth: 3
    functionLinenumber: 3681
    functionLinenumberEnd: 3689
    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:3713,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:3720,1
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3726,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3727,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3727,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3728,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3728,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3731,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3710
    functionDepth: 3
    functionLinenumber: 3710
    functionLinenumberEnd: 3733
    functionName: UnicodeEncodeError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeErrorObject_CAST
    - Py_XSETREF
    - BaseException_init
    - PyArg_ParseTuple
    - Py_NewRef
    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:3738,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/exceptions.c:3745,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3750,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3754,1
    - Dst: check_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3759,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:3762,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Objects/exceptions.c:3766,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3777,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3785,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3793,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3794,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3796
      start: 3735
    functionDepth: 4
    functionLinenumber: 3735
    functionLinenumberEnd: 3796
    functionName: UnicodeEncodeError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicode_ReadChar
    - PyUnicodeErrorObject_CAST
    - PyObject_Str
    - PyUnicode_FromFormat
    - check_unicode_error_attribute
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeEncodeError_str(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/cpython/Objects/exceptions.c:3820,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:3827,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/exceptions.c:3833,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/exceptions.c:3834,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/exceptions.c:3838,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/exceptions.c:3842,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/exceptions.c:3843,1
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3849,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3850,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3850,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3851,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3854,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3856
      start: 3817
    functionDepth: 4
    functionLinenumber: 3817
    functionLinenumberEnd: 3856
    functionName: UnicodeDecodeError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyUnicodeErrorObject_CAST
    - PyBytes_FromStringAndSize
    - Py_XSETREF
    - PyBytes_Check
    - PyBuffer_Release
    - BaseException_init
    - PyArg_ParseTuple
    - PyObject_GetBuffer
    - Py_NewRef
    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:3861,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/exceptions.c:3868,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3873,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3877,1
    - Dst: check_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3882,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/exceptions.c:3885,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/exceptions.c:3889,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3890,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3898,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3906,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:3907,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3858
    functionDepth: 4
    functionLinenumber: 3858
    functionLinenumberEnd: 3909
    functionName: UnicodeDecodeError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicodeErrorObject_CAST
    - PyObject_Str
    - PyUnicode_FromFormat
    - check_unicode_error_attribute
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeDecodeError_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/exceptions.c:3930,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: 3932
      start: 3925
    functionDepth: 1
    functionLinenumber: 3925
    functionLinenumberEnd: 3932
    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:3942,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/exceptions.c:3949,1
    - Dst: PyUnicodeErrorObject_CAST
      Src: /src/cpython/Objects/exceptions.c:3953,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3954,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3954,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/exceptions.c:3957,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:3957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3959
      start: 3939
    functionDepth: 3
    functionLinenumber: 3939
    functionLinenumberEnd: 3959
    functionName: UnicodeTranslateError_init
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeErrorObject_CAST
    - Py_XSETREF
    - BaseException_init
    - PyArg_ParseTuple
    - Py_NewRef
    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:3965,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/exceptions.c:3971,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/exceptions.c:3976,1
    - Dst: check_unicode_error_attribute
      Src: /src/cpython/Objects/exceptions.c:3981,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/exceptions.c:3984,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Objects/exceptions.c:3988,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:3999,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/exceptions.c:4006,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:4013,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4015
      start: 3962
    functionDepth: 4
    functionLinenumber: 3962
    functionLinenumberEnd: 4015
    functionName: UnicodeTranslateError_str
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicode_ReadChar
    - PyUnicodeErrorObject_CAST
    - PyObject_Str
    - PyUnicode_FromFormat
    - check_unicode_error_attribute
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeTranslateError_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/exceptions.c:4036,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: 4038
      start: 4031
    functionDepth: 1
    functionLinenumber: 4031
    functionLinenumberEnd: 4038
    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: 4100
      start: 4099
    functionDepth: 0
    functionLinenumber: 4099
    functionLinenumberEnd: 4100
    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: 4101
      start: 4100
    functionDepth: 0
    functionLinenumber: 4100
    functionLinenumberEnd: 4101
    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: 4103
      start: 4102
    functionDepth: 0
    functionLinenumber: 4102
    functionLinenumberEnd: 4103
    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: 4104
      start: 4103
    functionDepth: 0
    functionLinenumber: 4103
    functionLinenumberEnd: 4104
    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:4110,1
    - Dst: MEMERRORS_LOCK
      Src: /src/cpython/Objects/exceptions.c:4112,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/exceptions.c:4119,1
    - Dst: _Py_NewReference
      Src: /src/cpython/Objects/exceptions.c:4120,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/exceptions.c:4121,1
    - Dst: MEMERRORS_UNLOCK
      Src: /src/cpython/Objects/exceptions.c:4123,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/exceptions.c:4130,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/exceptions.c:4131,1
    - Dst: _Py_INTERP_SINGLETON
      Src: /src/cpython/Objects/exceptions.c:4132,1
    - Dst: BaseException_new
      Src: /src/cpython/Objects/exceptions.c:4134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - allow_allocation
    - args
    - kwds
    argTypes:
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4135
      start: 4106
    functionDepth: 5
    functionLinenumber: 4106
    functionLinenumberEnd: 4135
    functionName: get_memory_error
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _Py_NewReference
    - get_exc_state
    - _PyObject_GC_TRACK
    - _PyInterpreterState_GET
    - _Py_INTERP_SINGLETON
    - MEMERRORS_LOCK
    - BaseException_new
    - _Py_SINGLETON
    - Py_NewRef
    - MEMERRORS_UNLOCK
    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:4143,1
    - Dst: get_memory_error
      Src: /src/cpython/Objects/exceptions.c:4145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4137
    functionDepth: 6
    functionLinenumber: 4137
    functionLinenumberEnd: 4146
    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:4151,1
    - Dst: Py_FatalError
      Src: /src/cpython/Objects/exceptions.c:4154,1
    - Dst: get_memory_error
      Src: /src/cpython/Objects/exceptions.c:4157,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Objects/exceptions.c:4159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4148
    functionDepth: 6
    functionLinenumber: 4148
    functionLinenumberEnd: 4162
    functionName: _PyErr_NoMemory
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - Py_FatalError
    - _PyErr_SetRaisedException
    - get_memory_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_NoMemory(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBaseExceptionObject_CAST
      Src: /src/cpython/Objects/exceptions.c:4167,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/exceptions.c:4168,1
    - Dst: BaseException_clear
      Src: /src/cpython/Objects/exceptions.c:4170,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/exceptions.c:4174,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:4175,1
    - Dst: get_exc_state
      Src: /src/cpython/Objects/exceptions.c:4179,1
    - Dst: MEMERRORS_LOCK
      Src: /src/cpython/Objects/exceptions.c:4180,1
    - Dst: MEMERRORS_UNLOCK
      Src: /src/cpython/Objects/exceptions.c:4185,1
    - Dst: MEMERRORS_UNLOCK
      Src: /src/cpython/Objects/exceptions.c:4188,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:4190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4191
      start: 4164
    functionDepth: 3
    functionLinenumber: 4164
    functionLinenumberEnd: 4191
    functionName: MemoryError_dealloc
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyBaseExceptionObject_CAST
    - get_exc_state
    - MEMERRORS_LOCK
    - BaseException_clear
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    - MEMERRORS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void MemoryError_dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryError_new
      Src: /src/cpython/Objects/exceptions.c:4202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/exceptions.c:4209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4212
      start: 4193
    functionDepth: 7
    functionLinenumber: 4193
    functionLinenumberEnd: 4212
    functionName: preallocate_memerrors
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - MemoryError_new
    linkageType: ''
    returnType: int
    signature: int preallocate_memerrors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:4220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _Py_exc_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4214
    functionDepth: 0
    functionLinenumber: 4214
    functionLinenumberEnd: 4222
    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:4492,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/exceptions.c:4494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4504
      start: 4489
    functionDepth: 1
    functionLinenumber: 4489
    functionLinenumberEnd: 4504
    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:4510,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/exceptions.c:4512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4514
      start: 4507
    functionDepth: 1
    functionLinenumber: 4507
    functionLinenumberEnd: 4514
    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:4520,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Objects/exceptions.c:4521,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/exceptions.c:4523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4524
      start: 4517
    functionDepth: 8
    functionLinenumber: 4517
    functionLinenumberEnd: 4524
    functionName: _PyExc_InitGlobalObjects
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - preallocate_memerrors
    - _PyStatus_NO_MEMORY
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyExc_InitGlobalObjects(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/exceptions.c:4543,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/exceptions.c:4544,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Objects/exceptions.c:4546,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4549,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4550,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4551,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4552,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4553,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4555,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4557,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4558,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4559,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4560,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4561,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4562,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4563,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4564,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4565,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4566,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4567,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4571,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4573,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4574,1
    - Dst: ADD_ERRNO
      Src: /src/cpython/Objects/exceptions.c:4576,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/exceptions.c:4579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (state->errnomap == NULL)
      pos:
        line_end: 4542
        line_start: 4542
        source_file: /src/cpython/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 4582
      start: 4526
    functionDepth: 11
    functionLinenumber: 4526
    functionLinenumberEnd: 4582
    functionName: _PyExc_InitState
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - ADD_ERRNO
    - assert
    - _PyStatus_NO_MEMORY
    - PyDict_New
    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: 4541
      start: 4531
    functionDepth: 0
    functionLinenumber: 4531
    functionLinenumberEnd: 4541
    functionName: ADD_ERRNO
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ERRNO(TYPE, CODE)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDict
      Src: /src/cpython/Objects/exceptions.c:4589,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/exceptions.c:4594,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:4597,1
    - Dst: create_exception_group_class
      Src: /src/cpython/Objects/exceptions.c:4602,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:4606,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:4609,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:4612,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/exceptions.c:4616,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - bltinmod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4621
      start: 4586
    functionDepth: 11
    functionLinenumber: 4586
    functionLinenumberEnd: 4621
    functionName: _PyBuiltins_AddExceptions
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - PyDict_SetItemString
    - create_exception_group_class
    - PyModule_GetDict
    linkageType: ''
    returnType: int
    signature: int _PyBuiltins_AddExceptions(PyObject *bltinmod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:4627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4628
      start: 4623
    functionDepth: 1
    functionLinenumber: 4623
    functionLinenumberEnd: 4628
    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:4634,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/exceptions.c:4635,1
    - Dst: _PyExc_FiniTypes
      Src: /src/cpython/Objects/exceptions.c:4637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4638
      start: 4630
    functionDepth: 2
    functionLinenumber: 4630
    functionLinenumberEnd: 4638
    functionName: _PyExc_Fini
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - free_preallocated_memerrors
    - _PyExc_FiniTypes
    linkageType: ''
    returnType: void
    signature: void _PyExc_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Objects/exceptions.c:4643,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/exceptions.c:4644,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/exceptions.c:4646,1
    - Dst: BaseException_add_note
      Src: /src/cpython/Objects/exceptions.c:4649,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/exceptions.c:4651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - exc
    - note
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4640
    functionDepth: 1
    functionLinenumber: 4640
    functionLinenumberEnd: 4653
    functionName: _PyException_AddNote
    functionSourceFile: /src/cpython/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - BaseException_add_note
    - Py_XDECREF
    - PyErr_Format
    - PyExceptionInstance_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyException_AddNote(PyObject *exc, PyObject *note)
  - BBCount: 3
    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:33,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:36,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/structseq.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tp
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 7
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: get_type_attr_as_size
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDict
    - PyErr_Format
    - PyErr_Occurred
    - PyLong_AsSsize_t
    - PyDict_GetItemWithError
    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: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    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: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    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: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    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: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    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:60,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/structseq.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    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:68,1
    - Dst: VISIBLE_SIZE_TP
      Src: /src/cpython/Objects/structseq.c:72,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/structseq.c:77,1
    - Dst: _PyTuple_RESET_HASH_CACHE
      Src: /src/cpython/Objects/structseq.c:80,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/structseq.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 88
    functionName: PyStructSequence_New
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 30
    functionsReached:
    - PyObject_GC_NewVar
    - _PyTuple_RESET_HASH_CACHE
    - Py_SET_SIZE
    - VISIBLE_SIZE_TP
    - REAL_SIZE_TP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyStructSequence_New(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/structseq.c:93,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:94,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:96,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:97,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (0 <= index)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/cpython/Objects/structseq.c
    - condition: (index < n_fields)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/cpython/Objects/structseq.c
    - condition: (n_fields >= 0)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: PyStructSequence_SetItem
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 12
    functionsReached:
    - _PyTuple_CAST
    - REAL_SIZE
    - assert
    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:106,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:108,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:109,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:110,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/structseq.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= index)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/cpython/Objects/structseq.c
    - condition: (n_fields >= 0)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/cpython/Objects/structseq.c
    - condition: (index < n_fields)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: PyStructSequence_GetItem
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 3
    functionsReached:
    - PyTuple_GET_ITEM
    - REAL_SIZE
    - 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:120,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/structseq.c:121,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:121,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:124,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/structseq.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: structseq_traverse
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - REAL_SIZE
    - Py_VISIT
    - Py_TYPE
    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:136,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:138,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:142,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/structseq.c:144,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/structseq.c:146,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/structseq.c:147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 150
    functionName: structseq_dealloc
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - REAL_SIZE
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void structseq_dealloc(PyObject *op)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: VISIBLE_SIZE_TP
      Src: /src/cpython/Objects/structseq.c:173,1
    - Dst: REAL_SIZE_TP
      Src: /src/cpython/Objects/structseq.c:177,1
    - Dst: UNNAMED_FIELDS_TP
      Src: /src/cpython/Objects/structseq.c:181,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/structseq.c:186,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/structseq.c:192,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:196,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/structseq.c:200,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:206,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:214,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:223,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Objects/structseq.c:228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:230,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/structseq.c:234,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:237,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/structseq.c:238,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Objects/structseq.c:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:244,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:248,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/structseq.c:255,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:259,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:264,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/structseq.c:268,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 3
    argNames:
    - type
    - arg
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 166
    functionDepth: 9
    functionLinenumber: 166
    functionLinenumberEnd: 270
    functionName: structseq_new_impl
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - UNNAMED_FIELDS_TP
    - PyDict_GetItemStringRef
    - PySequence_Fast
    - PySequence_Fast_GET_SIZE
    - PyStructSequence_New
    - _PyObject_GC_TRACK
    - PyDict_Check
    - VISIBLE_SIZE_TP
    - REAL_SIZE_TP
    - PyErr_Format
    - Py_DECREF
    - PyDict_GET_SIZE
    - PySequence_Fast_GET_ITEM
    - Py_NewRef
    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:277,1
    - Dst: strlen
      Src: /src/cpython/Objects/structseq.c:280,1
    - Dst: VISIBLE_SIZE
      Src: /src/cpython/Objects/structseq.c:282,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/structseq.c:283,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Objects/structseq.c:289,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:292,1
    - Dst: VISIBLE_SIZE
      Src: /src/cpython/Objects/structseq.c:296,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:299,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:302,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:310,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Objects/structseq.c:315,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:320,1
    - Dst: PyStructSequence_GetItem
      Src: /src/cpython/Objects/structseq.c:323,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:324,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/structseq.c:325,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/structseq.c:330,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/structseq.c:334,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/structseq.c:337,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 339
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 339
    functionName: structseq_repr
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyStructSequence_GetItem
    - assert
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteChar
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_WriteUTF8
    - strlen
    - PyErr_Format
    - VISIBLE_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_repr(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:351,1
    - Dst: VISIBLE_SIZE
      Src: /src/cpython/Objects/structseq.c:355,1
    - Dst: UNNAMED_FIELDS
      Src: /src/cpython/Objects/structseq.c:356,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Objects/structseq.c:360,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/structseq.c:364,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:369,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/structseq.c:370,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/structseq.c:374,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:377,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/structseq.c:382,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/structseq.c:383,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 342
    functionDepth: 11
    functionLinenumber: 342
    functionLinenumberEnd: 385
    functionName: structseq_reduce
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - REAL_SIZE
    - PyTuple_FromArray
    - Py_BuildValue
    - PyDict_SetItemString
    - UNNAMED_FIELDS
    - Py_XDECREF
    - Py_DECREF
    - VISIBLE_SIZE
    - Py_TYPE
    - PyDict_New
    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:395,1
    - Dst: REAL_SIZE
      Src: /src/cpython/Objects/structseq.c:399,1
    - Dst: UNNAMED_FIELDS
      Src: /src/cpython/Objects/structseq.c:403,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:408,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:411,1
    - Dst: PyStructSequence_New
      Src: /src/cpython/Objects/structseq.c:415,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:415,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Objects/structseq.c:425,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/structseq.c:425,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:430,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/structseq.c:435,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/structseq.c:436,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:439,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/structseq.c:448,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/structseq.c:452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:456,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - op
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 388
    functionDepth: 9
    functionLinenumber: 388
    functionLinenumberEnd: 458
    functionName: structseq_replace
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyDict_Keys
    - REAL_SIZE
    - PyStructSequence_New
    - _PyObject_GC_TRACK
    - _PyArg_NoPositional
    - UNNAMED_FIELDS
    - PyErr_Format
    - PyDict_PopString
    - Py_DECREF
    - PyDict_GET_SIZE
    - Py_NewRef
    - Py_TYPE
    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: 479
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 479
    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:499,1
    - Dst: SET_DICT_FROM_SIZE
      Src: /src/cpython/Objects/structseq.c:500,1
    - Dst: SET_DICT_FROM_SIZE
      Src: /src/cpython/Objects/structseq.c:501,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/structseq.c:505,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/structseq.c:514,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/structseq.c:518,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/structseq.c:522,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:523,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Objects/structseq.c:527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:535,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - desc
    - dict
    - n_members
    - n_unnamed_members
    argTypes:
    - PyStructSequence_Desc*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (keys == NULL)
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 537
      start: 481
    functionDepth: 11
    functionLinenumber: 481
    functionLinenumberEnd: 537
    functionName: initialize_structseq_dict
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyTuple_Resize
    - SET_DICT_FROM_SIZE
    - PyDict_SetItemString
    - PyTuple_SET_ITEM
    - assert
    - Py_DECREF
    - PyTuple_New
    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: 498
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 498
    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:545,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/structseq.c:547,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: 570
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 570
    functionName: initialize_members
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    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: 593
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 593
    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:599,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/structseq.c:602,1
    - Dst: initialize_structseq_dict
      Src: /src/cpython/Objects/structseq.c:604,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/structseq.c:605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:606,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: 611
      start: 595
    functionDepth: 12
    functionLinenumber: 595
    functionLinenumberEnd: 611
    functionName: initialize_static_type
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - initialize_structseq_dict
    - Py_INCREF
    - _PyType_GetDict
    - Py_DECREF
    - PyType_Ready
    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:619,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Objects/structseq.c:620,1
    - Dst: count_members
      Src: /src/cpython/Objects/structseq.c:623,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:627,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:628,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:629,1
    - Dst: initialize_members
      Src: /src/cpython/Objects/structseq.c:631,1
    - Dst: initialize_static_fields
      Src: /src/cpython/Objects/structseq.c:635,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/structseq.c:637,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:642,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:643,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:644,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:645,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:646,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/structseq.c:646,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/structseq.c:650,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/structseq.c:651,1
    - Dst: initialize_structseq_dict
      Src: /src/cpython/Objects/structseq.c:657,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/structseq.c:658,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/structseq.c:667,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_name != NULL)
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/cpython/Objects/structseq.c
    - condition: (_Py_IsImmortal(type))
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_base == &PyTuple_Type)
      pos:
        line_end: 643
        line_start: 643
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_members != NULL)
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_name == NULL)
      pos:
        line_end: 626
        line_start: 626
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_base == NULL)
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_members == NULL)
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/cpython/Objects/structseq.c
    - condition: ((type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN))
      pos:
        line_end: 644
        line_start: 644
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 670
      start: 613
    functionDepth: 12
    functionLinenumber: 613
    functionLinenumberEnd: 670
    functionName: _PyStructSequence_InitBuiltinWithFlags
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - Py_SET_TYPE
    - initialize_structseq_dict
    - _PyStaticType_InitBuiltin
    - count_members
    - initialize_static_fields
    - _PyType_GetDict
    - initialize_members
    - _Py_IsImmortal
    - assert
    - _Py_SetImmortal
    - PyErr_Format
    - PyMem_Free
    - Py_TYPE
    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:681,1
    - Dst: _PyRefchain_IsTraced
      Src: /src/cpython/Objects/structseq.c:682,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/structseq.c:683,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/structseq.c:688,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/structseq.c:689,1
    - Dst: count_members
      Src: /src/cpython/Objects/structseq.c:693,1
    - Dst: initialize_members
      Src: /src/cpython/Objects/structseq.c:694,1
    - Dst: initialize_static_fields
      Src: /src/cpython/Objects/structseq.c:698,1
    - Dst: initialize_static_type
      Src: /src/cpython/Objects/structseq.c:699,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/structseq.c:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - type
    - desc
    argTypes:
    - PyTypeObject*
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 672
    functionDepth: 13
    functionLinenumber: 672
    functionLinenumberEnd: 704
    functionName: PyStructSequence_InitType2
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - _PyRefchain_IsTraced
    - initialize_static_type
    - _Py_ForgetReference
    - count_members
    - _PyInterpreterState_GET
    - PyErr_BadInternalCall
    - Py_REFCNT
    - initialize_members
    - PyMem_Free
    - initialize_static_fields
    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:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - desc
    argTypes:
    - PyTypeObject*
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 706
    functionDepth: 14
    functionLinenumber: 706
    functionLinenumberEnd: 710
    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:721,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:722,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:723,1
    - Dst: assert
      Src: /src/cpython/Objects/structseq.c:724,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/structseq.c:724,1
    - Dst: _PyType_HasSubclasses
      Src: /src/cpython/Objects/structseq.c:727,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/structseq.c:732,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/structseq.c:734,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/structseq.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - interp
    - type
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_name != NULL)
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/cpython/Objects/structseq.c
    - condition: (_Py_IsImmortal(type))
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/cpython/Objects/structseq.c
    - condition: ((type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN))
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/cpython/Objects/structseq.c
    - condition: (type->tp_base == &PyTuple_Type)
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 741
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 741
    functionName: _PyStructSequence_FiniBuiltin
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 1
    functionsReached:
    - _PyType_HasSubclasses
    - _Py_IsMainInterpreter
    - _PyStaticType_FiniBuiltin
    - _Py_IsImmortal
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyStructSequence_FiniBuiltin(PyInterpreterState *interp, PyTypeObject
      *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: count_members
      Src: /src/cpython/Objects/structseq.c:754,1
    - Dst: initialize_members
      Src: /src/cpython/Objects/structseq.c:755,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/cpython/Objects/structseq.c:780,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/structseq.c:781,1
    - Dst: initialize_structseq_dict
      Src: /src/cpython/Objects/structseq.c:786,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Objects/structseq.c:787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/structseq.c:788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - desc
    - tp_flags
    argTypes:
    - PyStructSequence_Desc*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 744
    functionDepth: 12
    functionLinenumber: 744
    functionLinenumberEnd: 793
    functionName: _PyStructSequence_NewType
    functionSourceFile: /src/cpython/Objects/structseq.c
    functionUses: 1
    functionsReached:
    - initialize_structseq_dict
    - PyType_FromSpecWithBases
    - count_members
    - _PyType_GetDict
    - initialize_members
    - PyMem_Free
    - Py_DECREF
    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:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 13
    functionLinenumber: 796
    functionLinenumberEnd: 800
    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: 58
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 58
    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:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    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:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: _PyUnicode_IsXidStart
    functionSourceFile: /src/cpython/Objects/unicodectype.c
    functionUses: 1
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsXidStart(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/cpython/Objects/unicodectype.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: _PyUnicode_IsXidContinue
    functionSourceFile: /src/cpython/Objects/unicodectype.c
    functionUses: 1
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsXidContinue(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/cpython/Objects/unicodectype.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 110
    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:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 117
    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:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    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:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 134
    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:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    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:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    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:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    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:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 176
    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:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 188
    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:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 200
    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:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 216
    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:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 232
    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:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 248
    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:252,1
    - Dst: _PyUnicode_ToLowerFull
      Src: /src/cpython/Objects/unicodectype.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 263
    functionName: _PyUnicode_ToFoldedFull
    functionSourceFile: /src/cpython/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_ToLowerFull
    - gettyperecord
    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:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 270
    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:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 277
    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:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 287
    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: 138
    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:
    - _PyArg_NoKeywords
    - PyBool_FromLong
    - PyObject_IsTrue
    - PyArg_UnpackTuple
    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:
    - _PyArg_CheckPositional
    - PyType_Check
    - PyObject_IsTrue
    - PyBool_FromLong
    - _PyArg_NoKwnames
    - assert
    - PyVectorcall_NARGS
    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_Check
    - PyBool_FromLong
    - 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_Check
    - PyBool_FromLong
    - tp_as_number::nb_or
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_or(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/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_Check
    - tp_as_number::nb_xor
    - PyBool_FromLong
    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:
    - _PyObject_GC_SET_SHARED
    - _PyObject_CAST
    - Py_REFCNT
    - _Py_IsOwnedByCurrentThread
    - assert
    - _PyObject_GC_IS_SHARED
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void ensure_shared_on_resize(PyListObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:114,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:115,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:133,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/listobject.c:139,1
    - Dst: list_allocate_array
      Src: /src/cpython/Objects/listobject.c:142,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:146,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:149,1
    - Dst: memcpy
      Src: /src/cpython/Objects/listobject.c:160,1
    - Dst: memset
      Src: /src/cpython/Objects/listobject.c:163,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/listobject.c:165,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:167,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:169,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:169,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/listobject.c:175,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:184,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:187,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:191,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - self
    - newsize
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->ob_item != NULL || newsize == 0)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 195
      start: 103
    functionDepth: 8
    functionLinenumber: 103
    functionLinenumberEnd: 195
    functionName: list_resize
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - free_list_items
    - _Py_atomic_store_ptr_release
    - PyErr_NoMemory
    - Py_SET_SIZE
    - PyMem_Realloc
    - Py_SIZE
    - memset
    - memcpy
    - list_allocate_array
    - assert
    - ensure_shared_on_resize
    - _PyObject_GC_IS_SHARED
    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:201,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:202,1
    - Dst: list_allocate_array
      Src: /src/cpython/Objects/listobject.c:211,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:213,1
    - Dst: memset
      Src: /src/cpython/Objects/listobject.c:217,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/listobject.c:219,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:221,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:225,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: 200
        line_start: 200
        source_file: /src/cpython/Objects/listobject.c
    - condition: (size > 0)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 228
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 228
    functionName: list_preallocate_exact
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - FT_ATOMIC_STORE_PTR_RELEASE
    - memset
    - list_allocate_array
    - 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:234,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/listobject.c:236,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Objects/listobject.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: _PyList_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - _PyType_PreHeaderSize
    - _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:244,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/listobject.c:248,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/listobject.c:250,1
    - Dst: list_allocate_array
      Src: /src/cpython/Objects/listobject.c:260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:262,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:263,1
    - Dst: memset
      Src: /src/cpython/Objects/listobject.c:265,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/listobject.c:268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:271,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:272,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:275,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/listobject.c:277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 279
    functionName: PyList_New
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 152
    functionsReached:
    - PyObject_GC_New
    - PyMem_Calloc
    - PyErr_NoMemory
    - Py_SET_SIZE
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - _Py_FREELIST_POP
    - memset
    - list_allocate_array
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_New(Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:284,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:285,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:289,1
    - Dst: list_allocate_array
      Src: /src/cpython/Objects/listobject.c:291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:293,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:294,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/listobject.c:298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:300,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/cpython/Objects/listobject.c
    - condition: (op->ob_item == NULL)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 306
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 306
    functionName: list_new_prealloc
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - PyList_New
    - list_allocate_array
    - assert
    - Py_DECREF
    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:311,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:312,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 318
    functionName: PyList_Size
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 12
    functionsReached:
    - PyErr_BadInternalCall
    - PyList_Check
    - PyList_GET_SIZE
    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: 331
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 331
    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:339,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:340,1
    - Dst: _PyObject_GC_SET_SHARED
      Src: /src/cpython/Objects/listobject.c:341,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:343,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:344,1
    - Dst: _Py_NewRefWithLock
      Src: /src/cpython/Objects/listobject.c:347,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: list_item_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_SET_SHARED
    - valid_index
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_SIZE
    - _Py_NewRefWithLock
    - _PyObject_GC_IS_SHARED
    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:356,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:356,1
    - Dst: list_item_impl
      Src: /src/cpython/Objects/listobject.c:357,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:360,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:361,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/listobject.c:364,1
    - Dst: list_capacity
      Src: /src/cpython/Objects/listobject.c:368,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:369,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:370,1
    - Dst: _Py_TryXGetRef
      Src: /src/cpython/Objects/listobject.c:373,1
    - Dst: list_item_impl
      Src: /src/cpython/Objects/listobject.c:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (cap != -1)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 378
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 378
    functionName: list_get_item_ref
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - valid_index
    - list_item_impl
    - list_capacity
    - _Py_atomic_load_ptr
    - _Py_IsOwnedByCurrentThread
    - assert
    - _Py_TryXGetRef
    - PyList_GET_SIZE
    - _PyObject_GC_IS_SHARED
    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:383,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:383,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:386,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/listobject.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: list_get_item_ref
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_NewRef
    - valid_index
    - Py_SIZE
    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:393,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:394,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:397,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:397,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/listobject.c:398,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/listobject.c:399,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/listobject.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: PyList_GetItem
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 8
    functionsReached:
    - valid_index
    - PyErr_SetObject
    - _Py_STR
    - _Py_DECLARE_STR
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    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:408,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:409,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:412,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/listobject.c:414,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/listobject.c:415,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/listobject.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 419
    functionName: PyList_GetItemRef
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 7
    functionsReached:
    - PyErr_SetObject
    - _Py_STR
    - _Py_DECLARE_STR
    - PyErr_SetString
    - list_get_item_ref
    - 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:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - i
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: _PyList_GetItemRef
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 2
    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:431,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/listobject.c:431,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:432,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:433,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:433,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/listobject.c:436,1
    - Dst: list_capacity
      Src: /src/cpython/Objects/listobject.c:440,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:441,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:442,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/listobject.c:445,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Objects/listobject.c:446,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: 431
        line_start: 430
        source_file: /src/cpython/Objects/listobject.c
    - condition: (cap != -1)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 450
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 450
    functionName: _PyList_GetItemRefNoLock
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - valid_index
    - _Py_TryIncrefCompareStackRef
    - list_capacity
    - _Py_atomic_load_ptr
    - _Py_IsOwnedByCurrentThread
    - assert
    - PyList_GET_SIZE
    - _PyObject_GC_IS_SHARED
    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:457,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:458,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:459,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:464,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:465,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:465,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:466,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:467,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:473,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:474,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - op
    - i
    - newitem
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 479
    functionName: PyList_SetItem
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 6
    functionsReached:
    - valid_index
    - Py_END_CRITICAL_SECTION
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    - Py_XDECREF
    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:484,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:487,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:491,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:492,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:504,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:505,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:505,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: 490
        line_start: 490
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 507
      start: 481
    functionDepth: 9
    functionLinenumber: 481
    functionLinenumberEnd: 507
    functionName: ins1
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - PyErr_BadInternalCall
    - list_resize
    - assert
    - Py_NewRef
    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:512,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:513,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:518,1
    - Dst: ins1
      Src: /src/cpython/Objects/listobject.c:519,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - op
    - where
    - newitem
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 522
    functionName: PyList_Insert
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 8
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - ins1
    - PyErr_BadInternalCall
    - 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:528,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:529,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:531,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:534,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: 528
        line_start: 528
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 536
      start: 525
    functionDepth: 9
    functionLinenumber: 525
    functionLinenumberEnd: 536
    functionName: _PyList_AppendTakeRefListResize
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - list_resize
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _PyList_AppendTakeRefListResize(PyListObject *self, PyObject *newitem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:541,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:543,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Objects/listobject.c:544,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:544,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:545,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - newitem
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: PyList_Append
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 95
    functionsReached:
    - _PyList_AppendTakeRef
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - PyList_Check
    - Py_NewRef
    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:559,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:565,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:567,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:569,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:572,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/listobject.c:573,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/listobject.c:576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 554
    functionDepth: 8
    functionLinenumber: 554
    functionLinenumberEnd: 578
    functionName: list_dealloc
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - free_list_items
    - Py_SIZE
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyList_CheckExact
    - _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:583,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/listobject.c:585,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:589,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/listobject.c:590,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/listobject.c:596,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:602,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/listobject.c:604,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/listobject.c:607,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/listobject.c:610,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/listobject.c:615,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/listobject.c:618,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/listobject.c:621,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/listobject.c:625,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/listobject.c:626,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:629,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/listobject.c:630,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/listobject.c:631,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 580
    functionDepth: 5
    functionLinenumber: 580
    functionLinenumberEnd: 633
    functionName: list_repr_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicode_FromString
    - Py_ReprLeave
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteChar
    - Py_SIZE
    - Py_ReprEnter
    - Py_CLEAR
    - PyUnicodeWriter_Finish
    - Py_XDECREF
    - PyUnicodeWriter_WriteRepr
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_repr_impl(PyListObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:638,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/listobject.c:639,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:643,1
    - Dst: list_repr_impl
      Src: /src/cpython/Objects/listobject.c:644,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 635
    functionDepth: 6
    functionLinenumber: 635
    functionLinenumberEnd: 647
    functionName: list_repr
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - list_repr_impl
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 653
    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:660,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - aa
    - el
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 655
    functionDepth: 4
    functionLinenumber: 655
    functionLinenumberEnd: 672
    functionName: list_contains
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - list_get_item_ref
    linkageType: ''
    returnType: int
    signature: int list_contains(PyObject *aa, PyObject *el)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:678,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:678,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/listobject.c:679,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/listobject.c:679,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:684,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/listobject.c:686,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/listobject.c:686,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - aa
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 693
    functionName: list_item
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - valid_index
    - PyErr_SetObject
    - _Py_STR
    - list_get_item_ref
    - PyList_GET_SIZE
    - Py_NewRef
    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:703,1
    - Dst: list_new_prealloc
      Src: /src/cpython/Objects/listobject.c:705,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:713,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:715,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: 717
      start: 695
    functionDepth: 5
    functionLinenumber: 695
    functionLinenumberEnd: 717
    functionName: list_slice_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_new_prealloc
    - Py_NewRef
    - PyList_New
    - Py_SET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_slice_lock_held(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:722,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:722,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/listobject.c:728,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/listobject.c:731,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:735,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:736,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/listobject.c:737,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:738,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - container
    - start
    - stop
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(container))
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 741
      start: 719
    functionDepth: 6
    functionLinenumber: 719
    functionLinenumberEnd: 741
    functionName: _PyList_BinarySlice
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - list_slice_lock_held
    - Py_END_CRITICAL_SECTION
    - PySlice_AdjustIndices
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEval_SliceIndex
    - Py_SIZE
    - assert
    - PyList_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_BinarySlice(PyObject *container, PyObject *start, PyObject *stop)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:746,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:747,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:751,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:755,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:756,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:761,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:762,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:764,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:765,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: 767
      start: 743
    functionDepth: 6
    functionLinenumber: 743
    functionLinenumberEnd: 767
    functionName: PyList_GetSlice
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 5
    functionsReached:
    - list_slice_lock_held
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    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:776,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:776,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:776,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:777,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:777,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:779,1
    - Dst: list_new_prealloc
      Src: /src/cpython/Objects/listobject.c:781,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:787,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:789,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:792,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:793,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:795,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:797,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: 775
        line_start: 775
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 799
      start: 769
    functionDepth: 5
    functionLinenumber: 769
    functionLinenumberEnd: 799
    functionName: list_concat_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - Py_NewRef
    - Py_SIZE
    - PyList_New
    - assert
    - list_new_prealloc
    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:804,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/listobject.c:805,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:807,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:813,1
    - Dst: list_concat_lock_held
      Src: /src/cpython/Objects/listobject.c:814,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - aa
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 801
    functionDepth: 6
    functionLinenumber: 801
    functionLinenumberEnd: 817
    functionName: _PyList_Concat
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_concat_lock_held
    - Py_BEGIN_CRITICAL_SECTION2
    - PyList_Check
    - PyErr_Format
    - Py_END_CRITICAL_SECTION2
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_Concat(PyObject *aa, PyObject *bb)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:822,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:824,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:825,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:828,1
    - Dst: list_new_prealloc
      Src: /src/cpython/Objects/listobject.c:831,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/listobject.c:838,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/listobject.c:848,1
    - Dst: _Py_memory_repeat
      Src: /src/cpython/Objects/listobject.c:853,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:857,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 824
        line_start: 824
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 859
      start: 819
    functionDepth: 5
    functionLinenumber: 819
    functionLinenumberEnd: 859
    functionName: list_repeat_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _Py_RefcntAdd
    - PyErr_NoMemory
    - Py_SET_SIZE
    - _Py_memory_repeat
    - Py_SIZE
    - PyList_New
    - assert
    - list_new_prealloc
    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:866,1
    - Dst: list_repeat_lock_held
      Src: /src/cpython/Objects/listobject.c:867,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aa
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 861
    functionDepth: 6
    functionLinenumber: 861
    functionLinenumberEnd: 870
    functionName: list_repeat
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - list_repeat_lock_held
    - Py_END_CRITICAL_SECTION
    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:882,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:883,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:884,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:887,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/listobject.c:891,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:893,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - a
    - is_resize
    argTypes:
    - PyListObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 872
    functionDepth: 8
    functionLinenumber: 872
    functionLinenumberEnd: 900
    functionName: list_clear_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - free_list_items
    - Py_SET_SIZE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - Py_XDECREF
    - ensure_shared_on_resize
    - _PyObject_GC_IS_SHARED
    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:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 902
    functionDepth: 9
    functionLinenumber: 902
    functionLinenumberEnd: 906
    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:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 908
    functionDepth: 9
    functionLinenumber: 908
    functionLinenumberEnd: 913
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:921,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/listobject.c:923,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/listobject.c:924,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:924,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:926,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/listobject.c:931,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/listobject.c:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - a
    - dest
    - src
    - n
    argTypes:
    - PyListObject*
    - PyObject**
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 941
    functionName: ptr_wise_atomic_memmove
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - memmove
    - _Py_IsOwnedByCurrentThread
    - _Py_atomic_store_ptr_release
    - _PyObject_GC_IS_SHARED
    linkageType: ''
    returnType: void
    signature: void ptr_wise_atomic_memmove(PyListObject *a, PyObject **dest, PyObject
      **src, Py_ssize_t n)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/listobject.c:973,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:976,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/listobject.c:977,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:981,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:982,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:986,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:987,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:990,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:992,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:993,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:994,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:1003,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:1005,1
    - Dst: memcpy
      Src: /src/cpython/Objects/listobject.c:1009,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1013,1
    - Dst: ptr_wise_atomic_memmove
      Src: /src/cpython/Objects/listobject.c:1014,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1015,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1015,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1019,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1020,1
    - Dst: ptr_wise_atomic_memmove
      Src: /src/cpython/Objects/listobject.c:1023,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1027,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/listobject.c:1027,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:1030,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:1034,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:1035,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 4
    argNames:
    - a
    - ilow
    - ihigh
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (norig >= 0)
      pos:
        line_end: 989
        line_start: 989
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1038
      start: 949
    functionDepth: 9
    functionLinenumber: 949
    functionLinenumberEnd: 1038
    functionName: list_ass_slice_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - PySequence_Fast_ITEMS
    - PyMem_Malloc
    - PyErr_NoMemory
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - ptr_wise_atomic_memmove
    - list_resize
    - memcpy
    - Py_XDECREF
    - assert
    - PyMem_Free
    - list_clear
    - Py_XNewRef
    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:1045,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:1046,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:1047,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:1052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1053,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1055,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:1057,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1058,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:1059,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1060,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1063,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:1064,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1065,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: 1068
      start: 1040
    functionDepth: 10
    functionLinenumber: 1040
    functionLinenumberEnd: 1068
    functionName: list_ass_slice
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_slice_lock_held
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - list_ass_slice_lock_held
    - Py_DECREF
    - Py_END_CRITICAL_SECTION2
    - PyList_CheckExact
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int list_ass_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh,
      PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:1073,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:1074,1
    - Dst: list_ass_slice
      Src: /src/cpython/Objects/listobject.c:1077,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: 1078
      start: 1070
    functionDepth: 11
    functionLinenumber: 1070
    functionLinenumberEnd: 1078
    functionName: PyList_SetSlice
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 9
    functionsReached:
    - PyErr_BadInternalCall
    - PyList_Check
    - list_ass_slice
    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:1083,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:1089,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:1094,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1099,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/listobject.c:1105,1
    - Dst: _Py_memory_repeat
      Src: /src/cpython/Objects/listobject.c:1108,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/listobject.c:1113,1
    - Dst: ptr_wise_atomic_memmove
      Src: /src/cpython/Objects/listobject.c:1114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1080
    functionDepth: 9
    functionLinenumber: 1080
    functionLinenumberEnd: 1119
    functionName: list_inplace_repeat_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _Py_RefcntAdd
    - PyErr_NoMemory
    - _Py_memory_repeat
    - ptr_wise_atomic_memmove
    - Py_MIN
    - list_resize
    - list_clear
    - PyList_GET_SIZE
    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:1126,1
    - Dst: list_inplace_repeat_lock_held
      Src: /src/cpython/Objects/listobject.c:1127,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1131,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - _self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1121
    functionDepth: 10
    functionLinenumber: 1121
    functionLinenumberEnd: 1135
    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:1140,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:1141,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1147,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1149,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1151,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1154,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - i
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1158
    functionName: list_ass_item_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - valid_index
    - Py_SET_SIZE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PyErr_SetString
    - Py_SIZE
    - Py_DECREF
    - Py_NewRef
    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:1165,1
    - Dst: list_ass_item_lock_held
      Src: /src/cpython/Objects/listobject.c:1166,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aa
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1169
    functionName: list_ass_item
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_ass_item_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - 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:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - index
    - object
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    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:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1205
    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:1218,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1214
    functionDepth: 6
    functionLinenumber: 1214
    functionLinenumberEnd: 1219
    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:1235,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - object
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1239
    functionName: list_append_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyList_AppendTakeRef
    - Py_NewRef
    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:1244,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1250,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1253,1
    - Dst: list_preallocate_exact
      Src: /src/cpython/Objects/listobject.c:1255,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1258,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1260,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/listobject.c:1270,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1274,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1274,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: 1252
        line_start: 1252
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1277
      start: 1241
    functionDepth: 9
    functionLinenumber: 1241
    functionLinenumberEnd: 1277
    functionName: list_extend_fast
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast_ITEMS
    - Py_SET_SIZE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - list_preallocate_exact
    - list_resize
    - assert
    - Py_NewRef
    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:1282,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:1286,1
    - Dst: PyObject_LengthHint
      Src: /src/cpython/Objects/listobject.c:1289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1291,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1295,1
    - Dst: list_preallocate_exact
      Src: /src/cpython/Objects/listobject.c:1303,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1308,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1313,1
    - Dst: iternext
      Src: /src/cpython/Objects/listobject.c:1318,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:1320,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/listobject.c:1321,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/listobject.c:1322,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1329,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1330,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1331,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1332,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Objects/listobject.c:1335,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1341,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1342,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1350,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1279
    functionDepth: 9
    functionLinenumber: 1279
    functionLinenumberEnd: 1352
    functionName: list_extend_iter_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyList_AppendTakeRef
    - Py_SET_SIZE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - iternext
    - PyObject_GetIter
    - PyObject_LengthHint
    - list_preallocate_exact
    - PyErr_Clear
    - list_resize
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - Py_DECREF
    - Py_TYPE
    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:1357,1
    - Dst: list_extend_fast
      Src: /src/cpython/Objects/listobject.c:1362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:1363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1354
    functionDepth: 10
    functionLinenumber: 1354
    functionLinenumberEnd: 1365
    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:1370,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:1371,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1376,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1380,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Objects/listobject.c:1386,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1387,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyListObject*
    - PySetObject*
    assertStmts:
    - condition: (self->ob_item != NULL)
      pos:
        line_end: 1379
        line_start: 1379
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1392
      start: 1367
    functionDepth: 9
    functionLinenumber: 1367
    functionLinenumberEnd: 1392
    functionName: list_extend_set
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PySet_GET_SIZE
    - _PySet_NextEntryRef
    - Py_SIZE
    - list_resize
    - 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:1398,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:1399,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1404,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1408,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/listobject.c:1412,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:1414,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1415,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1419,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: 1407
        line_start: 1407
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1421
      start: 1394
    functionDepth: 9
    functionLinenumber: 1394
    functionLinenumberEnd: 1421
    functionName: list_extend_dict
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_SET_SIZE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - list_resize
    - assert
    - PyDict_GET_SIZE
    - _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:1426,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:1427,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1432,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1436,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/listobject.c:1441,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/listobject.c:1442,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1444,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1447,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:1452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - dict
    argTypes:
    - PyListObject*
    - PyDictObject*
    assertStmts:
    - condition: (self->ob_item != NULL)
      pos:
        line_end: 1435
        line_start: 1435
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1454
      start: 1423
    functionDepth: 9
    functionLinenumber: 1423
    functionLinenumberEnd: 1454
    functionName: list_extend_dictitems
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SET_SIZE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - _PyTuple_FromPair
    - list_resize
    - assert
    - PyDict_GET_SIZE
    - _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:1463,1
    - Dst: list_inplace_repeat_lock_held
      Src: /src/cpython/Objects/listobject.c:1464,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1465,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:1467,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1468,1
    - Dst: list_extend_lock_held
      Src: /src/cpython/Objects/listobject.c:1469,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1470,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/listobject.c:1472,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1473,1
    - Dst: list_extend_lock_held
      Src: /src/cpython/Objects/listobject.c:1474,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1475,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Objects/listobject.c:1477,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1478,1
    - Dst: list_extend_set
      Src: /src/cpython/Objects/listobject.c:1479,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1480,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/listobject.c:1482,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1483,1
    - Dst: list_extend_dict
      Src: /src/cpython/Objects/listobject.c:1484,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1485,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:1487,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1489,1
    - Dst: list_extend_dict
      Src: /src/cpython/Objects/listobject.c:1490,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1491,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:1493,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1495,1
    - Dst: list_extend_dict
      Src: /src/cpython/Objects/listobject.c:1496,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1497,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:1499,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1501,1
    - Dst: list_extend_dictitems
      Src: /src/cpython/Objects/listobject.c:1502,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:1503,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1506,1
    - Dst: list_extend_iter_lock_held
      Src: /src/cpython/Objects/listobject.c:1507,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1508,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1456
    functionDepth: 11
    functionLinenumber: 1456
    functionLinenumberEnd: 1511
    functionName: _list_extend
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_extend_set
    - Py_END_CRITICAL_SECTION
    - Py_IS_TYPE
    - Py_BEGIN_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - list_inplace_repeat_lock_held
    - PyAnySet_CheckExact
    - list_extend_dictitems
    - list_extend_iter_lock_held
    - list_extend_dict
    - PyDict_CheckExact
    - Py_END_CRITICAL_SECTION2
    - PyList_CheckExact
    - PyTuple_CheckExact
    - list_extend_lock_held
    linkageType: ''
    returnType: int
    signature: int _list_extend(PyListObject *self, PyObject *iterable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _list_extend
      Src: /src/cpython/Objects/listobject.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1522
    functionDepth: 12
    functionLinenumber: 1522
    functionLinenumberEnd: 1530
    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:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1536
    functionName: _PyList_Extend
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 2
    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:1541,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:1542,1
    - Dst: _list_extend
      Src: /src/cpython/Objects/listobject.c:1545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1538
    functionDepth: 12
    functionLinenumber: 1538
    functionLinenumberEnd: 1546
    functionName: PyList_Extend
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 4
    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:1552,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:1553,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1556,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:1557,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:1558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1560
    functionName: PyList_Clear
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 4
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - PyList_Check
    - list_clear
    linkageType: ''
    returnType: int
    signature: int PyList_Clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _list_extend
      Src: /src/cpython/Objects/listobject.c:1567,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:1570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - _self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1563
    functionDepth: 12
    functionLinenumber: 1563
    functionLinenumberEnd: 1571
    functionName: list_inplace_concat
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _list_extend
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_inplace_concat(PyObject *_self, PyObject *other)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1591,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:1593,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1597,1
    - Dst: valid_index
      Src: /src/cpython/Objects/listobject.c:1598,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1598,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:1599,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1605,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:1606,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:1607,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:1610,1
    - Dst: ptr_wise_atomic_memmove
      Src: /src/cpython/Objects/listobject.c:1612,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:1615,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1585
    functionDepth: 9
    functionLinenumber: 1585
    functionLinenumberEnd: 1617
    functionName: list_pop_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - valid_index
    - PyErr_SetString
    - Py_SIZE
    - ptr_wise_atomic_memmove
    - list_resize
    - list_clear
    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:1623,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1628,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:1629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - lo
    - hi
    argTypes:
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (lo && hi)
      pos:
        line_end: 1622
        line_start: 1622
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1633
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1633
    functionName: reverse_slice
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - 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: 1659
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1659
    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: 1667
      start: 1662
    functionDepth: 0
    functionLinenumber: 1662
    functionLinenumberEnd: 1667
    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: 1675
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1675
    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:1682,1
    - Dst: memcpy
      Src: /src/cpython/Objects/listobject.c:1684,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: 1685
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1685
    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:1691,1
    - Dst: memmove
      Src: /src/cpython/Objects/listobject.c:1693,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: 1694
      start: 1688
    functionDepth: 0
    functionLinenumber: 1688
    functionLinenumberEnd: 1694
    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: 1702
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1702
    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: 1710
      start: 1709
    functionDepth: 0
    functionLinenumber: 1709
    functionLinenumberEnd: 1710
    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: 1717
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1717
    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:1822,1
    - Dst: ISLT
      Src: /src/cpython/Objects/listobject.c:1856,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1887,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:1893,1
    - Dst: ISLT
      Src: /src/cpython/Objects/listobject.c:1903,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:1911,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: 1821
        line_start: 1821
        source_file: /src/cpython/Objects/listobject.c
    - condition: (L < R)
      pos:
        line_end: 1886
        line_start: 1886
        source_file: /src/cpython/Objects/listobject.c
    - condition: (L == R)
      pos:
        line_end: 1910
        line_start: 1910
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1932
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1932
    functionName: binarysort
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - ISLT
    - IFLT
    - assert
    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:1937,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:1939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - sortslice*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1934
    functionDepth: 2
    functionLinenumber: 1934
    functionLinenumberEnd: 1940
    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:1980,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:1999,1
    - Dst: sortslice_reverse
      Src: /src/cpython/Objects/listobject.c:2001,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: 1979
        line_start: 1979
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2043
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 2043
    functionName: count_run
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - IFLT
    - sortslice_reverse
    - assert
    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:2073,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2078,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2086,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2104,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2108,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: 2072
        line_start: 2072
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2107
        line_start: 2107
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2085
        line_start: 2085
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2117
      start: 2066
    functionDepth: 1
    functionLinenumber: 2066
    functionLinenumberEnd: 2117
    functionName: gallop_left
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - IFLT
    - assert
    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:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2085
        line_start: 2085
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2088
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2088
    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:2162,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2167,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2173,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2175,1
    - Dst: IFLT
      Src: /src/cpython/Objects/listobject.c:2194,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2198,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: 2161
        line_start: 2161
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2174
        line_start: 2174
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2206
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2206
    functionName: gallop_right
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - IFLT
    - assert
    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:2235,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: 2234
        line_start: 2234
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2268
      start: 2231
    functionDepth: 0
    functionLinenumber: 2231
    functionLinenumberEnd: 2268
    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:2277,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:2279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 2276
        line_start: 2276
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2282
      start: 2274
    functionDepth: 2
    functionLinenumber: 2274
    functionLinenumberEnd: 2282
    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:2292,1
    - Dst: merge_freemem
      Src: /src/cpython/Objects/listobject.c:2301,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:2303,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:2306,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:2314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ms
    - need
    argTypes:
    - MergeState*
    - Py_ssize_t
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 2291
        line_start: 2291
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2316
      start: 2287
    functionDepth: 3
    functionLinenumber: 2287
    functionLinenumberEnd: 2316
    functionName: merge_getmem
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - merge_freemem
    - PyMem_Malloc
    - PyErr_NoMemory
    - assert
    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: 2319
      start: 2317
    functionDepth: 0
    functionLinenumber: 2317
    functionLinenumberEnd: 2319
    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:2335,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2336,1
    - Dst: MERGE_GETMEM
      Src: /src/cpython/Objects/listobject.c:2337,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2339,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2343,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2359,1
    - Dst: ISLT
      Src: /src/cpython/Objects/listobject.c:2360,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2364,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2374,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2392,1
    - Dst: gallop_right
      Src: /src/cpython/Objects/listobject.c:2395,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2400,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2401,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2402,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2413,1
    - Dst: gallop_left
      Src: /src/cpython/Objects/listobject.c:2418,1
    - Dst: sortslice_memmove
      Src: /src/cpython/Objects/listobject.c:2423,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2424,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2425,1
    - Dst: sortslice_copy_incr
      Src: /src/cpython/Objects/listobject.c:2430,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2442,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2445,1
    - Dst: sortslice_memmove
      Src: /src/cpython/Objects/listobject.c:2447,1
    - Dst: sortslice_copy
      Src: /src/cpython/Objects/listobject.c:2448,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: (ms && ssa.keys && ssb.keys && na > 0 && nb > 0)
      pos:
        line_end: 2334
        line_start: 2334
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na > 1 && nb > 0)
      pos:
        line_end: 2358
        line_start: 2358
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na > 1 && nb > 0)
      pos:
        line_end: 2391
        line_start: 2391
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na == 1 && nb > 0)
      pos:
        line_end: 2444
        line_start: 2444
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 2335
        line_start: 2335
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2450
      start: 2326
    functionDepth: 2
    functionLinenumber: 2326
    functionLinenumberEnd: 2450
    functionName: merge_lo
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - sortslice_memcpy
    - gallop_left
    - sortslice_advance
    - sortslice_copy
    - MERGE_GETMEM
    - gallop_right
    - sortslice_copy_incr
    - ISLT
    - sortslice_memmove
    - assert
    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:2467,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2468,1
    - Dst: MERGE_GETMEM
      Src: /src/cpython/Objects/listobject.c:2469,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2472,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2473,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2479,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2481,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2497,1
    - Dst: ISLT
      Src: /src/cpython/Objects/listobject.c:2498,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2502,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2512,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2530,1
    - Dst: gallop_right
      Src: /src/cpython/Objects/listobject.c:2533,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2539,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2540,1
    - Dst: sortslice_memmove
      Src: /src/cpython/Objects/listobject.c:2541,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2546,1
    - Dst: gallop_left
      Src: /src/cpython/Objects/listobject.c:2551,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2557,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2558,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2559,1
    - Dst: sortslice_copy_decr
      Src: /src/cpython/Objects/listobject.c:2570,1
    - Dst: sortslice_memcpy
      Src: /src/cpython/Objects/listobject.c:2582,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2585,1
    - Dst: sortslice_memmove
      Src: /src/cpython/Objects/listobject.c:2587,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2588,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2589,1
    - Dst: sortslice_copy
      Src: /src/cpython/Objects/listobject.c:2590,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: (na > 0 && nb > 1)
      pos:
        line_end: 2496
        line_start: 2496
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 2467
        line_start: 2467
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na > 0 && nb > 1)
      pos:
        line_end: 2529
        line_start: 2529
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms && ssa.keys && ssb.keys && na > 0 && nb > 0)
      pos:
        line_end: 2466
        line_start: 2466
        source_file: /src/cpython/Objects/listobject.c
    - condition: (nb == 1 && na > 0)
      pos:
        line_end: 2584
        line_start: 2584
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2592
      start: 2458
    functionDepth: 2
    functionLinenumber: 2458
    functionLinenumberEnd: 2592
    functionName: merge_hi
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - sortslice_memcpy
    - gallop_left
    - sortslice_advance
    - sortslice_copy
    - MERGE_GETMEM
    - sortslice_copy_decr
    - gallop_right
    - ISLT
    - sortslice_memmove
    - 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:2604,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2605,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2606,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2607,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2613,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2614,1
    - Dst: gallop_right
      Src: /src/cpython/Objects/listobject.c:2628,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:2631,1
    - Dst: gallop_left
      Src: /src/cpython/Objects/listobject.c:2639,1
    - Dst: merge_lo
      Src: /src/cpython/Objects/listobject.c:2647,1
    - Dst: merge_hi
      Src: /src/cpython/Objects/listobject.c:2649,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - ms
    - i
    argTypes:
    - MergeState*
    - Py_ssize_t
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 2603
        line_start: 2603
        source_file: /src/cpython/Objects/listobject.c
    - condition: (i == ms->n - 2 || i == ms->n - 3)
      pos:
        line_end: 2606
        line_start: 2606
        source_file: /src/cpython/Objects/listobject.c
    - condition: (i >= 0)
      pos:
        line_end: 2605
        line_start: 2605
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms->n >= 2)
      pos:
        line_end: 2604
        line_start: 2604
        source_file: /src/cpython/Objects/listobject.c
    - condition: (na > 0 && nb > 0)
      pos:
        line_end: 2612
        line_start: 2612
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 2613
        line_start: 2613
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2650
      start: 2597
    functionDepth: 3
    functionLinenumber: 2597
    functionLinenumberEnd: 2650
    functionName: merge_at
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - gallop_left
    - sortslice_advance
    - gallop_right
    - merge_lo
    - assert
    - merge_hi
    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:2661,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2662,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2663,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2679,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2686,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: 2660
        line_start: 2660
        source_file: /src/cpython/Objects/listobject.c
    - condition: (n1 > 0 && n2 > 0)
      pos:
        line_end: 2661
        line_start: 2661
        source_file: /src/cpython/Objects/listobject.c
    - condition: (s1 + n1 + n2 <= n)
      pos:
        line_end: 2662
        line_start: 2662
        source_file: /src/cpython/Objects/listobject.c
    - condition: (a < b && b < n)
      pos:
        line_end: 2685
        line_start: 2685
        source_file: /src/cpython/Objects/listobject.c
    - condition: (b >= a)
      pos:
        line_end: 2678
        line_start: 2678
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2691
      start: 2657
    functionDepth: 0
    functionLinenumber: 2657
    functionLinenumberEnd: 2691
    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:2707,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2709,1
    - Dst: powerloop
      Src: /src/cpython/Objects/listobject.c:2713,1
    - Dst: merge_at
      Src: /src/cpython/Objects/listobject.c:2715,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2718,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ms
    - n2
    argTypes:
    - MergeState*
    - Py_ssize_t
    assertStmts:
    - condition: (ms)
      pos:
        line_end: 2706
        line_start: 2706
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms->n < 2 || p[ms->n - 2].power < power)
      pos:
        line_end: 2717
        line_start: 2717
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms->n > 0)
      pos:
        line_end: 2708
        line_start: 2708
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2722
      start: 2704
    functionDepth: 4
    functionLinenumber: 2704
    functionLinenumberEnd: 2722
    functionName: found_new_run
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - powerloop
    - merge_at
    - assert
    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:2734,1
    - Dst: merge_at
      Src: /src/cpython/Objects/listobject.c:2739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms)
      pos:
        line_end: 2733
        line_start: 2733
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2743
      start: 2729
    functionDepth: 4
    functionLinenumber: 2729
    functionLinenumberEnd: 2743
    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:2750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms->mr_current >= 0)
      pos:
        line_end: 2749
        line_start: 2749
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2754
      start: 2747
    functionDepth: 0
    functionLinenumber: 2747
    functionLinenumberEnd: 2754
    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:2770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2766
    functionDepth: 4
    functionLinenumber: 2766
    functionLinenumberEnd: 2771
    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:2783,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2784,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:2790,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2791,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/listobject.c:2796,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2798,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/listobject.c:2798,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/listobject.c:2801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:2802,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (ms->key_richcompare != NULL)
      pos:
        line_end: 2785
        line_start: 2785
        source_file: /src/cpython/Objects/listobject.c
    - condition: (_Py_IsImmortal(res_obj))
      pos:
        line_end: 2797
        line_start: 2797
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2811
      start: 2777
    functionDepth: 4
    functionLinenumber: 2777
    functionLinenumberEnd: 2811
    functionName: unsafe_object_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyBool_Check
    - PyObject_RichCompareBool
    - PyObject_IsTrue
    - _Py_IsImmortal
    - assert
    - Py_DECREF
    - Py_TYPE
    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:2821,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2821,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2822,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2822,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2823,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/listobject.c:2823,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/listobject.c:2823,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2824,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/listobject.c:2824,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/listobject.c:2826,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/listobject.c:2826,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/listobject.c:2826,1
    - Dst: memcmp
      Src: /src/cpython/Objects/listobject.c:2827,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/listobject.c:2827,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/listobject.c:2827,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/listobject.c:2831,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/listobject.c:2831,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2833,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2833,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: 2832
        line_start: 2832
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(v, &PyUnicode_Type))
      pos:
        line_end: 2820
        line_start: 2820
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(w, &PyUnicode_Type))
      pos:
        line_end: 2821
        line_start: 2821
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PyUnicode_KIND(v) == PyUnicode_KIND(w))
      pos:
        line_end: 2822
        line_start: 2822
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PyUnicode_KIND(v) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2823
        line_start: 2823
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2835
      start: 2814
    functionDepth: 4
    functionLinenumber: 2814
    functionLinenumberEnd: 2835
    functionName: unsafe_latin_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyUnicode_KIND
    - PyUnicode_DATA
    - Py_IS_TYPE
    - memcmp
    - Py_MIN
    - 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: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_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2847,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2848,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/listobject.c:2848,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2849,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/listobject.c:2849,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/listobject.c:2854,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/listobject.c:2855,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2858,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2858,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: 2845
        line_start: 2845
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(w, &PyLong_Type))
      pos:
        line_end: 2846
        line_start: 2846
        source_file: /src/cpython/Objects/listobject.c
    - condition: (_PyLong_IsCompact((PyLongObject *)v))
      pos:
        line_end: 2847
        line_start: 2847
        source_file: /src/cpython/Objects/listobject.c
    - condition: (_PyLong_IsCompact((PyLongObject *)w))
      pos:
        line_end: 2848
        line_start: 2848
        source_file: /src/cpython/Objects/listobject.c
    - condition: (res == PyObject_RichCompareBool(v, w, Py_LT))
      pos:
        line_end: 2857
        line_start: 2857
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2860
      start: 2838
    functionDepth: 4
    functionLinenumber: 2838
    functionLinenumberEnd: 2860
    functionName: unsafe_long_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - PyObject_RichCompareBool
    - _PyLong_IsCompact
    - Py_IS_TYPE
    - 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:2869,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2869,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2870,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2870,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/listobject.c:2872,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/listobject.c:2872,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2873,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2873,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: 2868
        line_start: 2868
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(w, &PyFloat_Type))
      pos:
        line_end: 2869
        line_start: 2869
        source_file: /src/cpython/Objects/listobject.c
    - condition: (res == PyObject_RichCompareBool(v, w, Py_LT))
      pos:
        line_end: 2872
        line_start: 2872
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2875
      start: 2863
    functionDepth: 4
    functionLinenumber: 2863
    functionLinenumberEnd: 2875
    functionName: unsafe_float_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyFloat_AS_DOUBLE
    - PyObject_RichCompareBool
    - 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:2891,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2891,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2892,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:2892,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2893,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2893,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2894,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2894,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2899,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2900,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2903,1
    - Dst: MergeState*::tuple_elem_compare
      Src: /src/cpython/Objects/listobject.c:2914,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:2916,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: 2890
        line_start: 2890
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_IS_TYPE(w, &PyTuple_Type))
      pos:
        line_end: 2891
        line_start: 2891
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_SIZE(v) > 0)
      pos:
        line_end: 2892
        line_start: 2892
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_SIZE(w) > 0)
      pos:
        line_end: 2893
        line_start: 2893
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2917
      start: 2883
    functionDepth: 4
    functionLinenumber: 2883
    functionLinenumberEnd: 2917
    functionName: unsafe_tuple_compare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - MergeState*::tuple_elem_compare
    - PyObject_RichCompareBool
    - Py_IS_TYPE
    - Py_SIZE
    - 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:2958,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:2959,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:2959,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:2968,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:2971,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:2972,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:2985,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:2987,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/listobject.c:2993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:2996,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:2998,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:3014,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3015,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:3018,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/listobject.c:3018,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:3019,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:3029,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3029,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/listobject.c:3039,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:3042,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/listobject.c:3054,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/listobject.c:3060,1
    - Dst: merge_init
      Src: /src/cpython/Objects/listobject.c:3105,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3115,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3116,1
    - Dst: count_run
      Src: /src/cpython/Objects/listobject.c:3126,1
    - Dst: minrun_next
      Src: /src/cpython/Objects/listobject.c:3130,1
    - Dst: binarysort
      Src: /src/cpython/Objects/listobject.c:3134,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3139,1
    - Dst: found_new_run
      Src: /src/cpython/Objects/listobject.c:3141,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3144,1
    - Dst: sortslice_advance
      Src: /src/cpython/Objects/listobject.c:3149,1
    - Dst: merge_force_collapse
      Src: /src/cpython/Objects/listobject.c:3153,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3155,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3156,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3159,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3167,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:3169,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:3176,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3181,1
    - Dst: merge_freemem
      Src: /src/cpython/Objects/listobject.c:3183,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3187,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:3188,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:3189,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:3190,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:3195,1
    - Dst: ensure_shared_on_resize
      Src: /src/cpython/Objects/listobject.c:3198,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Objects/listobject.c:3199,1
    - Dst: free_list_items
      Src: /src/cpython/Objects/listobject.c:3203,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/listobject.c:3205,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: 3154
        line_start: 3154
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PyList_Check(self))
      pos:
        line_end: 2958
        line_start: 2958
        source_file: /src/cpython/Objects/listobject.c
    - condition: (self != NULL)
      pos:
        line_end: 2957
        line_start: 2957
        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: 3157
        line_start: 3155
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms.pending[0].len == saved_ob_size)
      pos:
        line_end: 3158
        line_start: 3158
        source_file: /src/cpython/Objects/listobject.c
    - condition: (ms.n < MAX_MERGE_PENDING)
      pos:
        line_end: 3143
        line_start: 3143
        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: 3139
        line_start: 3138
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3206
      start: 2943
    functionDepth: 8
    functionLinenumber: 2943
    functionLinenumberEnd: 3206
    functionName: list_sort_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - free_list_items
    - PyTuple_GET_ITEM
    - merge_force_collapse
    - assert
    - Py_XNewRef
    - _PyObject_GC_IS_SHARED
    - Py_TYPE
    - PyErr_NoMemory
    - PyUnicode_KIND
    - merge_freemem
    - PyMem_Free
    - PyMem_Malloc
    - Py_XDECREF
    - ensure_shared_on_resize
    - found_new_run
    - binarysort
    - sortslice_advance
    - _PyLong_IsCompact
    - Py_SET_SIZE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_IS_TYPE
    - count_run
    - PyErr_SetString
    - Py_SIZE
    - PyList_Check
    - minrun_next
    - Py_DECREF
    - merge_init
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - reverse_slice
    - PyObject_CallOneArg
    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:3213,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:3214,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3217,1
    - Dst: list_sort_impl
      Src: /src/cpython/Objects/listobject.c:3218,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3210
    functionDepth: 9
    functionLinenumber: 3210
    functionLinenumberEnd: 3224
    functionName: PyList_Sort
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 4
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - PyList_Check
    - list_sort_impl
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyList_Sort(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3237,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3238,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3240
      start: 3233
    functionDepth: 2
    functionLinenumber: 3233
    functionLinenumberEnd: 3240
    functionName: list_reverse_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - reverse_slice
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_reverse_impl(PyListObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3247,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:3248,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3251,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3252,1
    - Dst: reverse_slice
      Src: /src/cpython/Objects/listobject.c:3253,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3253,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3242
    functionDepth: 2
    functionLinenumber: 3242
    functionLinenumberEnd: 3257
    functionName: PyList_Reverse
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 5
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:3262,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:3263,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3268,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Objects/listobject.c:3269,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3269,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3259
    functionDepth: 1
    functionLinenumber: 3259
    functionLinenumberEnd: 3272
    functionName: PyList_AsTuple
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 10
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyTuple_FromArray
    - Py_BEGIN_CRITICAL_SECTION
    - 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:3277,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/listobject.c:3280,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3282,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3284,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:3285,1
    - Dst: _PyTuple_FromArraySteal
      Src: /src/cpython/Objects/listobject.c:3286,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 3276
        line_start: 3276
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3289
      start: 3274
    functionDepth: 1
    functionLinenumber: 3274
    functionLinenumberEnd: 3289
    functionName: _PyList_AsTupleAndClear
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - Py_SET_SIZE
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyTuple_FromArraySteal
    - Py_SIZE
    - assert
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_AsTupleAndClear(PyListObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:3295,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:3298,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/listobject.c:3305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - _PyStackRef*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3291
    functionDepth: 4
    functionLinenumber: 3291
    functionLinenumberEnd: 3309
    functionName: _PyList_FromStackRefStealOnSuccess
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - PyStackRef_AsPyObjectSteal
    - PyList_New
    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:3330,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3335,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:3340,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:3345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3346,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/listobject.c:3348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:3352,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: 3354
      start: 3324
    functionDepth: 4
    functionLinenumber: 3324
    functionLinenumberEnd: 3354
    functionName: list_index_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyErr_SetString
    - list_get_item_ref
    - Py_SIZE
    - PyLong_FromSsize_t
    - Py_DECREF
    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:3371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3378,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:3381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3382,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/listobject.c:3388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3389
      start: 3365
    functionDepth: 4
    functionLinenumber: 3365
    functionLinenumberEnd: 3389
    functionName: list_count_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - list_get_item_ref
    - PyLong_FromSsize_t
    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:3409,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3411,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:3412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3413,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3415,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/listobject.c:3422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3424
      start: 3403
    functionDepth: 10
    functionLinenumber: 3403
    functionLinenumberEnd: 3424
    functionName: list_remove_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_INCREF
    - PyErr_SetString
    - Py_SIZE
    - list_ass_slice_lock_held
    - Py_DECREF
    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:3432,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/listobject.c:3433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3426
    functionDepth: 1
    functionLinenumber: 3426
    functionLinenumberEnd: 3435
    functionName: list_traverse
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_SIZE
    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:3443,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3443,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3449,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3449,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3458,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3458,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3465,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3466,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/listobject.c:3467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3469,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3476,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3476,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/listobject.c:3478,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3478,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3478,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3492,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/listobject.c:3493,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/listobject.c:3494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3496,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3498
      start: 3437
    functionDepth: 4
    functionLinenumber: 3437
    functionLinenumberEnd: 3498
    functionName: list_richcompare_impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - Py_RETURN_RICHCOMPARE
    - Py_SIZE
    - PyList_Check
    - PyObject_RichCompare
    - Py_DECREF
    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:3504,1
    - Dst: list_richcompare_impl
      Src: /src/cpython/Objects/listobject.c:3505,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:3506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3508
      start: 3500
    functionDepth: 5
    functionLinenumber: 3500
    functionLinenumberEnd: 3508
    functionName: list_richcompare
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - list_richcompare_impl
    - Py_END_CRITICAL_SECTION2
    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:3527,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3527,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3528,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3528,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3529,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3534,1
    - Dst: list_clear
      Src: /src/cpython/Objects/listobject.c:3535,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3536,1
    - Dst: _list_extend
      Src: /src/cpython/Objects/listobject.c:3539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts:
    - condition: (0 <= Py_SIZE(self))
      pos:
        line_end: 3526
        line_start: 3526
        source_file: /src/cpython/Objects/listobject.c
    - condition: "(self->ob_item != NULL ||\n           self->allocated == 0 || self->allocated
        == -1)"
      pos:
        line_end: 3529
        line_start: 3528
        source_file: /src/cpython/Objects/listobject.c
    - condition: (Py_SIZE(self) <= self->allocated || self->allocated == -1)
      pos:
        line_end: 3527
        line_start: 3527
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3544
      start: 3522
    functionDepth: 12
    functionLinenumber: 3522
    functionLinenumberEnd: 3544
    functionName: list___init___impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _list_extend
    - Py_SIZE
    - assert
    - list_clear
    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:3550,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/listobject.c:3553,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/listobject.c:3554,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/listobject.c:3558,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/listobject.c:3558,1
    - Dst: list___init___impl
      Src: /src/cpython/Objects/listobject.c:3563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3564,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: 3569
      start: 3546
    functionDepth: 13
    functionLinenumber: 3546
    functionLinenumberEnd: 3569
    functionName: list_vectorcall
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - list___init___impl
    - PyType_GenericAlloc
    - _PyArg_NoKwnames
    - Py_DECREF
    - PyVectorcall_NARGS
    - _PyType_CAST
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nlist_vectorcall(PyObject *type, PyObject * const*args,\n
      \               size_t nargsf, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Objects/listobject.c:3582,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:3582,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/listobject.c:3584,1
    - Dst: list_capacity
      Src: /src/cpython/Objects/listobject.c:3586,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/listobject.c:3591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3578
    functionDepth: 2
    functionLinenumber: 3578
    functionLinenumberEnd: 3592
    functionName: list___sizeof___impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - list_capacity
    - _Py_atomic_load_ptr
    - _PyObject_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___sizeof___impl(PyListObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_new_prealloc
      Src: /src/cpython/Objects/listobject.c:3633,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:3644,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:3646,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: 3648
      start: 3630
    functionDepth: 5
    functionLinenumber: 3630
    functionLinenumberEnd: 3648
    functionName: list_slice_step_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - list_new_prealloc
    - Py_SET_SIZE
    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:3654,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/listobject.c:3655,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3655,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:3657,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3660,1
    - Dst: list_slice_step_lock_held
      Src: /src/cpython/Objects/listobject.c:3663,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3665,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: 3667
      start: 3650
    functionDepth: 6
    functionLinenumber: 3650
    functionLinenumberEnd: 3667
    functionName: list_slice_wrap
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_slice_lock_held
    - Py_END_CRITICAL_SECTION
    - PySlice_AdjustIndices
    - Py_BEGIN_CRITICAL_SECTION
    - Py_SIZE
    - PyList_New
    - list_slice_step_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:3672,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:3672,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:3673,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/listobject.c:3673,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/listobject.c:3675,1
    - Dst: list_slice_wrap
      Src: /src/cpython/Objects/listobject.c:3678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(self))
      pos:
        line_end: 3671
        line_start: 3671
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PySlice_Check(item))
      pos:
        line_end: 3672
        line_start: 3672
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3679
      start: 3669
    functionDepth: 7
    functionLinenumber: 3669
    functionLinenumberEnd: 3679
    functionName: list_slice_subscript
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyList_Check
    - PySlice_Unpack
    - assert
    - list_slice_wrap
    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:3684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3685
      start: 3681
    functionDepth: 8
    functionLinenumber: 3681
    functionLinenumberEnd: 3685
    functionName: _PyList_SliceSubscript
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 1
    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:3691,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/listobject.c:3693,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:3694,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:3697,1
    - Dst: list_item
      Src: /src/cpython/Objects/listobject.c:3698,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/listobject.c:3700,1
    - Dst: list_slice_subscript
      Src: /src/cpython/Objects/listobject.c:3701,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/listobject.c:3704,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:3706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - _self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3709
      start: 3687
    functionDepth: 8
    functionLinenumber: 3687
    functionLinenumberEnd: 3709
    functionName: list_subscript
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - list_item
    - PyNumber_AsSsize_t
    - _PyIndex_Check
    - PyErr_Occurred
    - PyErr_Format
    - PyList_GET_SIZE
    - 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:3716,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3716,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: 3726
      start: 3711
    functionDepth: 1
    functionLinenumber: 3711
    functionLinenumberEnd: 3726
    functionName: adjust_slice_indexes
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PySlice_AdjustIndices
    - Py_SIZE
    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:3731,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/listobject.c:3734,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/listobject.c:3735,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:3736,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:3739,1
    - Dst: list_ass_item_lock_held
      Src: /src/cpython/Objects/listobject.c:3740,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/listobject.c:3742,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/listobject.c:3745,1
    - Dst: adjust_slice_indexes
      Src: /src/cpython/Objects/listobject.c:3756,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3760,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:3772,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:3774,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/listobject.c:3789,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3791,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3792,1
    - Dst: ptr_wise_atomic_memmove
      Src: /src/cpython/Objects/listobject.c:3795,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3799,1
    - Dst: ptr_wise_atomic_memmove
      Src: /src/cpython/Objects/listobject.c:3800,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3801,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Objects/listobject.c:3804,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3804,1
    - Dst: list_resize
      Src: /src/cpython/Objects/listobject.c:3805,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3808,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:3810,1
    - Dst: list_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3823,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/listobject.c:3824,1
    - Dst: PySequence_Fast
      Src: /src/cpython/Objects/listobject.c:3827,1
    - Dst: adjust_slice_indexes
      Src: /src/cpython/Objects/listobject.c:3834,1
    - Dst: list_ass_slice_lock_held
      Src: /src/cpython/Objects/listobject.c:3838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3839,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:3843,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/listobject.c:3844,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:3848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3855,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/listobject.c:3860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3862,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/listobject.c:3863,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/listobject.c:3868,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:3872,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/listobject.c:3873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3877,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/listobject.c:3880,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:3881,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/listobject.c:3887,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/listobject.c:3889,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 91
    argCount: 3
    argNames:
    - _self
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3728
    functionDepth: 10
    functionLinenumber: 3728
    functionLinenumberEnd: 3892
    functionName: list_ass_subscript_lock_held
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PySequence_Fast
    - PyList_GET_ITEM
    - _PyIndex_Check
    - adjust_slice_indexes
    - PyErr_Occurred
    - Py_TYPE
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_NoMemory
    - list_slice_lock_held
    - PyMem_Free
    - PyMem_Malloc
    - Py_SET_SIZE
    - list_ass_item_lock_held
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_SIZE
    - list_ass_slice_lock_held
    - Py_DECREF
    - Py_NewRef
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast_ITEMS
    - PyNumber_AsSsize_t
    - ptr_wise_atomic_memmove
    - PySlice_Unpack
    - list_resize
    - PyErr_Format
    - PyList_GET_SIZE
    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:3899,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/listobject.c:3899,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:3900,1
    - Dst: list_ass_subscript_lock_held
      Src: /src/cpython/Objects/listobject.c:3901,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/listobject.c:3902,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3906,1
    - Dst: list_ass_subscript_lock_held
      Src: /src/cpython/Objects/listobject.c:3907,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/listobject.c:3908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3910
      start: 3894
    functionDepth: 11
    functionLinenumber: 3894
    functionLinenumberEnd: 3910
    functionName: list_ass_subscript
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION
    - list_ass_subscript_lock_held
    - Py_END_CRITICAL_SECTION2
    - PyList_CheckExact
    linkageType: ''
    returnType: int
    signature: int list_ass_subscript(PyObject *self, PyObject *item, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:3915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3912
    functionDepth: 0
    functionLinenumber: 3912
    functionLinenumberEnd: 3917
    functionName: list_iteritem
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_get_item_ref
    linkageType: ''
    returnType: _PyObjectIndexPair
    signature: _PyObjectIndexPair list_iteritem(PyObject *obj, Py_ssize_t index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:4030,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/listobject.c:4031,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/listobject.c:4034,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/listobject.c:4036,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:4042,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/listobject.c:4043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4045
      start: 4027
    functionDepth: 1
    functionLinenumber: 4027
    functionLinenumberEnd: 4045
    functionName: list_iter
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - PyList_Check
    - _Py_FREELIST_POP
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_iter(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/listobject.c:4051,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:4052,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:4053,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/listobject.c:4053,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/listobject.c:4054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(self, &PyListIter_Type))
      pos:
        line_end: 4052
        line_start: 4052
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 4055
      start: 4047
    functionDepth: 1
    functionLinenumber: 4047
    functionLinenumberEnd: 4055
    functionName: listiter_dealloc
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - Py_XDECREF
    - assert
    - _PyObject_GC_UNTRACK
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void listiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/listobject.c:4060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4057
    functionDepth: 1
    functionLinenumber: 4057
    functionLinenumberEnd: 4062
    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:4068,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:4073,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4076,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:4080,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4084,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4086
      start: 4064
    functionDepth: 1
    functionLinenumber: 4064
    functionLinenumberEnd: 4086
    functionName: listiter_next
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - list_get_item_ref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_next(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:4091,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4093,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4095,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/listobject.c:4097,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/listobject.c:4099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 4090
        line_start: 4090
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 4100
      start: 4088
    functionDepth: 1
    functionLinenumber: 4088
    functionLinenumberEnd: 4100
    functionName: listiter_len
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromSsize_t
    - assert
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyList_GET_SIZE
    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:4105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4106
      start: 4102
    functionDepth: 1
    functionLinenumber: 4102
    functionLinenumberEnd: 4106
    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:4112,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:4113,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4118,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4119,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4123
      start: 4108
    functionDepth: 1
    functionLinenumber: 4108
    functionLinenumberEnd: 4123
    functionName: listiter_setstate
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyList_GET_SIZE
    - PyLong_AsSsize_t
    - PyErr_Occurred
    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:4192,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:4195,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:4195,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4196,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/listobject.c:4197,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/listobject.c:4198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts:
    - condition: (PyList_Check(self))
      pos:
        line_end: 4194
        line_start: 4194
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 4200
      start: 4186
    functionDepth: 1
    functionLinenumber: 4186
    functionLinenumberEnd: 4200
    functionName: list___reversed___impl
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyList_Check
    - assert
    - PyList_GET_SIZE
    - Py_NewRef
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___reversed___impl(PyListObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/listobject.c:4206,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/listobject.c:4207,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/listobject.c:4208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4209
      start: 4202
    functionDepth: 0
    functionLinenumber: 4202
    functionLinenumberEnd: 4209
    functionName: listreviter_dealloc
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void listreviter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/listobject.c:4214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4216
      start: 4211
    functionDepth: 1
    functionLinenumber: 4211
    functionLinenumberEnd: 4216
    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:4222,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4223,1
    - Dst: assert
      Src: /src/cpython/Objects/listobject.c:4229,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/listobject.c:4229,1
    - Dst: list_get_item_ref
      Src: /src/cpython/Objects/listobject.c:4230,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4232,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:4238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 4221
        line_start: 4221
        source_file: /src/cpython/Objects/listobject.c
    - condition: (PyList_Check(seq))
      pos:
        line_end: 4228
        line_start: 4228
        source_file: /src/cpython/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 4241
      start: 4218
    functionDepth: 1
    functionLinenumber: 4218
    functionLinenumberEnd: 4241
    functionName: listreviter_next
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_get_item_ref
    - PyList_Check
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - assert
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    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:4247,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4249,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/listobject.c:4251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4252
      start: 4243
    functionDepth: 1
    functionLinenumber: 4243
    functionLinenumberEnd: 4252
    functionName: listreviter_len
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyList_GET_SIZE
    - 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:4257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4258
      start: 4254
    functionDepth: 1
    functionLinenumber: 4254
    functionLinenumberEnd: 4258
    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:4264,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/listobject.c:4265,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4270,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/listobject.c:4271,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4275
      start: 4260
    functionDepth: 1
    functionLinenumber: 4260
    functionLinenumberEnd: 4275
    functionName: listreviter_setstate
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyList_GET_SIZE
    - PyLong_AsSsize_t
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_setstate(PyObject *self, PyObject *state)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/listobject.c:4290,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/listobject.c:4290,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4292,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/listobject.c:4294,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/listobject.c:4297,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/listobject.c:4297,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/listobject.c:4299,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/listobject.c:4301,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/listobject.c:4305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/listobject.c:4307,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/listobject.c:4310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - _it
    - forward
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4279
    functionDepth: 4
    functionLinenumber: 4279
    functionLinenumberEnd: 4311
    functionName: listiter_reduce_general
    functionSourceFile: /src/cpython/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - PyList_New
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _Py_ID
    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_New
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - Py_NewRef
    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:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    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:
    - PySeqIter_Check
    - PyErr_SetString
    - PySequence_GetItem
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - assert
    - Py_DECREF
    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:
    - _PyObject_HasLen
    - PyLong_FromLong
    - PyLong_FromSsize_t
    - PySequence_Size
    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:
    - Py_BuildValue
    - _PyEval_GetBuiltin
    - _Py_ID
    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:
    - PyLong_AsSsize_t
    - PyErr_Occurred
    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:
    - PyObject_GC_New
    - Py_NewRef
    - _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:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    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_RichCompareBool
    - Py_CLEAR
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - _PyObject_CallNoArgs
    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:
    - Py_BuildValue
    - _PyEval_GetBuiltin
    - _Py_ID
    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
    - PyObject_GC_Del
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    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:
    - PyCoro_CheckExact
    - _PyCoro_GetAwaitableIter
    - Py_SETREF
    - PyIter_Check
    - getter
    - PyErr_Format
    - assert
    - Py_DECREF
    - Py_TYPE
    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:
    - anextawaitableobject_CAST
    - _PyGen_SetStopIterationValue
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - anextawaitable_getiter
    - Py_TYPE
    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:
    - _PyGen_SetStopIterationValue
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - PyObject_CallMethod
    - 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:
    - PyObject_GC_New
    - Py_NewRef
    - _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:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    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_FromFormat
    - PyUnicode_Check
    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:
    - PyObject_TypeCheck
    - descr_name
    - PyErr_Format
    - Py_TYPE
    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_IsSubtype
    - PyType_Check
    - descr_name
    - PyDescr_TYPE
    - PyCMethod_New
    - PyErr_Format
    - 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
    - descr_name
    - PyCMethod_New
    - PyErr_Format
    - descr_check
    - PyCFunction_NewEx
    - Py_NewRef
    - 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:
    - descr_check
    - PyMember_GetOne
    - Py_NewRef
    - PySys_Audit
    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_get_trampoline_call
    - descr_name
    - PyDescr_TYPE
    - PyErr_Format
    - descr_check
    - Py_NewRef
    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:
    - descr_check
    - Py_NewRef
    - 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
    - assert
    - Py_TYPE
    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:
    - PyMember_SetOne
    - descr_setcheck
    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
    - descr_set_trampoline_call
    - PyDescr_TYPE
    - 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:
    - assert
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - descr_check
    - PyTuple_GET_SIZE
    - _PyObject_FunctionStr
    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
    - PyTuple_FromArray
    - method_enter_call
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - Py_DECREF
    - 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:
    - PyTuple_FromArray
    - _PyStack_AsDict
    - method_enter_call
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - Py_XDECREF
    - Py_DECREF
    - _PyCFunctionWithKeywords_TrampolineCall
    - PyTuple_GET_SIZE
    - 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:
    - meth
    - method_enter_call
    - _Py_LeaveRecursiveCall
    - _PyThreadState_GET
    - 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:
    - meth
    - method_enter_call
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - 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:
    - meth
    - method_enter_call
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - 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
    - PyVectorcall_NARGS
    - method_enter_call
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - PyErr_Format
    - Py_DECREF
    - _PyObject_FunctionStr
    - 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
    - PyVectorcall_NARGS
    - method_enter_call
    - _PyThreadState_GET
    - _Py_LeaveRecursiveCallTstate
    - PyErr_Format
    - Py_DECREF
    - _PyObject_FunctionStr
    - 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_ITEM
    - classmethod_get
    - descr_name
    - PyDescr_TYPE
    - _PyTuple_ITEMS
    - PyErr_Format
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyObject_VectorcallDict
    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:
    - _Py_FUNC_CAST
    - PyDict_GET_SIZE
    - PyDict_Check
    - 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:
    - PyTuple_GET_ITEM
    - assert
    - descr_name
    - _PyObject_RealIsSubclass
    - wrapperdescr_raw_call
    - PyDescr_TYPE
    - PyErr_Format
    - PyTuple_Check
    - Py_DECREF
    - PyTuple_GetSlice
    - PyTuple_GET_SIZE
    - Py_TYPE
    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:
    - PyErr_SetString
    - PyObject_GetAttr
    - PyUnicode_Check
    - PyUnicode_FromFormat
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    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:
    - calculate_qualname
    - Py_XNewRef
    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
    - PyDescr_TYPE
    - Py_BuildValue
    - PyDescr_NAME
    - _Py_ID
    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:
    - _PyObject_SetDeferredRefcount
    - PyUnicode_InternFromString
    - Py_SETREF
    - PyType_GenericAlloc
    - Py_XNewRef
    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:
    - descr_new
    - PyErr_SetString
    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:
    - PyObject_TypeCheck
    - PyNumber_Or
    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:
    - PyErr_Format
    - Py_TYPE
    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:
    - PyDict_CheckExact
    - PyDict_Contains
    - PySequence_Contains
    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
    - PyObject_VectorcallMethod
    - _Py_ID
    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:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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_UNTRACK
    - PyObject_GC_Del
    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:
    - PyMapping_Check
    - PyList_Check
    - PyErr_Format
    - PyTuple_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:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_NewRef
    - mappingproxy_check_mapping
    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:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_NewRef
    - mappingproxy_check_mapping
    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:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_XDECREF
    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:
    - _Py_ID
    - PyDescr_NAME
    - _PyEval_GetBuiltin
    - Py_BuildValue
    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_TypeCheck
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _PyObject_RealIsSubclass
    - PyDescr_TYPE
    - assert
    - Py_NewRef
    - Py_TYPE
    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_ITEM
    - Py_XSETREF
    - PyErr_Format
    - PyTuple_GET_SIZE
    - Py_XNewRef
    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:
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    - Py_TYPE
    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_ID
    - Py_NewRef
    - 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:
    - PyType_GetQualName
    - PyErr_SetString
    - PyErr_Format
    - Py_XDECREF
    - property_name
    - Py_NewRef
    - Py_TYPE
    - PyObject_CallOneArg
    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:
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - PyObject_Vectorcall
    - PyType_GetQualName
    - PyErr_SetString
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - property_name
    - Py_TYPE
    - PyObject_CallOneArg
    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_Type
    - Py_XSETREF
    - PyObject_CallFunctionObjArgs::PyObject_CallFunctionObjArgs
    - Py_DECREF
    - Py_XNewRef
    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:
    - PyObject_SetAttr
    - Py_IS_TYPE
    - Py_XSETREF
    - PyObject_GetOptionalAttr
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    - _Py_ID
    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
    - property_name
    - PyErr_SetString
    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:
    - _propertyobject_CAST
    - Py_XSETREF
    - Py_XNewRef
    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:
    - _propertyobject_CAST
    - _PyObject_IsAbstract
    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: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    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: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    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:115,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: _PyUnicode_UTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - _PyCompactUnicodeObject_CAST
    linkageType: ''
    returnType: char
    signature: char * _PyUnicode_UTF8(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:120,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:120,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:121,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:122,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(op))
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: PyUnicode_UTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_UTF8
    - _PyUnicode_CHECK
    - PyUnicode_IS_COMPACT_ASCII
    - assert
    - _PyASCIIObject_CAST
    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:131,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - utf8
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: PyUnicode_SET_UTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _PyCompactUnicodeObject_CAST
    linkageType: ''
    returnType: void
    signature: void PyUnicode_SET_UTF8(PyObject *op, char *utf8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:136,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:136,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:137,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:138,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(op))
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyCompactUnicodeObject_CAST
    - _PyUnicode_CHECK
    - PyUnicode_IS_COMPACT_ASCII
    - assert
    - _PyASCIIObject_CAST
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    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: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    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: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    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: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    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:161,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - hash
    argTypes:
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: PyUnicode_SET_HASH
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyASCIIObject_CAST
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    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: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    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:169,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:169,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:170,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:170,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:171,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(op))
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!PyUnicode_IS_COMPACT_ASCII(op))
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: _PyUnicode_SHARE_UTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - _PyUnicode_UTF8
    - _PyUnicode_CHECK
    - 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:178,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:179,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:180,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 181
    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:
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/unicodeobject.c:204,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/unicodeobject.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: _PyUnicode_GetEmpty
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_STR
    - _Py_DECLARE_STR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_GetEmpty(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/unicodeobject.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    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:225,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:225,1
    - Dst: _Py_hashtable_len
      Src: /src/cpython/Objects/unicodeobject.c:226,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: _PyUnicode_InternedSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_len
    - PyDict_GET_SIZE
    - get_interned_dict
    - _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:233,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:233,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/unicodeobject.c:242,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:243,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:243,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:244,1
    - Dst: _Py_hashtable_len
      Src: /src/cpython/Objects/unicodeobject.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyUnicode_CHECK_INTERNED(key) != SSTATE_INTERNED_IMMORTAL_STATIC)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: _PyUnicode_InternedSize_Immortal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_len
    - PyUnicode_CHECK_INTERNED
    - get_interned_dict
    - PyDict_Next
    - _PyInterpreterState_GET
    - 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:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    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:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 270
    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:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 287
    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:292,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:292,1
    - Dst: has_shared_intern_dict
      Src: /src/cpython/Objects/unicodeobject.c:294,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:295,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/unicodeobject.c:295,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unicodeobject.c:296,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/unicodeobject.c:299,1
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/unicodeobject.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (get_interned_dict(interp) == NULL)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 11
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: init_interned_dict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _Py_INTERP_CACHED_OBJECT
    - get_interned_dict
    - has_shared_intern_dict
    - assert
    - _PyInterpreterState_Main
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int init_interned_dict(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:311,1
    - Dst: has_shared_intern_dict
      Src: /src/cpython/Objects/unicodeobject.c:313,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Objects/unicodeobject.c:315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:317,1
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/unicodeobject.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 308
    functionDepth: 10
    functionLinenumber: 308
    functionLinenumberEnd: 320
    functionName: clear_interned_dict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    - _Py_INTERP_CACHED_OBJECT
    - get_interned_dict
    - has_shared_intern_dict
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void clear_interned_dict(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:325,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Objects/unicodeobject.c:328,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:338,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:339,1
    - Dst: _PyUnicode_InitStaticStrings
      Src: /src/cpython/Objects/unicodeobject.c:349,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:352,1
    - Dst: _PyUnicode_InternStatic
      Src: /src/cpython/Objects/unicodeobject.c:353,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:354,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:354,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:357,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:357,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/unicodeobject.c:357,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:360,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:360,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:360,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (INTERNED_STRINGS == NULL)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (s == LATIN1(i))
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(&_Py_STR(empty), 1))
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(LATIN1(i), 1))
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 364
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 364
    functionName: init_global_interned_strings
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_InternStatic
    - _PyStatus_OK
    - _PyUnicode_InitStaticStrings
    - LATIN1
    - _Py_STR
    - PyErr_Clear
    - _PyStatus_ERR
    - assert
    - _PyUnicode_CheckConsistency
    - _Py_hashtable_new_full
    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:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 372
    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: 378
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: _Py_RETURN_UNICODE_EMPTY
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_RETURN_UNICODE_EMPTY()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:471,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:474,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:477,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:480,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:483,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:486,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:489,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - errors
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 493
    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:499,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:502,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:505,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:508,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:511,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:514,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/unicodeobject.c:517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - errors
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 521
    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:531,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:534,1
    - Dst: _PyInterpreterState_GetFinalizing
      Src: /src/cpython/Objects/unicodeobject.c:550,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:558,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:559,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:560,1
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Objects/unicodeobject.c:562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:566,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:571,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:572,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:573,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:574,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:575,1
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Objects/unicodeobject.c:577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:581,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 584
    functionName: unicode_check_encoding_errors
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - strcmp
    - _PyInterpreterState_GetConfig
    - PyCodec_LookupError
    - _PyInterpreterState_GET
    - _PyInterpreterState_GetFinalizing
    - _PyCodec_Lookup
    - Py_DECREF
    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:601,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:602,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:602,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:604,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:608,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:611,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:616,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:619,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:620,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:620,1
    - Dst: _PyUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:623,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:626,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:629,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:630,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:632,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:632,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:633,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:636,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:636,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:640,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:641,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:652,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:655,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:661,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:662,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:665,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:668,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:669,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:672,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:673,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:675,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:675,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:683,1
    - Dst: CHECK_IF_GIL
      Src: /src/cpython/Objects/unicodeobject.c:692,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:692,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:696,1
    - Dst: CHECK_IF_GIL
      Src: /src/cpython/Objects/unicodeobject.c:697,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:697,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:700,1
    - Dst: CHECK_IF_FT
      Src: /src/cpython/Objects/unicodeobject.c:701,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:701,1
    - Dst: CHECK
      Src: /src/cpython/Objects/unicodeobject.c:704,1
    - Dst: CHECK_IF_FT
      Src: /src/cpython/Objects/unicodeobject.c:705,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:705,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:708,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 715
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 715
    functionName: _PyUnicode_CheckConsistency
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - _PyUnicodeObject_CAST
    - PyUnicode_DATA
    - _PyUnicode_UTF8
    - PyUnicode_READ
    - PyUnicode_CHECK_INTERNED
    - CHECK_IF_GIL
    - _PyCompactUnicodeObject_CAST
    - PyUnicode_Check
    - CHECK_IF_FT
    - Py_UNREACHABLE
    - CHECK
    - _Py_IsImmortal
    - assert
    - _PyASCIIObject_CAST
    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: 592
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 592
    functionName: CHECK
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 594
    functionName: CHECK_IF_GIL
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_GIL(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 595
    functionName: CHECK_IF_FT
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_FT(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 597
    functionName: CHECK_IF_GIL
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_GIL(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: CHECK_IF_FT
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_FT(expr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:720,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:720,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:722,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:726,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:732,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:734,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:738,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:744,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:744,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 746
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 746
    functionName: _PyUnicode_Result
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - _PyUnicode_GetEmpty
    - LATIN1
    - _PyUnicode_CHECK
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    - _PyUnicode_CheckConsistency
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_Result(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:753,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/unicodeobject.c:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 758
    functionName: unicode_result_unchanged
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_Copy
    - PyUnicode_CheckExact
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_result_unchanged(PyObject *unicode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:771,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:772,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:779,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:785,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:789,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/unicodeobject.c:796,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:803,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 5
    argNames:
    - writer
    - str
    - unicode
    - collstart
    - collend
    argTypes:
    - PyBytesWriter*
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 784
        line_start: 784
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 825
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 825
    functionName: backslashreplace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyErr_SetString
    - PyBytesWriter_GrowAndUpdatePointer
    - 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:838,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:839,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:846,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:860,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:864,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/unicodeobject.c:871,1
    - Dst: sprintf
      Src: /src/cpython/Objects/unicodeobject.c:878,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:878,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    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: 859
        line_start: 859
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 885
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 885
    functionName: xmlcharrefreplace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyErr_SetString
    - PyBytesWriter_GrowAndUpdatePointer
    - assert
    - sprintf
    linkageType: ''
    returnType: char
    signature: "char *\nxmlcharrefreplace(PyBytesWriter *writer, char *str,\n                  PyObject
      *unicode, Py_ssize_t collstart, Py_ssize_t collend)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mask
    - ','
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 910
    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: 914
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 914
    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:937,1
    - Dst: BLOOM_UPDATE
      Src: /src/cpython/Objects/unicodeobject.c:940,1
    - Dst: BLOOM_UPDATE
      Src: /src/cpython/Objects/unicodeobject.c:943,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - kind
    - ptr
    - len
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 951
    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: 929
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 929
    functionName: BLOOM_UPDATE
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOOM_UPDATE(TYPE, MASK, PTR, LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 956
    functionName: 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:1013,1
    - Dst: ucs1lib_rfind_char
      Src: /src/cpython/Objects/unicodeobject.c:1015,1
    - Dst: ucs2lib_find_char
      Src: /src/cpython/Objects/unicodeobject.c:1020,1
    - Dst: ucs2lib_rfind_char
      Src: /src/cpython/Objects/unicodeobject.c:1022,1
    - Dst: ucs4lib_find_char
      Src: /src/cpython/Objects/unicodeobject.c:1025,1
    - Dst: ucs4lib_rfind_char
      Src: /src/cpython/Objects/unicodeobject.c:1027,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1029,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: 1031
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1031
    functionName: findchar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs1lib_find_char
    - ucs4lib_find_char
    - ucs2lib_rfind_char
    - ucs2lib_find_char
    - Py_UNREACHABLE
    - ucs4lib_rfind_char
    - ucs1lib_rfind_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:1043,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1044,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1045,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - unicode
    - old_length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1049
    functionName: unicode_fill_invalid
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_LENGTH
    - memset
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    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:1058,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1058,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:1062,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1062,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - unicode
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1065
    functionName: resize_copy
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_New
    - Py_MIN
    - PyUnicode_GET_LENGTH
    - PyUnicode_MAX_CHAR_VALUE
    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:1075,1
    - Dst: _PyUnicode_IsModifiable
      Src: /src/cpython/Objects/unicodeobject.c:1078,1
    - Dst: resize_copy
      Src: /src/cpython/Objects/unicodeobject.c:1079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:1083,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1086,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1086,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1088,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1089,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1095,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/cpython/Objects/unicodeobject.c:1100,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1101,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1101,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1102,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1103,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/unicodeobject.c:1106,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/unicodeobject.c:1108,1
    - Dst: PyObject_Realloc
      Src: /src/cpython/Objects/unicodeobject.c:1110,1
    - Dst: _Py_NewReferenceNoTotal
      Src: /src/cpython/Objects/unicodeobject.c:1112,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1113,1
    - Dst: _Py_NewReferenceNoTotal
      Src: /src/cpython/Objects/unicodeobject.c:1117,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1119,1
    - Dst: unicode_fill_invalid
      Src: /src/cpython/Objects/unicodeobject.c:1121,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:1123,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1123,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1123,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1125,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:1125,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: 1085
        line_start: 1085
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 0))
      pos:
        line_end: 1124
        line_start: 1124
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1127
      start: 1067
    functionDepth: 5
    functionLinenumber: 1067
    functionLinenumberEnd: 1127
    functionName: _PyUnicode_ResizeCompact
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - unicode_fill_invalid
    - PyUnicode_IS_ASCII
    - _PyUnicode_UTF8
    - PyUnicode_SET_UTF8
    - assert
    - _PyUnicode_HAS_UTF8_MEMORY
    - PyUnicode_WRITE
    - PyUnicode_KIND
    - PyErr_NoMemory
    - PyUnicode_DATA
    - PyMem_Free
    - PyObject_Realloc
    - PyUnicode_IS_COMPACT
    - PyUnicode_SET_UTF8_LENGTH
    - _PyUnicode_IsModifiable
    - _PyReftracerTrack
    - Py_DECREF
    - _PyUnicode_CheckConsistency
    - resize_copy
    - _Py_ForgetReference
    - _Py_NewReferenceNoTotal
    - _PyUnicode_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_ResizeCompact(PyObject *unicode, Py_ssize_t length)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1132,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1132,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1133,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1133,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1140,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:1143,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1144,1
    - Dst: _PyUnicode_SHARE_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1145,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1148,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/cpython/Objects/unicodeobject.c:1153,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1155,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1155,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1156,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1157,1
    - Dst: PyObject_Realloc
      Src: /src/cpython/Objects/unicodeobject.c:1160,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1162,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:1165,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1167,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1168,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1170,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:1171,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1171,1
    - Dst: unicode_fill_invalid
      Src: /src/cpython/Objects/unicodeobject.c:1173,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1178,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1181,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:1181,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: 1131
        line_start: 1131
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (Py_REFCNT(unicode) == 1)
      pos:
        line_end: 1132
        line_start: 1132
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 0))
      pos:
        line_end: 1180
        line_start: 1180
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1183
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1183
    functionName: resize_inplace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - unicode_fill_invalid
    - PyUnicode_KIND
    - PyErr_NoMemory
    - _PyUnicode_DATA_ANY
    - _PyUnicode_UTF8
    - PyObject_Realloc
    - PyUnicode_SET_UTF8
    - Py_REFCNT
    - PyUnicode_IS_COMPACT
    - PyUnicode_SET_UTF8_LENGTH
    - PyMem_Free
    - assert
    - _PyUnicode_LENGTH
    - _PyUnicode_CheckConsistency
    - _PyUnicode_HAS_UTF8_MEMORY
    - _PyUnicode_SHARE_UTF8
    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:1190,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1192,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1195,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1207,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1220
    functionName: unicode_kind_name
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_COMPACT
    - PyUnicode_KIND
    - PyUnicode_IS_ASCII
    linkageType: ''
    returnType: char
    signature: 'char *

      unicode_kind_name(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1225,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1227
    functionName: _PyUnicode_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_UTF8
    - _PyObject_CAST
    linkageType: ''
    returnType: char
    signature: char *_PyUnicode_utf8(void *unicode_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1230,1
    - Dst: _PyUnicode_COMPACT_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1232
    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:1234,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1235,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1236,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1236,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1237,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1237,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1238,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1238,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1239,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1239,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1240,1
    - Dst: _PyUnicode_COMPACT_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1240,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1242
    functionName: _PyUnicode_data
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - _PyUnicode_COMPACT_DATA
    - _PyObject_CAST
    - _PyCompactUnicodeObject_CAST
    - PyUnicode_IS_COMPACT
    - PyUnicode_IS_COMPACT_ASCII
    - printf
    - _PyASCIIObject_CAST
    linkageType: ''
    returnType: void
    signature: void *_PyUnicode_data(void *unicode_raw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1247,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1248,1
    - Dst: _PyUnicodeObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1249,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1261,1
    - Dst: unicode_kind_name
      Src: /src/cpython/Objects/unicodeobject.c:1261,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1264,1
    - Dst: printf
      Src: /src/cpython/Objects/unicodeobject.c:1266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1244
    functionDepth: 2
    functionLinenumber: 1244
    functionLinenumberEnd: 1267
    functionName: _PyUnicode_Dump
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeObject_CAST
    - unicode_kind_name
    - _PyCompactUnicodeObject_CAST
    - printf
    - _PyASCIIObject_CAST
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_Dump(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:1276,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1315,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1320,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:1326,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:1328,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/unicodeobject.c:1330,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1337,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:1338,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1339,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1340,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1341,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1342,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1343,1
    - Dst: unicode_fill_invalid
      Src: /src/cpython/Objects/unicodeobject.c:1361,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1363,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:1363,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: 1362
        line_start: 1362
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1365
      start: 1271
    functionDepth: 3
    functionLinenumber: 1271
    functionLinenumberEnd: 1365
    functionName: PyUnicode_New
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 12
    functionsReached:
    - unicode_fill_invalid
    - PyErr_NoMemory
    - _PyUnicode_GetEmpty
    - _PyObject_Init
    - PyErr_SetString
    - _PyUnicode_HASH
    - _PyUnicode_STATE
    - PyObject_Malloc
    - assert
    - _PyUnicode_LENGTH
    - _PyUnicode_CheckConsistency
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_IsModifiable
      Src: /src/cpython/Objects/unicodeobject.c:1370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1376
    functionName: unicode_check_modifiable
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyUnicode_IsModifiable
    linkageType: ''
    returnType: int
    signature: int unicode_check_modifiable(PyObject *unicode)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1387,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1388,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1389,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1390,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1390,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1391,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1391,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1393,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1393,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1399,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1400,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1400,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1402,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1403,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1404,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1405,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1409,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1409,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1411,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:1415,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1416,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1423,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:1423,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:1428,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:1433,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1440,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1442,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1443,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1444,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1450,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1452,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1453,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1454,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1460,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1462,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1463,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1464,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1468,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1468,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1468,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1474,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1476,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1477,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1478,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1484,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1486,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1487,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1488,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1494,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1496,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1497,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1498,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1502,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:1506,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:1511,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:1514,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: (0 <= from_start)
      pos:
        line_end: 1387
        line_start: 1387
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(from))
      pos:
        line_end: 1389
        line_start: 1389
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (to == NULL || PyUnicode_Check(to))
      pos:
        line_end: 1392
        line_start: 1392
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (to_start + how_many <= PyUnicode_GET_LENGTH(to))
      pos:
        line_end: 1399
        line_start: 1399
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= how_many)
      pos:
        line_end: 1386
        line_start: 1386
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (from_start + how_many <= PyUnicode_GET_LENGTH(from))
      pos:
        line_end: 1390
        line_start: 1390
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (to != NULL)
      pos:
        line_end: 1398
        line_start: 1398
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_MAX_CHAR_VALUE(from) > PyUnicode_MAX_CHAR_VALUE(to))
      pos:
        line_end: 1467
        line_start: 1467
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= to_start)
      pos:
        line_end: 1388
        line_start: 1388
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= to_maxchar)
      pos:
        line_end: 1415
        line_start: 1415
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1519
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1519
    functionName: _copy_characters
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - PyUnicode_READ
    - _PyUnicode_CONVERT_BYTES
    - PyUnicode_Check
    - Py_UNREACHABLE
    - ucs1lib_find_max_char
    - PyUnicode_GET_LENGTH
    - memcpy
    - assert
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - PyUnicode_MAX_CHAR_VALUE
    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:1526,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: 1527
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1527
    functionName: _PyUnicode_FastCopyCharacters
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    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:1536,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1536,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:1537,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1541,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1542,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1545,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1546,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:1550,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:1553,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1553,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1554,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:1555,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1558,1
    - Dst: unicode_check_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:1565,1
    - Dst: _copy_characters
      Src: /src/cpython/Objects/unicodeobject.c:1568,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:1570,1
    - Dst: unicode_kind_name
      Src: /src/cpython/Objects/unicodeobject.c:1573,1
    - Dst: unicode_kind_name
      Src: /src/cpython/Objects/unicodeobject.c:1574,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: 1578
      start: 1529
    functionDepth: 2
    functionLinenumber: 1529
    functionLinenumberEnd: 1578
    functionName: PyUnicode_CopyCharacters
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - unicode_kind_name
    - unicode_check_modifiable
    - PyErr_SetString
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - Py_MIN
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - _copy_characters
    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:1592,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:1598,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:1600,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/unicodeobject.c:1602,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:1615,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: 1591
        line_start: 1591
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1623
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1623
    functionName: find_maxchar_surrogates
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - Py_UNICODE_IS_LOW_SURROGATE
    - PyErr_Format
    - 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:1629,1
    - Dst: unicode_is_singleton
      Src: /src/cpython/Objects/unicodeobject.c:1629,1
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Objects/unicodeobject.c:1630,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1633,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1639,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:1641,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1644,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1652,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1652,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1653,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:1656,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:1656,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:1657,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:1657,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:1659,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:1660,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1661,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/unicodeobject.c:1663,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/unicodeobject.c:1665,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:1673,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:1674,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1680,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:1682,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1686,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1688,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1688,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:1689,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:1692,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:1692,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1698,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:1700,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/cpython/Objects/unicodeobject.c:1703,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1704,1
    - Dst: _PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:1704,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1706,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:1706,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1707,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:1707,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:1710,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (popped == unicode)
      pos:
        line_end: 1685
        line_start: 1685
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (Py_REFCNT(unicode) == 1)
      pos:
        line_end: 1687
        line_start: 1687
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (Py_REFCNT(unicode) == 0)
      pos:
        line_end: 1651
        line_start: 1651
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (interned != NULL)
      pos:
        line_end: 1660
        line_start: 1660
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1711
      start: 1625
    functionDepth: 8
    functionLinenumber: 1625
    functionLinenumberEnd: 1711
    functionName: unicode_dealloc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_UTF8
    - _PyThreadState_GET
    - assert
    - _PyUnicode_HAS_UTF8_MEMORY
    - _Py_FatalRefcountError
    - Py_TYPE
    - Py_SET_REFCNT
    - _PyUnicode_DATA_ANY
    - Py_UNREACHABLE
    - PyMem_Free
    - unicode_is_finalizing
    - PyDict_Pop
    - _PyUnicode_STATE
    - Py_REFCNT
    - PyUnicode_IS_COMPACT
    - _Py_IncRefTotal
    - get_interned_dict
    - _PyInterpreterState_GET
    - _Py_DecRefTotal
    - _Py_SetImmortal
    - unicode_is_singleton
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void unicode_dealloc(PyObject *unicode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_STR
      Src: /src/cpython/Objects/unicodeobject.c:1717,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:1721,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:1723,1
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:1724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1729
    functionName: unicode_is_singleton
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_STR
    - _PyASCIIObject_CAST
    - PyUnicode_READ_CHAR
    - LATIN1
    linkageType: ''
    returnType: int
    signature: int unicode_is_singleton(PyObject *unicode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1735,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:1735,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/unicodeobject.c:1736,1
    - Dst: PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:1738,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:1740,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:1742,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1746,1
    - Dst: unicode_is_singleton
      Src: /src/cpython/Objects/unicodeobject.c:1746,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 1734
        line_start: 1734
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!unicode_is_singleton(unicode))
      pos:
        line_end: 1745
        line_start: 1745
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1749
      start: 1732
    functionDepth: 2
    functionLinenumber: 1732
    functionLinenumberEnd: 1749
    functionName: _PyUnicode_IsModifiable
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_CheckExact
    - _PyUnicode_CHECK
    - PyUnicode_HASH
    - assert
    - unicode_is_singleton
    - _PyObject_IsUniquelyReferenced
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsModifiable(PyObject *unicode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1757,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1760,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1761,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1761,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1762,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:1764,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:1769,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:1770,1
    - Dst: _PyUnicode_IsModifiable
      Src: /src/cpython/Objects/unicodeobject.c:1774,1
    - Dst: resize_copy
      Src: /src/cpython/Objects/unicodeobject.c:1775,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:1778,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:1782,1
    - Dst: _PyUnicode_ResizeCompact
      Src: /src/cpython/Objects/unicodeobject.c:1783,1
    - Dst: resize_inplace
      Src: /src/cpython/Objects/unicodeobject.c:1789,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: 1756
        line_start: 1756
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (unicode != NULL)
      pos:
        line_end: 1759
        line_start: 1759
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(unicode))
      pos:
        line_end: 1760
        line_start: 1760
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (0 <= length)
      pos:
        line_end: 1761
        line_start: 1761
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1790
      start: 1751
    functionDepth: 6
    functionLinenumber: 1751
    functionLinenumberEnd: 1790
    functionName: unicode_resize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - resize_copy
    - _PyUnicode_GetEmpty
    - resize_inplace
    - Py_SETREF
    - PyUnicode_Check
    - PyUnicode_IS_COMPACT
    - _PyUnicode_ResizeCompact
    - _PyUnicode_IsModifiable
    - 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:1797,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:1801,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:1803,1
    - Dst: unicode_resize
      Src: /src/cpython/Objects/unicodeobject.c:1806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - p_unicode
    - length
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1792
    functionDepth: 1
    functionLinenumber: 1792
    functionLinenumberEnd: 1807
    functionName: PyUnicode_Resize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyErr_BadInternalCall
    - unicode_resize
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Resize(PyObject **p_unicode, Py_ssize_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS1
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1814
    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:1821,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:1824,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:1827,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1831,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1831,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1832,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1833,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1835,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1835,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1836,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1838,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:1838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 1820
        line_start: 1820
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) != PyUnicode_1BYTE_KIND)
      pos:
        line_end: 1830
        line_start: 1830
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 1834
        line_start: 1834
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 1837
        line_start: 1837
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1840
      start: 1816
    functionDepth: 4
    functionLinenumber: 1816
    functionLinenumberEnd: 1840
    functionName: unicode_char
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_CheckConsistency
    - PyUnicode_KIND
    - get_latin1_char
    - PyUnicode_New
    - assert
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_char(Py_UCS4 ch)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1850,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:1855,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:1857,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1872,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:1873,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:1875,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/unicodeobject.c:1877,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1885,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:1887,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:1888,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:1893,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: 1871
        line_start: 1871
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ucs4_out == ucs4_end)
      pos:
        line_end: 1884
        line_start: 1884
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (num_surrogates == 0)
      pos:
        line_end: 1886
        line_start: 1886
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1895
      start: 1843
    functionDepth: 1
    functionLinenumber: 1843
    functionLinenumberEnd: 1895
    functionName: unicode_write_widechar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_HIGH_SURROGATE
    - _PyUnicode_CONVERT_BYTES
    - Py_UNICODE_JOIN_SURROGATES
    - Py_UNREACHABLE
    - Py_UNICODE_IS_LOW_SURROGATE
    - memcpy
    - 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:1906,1
    - Dst: wcslen
      Src: /src/cpython/Objects/unicodeobject.c:1911,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:1919,1
    - Dst: _Py_LocaleUsesNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:1924,1
    - Dst: _Py_DecodeNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:1925,1
    - Dst: _PyUnicode_FromUCS4
      Src: /src/cpython/Objects/unicodeobject.c:1929,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1930,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:1938,1
    - Dst: find_maxchar_surrogates
      Src: /src/cpython/Objects/unicodeobject.c:1942,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:1946,1
    - Dst: unicode_write_widechar
      Src: /src/cpython/Objects/unicodeobject.c:1950,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:1950,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:1950,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:1953,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1898
    functionDepth: 4
    functionLinenumber: 1898
    functionLinenumberEnd: 1954
    functionName: PyUnicode_FromWideChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 62
    functionsReached:
    - _Py_LocaleUsesNonUnicodeWchar
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_KIND
    - get_latin1_char
    - PyUnicode_DATA
    - PyErr_BadInternalCall
    - _Py_DecodeNonUnicodeWchar
    - PyUnicode_New
    - find_maxchar_surrogates
    - _PyUnicode_FromUCS4
    - PyMem_Free
    - unicode_result
    - unicode_write_widechar
    - wcslen
    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:1965,1
    - Dst: _Py_LocaleUsesNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:1975,1
    - Dst: _Py_DecodeNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:1976,1
    - Dst: PyUnicodeWriter_WriteUCS4
      Src: /src/cpython/Objects/unicodeobject.c:1981,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:1982,1
    - Dst: find_maxchar_surrogates
      Src: /src/cpython/Objects/unicodeobject.c:1989,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:1994,1
    - Dst: unicode_write_widechar
      Src: /src/cpython/Objects/unicodeobject.c:2000,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: 2004
      start: 1957
    functionDepth: 2
    functionLinenumber: 1957
    functionLinenumberEnd: 2004
    functionName: PyUnicodeWriter_WriteWideChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_LocaleUsesNonUnicodeWchar
    - _PyUnicodeWriter_Prepare
    - _Py_DecodeNonUnicodeWchar
    - find_maxchar_surrogates
    - PyMem_Free
    - PyUnicodeWriter_WriteUCS4
    - unicode_write_widechar
    - wcslen
    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:2011,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:2016,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2019,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:2023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2024
    functionName: PyUnicode_FromStringAndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 32
    functionsReached:
    - PyUnicode_DecodeUTF8Stateful
    - PyErr_SetString
    - _PyUnicode_GetEmpty
    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:2029,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2031,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:2034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - u
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2026
    functionDepth: 1
    functionLinenumber: 2026
    functionLinenumberEnd: 2035
    functionName: PyUnicode_FromString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 194
    functionsReached:
    - PyUnicode_DecodeUTF8Stateful
    - PyErr_SetString
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromString(const char *u)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/unicodeobject.c:2041,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:2042,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Objects/unicodeobject.c:2045,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Objects/unicodeobject.c:2049,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Objects/unicodeobject.c:2052,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2054,1
    - Dst: _Py_atomic_store_ssize
      Src: /src/cpython/Objects/unicodeobject.c:2057,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/unicodeobject.c:2059,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2061,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:2072,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:2072,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Objects/unicodeobject.c:2077,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2081,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/unicodeobject.c:2083,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:2085,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:2089,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/unicodeobject.c:2098,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: 2053
        line_start: 2053
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (index >= 0)
      pos:
        line_end: 2060
        line_start: 2060
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2101
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2101
    functionName: _PyUnicode_FromId
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyMutex_Unlock
    - PyErr_NoMemory
    - PyMem_Realloc
    - _Py_atomic_load_ssize
    - _PyInterpreterState_GET
    - Py_MAX
    - _Py_atomic_store_ssize
    - PyUnicode_DecodeUTF8Stateful
    - memset
    - strlen
    - assert
    - PyMutex_Lock
    - _PyUnicode_InternImmortal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromId(_Py_Identifier *id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:2109,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:2112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _Py_unicode_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2104
    functionDepth: 2
    functionLinenumber: 2104
    functionLinenumberEnd: 2116
    functionName: unicode_clear_identifiers
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    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:2128,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:2130,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2132,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2135,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2135,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2136,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2136,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: 2127
        line_start: 2127
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 2135
        line_start: 2135
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2138
      start: 2121
    functionDepth: 4
    functionLinenumber: 2121
    functionLinenumberEnd: 2138
    functionName: _PyUnicode_FromASCII
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - get_latin1_char
    - PyUnicode_New
    - memcpy
    - assert
    - _PyUnicode_CheckConsistency
    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:2151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - kind
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2140
    functionDepth: 1
    functionLinenumber: 2140
    functionLinenumberEnd: 2153
    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:2162,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2164,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:2166,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2169,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2170,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2173,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2173,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2174,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2174,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: 2163
        line_start: 2163
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2173
        line_start: 2173
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2176
      start: 2155
    functionDepth: 4
    functionLinenumber: 2155
    functionLinenumberEnd: 2176
    functionName: _PyUnicode_FromUCS1
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - _Py_RETURN_UNICODE_EMPTY
    - get_latin1_char
    - PyUnicode_New
    - ucs1lib_find_max_char
    - memcpy
    - assert
    - _PyUnicode_CheckConsistency
    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:2185,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2186,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:2188,1
    - Dst: ucs2lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2190,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2191,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2195,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2195,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2197,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2198,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2200,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2200,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: 2185
        line_start: 2185
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2199
        line_start: 2199
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2202
      start: 2178
    functionDepth: 5
    functionLinenumber: 2178
    functionLinenumberEnd: 2202
    functionName: _PyUnicode_FromUCS2
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - _PyUnicode_CheckConsistency
    - _Py_RETURN_UNICODE_EMPTY
    - unicode_char
    - _PyUnicode_CONVERT_BYTES
    - PyUnicode_New
    - ucs2lib_find_max_char
    - memcpy
    - assert
    - PyUnicode_2BYTE_DATA
    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:2211,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2212,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:2214,1
    - Dst: ucs4lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2216,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2217,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2221,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2222,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2224,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2225,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2227,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2227,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2228,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2228,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: 2211
        line_start: 2211
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2227
        line_start: 2227
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2230
      start: 2204
    functionDepth: 5
    functionLinenumber: 2204
    functionLinenumberEnd: 2230
    functionName: _PyUnicode_FromUCS4
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - ucs4lib_find_max_char
    - _Py_RETURN_UNICODE_EMPTY
    - unicode_char
    - _PyUnicode_CheckConsistency
    - _PyUnicode_CONVERT_BYTES
    - PyUnicode_New
    - memcpy
    - assert
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    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:2241,1
    - Dst: ucs4lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2250,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:2252,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2259,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2264,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2269,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: 2274
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2274
    functionName: PyUnicodeWriter_WriteUCS4
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - ucs4lib_find_max_char
    - _PyUnicodeWriter_Prepare
    - PyErr_SetString
    - _PyUnicode_CONVERT_BYTES
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int PyUnicodeWriter_WriteUCS4(PyUnicodeWriter *pub_writer,\n                          const
      Py_UCS4 *str,\n                          Py_ssize_t size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2281,1
    - Dst: _PyUnicode_FromUCS1
      Src: /src/cpython/Objects/unicodeobject.c:2286,1
    - Dst: _PyUnicode_FromUCS2
      Src: /src/cpython/Objects/unicodeobject.c:2288,1
    - Dst: _PyUnicode_FromUCS4
      Src: /src/cpython/Objects/unicodeobject.c:2290,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - kind
    - buffer
    - size
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2277
    functionDepth: 6
    functionLinenumber: 2277
    functionLinenumberEnd: 2295
    functionName: PyUnicode_FromKindAndData
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 16
    functionsReached:
    - PyErr_SetString
    - _PyUnicode_FromUCS4
    - _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:2303,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2304,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2304,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2305,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2307,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:2308,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:2313,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2316,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2317,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2322,1
    - Dst: ucs2lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2324,1
    - Dst: ucs4lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2326,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2328,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: 2302
        line_start: 2302
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (end <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (start <= end)
      pos:
        line_end: 2304
        line_start: 2304
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2330
      start: 2297
    functionDepth: 1
    functionLinenumber: 2297
    functionLinenumberEnd: 2330
    functionName: _PyUnicode_FindMaxChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - ucs4lib_find_max_char
    - PyUnicode_KIND
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - Py_UNREACHABLE
    - ucs2lib_find_max_char
    - ucs1lib_find_max_char
    - PyUnicode_GET_LENGTH
    - assert
    - PyUnicode_MAX_CHAR_VALUE
    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:2343,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:2345,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2348,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2349,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2351,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2352,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2357,1
    - Dst: ucs2lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2358,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2363,1
    - Dst: ucs4lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:2364,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2369,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2371,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:2373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2374,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - p_unicode
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (p_unicode != NULL)
      pos:
        line_end: 2342
        line_start: 2342
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2376
      start: 2335
    functionDepth: 4
    functionLinenumber: 2335
    functionLinenumberEnd: 2376
    functionName: unicode_adjust_maxchar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - ucs4lib_find_max_char
    - PyUnicode_KIND
    - PyUnicode_IS_ASCII
    - _PyUnicode_FastCopyCharacters
    - Py_UNREACHABLE
    - PyUnicode_New
    - ucs2lib_find_max_char
    - ucs1lib_find_max_char
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    linkageType: ''
    returnType: void
    signature: void unicode_adjust_maxchar(PyObject **p_unicode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:2384,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:2385,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2389,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:2390,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:2390,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2393,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2393,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2393,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2395,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2395,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2395,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:2396,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2397,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:2397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_KIND(copy) == PyUnicode_KIND(unicode))
      pos:
        line_end: 2392
        line_start: 2392
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(copy, 1))
      pos:
        line_end: 2396
        line_start: 2396
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2399
      start: 2378
    functionDepth: 4
    functionLinenumber: 2378
    functionLinenumberEnd: 2399
    functionName: _PyUnicode_Copy
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - memcpy
    - assert
    - _PyUnicode_CheckConsistency
    - PyUnicode_MAX_CHAR_VALUE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_Copy(PyObject *unicode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2410,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/unicodeobject.c:2413,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:2415,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2416,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2417,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/unicodeobject.c:2424,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:2426,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2428,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2435,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2436,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2444,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: 2409
        line_start: 2409
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (skind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2415
        line_start: 2415
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (skind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2434
        line_start: 2434
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2447
      start: 2405
    functionDepth: 1
    functionLinenumber: 2405
    functionLinenumberEnd: 2447
    functionName: unicode_askind
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - _PyUnicode_CONVERT_BYTES
    - Py_UNREACHABLE
    - assert
    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:2456,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:2457,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:2458,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/unicodeobject.c:2463,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:2465,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:2471,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2480,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:2484,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:2487,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:2490,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: 2495
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2495
    functionName: as_ucs4
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - PyUnicode_DATA
    - PyUnicode_KIND
    - _PyUnicode_CONVERT_BYTES
    - Py_UNREACHABLE
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - memcpy
    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:2502,1
    - Dst: as_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:2505,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: 2506
      start: 2497
    functionDepth: 2
    functionLinenumber: 2497
    functionLinenumberEnd: 2506
    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:2511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2508
    functionDepth: 2
    functionLinenumber: 2508
    functionLinenumberEnd: 2512
    functionName: PyUnicode_AsUCS4Copy
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    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:2527,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:2530,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:2533,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2535,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:2536,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/cpython/Objects/unicodeobject.c:2537,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:2541,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2544,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2546,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:2551,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2556,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: 2562
      start: 2520
    functionDepth: 4
    functionLinenumber: 2520
    functionLinenumberEnd: 2562
    functionName: unicode_fromformat_write_str
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FindMaxChar
    - _PyUnicodeWriter_Prepare
    - _PyUnicode_FastCopyCharacters
    - Py_MAX
    - Py_MIN
    - PyUnicode_Fill
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_MAX_CHAR_VALUE
    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:2572,1
    - Dst: _PyUnicode_DecodeUTF8Writer
      Src: /src/cpython/Objects/unicodeobject.c:2590,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:2594,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2601,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: 2603
      start: 2564
    functionDepth: 5
    functionLinenumber: 2564
    functionLinenumberEnd: 2603
    functionName: unicode_fromformat_write_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_DecodeUTF8Writer
    - strlen
    - unicode_fromformat_write_str
    - Py_DECREF
    - 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:2611,1
    - Dst: PyUnicodeWriter_WriteWideChar
      Src: /src/cpython/Objects/unicodeobject.c:2621,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Objects/unicodeobject.c:2625,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2630,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: 2632
      start: 2605
    functionDepth: 5
    functionLinenumber: 2605
    functionLinenumberEnd: 2632
    functionName: unicode_fromformat_write_wcstr
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyUnicodeWriter_WriteWideChar
    - unicode_fromformat_write_str
    - Py_DECREF
    - wcslen
    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:2653,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2677,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:2684,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:2687,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2689,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2701,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:2707,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:2710,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2712,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2766,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:2768,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:2772,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2808,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2809,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2810,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2811,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2812,1
    - Dst: DO_SPRINTS
      Src: /src/cpython/Objects/unicodeobject.c:2813,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2818,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2823,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2824,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2829,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:2830,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:2832,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2836,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/unicodeobject.c:2842,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2847,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:2852,1
    - Dst: PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:2856,1
    - Dst: sprintf
      Src: /src/cpython/Objects/unicodeobject.c:2867,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2867,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2868,1
    - Dst: memmove
      Src: /src/cpython/Objects/unicodeobject.c:2874,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:2875,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:2881,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2889,1
    - Dst: unicode_fromformat_write_wcstr
      Src: /src/cpython/Objects/unicodeobject.c:2890,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2895,1
    - Dst: unicode_fromformat_write_utf8
      Src: /src/cpython/Objects/unicodeobject.c:2896,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2904,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2905,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:2905,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2907,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2914,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2918,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2921,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2924,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:2924,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2925,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2929,1
    - Dst: unicode_fromformat_write_wcstr
      Src: /src/cpython/Objects/unicodeobject.c:2930,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2934,1
    - Dst: unicode_fromformat_write_utf8
      Src: /src/cpython/Objects/unicodeobject.c:2935,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2943,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2945,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicodeobject.c:2946,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2953,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2959,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2961,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/unicodeobject.c:2962,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2965,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2969,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2975,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:2977,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:2978,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:2981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:2985,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:2991,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:2992,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:2992,1
    - Dst: _PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/unicodeobject.c:2996,1
    - Dst: PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/unicodeobject.c:2999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3001,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3011,1
    - Dst: va_arg
      Src: /src/cpython/Objects/unicodeobject.c:3017,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3018,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/unicodeobject.c:3020,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3021,1
    - Dst: _PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/unicodeobject.c:3028,1
    - Dst: PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/unicodeobject.c:3031,1
    - Dst: unicode_fromformat_write_str
      Src: /src/cpython/Objects/unicodeobject.c:3036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3041,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3047,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 320
    argCount: 3
    argNames:
    - writer
    - f
    - vargs
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - va_list*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 2817
        line_start: 2817
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (obj && _PyUnicode_CHECK(obj))
      pos:
        line_end: 2904
        line_start: 2904
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (type_raw != NULL)
      pos:
        line_end: 3017
        line_start: 3017
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (obj)
      pos:
        line_end: 2976
        line_start: 2976
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(obj))
      pos:
        line_end: 2923
        line_start: 2923
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (str != NULL)
      pos:
        line_end: 2933
        line_start: 2933
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (obj)
      pos:
        line_end: 2944
        line_start: 2944
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (len >= 0)
      pos:
        line_end: 2867
        line_start: 2867
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (obj)
      pos:
        line_end: 2960
        line_start: 2960
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (wstr != NULL)
      pos:
        line_end: 2928
        line_start: 2928
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3053
      start: 2640
    functionDepth: 6
    functionLinenumber: 2640
    functionLinenumberEnd: 3053
    functionName: unicode_fromformat_arg
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteCharInline
    - PyType_Check
    - _PyUnicodeWriter_Prepare
    - DO_SPRINTS
    - unicode_fromformat_write_wcstr
    - unicode_fromformat_write_utf8
    - _PyType_GetFullyQualifiedName
    - Py_ISDIGIT
    - PyUnicode_Fill
    - assert
    - va_arg
    - Py_TYPE
    - _PyUnicodeWriter_WriteChar
    - strlen
    - unicode_fromformat_write_str
    - sprintf
    - memmove
    - PyErr_SetString
    - Py_MAX
    - _PyUnicodeWriter_WriteASCIIString
    - _PyUnicode_CHECK
    - PyObject_Repr
    - PyType_GetFullyQualifiedName
    - Py_DECREF
    - Py_NewRef
    - PyObject_Str
    - PyErr_Format
    - PyObject_ASCII
    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: 2795
      start: 2793
    functionDepth: 0
    functionLinenumber: 2793
    functionLinenumberEnd: 2795
    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: 2805
      start: 2797
    functionDepth: 0
    functionLinenumber: 2797
    functionLinenumberEnd: 2805
    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:3058,1
    - Dst: va_copy
      Src: /src/cpython/Objects/unicodeobject.c:3064,1
    - Dst: ucs1lib_find_max_char
      Src: /src/cpython/Objects/unicodeobject.c:3068,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3072,1
    - Dst: unicode_fromformat_arg
      Src: /src/cpython/Objects/unicodeobject.c:3081,1
    - Dst: strchr
      Src: /src/cpython/Objects/unicodeobject.c:3086,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:3091,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:3095,1
    - Dst: va_end
      Src: /src/cpython/Objects/unicodeobject.c:3101,1
    - Dst: va_end
      Src: /src/cpython/Objects/unicodeobject.c:3105,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - writer
    - format
    - vargs
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3107
      start: 3055
    functionDepth: 7
    functionLinenumber: 3055
    functionLinenumberEnd: 3107
    functionName: unicode_from_format
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - va_copy
    - unicode_fromformat_arg
    - strchr
    - _PyUnicodeWriter_WriteASCIIString
    - va_end
    - ucs1lib_find_max_char
    - strlen
    - PyErr_Format
    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:3113,1
    - Dst: unicode_from_format
      Src: /src/cpython/Objects/unicodeobject.c:3115,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:3116,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:3119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - format
    - vargs
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3120
      start: 3109
    functionDepth: 8
    functionLinenumber: 3109
    functionLinenumberEnd: 3120
    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:3128,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Objects/unicodeobject.c:3129,1
    - Dst: va_end
      Src: /src/cpython/Objects/unicodeobject.c:3130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3122
    functionDepth: 9
    functionLinenumber: 3122
    functionLinenumberEnd: 3132
    functionName: PyUnicode_FromFormat
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 126
    functionsReached:
    - PyUnicode_FromFormatV
    - va_end
    - va_start
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromFormat(const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Objects/unicodeobject.c:3138,1
    - Dst: _PyUnicodeWriter_FormatV
      Src: /src/cpython/Objects/unicodeobject.c:3139,1
    - Dst: va_end
      Src: /src/cpython/Objects/unicodeobject.c:3140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - format
    argTypes:
    - PyUnicodeWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3134
    functionDepth: 1
    functionLinenumber: 3134
    functionLinenumberEnd: 3142
    functionName: PyUnicodeWriter_Format
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicodeWriter_FormatV
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int PyUnicodeWriter_Format(PyUnicodeWriter *writer, const char *format,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unicode_from_format
      Src: /src/cpython/Objects/unicodeobject.c:3151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - writer
    - format
    - vargs
    argTypes:
    - PyUnicodeWriter*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3144
    functionDepth: 8
    functionLinenumber: 3144
    functionLinenumberEnd: 3157
    functionName: _PyUnicodeWriter_FormatV
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - unicode_from_format
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_FormatV(PyUnicodeWriter *writer, const char *format,\n
      \                        va_list vargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3164,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3165,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:3165,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:3167,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3169,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (unicode != NULL)
      pos:
        line_end: 3163
        line_start: 3163
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 3164
        line_start: 3164
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3180
      start: 3159
    functionDepth: 1
    functionLinenumber: 3159
    functionLinenumberEnd: 3180
    functionName: unicode_get_widechar_size
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicode_CHECK
    - assert
    - _PyUnicode_LENGTH
    - PyUnicode_4BYTE_DATA
    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:3185,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3186,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:3186,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3188,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:3189,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3189,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3193,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3194,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3201,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3201,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3202,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3207,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:3207,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:3208,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3212,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:3214,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:3217,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: 3184
        line_start: 3184
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 3185
        line_start: 3185
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_2BYTE_KIND)
      pos:
        line_end: 3200
        line_start: 3200
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 3211
        line_start: 3211
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 3206
        line_start: 3206
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3225
      start: 3182
    functionDepth: 1
    functionLinenumber: 3182
    functionLinenumberEnd: 3225
    functionName: unicode_copy_as_widechar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - PyUnicode_KIND
    - Py_UNICODE_HIGH_SURROGATE
    - _PyUnicode_CHECK
    - memcpy
    - assert
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - Py_UNICODE_LOW_SURROGATE
    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:3245,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3248,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3249,1
    - Dst: unicode_get_widechar_size
      Src: /src/cpython/Objects/unicodeobject.c:3253,1
    - Dst: unicode_copy_as_widechar
      Src: /src/cpython/Objects/unicodeobject.c:3264,1
    - Dst: _Py_LocaleUsesNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:3269,1
    - Dst: _Py_EncodeNonUnicodeWchar_InPlace
      Src: /src/cpython/Objects/unicodeobject.c:3270,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: 3277
      start: 3237
    functionDepth: 2
    functionLinenumber: 3237
    functionLinenumberEnd: 3277
    functionName: PyUnicode_AsWideChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - _Py_LocaleUsesNonUnicodeWchar
    - unicode_get_widechar_size
    - _Py_EncodeNonUnicodeWchar_InPlace
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - PyErr_BadArgument
    - unicode_copy_as_widechar
    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:3287,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3290,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3291,1
    - Dst: unicode_get_widechar_size
      Src: /src/cpython/Objects/unicodeobject.c:3295,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/unicodeobject.c:3296,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:3298,1
    - Dst: unicode_copy_as_widechar
      Src: /src/cpython/Objects/unicodeobject.c:3301,1
    - Dst: _Py_LocaleUsesNonUnicodeWchar
      Src: /src/cpython/Objects/unicodeobject.c:3306,1
    - Dst: _Py_EncodeNonUnicodeWchar_InPlace
      Src: /src/cpython/Objects/unicodeobject.c:3307,1
    - Dst: wcslen
      Src: /src/cpython/Objects/unicodeobject.c:3316,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:3317,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - unicode
    - size
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3279
    functionDepth: 2
    functionLinenumber: 3279
    functionLinenumberEnd: 3323
    functionName: PyUnicode_AsWideCharString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 47
    functionsReached:
    - _Py_LocaleUsesNonUnicodeWchar
    - PyMem_New
    - unicode_get_widechar_size
    - PyErr_NoMemory
    - PyErr_SetString
    - _Py_EncodeNonUnicodeWchar_InPlace
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - PyMem_Free
    - PyErr_BadArgument
    - unicode_copy_as_widechar
    - wcslen
    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:3332,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3336,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:3337,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3343,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3327
    functionDepth: 3
    functionLinenumber: 3327
    functionLinenumberEnd: 3347
    functionName: _PyUnicode_WideCharString_Converter
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_Format
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - Py_TYPE
    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:3354,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3362,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:3363,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3369,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3349
    functionDepth: 3
    functionLinenumber: 3349
    functionLinenumberEnd: 3373
    functionName: _PyUnicode_WideCharString_Opt_Converter
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_Format
    - PyMem_Free
    - PyUnicode_AsWideCharString
    - Py_TYPE
    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:3379,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:3384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ordinal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3375
    functionDepth: 5
    functionLinenumber: 3375
    functionLinenumberEnd: 3385
    functionName: PyUnicode_FromOrdinal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 11
    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:3392,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:3393,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3395,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/unicodeobject.c:3398,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3400,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3404
      start: 3387
    functionDepth: 5
    functionLinenumber: 3387
    functionLinenumberEnd: 3404
    functionName: PyUnicode_FromObject
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - _PyUnicode_Copy
    - PyUnicode_CheckExact
    - PyUnicode_Check
    - PyErr_Format
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromObject(PyObject *obj)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:3415,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:3420,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:3421,1
    - Dst: unicode_check_encoding_errors
      Src: /src/cpython/Objects/unicodeobject.c:3422,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:3425,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3427,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:3428,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:3428,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3432,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3433,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/unicodeobject.c:3439,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3440,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3442,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/unicodeobject.c:3447,1
    - Dst: unicode_check_encoding_errors
      Src: /src/cpython/Objects/unicodeobject.c:3448,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:3451,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3454,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/unicodeobject.c:3455,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 3406
    functionDepth: 2
    functionLinenumber: 3406
    functionLinenumberEnd: 3457
    functionName: PyUnicode_FromEncodedObject
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - unicode_check_encoding_errors
    - _Py_RETURN_UNICODE_EMPTY
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyBuffer_Release
    - PyErr_BadInternalCall
    - PyObject_GetBuffer
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyUnicode_Decode
    - PyBytes_GET_SIZE
    - Py_TYPE
    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:3473,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/Objects/unicodeobject.c:3485,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Objects/unicodeobject.c:3497,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - encoding
    - lower
    - lower_len
    - to_lower
    argTypes:
    - char*
    - char*
    - size_t
    - int
    assertStmts:
    - condition: (encoding != NULL)
      pos:
        line_end: 3472
        line_start: 3472
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3507
      start: 3462
    functionDepth: 1
    functionLinenumber: 3462
    functionLinenumberEnd: 3507
    functionName: _Py_normalize_encoding
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_TOLOWER
    - Py_ISALNUM
    - assert
    linkageType: ''
    returnType: int
    signature: "int _Py_normalize_encoding(const char *encoding,\n                       char
      *lower,\n                       size_t lower_len,\n                       int
      to_lower)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unicode_check_encoding_errors
      Src: /src/cpython/Objects/unicodeobject.c:3519,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:3524,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:3528,1
    - Dst: _Py_normalize_encoding
      Src: /src/cpython/Objects/unicodeobject.c:3532,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:3544,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/cpython/Objects/unicodeobject.c:3547,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/cpython/Objects/unicodeobject.c:3550,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3554,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3555,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/cpython/Objects/unicodeobject.c:3556,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3559,1
    - Dst: PyUnicode_DecodeMBCS
      Src: /src/cpython/Objects/unicodeobject.c:3560,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3563,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3564,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3565,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3566,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/cpython/Objects/unicodeobject.c:3567,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Objects/unicodeobject.c:3574,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Objects/unicodeobject.c:3576,1
    - Dst: _PyCodec_DecodeText
      Src: /src/cpython/Objects/unicodeobject.c:3579,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3582,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3583,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3591,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:3592,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:3595,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: 3597
      start: 3509
    functionDepth: 2
    functionLinenumber: 3509
    functionLinenumberEnd: 3597
    functionName: PyUnicode_Decode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - strcmp
    - PyUnicode_DecodeUTF16
    - _Py_RETURN_UNICODE_EMPTY
    - Py_TYPE
    - PyUnicode_Check
    - _PyCodec_DecodeText
    - Py_XDECREF
    - unicode_result
    - PyBuffer_FillInfo
    - PyMemoryView_FromBuffer
    - unicode_check_encoding_errors
    - PyUnicode_DecodeLatin1
    - Py_DECREF
    - PyUnicode_DecodeUTF32
    - _Py_normalize_encoding
    - PyUnicode_DecodeMBCS
    - PyErr_Format
    - PyUnicode_DecodeASCII
    - 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:3604,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3605,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/unicodeobject.c:3610,1
    - Dst: PyCodec_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3614
      start: 3600
    functionDepth: 1
    functionLinenumber: 3600
    functionLinenumberEnd: 3614
    functionName: PyUnicode_AsDecodedObject
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetDefaultEncoding
    - PyCodec_Decode
    - PyErr_BadArgument
    - PyUnicode_Check
    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:3623,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3624,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/unicodeobject.c:3629,1
    - Dst: PyCodec_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3632,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3635,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3636,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3641,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:3644,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3648
      start: 3617
    functionDepth: 1
    functionLinenumber: 3617
    functionLinenumberEnd: 3648
    functionName: PyUnicode_AsDecodedUnicode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyCodec_Decode
    - PyUnicode_Check
    - PyUnicode_GetDefaultEncoding
    - PyErr_Format
    - Py_DECREF
    - unicode_result
    - 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:3657,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3658,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/unicodeobject.c:3663,1
    - Dst: PyCodec_Encode
      Src: /src/cpython/Objects/unicodeobject.c:3666,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3673
      start: 3651
    functionDepth: 1
    functionLinenumber: 3651
    functionLinenumberEnd: 3673
    functionName: PyUnicode_AsEncodedObject
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetDefaultEncoding
    - PyCodec_Encode
    - PyErr_BadArgument
    - PyUnicode_Check
    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:3681,1
    - Dst: wcslen
      Src: /src/cpython/Objects/unicodeobject.c:3686,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3687,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:3688,1
    - Dst: _Py_EncodeLocaleEx
      Src: /src/cpython/Objects/unicodeobject.c:3695,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:3697,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/unicodeobject.c:3702,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:3708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3709,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3713,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:3716,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Objects/unicodeobject.c:3721,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:3722,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: 3724
      start: 3676
    functionDepth: 3
    functionLinenumber: 3676
    functionLinenumberEnd: 3724
    functionName: unicode_encode_locale
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyCodec_StrictErrors
    - PyErr_SetString
    - PyObject_CallFunction
    - PyMem_RawFree
    - PyMem_Free
    - PyBytes_FromString
    - Py_DECREF
    - _Py_EncodeLocaleEx
    - PyUnicode_AsWideCharString
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_encode_locale(PyObject *unicode, _Py_error_handler
      error_handler,\n                      int current_locale)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:3729,1
    - Dst: unicode_encode_locale
      Src: /src/cpython/Objects/unicodeobject.c:3730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3731
      start: 3726
    functionDepth: 4
    functionLinenumber: 3726
    functionLinenumberEnd: 3731
    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:3736,1
    - Dst: unicode_encode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:3739,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Objects/unicodeobject.c:3745,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:3754,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3756,1
    - Dst: get_error_handler_wide
      Src: /src/cpython/Objects/unicodeobject.c:3757,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3758,1
    - Dst: unicode_encode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:3760,1
    - Dst: unicode_encode_locale
      Src: /src/cpython/Objects/unicodeobject.c:3762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (filesystem_errors != NULL)
      pos:
        line_end: 3755
        line_start: 3755
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (errors != _Py_ERROR_UNKNOWN)
      pos:
        line_end: 3757
        line_start: 3757
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3764
      start: 3733
    functionDepth: 4
    functionLinenumber: 3733
    functionLinenumberEnd: 3764
    functionName: PyUnicode_EncodeFSDefault
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 15
    functionsReached:
    - PyUnicode_AsEncodedString
    - get_error_handler_wide
    - _PyInterpreterState_GetConfig
    - unicode_encode_utf8
    - _PyInterpreterState_GET
    - assert
    - unicode_encode_locale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_EncodeFSDefault(PyObject *unicode)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3775,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3776,1
    - Dst: unicode_check_encoding_errors
      Src: /src/cpython/Objects/unicodeobject.c:3780,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Objects/unicodeobject.c:3785,1
    - Dst: _Py_normalize_encoding
      Src: /src/cpython/Objects/unicodeobject.c:3789,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/cpython/Objects/unicodeobject.c:3801,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/cpython/Objects/unicodeobject.c:3804,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/cpython/Objects/unicodeobject.c:3807,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3811,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3812,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/cpython/Objects/unicodeobject.c:3813,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3816,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/cpython/Objects/unicodeobject.c:3817,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3820,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3821,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3822,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:3823,1
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/cpython/Objects/unicodeobject.c:3824,1
    - Dst: _PyCodec_EncodeText
      Src: /src/cpython/Objects/unicodeobject.c:3830,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:3835,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/unicodeobject.c:3839,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/unicodeobject.c:3843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3848,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:3852,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:3852,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:3853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3854,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3858,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3863,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3767
    functionDepth: 4
    functionLinenumber: 3767
    functionLinenumberEnd: 3865
    functionName: PyUnicode_AsEncodedString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 11
    functionsReached:
    - _PyUnicode_AsUTF8String
    - strcmp
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - _PyUnicode_AsASCIIString
    - Py_TYPE
    - _PyUnicode_EncodeUTF16
    - PyUnicode_Check
    - PyUnicode_EncodeCodePage
    - unicode_check_encoding_errors
    - _PyUnicode_AsLatin1String
    - PyErr_WarnFormat
    - _PyUnicode_EncodeUTF32
    - PyByteArray_GET_SIZE
    - _PyCodec_EncodeText
    - Py_DECREF
    - _Py_normalize_encoding
    - PyErr_Format
    - PyByteArray_Check
    - PyErr_BadArgument
    - PyByteArray_AS_STRING
    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:3874,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:3875,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Objects/unicodeobject.c:3880,1
    - Dst: PyCodec_Encode
      Src: /src/cpython/Objects/unicodeobject.c:3883,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:3886,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:3887,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:3891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3892,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3868
    functionDepth: 1
    functionLinenumber: 3868
    functionLinenumberEnd: 3899
    functionName: PyUnicode_AsEncodedUnicode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_GetDefaultEncoding
    - PyCodec_Encode
    - PyErr_Format
    - Py_DECREF
    - 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:3905,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3906,1
    - Dst: _Py_DecodeLocaleEx
      Src: /src/cpython/Objects/unicodeobject.c:3913,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/unicodeobject.c:3918,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:3924,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:3925,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:3929,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:3932,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Objects/unicodeobject.c:3937,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:3938,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: 3940
      start: 3901
    functionDepth: 5
    functionLinenumber: 3901
    functionLinenumberEnd: 3940
    functionName: unicode_decode_locale
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_DecodeLocaleEx
    - PyUnicode_FromWideChar
    - PyErr_NoMemory
    - PyCodec_StrictErrors
    - PyErr_SetString
    - PyObject_CallFunction
    - PyMem_RawFree
    - strlen
    - Py_DECREF
    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:3946,1
    - Dst: unicode_decode_locale
      Src: /src/cpython/Objects/unicodeobject.c:3947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3948
      start: 3942
    functionDepth: 6
    functionLinenumber: 3942
    functionLinenumberEnd: 3948
    functionName: PyUnicode_DecodeLocaleAndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _Py_GetErrorHandler
    - unicode_decode_locale
    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:3953,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:3954,1
    - Dst: unicode_decode_locale
      Src: /src/cpython/Objects/unicodeobject.c:3955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3956
      start: 3950
    functionDepth: 6
    functionLinenumber: 3950
    functionLinenumberEnd: 3956
    functionName: PyUnicode_DecodeLocale
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 15
    functionsReached:
    - _Py_GetErrorHandler
    - strlen
    - unicode_decode_locale
    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:3961,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Objects/unicodeobject.c:3962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3963
      start: 3959
    functionDepth: 1
    functionLinenumber: 3959
    functionLinenumberEnd: 3963
    functionName: PyUnicode_DecodeFSDefault
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 21
    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:3968,1
    - Dst: unicode_decode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:3971,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Objects/unicodeobject.c:3978,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:3987,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3989,1
    - Dst: get_error_handler_wide
      Src: /src/cpython/Objects/unicodeobject.c:3990,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:3991,1
    - Dst: unicode_decode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:3993,1
    - Dst: unicode_decode_locale
      Src: /src/cpython/Objects/unicodeobject.c:3995,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: 3988
        line_start: 3988
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (errors != _Py_ERROR_UNKNOWN)
      pos:
        line_end: 3990
        line_start: 3990
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3997
      start: 3965
    functionDepth: 6
    functionLinenumber: 3965
    functionLinenumberEnd: 3997
    functionName: PyUnicode_DecodeFSDefaultAndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - get_error_handler_wide
    - unicode_decode_utf8
    - _PyInterpreterState_GetConfig
    - _PyInterpreterState_GET
    - assert
    - PyUnicode_Decode
    - 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:4009,1
    - Dst: PyOS_FSPath
      Src: /src/cpython/Objects/unicodeobject.c:4013,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:4017,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Objects/unicodeobject.c:4021,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4022,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:4026,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:4026,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:4029,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4030,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:4031,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4033,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyBytes_Check(output))
      pos:
        line_end: 4025
        line_start: 4025
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4038
      start: 4001
    functionDepth: 5
    functionLinenumber: 4001
    functionLinenumberEnd: 4038
    functionName: PyUnicode_FSConverter
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 26
    functionsReached:
    - PyBytes_AS_STRING
    - PyUnicode_EncodeFSDefault
    - PyBytes_Check
    - PyErr_SetString
    - PyOS_FSPath
    - assert
    - Py_DECREF
    - strlen
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int PyUnicode_FSConverter(PyObject* arg, void* addr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4045,1
    - Dst: PyOS_FSPath
      Src: /src/cpython/Objects/unicodeobject.c:4050,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:4056,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:4059,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Objects/unicodeobject.c:4060,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4060,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:4061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4062,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:4068,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:4070,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4071,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:4075,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:4075,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:4075,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4076,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4078,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4083
      start: 4041
    functionDepth: 7
    functionLinenumber: 4041
    functionLinenumberEnd: 4083
    functionName: PyUnicode_FSDecoder
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_DecodeFSDefaultAndSize
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyOS_FSPath
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyErr_Format
    - PyBytes_GET_SIZE
    - findchar
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyUnicode_FSDecoder(PyObject* arg, void* addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:4093,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/unicodeobject.c:4094,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:4095,1
    - Dst: unicode_fill_utf8
      Src: /src/cpython/Objects/unicodeobject.c:4096,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/unicodeobject.c:4098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4101
      start: 4089
    functionDepth: 3
    functionLinenumber: 4089
    functionLinenumberEnd: 4101
    functionName: unicode_ensure_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_fill_utf8
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_UTF8
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int unicode_ensure_utf8(PyObject *unicode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:4106,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:4107,1
    - Dst: unicode_ensure_utf8
      Src: /src/cpython/Objects/unicodeobject.c:4114,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4122,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:4124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - unicode
    - psize
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4125
      start: 4103
    functionDepth: 4
    functionLinenumber: 4103
    functionLinenumberEnd: 4125
    functionName: PyUnicode_AsUTF8AndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 149
    functionsReached:
    - PyUnicode_Check
    - unicode_ensure_utf8
    - PyUnicode_UTF8_LENGTH
    - PyUnicode_UTF8
    - PyErr_BadArgument
    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:4130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4131
      start: 4127
    functionDepth: 5
    functionLinenumber: 4127
    functionLinenumberEnd: 4131
    functionName: PyUnicode_AsUTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 41
    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:4137,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:4138,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4143
      start: 4133
    functionDepth: 5
    functionLinenumber: 4133
    functionLinenumberEnd: 4143
    functionName: _PyUnicode_AsUTF8NoNUL
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyUnicode_AsUTF8NoNUL(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4159
      start: 4154
    functionDepth: 1
    functionLinenumber: 4154
    functionLinenumberEnd: 4159
    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:4164,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:4165,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4169
      start: 4161
    functionDepth: 1
    functionLinenumber: 4161
    functionLinenumberEnd: 4169
    functionName: PyUnicode_GetLength
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 13
    functionsReached:
    - PyErr_BadArgument
    - PyUnicode_GET_LENGTH
    - PyUnicode_Check
    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:4177,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:4178,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4182,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:4185,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:4186,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:4187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - unicode
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4171
    functionDepth: 1
    functionLinenumber: 4171
    functionLinenumberEnd: 4188
    functionName: PyUnicode_ReadChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyErr_BadArgument
    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:4193,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:4193,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:4194,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: unicode_check_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:4201,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:4203,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4204,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:4207,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:4207,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:4207,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: 4210
      start: 4190
    functionDepth: 2
    functionLinenumber: 4190
    functionLinenumberEnd: 4210
    functionName: PyUnicode_WriteChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_WRITE
    - unicode_check_modifiable
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_IS_COMPACT
    - PyUnicode_GET_LENGTH
    - PyErr_BadArgument
    - PyUnicode_MAX_CHAR_VALUE
    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: 4216
      start: 4212
    functionDepth: 0
    functionLinenumber: 4212
    functionLinenumberEnd: 4216
    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:4227,1
    - Dst: PyUnicodeDecodeError_SetStart
      Src: /src/cpython/Objects/unicodeobject.c:4231,1
    - Dst: PyUnicodeDecodeError_SetEnd
      Src: /src/cpython/Objects/unicodeobject.c:4233,1
    - Dst: PyUnicodeDecodeError_SetReason
      Src: /src/cpython/Objects/unicodeobject.c:4235,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:4241,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: 4242
      start: 4219
    functionDepth: 3
    functionLinenumber: 4219
    functionLinenumberEnd: 4242
    functionName: make_decode_exception
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeDecodeError_SetStart
    - PyUnicodeDecodeError_Create
    - Py_CLEAR
    - PyUnicodeDecodeError_SetEnd
    - PyUnicodeDecodeError_SetReason
    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:4250,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:4251,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: 4258
      start: 4245
    functionDepth: 1
    functionLinenumber: 4245
    functionLinenumberEnd: 4258
    functionName: widechar_resize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Resize
    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:4287,1
    - Dst: make_decode_exception
      Src: /src/cpython/Objects/unicodeobject.c:4292,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/unicodeobject.c:4300,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:4303,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4304,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/unicodeobject.c:4307,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/cpython/Objects/unicodeobject.c:4312,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4315,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:4316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4320,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:4325,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Objects/unicodeobject.c:4329,1
    - Dst: widechar_resize
      Src: /src/cpython/Objects/unicodeobject.c:4348,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Objects/unicodeobject.c:4352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4358,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4362,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4366,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: 4368
      start: 4267
    functionDepth: 5
    functionLinenumber: 4267
    functionLinenumberEnd: 4368
    functionName: unicode_decode_call_errorhandler_wchar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicodeDecodeError_GetObject
    - PyCodec_LookupError
    - make_decode_exception
    - widechar_resize
    - PyTuple_Check
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - PyErr_Format
    - PyUnicode_AsWideChar
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_XDECREF
    - PyObject_CallOneArg
    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:4392,1
    - Dst: make_decode_exception
      Src: /src/cpython/Objects/unicodeobject.c:4397,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/unicodeobject.c:4405,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:4408,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:4409,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/unicodeobject.c:4412,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/cpython/Objects/unicodeobject.c:4417,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:4421,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:4422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4426,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:4431,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4435,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:4452,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:4453,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:4456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:4463,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4467,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: 4469
      start: 4371
    functionDepth: 5
    functionLinenumber: 4371
    functionLinenumberEnd: 4469
    functionName: unicode_decode_call_errorhandler_writer
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteStr
    - _PyUnicodeWriter_Prepare
    - PyErr_SetString
    - PyUnicodeDecodeError_GetObject
    - PyCodec_LookupError
    - make_decode_exception
    - PyUnicode_GET_LENGTH
    - PyTuple_Check
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - PyBytes_GET_SIZE
    - PyUnicode_MAX_CHAR_VALUE
    - PyObject_CallOneArg
    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: 4484
      start: 4479
    functionDepth: 0
    functionLinenumber: 4479
    functionLinenumberEnd: 4484
    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: 4492
      start: 4487
    functionDepth: 0
    functionLinenumber: 4487
    functionLinenumberEnd: 4492
    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: 4497
      start: 4495
    functionDepth: 0
    functionLinenumber: 4495
    functionLinenumberEnd: 4497
    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: 4505
      start: 4503
    functionDepth: 0
    functionLinenumber: 4503
    functionLinenumberEnd: 4505
    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: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4548
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4548
    functionName: ENCODE_DIRECT
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_DIRECT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF7Stateful
      Src: /src/cpython/Objects/unicodeobject.c:4554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4555
      start: 4549
    functionDepth: 1
    functionLinenumber: 4549
    functionLinenumberEnd: 4555
    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:4587,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:4591,1
    - Dst: IS_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4603,1
    - Dst: FROM_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4604,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:4612,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:4615,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/unicodeobject.c:4616,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4617,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4623,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:4628,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4633,1
    - Dst: DECODE_DIRECT
      Src: /src/cpython/Objects/unicodeobject.c:4656,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4657,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4673,1
    - Dst: IS_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4676,1
    - Dst: DECODE_DIRECT
      Src: /src/cpython/Objects/unicodeobject.c:4689,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:4691,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:4703,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:4720,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Objects/unicodeobject.c:4736,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4738,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4739,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:4740,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4750,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4751,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:4752,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4755,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:4756,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:4757,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: 4611
        line_start: 4611
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4759
      start: 4564
    functionDepth: 7
    functionLinenumber: 4564
    functionLinenumberEnd: 4759
    functionName: PyUnicode_DecodeUTF7Stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_WriteCharInline
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - DECODE_DIRECT
    - Py_UNICODE_JOIN_SURROGATES
    - Py_UNICODE_IS_HIGH_SURROGATE
    - _PyUnicodeWriter_Dealloc
    - Py_UNICODE_IS_LOW_SURROGATE
    - IS_BASE64
    - Py_XDECREF
    - assert
    - PyUnicode_FromKindAndData
    - FROM_BASE64
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF7Stateful(const char *s,\n                             Py_ssize_t
      size,\n                             const char *errors,\n                             Py_ssize_t
      *consumed)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:4766,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/unicodeobject.c:4768,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:4770,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:4771,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:4775,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:4777,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:4785,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:4787,1
    - Dst: ENCODE_DIRECT
      Src: /src/cpython/Objects/unicodeobject.c:4790,1
    - Dst: TO_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4793,1
    - Dst: IS_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4800,1
    - Dst: ENCODE_DIRECT
      Src: /src/cpython/Objects/unicodeobject.c:4814,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:4826,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:4830,1
    - Dst: TO_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4832,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:4836,1
    - Dst: TO_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4841,1
    - Dst: TO_BASE64
      Src: /src/cpython/Objects/unicodeobject.c:4846,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/unicodeobject.c:4849,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 2
    argNames:
    - str
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 4825
        line_start: 4825
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4850
      start: 4762
    functionDepth: 8
    functionLinenumber: 4762
    functionLinenumberEnd: 4850
    functionName: _PyUnicode_EncodeUTF7
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_GetConstant
    - PyErr_NoMemory
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyBytesWriter_Create
    - PyUnicode_READ
    - Py_UNICODE_HIGH_SURROGATE
    - PyBytesWriter_FinishWithPointer
    - IS_BASE64
    - PyUnicode_GET_LENGTH
    - assert
    - PyBytesWriter_GetData
    - TO_BASE64
    - ENCODE_DIRECT
    - Py_UNICODE_LOW_SURROGATE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_EncodeUTF7(PyObject *str,\n                      const
      char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/cpython/Objects/unicodeobject.c:4865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4866
      start: 4860
    functionDepth: 1
    functionLinenumber: 4860
    functionLinenumberEnd: 4866
    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:4904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4905
      start: 4901
    functionDepth: 0
    functionLinenumber: 4901
    functionLinenumberEnd: 4905
    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:4913,1
    - Dst: _BitScanForward64
      Src: /src/cpython/Objects/unicodeobject.c:4915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4908
    functionDepth: 0
    functionLinenumber: 4908
    functionLinenumberEnd: 4918
    functionName: ctz
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _BitScanForward64
    - _BitScanForward
    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: 4968
      start: 4925
    functionDepth: 0
    functionLinenumber: 4925
    functionLinenumberEnd: 4968
    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:4992,1
    - Dst: ctz
      Src: /src/cpython/Objects/unicodeobject.c:4995,1
    - Dst: _Py_ALIGN_DOWN
      Src: /src/cpython/Objects/unicodeobject.c:4997,1
    - Dst: _Py_ALIGN_UP
      Src: /src/cpython/Objects/unicodeobject.c:4999,1
    - Dst: ctz
      Src: /src/cpython/Objects/unicodeobject.c:5013,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5024,1
    - Dst: load_unaligned
      Src: /src/cpython/Objects/unicodeobject.c:5026,1
    - Dst: ctz
      Src: /src/cpython/Objects/unicodeobject.c:5028,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: 5023
        line_start: 5023
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5040
      start: 4979
    functionDepth: 1
    functionLinenumber: 4979
    functionLinenumberEnd: 5040
    functionName: find_first_nonascii
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ALIGN_DOWN
    - load_unaligned
    - _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: 5047
      start: 5042
    functionDepth: 0
    functionLinenumber: 5042
    functionLinenumberEnd: 5047
    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: 5053
      start: 5049
    functionDepth: 0
    functionLinenumber: 5049
    functionLinenumberEnd: 5053
    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:5063,1
    - Dst: scalar_utf8_start_char
      Src: /src/cpython/Objects/unicodeobject.c:5064,1
    - Dst: vector_utf8_start_chars
      Src: /src/cpython/Objects/unicodeobject.c:5075,1
    - Dst: scalar_utf8_start_char
      Src: /src/cpython/Objects/unicodeobject.c:5088,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5091
      start: 5057
    functionDepth: 1
    functionLinenumber: 5057
    functionLinenumberEnd: 5091
    functionName: utf8_count_codepoints
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - scalar_utf8_start_char
    - _Py_IS_ALIGNED
    - 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:5097,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:5098,1
    - Dst: find_first_nonascii
      Src: /src/cpython/Objects/unicodeobject.c:5120,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5122,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - start
    - end
    - dest
    argTypes:
    - char*
    - char*
    - Py_UCS1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5124
      start: 5093
    functionDepth: 2
    functionLinenumber: 5093
    functionLinenumberEnd: 5124
    functionName: ascii_decode
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_IS_ALIGNED
    - memcpy
    - 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:5143,1
    - Dst: asciilib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5144,1
    - Dst: ucs1lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5146,1
    - Dst: ucs2lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5148,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5150,1
    - Dst: ucs4lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5151,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:5184,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:5190,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:5198,1
    - Dst: _PyUnicodeWriter_PrepareKind
      Src: /src/cpython/Objects/unicodeobject.c:5207,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:5211,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:5220,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:5228,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5238,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5239,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5243,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5244,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 92
    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: 5149
        line_start: 5149
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5246
      start: 5126
    functionDepth: 6
    functionLinenumber: 5126
    functionLinenumberEnd: 5246
    functionName: unicode_decode_utf8_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - ucs2lib_utf8_decode
    - unicode_decode_call_errorhandler_writer
    - ucs4lib_utf8_decode
    - _PyUnicodeWriter_WriteCharInline
    - PyUnicode_IS_ASCII
    - _PyUnicodeWriter_PrepareKind
    - _PyUnicodeWriter_Prepare
    - ucs1lib_utf8_decode
    - _Py_GetErrorHandler
    - assert
    - Py_XDECREF
    - asciilib_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:5258,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:5266,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:5272,1
    - Dst: find_first_nonascii
      Src: /src/cpython/Objects/unicodeobject.c:5279,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:5281,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5285,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5285,1
    - Dst: utf8_count_codepoints
      Src: /src/cpython/Objects/unicodeobject.c:5307,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:5318,1
    - Dst: _PyUnicodeWriter_InitWithBuffer
      Src: /src/cpython/Objects/unicodeobject.c:5325,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5327,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5327,1
    - Dst: unicode_decode_utf8_impl
      Src: /src/cpython/Objects/unicodeobject.c:5332,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:5335,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:5338,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    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: 5339
      start: 5249
    functionDepth: 7
    functionLinenumber: 5249
    functionLinenumberEnd: 5339
    functionName: unicode_decode_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyErr_NoMemory
    - _Py_RETURN_UNICODE_EMPTY
    - get_latin1_char
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_InitWithBuffer
    - PyUnicode_New
    - utf8_count_codepoints
    - find_first_nonascii
    - memcpy
    - unicode_decode_utf8_impl
    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:5357,1
    - Dst: ascii_decode
      Src: /src/cpython/Objects/unicodeobject.c:5366,1
    - Dst: unicode_decode_utf8_impl
      Src: /src/cpython/Objects/unicodeobject.c:5378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    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: 5380
      start: 5343
    functionDepth: 7
    functionLinenumber: 5343
    functionLinenumberEnd: 5380
    functionName: _PyUnicode_DecodeUTF8Writer
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - _PyUnicodeWriter_Prepare
    - unicode_decode_utf8_impl
    - ascii_decode
    linkageType: ''
    returnType: int
    signature: "int _PyUnicode_DecodeUTF8Writer(_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:5389,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: 5392
      start: 5383
    functionDepth: 8
    functionLinenumber: 5383
    functionLinenumberEnd: 5392
    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:5438,1
    - Dst: ucs4lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5449,1
    - Dst: ucs2lib_utf8_decode
      Src: /src/cpython/Objects/unicodeobject.c:5451,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:5455,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5457,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5459,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5460,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:5484,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: 5456
        line_start: 5456
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5513
      start: 5407
    functionDepth: 1
    functionLinenumber: 5407
    functionLinenumberEnd: 5513
    functionName: _Py_DecodeUTF8Ex
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs2lib_utf8_decode
    - ucs4lib_utf8_decode
    - Py_UNICODE_HIGH_SURROGATE
    - Py_UNREACHABLE
    - PyMem_RawFree
    - PyMem_RawMalloc
    - assert
    - Py_UNICODE_LOW_SURROGATE
    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:5521,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5526,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: 5525
        line_start: 5525
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5533
      start: 5516
    functionDepth: 2
    functionLinenumber: 5516
    functionLinenumberEnd: 5533
    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:5551,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5553,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Objects/unicodeobject.c:5576,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:5579,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5592,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5594,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/unicodeobject.c:5596,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5610,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:5620,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:5623,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5635,1
    - Dst: PyMem_RawRealloc
      Src: /src/cpython/Objects/unicodeobject.c:5648,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/unicodeobject.c:5651,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:5658,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:5661,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    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: 5552
        line_start: 5552
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 5634
        line_start: 5634
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5667
      start: 5546
    functionDepth: 2
    functionLinenumber: 5546
    functionLinenumberEnd: 5667
    functionName: _Py_EncodeUTF8Ex
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_RawRealloc
    - assert
    - PyMem_Realloc
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - Py_UNICODE_IS_SURROGATE
    - Py_UNICODE_IS_LOW_SURROGATE
    - PyMem_RawMalloc
    - PyMem_RawFree
    - PyMem_Free
    - PyMem_Malloc
    - wcslen
    linkageType: ''
    returnType: int
    signature: "int _Py_EncodeUTF8Ex(const wchar_t *text, char **str, size_t *error_pos,\n
      \                const char **reason, int raw_malloc, _Py_error_handler errors)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:5681,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:5682,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:5686,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:5687,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:5687,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5688,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:5690,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5691,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5692,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:5699,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5702,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:5702,1
    - Dst: ucs1lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5703,1
    - Dst: ucs2lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5707,1
    - Dst: ucs4lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5711,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:5717,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/unicodeobject.c:5720,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: 5701
        line_start: 5701
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5721
      start: 5677
    functionDepth: 8
    functionLinenumber: 5677
    functionLinenumberEnd: 5721
    functionName: unicode_encode_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyBytes_FromStringAndSize
    - PyUnicode_IS_ASCII
    - ucs1lib_utf8_encoder
    - ucs2lib_utf8_encoder
    - ucs4lib_utf8_encoder
    - PyUnicode_Check
    - PyBytesWriter_Discard
    - Py_UNREACHABLE
    - PyUnicode_UTF8_LENGTH
    - PyUnicode_GET_LENGTH
    - assert
    - PyBytesWriter_FinishWithPointer
    - PyUnicode_UTF8
    - PyErr_BadArgument
    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:5726,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5728,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:5728,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:5730,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5731,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5732,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:5739,1
    - Dst: ucs1lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5741,1
    - Dst: ucs2lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5745,1
    - Dst: ucs4lib_utf8_encoder
      Src: /src/cpython/Objects/unicodeobject.c:5749,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:5757,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:5760,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:5762,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:5763,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:5766,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5768,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:5769,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:5770,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyUnicode_IS_ASCII(unicode))
      pos:
        line_end: 5727
        line_start: 5727
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5772
      start: 5723
    functionDepth: 3
    functionLinenumber: 5723
    functionLinenumberEnd: 5772
    functionName: unicode_fill_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyMem_Malloc
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - ucs1lib_utf8_encoder
    - ucs2lib_utf8_encoder
    - ucs4lib_utf8_encoder
    - PyErr_NoMemory
    - PyUnicode_SET_UTF8
    - PyBytesWriter_Discard
    - Py_UNREACHABLE
    - PyUnicode_SET_UTF8_LENGTH
    - PyUnicode_GET_LENGTH
    - memcpy
    - assert
    - PyBytesWriter_GetData
    linkageType: ''
    returnType: int
    signature: int unicode_fill_utf8(PyObject *unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_encode_utf8
      Src: /src/cpython/Objects/unicodeobject.c:5777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5778
      start: 5774
    functionDepth: 9
    functionLinenumber: 5774
    functionLinenumberEnd: 5778
    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:5784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5785
      start: 5781
    functionDepth: 10
    functionLinenumber: 5781
    functionLinenumberEnd: 5785
    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:5795,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: 5796
      start: 5789
    functionDepth: 1
    functionLinenumber: 5789
    functionLinenumberEnd: 5796
    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:5843,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:5853,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:5855,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:5860,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5873,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:5875,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5885,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:5887,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:5894,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:5909,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:5921,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5932,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5933,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:5934,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:5937,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5938,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:5939,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: 5941
      start: 5798
    functionDepth: 6
    functionLinenumber: 5798
    functionLinenumberEnd: 5941
    functionName: PyUnicode_DecodeUTF32Stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - PyUnicode_WRITE
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_WriteCharInline
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Dealloc
    - Py_UNICODE_IS_SURROGATE
    - Py_XDECREF
    - PyUnicode_MAX_CHAR_VALUE
    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: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:5948,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:5949,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:5952,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:5953,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:5954,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:5957,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:5969,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5975,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:5975,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:5975,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:5976,1
    - Dst: ucs1lib_utf32_encode
      Src: /src/cpython/Objects/unicodeobject.c:5981,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:5987,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:5993,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:5993,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:5993,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:5994,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:5999,1
    - Dst: ucs2lib_utf32_encode
      Src: /src/cpython/Objects/unicodeobject.c:6016,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6020,1
    - Dst: ucs4lib_utf32_encode
      Src: /src/cpython/Objects/unicodeobject.c:6021,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:6028,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:6036,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6037,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:6039,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6047,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6047,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6048,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:6049,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:6050,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/unicodeobject.c:6061,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:6067,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:6068,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6068,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6073,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6073,1
    - Dst: ucs1lib_utf32_encode
      Src: /src/cpython/Objects/unicodeobject.c:6074,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6074,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:6078,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6081,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6082,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/unicodeobject.c:6087,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6090,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6091,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6092,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:6093,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 93
    argCount: 3
    argNames:
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 6046
        line_start: 6046
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_Py_IS_ALIGNED(PyBytes_AS_STRING(v), 4))
      pos:
        line_end: 5974
        line_start: 5974
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_Py_IS_ALIGNED(PyBytesWriter_GetData(writer), 4))
      pos:
        line_end: 5992
        line_start: 5992
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 6019
        line_start: 6019
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 6072
        line_start: 6072
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6095
      start: 5943
    functionDepth: 8
    functionLinenumber: 5943
    functionLinenumberEnd: 6095
    functionName: _PyUnicode_EncodeUTF32
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - ucs4lib_utf32_encode
    - unicode_encode_call_errorhandler
    - PyUnicode_IS_ASCII
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - ucs2lib_utf32_encode
    - memcpy
    - PyBytesWriter_Finish
    - assert
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_NoMemory
    - _Py_IS_ALIGNED
    - PyUnicode_Check
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyBytesWriter_FinishWithPointer
    - ucs1lib_utf32_encode
    - raise_encode_exception
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - PyBytesWriter_GetData
    - PyBytes_GET_SIZE
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - PyBytesWriter_GrowAndUpdatePointer
    - PyErr_BadArgument
    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:6100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6101
      start: 6097
    functionDepth: 9
    functionLinenumber: 6097
    functionLinenumberEnd: 6101
    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:6111,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: 6112
      start: 6105
    functionDepth: 1
    functionLinenumber: 6105
    functionLinenumberEnd: 6112
    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:6160,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:6174,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:6176,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:6184,1
    - Dst: asciilib_utf16_decode
      Src: /src/cpython/Objects/unicodeobject.c:6185,1
    - Dst: ucs1lib_utf16_decode
      Src: /src/cpython/Objects/unicodeobject.c:6189,1
    - Dst: ucs2lib_utf16_decode
      Src: /src/cpython/Objects/unicodeobject.c:6193,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6197,1
    - Dst: ucs4lib_utf16_decode
      Src: /src/cpython/Objects/unicodeobject.c:6198,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:6235,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:6240,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6258,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6259,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:6260,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:6263,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6264,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6265,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: 6196
        line_start: 6196
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6267
      start: 6114
    functionDepth: 6
    functionLinenumber: 6114
    functionLinenumberEnd: 6267
    functionName: PyUnicode_DecodeUTF16Stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - asciilib_utf16_decode
    - ucs4lib_utf16_decode
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_WriteCharInline
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_IS_ASCII
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - ucs1lib_utf16_decode
    - Py_XDECREF
    - assert
    - ucs2lib_utf16_decode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF16Stateful(const char *s,\n                              Py_ssize_t
      size,\n                              const char *errors,\n                              int
      *byteorder,\n                              Py_ssize_t *consumed)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6274,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:6275,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6278,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6279,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6280,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:6293,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:6306,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6312,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:6312,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6312,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6313,1
    - Dst: ucs1lib_utf16_encode
      Src: /src/cpython/Objects/unicodeobject.c:6318,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:6323,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6329,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/unicodeobject.c:6329,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:6329,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:6330,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:6335,1
    - Dst: ucs2lib_utf16_encode
      Src: /src/cpython/Objects/unicodeobject.c:6355,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6359,1
    - Dst: ucs4lib_utf16_encode
      Src: /src/cpython/Objects/unicodeobject.c:6360,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:6367,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:6375,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:6376,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:6378,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6386,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6386,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6387,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:6388,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:6389,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/unicodeobject.c:6400,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:6406,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:6407,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:6407,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6411,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6411,1
    - Dst: ucs1lib_utf16_encode
      Src: /src/cpython/Objects/unicodeobject.c:6412,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6412,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:6416,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6419,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6420,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/unicodeobject.c:6425,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6428,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6429,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6430,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:6431,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 104
    argCount: 3
    argNames:
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (_Py_IS_ALIGNED(PyBytes_AS_STRING(v), 2))
      pos:
        line_end: 6311
        line_start: 6311
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_Py_IS_ALIGNED(PyBytesWriter_GetData(writer), 2))
      pos:
        line_end: 6328
        line_start: 6328
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 6385
        line_start: 6385
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 6358
        line_start: 6358
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 6410
        line_start: 6410
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6433
      start: 6269
    functionDepth: 8
    functionLinenumber: 6269
    functionLinenumberEnd: 6433
    functionName: _PyUnicode_EncodeUTF16
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - unicode_encode_call_errorhandler
    - PyUnicode_IS_ASCII
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - memcpy
    - PyBytesWriter_Finish
    - assert
    - ucs1lib_utf16_encode
    - ucs2lib_utf16_encode
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_NoMemory
    - _Py_IS_ALIGNED
    - PyUnicode_Check
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyBytesWriter_FinishWithPointer
    - raise_encode_exception
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - PyBytesWriter_GetData
    - PyBytes_GET_SIZE
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - PyBytesWriter_GrowAndUpdatePointer
    - ucs4lib_utf16_encode
    - PyErr_BadArgument
    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:6438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6439
      start: 6435
    functionDepth: 9
    functionLinenumber: 6435
    functionLinenumberEnd: 6439
    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:6444,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Objects/unicodeobject.c:6447,1
    - Dst: PyCapsule_Import
      Src: /src/cpython/Objects/unicodeobject.c:6449,1
    - Dst: _Py_atomic_store_ptr
      Src: /src/cpython/Objects/unicodeobject.c:6453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6456
      start: 6441
    functionDepth: 1
    functionLinenumber: 6441
    functionLinenumberEnd: 6456
    functionName: _PyUnicode_GetNameCAPI
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_ptr
    - _Py_atomic_store_ptr
    - PyCapsule_Import
    - _PyInterpreterState_GET
    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:6484,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:6491,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:6493,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6524,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6536,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6541,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6542,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6543,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6544,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6546,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6547,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6548,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6549,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6551,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6553,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6574,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6621,1
    - Dst: _PyUnicode_GetNameCAPI
      Src: /src/cpython/Objects/unicodeobject.c:6626,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:6628,1
    - Dst: _PyUnicode_Name_CAPI*::getcode
      Src: /src/cpython/Objects/unicodeobject.c:6654,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6656,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6657,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6673,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6674,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:6686,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6693,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6699,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6700,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:6701,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:6704,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6705,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6706,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: (writer.pos < writer.size)
      pos:
        line_end: 6535
        line_start: 6535
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 6655
        line_start: 6655
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (end - s <= writer.size - writer.pos)
      pos:
        line_end: 6692
        line_start: 6692
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6708
      start: 6460
    functionDepth: 6
    functionLinenumber: 6460
    functionLinenumberEnd: 6708
    functionName: _PyUnicode_DecodeUnicodeEscapeInternal2
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_decode_call_errorhandler_writer
    - WRITE_ASCII_CHAR
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Prepare
    - WRITE_CHAR
    - PyErr_SetString
    - _PyUnicodeWriter_Dealloc
    - _PyUnicode_GetNameCAPI
    - Py_XDECREF
    - assert
    - _PyUnicode_Name_CAPI*::getcode
    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: 6510
      start: 6504
    functionDepth: 0
    functionLinenumber: 6504
    functionLinenumberEnd: 6510
    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: 6521
      start: 6511
    functionDepth: 0
    functionLinenumber: 6511
    functionLinenumberEnd: 6521
    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:6718,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/unicodeobject.c:6726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:6731,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/unicodeobject.c:6736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:6741,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: 6747
      start: 6710
    functionDepth: 7
    functionLinenumber: 6710
    functionLinenumberEnd: 6747
    functionName: _PyUnicode_DecodeUnicodeEscapeStateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_DecodeUnicodeEscapeInternal2
    - Py_DECREF
    - PyErr_WarnFormat
    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:6754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6755
      start: 6749
    functionDepth: 8
    functionLinenumber: 6749
    functionLinenumberEnd: 6755
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:6762,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:6763,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:6767,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/unicodeobject.c:6769,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:6771,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:6772,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:6782,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:6785,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:6789,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:6792,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6843,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/unicodeobject.c:6857,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ch <= MAX_UNICODE && MAX_UNICODE <= 0x10ffff)
      pos:
        line_end: 6842
        line_start: 6842
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6858
      start: 6759
    functionDepth: 8
    functionLinenumber: 6759
    functionLinenumberEnd: 6858
    functionName: PyUnicode_AsUnicodeEscapeString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_GetConstant
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_NoMemory
    - PyBytesWriter_Create
    - PyUnicode_READ
    - PyUnicode_Check
    - PyBytesWriter_FinishWithPointer
    - PyUnicode_GET_LENGTH
    - assert
    - PyBytesWriter_GetData
    - PyErr_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUnicodeEscapeString(PyObject *unicode)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:6878,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:6885,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:6887,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6911,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6918,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6935,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:6936,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6937,1
    - Dst: WRITE_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:6965,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:6976,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:6983,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6987,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6988,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:6989,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:6992,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6993,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:6994,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: 6917
        line_start: 6917
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (writer.pos < writer.size)
      pos:
        line_end: 6934
        line_start: 6934
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (end - s <= writer.size - writer.pos)
      pos:
        line_end: 6982
        line_start: 6982
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6996
      start: 6862
    functionDepth: 6
    functionLinenumber: 6862
    functionLinenumberEnd: 6996
    functionName: _PyUnicode_DecodeRawUnicodeEscapeStateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_WRITE
    - unicode_decode_call_errorhandler_writer
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Prepare
    - WRITE_CHAR
    - _PyUnicodeWriter_Dealloc
    - Py_XDECREF
    - 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: 6908
      start: 6898
    functionDepth: 0
    functionLinenumber: 6898
    functionLinenumberEnd: 6908
    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:7003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7004
      start: 6998
    functionDepth: 7
    functionLinenumber: 6998
    functionLinenumberEnd: 7004
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:7010,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:7011,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7014,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7015,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7016,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/unicodeobject.c:7018,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:7021,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:7028,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:7031,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:7035,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:7038,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7055,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/unicodeobject.c:7069,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ch <= MAX_UNICODE && MAX_UNICODE <= 0x10ffff)
      pos:
        line_end: 7054
        line_start: 7054
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7070
      start: 7007
    functionDepth: 8
    functionLinenumber: 7007
    functionLinenumberEnd: 7070
    functionName: PyUnicode_AsRawUnicodeEscapeString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_GetConstant
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    - PyBytesWriter_Create
    - PyUnicode_READ
    - PyUnicode_Check
    - PyBytesWriter_FinishWithPointer
    - PyUnicode_GET_LENGTH
    - assert
    - PyBytesWriter_GetData
    - PyErr_BadArgument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsRawUnicodeEscapeString(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromUCS1
      Src: /src/cpython/Objects/unicodeobject.c:7080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7081
      start: 7074
    functionDepth: 5
    functionLinenumber: 7074
    functionLinenumberEnd: 7081
    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:7092,1
    - Dst: PyUnicodeEncodeError_SetStart
      Src: /src/cpython/Objects/unicodeobject.c:7097,1
    - Dst: PyUnicodeEncodeError_SetEnd
      Src: /src/cpython/Objects/unicodeobject.c:7099,1
    - Dst: PyUnicodeEncodeError_SetReason
      Src: /src/cpython/Objects/unicodeobject.c:7101,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:7105,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: 7107
      start: 7084
    functionDepth: 3
    functionLinenumber: 7084
    functionLinenumberEnd: 7107
    functionName: make_encode_exception
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - PyUnicodeEncodeError_SetStart
    - Py_CLEAR
    - PyUnicodeEncodeError_SetEnd
    - PyUnicodeEncodeError_SetReason
    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:7117,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:7120,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: 7121
      start: 7110
    functionDepth: 4
    functionLinenumber: 7110
    functionLinenumberEnd: 7121
    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:7141,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7146,1
    - Dst: make_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7148,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/unicodeobject.c:7153,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:7156,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:7157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7158,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/unicodeobject.c:7161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7163,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:7166,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:7166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:7167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7168,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:7174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7175,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unicodeobject.c:7178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7179,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: 7181
      start: 7127
    functionDepth: 4
    functionLinenumber: 7127
    functionLinenumberEnd: 7181
    functionName: unicode_encode_call_errorhandler
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - PyBytes_Check
    - PyErr_SetString
    - PyCodec_LookupError
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyTuple_Check
    - make_encode_exception
    - Py_DECREF
    - PyErr_Format
    - PyArg_ParseTuple
    - PyObject_CallOneArg
    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:7199,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7200,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7201,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/unicodeobject.c:7205,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:7208,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:7213,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:7216,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:7231,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:7239,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7243,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:7247,1
    - Dst: backslashreplace
      Src: /src/cpython/Objects/unicodeobject.c:7257,1
    - Dst: xmlcharrefreplace
      Src: /src/cpython/Objects/unicodeobject.c:7267,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:7276,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7287,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:7291,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/unicodeobject.c:7299,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:7315,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:7317,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:7318,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7321,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:7321,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7324,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:7325,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7328,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7332,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7332,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7333,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7334,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/unicodeobject.c:7337,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:7341,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:7345,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7350,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7354,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7355,1
    - Dst: PyBytesWriter_FinishWithPointer
      Src: /src/cpython/Objects/unicodeobject.c:7356,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7359,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:7360,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7361,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7362,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 114
    argCount: 3
    argNames:
    - unicode
    - errors
    - limit
    argTypes:
    - PyObject*
    - char*
    - Py_UCS4
    assertStmts:
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 7320
        line_start: 7320
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (collstart != collend)
      pos:
        line_end: 7286
        line_start: 7286
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 7331
        line_start: 7331
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (writer->overallocate || pos == size)
      pos:
        line_end: 7349
        line_start: 7349
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7364
      start: 7183
    functionDepth: 8
    functionLinenumber: 7183
    functionLinenumberEnd: 7364
    functionName: unicode_encode_ucs1
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_encode_call_errorhandler
    - PyUnicode_IS_ASCII
    - PyBytes_Check
    - backslashreplace
    - memcpy
    - assert
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_Check
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyBytesWriter_FinishWithPointer
    - raise_encode_exception
    - PyBytesWriter_Create
    - PyUnicode_READ
    - PyBytesWriter_Discard
    - xmlcharrefreplace
    - PyBytesWriter_GetData
    - PyBytes_GET_SIZE
    - Py_GetConstant
    - Py_CLEAR
    - memset
    - PyUnicode_GET_LENGTH
    - _Py_GetErrorHandler
    - PyBytesWriter_GrowAndUpdatePointer
    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:7369,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:7370,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:7375,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:7376,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7376,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7377,1
    - Dst: unicode_encode_ucs1
      Src: /src/cpython/Objects/unicodeobject.c:7380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7381
      start: 7366
    functionDepth: 9
    functionLinenumber: 7366
    functionLinenumberEnd: 7381
    functionName: _PyUnicode_AsLatin1String
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyBytes_FromStringAndSize
    - PyUnicode_Check
    - unicode_encode_ucs1
    - PyUnicode_GET_LENGTH
    - PyErr_BadArgument
    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:7386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7387
      start: 7383
    functionDepth: 10
    functionLinenumber: 7383
    functionLinenumberEnd: 7387
    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:7403,1
    - Dst: get_latin1_char
      Src: /src/cpython/Objects/unicodeobject.c:7407,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:7411,1
    - Dst: ascii_decode
      Src: /src/cpython/Objects/unicodeobject.c:7415,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7415,1
    - Dst: _PyUnicodeWriter_InitWithBuffer
      Src: /src/cpython/Objects/unicodeobject.c:7421,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:7432,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:7441,1
    - Dst: _PyUnicodeWriter_PrepareKind
      Src: /src/cpython/Objects/unicodeobject.c:7449,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:7455,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:7457,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:7469,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7479,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7480,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:7481,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:7484,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7485,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7486,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7488
      start: 7391
    functionDepth: 6
    functionLinenumber: 7391
    functionLinenumberEnd: 7488
    functionName: PyUnicode_DecodeASCII
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 11
    functionsReached:
    - PyUnicode_WRITE
    - unicode_decode_call_errorhandler_writer
    - PyUnicode_1BYTE_DATA
    - ascii_decode
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_PrepareKind
    - get_latin1_char
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_InitWithBuffer
    - PyUnicode_New
    - _Py_GetErrorHandler
    - Py_XDECREF
    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:7493,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:7494,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:7499,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:7500,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:7500,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7501,1
    - Dst: unicode_encode_ucs1
      Src: /src/cpython/Objects/unicodeobject.c:7502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7503
      start: 7490
    functionDepth: 9
    functionLinenumber: 7490
    functionLinenumberEnd: 7503
    functionName: _PyUnicode_AsASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - PyBytes_FromStringAndSize
    - PyUnicode_Check
    - unicode_encode_ucs1
    - PyUnicode_GET_LENGTH
    - PyErr_BadArgument
    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:7508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7509
      start: 7505
    functionDepth: 10
    functionLinenumber: 7505
    functionLinenumberEnd: 7509
    functionName: PyUnicode_AsASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    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:7536,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:7539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - code_page
    - obj
    argTypes:
    - UINT
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7540
      start: 7529
    functionDepth: 4
    functionLinenumber: 7529
    functionLinenumberEnd: 7540
    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: 7551
      start: 7542
    functionDepth: 0
    functionLinenumber: 7542
    functionLinenumberEnd: 7551
    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:7572,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Objects/unicodeobject.c:7573,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:7576,1
    - Dst: widechar_resize
      Src: /src/cpython/Objects/unicodeobject.c:7585,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Objects/unicodeobject.c:7591,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:7597,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Objects/unicodeobject.c:7599,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: 7571
        line_start: 7571
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7601
      start: 7560
    functionDepth: 2
    functionLinenumber: 7560
    functionLinenumberEnd: 7601
    functionName: decode_code_page_strict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - assert
    - MultiByteToWideChar
    - widechar_resize
    - GetLastError
    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:7636,1
    - Dst: code_page_name
      Src: /src/cpython/Objects/unicodeobject.c:7638,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:7642,1
    - Dst: make_decode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7645,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:7647,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:7648,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7655,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:7656,1
    - Dst: widechar_resize
      Src: /src/cpython/Objects/unicodeobject.c:7659,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7659,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Objects/unicodeobject.c:7671,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7673,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:7676,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Objects/unicodeobject.c:7685,1
    - Dst: unicode_decode_call_errorhandler_wchar
      Src: /src/cpython/Objects/unicodeobject.c:7703,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:7715,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7721,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/unicodeobject.c:7724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7727,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7728,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7729,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: 7635
        line_start: 7635
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (out - *buf <= *bufsize)
      pos:
        line_end: 7720
        line_start: 7720
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7731
      start: 7610
    functionDepth: 6
    functionLinenumber: 7610
    functionLinenumberEnd: 7731
    functionName: decode_code_page_errors
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - strcmp
    - PyErr_NoMemory
    - GetLastError
    - PyCodec_StrictErrors
    - Py_ARRAY_LENGTH
    - code_page_name
    - widechar_resize
    - MultiByteToWideChar
    - make_decode_exception
    - unicode_decode_call_errorhandler_wchar
    - Py_SAFE_DOWNCAST
    - Py_CLEAR
    - memcpy
    - Py_XDECREF
    - 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:7743,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:7747,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:7773,1
    - Dst: decode_code_page_strict
      Src: /src/cpython/Objects/unicodeobject.c:7776,1
    - Dst: decode_code_page_errors
      Src: /src/cpython/Objects/unicodeobject.c:7779,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7782,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:7785,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Objects/unicodeobject.c:7796,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:7797,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: 7781
        line_start: 7781
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7799
      start: 7733
    functionDepth: 7
    functionLinenumber: 7733
    functionLinenumberEnd: 7799
    functionName: decode_code_page_stateful
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - decode_code_page_strict
    - _Py_RETURN_UNICODE_EMPTY
    - decode_code_page_errors
    - PyErr_SetString
    - PyErr_BadInternalCall
    - 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:7808,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: 7809
      start: 7801
    functionDepth: 8
    functionLinenumber: 7801
    functionLinenumberEnd: 7809
    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:7817,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: 7818
      start: 7811
    functionDepth: 8
    functionLinenumber: 7811
    functionLinenumberEnd: 7818
    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:7825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7826
      start: 7820
    functionDepth: 9
    functionLinenumber: 7820
    functionLinenumberEnd: 7826
    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:7839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - code_page
    - errors
    argTypes:
    - UINT
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7844
      start: 7828
    functionDepth: 0
    functionLinenumber: 7828
    functionLinenumberEnd: 7844
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: encode_code_page_flags
      Src: /src/cpython/Objects/unicodeobject.c:7863,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7870,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:7877,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:7880,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:7881,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7885,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Objects/unicodeobject.c:7888,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:7902,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:7906,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:7910,1
    - Dst: PyBytesWriter_Grow
      Src: /src/cpython/Objects/unicodeobject.c:7911,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:7914,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Objects/unicodeobject.c:7918,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:7931,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:7935,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Objects/unicodeobject.c:7939,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 6
    argNames:
    - code_page
    - writer
    - unicode
    - offset
    - len
    - errors
    argTypes:
    - UINT
    - PyBytesWriter**
    - PyObject*
    - Py_ssize_t
    - int
    - char*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 7869
        line_start: 7869
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (size <= INT_MAX)
      pos:
        line_end: 7884
        line_start: 7884
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7941
      start: 7853
    functionDepth: 4
    functionLinenumber: 7853
    functionLinenumberEnd: 7941
    functionName: encode_code_page_strict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyBytesWriter_GetData
    - GetLastError
    - PyBytesWriter_Create
    - WideCharToMultiByte
    - Py_CLEAR
    - PyUnicode_Substring
    - PyMem_Free
    - assert
    - encode_code_page_flags
    - PyUnicode_AsWideCharString
    - PyBytesWriter_Grow
    - PyBytesWriter_GetSize
    linkageType: ''
    returnType: int
    signature: "int encode_code_page_strict(UINT code_page, PyBytesWriter **writer,\n
      \                       PyObject *unicode, Py_ssize_t offset, int len,\n                        const
      char* errors)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: encode_code_page_flags
      Src: /src/cpython/Objects/unicodeobject.c:7955,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:7974,1
    - Dst: code_page_name
      Src: /src/cpython/Objects/unicodeobject.c:7976,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:7980,1
    - Dst: make_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:7983,1
    - Dst: PyCodec_StrictErrors
      Src: /src/cpython/Objects/unicodeobject.c:7985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:7986,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:7988,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:7997,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:7998,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8001,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:8005,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8009,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:8013,1
    - Dst: PyBytesWriter_Grow
      Src: /src/cpython/Objects/unicodeobject.c:8014,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8017,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8023,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:8031,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:8032,1
    - Dst: WideCharToMultiByte
      Src: /src/cpython/Objects/unicodeobject.c:8036,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8038,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8044,1
    - Dst: GetLastError
      Src: /src/cpython/Objects/unicodeobject.c:8049,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Objects/unicodeobject.c:8050,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:8054,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:8062,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:8063,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/unicodeobject.c:8066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8068,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8072,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8072,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8080,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/unicodeobject.c:8083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8085,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:8089,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:8090,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8092,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8106,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8110,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:8111,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:8111,1
    - Dst: PyBytesWriter_Resize
      Src: /src/cpython/Objects/unicodeobject.c:8112,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8118,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8119,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8120,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 118
    argCount: 6
    argNames:
    - code_page
    - writer
    - unicode
    - unicode_offset
    - insize
    - errors
    argTypes:
    - UINT
    - PyBytesWriter**
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (insize > 0)
      pos:
        line_end: 7973
        line_start: 7973
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (outsize <= PyBytesWriter_GetSize(*writer))
      pos:
        line_end: 8110
        line_start: 8110
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 8122
      start: 7950
    functionDepth: 5
    functionLinenumber: 7950
    functionLinenumberEnd: 8122
    functionName: encode_code_page_errors
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_encode_call_errorhandler
    - strcmp
    - PyBytes_Check
    - WideCharToMultiByte
    - memcpy
    - assert
    - GetLastError
    - Py_UNICODE_LOW_SURROGATE
    - PyErr_SetFromWindowsErr
    - PyUnicode_READ_CHAR
    - PyErr_NoMemory
    - PyUnicode_KIND
    - PyUnicode_DATA
    - Py_XDECREF
    - PyBytes_AS_STRING
    - raise_encode_exception
    - Py_ARRAY_LENGTH
    - PyBytesWriter_Create
    - Py_UNICODE_HIGH_SURROGATE
    - PyUnicode_READ
    - PyBytesWriter_Resize
    - PyBytesWriter_GetData
    - Py_DECREF
    - PyBytesWriter_GetSize
    - PyBytes_GET_SIZE
    - PyCodec_StrictErrors
    - code_page_name
    - PyUnicode_GET_LENGTH
    - PyBytesWriter_GrowAndUpdatePointer
    - make_encode_exception
    - encode_code_page_flags
    - PyBytesWriter_Grow
    linkageType: ''
    returnType: int
    signature: "int encode_code_page_errors(UINT code_page, PyBytesWriter **writer,\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:8135,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:8136,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:8143,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/unicodeobject.c:8148,1
    - Dst: encode_code_page_strict
      Src: /src/cpython/Objects/unicodeobject.c:8165,1
    - Dst: encode_code_page_errors
      Src: /src/cpython/Objects/unicodeobject.c:8169,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:8173,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:8181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - code_page
    - unicode
    - errors
    argTypes:
    - int
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8182
      start: 8125
    functionDepth: 8
    functionLinenumber: 8125
    functionLinenumberEnd: 8182
    functionName: PyUnicode_EncodeCodePage
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - Py_GetConstant
    - encode_code_page_errors
    - PyErr_SetString
    - PyUnicode_Check
    - PyBytesWriter_Discard
    - PyUnicode_GET_LENGTH
    - PyBytesWriter_Finish
    - encode_code_page_strict
    - PyErr_BadArgument
    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:8188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8189
      start: 8185
    functionDepth: 9
    functionLinenumber: 8185
    functionLinenumberEnd: 8189
    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:8214,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:8215,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:8216,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:8228,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:8233,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8280,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:8289,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:8299,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8303,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8304,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8308,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8309,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: 8227
        line_start: 8227
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 8311
      start: 8197
    functionDepth: 6
    functionLinenumber: 8197
    functionLinenumberEnd: 8311
    functionName: charmap_decode_string
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_WriteCharInline
    - PyUnicode_KIND
    - PyUnicode_DATA
    - _PyUnicodeWriter_Prepare
    - PyUnicode_READ
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - assert
    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:8333,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/unicodeobject.c:8337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8338,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicodeobject.c:8344,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:8346,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:8355,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/unicodeobject.c:8356,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:8360,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:8366,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:8369,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8370,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8371,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:8374,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:8379,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:8385,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:8389,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:8395,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/cpython/Objects/unicodeobject.c:8398,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8406,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8407,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8411,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8412,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:8413,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: 8415
      start: 8313
    functionDepth: 9
    functionLinenumber: 8313
    functionLinenumberEnd: 8415
    functionName: charmap_decode_mapping
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_decode_call_errorhandler_writer
    - PyLong_FromLong
    - _PyUnicodeWriter_WriteCharInline
    - PyUnicode_READ_CHAR
    - PyErr_SetString
    - PyUnicode_Check
    - PyLong_Check
    - Py_CLEAR
    - PyErr_Clear
    - PyLong_AsLong
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - Py_XDECREF
    - _PyUnicodeWriter_WriteStr
    - 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:8427,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:8430,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:8431,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:8433,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:8436,1
    - Dst: charmap_decode_string
      Src: /src/cpython/Objects/unicodeobject.c:8437,1
    - Dst: charmap_decode_mapping
      Src: /src/cpython/Objects/unicodeobject.c:8441,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:8444,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:8447,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: 8449
      start: 8417
    functionDepth: 10
    functionLinenumber: 8417
    functionLinenumberEnd: 8449
    functionName: PyUnicode_DecodeCharmap
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_DecodeLatin1
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Prepare
    - charmap_decode_string
    - charmap_decode_mapping
    - PyUnicode_CheckExact
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    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:8475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct encoding_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8477
      start: 8471
    functionDepth: 0
    functionLinenumber: 8471
    functionLinenumberEnd: 8477
    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:8509,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8509,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:8510,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:8513,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:8514,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:8515,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8515,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:8516,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:8517,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8522,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8526,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/unicodeobject.c:8546,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8550,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:8551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8553,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:8556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8559,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:8562,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8564,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8566,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:8574,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:8577,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/unicodeobject.c:8580,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8587,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:8588,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:8589,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8593,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 1
    argNames:
    - string
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8607
      start: 8493
    functionDepth: 11
    functionLinenumber: 8493
    functionLinenumberEnd: 8607
    functionName: PyUnicode_BuildEncodingMap
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_NoMemory
    - PyUnicode_READ
    - _PyObject_Init
    - PyUnicode_Check
    - PyDict_SetItem
    - Py_MIN
    - PyObject_Malloc
    - memset
    - PyUnicode_GET_LENGTH
    - memcpy
    - Py_DECREF
    - PyErr_BadArgument
    - PyDict_New
    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: 8638
      start: 8609
    functionDepth: 0
    functionLinenumber: 8609
    functionLinenumberEnd: 8638
    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:8648,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/unicodeobject.c:8653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8654,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicodeobject.c:8660,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:8662,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:8669,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/unicodeobject.c:8670,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:8672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8674,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:8680,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:8684,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:8686,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8687,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - c
    - mapping
    - replace
    argTypes:
    - Py_UCS4
    - PyObject*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8690
      start: 8645
    functionDepth: 9
    functionLinenumber: 8645
    functionLinenumberEnd: 8690
    functionName: charmapencode_lookup
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_Check
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Clear
    - PyLong_AsLong
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Py_DECREF
    - PyMapping_GetOptionalItem
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      charmapencode_lookup(Py_UCS4 c, PyObject *mapping, unsigned char *replace)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:8695,1
    - Dst: PyBytesWriter_Resize
      Src: /src/cpython/Objects/unicodeobject.c:8699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - writer
    - outpos
    - requiredsize
    argTypes:
    - PyBytesWriter*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8700
      start: 8692
    functionDepth: 2
    functionLinenumber: 8692
    functionLinenumberEnd: 8700
    functionName: charmapencode_resize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBytesWriter_GetSize
    - PyBytesWriter_Resize
    linkageType: ''
    returnType: int
    signature: int charmapencode_resize(PyBytesWriter *writer, Py_ssize_t *outpos,
      Py_ssize_t requiredsize)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:8718,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:8720,1
    - Dst: encoding_map_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8721,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:8728,1
    - Dst: _PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8732,1
    - Dst: charmapencode_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8741,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:8744,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:8747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8748,1
    - Dst: _PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8751,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/unicodeobject.c:8755,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:8756,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:8759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8760,1
    - Dst: _PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8763,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8768,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - c
    - mapping
    - writer
    - outpos
    argTypes:
    - Py_UCS4
    - PyObject*
    - PyBytesWriter*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8770
      start: 8711
    functionDepth: 10
    functionLinenumber: 8711
    functionLinenumberEnd: 8770
    functionName: charmapencode_output
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - encoding_map_lookup
    - _PyBytesWriter_GetData
    - _PyBytesWriter_GetSize
    - Py_IS_TYPE
    - charmapencode_lookup
    - charmapencode_resize
    - PyLong_Check
    - memcpy
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: charmapencode_result
    signature: "charmapencode_result charmapencode_output(Py_UCS4 c, PyObject *mapping,\n
      \                    PyBytesWriter *writer, Py_ssize_t *outpos)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8797,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:8802,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8803,1
    - Dst: encoding_map_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8804,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8811,1
    - Dst: charmapencode_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8819,1
    - Dst: _Py_GetErrorHandler
      Src: /src/cpython/Objects/unicodeobject.c:8825,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8829,1
    - Dst: charmapencode_output
      Src: /src/cpython/Objects/unicodeobject.c:8834,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8839,1
    - Dst: sprintf
      Src: /src/cpython/Objects/unicodeobject.c:8853,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:8853,1
    - Dst: charmapencode_output
      Src: /src/cpython/Objects/unicodeobject.c:8855,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8859,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:8868,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/unicodeobject.c:8873,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:8875,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Objects/unicodeobject.c:8877,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:8881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8882,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:8885,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8885,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Objects/unicodeobject.c:8886,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8889,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8893,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:8894,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:8895,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8897,1
    - Dst: charmapencode_output
      Src: /src/cpython/Objects/unicodeobject.c:8898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8904,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/unicodeobject.c:8905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:8910,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    argCount: 9
    argNames:
    - unicode
    - inpos
    - mapping
    - exceptionObject
    - error_handler
    - error_handler_obj
    - errors
    - writer
    - respos
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyObject*
    - PyObject**
    - _Py_error_handler*
    - PyObject**
    - char*
    - PyBytesWriter*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8913
      start: 8774
    functionDepth: 11
    functionLinenumber: 8774
    functionLinenumberEnd: 8913
    functionName: charmap_encoding_error
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - encoding_map_lookup
    - unicode_encode_call_errorhandler
    - charmapencode_output
    - PyBytes_Check
    - memcpy
    - PyUnicode_READ_CHAR
    - PyUnicode_DATA
    - PyUnicode_KIND
    - charmapencode_resize
    - sprintf
    - raise_encode_exception
    - Py_IS_TYPE
    - PyUnicode_READ
    - PyBytes_AsString
    - PyBytesWriter_GetData
    - Py_DECREF
    - PyBytesWriter_GetSize
    - PyBytes_Size
    - charmapencode_lookup
    - PyUnicode_GET_LENGTH
    - _Py_GetErrorHandler
    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    PyBytesWriter *writer,
      Py_ssize_t *respos)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unicode_encode_ucs1
      Src: /src/cpython/Objects/unicodeobject.c:8922,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:8925,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/unicodeobject.c:8927,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:8929,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:8930,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/unicodeobject.c:8939,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:8950,1
    - Dst: _PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8951,1
    - Dst: _PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:8952,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8955,1
    - Dst: encoding_map_lookup
      Src: /src/cpython/Objects/unicodeobject.c:8958,1
    - Dst: charmapencode_resize
      Src: /src/cpython/Objects/unicodeobject.c:8965,1
    - Dst: _PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8968,1
    - Dst: _PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:8969,1
    - Dst: charmap_encoding_error
      Src: /src/cpython/Objects/unicodeobject.c:8978,1
    - Dst: _PyBytesWriter_GetData
      Src: /src/cpython/Objects/unicodeobject.c:8984,1
    - Dst: _PyBytesWriter_GetSize
      Src: /src/cpython/Objects/unicodeobject.c:8985,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:8990,1
    - Dst: charmapencode_output
      Src: /src/cpython/Objects/unicodeobject.c:8992,1
    - Dst: charmap_encoding_error
      Src: /src/cpython/Objects/unicodeobject.c:8997,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9011,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9012,1
    - Dst: PyBytesWriter_FinishWithSize
      Src: /src/cpython/Objects/unicodeobject.c:9015,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/unicodeobject.c:9018,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9019,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9020,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - unicode
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9022
      start: 8915
    functionDepth: 12
    functionLinenumber: 8915
    functionLinenumberEnd: 9022
    functionName: _PyUnicode_EncodeCharmap
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_GetConstant
    - _PyBytesWriter_GetData
    - encoding_map_lookup
    - _PyBytesWriter_GetSize
    - PyUnicode_KIND
    - PyUnicode_DATA
    - Py_IS_TYPE
    - charmapencode_output
    - PyBytesWriter_Create
    - PyUnicode_READ
    - charmap_encoding_error
    - PyBytesWriter_Discard
    - charmapencode_resize
    - unicode_encode_ucs1
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyBytesWriter_FinishWithSize
    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:9028,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:9029,1
    - Dst: _PyUnicode_EncodeCharmap
      Src: /src/cpython/Objects/unicodeobject.c:9032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - unicode
    - mapping
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9033
      start: 9024
    functionDepth: 13
    functionLinenumber: 9024
    functionLinenumberEnd: 9033
    functionName: PyUnicode_AsCharmapString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_EncodeCharmap
    - PyErr_BadArgument
    - PyUnicode_Check
    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:9043,1
    - Dst: PyUnicodeTranslateError_SetStart
      Src: /src/cpython/Objects/unicodeobject.c:9047,1
    - Dst: PyUnicodeTranslateError_SetEnd
      Src: /src/cpython/Objects/unicodeobject.c:9049,1
    - Dst: PyUnicodeTranslateError_SetReason
      Src: /src/cpython/Objects/unicodeobject.c:9051,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:9055,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: 9057
      start: 9036
    functionDepth: 3
    functionLinenumber: 9036
    functionLinenumberEnd: 9057
    functionName: make_translate_exception
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeTranslateError_SetEnd
    - PyUnicodeTranslateError_SetReason
    - Py_CLEAR
    - PyUnicodeTranslateError_SetStart
    - _PyUnicodeTranslateError_Create
    linkageType: ''
    returnType: void
    signature: "void make_translate_exception(PyObject **exceptionObject,\n                         PyObject
      *unicode,\n                         Py_ssize_t startpos, Py_ssize_t endpos,\n
      \                        const char *reason)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_LookupError
      Src: /src/cpython/Objects/unicodeobject.c:9078,1
    - Dst: make_translate_exception
      Src: /src/cpython/Objects/unicodeobject.c:9083,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/unicodeobject.c:9088,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/unicodeobject.c:9091,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:9092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9093,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/unicodeobject.c:9096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9098,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9102,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9105,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:9106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9107,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unicodeobject.c:9110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9111,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: 9113
      start: 9063
    functionDepth: 4
    functionLinenumber: 9063
    functionLinenumberEnd: 9113
    functionName: unicode_translate_call_errorhandler
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - PyCodec_LookupError
    - PyUnicode_GET_LENGTH
    - PyTuple_Check
    - PyErr_Format
    - Py_DECREF
    - PyArg_ParseTuple
    - make_translate_exception
    - PyObject_CallOneArg
    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:9123,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Objects/unicodeobject.c:9128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9129,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/unicodeobject.c:9136,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:9138,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:9148,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/unicodeobject.c:9149,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:9151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9154,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:9161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:9167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9169,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: 9172
      start: 9120
    functionDepth: 9
    functionLinenumber: 9120
    functionLinenumberEnd: 9172
    functionName: charmaptranslate_lookup
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetString
    - PyUnicode_Check
    - PyLong_Check
    - PyErr_Clear
    - PyLong_AsLong
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Py_DECREF
    - 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:9184,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:9189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9196,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:9200,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/cpython/Objects/unicodeobject.c:9201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9205,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:9209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9210,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:9214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - ch
    - mapping
    - writer
    argTypes:
    - Py_UCS4
    - PyObject*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9221
      start: 9177
    functionDepth: 10
    functionLinenumber: 9177
    functionLinenumberEnd: 9221
    functionName: charmaptranslate_output
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteCharInline
    - PyUnicode_Check
    - PyLong_Check
    - Py_DECREF
    - _PyUnicodeWriter_WriteStr
    - charmaptranslate_lookup
    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:9231,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:9244,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:9252,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9253,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:9256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - mapping
    - ch
    - translate
    argTypes:
    - PyObject*
    - Py_UCS1
    - Py_UCS1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9270
      start: 9223
    functionDepth: 10
    functionLinenumber: 9223
    functionLinenumberEnd: 9270
    functionName: unicode_fast_translate_lookup
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyUnicode_Check
    - PyLong_Check
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - charmaptranslate_lookup
    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:9286,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:9288,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9290,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9293,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9293,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9294,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9294,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9295,1
    - Dst: unicode_fast_translate_lookup
      Src: /src/cpython/Objects/unicodeobject.c:9301,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9314,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9321,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9322,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: 9292
        line_start: 9292
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_GET_LENGTH(writer->buffer) == len)
      pos:
        line_end: 9293
        line_start: 9293
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch2 < 128)
      pos:
        line_end: 9313
        line_start: 9313
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9324
      start: 9275
    functionDepth: 11
    functionLinenumber: 9275
    functionLinenumberEnd: 9324
    functionName: unicode_fast_translate
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_IS_ASCII
    - unicode_fast_translate_lookup
    - memset
    - PyUnicode_GET_LENGTH
    - 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:9345,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9349,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9350,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9351,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Objects/unicodeobject.c:9354,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:9358,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/unicodeobject.c:9359,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:9362,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9364,1
    - Dst: unicode_fast_translate
      Src: /src/cpython/Objects/unicodeobject.c:9365,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:9367,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:9371,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9387,1
    - Dst: charmaptranslate_output
      Src: /src/cpython/Objects/unicodeobject.c:9388,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9406,1
    - Dst: charmaptranslate_lookup
      Src: /src/cpython/Objects/unicodeobject.c:9407,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9409,1
    - Dst: unicode_translate_call_errorhandler
      Src: /src/cpython/Objects/unicodeobject.c:9419,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/unicodeobject.c:9424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9428,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9432,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9433,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:9434,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:9437,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9438,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:9439,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 3
    argNames:
    - input
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9441
      start: 9326
    functionDepth: 12
    functionLinenumber: 9326
    functionLinenumberEnd: 9441
    functionName: _PyUnicode_TranslateCharmap
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyUnicode_IS_ASCII
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_KIND
    - PyUnicode_DATA
    - unicode_fast_translate
    - charmaptranslate_output
    - Py_XDECREF
    - unicode_translate_call_errorhandler
    - charmaptranslate_lookup
    - _PyUnicodeWriter_Init
    - PyUnicode_READ
    - PyUnicode_FromObject
    - Py_DECREF
    - PyUnicode_GET_LENGTH
    - _PyUnicodeWriter_WriteStr
    - PyErr_BadArgument
    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:9448,1
    - Dst: _PyUnicode_TranslateCharmap
      Src: /src/cpython/Objects/unicodeobject.c:9450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - str
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9451
      start: 9443
    functionDepth: 13
    functionLinenumber: 9443
    functionLinenumberEnd: 9451
    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:9456,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:9457,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9460,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:9462,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9465,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:9466,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9471,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9472,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9473,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9476,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:9480,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/cpython/Objects/unicodeobject.c:9484,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9488,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9495,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:9495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 9494
        line_start: 9494
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9497
      start: 9453
    functionDepth: 4
    functionLinenumber: 9453
    functionLinenumberEnd: 9497
    functionName: _PyUnicode_TransformDecimalAndSpaceToASCII
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_IS_ASCII
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_READ
    - PyUnicode_Check
    - Py_UNICODE_ISSPACE
    - PyErr_BadInternalCall
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - assert
    - _PyUnicode_LENGTH
    - _PyUnicode_CheckConsistency
    - Py_NewRef
    - Py_UNICODE_TODECIMAL
    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: 9520
      start: 9502
    functionDepth: 0
    functionLinenumber: 9502
    functionLinenumberEnd: 9520
    functionName: ADJUST_INDICES
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_INDICES(start, end, len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9531,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9532,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9536,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9537,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/unicodeobject.c:9538,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9542,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9543,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9545,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:9546,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:9555,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9563,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9563,1
    - Dst: asciilib_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9564,1
    - Dst: ucs1lib_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9566,1
    - Dst: ucs2lib_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9569,1
    - Dst: ucs4lib_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9572,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:9575,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9581,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:9581,1
    - Dst: asciilib_rfind_slice
      Src: /src/cpython/Objects/unicodeobject.c:9582,1
    - Dst: ucs1lib_rfind_slice
      Src: /src/cpython/Objects/unicodeobject.c:9584,1
    - Dst: ucs2lib_rfind_slice
      Src: /src/cpython/Objects/unicodeobject.c:9587,1
    - Dst: ucs4lib_rfind_slice
      Src: /src/cpython/Objects/unicodeobject.c:9590,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:9593,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:9597,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9597,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:9599,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: 9596
        line_start: 9596
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9602
      start: 9521
    functionDepth: 2
    functionLinenumber: 9521
    functionLinenumberEnd: 9602
    functionName: any_find_slice
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - unicode_askind
    - assert
    - findchar
    - PyUnicode_DATA
    - PyUnicode_KIND
    - asciilib_find_slice
    - Py_UNREACHABLE
    - PyMem_Free
    - ADJUST_INDICES
    - PyUnicode_READ
    - ucs4lib_rfind_slice
    - asciilib_rfind_slice
    - ucs1lib_find_slice
    - ucs2lib_rfind_slice
    - ucs2lib_find_slice
    - ucs1lib_rfind_slice
    - PyUnicode_GET_LENGTH
    - ucs4lib_find_slice
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t any_find_slice(PyObject* s1, PyObject* s2,\n               Py_ssize_t
      start,\n               Py_ssize_t end,\n               int direction)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9611,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9611,1
    - Dst: unicode_count_impl
      Src: /src/cpython/Objects/unicodeobject.c:9614,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: 9615
      start: 9605
    functionDepth: 1
    functionLinenumber: 9605
    functionLinenumberEnd: 9615
    functionName: PyUnicode_Count
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - unicode_count_impl
    - ensure_unicode
    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:9624,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9624,1
    - Dst: any_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:9627,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: 9628
      start: 9617
    functionDepth: 3
    functionLinenumber: 9617
    functionLinenumberEnd: 9628
    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:9637,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/unicodeobject.c:9638,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9641,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:9642,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9642,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: 9648
      start: 9630
    functionDepth: 1
    functionLinenumber: 9630
    functionLinenumberEnd: 9648
    functionName: PyUnicode_FindChar
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 13
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - ADJUST_INDICES
    - findchar
    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:9665,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9665,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9666,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9670,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9673,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9674,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9675,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9676,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9677,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9684,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9685,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9686,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9687,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:9690,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9691,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9693,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9694,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9702,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9703,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: 9711
      start: 9650
    functionDepth: 1
    functionLinenumber: 9650
    functionLinenumberEnd: 9711
    functionName: tailmatch
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - memcmp
    - PyUnicode_READ
    - PyUnicode_GET_LENGTH
    - ADJUST_INDICES
    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:9720,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:9720,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:9723,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: 9724
      start: 9713
    functionDepth: 0
    functionLinenumber: 9713
    functionLinenumberEnd: 9724
    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:9729,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9730,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:9734,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9737,1
    - Dst: _Py_bytes_lower
      Src: /src/cpython/Objects/unicodeobject.c:9739,1
    - Dst: _Py_bytes_upper
      Src: /src/cpython/Objects/unicodeobject.c:9741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - lower
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9743
      start: 9726
    functionDepth: 4
    functionLinenumber: 9726
    functionLinenumberEnd: 9743
    functionName: ascii_upper_or_lower
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_upper
    - PyUnicode_DATA
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - _Py_bytes_lower
    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:9758,1
    - Dst: _PyUnicode_IsCaseIgnorable
      Src: /src/cpython/Objects/unicodeobject.c:9759,1
    - Dst: _PyUnicode_IsCased
      Src: /src/cpython/Objects/unicodeobject.c:9762,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9765,1
    - Dst: _PyUnicode_IsCaseIgnorable
      Src: /src/cpython/Objects/unicodeobject.c:9766,1
    - Dst: _PyUnicode_IsCased
      Src: /src/cpython/Objects/unicodeobject.c:9769,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: 9772
      start: 9745
    functionDepth: 2
    functionLinenumber: 9745
    functionLinenumberEnd: 9772
    functionName: handle_capital_sigma
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - _PyUnicode_IsCased
    - _PyUnicode_IsCaseIgnorable
    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:9780,1
    - Dst: _PyUnicode_ToLowerFull
      Src: /src/cpython/Objects/unicodeobject.c:9783,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: 9784
      start: 9774
    functionDepth: 3
    functionLinenumber: 9774
    functionLinenumberEnd: 9784
    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:9793,1
    - Dst: _PyUnicode_ToTitleFull
      Src: /src/cpython/Objects/unicodeobject.c:9794,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9796,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:9800,1
    - Dst: lower_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:9801,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9803,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: 9808
      start: 9786
    functionDepth: 4
    functionLinenumber: 9786
    functionLinenumberEnd: 9808
    functionName: do_capitalize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - lower_ucs4
    - PyUnicode_READ
    - Py_MAX
    - _PyUnicode_ToTitleFull
    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:9815,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:9817,1
    - Dst: lower_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:9818,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:9820,1
    - Dst: _PyUnicode_ToUpperFull
      Src: /src/cpython/Objects/unicodeobject.c:9821,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9828,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: 9833
      start: 9810
    functionDepth: 4
    functionLinenumber: 9810
    functionLinenumberEnd: 9833
    functionName: do_swapcase
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISUPPER
    - Py_UNICODE_ISLOWER
    - PyUnicode_READ
    - _PyUnicode_ToUpperFull
    - Py_MAX
    - lower_ucs4
    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:9842,1
    - Dst: lower_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:9845,1
    - Dst: _PyUnicode_ToUpperFull
      Src: /src/cpython/Objects/unicodeobject.c:9847,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9849,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: 9854
      start: 9835
    functionDepth: 4
    functionLinenumber: 9835
    functionLinenumberEnd: 9854
    functionName: do_upper_or_lower
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - lower_ucs4
    - PyUnicode_READ
    - _PyUnicode_ToUpperFull
    - Py_MAX
    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:9859,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: 9860
      start: 9856
    functionDepth: 5
    functionLinenumber: 9856
    functionLinenumberEnd: 9860
    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:9865,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: 9866
      start: 9862
    functionDepth: 5
    functionLinenumber: 9862
    functionLinenumberEnd: 9866
    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:9874,1
    - Dst: _PyUnicode_ToFoldedFull
      Src: /src/cpython/Objects/unicodeobject.c:9876,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9878,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: 9883
      start: 9868
    functionDepth: 3
    functionLinenumber: 9868
    functionLinenumberEnd: 9883
    functionName: do_casefold
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - _PyUnicode_ToFoldedFull
    - Py_MAX
    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:9893,1
    - Dst: lower_ucs4
      Src: /src/cpython/Objects/unicodeobject.c:9898,1
    - Dst: _PyUnicode_ToTitleFull
      Src: /src/cpython/Objects/unicodeobject.c:9900,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:9903,1
    - Dst: _PyUnicode_IsCased
      Src: /src/cpython/Objects/unicodeobject.c:9907,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: 9910
      start: 9885
    functionDepth: 4
    functionLinenumber: 9885
    functionLinenumberEnd: 9910
    functionName: do_title
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_IsCased
    - PyUnicode_READ
    - Py_MAX
    - 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:9923,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9924,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:9925,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:9927,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:9930,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:9932,1
    - Dst: perform
      Src: /src/cpython/Objects/unicodeobject.c:9933,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:9934,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:9938,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:9939,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:9942,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/cpython/Objects/unicodeobject.c:9945,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:9948,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:9951,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:9954,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9956
      start: 9912
    functionDepth: 4
    functionLinenumber: 9912
    functionLinenumberEnd: 9956
    functionName: case_operation
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - perform
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyErr_NoMemory
    - PyErr_SetString
    - _PyUnicode_CONVERT_BYTES
    - Py_UNREACHABLE
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - memcpy
    - PyMem_Malloc
    - PyMem_Free
    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:9966,1
    - Dst: Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST
      Src: /src/cpython/Objects/unicodeobject.c:9971,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/cpython/Objects/unicodeobject.c:9973,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:9974,1
    - Dst: _PyUnicode_JoinArray
      Src: /src/cpython/Objects/unicodeobject.c:9975,1
    - Dst: Py_END_CRITICAL_SECTION_SEQUENCE_FAST
      Src: /src/cpython/Objects/unicodeobject.c:9977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:9979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - separator
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9981
      start: 9958
    functionDepth: 3
    functionLinenumber: 9958
    functionLinenumberEnd: 9981
    functionName: PyUnicode_Join
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - PySequence_Fast_GET_SIZE
    - PySequence_Fast
    - PySequence_Fast_ITEMS
    - Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST
    - Py_DECREF
    - _PyUnicode_JoinArray
    - Py_END_CRITICAL_SECTION_SEQUENCE_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:10000,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:10006,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:10008,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Objects/unicodeobject.c:10017,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:10024,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:10025,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:10028,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10032,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10033,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/unicodeobject.c:10036,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:10055,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:10056,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:10059,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10062,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10063,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10064,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10069,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10075,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10075,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10081,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10090,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10091,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10093,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10103,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10109,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10111,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10112,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10117,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10117,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10118,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:10127,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10131,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:10133,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10137,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10137,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:10140,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10141,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:10141,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:10145,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:10146,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: 10117
        line_start: 10116
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (res_offset == PyUnicode_GET_LENGTH(res))
      pos:
        line_end: 10136
        line_start: 10136
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 10140
        line_start: 10140
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10148
      start: 9983
    functionDepth: 6
    functionLinenumber: 9983
    functionLinenumberEnd: 10148
    functionName: _PyUnicode_JoinArray
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - memcpy
    - assert
    - Py_TYPE
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_Check
    - _PyUnicode_FastCopyCharacters
    - Py_XDECREF
    - Py_INCREF
    - PyErr_SetString
    - PyUnicode_FromOrdinal
    - Py_MAX
    - PyUnicode_New
    - _PyUnicode_CheckConsistency
    - PyUnicode_MAX_CHAR_VALUE
    - Py_NewRef
    - PyUnicode_CheckExact
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    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:10154,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10155,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10156,1
    - Dst: _PyUnicode_IsModifiable
      Src: /src/cpython/Objects/unicodeobject.c:10156,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10157,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10157,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10158,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10159,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10159,1
    - Dst: _PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:10160,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: (_PyUnicode_IsModifiable(unicode))
      pos:
        line_end: 10155
        line_start: 10155
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (fill_char <= PyUnicode_MAX_CHAR_VALUE(unicode))
      pos:
        line_end: 10156
        line_start: 10156
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (start >= 0)
      pos:
        line_end: 10157
        line_start: 10157
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (start + length <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 10158
        line_start: 10158
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10161
      start: 10150
    functionDepth: 3
    functionLinenumber: 10150
    functionLinenumberEnd: 10161
    functionName: _PyUnicode_FastFill
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - _PyUnicode_Fill
    - _PyUnicode_IsModifiable
    - PyUnicode_GET_LENGTH
    - assert
    - PyUnicode_MAX_CHAR_VALUE
    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:10169,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:10170,1
    - Dst: unicode_check_modifiable
      Src: /src/cpython/Objects/unicodeobject.c:10173,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10177,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10180,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10181,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10187,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:10188,1
    - Dst: _PyUnicode_FastFill
      Src: /src/cpython/Objects/unicodeobject.c:10192,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: 10194
      start: 10163
    functionDepth: 4
    functionLinenumber: 10163
    functionLinenumberEnd: 10194
    functionName: PyUnicode_Fill
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - unicode_check_modifiable
    - PyErr_SetString
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - Py_MIN
    - _PyUnicode_FastFill
    - PyUnicode_GET_LENGTH
    - PyUnicode_MAX_CHAR_VALUE
    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:10213,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10215,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10216,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10217,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10220,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10221,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10222,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10222,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10226,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10227,1
    - Dst: _PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:10229,1
    - Dst: _PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:10231,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10232,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:10233,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10233,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10234,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:10234,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: 10233
        line_start: 10233
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10236
      start: 10196
    functionDepth: 4
    functionLinenumber: 10196
    functionLinenumberEnd: 10236
    functionName: pad
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_SetString
    - _PyUnicode_Fill
    - _PyUnicode_FastCopyCharacters
    - Py_MAX
    - PyUnicode_New
    - unicode_result_unchanged
    - assert
    - _PyUnicode_LENGTH
    - _PyUnicode_CheckConsistency
    - PyUnicode_MAX_CHAR_VALUE
    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:10243,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10246,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10248,1
    - Dst: asciilib_splitlines
      Src: /src/cpython/Objects/unicodeobject.c:10249,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10250,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10251,1
    - Dst: ucs1lib_splitlines
      Src: /src/cpython/Objects/unicodeobject.c:10253,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10254,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10255,1
    - Dst: ucs2lib_splitlines
      Src: /src/cpython/Objects/unicodeobject.c:10258,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10259,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10260,1
    - Dst: ucs4lib_splitlines
      Src: /src/cpython/Objects/unicodeobject.c:10263,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10264,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10265,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - string
    - keepends
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10271
      start: 10238
    functionDepth: 1
    functionLinenumber: 10238
    functionLinenumberEnd: 10271
    functionName: PyUnicode_Splitlines
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - ucs2lib_splitlines
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_IS_ASCII
    - ensure_unicode
    - Py_UNREACHABLE
    - ucs4lib_splitlines
    - ucs1lib_splitlines
    - PyUnicode_GET_LENGTH
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - asciilib_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:10282,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10283,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10291,1
    - Dst: asciilib_split_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10292,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10293,1
    - Dst: ucs1lib_split_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10297,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10298,1
    - Dst: ucs2lib_split_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10302,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10303,1
    - Dst: ucs4lib_split_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10307,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10308,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10312,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10316,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10317,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/unicodeobject.c:10325,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/unicodeobject.c:10328,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:10328,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10331,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10332,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10334,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10341,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10341,1
    - Dst: asciilib_split
      Src: /src/cpython/Objects/unicodeobject.c:10342,1
    - Dst: ucs1lib_split
      Src: /src/cpython/Objects/unicodeobject.c:10345,1
    - Dst: ucs2lib_split
      Src: /src/cpython/Objects/unicodeobject.c:10349,1
    - Dst: ucs4lib_split
      Src: /src/cpython/Objects/unicodeobject.c:10353,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10359,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10359,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10361,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: 10358
        line_start: 10358
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10363
      start: 10273
    functionDepth: 4
    functionLinenumber: 10273
    functionLinenumberEnd: 10363
    functionName: split
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - PyUnicode_IS_ASCII
    - ucs1lib_split
    - asciilib_split
    - unicode_askind
    - assert
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_DATA
    - Py_UNREACHABLE
    - PyList_New
    - ucs2lib_split_whitespace
    - PyMem_Free
    - ucs2lib_split
    - ucs1lib_split_whitespace
    - asciilib_split_whitespace
    - PyUnicode_2BYTE_DATA
    - Py_NewRef
    - PyList_SET_ITEM
    - ucs4lib_split_whitespace
    - ucs4lib_split
    - PyUnicode_GET_LENGTH
    - PyUnicode_4BYTE_DATA
    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:10375,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10376,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10384,1
    - Dst: asciilib_rsplit_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10385,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10386,1
    - Dst: ucs1lib_rsplit_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10390,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10391,1
    - Dst: ucs2lib_rsplit_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10395,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10396,1
    - Dst: ucs4lib_rsplit_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:10400,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10401,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10405,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10408,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10409,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/unicodeobject.c:10417,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/unicodeobject.c:10420,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:10420,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10423,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10424,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10426,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10433,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10433,1
    - Dst: asciilib_rsplit
      Src: /src/cpython/Objects/unicodeobject.c:10434,1
    - Dst: ucs1lib_rsplit
      Src: /src/cpython/Objects/unicodeobject.c:10437,1
    - Dst: ucs2lib_rsplit
      Src: /src/cpython/Objects/unicodeobject.c:10441,1
    - Dst: ucs4lib_rsplit
      Src: /src/cpython/Objects/unicodeobject.c:10445,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10451,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10451,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10453,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: 10450
        line_start: 10450
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10455
      start: 10365
    functionDepth: 4
    functionLinenumber: 10365
    functionLinenumberEnd: 10455
    functionName: rsplit
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - ucs4lib_rsplit_whitespace
    - PyUnicode_IS_ASCII
    - ucs4lib_rsplit
    - asciilib_rsplit_whitespace
    - unicode_askind
    - assert
    - ucs1lib_rsplit_whitespace
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_DATA
    - ucs2lib_rsplit
    - Py_UNREACHABLE
    - ucs1lib_rsplit
    - ucs2lib_rsplit_whitespace
    - PyList_New
    - PyMem_Free
    - asciilib_rsplit
    - PyUnicode_2BYTE_DATA
    - Py_NewRef
    - PyList_SET_ITEM
    - PyUnicode_GET_LENGTH
    - PyUnicode_4BYTE_DATA
    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:10463,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10463,1
    - Dst: asciilib_find
      Src: /src/cpython/Objects/unicodeobject.c:10464,1
    - Dst: ucs1lib_find
      Src: /src/cpython/Objects/unicodeobject.c:10466,1
    - Dst: ucs2lib_find
      Src: /src/cpython/Objects/unicodeobject.c:10468,1
    - Dst: ucs4lib_find
      Src: /src/cpython/Objects/unicodeobject.c:10470,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10472,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: 10473
      start: 10457
    functionDepth: 1
    functionLinenumber: 10457
    functionLinenumberEnd: 10473
    functionName: anylib_find
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - asciilib_find
    - PyUnicode_IS_ASCII
    - ucs1lib_find
    - Py_UNREACHABLE
    - ucs2lib_find
    - ucs4lib_find
    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:10481,1
    - Dst: ucs2lib_count
      Src: /src/cpython/Objects/unicodeobject.c:10483,1
    - Dst: ucs4lib_count
      Src: /src/cpython/Objects/unicodeobject.c:10485,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10487,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: 10488
      start: 10475
    functionDepth: 1
    functionLinenumber: 10475
    functionLinenumberEnd: 10488
    functionName: anylib_count
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - ucs4lib_count
    - ucs1lib_count
    - ucs2lib_count
    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:10494,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10495,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10496,1
    - Dst: ucs1lib_replace_1char_inplace
      Src: /src/cpython/Objects/unicodeobject.c:10498,1
    - Dst: ucs2lib_replace_1char_inplace
      Src: /src/cpython/Objects/unicodeobject.c:10503,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10508,1
    - Dst: ucs4lib_replace_1char_inplace
      Src: /src/cpython/Objects/unicodeobject.c:10509,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: 10507
        line_start: 10507
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10513
      start: 10490
    functionDepth: 1
    functionLinenumber: 10490
    functionLinenumberEnd: 10513
    functionName: replace_1char_inplace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - ucs2lib_replace_1char_inplace
    - PyUnicode_DATA
    - PyUnicode_KIND
    - ucs4lib_replace_1char_inplace
    - PyUnicode_GET_LENGTH
    - assert
    - ucs1lib_replace_1char_inplace
    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:10520,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10521,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10522,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10524,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10525,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10526,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10527,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10528,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10529,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10544,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10545,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:10549,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:10553,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10564,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:10565,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:10568,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10569,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:10573,1
    - Dst: replace_1char_inplace
      Src: /src/cpython/Objects/unicodeobject.c:10574,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10583,1
    - Dst: anylib_find
      Src: /src/cpython/Objects/unicodeobject.c:10587,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10592,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10600,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10600,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10601,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10602,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10605,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10608,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10612,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10615,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10615,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10616,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10618,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10620,1
    - Dst: anylib_find
      Src: /src/cpython/Objects/unicodeobject.c:10626,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10631,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10646,1
    - Dst: anylib_count
      Src: /src/cpython/Objects/unicodeobject.c:10650,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10655,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10662,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10666,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10666,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10667,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10668,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:10671,1
    - Dst: len1 < len2 && len2 - len1 >
      Src: /src/cpython/Objects/unicodeobject.c:10677,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10678,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:10684,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10688,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:10692,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10695,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10695,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10696,1
    - Dst: anylib_find
      Src: /src/cpython/Objects/unicodeobject.c:10701,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10708,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10715,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10724,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10731,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10737,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:10743,1
    - Dst: unicode_adjust_maxchar
      Src: /src/cpython/Objects/unicodeobject.c:10750,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10756,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10756,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10757,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10757,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10758,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10758,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10760,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10762,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10764,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10765,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:10765,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10770,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10770,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10771,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10771,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10772,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10772,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10774,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10776,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10778,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:10779,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10782,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10782,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10783,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10783,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:10784,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10784,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10786,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10788,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:10790,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 226
    argCount: 4
    argNames:
    - self
    - str1
    - str2
    - maxcount
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (buf1 != PyUnicode_DATA(str1))
      pos:
        line_end: 10665
        line_start: 10665
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release1 == (buf1 != PyUnicode_DATA(str1)))
      pos:
        line_end: 10756
        line_start: 10756
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (srelease == (sbuf != PyUnicode_DATA(self)))
      pos:
        line_end: 10755
        line_start: 10755
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (srelease == (sbuf != PyUnicode_DATA(self)))
      pos:
        line_end: 10781
        line_start: 10781
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release1 == (buf1 != PyUnicode_DATA(str1)))
      pos:
        line_end: 10782
        line_start: 10782
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release2 == (buf2 != PyUnicode_DATA(str2)))
      pos:
        line_end: 10783
        line_start: 10783
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release2 == (buf2 != PyUnicode_DATA(str2)))
      pos:
        line_end: 10757
        line_start: 10757
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(u) == rkind)
      pos:
        line_end: 10614
        line_start: 10614
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 10764
        line_start: 10764
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (buf1 != PyUnicode_DATA(str1))
      pos:
        line_end: 10599
        line_start: 10599
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release1 == (buf1 != PyUnicode_DATA(str1)))
      pos:
        line_end: 10770
        line_start: 10770
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(u) == rkind)
      pos:
        line_end: 10694
        line_start: 10694
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (release2 == (buf2 != PyUnicode_DATA(str2)))
      pos:
        line_end: 10771
        line_start: 10771
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (srelease == (sbuf != PyUnicode_DATA(self)))
      pos:
        line_end: 10769
        line_start: 10769
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10792
      start: 10515
    functionDepth: 5
    functionLinenumber: 10515
    functionLinenumberEnd: 10792
    functionName: replace
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - unicode_askind
    - memcpy
    - assert
    - anylib_find
    - findchar
    - PyUnicode_KIND
    - PyUnicode_DATA
    - _PyUnicode_FastCopyCharacters
    - PyMem_Free
    - PyUnicode_READ
    - PyErr_SetString
    - Py_MAX
    - PyUnicode_New
    - unicode_result_unchanged
    - _PyUnicode_CheckConsistency
    - PyUnicode_MAX_CHAR_VALUE
    - len1 < len2 && len2 - len1 >
    - anylib_count
    - _PyUnicode_GetEmpty
    - PyUnicode_GET_LENGTH
    - unicode_adjust_maxchar
    - replace_1char_inplace
    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:10809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10810
      start: 10805
    functionDepth: 5
    functionLinenumber: 10805
    functionLinenumberEnd: 10810
    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:10825,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:10826,1
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:10827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10828
      start: 10821
    functionDepth: 5
    functionLinenumber: 10821
    functionLinenumberEnd: 10828
    functionName: unicode_capitalize_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - case_operation
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_capitalize_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:10840,1
    - Dst: ascii_upper_or_lower
      Src: /src/cpython/Objects/unicodeobject.c:10841,1
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:10842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10843
      start: 10836
    functionDepth: 5
    functionLinenumber: 10836
    functionLinenumberEnd: 10843
    functionName: unicode_casefold_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ascii_upper_or_lower
    - case_operation
    - PyUnicode_IS_ASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_casefold_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:10853,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:10854,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:10856,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10859,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:10860,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/unicodeobject.c:10864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10866
      start: 10848
    functionDepth: 1
    functionLinenumber: 10848
    functionLinenumberEnd: 10866
    functionName: convert_uc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - Py_TYPE
    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:10887,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:10888,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10890,1
    - Dst: pad
      Src: /src/cpython/Objects/unicodeobject.c:10893,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: 10894
      start: 10881
    functionDepth: 2
    functionLinenumber: 10881
    functionLinenumberEnd: 10894
    functionName: unicode_center_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - pad
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    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:10920,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:10921,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10922,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:10923,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10924,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:10925,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:10926,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:10934,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:10943,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:10946,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10949,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:10957,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:10961,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:10965,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10968,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:10976,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:10979,1
    - Dst: wmemcmp
      Src: /src/cpython/Objects/unicodeobject.c:10984,1
    - Dst: COMPARE
      Src: /src/cpython/Objects/unicodeobject.c:10991,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:10996,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11001,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11012
      start: 10898
    functionDepth: 1
    functionLinenumber: 10898
    functionLinenumberEnd: 11012
    functionName: unicode_compare
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - wmemcmp
    - PyUnicode_DATA
    - PyUnicode_KIND
    - memcmp
    - COMPARE
    - Py_UNREACHABLE
    - Py_MIN
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int unicode_compare(PyObject *str1, PyObject *str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE1
    - ','
    - TYPE2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10915
      start: 10901
    functionDepth: 0
    functionLinenumber: 10901
    functionLinenumberEnd: 10915
    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:11018,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11018,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11019,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11019,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/unicodeobject.c:11023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(str1))
      pos:
        line_end: 11017
        line_start: 11017
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(str2))
      pos:
        line_end: 11018
        line_start: 11018
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11024
      start: 11015
    functionDepth: 1
    functionLinenumber: 11015
    functionLinenumberEnd: 11024
    functionName: _PyUnicode_Equal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - unicode_eq
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_Equal(PyObject *str1, PyObject *str2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11030,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11031,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11035,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11036,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/unicodeobject.c:11041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11042
      start: 11027
    functionDepth: 2
    functionLinenumber: 11027
    functionLinenumberEnd: 11042
    functionName: PyUnicode_Equal
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - PyErr_Format
    - _PyUnicode_Equal
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Equal(PyObject *str1, PyObject *str2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11048,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11048,1
    - Dst: unicode_compare
      Src: /src/cpython/Objects/unicodeobject.c:11053,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11055,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11057,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11060
      start: 11045
    functionDepth: 1
    functionLinenumber: 11045
    functionLinenumberEnd: 11060
    functionName: PyUnicode_Compare
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyErr_Format
    - unicode_compare
    - PyUnicode_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Compare(PyObject *left, PyObject *right)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11069,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:11069,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11070,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11072,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11073,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:11074,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:11077,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11078,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11092,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11094,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11099,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - uni
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (_PyUnicode_CHECK(uni))
      pos:
        line_end: 11068
        line_start: 11068
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11105
      start: 11062
    functionDepth: 1
    functionLinenumber: 11062
    functionLinenumberEnd: 11105
    functionName: PyUnicode_CompareWithASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_DATA
    - memcmp
    - PyUnicode_READ
    - _PyUnicode_CHECK
    - Py_MIN
    - PyUnicode_GET_LENGTH
    - strlen
    - 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:11110,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:11110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unicode
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11111
      start: 11107
    functionDepth: 1
    functionLinenumber: 11107
    functionLinenumberEnd: 11111
    functionName: PyUnicode_EqualToUTF8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - strlen
    - PyUnicode_EqualToUTF8AndSize
    linkageType: ''
    returnType: int
    signature: int PyUnicode_EqualToUTF8(PyObject *unicode, const char *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11116,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:11116,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11117,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11119,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11120,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11122,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11122,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:11124,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11125,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11127,1
    - Dst: PyUnicode_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:11127,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11130,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11136,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11137,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11140,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/unicodeobject.c:11157,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11168,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: 11115
        line_start: 11115
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (str)
      pos:
        line_end: 11116
        line_start: 11116
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 11167
        line_start: 11167
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11181
      start: 11113
    functionDepth: 3
    functionLinenumber: 11113
    functionLinenumberEnd: 11181
    functionName: PyUnicode_EqualToUTF8AndSize
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_IS_ASCII
    - PyUnicode_KIND
    - PyUnicode_DATA
    - memcmp
    - PyUnicode_READ
    - _PyUnicode_CHECK
    - Py_UNICODE_IS_SURROGATE
    - PyUnicode_UTF8_LENGTH
    - PyUnicode_GET_LENGTH
    - assert
    - PyUnicode_UTF8
    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:11187,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:11187,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11188,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11191,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11194,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11196,1
    - Dst: strlen
      Src: /src/cpython/Objects/unicodeobject.c:11197,1
    - Dst: memcmp
      Src: /src/cpython/Objects/unicodeobject.c:11198,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - unicode
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 11186
        line_start: 11186
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (str)
      pos:
        line_end: 11187
        line_start: 11187
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((unsigned char)*p < 128)
      pos:
        line_end: 11190
        line_start: 11190
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11199
      start: 11183
    functionDepth: 1
    functionLinenumber: 11183
    functionLinenumberEnd: 11199
    functionName: _PyUnicode_EqualToASCIIString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_IS_ASCII
    - memcmp
    - _PyUnicode_CHECK
    - PyUnicode_GET_LENGTH
    - strlen
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_EqualToASCIIString(PyObject *unicode, const char *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11206,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11206,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:11221,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/unicodeobject.c:11226,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11228,1
    - Dst: unicode_compare
      Src: /src/cpython/Objects/unicodeobject.c:11231,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/unicodeobject.c:11232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - left
    - right
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11234
      start: 11201
    functionDepth: 1
    functionLinenumber: 11201
    functionLinenumberEnd: 11234
    functionName: PyUnicode_RichCompare
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - unicode_compare
    - PyUnicode_Check
    - PyBool_FromLong
    - unicode_eq
    - 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:11244,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11245,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11247,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:11250,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11253,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11254,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11257,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11258,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11261,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11262,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11264,1
    - Dst: findchar
      Src: /src/cpython/Objects/unicodeobject.c:11265,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:11269,1
    - Dst: ucs1lib_find
      Src: /src/cpython/Objects/unicodeobject.c:11276,1
    - Dst: ucs2lib_find
      Src: /src/cpython/Objects/unicodeobject.c:11279,1
    - Dst: ucs4lib_find
      Src: /src/cpython/Objects/unicodeobject.c:11282,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11285,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11288,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11288,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11290,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: 11287
        line_start: 11287
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11293
      start: 11236
    functionDepth: 2
    functionLinenumber: 11236
    functionLinenumberEnd: 11293
    functionName: PyUnicode_Contains
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - assert
    - PyUnicode_READ
    - ensure_unicode
    - PyUnicode_Check
    - ucs1lib_find
    - Py_UNREACHABLE
    - ucs2lib_find
    - unicode_askind
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - ucs4lib_find
    - PyMem_Free
    - findchar
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Contains(PyObject *str, PyObject *substr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:11304,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11307,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:11308,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:11310,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:11315,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Objects/unicodeobject.c:11317,1
    - Dst: PyUnicode_FromObject
      Src: /src/cpython/Objects/unicodeobject.c:11320,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11323,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11324,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11326,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11332,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11333,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:11334,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:11337,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11340,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11341,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11342,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:11342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 11341
        line_start: 11341
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11344
      start: 11297
    functionDepth: 6
    functionLinenumber: 11297
    functionLinenumberEnd: 11344
    functionName: PyUnicode_Concat
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - _PyUnicode_GetEmpty
    - PyErr_SetString
    - PyUnicode_FromObject
    - PyUnicode_Check
    - ensure_unicode
    - Py_MAX
    - PyUnicode_New
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - assert
    - _PyUnicode_CheckConsistency
    - PyUnicode_MAX_CHAR_VALUE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Concat(PyObject *left, PyObject *right)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:11354,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:11355,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11360,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11360,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:11361,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:11362,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:11367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:11369,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:11370,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11377,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11378,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11380,1
    - Dst: _PyUnicode_IsModifiable
      Src: /src/cpython/Objects/unicodeobject.c:11386,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:11387,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11388,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11388,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11393,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11393,1
    - Dst: unicode_resize
      Src: /src/cpython/Objects/unicodeobject.c:11396,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11400,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11403,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11404,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/unicodeobject.c:11405,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:11408,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11411,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:11412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:11413,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11416,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:11416,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:11420,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: 11415
        line_start: 11415
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11421
      start: 11346
    functionDepth: 4
    functionLinenumber: 11346
    functionLinenumberEnd: 11421
    functionName: PyUnicode_Append
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyErr_Occurred
    - assert
    - PyUnicode_KIND
    - PyUnicode_Check
    - _PyUnicode_FastCopyCharacters
    - PyErr_SetString
    - Py_MAX
    - PyErr_BadInternalCall
    - PyUnicode_New
    - _PyUnicode_IsModifiable
    - Py_DECREF
    - _PyUnicode_CheckConsistency
    - PyUnicode_MAX_CHAR_VALUE
    - Py_NewRef
    - _PyUnicode_GetEmpty
    - PyUnicode_CheckExact
    - unicode_resize
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    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:11426,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:11427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pleft
    - right
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11428
      start: 11423
    functionDepth: 5
    functionLinenumber: 11423
    functionLinenumberEnd: 11428
    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:11452,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11452,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11453,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:11453,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11460,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11461,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11465,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11466,1
    - Dst: ADJUST_INDICES
      Src: /src/cpython/Objects/unicodeobject.c:11467,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11471,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11472,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:11474,1
    - Dst: ucs1lib_count
      Src: /src/cpython/Objects/unicodeobject.c:11482,1
    - Dst: ucs2lib_count
      Src: /src/cpython/Objects/unicodeobject.c:11488,1
    - Dst: ucs4lib_count
      Src: /src/cpython/Objects/unicodeobject.c:11494,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:11500,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11503,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11503,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11505,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11509,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11509,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:11511,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: 11451
        line_start: 11451
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(substr))
      pos:
        line_end: 11452
        line_start: 11452
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((kind2 != kind1) == (buf2 != PyUnicode_DATA(substr)))
      pos:
        line_end: 11508
        line_start: 11508
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: ((kind2 != kind1) == (buf2 != PyUnicode_DATA(substr)))
      pos:
        line_end: 11502
        line_start: 11502
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11513
      start: 11447
    functionDepth: 2
    functionLinenumber: 11447
    functionLinenumberEnd: 11513
    functionName: unicode_count_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - assert
    - ucs4lib_count
    - PyUnicode_Check
    - ucs2lib_count
    - Py_UNREACHABLE
    - unicode_askind
    - PyUnicode_GET_LENGTH
    - PyMem_Free
    - ADJUST_INDICES
    - ucs1lib_count
    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:11534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11535
      start: 11530
    functionDepth: 5
    functionLinenumber: 11530
    functionLinenumberEnd: 11535
    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:11560,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11562,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11563,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11566,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:11587,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:11590,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:11590,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11593,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11598,1
    - Dst: _PyUnicode_Fill
      Src: /src/cpython/Objects/unicodeobject.c:11603,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:11609,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:11615,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11615,1
    - Dst: unicode_result
      Src: /src/cpython/Objects/unicodeobject.c:11616,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11619,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: 11614
        line_start: 11614
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11621
      start: 11547
    functionDepth: 4
    functionLinenumber: 11547
    functionLinenumberEnd: 11621
    functionName: unicode_expandtabs_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyErr_SetString
    - _PyUnicode_Fill
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    - assert
    - unicode_result
    - PyUnicode_MAX_CHAR_VALUE
    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:11638,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: 11643
      start: 11633
    functionDepth: 3
    functionLinenumber: 11633
    functionLinenumberEnd: 11643
    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:11652,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/unicodeobject.c:11653,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11656,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11657,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11660,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11661,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11662,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:11663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11664
      start: 11645
    functionDepth: 5
    functionLinenumber: 11645
    functionLinenumberEnd: 11664
    functionName: unicode_getitem
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - unicode_char
    - PyUnicode_READ
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyErr_BadArgument
    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:11674,1
    - Dst: PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:11676,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/unicodeobject.c:11680,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11680,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11681,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11681,1
    - Dst: PyUnicode_SET_HASH
      Src: /src/cpython/Objects/unicodeobject.c:11683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_HashSecret_Initialized)
      pos:
        line_end: 11673
        line_start: 11673
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11685
      start: 11668
    functionDepth: 2
    functionLinenumber: 11668
    functionLinenumberEnd: 11685
    functionName: unicode_hash
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_SET_HASH
    - PyUnicode_HASH
    - PyUnicode_GET_LENGTH
    - assert
    - Py_HashBuffer
    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:11702,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:11704,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: 11710
      start: 11697
    functionDepth: 3
    functionLinenumber: 11697
    functionLinenumberEnd: 11710
    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:11726,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:11726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11727
      start: 11722
    functionDepth: 1
    functionLinenumber: 11722
    functionLinenumberEnd: 11727
    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:11747,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11748,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11749,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11753,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:11754,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11754,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11762,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:11764,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/cpython/Objects/unicodeobject.c:11764,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:11766,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11770
      start: 11738
    functionDepth: 1
    functionLinenumber: 11738
    functionLinenumberEnd: 11770
    functionName: unicode_islower_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISUPPER
    - PyUnicode_DATA
    - PyUnicode_KIND
    - Py_UNICODE_ISLOWER
    - PyUnicode_READ
    - PyBool_FromLong
    - PyUnicode_GET_LENGTH
    - Py_UNICODE_ISTITLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_islower_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11790,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11791,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11792,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11796,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:11797,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11797,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11805,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:11807,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/cpython/Objects/unicodeobject.c:11807,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:11809,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11812,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11813
      start: 11781
    functionDepth: 1
    functionLinenumber: 11781
    functionLinenumberEnd: 11813
    functionName: unicode_isupper_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISUPPER
    - PyUnicode_DATA
    - PyUnicode_KIND
    - Py_UNICODE_ISLOWER
    - PyUnicode_READ
    - PyBool_FromLong
    - PyUnicode_GET_LENGTH
    - Py_UNICODE_ISTITLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isupper_impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11833,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11834,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11835,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11839,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11840,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/cpython/Objects/unicodeobject.c:11840,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:11841,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11851,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/cpython/Objects/unicodeobject.c:11853,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/cpython/Objects/unicodeobject.c:11853,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/cpython/Objects/unicodeobject.c:11859,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11868,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11869
      start: 11824
    functionDepth: 1
    functionLinenumber: 11824
    functionLinenumberEnd: 11869
    functionName: unicode_istitle_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISUPPER
    - PyUnicode_DATA
    - PyUnicode_KIND
    - Py_UNICODE_ISLOWER
    - PyUnicode_READ
    - PyBool_FromLong
    - PyUnicode_GET_LENGTH
    - Py_UNICODE_ISTITLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_istitle_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11888,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11889,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11890,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11894,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:11895,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11895,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11902,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:11903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11907
      start: 11880
    functionDepth: 1
    functionLinenumber: 11880
    functionLinenumberEnd: 11907
    functionName: unicode_isspace_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - PyBool_FromLong
    - 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:11926,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:11927,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11928,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11932,1
    - Dst: Py_UNICODE_ISALPHA
      Src: /src/cpython/Objects/unicodeobject.c:11933,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11933,1
    - Dst: Py_UNICODE_ISALPHA
      Src: /src/cpython/Objects/unicodeobject.c:11940,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11940,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11944
      start: 11918
    functionDepth: 1
    functionLinenumber: 11918
    functionLinenumberEnd: 11944
    functionName: unicode_isalpha_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISALPHA
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyBool_FromLong
    - 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:11964,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:11965,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:11966,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11970,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:11971,1
    - Dst: Py_UNICODE_ISALNUM
      Src: /src/cpython/Objects/unicodeobject.c:11971,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:11979,1
    - Dst: Py_UNICODE_ISALNUM
      Src: /src/cpython/Objects/unicodeobject.c:11980,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11984
      start: 11956
    functionDepth: 1
    functionLinenumber: 11956
    functionLinenumberEnd: 11984
    functionName: unicode_isalnum_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISALNUM
    - PyBool_FromLong
    - 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:12003,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12004,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12005,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12009,1
    - Dst: Py_UNICODE_ISDECIMAL
      Src: /src/cpython/Objects/unicodeobject.c:12010,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12010,1
    - Dst: Py_UNICODE_ISDECIMAL
      Src: /src/cpython/Objects/unicodeobject.c:12017,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12017,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12021
      start: 11995
    functionDepth: 1
    functionLinenumber: 11995
    functionLinenumberEnd: 12021
    functionName: unicode_isdecimal_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISDECIMAL
    - PyBool_FromLong
    - 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: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: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12046,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12047,1
    - Dst: Py_UNICODE_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:12047,1
    - Dst: Py_UNICODE_ISDIGIT
      Src: /src/cpython/Objects/unicodeobject.c:12055,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12059
      start: 12032
    functionDepth: 1
    functionLinenumber: 12032
    functionLinenumberEnd: 12059
    functionName: unicode_isdigit_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISDIGIT
    - PyBool_FromLong
    - 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:12078,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12079,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12080,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12084,1
    - Dst: Py_UNICODE_ISNUMERIC
      Src: /src/cpython/Objects/unicodeobject.c:12085,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12085,1
    - Dst: Py_UNICODE_ISNUMERIC
      Src: /src/cpython/Objects/unicodeobject.c:12092,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12096
      start: 12070
    functionDepth: 1
    functionLinenumber: 12070
    functionLinenumberEnd: 12096
    functionName: unicode_isnumeric_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_ISNUMERIC
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyBool_FromLong
    - 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:12102,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12108,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12109,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12110,1
    - Dst: _PyUnicode_IsXidStart
      Src: /src/cpython/Objects/unicodeobject.c:12119,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12124,1
    - Dst: _PyUnicode_IsXidContinue
      Src: /src/cpython/Objects/unicodeobject.c:12125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12130
      start: 12098
    functionDepth: 2
    functionLinenumber: 12098
    functionLinenumberEnd: 12130
    functionName: _PyUnicode_ScanIdentifier
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - _PyUnicode_IsXidContinue
    - PyUnicode_GET_LENGTH
    - _PyUnicode_IsXidStart
    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:12135,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12139
      start: 12132
    functionDepth: 3
    functionLinenumber: 12132
    functionLinenumberEnd: 12139
    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:12155,1
    - Dst: PyUnicode_IsIdentifier
      Src: /src/cpython/Objects/unicodeobject.c:12155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12156
      start: 12151
    functionDepth: 4
    functionLinenumber: 12151
    functionLinenumberEnd: 12156
    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:12175,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12176,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12177,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:12181,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Objects/unicodeobject.c:12182,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12182,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Objects/unicodeobject.c:12185,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12190
      start: 12167
    functionDepth: 1
    functionLinenumber: 12167
    functionLinenumberEnd: 12190
    functionName: unicode_isprintable_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - Py_UNICODE_ISPRINTABLE
    - PyBool_FromLong
    - 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:12210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12211
      start: 12206
    functionDepth: 4
    functionLinenumber: 12206
    functionLinenumberEnd: 12211
    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:12216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12217
      start: 12213
    functionDepth: 1
    functionLinenumber: 12213
    functionLinenumberEnd: 12217
    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:12236,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12237,1
    - Dst: pad
      Src: /src/cpython/Objects/unicodeobject.c:12239,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12239,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: 12240
      start: 12232
    functionDepth: 2
    functionLinenumber: 12232
    functionLinenumberEnd: 12240
    functionName: unicode_ljust_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - pad
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    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:12252,1
    - Dst: ascii_upper_or_lower
      Src: /src/cpython/Objects/unicodeobject.c:12253,1
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:12254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12255
      start: 12248
    functionDepth: 5
    functionLinenumber: 12248
    functionLinenumberEnd: 12255
    functionName: unicode_lower_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ascii_upper_or_lower
    - case_operation
    - PyUnicode_IS_ASCII
    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: 12265
      start: 12264
    functionDepth: 0
    functionLinenumber: 12264
    functionLinenumberEnd: 12265
    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:12276,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12277,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12278,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12279,1
    - Dst: make_bloom_mask
      Src: /src/cpython/Objects/unicodeobject.c:12280,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12280,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12281,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12287,1
    - Dst: BLOOM
      Src: /src/cpython/Objects/unicodeobject.c:12288,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Objects/unicodeobject.c:12290,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12300,1
    - Dst: BLOOM
      Src: /src/cpython/Objects/unicodeobject.c:12301,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Objects/unicodeobject.c:12303,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12311,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - self
    - striptype
    - sepobj
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12312
      start: 12267
    functionDepth: 2
    functionLinenumber: 12267
    functionLinenumberEnd: 12312
    functionName: _PyUnicode_XStrip
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - make_bloom_mask
    - PyUnicode_GET_LENGTH
    - BLOOM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_XStrip(PyObject *self, int striptype, PyObject *sepobj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12317,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:12317,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12318,1
    - Dst: _PyEval_UnpackIndices
      Src: /src/cpython/Objects/unicodeobject.c:12320,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - container
    - start_o
    - stop_o
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(container))
      pos:
        line_end: 12316
        line_start: 12316
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 12324
      start: 12314
    functionDepth: 1
    functionLinenumber: 12314
    functionLinenumberEnd: 12324
    functionName: _PyUnicode_BinarySlice
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CheckExact
    - _PyEval_UnpackIndices
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_BinarySlice(PyObject *container, PyObject *start_o, PyObject *stop_o)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12333,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/unicodeobject.c:12334,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12337,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:12340,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:12344,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12347,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12348,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Objects/unicodeobject.c:12349,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12352,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12353,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Objects/unicodeobject.c:12354,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: 12358
      start: 12326
    functionDepth: 7
    functionLinenumber: 12326
    functionLinenumberEnd: 12358
    functionName: PyUnicode_Substring
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 20
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_IS_ASCII
    - _PyUnicode_FromASCII
    - PyUnicode_KIND
    - PyErr_SetString
    - Py_MIN
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    - PyUnicode_FromKindAndData
    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:12365,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12367,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12368,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12393,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12394,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12399,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:12400,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12410,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/cpython/Objects/unicodeobject.c:12411,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12419,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 2
    argNames:
    - self
    - striptype
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12420
      start: 12360
    functionDepth: 8
    functionLinenumber: 12360
    functionLinenumberEnd: 12420
    functionName: do_strip
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_strip(PyObject *self, int striptype)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:12427,1
    - Dst: _PyUnicode_XStrip
      Src: /src/cpython/Objects/unicodeobject.c:12428,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:12430,1
    - Dst: STRIPNAME
      Src: /src/cpython/Objects/unicodeobject.c:12432,1
    - Dst: do_strip
      Src: /src/cpython/Objects/unicodeobject.c:12437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - striptype
    - sep
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12438
      start: 12423
    functionDepth: 3
    functionLinenumber: 12423
    functionLinenumberEnd: 12438
    functionName: do_argstrip
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_Check
    - STRIPNAME
    - _PyUnicode_XStrip
    - PyErr_Format
    - do_strip
    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:12457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12458
      start: 12453
    functionDepth: 0
    functionLinenumber: 12453
    functionLinenumberEnd: 12458
    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:12476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12477
      start: 12472
    functionDepth: 0
    functionLinenumber: 12472
    functionLinenumberEnd: 12477
    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:12495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12496
      start: 12491
    functionDepth: 0
    functionLinenumber: 12491
    functionLinenumberEnd: 12496
    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:12506,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12510,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12512,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:12513,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12517,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:12519,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:12519,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12522,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12522,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12522,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12524,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12525,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12526,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12526,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12528,1
    - Dst: memset
      Src: /src/cpython/Objects/unicodeobject.c:12529,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12532,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12536,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12537,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12543,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12544,1
    - Dst: _PyBytes_RepeatBuffer
      Src: /src/cpython/Objects/unicodeobject.c:12545,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12545,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12546,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12549,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:12549,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_KIND(u) == PyUnicode_KIND(str))
      pos:
        line_end: 12521
        line_start: 12521
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 12536
        line_start: 12536
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 12548
        line_start: 12548
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 12551
      start: 12499
    functionDepth: 4
    functionLinenumber: 12499
    functionLinenumberEnd: 12551
    functionName: _PyUnicode_Repeat
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_CheckConsistency
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_READ
    - PyErr_SetString
    - PyUnicode_New
    - memset
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    - assert
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - _PyBytes_RepeatBuffer
    - PyUnicode_MAX_CHAR_VALUE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_Repeat(PyObject *str, Py_ssize_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12559,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12559,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12560,1
    - Dst: replace
      Src: /src/cpython/Objects/unicodeobject.c:12562,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: 12563
      start: 12553
    functionDepth: 6
    functionLinenumber: 12553
    functionLinenumberEnd: 12563
    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:12586,1
    - Dst: count::count
      Src: /src/cpython/Objects/unicodeobject.c:12586,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: 12587
      start: 12581
    functionDepth: 6
    functionLinenumber: 12581
    functionLinenumberEnd: 12587
    functionName: unicode_replace_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - count::count
    - replace
    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:12606,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12611,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12611,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12612,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12615
      start: 12602
    functionDepth: 8
    functionLinenumber: 12602
    functionLinenumberEnd: 12615
    functionName: unicode_removeprefix_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - tailmatch
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_removeprefix_impl(PyObject *self, PyObject *prefix)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:12634,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:12639,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12639,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12640,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - suffix
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12643
      start: 12630
    functionDepth: 8
    functionLinenumber: 12630
    functionLinenumberEnd: 12643
    functionName: unicode_removesuffix_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - tailmatch
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    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:12648,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12649,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12657,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:12659,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Objects/unicodeobject.c:12673,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:12683,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:12703,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12706,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12707,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:12710,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/cpython/Objects/unicodeobject.c:12712,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:12716,1
    - Dst: ucs1lib_repr
      Src: /src/cpython/Objects/unicodeobject.c:12721,1
    - Dst: ucs2lib_repr
      Src: /src/cpython/Objects/unicodeobject.c:12724,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12727,1
    - Dst: ucs4lib_repr
      Src: /src/cpython/Objects/unicodeobject.c:12728,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12732,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:12732,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(repr, 1))
      pos:
        line_end: 12731
        line_start: 12731
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (okind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 12726
        line_start: 12726
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 12734
      start: 12645
    functionDepth: 4
    functionLinenumber: 12645
    functionLinenumberEnd: 12734
    functionName: unicode_repr
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_READ
    - PyErr_SetString
    - _PyUnicode_FastCopyCharacters
    - ucs2lib_repr
    - ucs1lib_repr
    - Py_UNICODE_ISPRINTABLE
    - PyUnicode_New
    - PyUnicode_GET_LENGTH
    - assert
    - ucs4lib_repr
    - _PyUnicode_CheckConsistency
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_repr(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: any_find_slice
      Src: /src/cpython/Objects/unicodeobject.c:12751,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: 12756
      start: 12746
    functionDepth: 3
    functionLinenumber: 12746
    functionLinenumberEnd: 12756
    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:12773,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:12775,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: 12781
      start: 12768
    functionDepth: 3
    functionLinenumber: 12768
    functionLinenumberEnd: 12781
    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:12800,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:12801,1
    - Dst: pad
      Src: /src/cpython/Objects/unicodeobject.c:12803,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12803,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: 12804
      start: 12796
    functionDepth: 2
    functionLinenumber: 12796
    functionLinenumberEnd: 12804
    functionName: unicode_rjust_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - pad
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    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:12809,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12809,1
    - Dst: split
      Src: /src/cpython/Objects/unicodeobject.c:12812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - s
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12813
      start: 12806
    functionDepth: 5
    functionLinenumber: 12806
    functionLinenumberEnd: 12813
    functionName: PyUnicode_Split
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 5
    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:12844,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:12845,1
    - Dst: split
      Src: /src/cpython/Objects/unicodeobject.c:12846,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:12848,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:12850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12852
      start: 12839
    functionDepth: 5
    functionLinenumber: 12839
    functionLinenumberEnd: 12852
    functionName: unicode_split_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - split
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    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:12862,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12862,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12865,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12866,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12867,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12868,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:12870,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/unicodeobject.c:12871,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12873,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12874,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:12876,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12883,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12883,1
    - Dst: asciilib_partition
      Src: /src/cpython/Objects/unicodeobject.c:12884,1
    - Dst: ucs1lib_partition
      Src: /src/cpython/Objects/unicodeobject.c:12886,1
    - Dst: ucs2lib_partition
      Src: /src/cpython/Objects/unicodeobject.c:12889,1
    - Dst: ucs4lib_partition
      Src: /src/cpython/Objects/unicodeobject.c:12892,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:12895,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12898,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12898,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:12900,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: 12897
        line_start: 12897
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 12903
      start: 12854
    functionDepth: 2
    functionLinenumber: 12854
    functionLinenumberEnd: 12903
    functionName: PyUnicode_Partition
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - asciilib_partition
    - ucs1lib_partition
    - PyUnicode_KIND
    - _PyUnicode_GetEmpty
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - ucs4lib_partition
    - ensure_unicode
    - Py_UNREACHABLE
    - unicode_askind
    - PyTuple_Pack
    - PyUnicode_GET_LENGTH
    - assert
    - PyMem_Free
    - ucs2lib_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:12914,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:12914,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12917,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:12918,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12919,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:12920,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:12922,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/unicodeobject.c:12923,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12925,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12926,1
    - Dst: unicode_askind
      Src: /src/cpython/Objects/unicodeobject.c:12928,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12935,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:12935,1
    - Dst: asciilib_rpartition
      Src: /src/cpython/Objects/unicodeobject.c:12936,1
    - Dst: ucs1lib_rpartition
      Src: /src/cpython/Objects/unicodeobject.c:12938,1
    - Dst: ucs2lib_rpartition
      Src: /src/cpython/Objects/unicodeobject.c:12941,1
    - Dst: ucs4lib_rpartition
      Src: /src/cpython/Objects/unicodeobject.c:12944,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:12947,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:12950,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:12950,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:12952,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: 12949
        line_start: 12949
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 12955
      start: 12906
    functionDepth: 2
    functionLinenumber: 12906
    functionLinenumberEnd: 12955
    functionName: PyUnicode_RPartition
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - ucs1lib_rpartition
    - ucs4lib_rpartition
    - PyUnicode_KIND
    - _PyUnicode_GetEmpty
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - ucs2lib_rpartition
    - assert
    - ensure_unicode
    - Py_UNREACHABLE
    - unicode_askind
    - PyTuple_Pack
    - PyUnicode_GET_LENGTH
    - asciilib_rpartition
    - PyMem_Free
    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:12977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12978
      start: 12973
    functionDepth: 3
    functionLinenumber: 12973
    functionLinenumberEnd: 12978
    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:12998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12999
      start: 12994
    functionDepth: 3
    functionLinenumber: 12994
    functionLinenumberEnd: 12999
    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:13004,1
    - Dst: ensure_unicode
      Src: /src/cpython/Objects/unicodeobject.c:13004,1
    - Dst: rsplit
      Src: /src/cpython/Objects/unicodeobject.c:13007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - s
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13008
      start: 13001
    functionDepth: 5
    functionLinenumber: 13001
    functionLinenumberEnd: 13008
    functionName: PyUnicode_RSplit
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - rsplit
    - ensure_unicode
    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:13024,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13025,1
    - Dst: rsplit
      Src: /src/cpython/Objects/unicodeobject.c:13026,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13028,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13032
      start: 13019
    functionDepth: 5
    functionLinenumber: 13019
    functionLinenumberEnd: 13032
    functionName: unicode_rsplit_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - rsplit
    - PyErr_Format
    - PyUnicode_Check
    - Py_TYPE
    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:13050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13051
      start: 13046
    functionDepth: 2
    functionLinenumber: 13046
    functionLinenumberEnd: 13051
    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:13056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13057
      start: 13053
    functionDepth: 2
    functionLinenumber: 13053
    functionLinenumberEnd: 13057
    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:13070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13071
      start: 13066
    functionDepth: 5
    functionLinenumber: 13066
    functionLinenumberEnd: 13071
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/unicodeobject.c:13079,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13080,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13084,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13085,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13089,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13090,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13091,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13091,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:13094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13095,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/unicodeobject.c:13099,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:13100,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - x
    - newdict
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13110
      start: 13073
    functionDepth: 10
    functionLinenumber: 13073
    functionLinenumberEnd: 13110
    functionName: unicode_maketrans_from_dict
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_READ
    - PyErr_SetString
    - PyUnicode_Check
    - PyDict_Next
    - PyDict_SetItem
    - PyLong_Check
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int unicode_maketrans_from_dict(PyObject *x, PyObject *newdict)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New::PyDict_New
      Src: /src/cpython/Objects/unicodeobject.c:13145,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13153,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13154,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13158,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13158,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13159,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13164,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13165,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13166,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13167,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13168,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13169,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13169,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13172,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13174,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:13177,1
    - Dst: key::key
      Src: /src/cpython/Objects/unicodeobject.c:13177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13179,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13185,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13186,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13187,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13188,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13188,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/unicodeobject.c:13191,1
    - Dst: key::key
      Src: /src/cpython/Objects/unicodeobject.c:13191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13192,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:13199,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:13200,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/unicodeobject.c:13206,1
    - Dst: unicode_maketrans_from_dict
      Src: /src/cpython/Objects/unicodeobject.c:13207,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/unicodeobject.c:13208,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13216
      start: 13137
    functionDepth: 11
    functionLinenumber: 13137
    functionLinenumberEnd: 13216
    functionName: unicode_maketrans_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyAnyDict_CheckExact
    - PyUnicode_KIND
    - PyUnicode_DATA
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_READ
    - PyErr_SetString
    - key::key
    - PyUnicode_Check
    - PyDict_SetItem
    - unicode_maketrans_from_dict
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PyDict_New::PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_maketrans_impl(PyObject *x, PyObject *y, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_TranslateCharmap
      Src: /src/cpython/Objects/unicodeobject.c:13239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - table
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13240
      start: 13235
    functionDepth: 13
    functionLinenumber: 13235
    functionLinenumberEnd: 13240
    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:13252,1
    - Dst: ascii_upper_or_lower
      Src: /src/cpython/Objects/unicodeobject.c:13253,1
    - Dst: case_operation
      Src: /src/cpython/Objects/unicodeobject.c:13254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13255
      start: 13248
    functionDepth: 5
    functionLinenumber: 13248
    functionLinenumberEnd: 13255
    functionName: unicode_upper_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ascii_upper_or_lower
    - case_operation
    - PyUnicode_IS_ASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_upper_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13279,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:13280,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13282,1
    - Dst: pad
      Src: /src/cpython/Objects/unicodeobject.c:13284,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13289,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13290,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13291,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:13295,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:13296,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13299,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:13299,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: 13298
        line_start: 13298
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13301
      start: 13269
    functionDepth: 3
    functionLinenumber: 13269
    functionLinenumberEnd: 13301
    functionName: unicode_zfill_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_WRITE
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_READ
    - pad
    - PyUnicode_GET_LENGTH
    - unicode_result_unchanged
    - assert
    - _PyUnicode_CheckConsistency
    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:13324,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:13326,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unicodeobject.c:13327,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13328,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13329,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13332,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:13335,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13346,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13347,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13349,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:13352,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13356,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: 13357
      start: 13319
    functionDepth: 1
    functionLinenumber: 13319
    functionLinenumberEnd: 13357
    functionName: unicode_startswith_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - tailmatch
    - PyUnicode_Check
    - PyBool_FromLong
    - PyErr_Format
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - 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:13381,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:13383,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/unicodeobject.c:13384,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13385,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13386,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13389,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:13392,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13402,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13403,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13405,1
    - Dst: tailmatch
      Src: /src/cpython/Objects/unicodeobject.c:13408,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/unicodeobject.c:13412,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: 13413
      start: 13376
    functionDepth: 1
    functionLinenumber: 13376
    functionLinenumberEnd: 13413
    functionName: unicode_endswith_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - tailmatch
    - PyUnicode_Check
    - PyBool_FromLong
    - PyErr_Format
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - 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: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/unicodeobject.c:13449,1
    - Dst: _PyUnicode_FormatAdvancedWriter
      Src: /src/cpython/Objects/unicodeobject.c:13450,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13452,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/unicodeobject.c:13454,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/unicodeobject.c:13457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13458
      start: 13442
    functionDepth: 6
    functionLinenumber: 13442
    functionLinenumberEnd: 13458
    functionName: unicode___format___impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - _PyUnicode_FormatAdvancedWriter
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_GET_LENGTH
    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:13474,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13475,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/cpython/Objects/unicodeobject.c:13477,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13479,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13479,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:13485,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13486,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13487,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/cpython/Objects/unicodeobject.c:13489,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13490,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/unicodeobject.c:13492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13493
      start: 13466
    functionDepth: 3
    functionLinenumber: 13466
    functionLinenumberEnd: 13493
    functionName: unicode_sizeof_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicode_DATA_ANY
    - PyUnicode_IS_COMPACT
    - PyLong_FromSsize_t
    - PyUnicode_UTF8_LENGTH
    - PyUnicode_GET_LENGTH
    - PyUnicode_IS_COMPACT_ASCII
    - _PyUnicode_HAS_UTF8_MEMORY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_sizeof_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/unicodeobject.c:13498,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/unicodeobject.c:13501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13502
      start: 13495
    functionDepth: 5
    functionLinenumber: 13495
    functionLinenumberEnd: 13502
    functionName: unicode_getnewargs
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_Copy
    - Py_BuildValue
    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:13548,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13577,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - src
    - end
    - output
    argTypes:
    - char*
    - char*
    - char**
    assertStmts:
    - condition: (_len > 0)
      pos:
        line_end: 13547
        line_start: 13547
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_len >= 0)
      pos:
        line_end: 13576
        line_start: 13576
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13582
      start: 13510
    functionDepth: 0
    functionLinenumber: 13510
    functionLinenumberEnd: 13582
    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:13593,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13597,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:13599,1
    - Dst: search_longest_common_leading_whitespace
      Src: /src/cpython/Objects/unicodeobject.c:13607,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:13611,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:13615,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:13617,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13647,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:13648,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/unicodeobject.c:13657,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:13658,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (src_len >= 0)
      pos:
        line_end: 13596
        line_start: 13596
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (new_line_len >= 0)
      pos:
        line_end: 13646
        line_start: 13646
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13660
      start: 13589
    functionDepth: 5
    functionLinenumber: 13589
    functionLinenumberEnd: 13660
    functionName: _PyUnicode_Dedent
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - assert
    - PyUnicode_AsUTF8AndSize
    - search_longest_common_leading_whitespace
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - Py_NewRef
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_Dedent(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:13719,1
    - Dst: PyUnicode_Format
      Src: /src/cpython/Objects/unicodeobject.c:13721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13722
      start: 13716
    functionDepth: 9
    functionLinenumber: 13716
    functionLinenumberEnd: 13722
    functionName: unicode_mod
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Format
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_mod(PyObject *v, PyObject *w)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/unicodeobject.c:13745,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/unicodeobject.c:13746,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:13747,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13750,1
    - Dst: unicode_getitem
      Src: /src/cpython/Objects/unicodeobject.c:13751,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/unicodeobject.c:13752,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/unicodeobject.c:13761,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/unicodeobject.c:13764,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13764,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/cpython/Objects/unicodeobject.c:13768,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13770,1
    - Dst: unicode_result_unchanged
      Src: /src/cpython/Objects/unicodeobject.c:13771,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/unicodeobject.c:13773,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13777,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13778,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:13779,1
    - Dst: kind_maxchar_limit
      Src: /src/cpython/Objects/unicodeobject.c:13780,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13783,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/unicodeobject.c:13793,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13796,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13797,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13800,1
    - Dst: PyUnicode_WRITE
      Src: /src/cpython/Objects/unicodeobject.c:13801,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13803,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:13803,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13806,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/unicodeobject.c:13807,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 13802
        line_start: 13802
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13810
      start: 13742
    functionDepth: 8
    functionLinenumber: 13742
    functionLinenumberEnd: 13810
    functionName: unicode_subscript
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_IS_ASCII
    - _PyIndex_Check
    - PyErr_Occurred
    - assert
    - unicode_getitem
    - Py_TYPE
    - PyUnicode_WRITE
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_Substring
    - PySlice_AdjustIndices
    - PyUnicode_READ
    - kind_maxchar_limit
    - PyUnicode_New
    - unicode_result_unchanged
    - _PyUnicode_CheckConsistency
    - PyNumber_AsSsize_t
    - PySlice_Unpack
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_subscript(PyObject* self, PyObject* item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:13839,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicodeobject.c:13842,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Objects/unicodeobject.c:13845,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/unicodeobject.c:13849,1
    - Dst: unicode_subtype_new
      Src: /src/cpython/Objects/unicodeobject.c:13849,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - type
    - x
    - encoding
    - errors
    argTypes:
    - PyTypeObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13852
      start: 13832
    functionDepth: 4
    functionLinenumber: 13832
    functionLinenumberEnd: 13852
    functionName: unicode_new_impl
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_GetEmpty
    - PyObject_Str
    - PyUnicode_FromEncodedObject
    - Py_SETREF
    - unicode_subtype_new
    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:13857,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:13858,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Objects/unicodeobject.c:13863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13864
      start: 13854
    functionDepth: 6
    functionLinenumber: 13854
    functionLinenumberEnd: 13864
    functionName: arg_as_utf8
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsUTF8NoNUL
    - PyErr_Format
    - PyUnicode_Check
    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:13870,1
    - Dst: Py_Is
      Src: /src/cpython/Objects/unicodeobject.c:13870,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/unicodeobject.c:13870,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/unicodeobject.c:13872,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:13873,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Objects/unicodeobject.c:13875,1
    - Dst: _PyStack_AsDict
      Src: /src/cpython/Objects/unicodeobject.c:13879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13881,1
    - Dst: unicode_new
      Src: /src/cpython/Objects/unicodeobject.c:13884,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/unicodeobject.c:13884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13886,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/unicodeobject.c:13889,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:13893,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/unicodeobject.c:13897,1
    - Dst: arg_as_utf8
      Src: /src/cpython/Objects/unicodeobject.c:13899,1
    - Dst: arg_as_utf8
      Src: /src/cpython/Objects/unicodeobject.c:13905,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/cpython/Objects/unicodeobject.c:13910,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: 13869
        line_start: 13869
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13911
      start: 13866
    functionDepth: 7
    functionLinenumber: 13866
    functionLinenumberEnd: 13911
    functionName: unicode_vectorcall
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyUnicode_GetEmpty
    - assert
    - PyTuple_FromArray
    - PyObject_Str
    - _PyStack_AsDict
    - PyUnicode_FromEncodedObject
    - Py_Is
    - Py_DECREF
    - arg_as_utf8
    - PyTuple_GET_SIZE
    - unicode_new
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:13922,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/unicodeobject.c:13922,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13923,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:13923,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/unicodeobject.c:13925,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13929,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13930,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13932,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:13934,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:13936,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:13936,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:13938,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:13939,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:13940,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:13941,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:13941,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:13942,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13943,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:13944,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:13945,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/cpython/Objects/unicodeobject.c:13950,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13957,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:13963,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/unicodeobject.c:13966,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:13968,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/cpython/Objects/unicodeobject.c:13972,1
    - Dst: PyUnicode_SET_UTF8_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13974,1
    - Dst: PyUnicode_SET_UTF8
      Src: /src/cpython/Objects/unicodeobject.c:13975,1
    - Dst: memcpy
      Src: /src/cpython/Objects/unicodeobject.c:13978,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13978,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:13979,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Objects/unicodeobject.c:13979,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:13981,1
    - Dst: _PyUnicode_HASH
      Src: /src/cpython/Objects/unicodeobject.c:13981,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:13986,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: 13921
        line_start: 13921
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 13922
        line_start: 13922
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 13956
        line_start: 13956
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(self, 1))
      pos:
        line_end: 13978
        line_start: 13978
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13988
      start: 13913
    functionDepth: 3
    functionLinenumber: 13913
    functionLinenumberEnd: 13988
    functionName: unicode_subtype_new
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - memcpy
    - PyUnicode_SET_UTF8
    - assert
    - PyType_IsSubtype
    - PyUnicode_KIND
    - PyErr_NoMemory
    - _PyUnicode_DATA_ANY
    - PyUnicode_DATA
    - _PyUnicode_HASH
    - PyMem_Malloc
    - _PyUnicode_STATE
    - _PyUnicode_CHECK
    - PyUnicode_SET_UTF8_LENGTH
    - Py_DECREF
    - _PyUnicode_CheckConsistency
    - PyTypeObject*::tp_alloc
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_GET_LENGTH
    - _PyUnicode_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_subtype_new(PyTypeObject *type, PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:13993,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:13996,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:13997,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:13998,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:13999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14002
      start: 13990
    functionDepth: 5
    functionLinenumber: 13990
    functionLinenumberEnd: 14002
    functionName: unicode_iteritem
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - unicode_char
    - PyUnicode_READ
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: _PyObjectIndexPair
    signature: _PyObjectIndexPair unicode_iteritem(PyObject *obj, Py_ssize_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14007,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:14007,1
    - Dst: unicode_dealloc
      Src: /src/cpython/Objects/unicodeobject.c:14008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(op))
      pos:
        line_end: 14006
        line_start: 14006
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14009
      start: 14004
    functionDepth: 9
    functionLinenumber: 14004
    functionLinenumberEnd: 14009
    functionName: _PyUnicode_ExactDealloc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_dealloc
    - PyUnicode_CheckExact
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_ExactDealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_bloom_mask
      Src: /src/cpython/Objects/unicodeobject.c:14094,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14097
      start: 14074
    functionDepth: 2
    functionLinenumber: 14074
    functionLinenumberEnd: 14097
    functionName: _init_global_state
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    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:14102,1
    - Dst: _init_global_state
      Src: /src/cpython/Objects/unicodeobject.c:14105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14106
      start: 14099
    functionDepth: 3
    functionLinenumber: 14099
    functionLinenumberEnd: 14106
    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:14112,1
    - Dst: init_global_interned_strings
      Src: /src/cpython/Objects/unicodeobject.c:14113,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Objects/unicodeobject.c:14114,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14118,1
    - Dst: init_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:14120,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:14121,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:14122,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:14125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (INTERNED_STRINGS)
      pos:
        line_end: 14117
        line_start: 14117
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14126
      start: 14109
    functionDepth: 12
    functionLinenumber: 14109
    functionLinenumberEnd: 14126
    functionName: _PyUnicode_InitGlobalObjects
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - init_interned_dict
    - _Py_IsMainInterpreter
    - _PyStatus_EXCEPTION
    - PyErr_Clear
    - _PyStatus_ERR
    - assert
    - init_global_interned_strings
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyUnicode_InitGlobalObjects(PyInterpreterState *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:14132,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:14135,1
    - Dst: _PyStaticType_InitBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:14138,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:14141,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:14144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14145
      start: 14129
    functionDepth: 1
    functionLinenumber: 14129
    functionLinenumberEnd: 14145
    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:14153,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14154,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:14154,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14155,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14155,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14156,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:14156,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:14162,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14163,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Objects/unicodeobject.c:14167,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14169,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14172,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14172,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14173,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:14173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14174,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:14175,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Objects/unicodeobject.c:14178,1
    - Dst: Py_FatalError
      Src: /src/cpython/Objects/unicodeobject.c:14179,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - interp
    - s
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 14152
        line_start: 14152
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!PyUnicode_CHECK_INTERNED(s))
      pos:
        line_end: 14155
        line_start: 14155
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(r))
      pos:
        line_end: 14172
        line_start: 14172
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(s).statically_allocated)
      pos:
        line_end: 14154
        line_start: 14154
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (interned == NULL)
      pos:
        line_end: 14162
        line_start: 14162
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(r).interned == SSTATE_INTERNED_IMMORTAL_STATIC)
      pos:
        line_end: 14171
        line_start: 14171
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(s))
      pos:
        line_end: 14153
        line_start: 14153
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (r == NULL)
      pos:
        line_end: 14168
        line_start: 14168
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14184
      start: 14147
    functionDepth: 2
    functionLinenumber: 14147
    functionLinenumberEnd: 14184
    functionName: intern_static
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _Py_hashtable_set
    - PyUnicode_CHECK_INTERNED
    - get_interned_dict
    - _PyUnicode_STATE
    - _PyUnicode_CHECK
    - _Py_hashtable_get
    - assert
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      intern_static(PyInterpreterState *interp, PyObject *s /* stolen */)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14190,1
    - Dst: Py_IsInitialized
      Src: /src/cpython/Objects/unicodeobject.c:14190,1
    - Dst: intern_static
      Src: /src/cpython/Objects/unicodeobject.c:14192,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - p
    argTypes:
    - PyInterpreterState*
    - PyObject**
    assertStmts:
    - condition: (!Py_IsInitialized())
      pos:
        line_end: 14189
        line_start: 14189
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (*p)
      pos:
        line_end: 14192
        line_start: 14192
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14194
      start: 14186
    functionDepth: 3
    functionLinenumber: 14186
    functionLinenumberEnd: 14194
    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:14199,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:14199,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14200,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:14200,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/unicodeobject.c:14205,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:14206,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:14206,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/unicodeobject.c:14209,1
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Objects/unicodeobject.c:14213,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14213,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: 14198
        line_start: 14198
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!_Py_IsImmortal(s))
      pos:
        line_end: 14199
        line_start: 14199
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14214
      start: 14196
    functionDepth: 3
    functionLinenumber: 14196
    functionLinenumberEnd: 14214
    functionName: immortalize_interned
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CHECK_INTERNED
    - _PyUnicode_STATE
    - FT_ATOMIC_STORE_UINT8
    - Py_REFCNT
    - _PyThreadState_GET
    - _Py_IsImmortal
    - _Py_DecRefTotal
    - assert
    - _Py_SetImmortal
    linkageType: ''
    returnType: void
    signature: void immortalize_interned(PyObject *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/unicodeobject.c:14220,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:14220,1
    - Dst: _Py_atomic_load_ssize
      Src: /src/cpython/Objects/unicodeobject.c:14223,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Objects/unicodeobject.c:14224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14225
      start: 14217
    functionDepth: 1
    functionLinenumber: 14217
    functionLinenumberEnd: 14225
    functionName: can_immortalize_safely
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_REF_IS_MERGED
    - _Py_IsImmortal
    - _Py_IsOwnedByCurrentThread
    - _Py_atomic_load_ssize
    linkageType: ''
    returnType: bool
    signature: bool can_immortalize_safely(PyObject *s)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14236,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14237,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:14237,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:14239,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:14246,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:14251,1
    - Dst: immortalize_interned
      Src: /src/cpython/Objects/unicodeobject.c:14259,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14272,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14272,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:14280,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: LATIN1
      Src: /src/cpython/Objects/unicodeobject.c:14287,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:14287,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14288,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:14288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14289,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14293,1
    - Dst: unicode_is_singleton
      Src: /src/cpython/Objects/unicodeobject.c:14293,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Objects/unicodeobject.c:14298,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14300,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14300,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14302,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:14303,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:14308,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14309,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/unicodeobject.c:14315,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:14317,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Objects/unicodeobject.c:14321,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14327,1
    - Dst: can_immortalize_safely
      Src: /src/cpython/Objects/unicodeobject.c:14336,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/unicodeobject.c:14337,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:14339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14342,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Objects/unicodeobject.c:14347,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/unicodeobject.c:14350,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/unicodeobject.c:14352,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/unicodeobject.c:14353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14358,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:14360,1
    - Dst: immortalize_interned
      Src: /src/cpython/Objects/unicodeobject.c:14361,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/unicodeobject.c:14363,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14369,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14375,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14375,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:14377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14381,1
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Objects/unicodeobject.c:14383,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14383,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/unicodeobject.c:14388,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14389,1
    - Dst: immortalize_interned
      Src: /src/cpython/Objects/unicodeobject.c:14393,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/unicodeobject.c:14396,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 91
    argCount: 3
    argNames:
    - interp
    - s
    - immortalize
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - bool
    assertStmts:
    - condition: (!_PyUnicode_STATE(s).statically_allocated)
      pos:
        line_end: 14271
        line_start: 14271
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(r).statically_allocated)
      pos:
        line_end: 14299
        line_start: 14299
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (s != NULL)
      pos:
        line_end: 14235
        line_start: 14235
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (r != s)
      pos:
        line_end: 14300
        line_start: 14300
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (!unicode_is_singleton(s))
      pos:
        line_end: 14292
        line_start: 14292
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (interned != NULL)
      pos:
        line_end: 14308
        line_start: 14308
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(s).interned == SSTATE_NOT_INTERNED)
      pos:
        line_end: 14374
        line_start: 14374
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(s))
      pos:
        line_end: 14236
        line_start: 14236
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_CHECK_INTERNED(r))
      pos:
        line_end: 14287
        line_start: 14287
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (s == t)
      pos:
        line_end: 14367
        line_start: 14367
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (immortalize)
      pos:
        line_end: 14388
        line_start: 14388
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14398
      start: 14228
    functionDepth: 8
    functionLinenumber: 14228
    functionLinenumberEnd: 14398
    functionName: intern_common
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - FT_MUTEX_LOCK
    - assert
    - _PyUnicode_Copy
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_Check
    - FT_ATOMIC_STORE_UINT8
    - can_immortalize_safely
    - LATIN1
    - _PyUnicode_STATE
    - _PyUnicode_CHECK
    - _Py_hashtable_get
    - PyErr_Clear
    - _Py_IsImmortal
    - Py_DECREF
    - PyDict_GetItemRef
    - FT_MUTEX_UNLOCK
    - Py_NewRef
    - PyDict_SetDefaultRef
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_CheckExact
    - immortalize_interned
    - get_interned_dict
    - _Py_atomic_load_uint8
    - PyUnicode_GET_LENGTH
    - unicode_is_singleton
    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:14403,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - p
    argTypes:
    - PyInterpreterState*
    - PyObject**
    assertStmts:
    - condition: (*p)
      pos:
        line_end: 14403
        line_start: 14403
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14405
      start: 14400
    functionDepth: 9
    functionLinenumber: 14400
    functionLinenumberEnd: 14405
    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:14410,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - p
    argTypes:
    - PyInterpreterState*
    - PyObject**
    assertStmts:
    - condition: (*p)
      pos:
        line_end: 14410
        line_start: 14410
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14412
      start: 14407
    functionDepth: 9
    functionLinenumber: 14407
    functionLinenumberEnd: 14412
    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:14418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - p
    argTypes:
    - PyInterpreterState*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14420
      start: 14415
    functionDepth: 10
    functionLinenumber: 14415
    functionLinenumberEnd: 14420
    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:14425,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/unicodeobject.c:14426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14427
      start: 14422
    functionDepth: 10
    functionLinenumber: 14422
    functionLinenumberEnd: 14427
    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:14434,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Objects/unicodeobject.c:14435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14436
      start: 14431
    functionDepth: 10
    functionLinenumber: 14431
    functionLinenumberEnd: 14436
    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:14441,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/unicodeobject.c:14445,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/unicodeobject.c:14446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14448
      start: 14438
    functionDepth: 10
    functionLinenumber: 14438
    functionLinenumberEnd: 14448
    functionName: PyUnicode_InternFromString
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 20
    functionsReached:
    - PyUnicode_FromString
    - _PyUnicode_InternMortal
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_InternFromString(const char *cp)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:14454,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14458,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/unicodeobject.c:14458,1
    - Dst: has_shared_intern_dict
      Src: /src/cpython/Objects/unicodeobject.c:14460,1
    - Dst: clear_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:14463,1
    - Dst: fprintf
      Src: /src/cpython/Objects/unicodeobject.c:14468,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/unicodeobject.c:14469,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/unicodeobject.c:14475,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/unicodeobject.c:14477,1
    - Dst: _Py_SetMortal
      Src: /src/cpython/Objects/unicodeobject.c:14483,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:14486,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:14486,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:14487,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:14487,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14490,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/unicodeobject.c:14499,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/unicodeobject.c:14506,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:14509,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:14509,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Objects/unicodeobject.c:14510,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/unicodeobject.c:14510,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/unicodeobject.c:14516,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Objects/unicodeobject.c:14519,1
    - Dst: _PyUnicode_STATE
      Src: /src/cpython/Objects/unicodeobject.c:14519,1
    - Dst: fprintf
      Src: /src/cpython/Objects/unicodeobject.c:14523,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/unicodeobject.c:14531,1
    - Dst: clear_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:14533,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/unicodeobject.c:14534,1
    - Dst: clear_global_interned_strings
      Src: /src/cpython/Objects/unicodeobject.c:14535,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyDict_CheckExact(interned))
      pos:
        line_end: 14457
        line_start: 14457
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14537
      start: 14451
    functionDepth: 11
    functionLinenumber: 14451
    functionLinenumberEnd: 14537
    functionName: _PyUnicode_ClearInterned
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_RefcntAdd
    - clear_global_interned_strings
    - _PyThreadState_GET
    - assert
    - _Py_SetMortal
    - Py_UNREACHABLE
    - PyDict_GET_SIZE
    - _PyUnicode_STATE
    - PyDict_Next
    - clear_interned_dict
    - PyDict_CheckExact
    - Py_XINCREF
    - _Py_IncRefTotal
    - _Py_IsMainInterpreter
    - get_interned_dict
    - PyUnicode_CHECK_INTERNED
    - has_shared_intern_dict
    - PyUnicode_GET_LENGTH
    - fprintf
    - FT_ATOMIC_STORE_UINT8_RELAXED
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_ClearInterned(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/unicodeobject.c:14552,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:14553,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/unicodeobject.c:14554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14555
      start: 14548
    functionDepth: 0
    functionLinenumber: 14548
    functionLinenumberEnd: 14555
    functionName: unicodeiter_dealloc
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void unicodeiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/unicodeobject.c:14561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14563
      start: 14557
    functionDepth: 1
    functionLinenumber: 14557
    functionLinenumberEnd: 14563
    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:14571,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14575,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:14575,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14577,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/unicodeobject.c:14578,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:14579,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:14580,1
    - Dst: unicode_char
      Src: /src/cpython/Objects/unicodeobject.c:14582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 14570
        line_start: 14570
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(seq))
      pos:
        line_end: 14574
        line_start: 14574
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14588
      start: 14565
    functionDepth: 5
    functionLinenumber: 14565
    functionLinenumberEnd: 14588
    functionName: unicodeiter_next
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - unicode_char
    - PyUnicode_READ
    - _PyUnicode_CHECK
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_next(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14594,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14599,1
    - Dst: _PyUnicode_CHECK
      Src: /src/cpython/Objects/unicodeobject.c:14599,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14600,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:14600,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14601,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:14602,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/unicodeobject.c:14603,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/unicodeobject.c:14606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 14593
        line_start: 14593
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_COMPACT_ASCII(seq))
      pos:
        line_end: 14599
        line_start: 14599
        source_file: /src/cpython/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(seq))
      pos:
        line_end: 14598
        line_start: 14598
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14611
      start: 14590
    functionDepth: 1
    functionLinenumber: 14590
    functionLinenumberEnd: 14611
    functionName: unicode_ascii_iter_next
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_READ
    - _PyUnicode_CHECK
    - PyUnicode_GET_LENGTH
    - PyUnicode_IS_COMPACT_ASCII
    - assert
    - _Py_SINGLETON
    - _PyASCIIObject_CAST
    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:14619,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/unicodeobject.c:14620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14621
      start: 14613
    functionDepth: 1
    functionLinenumber: 14613
    functionLinenumberEnd: 14621
    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:14629,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/unicodeobject.c:14629,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/unicodeobject.c:14636,1
    - Dst: _PyUnicode_GetEmpty
      Src: /src/cpython/Objects/unicodeobject.c:14638,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:14640,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/unicodeobject.c:14643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14645
      start: 14625
    functionDepth: 1
    functionLinenumber: 14625
    functionLinenumberEnd: 14645
    functionName: unicodeiter_reduce
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - _PyUnicode_GetEmpty
    - Py_BuildValue
    - Py_XDECREF
    - _Py_ID
    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:14653,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/unicodeobject.c:14654,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14659,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/unicodeobject.c:14660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14664
      start: 14649
    functionDepth: 1
    functionLinenumber: 14649
    functionLinenumberEnd: 14664
    functionName: unicodeiter_setstate
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsSsize_t
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_setstate(PyObject *op, PyObject *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:14726,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/unicodeobject.c:14727,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Objects/unicodeobject.c:14730,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/unicodeobject.c:14731,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/unicodeobject.c:14734,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/unicodeobject.c:14739,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/unicodeobject.c:14740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14742
      start: 14721
    functionDepth: 1
    functionLinenumber: 14721
    functionLinenumberEnd: 14742
    functionName: unicode_iter
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - PyUnicode_IS_COMPACT_ASCII
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_iter(PyObject *seq)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/cpython/Objects/unicodeobject.c:14748,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:14750,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:14754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - wstr
    - str
    - name
    argTypes:
    - wchar_t*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14758
      start: 14744
    functionDepth: 3
    functionLinenumber: 14744
    functionLinenumberEnd: 14758
    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:14765,1
    - Dst: _PyCodec_Lookup
      Src: /src/cpython/Objects/unicodeobject.c:14770,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:14771,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/unicodeobject.c:14776,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/unicodeobject.c:14777,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Objects/unicodeobject.c:14782,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/unicodeobject.c:14783,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Objects/unicodeobject.c:14788,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:14790,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:14791,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:14795,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/unicodeobject.c:14798,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:14802,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/unicodeobject.c:14803,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - config_encoding
    argTypes:
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14805
      start: 14761
    functionDepth: 4
    functionLinenumber: 14761
    functionLinenumberEnd: 14805
    functionName: config_get_codec_name
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - encode_wstr_utf8
    - _PyMem_RawWcsdup
    - PyMem_RawFree
    - Py_CLEAR
    - PyObject_GetAttrString
    - _PyCodec_Lookup
    - Py_DECREF
    - PyMem_Free
    - Py_XDECREF
    - 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:14812,1
    - Dst: config_get_codec_name
      Src: /src/cpython/Objects/unicodeobject.c:14813,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:14814,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:14817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14818
      start: 14808
    functionDepth: 5
    functionLinenumber: 14808
    functionLinenumberEnd: 14818
    functionName: init_stdio_encoding
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - config_get_codec_name
    - _PyStatus_ERR
    - _PyStatus_OK
    - _PyInterpreterState_GetConfig
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_stdio_encoding(PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:14824,1
    - Dst: get_error_handler_wide
      Src: /src/cpython/Objects/unicodeobject.c:14827,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/unicodeobject.c:14829,1
    - Dst: encode_wstr_utf8
      Src: /src/cpython/Objects/unicodeobject.c:14834,1
    - Dst: encode_wstr_utf8
      Src: /src/cpython/Objects/unicodeobject.c:14840,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:14843,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:14848,1
    - Dst: strcmp
      Src: /src/cpython/Objects/unicodeobject.c:14851,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:14852,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14857,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/unicodeobject.c:14866,1
    - Dst: _Py_SetFileSystemEncoding
      Src: /src/cpython/Objects/unicodeobject.c:14868,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/unicodeobject.c:14870,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (fs_codec->utf8 == 1)
      pos:
        line_end: 14856
        line_start: 14856
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14875
      start: 14821
    functionDepth: 4
    functionLinenumber: 14821
    functionLinenumberEnd: 14875
    functionName: init_fs_codec
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - get_error_handler_wide
    - strcmp
    - _Py_SetFileSystemEncoding
    - _PyInterpreterState_GetConfig
    - encode_wstr_utf8
    - _Py_IsMainInterpreter
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: int
    signature: int init_fs_codec(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Objects/unicodeobject.c:14886,1
    - Dst: config_get_codec_name
      Src: /src/cpython/Objects/unicodeobject.c:14887,1
    - Dst: _Py_DumpPathConfig
      Src: /src/cpython/Objects/unicodeobject.c:14888,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:14889,1
    - Dst: init_fs_codec
      Src: /src/cpython/Objects/unicodeobject.c:14893,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/unicodeobject.c:14894,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/unicodeobject.c:14896,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14897
      start: 14878
    functionDepth: 5
    functionLinenumber: 14878
    functionLinenumberEnd: 14897
    functionName: init_fs_encoding
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyInterpreterState_GetConfig
    - _Py_DumpPathConfig
    - _PyStatus_ERR
    - config_get_codec_name
    - init_fs_codec
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_fs_encoding(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_InitRegistry
      Src: /src/cpython/Objects/unicodeobject.c:14903,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Objects/unicodeobject.c:14904,1
    - Dst: init_fs_encoding
      Src: /src/cpython/Objects/unicodeobject.c:14907,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Objects/unicodeobject.c:14908,1
    - Dst: init_stdio_encoding
      Src: /src/cpython/Objects/unicodeobject.c:14912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14913
      start: 14900
    functionDepth: 6
    functionLinenumber: 14900
    functionLinenumberEnd: 14913
    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:14919,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Objects/unicodeobject.c:14922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fs_codec
    argTypes:
    - struct _Py_unicode_fs_codec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14925
      start: 14916
    functionDepth: 1
    functionLinenumber: 14916
    functionLinenumberEnd: 14925
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:14932,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Objects/unicodeobject.c:14932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14933
      start: 14929
    functionDepth: 2
    functionLinenumber: 14929
    functionLinenumberEnd: 14933
    functionName: unicode_is_finalizing
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Main
    - get_interned_dict
    linkageType: ''
    returnType: int
    signature: int unicode_is_finalizing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:14940,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:14941,1
    - Dst: _PyStaticType_FiniBuiltin
      Src: /src/cpython/Objects/unicodeobject.c:14942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14943
      start: 14937
    functionDepth: 1
    functionLinenumber: 14937
    functionLinenumberEnd: 14943
    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:14951,1
    - Dst: assert
      Src: /src/cpython/Objects/unicodeobject.c:14953,1
    - Dst: get_interned_dict
      Src: /src/cpython/Objects/unicodeobject.c:14953,1
    - Dst: _PyUnicode_FiniEncodings
      Src: /src/cpython/Objects/unicodeobject.c:14956,1
    - Dst: unicode_clear_identifiers
      Src: /src/cpython/Objects/unicodeobject.c:14962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (get_interned_dict(interp) == NULL)
      pos:
        line_end: 14952
        line_start: 14952
        source_file: /src/cpython/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14963
      start: 14946
    functionDepth: 3
    functionLinenumber: 14946
    functionLinenumberEnd: 14963
    functionName: _PyUnicode_Fini
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_clear_identifiers
    - _PyUnicode_FiniEncodings
    - get_interned_dict
    - has_shared_intern_dict
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_Fini(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Objects/unicodeobject.c:14995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14996
      start: 14992
    functionDepth: 1
    functionLinenumber: 14992
    functionLinenumberEnd: 14996
    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:15002,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:15003,1
    - Dst: _PyASCIIObject_CAST
      Src: /src/cpython/Objects/unicodeobject.c:15006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15007
      start: 15000
    functionDepth: 1
    functionLinenumber: 15000
    functionLinenumberEnd: 15007
    functionName: PyUnicode_KIND
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 127
    functionsReached:
    - PyErr_Format
    - _PyASCIIObject_CAST
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int PyUnicode_KIND(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/unicodeobject.c:15012,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/unicodeobject.c:15013,1
    - Dst: _PyUnicode_DATA
      Src: /src/cpython/Objects/unicodeobject.c:15016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15017
      start: 15010
    functionDepth: 1
    functionLinenumber: 15010
    functionLinenumberEnd: 15017
    functionName: PyUnicode_DATA
    functionSourceFile: /src/cpython/Objects/unicodeobject.c
    functionUses: 124
    functionsReached:
    - PyErr_Format
    - _PyUnicode_DATA
    - PyUnicode_Check
    linkageType: ''
    returnType: void
    signature: void * PyUnicode_DATA(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - so
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SET_IS_SHARED
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_IS_SHARED(so)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - so
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: SET_MARK_SHARED
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_MARK_SHARED(so)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Objects/setobject.c:83,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:83,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:88,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:89,1
    - Dst: SET_MARK_SHARED
      Src: /src/cpython/Objects/setobject.c:90,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: ensure_shared_on_read
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 4
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_IsOwnedByCurrentThread
    - SET_IS_SHARED
    - SET_MARK_SHARED
    linkageType: ''
    returnType: void
    signature: void ensure_shared_on_read(PySetObject *so)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/setobject.c:100,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_ACQUIRE
      Src: /src/cpython/Objects/setobject.c:107,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Objects/setobject.c:109,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/setobject.c:112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:113,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/setobject.c:117,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/setobject.c:118,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - so
    - table
    - ep
    - key
    - hash
    argTypes:
    - PySetObject*
    - setentry*
    - setentry*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (cmp == SET_LOOKKEY_FOUND || cmp == SET_LOOKKEY_NO_MATCH)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 128
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 128
    functionName: set_compare_threadsafe
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - FT_ATOMIC_LOAD_SSIZE_ACQUIRE
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - _Py_TryIncrefCompare
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: "Py_ALWAYS_INLINE set_compare_threadsafe(PySetObject *so, setentry
      *table, setentry *ep,\n                       PyObject *key, Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - so
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: SET_IS_SHARED
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_IS_SHARED(so)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:141,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:146,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/setobject.c:149,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/setobject.c:150,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/setobject.c:151,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:154,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/setobject.c:155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:156,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 5
    argNames:
    - so
    - table
    - entry
    - key
    - hash
    argTypes:
    - PySetObject*
    - setentry*
    - setentry*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (startkey != dummy)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 165
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 165
    functionName: set_compare_entry_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - PyObject_RichCompareBool
    - assert
    - PyUnicode_CheckExact
    - unicode_eq
    - Py_DECREF
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: "Py_ALWAYS_INLINE set_compare_entry_lock_held(PySetObject *so, setentry
      *table, setentry *entry,\n                            PyObject *key, Py_hash_t
      hash)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:175,1
    - Dst: PyFrozenSet_Check
      Src: /src/cpython/Objects/setobject.c:175,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/setobject.c:185,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - so
    - table
    - ep
    - key
    - hash
    argTypes:
    - PySetObject*
    - setentry*
    - setentry*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (PyFrozenSet_Check(so))
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/cpython/Objects/setobject.c
    - condition: (cmp == SET_LOOKKEY_FOUND || cmp == SET_LOOKKEY_NO_MATCH)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: set_compare_frozenset
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenSet_Check
    - PyObject_RichCompareBool
    - assert
    linkageType: ''
    returnType: Py_ALWAYS_INLINE
    signature: "Py_ALWAYS_INLINE set_compare_frozenset(PySetObject *so, setentry *table,
      setentry *ep,\n                                 PyObject *key, Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:201,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:202,1
    - Dst: memset
      Src: /src/cpython/Objects/setobject.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - table
    - size
    argTypes:
    - setentry*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: set_zero_table
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - memset
    linkageType: ''
    returnType: void
    signature: void set_zero_table(setentry *table, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compare_entry
      Src: /src/cpython/Objects/setobject.c:234,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/setobject.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - so
    - table
    - mask
    - key
    - hash
    - epp
    - compare_entry
    argTypes:
    - PySetObject*
    - setentry*
    - size_t
    - PyObject*
    - Py_hash_t
    - setentry**
    - compare_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 248
    functionName: set_do_lookup
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - compare_entry
    linkageType: ''
    returnType: int
    signature: "int set_do_lookup(PySetObject *so, setentry *table, size_t mask, PyObject
      *key,\n              Py_hash_t hash, setentry **epp, compare_func compare_entry)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:279,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/setobject.c:282,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/setobject.c:283,1
    - Dst: unicode_eq
      Src: /src/cpython/Objects/setobject.c:284,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:287,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/setobject.c:288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:289,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:299,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:314,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:315,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:316,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:321,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:322,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:323,1
    - Dst: set_table_resize
      Src: /src/cpython/Objects/setobject.c:326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:333,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 76
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (startkey != dummy)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/cpython/Objects/setobject.c
    - condition: (entry->key == dummy)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 335
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 335
    functionName: set_add_entry_takeref
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_INCREF
    - assert
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PyUnicode_CheckExact
    - set_table_resize
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - unicode_eq
    - Py_DECREF
    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:340,1
    - Dst: set_add_entry_takeref
      Src: /src/cpython/Objects/setobject.c:342,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 5
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: set_add_entry
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - set_add_entry_takeref
    - Py_NewRef
    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:348,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:349,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/setobject.c:350,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/setobject.c:351,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/setobject.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: set_unhashable_type
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - PyErr_SetRaisedException
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void set_unhashable_type(PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/setobject.c:364,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:367,1
    - Dst: set_add_entry_takeref
      Src: /src/cpython/Objects/setobject.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 5
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: _PySet_AddTakeRef
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - set_unhashable_type
    - set_add_entry_takeref
    - _PyObject_HashFast
    linkageType: ''
    returnType: int
    signature: int _PySet_AddTakeRef(PySetObject *so, PyObject *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:406,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:407,1
    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: 408
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 408
    functionName: set_insert_clean
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    linkageType: ''
    returnType: void
    signature: void set_insert_clean(setentry *table, size_t mask, PyObject *key,
      Py_hash_t hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/setobject.c:417,1
    - Dst: set_do_lookup
      Src: /src/cpython/Objects/setobject.c:418,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:422,1
    - Dst: set_do_lookup
      Src: /src/cpython/Objects/setobject.c:424,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:427,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - so
    - key
    - hash
    - epp
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    - setentry**
    assertStmts:
    - condition: "(status == SET_LOOKKEY_FOUND ||\n           status == SET_LOOKKEY_NO_MATCH
        ||\n           status == SET_LOOKKEY_ERROR)"
      pos:
        line_end: 430
        line_start: 428
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 433
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 433
    functionName: set_lookkey
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_do_lookup
    - Py_END_CRITICAL_SECTION
    - PyFrozenSet_CheckExact
    - Py_BEGIN_CRITICAL_SECTION
    - assert
    linkageType: ''
    returnType: int
    signature: int set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash, setentry
      **epp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/setobject.c:441,1
    - Dst: set_do_lookup
      Src: /src/cpython/Objects/setobject.c:442,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:444,1
    - Dst: ensure_shared_on_read
      Src: /src/cpython/Objects/setobject.c:449,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/setobject.c:450,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_ACQUIRE
      Src: /src/cpython/Objects/setobject.c:451,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/setobject.c:452,1
    - Dst: set_lookkey
      Src: /src/cpython/Objects/setobject.c:453,1
    - Dst: set_do_lookup
      Src: /src/cpython/Objects/setobject.c:455,1
    - Dst: set_lookkey
      Src: /src/cpython/Objects/setobject.c:458,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:460,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: "(status == SET_LOOKKEY_FOUND ||\n               status == SET_LOOKKEY_NO_MATCH
        ||\n               status == SET_LOOKKEY_ERROR)"
      pos:
        line_end: 445
        line_start: 443
        source_file: /src/cpython/Objects/setobject.c
    - condition: "(status == SET_LOOKKEY_FOUND ||\n           status == SET_LOOKKEY_NO_MATCH
        ||\n           status == SET_LOOKKEY_ERROR)"
      pos:
        line_end: 461
        line_start: 459
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 464
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 464
    functionName: set_lookkey_threadsafe
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_do_lookup
    - PyFrozenSet_CheckExact
    - set_lookkey
    - ensure_shared_on_read
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - FT_ATOMIC_LOAD_SSIZE_ACQUIRE
    - assert
    linkageType: ''
    returnType: int
    signature: int set_lookkey_threadsafe(PySetObject *so, PyObject *key, Py_hash_t
      hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_FreeDelayed
      Src: /src/cpython/Objects/setobject.c:471,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/setobject.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - entries
    - size
    - use_qsbr
    argTypes:
    - setentry*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 7
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: free_entries
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyMem_FreeDelayed
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_entries(setentry *entries, size_t size, bool use_qsbr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:493,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:504,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:521,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:522,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Objects/setobject.c:527,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/setobject.c:529,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:535,1
    - Dst: set_zero_table
      Src: /src/cpython/Objects/setobject.c:536,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:537,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELEASE
      Src: /src/cpython/Objects/setobject.c:538,1
    - Dst: set_insert_clean
      Src: /src/cpython/Objects/setobject.c:546,1
    - Dst: set_insert_clean
      Src: /src/cpython/Objects/setobject.c:553,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:558,1
    - Dst: free_entries
      Src: /src/cpython/Objects/setobject.c:561,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:561,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - so
    - minused
    argTypes:
    - PySetObject*
    - Py_ssize_t
    assertStmts:
    - condition: (minused >= 0)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/cpython/Objects/setobject.c
    - condition: (oldtable != NULL)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Objects/setobject.c
    - condition: (so->fill > so->used)
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/cpython/Objects/setobject.c
    - condition: (newtable != oldtable)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 563
      start: 483
    functionDepth: 8
    functionLinenumber: 483
    functionLinenumberEnd: 563
    functionName: set_table_resize
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    - FT_ATOMIC_STORE_PTR_RELEASE
    - FT_ATOMIC_STORE_SSIZE_RELEASE
    - free_entries
    - SET_IS_SHARED
    - memcpy
    - assert
    - set_zero_table
    - set_insert_clean
    linkageType: ''
    returnType: int
    signature: int set_table_resize(PySetObject *so, Py_ssize_t minused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_lookkey_threadsafe
      Src: /src/cpython/Objects/setobject.c:569,1
    - Dst: set_lookkey
      Src: /src/cpython/Objects/setobject.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 574
    functionName: set_contains_entry
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_lookkey_threadsafe
    - 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:584,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:591,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:593,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:594,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:595,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (status == SET_LOOKKEY_FOUND)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 598
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 598
    functionName: set_discard_entry
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - set_lookkey
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - assert
    - 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:603,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:605,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 6
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: set_add_key
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_add_entry
    - set_unhashable_type
    - _PyObject_HashFast
    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:614,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:616,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 611
    functionDepth: 5
    functionLinenumber: 611
    functionLinenumberEnd: 620
    functionName: set_contains_key
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_unhashable_type
    - set_contains_entry
    - _PyObject_HashFast
    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:625,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:627,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 622
    functionDepth: 4
    functionLinenumber: 622
    functionLinenumberEnd: 631
    functionName: set_discard_key
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_unhashable_type
    - set_discard_entry
    - _PyObject_HashFast
    linkageType: ''
    returnType: int
    signature: int set_discard_key(PySetObject *so, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:636,1
    - Dst: set_zero_table
      Src: /src/cpython/Objects/setobject.c:637,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:639,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELEASE
      Src: /src/cpython/Objects/setobject.c:640,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:641,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 643
    functionName: set_empty_to_minsize
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - set_zero_table
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - FT_ATOMIC_STORE_SSIZE_RELEASE
    linkageType: ''
    returnType: void
    signature: void set_empty_to_minsize(PySetObject *so)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:648,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:657,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:657,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:658,1
    - Dst: set_empty_to_minsize
      Src: /src/cpython/Objects/setobject.c:667,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:674,1
    - Dst: set_empty_to_minsize
      Src: /src/cpython/Objects/setobject.c:676,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:687,1
    - Dst: free_entries
      Src: /src/cpython/Objects/setobject.c:692,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:692,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 656
        line_start: 656
        source_file: /src/cpython/Objects/setobject.c
    - condition: (table != NULL)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 694
      start: 645
    functionDepth: 8
    functionLinenumber: 645
    functionLinenumberEnd: 694
    functionName: set_clear_internal
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - free_entries
    - PyAnySet_Check
    - memcpy
    - assert
    - Py_DECREF
    - set_empty_to_minsize
    - SET_IS_SHARED
    - _PySet_CAST
    linkageType: ''
    returnType: int
    signature: int set_clear_internal(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:716,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:716,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:718,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:728,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: 715
        line_start: 715
        source_file: /src/cpython/Objects/setobject.c
    - condition: (i >= 0)
      pos:
        line_end: 717
        line_start: 717
        source_file: /src/cpython/Objects/setobject.c
    - condition: (entry != NULL)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 731
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 731
    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:736,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/setobject.c:742,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/setobject.c:743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:748,1
    - Dst: free_entries
      Src: /src/cpython/Objects/setobject.c:752,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:752,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 733
    functionDepth: 8
    functionLinenumber: 733
    functionLinenumberEnd: 754
    functionName: set_dealloc
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - free_entries
    - SET_IS_SHARED
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - Py_DECREF
    - _PySet_CAST
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void set_dealloc(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/setobject.c:760,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/setobject.c:765,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:765,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/setobject.c:770,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/setobject.c:771,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:771,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/setobject.c:776,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:783,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/setobject.c:784,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:784,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/setobject.c:788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:789,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/setobject.c:792,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/setobject.c:792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:793,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Objects/setobject.c:798,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/setobject.c:799,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:800,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/setobject.c:803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:804,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/setobject.c:806,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 756
    functionDepth: 10
    functionLinenumber: 756
    functionLinenumberEnd: 808
    functionName: set_repr_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - Py_ReprEnter
    - set_next
    - PyObject_Repr
    - PyUnicode_Substring
    - PyList_New
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PySet_CheckExact
    - Py_NewRef
    - 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:813,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:815,1
    - Dst: set_repr_lock_held
      Src: /src/cpython/Objects/setobject.c:816,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 11
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: set_repr
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set_repr_lock_held
    - _PySet_CAST
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:824,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 826
    functionName: set_len
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _PySet_CAST
    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:837,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:837,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:838,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:839,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:841,1
    - Dst: set_table_resize
      Src: /src/cpython/Objects/setobject.c:850,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:862,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:863,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:864,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:864,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:868,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:877,1
    - Dst: set_insert_clean
      Src: /src/cpython/Objects/setobject.c:881,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:881,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:893,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - so
    - otherset
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 836
        line_start: 836
        source_file: /src/cpython/Objects/setobject.c
    - condition: (so_entry->key == NULL)
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 898
      start: 828
    functionDepth: 9
    functionLinenumber: 828
    functionLinenumberEnd: 898
    functionName: set_merge_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - FT_ATOMIC_STORE_PTR_RELEASE
    - set_table_resize
    - PyAnySet_Check
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - assert
    - set_add_entry
    - set_insert_clean
    - Py_NewRef
    - _PySet_CAST
    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:920,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:928,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:929,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:931,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 934
    functionName: set_pop_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - 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:939,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:943,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/setobject.c:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 946
    functionName: set_traverse
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_next
    - Py_VISIT
    - _PySet_CAST
    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: 957
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 957
    functionName: _shuffle_bits
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    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:975,1
    - Dst: _shuffle_bits
      Src: /src/cpython/Objects/setobject.c:990,1
    - Dst: _shuffle_bits
      Src: /src/cpython/Objects/setobject.c:994,1
    - Dst: _shuffle_bits
      Src: /src/cpython/Objects/setobject.c:998,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1001,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 1012
    functionName: frozenset_hash_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _shuffle_bits
    - PySet_GET_SIZE
    - _PySet_CAST
    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:1017,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1020,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_ACQUIRE
      Src: /src/cpython/Objects/setobject.c:1021,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:1024,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELEASE
      Src: /src/cpython/Objects/setobject.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1027
    functionName: frozenset_hash
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELEASE
    - frozenset_hash_impl
    - FT_ATOMIC_LOAD_SSIZE_ACQUIRE
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _PySet_CAST
    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:1044,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:1045,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/setobject.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1047
    functionName: setiter_dealloc
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void setiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/setobject.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1055
    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:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1065
    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:1076,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/setobject.c:1079,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:1080,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/setobject.c:1084,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/setobject.c:1084,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/setobject.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1085
    functionName: setiter_reduce
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - PySequence_List
    - Py_BuildValue
    - _Py_ID
    - Py_XDECREF
    - 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:1105,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1105,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1107,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1108,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/setobject.c:1110,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1116,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1118,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1125,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/cpython/Objects/setobject.c
    - condition: (i>=0)
      pos:
        line_end: 1117
        line_start: 1117
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1136
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1136
    functionName: setiter_iternext
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyAnySet_Check
    - assert
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: PyObject *setiter_iternext(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_len
      Src: /src/cpython/Objects/setobject.c:1174,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/setobject.c:1175,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1178,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/setobject.c:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - so
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1184
    functionName: set_iter
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - set_len
    - Py_NewRef
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_iter(PyObject *so)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1189,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1189,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1191,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1193,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1194,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1202,1
    - Dst: set_table_resize
      Src: /src/cpython/Objects/setobject.c:1204,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/setobject.c:1213,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (PyAnyDict_CheckExact(other))
      pos:
        line_end: 1188
        line_start: 1188
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1219
      start: 1186
    functionDepth: 9
    functionLinenumber: 1186
    functionLinenumberEnd: 1219
    functionName: set_update_dict_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyAnyDict_CheckExact
    - set_table_resize
    - assert
    - set_add_entry
    - PyDict_GET_SIZE
    - _PyDict_Next
    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:1224,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:1226,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:1232,1
    - Dst: set_add_key
      Src: /src/cpython/Objects/setobject.c:1233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1240,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:1241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1221
    functionDepth: 7
    functionLinenumber: 1221
    functionLinenumberEnd: 1244
    functionName: set_update_iterable_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyObject_GetIter
    - set_add_key
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    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:1249,1
    - Dst: set_merge_lock_held
      Src: /src/cpython/Objects/setobject.c:1250,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1252,1
    - Dst: set_update_dict_lock_held
      Src: /src/cpython/Objects/setobject.c:1253,1
    - Dst: set_update_iterable_lock_held
      Src: /src/cpython/Objects/setobject.c:1255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1246
    functionDepth: 10
    functionLinenumber: 1246
    functionLinenumberEnd: 1256
    functionName: set_update_lock_held
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_merge_lock_held
    - PyAnyDict_CheckExact
    - PyAnySet_Check
    - set_update_iterable_lock_held
    - set_update_dict_lock_held
    linkageType: ''
    returnType: int
    signature: int set_update_lock_held(PySetObject *so, PyObject *other)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1262,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/setobject.c:1262,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1263,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1265,1
    - Dst: set_merge_lock_held
      Src: /src/cpython/Objects/setobject.c:1266,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1267,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1270,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1272,1
    - Dst: set_update_dict_lock_held
      Src: /src/cpython/Objects/setobject.c:1273,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1274,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1277,1
    - Dst: set_update_dict_lock_held
      Src: /src/cpython/Objects/setobject.c:1278,1
    - Dst: set_update_iterable_lock_held
      Src: /src/cpython/Objects/setobject.c:1280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(so) == 1)
      pos:
        line_end: 1261
        line_start: 1261
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1281
      start: 1259
    functionDepth: 10
    functionLinenumber: 1259
    functionLinenumberEnd: 1281
    functionName: set_update_local
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - set_merge_lock_held
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_REFCNT
    - PyAnySet_Check
    - set_update_iterable_lock_held
    - assert
    - PyDict_CheckExact
    - set_update_dict_lock_held
    linkageType: ''
    returnType: int
    signature: int set_update_local(PySetObject *so, PyObject *other)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1286,1
    - Dst: Py_Is
      Src: /src/cpython/Objects/setobject.c:1287,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1291,1
    - Dst: set_merge_lock_held
      Src: /src/cpython/Objects/setobject.c:1292,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1293,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1296,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1298,1
    - Dst: set_update_dict_lock_held
      Src: /src/cpython/Objects/setobject.c:1299,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1300,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:1303,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1305,1
    - Dst: set_update_dict_lock_held
      Src: /src/cpython/Objects/setobject.c:1306,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1307,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1312,1
    - Dst: set_update_iterable_lock_held
      Src: /src/cpython/Objects/setobject.c:1313,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1283
    functionDepth: 10
    functionLinenumber: 1283
    functionLinenumberEnd: 1317
    functionName: set_update_internal
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - set_merge_lock_held
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION
    - PyAnySet_Check
    - set_update_iterable_lock_held
    - Py_Is
    - PyDict_CheckExact
    - Py_END_CRITICAL_SECTION2
    - 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:1336,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: 1340
      start: 1327
    functionDepth: 11
    functionLinenumber: 1327
    functionLinenumberEnd: 1340
    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:1351,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/setobject.c:1351,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/setobject.c:1354,1
    - Dst: set_update_local
      Src: /src/cpython/Objects/setobject.c:1367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 1350
        line_start: 1350
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1374
      start: 1348
    functionDepth: 11
    functionLinenumber: 1348
    functionLinenumberEnd: 1374
    functionName: make_new_set
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - set_update_local
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_new_set(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/setobject.c:1380,1
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:1385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1376
    functionDepth: 12
    functionLinenumber: 1376
    functionLinenumberEnd: 1386
    functionName: make_new_set_basetype
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyType_IsSubtype
    - make_new_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_new_set_basetype(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1392,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/setobject.c:1394,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1400,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/cpython/Objects/setobject.c:1401,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/setobject.c:1405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 1391
        line_start: 1391
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1406
      start: 1389
    functionDepth: 2
    functionLinenumber: 1389
    functionLinenumberEnd: 1406
    functionName: _PyFrozenSet_MaybeUntrack
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenSet_CheckExact
    - set_next
    - _PyObject_GC_MAY_BE_TRACKED
    - assert
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: void
    signature: void _PyFrozenSet_MaybeUntrack(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:1412,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/setobject.c:1415,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1417,1
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:1419,1
    - Dst: _PyFrozenSet_MaybeUntrack
      Src: /src/cpython/Objects/setobject.c:1421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1408
    functionDepth: 12
    functionLinenumber: 1408
    functionLinenumberEnd: 1424
    functionName: make_new_frozenset
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenSet_CheckExact
    - make_new_set
    - Py_NewRef
    - _PyFrozenSet_MaybeUntrack
    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:1433,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/setobject.c:1437,1
    - Dst: make_new_frozenset
      Src: /src/cpython/Objects/setobject.c:1441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1426
    functionDepth: 13
    functionLinenumber: 1426
    functionLinenumberEnd: 1442
    functionName: frozenset_new
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - make_new_frozenset
    - PyArg_UnpackTuple
    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:1448,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/setobject.c:1452,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/setobject.c:1453,1
    - Dst: make_new_frozenset
      Src: /src/cpython/Objects/setobject.c:1458,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/setobject.c:1458,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: 1459
      start: 1444
    functionDepth: 13
    functionLinenumber: 1444
    functionLinenumberEnd: 1459
    functionName: frozenset_vectorcall
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - make_new_frozenset
    - _PyArg_NoKwnames
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1461
    functionDepth: 12
    functionLinenumber: 1461
    functionLinenumberEnd: 1465
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/setobject.c:1472,1
    - Dst: _Py_atomic_store_ssize_relaxed
      Src: /src/cpython/Objects/setobject.c:1473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - setentry*
    - setentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1468
    functionDepth: 0
    functionLinenumber: 1468
    functionLinenumberEnd: 1475
    functionName: copy_small_table
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ssize_relaxed
    - _Py_atomic_store_ptr_release
    linkageType: ''
    returnType: void
    signature: void copy_small_table(setentry *dest, setentry *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:1499,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:1500,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1504,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1505,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELEASE
      Src: /src/cpython/Objects/setobject.c:1507,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELEASE
      Src: /src/cpython/Objects/setobject.c:1508,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:1519,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:1521,1
    - Dst: memcpy
      Src: /src/cpython/Objects/setobject.c:1522,1
    - Dst: copy_small_table
      Src: /src/cpython/Objects/setobject.c:1524,1
    - Dst: copy_small_table
      Src: /src/cpython/Objects/setobject.c:1525,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/setobject.c:1529,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1529,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/setobject.c:1530,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1530,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1531,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1532,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1532,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1533,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1535,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:1536,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:1538,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:1538,1
    - Dst: SET_MARK_SHARED
      Src: /src/cpython/Objects/setobject.c:1539,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:1541,1
    - Dst: SET_IS_SHARED
      Src: /src/cpython/Objects/setobject.c:1541,1
    - Dst: SET_MARK_SHARED
      Src: /src/cpython/Objects/setobject.c:1542,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:1544,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/setobject.c:1545,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PySetObject*
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1489
    functionDepth: 1
    functionLinenumber: 1489
    functionLinenumberEnd: 1546
    functionName: set_swap_bodies
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyType_IsSubtype
    - FT_ATOMIC_STORE_SSIZE_RELEASE
    - FT_ATOMIC_STORE_PTR_RELEASE
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - memcpy
    - copy_small_table
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - SET_IS_SHARED
    - Py_TYPE
    - SET_MARK_SHARED
    linkageType: ''
    returnType: void
    signature: void set_swap_bodies(PySetObject *a, PySetObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1551,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1552,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Objects/setobject.c:1552,1
    - Dst: assert
      Src: /src/cpython/Objects/setobject.c:1553,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/setobject.c:1553,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 1550
        line_start: 1550
        source_file: /src/cpython/Objects/setobject.c
    - condition: (PySet_CheckExact(set))
      pos:
        line_end: 1551
        line_start: 1551
        source_file: /src/cpython/Objects/setobject.c
    - condition: (_PyObject_IsUniquelyReferenced(set))
      pos:
        line_end: 1552
        line_start: 1552
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 1556
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1556
    functionName: _PySet_Freeze
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySet_CheckExact
    - Py_NewRef
    - _PyObject_IsUniquelyReferenced
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySet_Freeze(PyObject *set)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1570,1
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:1571,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1571,1
    - Dst: set_merge_lock_held
      Src: /src/cpython/Objects/setobject.c:1575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1566
    functionDepth: 13
    functionLinenumber: 1566
    functionLinenumberEnd: 1580
    functionName: set_copy_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - set_merge_lock_held
    - make_new_set_basetype
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_copy_impl(PySetObject *so)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/setobject.c:1594,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1595,1
    - Dst: set_copy_impl
      Src: /src/cpython/Objects/setobject.c:1597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1590
    functionDepth: 14
    functionLinenumber: 1590
    functionLinenumberEnd: 1598
    functionName: frozenset_copy_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenSet_CheckExact
    - set_copy_impl
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_copy_impl(PySetObject *so)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_clear_internal
      Src: /src/cpython/Objects/setobject.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1608
    functionDepth: 9
    functionLinenumber: 1608
    functionLinenumberEnd: 1614
    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:1633,1
    - Dst: set_update_local
      Src: /src/cpython/Objects/setobject.c:1641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1642,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: 1647
      start: 1624
    functionDepth: 11
    functionLinenumber: 1624
    functionLinenumberEnd: 1647
    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:1654,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1654,1
    - Dst: set_copy
      Src: /src/cpython/Objects/setobject.c:1657,1
    - Dst: Py_Is
      Src: /src/cpython/Objects/setobject.c:1661,1
    - Dst: set_update_local
      Src: /src/cpython/Objects/setobject.c:1664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1649
    functionDepth: 11
    functionLinenumber: 1649
    functionLinenumberEnd: 1669
    functionName: set_or
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_update_local
    - PyAnySet_Check
    - Py_Is
    - Py_DECREF
    - set_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_or(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1674,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:1676,1
    - Dst: set_update_internal
      Src: /src/cpython/Objects/setobject.c:1678,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1671
    functionDepth: 11
    functionLinenumber: 1671
    functionLinenumberEnd: 1682
    functionName: set_ior
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyAnySet_Check
    - Py_NewRef
    - set_update_internal
    - _PySet_CAST
    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:1693,1
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:1695,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:1695,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1699,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1703,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1703,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1709,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1712,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:1713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1716,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1726,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:1731,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1733,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:1737,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/setobject.c:1738,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:1741,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:1745,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1747,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1754,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:1755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1763,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1684
    functionDepth: 14
    functionLinenumber: 1684
    functionLinenumberEnd: 1765
    functionName: set_intersection
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_add_entry
    - Py_INCREF
    - make_new_set_basetype
    - PyIter_Next
    - PyObject_Hash
    - PySet_GET_SIZE
    - set_next
    - PyObject_GetIter
    - set_copy_impl
    - PyAnySet_Check
    - PyErr_Occurred
    - Py_DECREF
    - set_contains_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:1783,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1786,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1790,1
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:1791,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1794,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/setobject.c:1797,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: 1800
      start: 1775
    functionDepth: 15
    functionLinenumber: 1775
    functionLinenumberEnd: 1800
    functionName: set_intersection_multi_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_SETREF
    - set_intersection
    - Py_DECREF
    - Py_END_CRITICAL_SECTION2
    - set_copy
    - Py_NewRef
    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:1807,1
    - Dst: set_swap_bodies
      Src: /src/cpython/Objects/setobject.c:1810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1802
    functionDepth: 15
    functionLinenumber: 1802
    functionLinenumberEnd: 1813
    functionName: set_intersection_update
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_swap_bodies
    - set_intersection
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection_update(PySetObject *so, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_intersection_multi_impl
      Src: /src/cpython/Objects/setobject.c:1830,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1833,1
    - Dst: set_swap_bodies
      Src: /src/cpython/Objects/setobject.c:1834,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:1835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1836,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: 1838
      start: 1823
    functionDepth: 16
    functionLinenumber: 1823
    functionLinenumberEnd: 1838
    functionName: set_intersection_update_multi_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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:1843,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1843,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:1845,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1848,1
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:1849,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1840
    functionDepth: 15
    functionLinenumber: 1840
    functionLinenumberEnd: 1853
    functionName: set_and
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - PyAnySet_Check
    - Py_END_CRITICAL_SECTION2
    - set_intersection
    - _PySet_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_and(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1860,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:1862,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1864,1
    - Dst: set_intersection_update
      Src: /src/cpython/Objects/setobject.c:1865,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:1866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1870,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:1871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1855
    functionDepth: 16
    functionLinenumber: 1855
    functionLinenumberEnd: 1872
    functionName: set_iand
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - set_intersection_update
    - PyAnySet_Check
    - Py_DECREF
    - Py_END_CRITICAL_SECTION2
    - Py_NewRef
    - _PySet_CAST
    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:1892,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Objects/setobject.c:1898,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1902,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1902,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1907,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1909,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:1910,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1911,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:1922,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:1926,1
    - Dst: set_contains_key
      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:1930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1934,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1938,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:1939,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1884
    functionDepth: 6
    functionLinenumber: 1884
    functionLinenumberEnd: 1942
    functionName: set_isdisjoint_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - set_contains_key
    - PyIter_Next
    - PySet_GET_SIZE
    - PyAnySet_CheckExact
    - set_next
    - PyObject_GetIter
    - PyErr_Occurred
    - Py_DECREF
    - set_contains_entry
    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:1947,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:1948,1
    - Dst: set_clear_internal
      Src: /src/cpython/Objects/setobject.c:1951,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:1953,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1961,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:1961,1
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:1962,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1966,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:1969,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:1971,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:1972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1980,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:1983,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:1987,1
    - Dst: set_discard_key
      Src: /src/cpython/Objects/setobject.c:1988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:1995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:1996,1
    - Dst: set_table_resize
      Src: /src/cpython/Objects/setobject.c:2002,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1944
    functionDepth: 15
    functionLinenumber: 1944
    functionLinenumberEnd: 2003
    functionName: set_difference_update_internal
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - PyIter_Next
    - set_clear_internal
    - PySet_GET_SIZE
    - set_table_resize
    - set_discard_entry
    - set_next
    - PyObject_GetIter
    - PyAnySet_Check
    - set_discard_key
    - PyErr_Occurred
    - Py_DECREF
    - set_intersection
    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:2023,1
    - Dst: set_difference_update_internal
      Src: /src/cpython/Objects/setobject.c:2024,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2025,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: 2031
      start: 2013
    functionDepth: 16
    functionLinenumber: 2013
    functionLinenumberEnd: 2031
    functionName: set_difference_update_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - set_difference_update_internal
    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:2038,1
    - Dst: set_difference_update_internal
      Src: /src/cpython/Objects/setobject.c:2041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2033
    functionDepth: 16
    functionLinenumber: 2033
    functionLinenumberEnd: 2045
    functionName: set_copy_and_difference
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_difference_update_internal
    - set_copy_impl
    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:2057,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2058,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:2060,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2061,1
    - Dst: set_copy_and_difference
      Src: /src/cpython/Objects/setobject.c:2064,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2069,1
    - Dst: set_copy_and_difference
      Src: /src/cpython/Objects/setobject.c:2070,1
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:2073,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2073,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:2077,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:2078,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:2081,1
    - Dst: _PyDict_Contains_KnownHash
      Src: /src/cpython/Objects/setobject.c:2082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2085,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:2089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2091,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2095,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:2101,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:2104,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:2105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2107,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2108,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:2112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2118,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2047
    functionDepth: 17
    functionLinenumber: 2047
    functionLinenumberEnd: 2121
    functionName: set_difference
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_add_entry
    - _PyDict_Contains_KnownHash
    - Py_INCREF
    - PyAnyDict_CheckExact
    - make_new_set_basetype
    - set_copy_and_difference
    - PySet_GET_SIZE
    - set_next
    - PyAnySet_Check
    - Py_DECREF
    - PyDict_GET_SIZE
    - set_contains_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:2141,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2145,1
    - Dst: set_difference
      Src: /src/cpython/Objects/setobject.c:2146,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2147,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2154,1
    - Dst: set_difference_update_internal
      Src: /src/cpython/Objects/setobject.c:2155,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2158,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: 2163
      start: 2132
    functionDepth: 18
    functionLinenumber: 2132
    functionLinenumberEnd: 2163
    functionName: set_difference_multi_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION
    - set_difference_update_internal
    - Py_DECREF
    - Py_END_CRITICAL_SECTION2
    - set_copy
    - set_difference
    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:2168,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2168,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2170,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2173,1
    - Dst: set_difference
      Src: /src/cpython/Objects/setobject.c:2174,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2165
    functionDepth: 18
    functionLinenumber: 2165
    functionLinenumberEnd: 2177
    functionName: set_sub
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - PyAnySet_Check
    - Py_END_CRITICAL_SECTION2
    - set_difference
    - _PySet_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_sub(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2182,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2184,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2187,1
    - Dst: set_difference_update_internal
      Src: /src/cpython/Objects/setobject.c:2188,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2189,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:2193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2179
    functionDepth: 16
    functionLinenumber: 2179
    functionLinenumberEnd: 2194
    functionName: set_isub
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - set_difference_update_internal
    - PyAnySet_Check
    - Py_END_CRITICAL_SECTION2
    - Py_NewRef
    - _PySet_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_isub(PyObject *self, PyObject *other)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:2199,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:2201,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:2202,1
    - Dst: _PyDict_Next
      Src: /src/cpython/Objects/setobject.c:2209,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:2210,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:2211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2213,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:2217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2196
    functionDepth: 6
    functionLinenumber: 2196
    functionLinenumberEnd: 2225
    functionName: set_symmetric_difference_update_dict
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - set_add_entry
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - set_discard_entry
    - Py_DECREF
    - _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:2230,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:2231,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:2235,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:2236,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:2238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2240,1
    - Dst: set_add_entry
      Src: /src/cpython/Objects/setobject.c:2244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2227
    functionDepth: 6
    functionLinenumber: 2227
    functionLinenumberEnd: 2252
    functionName: set_symmetric_difference_update_set
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_add_entry
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - set_discard_entry
    - set_next
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int set_symmetric_difference_update_set(PySetObject *so, PySetObject
      *other)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_Is
      Src: /src/cpython/Objects/setobject.c:2268,1
    - Dst: set_clear
      Src: /src/cpython/Objects/setobject.c:2269,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:2273,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2274,1
    - Dst: set_symmetric_difference_update_dict
      Src: /src/cpython/Objects/setobject.c:2275,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2276,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Objects/setobject.c:2278,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2279,1
    - Dst: set_symmetric_difference_update_dict
      Src: /src/cpython/Objects/setobject.c:2280,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2281,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2283,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2284,1
    - Dst: set_symmetric_difference_update_set
      Src: /src/cpython/Objects/setobject.c:2285,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/setobject.c:2286,1
    - Dst: make_new_set_basetype
      Src: /src/cpython/Objects/setobject.c:2289,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2289,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2294,1
    - Dst: set_symmetric_difference_update_set
      Src: /src/cpython/Objects/setobject.c:2295,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2264
    functionDepth: 13
    functionLinenumber: 2264
    functionLinenumberEnd: 2304
    functionName: set_symmetric_difference_update_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - make_new_set_basetype
    - set_clear
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - Py_BEGIN_CRITICAL_SECTION
    - PyAnySet_Check
    - Py_Is
    - Py_DECREF
    - PyDict_CheckExact
    - set_symmetric_difference_update_set
    - set_symmetric_difference_update_dict
    - Py_TYPE
    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:2321,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2321,1
    - Dst: set_update_lock_held
      Src: /src/cpython/Objects/setobject.c:2325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2326,1
    - Dst: set_symmetric_difference_update_set
      Src: /src/cpython/Objects/setobject.c:2329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2317
    functionDepth: 13
    functionLinenumber: 2317
    functionLinenumberEnd: 2334
    functionName: set_symmetric_difference_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_update_lock_held
    - make_new_set_basetype
    - Py_DECREF
    - 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:2339,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2339,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2341,1
    - Dst: set_symmetric_difference
      Src: /src/cpython/Objects/setobject.c:2342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2336
    functionDepth: 1
    functionLinenumber: 2336
    functionLinenumberEnd: 2343
    functionName: set_xor
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyAnySet_Check
    - set_symmetric_difference
    - _PySet_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_xor(PyObject *self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2350,1
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2352,1
    - Dst: set_symmetric_difference_update
      Src: /src/cpython/Objects/setobject.c:2354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2357,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:2358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2359
    functionName: set_ixor
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_symmetric_difference_update
    - PyAnySet_Check
    - Py_DECREF
    - 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:2379,1
    - Dst: set_intersection
      Src: /src/cpython/Objects/setobject.c:2380,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2384,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2385,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/setobject.c:2386,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2388,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2388,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:2391,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/setobject.c:2393,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:2394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2371
    functionDepth: 15
    functionLinenumber: 2371
    functionLinenumberEnd: 2404
    functionName: set_issubset_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - set_contains_entry
    - PySet_GET_SIZE
    - set_next
    - PyAnySet_Check
    - PyBool_FromLong
    - Py_DECREF
    - set_intersection
    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:2420,1
    - Dst: set_issubset
      Src: /src/cpython/Objects/setobject.c:2421,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/setobject.c:2424,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/setobject.c:2428,1
    - Dst: set_contains_key
      Src: /src/cpython/Objects/setobject.c:2429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2440,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/setobject.c:2441,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2416
    functionDepth: 6
    functionLinenumber: 2416
    functionLinenumberEnd: 2445
    functionName: set_issuperset_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_contains_key
    - PyObject_GetIter
    - PyAnySet_Check
    - PyErr_Occurred
    - Py_DECREF
    - set_issubset
    - PyIter_Next
    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:2450,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:2454,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2459,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2459,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:2461,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/setobject.c:2462,1
    - Dst: set_issubset
      Src: /src/cpython/Objects/setobject.c:2465,1
    - Dst: set_richcompare
      Src: /src/cpython/Objects/setobject.c:2467,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/setobject.c:2470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/setobject.c:2471,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/setobject.c:2474,1
    - Dst: set_issubset
      Src: /src/cpython/Objects/setobject.c:2476,1
    - Dst: set_issuperset
      Src: /src/cpython/Objects/setobject.c:2478,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2480,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2480,1
    - Dst: set_issubset
      Src: /src/cpython/Objects/setobject.c:2482,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2484,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/setobject.c:2484,1
    - Dst: set_issuperset
      Src: /src/cpython/Objects/setobject.c:2486,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - self
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2489
      start: 2447
    functionDepth: 2
    functionLinenumber: 2447
    functionLinenumberEnd: 2489
    functionName: set_richcompare
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - set_issubset
    - PySet_GET_SIZE
    - set_issuperset
    - PyObject_IsTrue
    - PyAnySet_Check
    - set_richcompare
    - PyBool_FromLong
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _PySet_CAST
    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:2507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2503
    functionDepth: 7
    functionLinenumber: 2503
    functionLinenumberEnd: 2510
    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: assert
      Src: /src/cpython/Objects/setobject.c:2515,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/setobject.c:2517,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2519,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/setobject.c:2519,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:2520,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/setobject.c:2523,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2527,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:2528,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2529,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:2531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (so)
      pos:
        line_end: 2514
        line_start: 2514
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 2532
      start: 2512
    functionDepth: 5
    functionLinenumber: 2512
    functionLinenumberEnd: 2532
    functionName: _PySet_Contains
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - frozenset_hash_impl
    - Py_BEGIN_CRITICAL_SECTION
    - set_unhashable_type
    - _PyObject_HashFast
    - PyErr_Clear
    - PySet_Check
    - PyErr_ExceptionMatches
    - assert
    - set_contains_entry
    linkageType: ''
    returnType: int
    signature: int _PySet_Contains(PySetObject *so, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2537,1
    - Dst: _PySet_Contains
      Src: /src/cpython/Objects/setobject.c:2538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2534
    functionDepth: 6
    functionLinenumber: 2534
    functionLinenumberEnd: 2539
    functionName: set_contains
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PySet_CAST
    - _PySet_Contains
    linkageType: ''
    returnType: int
    signature: int set_contains(PyObject *self, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_Contains
      Src: /src/cpython/Objects/setobject.c:2557,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/setobject.c:2560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2551
    functionDepth: 6
    functionLinenumber: 2551
    functionLinenumberEnd: 2561
    functionName: set___contains___impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _PySet_Contains
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set___contains___impl(PySetObject *so, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/setobject.c:2577,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2579,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/setobject.c:2579,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:2580,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/setobject.c:2583,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2584,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:2585,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2586,1
    - Dst: set_do_lookup
      Src: /src/cpython/Objects/setobject.c:2589,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/setobject.c:2593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2573
    functionDepth: 2
    functionLinenumber: 2573
    functionLinenumberEnd: 2594
    functionName: frozenset___contains___impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_do_lookup
    - Py_END_CRITICAL_SECTION
    - frozenset_hash_impl
    - Py_BEGIN_CRITICAL_SECTION
    - set_unhashable_type
    - _PyObject_HashFast
    - PyErr_Clear
    - PySet_Check
    - PyErr_ExceptionMatches
    - PyBool_FromLong
    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:2614,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2616,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/setobject.c:2616,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/setobject.c:2618,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2620,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:2621,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2622,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:2623,1
    - Dst: _PyErr_SetKeyError
      Src: /src/cpython/Objects/setobject.c:2629,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2608
    functionDepth: 5
    functionLinenumber: 2608
    functionLinenumberEnd: 2633
    functionName: set_remove_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - frozenset_hash_impl
    - Py_BEGIN_CRITICAL_SECTION
    - _PyErr_SetKeyError
    - set_discard_entry
    - set_discard_key
    - PySet_Check
    - PyErr_ExceptionMatches
    - PyErr_Clear
    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:2654,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:2656,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/setobject.c:2656,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/setobject.c:2658,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2660,1
    - Dst: frozenset_hash_impl
      Src: /src/cpython/Objects/setobject.c:2661,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2662,1
    - Dst: set_discard_entry
      Src: /src/cpython/Objects/setobject.c:2663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2648
    functionDepth: 5
    functionLinenumber: 2648
    functionLinenumberEnd: 2668
    functionName: set_discard_impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - frozenset_hash_impl
    - Py_BEGIN_CRITICAL_SECTION
    - set_discard_entry
    - set_discard_key
    - PySet_Check
    - PyErr_ExceptionMatches
    - PyErr_Clear
    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:2684,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/setobject.c:2687,1
    - Dst: _PyObject_GetState
      Src: /src/cpython/Objects/setobject.c:2690,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/setobject.c:2693,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2693,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:2695,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:2696,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/setobject.c:2697,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2678
    functionDepth: 2
    functionLinenumber: 2678
    functionLinenumberEnd: 2699
    functionName: set___reduce___impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - _PyObject_GetState
    - PyTuple_Pack
    - Py_XDECREF
    - 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:2713,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2713,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/setobject.c:2717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2709
    functionDepth: 1
    functionLinenumber: 2709
    functionLinenumberEnd: 2718
    functionName: set___sizeof___impl
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _PyObject_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set___sizeof___impl(PySetObject *so)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PySet_CAST
      Src: /src/cpython/Objects/setobject.c:2723,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/setobject.c:2726,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/setobject.c:2728,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/setobject.c:2728,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/setobject.c:2731,1
    - Dst: set_update_local
      Src: /src/cpython/Objects/setobject.c:2736,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2738,1
    - Dst: set_clear_internal
      Src: /src/cpython/Objects/setobject.c:2740,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:2742,1
    - Dst: set_update_internal
      Src: /src/cpython/Objects/setobject.c:2746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - so
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2720
    functionDepth: 11
    functionLinenumber: 2720
    functionLinenumberEnd: 2747
    functionName: set_init
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - set_clear_internal
    - set_update_local
    - set_update_internal
    - _PySet_CAST
    - _PyArg_NoKeywords
    - _PyObject_IsUniquelyReferenced
    - Py_TYPE
    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:2753,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/setobject.c:2753,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/setobject.c:2755,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/setobject.c:2759,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/setobject.c:2760,1
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:2765,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/setobject.c:2765,1
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:2768,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/setobject.c:2768,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: 2752
        line_start: 2752
        source_file: /src/cpython/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 2769
      start: 2749
    functionDepth: 12
    functionLinenumber: 2749
    functionLinenumberEnd: 2769
    functionName: set_vectorcall
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyType_Check
    - _PyArg_NoKwnames
    - assert
    - make_new_set
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:2991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2988
    functionDepth: 12
    functionLinenumber: 2988
    functionLinenumberEnd: 2992
    functionName: PySet_New
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 20
    functionsReached:
    - make_new_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySet_New(PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/cpython/Objects/setobject.c:2997,1
    - Dst: _PyFrozenSet_MaybeUntrack
      Src: /src/cpython/Objects/setobject.c:2999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 2994
    functionDepth: 12
    functionLinenumber: 2994
    functionLinenumberEnd: 3002
    functionName: PyFrozenSet_New
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 11
    functionsReached:
    - make_new_set
    - _PyFrozenSet_MaybeUntrack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrozenSet_New(PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:3007,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3008,1
    - Dst: set_len
      Src: /src/cpython/Objects/setobject.c:3011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - anyset
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 3004
    functionDepth: 2
    functionLinenumber: 3004
    functionLinenumberEnd: 3012
    functionName: PySet_Size
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - PyAnySet_Check
    - set_len
    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:3017,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3018,1
    - Dst: set_clear
      Src: /src/cpython/Objects/setobject.c:3021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - set
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 3014
    functionDepth: 1
    functionLinenumber: 3014
    functionLinenumberEnd: 3023
    functionName: PySet_Clear
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 4
    functionsReached:
    - PyErr_BadInternalCall
    - PySet_Check
    - 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:3028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3025
    functionDepth: 9
    functionLinenumber: 3025
    functionLinenumberEnd: 3029
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:3034,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3035,1
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/setobject.c:3040,1
    - Dst: set_unhashable_type
      Src: /src/cpython/Objects/setobject.c:3042,1
    - Dst: set_contains_entry
      Src: /src/cpython/Objects/setobject.c:3045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - anyset
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3031
    functionDepth: 5
    functionLinenumber: 3031
    functionLinenumberEnd: 3046
    functionName: PySet_Contains
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 10
    functionsReached:
    - set_unhashable_type
    - _PyObject_HashFast
    - PyErr_BadInternalCall
    - PyAnySet_Check
    - set_contains_entry
    linkageType: ''
    returnType: int
    signature: int PySet_Contains(PyObject *anyset, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:3051,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3052,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:3057,1
    - Dst: set_discard_key
      Src: /src/cpython/Objects/setobject.c:3058,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:3059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - set
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3048
    functionDepth: 5
    functionLinenumber: 3048
    functionLinenumberEnd: 3061
    functionName: PySet_Discard
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 6
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_BadInternalCall
    - set_discard_key
    - PySet_Check
    linkageType: ''
    returnType: int
    signature: int PySet_Discard(PyObject *set, PyObject *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:3066,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:3068,1
    - Dst: set_add_key
      Src: /src/cpython/Objects/setobject.c:3069,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/setobject.c:3070,1
    - Dst: PyFrozenSet_Check
      Src: /src/cpython/Objects/setobject.c:3074,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/setobject.c:3074,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/setobject.c:3081,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Objects/setobject.c:3081,1
    - Dst: PyObject_GC_IsTracked
      Src: /src/cpython/Objects/setobject.c:3081,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/setobject.c:3082,1
    - Dst: set_add_key
      Src: /src/cpython/Objects/setobject.c:3084,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3087,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - anyset
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3063
    functionDepth: 7
    functionLinenumber: 3063
    functionLinenumberEnd: 3089
    functionName: PySet_Add
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 23
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyObject_GC_IsTracked
    - Py_BEGIN_CRITICAL_SECTION
    - PyFrozenSet_CheckExact
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - set_add_key
    - PySet_Check
    - PyFrozenSet_Check
    - _PyObject_IsUniquelyReferenced
    linkageType: ''
    returnType: int
    signature: int PySet_Add(PyObject *anyset, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/setobject.c:3096,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3097,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:3100,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: 3105
      start: 3091
    functionDepth: 2
    functionLinenumber: 3091
    functionLinenumberEnd: 3105
    functionName: _PySet_NextEntry
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - PyAnySet_Check
    - set_next
    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:3112,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3113,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/setobject.c:3116,1
    - Dst: set_next
      Src: /src/cpython/Objects/setobject.c:3117,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/setobject.c:3119,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: 3122
      start: 3107
    functionDepth: 2
    functionLinenumber: 3107
    functionLinenumberEnd: 3122
    functionName: _PySet_NextEntryRef
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 4
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_BadInternalCall
    - set_next
    - PyAnySet_Check
    - Py_NewRef
    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:3127,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3128,1
    - Dst: set_pop
      Src: /src/cpython/Objects/setobject.c:3131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3124
    functionDepth: 1
    functionLinenumber: 3124
    functionLinenumberEnd: 3132
    functionName: PySet_Pop
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - set_pop
    - PySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySet_Pop(PyObject *set)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/cpython/Objects/setobject.c:3137,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/setobject.c:3138,1
    - Dst: set_update_internal
      Src: /src/cpython/Objects/setobject.c:3141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - set
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3134
    functionDepth: 11
    functionLinenumber: 3134
    functionLinenumberEnd: 3142
    functionName: _PySet_Update
    functionSourceFile: /src/cpython/Objects/setobject.c
    functionUses: 5
    functionsReached:
    - PyErr_BadInternalCall
    - PySet_Check
    - 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:3152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3149
    functionDepth: 2
    functionLinenumber: 3149
    functionLinenumberEnd: 3153
    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:3158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ignore
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3159
      start: 3155
    functionDepth: 0
    functionLinenumber: 3155
    functionLinenumberEnd: 3159
    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: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    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: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    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: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    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: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    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: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    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:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    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: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    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: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    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: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    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: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    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:126,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:126,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:127,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/typeobject.c:128,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:129,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!types_world_is_stopped())
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (types_world_is_stopped())
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: types_stop_world
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_StopTheWorld
    - types_world_is_stopped
    - _PyInterpreterState_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void types_stop_world(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:135,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:135,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:136,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/typeobject.c:137,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:138,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (types_world_is_stopped())
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!types_world_is_stopped())
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: types_start_world
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - types_world_is_stopped
    - _PyInterpreterState_GET
    - _PyEval_StartTheWorld
    - assert
    linkageType: ''
    returnType: void
    signature: void types_start_world(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:146,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:150,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (c->_cs_mutex == TYPE_LOCK)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (c2->_cs_mutex2 == TYPE_LOCK)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 163
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 163
    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:168,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:172,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (c->_cs_mutex == NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (c2->_cs_mutex2 == NULL)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 180
    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: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    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: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    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: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    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:
    - _PyWeakref_GET_REF
    - _PyType_CAST
    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:
    - managed_static_type_index_is_set
    - assert
    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_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: (!interp->types.for_extensions.initialized[index].isbuiltin)
      pos:
        line_end: 277
        line_start: 277
        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:
    - managed_static_type_index_is_set
    - _Py_atomic_load_int64
    - assert
    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:
    - managed_static_type_state_get
    - assert
    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: (index < _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES)
      pos:
        line_end: 319
        line_start: 319
        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_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: (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
    - 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
    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_is_set
    - PyMutex_Unlock
    - _Py_atomic_load_int64
    - _Py_atomic_add_int64
    - managed_static_type_index_get
    - assert
    - PyMutex_Lock
    - 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: (state != NULL)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/cpython/Objects/typeobject.c
    - 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: (_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:
    - PyMutex_Unlock
    - _Py_atomic_load_int64
    - _Py_atomic_add_int64
    - managed_static_type_index_clear
    - managed_static_type_index_get
    - assert
    - PyMutex_Lock
    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: (count <= _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (interp->types.builtins.initialized[i].isbuiltin)
      pos:
        line_end: 441
        line_start: 441
        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_SET_ITEM
    - _PyInterpreterState_GET
    - PyList_New
    - assert
    - Py_NewRef
    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:
    - type_set_flags
    - ASSERT_WORLD_STOPPED_OR_NEW_TYPE
    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: (state != NULL)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Objects/typeobject.c
    - 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
    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:
    - assert
    - managed_static_type_state_get
    - type_add_flags
    - _PyInterpreterState_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: (state->readying)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_flags & Py_TPFLAGS_READYING)
      pos:
        line_end: 506
        line_start: 506
        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:
    - assert
    - managed_static_type_state_get
    - type_clear_flags
    - _PyInterpreterState_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
    - managed_static_type_state_get
    - _PyInterpreterState_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:
    - assert
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    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:
    - _Py_XNewRef
    - lookup_tp_dict
    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:
    - assert
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    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:
    - assert
    - Py_CLEAR
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    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:
    - lookup_tp_bases
    - END_TYPE_LOCK
    - Py_INCREF
    - BEGIN_TYPE_LOCK
    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:
    - PyTuple_GET_ITEM
    - assert
    - _Py_IsImmortal
    - ASSERT_NEW_TYPE_OR_LOCKED
    - PyTuple_Check
    - _Py_SetImmortal
    - PyTuple_GET_SIZE
    - 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:
    - Py_CLEAR
    - _Py_IsImmortal
    - assert
    - PyTuple_GET_SIZE
    - _Py_ClearImmortal
    linkageType: ''
    returnType: void
    signature: void clear_tp_bases(PyTypeObject *self, int final)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: lookup_tp_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lookup_tp_mro(PyTypeObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:654,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:654,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:658,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:659,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/typeobject.c:661,1
    - Dst: PyUnstable_Object_EnableDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:664,1
    - Dst: type_lock_prevent_release
      Src: /src/cpython/Objects/typeobject.c:668,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:669,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:673,1
    - Dst: type_lock_allow_release
      Src: /src/cpython/Objects/typeobject.c:674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - mro
    - initial
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyTuple_CheckExact(mro))
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (initial)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (self->tp_mro == NULL)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 676
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 676
    functionName: set_tp_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Object_EnableDeferredRefcount
    - type_lock_allow_release
    - types_start_world
    - type_lock_prevent_release
    - assert
    - _Py_SetImmortal
    - PyTuple_CheckExact
    - types_stop_world
    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:684,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:685,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:688,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/typeobject.c:688,1
    - Dst: _Py_ClearImmortal
      Src: /src/cpython/Objects/typeobject.c:689,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:695,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: 687
        line_start: 687
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 696
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 696
    functionName: clear_tp_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _Py_IsImmortal
    - assert
    - PyTuple_GET_SIZE
    - _Py_ClearImmortal
    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:702,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:707,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 699
    functionDepth: 11
    functionLinenumber: 699
    functionLinenumberEnd: 714
    functionName: init_tp_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    - 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:723,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:724,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:725,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 716
    functionDepth: 4
    functionLinenumber: 716
    functionLinenumberEnd: 729
    functionName: clear_tp_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyStaticType_GetState
    - _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:735,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:736,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 736
        line_start: 736
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 741
      start: 731
    functionDepth: 4
    functionLinenumber: 731
    functionLinenumberEnd: 741
    functionName: lookup_tp_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lookup_tp_subclasses(PyTypeObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 743
    functionDepth: 5
    functionLinenumber: 743
    functionLinenumberEnd: 747
    functionName: _PyType_LookupSubclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_subclasses
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_LookupSubclasses(PyTypeObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:752,1
    - Dst: init_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 749
    functionDepth: 12
    functionLinenumber: 749
    functionLinenumberEnd: 757
    functionName: _PyType_InitSubclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - init_tp_subclasses
    - lookup_tp_subclasses
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_InitSubclasses(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:762,1
    - Dst: _PyStaticType_GetState
      Src: /src/cpython/Objects/typeobject.c:765,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 759
    functionDepth: 5
    functionLinenumber: 759
    functionLinenumberEnd: 773
    functionName: _PyType_HasSubclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - lookup_tp_subclasses
    - _PyStaticType_GetState
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int _PyType_HasSubclasses(PyTypeObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:778,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:783,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:787,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:787,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:793,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:794,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/typeobject.c:799,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/typeobject.c:799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:804,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 786
        line_start: 786
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 807
      start: 775
    functionDepth: 5
    functionLinenumber: 775
    functionLinenumberEnd: 807
    functionName: _PyType_GetSubclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_subclasses
    - _PyObject_CAST
    - PyList_Append
    - PyDict_Next
    - PyList_New
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - type_from_ref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetSubclasses(PyTypeObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:829,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:832,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:836,1
    - Dst: strncmp
      Src: /src/cpython/Objects/typeobject.c:837,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - name
    - doc
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 828
        line_start: 828
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 843
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 843
    functionName: find_signature
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strncmp
    - strlen
    - assert
    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:856,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - doc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 863
    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:871,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Objects/typeobject.c:871,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:878,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/typeobject.c:878,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:879,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:879,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:881,1
    - Dst: is_readying
      Src: /src/cpython/Objects/typeobject.c:881,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:882,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:882,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:887,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:891,1
    - Dst: CHECK
      Src: /src/cpython/Objects/typeobject.c:892,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:892,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:892,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 865
    functionDepth: 5
    functionLinenumber: 865
    functionLinenumberEnd: 897
    functionName: _PyType_CheckConsistency
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - _PyObject_IsFreed
    - is_readying
    - lookup_tp_dict
    - Py_REFCNT
    - CHECK
    - PyDict_Contains
    - _Py_ID
    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: 870
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 870
    functionName: CHECK
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_signature
      Src: /src/cpython/Objects/typeobject.c:902,1
    - Dst: skip_signature
      Src: /src/cpython/Objects/typeobject.c:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - internal_doc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 910
    functionName: _PyType_DocWithoutSignature
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - skip_signature
    - find_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:915,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - name
    - internal_doc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 922
    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: 943
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 943
    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:948,1
    - Dst: skip_signature
      Src: /src/cpython/Objects/typeobject.c:952,1
    - Dst: signature_from_flags
      Src: /src/cpython/Objects/typeobject.c:956,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:958,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:965,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:966,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:967,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/typeobject.c:968,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: 964
        line_start: 964
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (end[-1] == ')')
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (end[0] == '\n')
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 969
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 969
    functionName: _PyType_GetTextSignatureFromInternalDoc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_FromString
    - find_signature
    - signature_from_flags
    - assert
    - skip_signature
    - PyUnicode_FromStringAndSize
    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:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 977
    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:986,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:989,1
    - Dst: _Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:989,1
    - Dst: _PySeqLock_UnlockWrite
      Src: /src/cpython/Objects/typeobject.c:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cache
    - value
    argTypes:
    - struct type_cache*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 995
    functionName: type_cache_clear
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - _Py_XNewRef
    - _PySeqLock_UnlockWrite
    - _PySeqLock_LockWrite
    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:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (entry->name == NULL)
      pos:
        line_end: 1003
        line_start: 1003
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1012
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1012
    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:1021,1
    - Dst: NEXT_VERSION_TAG
      Src: /src/cpython/Objects/typeobject.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1024
    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:1030,1
    - Dst: _PyType_ClearCache
      Src: /src/cpython/Objects/typeobject.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1032
    functionName: PyType_ClearCache
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyType_ClearCache
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PyType_ClearCache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_cache_clear
      Src: /src/cpython/Objects/typeobject.c:1039,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1042,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1044,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1046,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (interp->types.builtins.num_initialized == 0)
      pos:
        line_end: 1045
        line_start: 1045
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (interp->types.for_extensions.initialized[i].type == NULL)
      pos:
        line_end: 1043
        line_start: 1043
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (interp->types.for_extensions.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: 1047
        line_start: 1047
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1050
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1050
    functionName: _PyTypes_Fini
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_cache_clear
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyTypes_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1056,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1066,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - callback
    argTypes:
    - PyType_WatchCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1068
    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:1074,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - interp
    - watcher_id
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1082
    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:1087,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/typeobject.c:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - watcher_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1093
    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:1100,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1101,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1105,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/typeobject.c:1106,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1110,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:1111,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - watcher_id
    - obj
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1115
    functionName: PyType_Watch
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_Check
    - PyErr_SetString
    - BEGIN_TYPE_LOCK
    - _PyInterpreterState_GET
    - END_TYPE_LOCK
    - validate_watcher_id
    - assign_version_tag
    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:1120,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1121,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1125,1
    - Dst: validate_watcher_id
      Src: /src/cpython/Objects/typeobject.c:1126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - watcher_id
    - obj
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1131
    functionName: PyType_Unwatch
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - validate_watcher_id
    - PyType_Check
    linkageType: ''
    returnType: int
    signature: int PyType_Unwatch(int watcher_id, PyObject* obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1136,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1138,1
    - Dst: _Py_atomic_add_uint16
      Src: /src/cpython/Objects/typeobject.c:1151,1
    - Dst: FT_ATOMIC_STORE_UINT_RELAXED
      Src: /src/cpython/Objects/typeobject.c:1154,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: 1135
        line_start: 1135
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1163
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1163
    functionName: set_version_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - FT_ATOMIC_STORE_UINT_RELAXED
    - _Py_atomic_add_uint16
    - 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:1183,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1187,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:1187,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1193,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:1195,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1197,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:1197,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:1201,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:1202,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:1206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1207,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1213,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1217,1
    - Dst: cb
      Src: /src/cpython/Objects/typeobject.c:1222,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:1223,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1233,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:1234,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Objects/typeobject.c:1237,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (!types_world_is_stopped())
      pos:
        line_end: 1186
        line_start: 1186
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) == 0)
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 1196
        line_start: 1196
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (i < TYPE_MAX_WATCHERS)
      pos:
        line_end: 1216
        line_start: 1216
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1240
      start: 1165
    functionDepth: 5
    functionLinenumber: 1165
    functionLinenumberEnd: 1240
    functionName: type_modified_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - cb
    - lookup_tp_subclasses
    - PyType_HasFeature
    - PyDict_Next
    - _PyInterpreterState_GET
    - set_version_unlocked
    - FT_ATOMIC_STORE_PTR_RELAXED
    - types_world_is_stopped
    - type_modified_unlocked
    - ASSERT_NEW_TYPE_OR_LOCKED
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - type_from_ref
    - PyErr_FormatUnraisable
    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:1246,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1250,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:1251,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1242
    functionDepth: 6
    functionLinenumber: 1242
    functionLinenumberEnd: 1253
    functionName: PyType_Modified
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - END_TYPE_LOCK
    - type_modified_unlocked
    - 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:1264,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:1265,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:1266,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:1268,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1268,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1268,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:1269,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1269,1
    - Dst: PyStackRef_Is
      Src: /src/cpython/Objects/typeobject.c:1271,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:1273,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1276
    functionName: has_custom_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_PopCStackRef
    - PyStackRef_Is
    - _PyType_LookupStackRefAndVersion
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - Py_TYPE
    - _Py_ID
    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:1295,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:1296,1
    - Dst: has_custom_mro
      Src: /src/cpython/Objects/typeobject.c:1296,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1299,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1301,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:1302,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:1308,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1308,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1315,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1316,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:1318,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Objects/typeobject.c:1321,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: 1314
        line_start: 1314
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1324
      start: 1278
    functionDepth: 2
    functionLinenumber: 1278
    functionLinenumberEnd: 1324
    functionName: type_mro_modified
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyType_CAST
    - Py_IS_TYPE
    - assert
    - PyType_HasFeature
    - FT_ATOMIC_STORE_PTR_RELAXED
    - set_version_unlocked
    - is_subtype_with_mro
    - lookup_tp_mro
    - PyTuple_GET_SIZE
    - has_custom_mro
    - ASSERT_TYPE_LOCK_HELD
    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:1338,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1339,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tp
    - version
    argTypes:
    - PyTypeObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1335
    functionDepth: 2
    functionLinenumber: 1335
    functionLinenumberEnd: 1341
    functionName: _PyType_SetVersion
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    - set_version_unlocked
    linkageType: ''
    returnType: void
    signature: void _PyType_SetVersion(PyTypeObject *tp, unsigned int version)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - version
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1387
    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:1399,1
    - Dst: _Py_atomic_compare_exchange_uint
      Src: /src/cpython/Objects/typeobject.c:1403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1405
    functionName: next_global_version_tag
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint_relaxed
    - _Py_atomic_compare_exchange_uint
    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:1410,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:1419,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1427,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1428,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1430,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:1431,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:1431,1
    - Dst: next_global_version_tag
      Src: /src/cpython/Objects/typeobject.c:1437,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1442,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1443,1
    - Dst: NEXT_VERSION_TAG
      Src: /src/cpython/Objects/typeobject.c:1447,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:1451,1
    - Dst: NEXT_VERSION_TAG
      Src: /src/cpython/Objects/typeobject.c:1451,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1452,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: 1442
        line_start: 1442
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_version_tag != 0)
      pos:
        line_end: 1451
        line_start: 1451
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1455
      start: 1407
    functionDepth: 2
    functionLinenumber: 1407
    functionLinenumberEnd: 1455
    functionName: assign_version_tag
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - _PyType_HasFeature
    - lookup_tp_bases
    - PyTuple_GET_ITEM
    - assert
    - set_version_unlocked
    - assign_version_tag
    - next_global_version_tag
    - PyTuple_GET_SIZE
    - NEXT_VERSION_TAG
    - _PyType_CAST
    - ASSERT_TYPE_LOCK_HELD
    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:1459,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1461,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:1462,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1457
    functionDepth: 3
    functionLinenumber: 1457
    functionLinenumberEnd: 1465
    functionName: PyUnstable_Type_AssignVersionTag
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - END_TYPE_LOCK
    - assign_version_tag
    - BEGIN_TYPE_LOCK
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Type_AssignVersionTag(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1486,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:1491,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1492,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/typeobject.c:1498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - type
    - value
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1504
    functionName: check_set_special_type_attr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PySys_Audit
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_set_special_type_attr(PyTypeObject *type, PyObject *value,
      const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1509,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_name != NULL)
      pos:
        line_end: 1508
        line_start: 1508
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1518
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1518
    functionName: _PyType_Name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 25
    functionsReached:
    - strrchr
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyType_Name(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1523,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1526,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:1529,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/typeobject.c:1529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1531
    functionName: type_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - PyUnicode_FromString
    - Py_NewRef
    - PyTypeObject_CAST
    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:1536,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1539,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:1542,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/typeobject.c:1542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1533
    functionDepth: 2
    functionLinenumber: 1533
    functionLinenumberEnd: 1544
    functionName: type_qualname
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - PyUnicode_FromString
    - Py_NewRef
    - PyTypeObject_CAST
    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:1549,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:1553,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:1555,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1556,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1558,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/typeobject.c:1562,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:1565,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1566,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1571,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/typeobject.c:1572,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1575,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/typeobject.c:1576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1546
    functionDepth: 5
    functionLinenumber: 1546
    functionLinenumberEnd: 1579
    functionName: type_set_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - check_set_special_type_attr
    - PyErr_SetString
    - PyUnicode_Check
    - _PyInterpreterState_GET
    - PyUnicode_AsUTF8AndSize
    - _PyEval_StopTheWorld
    - PyErr_Format
    - PyTypeObject_CAST
    - strlen
    - Py_DECREF
    - Py_NewRef
    - Py_TYPE
    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:1584,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:1587,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:1589,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1590,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1592,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:1597,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tp
    - value
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1599
    functionName: type_set_qualname
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_set_special_type_attr
    - Py_SETREF
    - PyUnicode_Check
    - PyErr_Format
    - PyTypeObject_CAST
    - Py_NewRef
    - 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:1606,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:1607,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1607,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1608,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:1612,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/typeobject.c:1614,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:1617,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/typeobject.c:1618,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1601
    functionDepth: 10
    functionLinenumber: 1601
    functionLinenumberEnd: 1626
    functionName: type_module
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - strrchr
    - lookup_tp_dict
    - _PyInterpreterState_GET
    - _PyUnicode_InternMortal
    - PyErr_Format
    - PyDict_GetItemRef
    - PyUnicode_FromStringAndSize
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_module(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:1631,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1628
    functionDepth: 11
    functionLinenumber: 1628
    functionLinenumberEnd: 1633
    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:1638,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:1639,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:1642,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:1644,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:1645,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1645,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:1648,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1635
    functionDepth: 10
    functionLinenumber: 1635
    functionLinenumberEnd: 1649
    functionName: type_set_module
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Pop
    - check_set_special_type_attr
    - lookup_tp_dict
    - PyDict_SetItem
    - PyType_Modified
    - PyTypeObject_CAST
    - _Py_ID
    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:1656,1
    - Dst: type_qualname
      Src: /src/cpython/Objects/typeobject.c:1659,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:1664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1666,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:1671,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:1672,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1672,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:1673,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1673,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:1675,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1678,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - type
    - sep
    argTypes:
    - PyTypeObject*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1652
    functionDepth: 11
    functionLinenumber: 1652
    functionLinenumberEnd: 1683
    functionName: _PyType_GetFullyQualifiedName
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - _PyUnicode_Equal
    - type_qualname
    - PyUnicode_Check
    - type_module
    - PyUnicode_FromFormat
    - Py_DECREF
    - Py_NewRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetFullyQualifiedName(PyTypeObject *type, char sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetFullyQualifiedName
      Src: /src/cpython/Objects/typeobject.c:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1685
    functionDepth: 12
    functionLinenumber: 1685
    functionLinenumberEnd: 1689
    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:1694,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/typeobject.c:1699,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1699,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:1702,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:1703,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1703,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/typeobject.c:1704,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1691
    functionDepth: 8
    functionLinenumber: 1691
    functionLinenumberEnd: 1708
    functionName: type_abstractmethods
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - lookup_tp_dict
    - PyTypeObject_CAST
    - PyDict_GetItemRef
    - _Py_ID
    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:1713,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:1719,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:1721,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:1724,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1724,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:1728,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1728,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/typeobject.c:1730,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:1730,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1738,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:1739,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:1740,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:1742,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:1744,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:1745,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:1746,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:1747,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1710
    functionDepth: 10
    functionLinenumber: 1710
    functionLinenumberEnd: 1750
    functionName: type_set_abstractmethods
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - ASSERT_TYPE_LOCK_HELD
    - PyErr_SetObject
    - PyDict_Pop
    - PyObject_IsTrue
    - BEGIN_TYPE_LOCK
    - lookup_tp_dict
    - PyDict_SetItem
    - types_start_world
    - END_TYPE_LOCK
    - type_modified_unlocked
    - PyTypeObject_CAST
    - type_clear_flags
    - type_add_flags
    - types_stop_world
    - _Py_ID
    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:1755,1
    - Dst: _PyType_GetBases
      Src: /src/cpython/Objects/typeobject.c:1756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1752
    functionDepth: 2
    functionLinenumber: 1752
    functionLinenumberEnd: 1761
    functionName: type_get_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetBases
    - PyTypeObject_CAST
    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:1766,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1767,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1763
    functionDepth: 1
    functionLinenumber: 1763
    functionLinenumberEnd: 1772
    functionName: type_get_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyTypeObject_CAST
    - 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:1795,1
    - Dst: mro_internal
      Src: /src/cpython/Objects/typeobject.c:1798,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1803,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1804,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:1808,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/typeobject.c:1811,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/typeobject.c:1815,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:1820,1
    - Dst: set_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1824,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:1827,1
    - Dst: _PyType_HasSubclasses
      Src: /src/cpython/Objects/typeobject.c:1830,1
    - Dst: _PyType_GetSubclasses
      Src: /src/cpython/Objects/typeobject.c:1841,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1846,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:1848,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1848,1
    - Dst: mro_hierarchy_for_complete_type
      Src: /src/cpython/Objects/typeobject.c:1849,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1854,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - type
    - temp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (new_mro != NULL)
      pos:
        line_end: 1803
        line_start: 1803
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1858
      start: 1792
    functionDepth: 6
    functionLinenumber: 1792
    functionLinenumberEnd: 1858
    functionName: mro_hierarchy_for_complete_type
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - lookup_tp_mro
    - mro_hierarchy_for_complete_type
    - _PyType_HasSubclasses
    - mro_internal
    - _PyType_GetSubclasses
    - PyList_Append
    - _PyTuple_FromPair
    - set_tp_mro
    - PyList_GET_ITEM
    - PyTuple_Pack
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    - _PyType_CAST
    - ASSERT_TYPE_LOCK_HELD
    linkageType: ''
    returnType: int
    signature: int mro_hierarchy_for_complete_type(PyTypeObject *type, PyObject *temp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:1864,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1867,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:1869,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1870,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1872,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1875,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1876,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1881,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1883,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:1884,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:1885,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:1887,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:1892,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1892,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1902,1
    - Dst: type_is_subtype_base_chain
      Src: /src/cpython/Objects/typeobject.c:1903,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:1905,1
    - Dst: find_best_base
      Src: /src/cpython/Objects/typeobject.c:1912,1
    - Dst: compatible_for_assignment
      Src: /src/cpython/Objects/typeobject.c:1916,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: 1866
        line_start: 1866
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1921
      start: 1860
    functionDepth: 2
    functionLinenumber: 1860
    functionLinenumberEnd: 1921
    functionName: type_check_new_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_is_subtype_base_chain
    - PyTuple_GET_ITEM
    - lookup_tp_mro
    - find_best_base
    - PyType_Check
    - assert
    - check_set_special_type_attr
    - PyErr_SetString
    - is_subtype_with_mro
    - compatible_for_assignment
    - PyErr_Format
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - Py_TYPE
    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:1926,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1929,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1930,1
    - Dst: type_lock_prevent_release
      Src: /src/cpython/Objects/typeobject.c:1933,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:1934,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1935,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1935,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:1936,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:1937,1
    - Dst: type_lock_allow_release
      Src: /src/cpython/Objects/typeobject.c:1938,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:1940,1
    - Dst: mro_hierarchy_for_complete_type
      Src: /src/cpython/Objects/typeobject.c:1944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1947,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1952,1
    - Dst: remove_all_subclasses
      Src: /src/cpython/Objects/typeobject.c:1960,1
    - Dst: add_all_subclasses
      Src: /src/cpython/Objects/typeobject.c:1961,1
    - Dst: update_all_slots
      Src: /src/cpython/Objects/typeobject.c:1962,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:1966,1
    - Dst: RARE_EVENT_INC
      Src: /src/cpython/Objects/typeobject.c:1972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1974,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1976,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:1976,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:1980,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/typeobject.c:1985,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:1985,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1988,1
    - Dst: set_tp_mro
      Src: /src/cpython/Objects/typeobject.c:1989,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:1989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:1993,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:1996,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:1997,1
    - Dst: type_lock_prevent_release
      Src: /src/cpython/Objects/typeobject.c:1999,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:2000,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:2001,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:2003,1
    - Dst: type_lock_allow_release
      Src: /src/cpython/Objects/typeobject.c:2004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2011,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2014,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:2014,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 3
    argNames:
    - type
    - new_bases
    - best_base
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (type->tp_base == best_base)
      pos:
        line_end: 1996
        line_start: 1996
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 2013
        line_start: 2013
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (old_bases != NULL)
      pos:
        line_end: 1929
        line_start: 1929
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 1975
        line_start: 1975
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2016
      start: 1923
    functionDepth: 7
    functionLinenumber: 1923
    functionLinenumberEnd: 2016
    functionName: type_set_bases_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_bases
    - mro_hierarchy_for_complete_type
    - set_tp_bases
    - PyList_GET_ITEM
    - set_tp_mro
    - assert
    - Py_XNewRef
    - _PyType_CheckConsistency
    - RARE_EVENT_INC
    - PyList_New
    - type_modified_unlocked
    - type_lock_allow_release
    - types_start_world
    - Py_DECREF
    - Py_NewRef
    - add_all_subclasses
    - ASSERT_TYPE_LOCK_HELD
    - remove_all_subclasses
    - update_all_slots
    - type_lock_prevent_release
    - lookup_tp_mro
    - PyList_GET_SIZE
    - types_stop_world
    - PyArg_UnpackTuple
    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:2021,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:2024,1
    - Dst: type_check_new_bases
      Src: /src/cpython/Objects/typeobject.c:2025,1
    - Dst: type_set_bases_unlocked
      Src: /src/cpython/Objects/typeobject.c:2027,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:2029,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: 2031
      start: 2018
    functionDepth: 8
    functionLinenumber: 2018
    functionLinenumberEnd: 2031
    functionName: type_set_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_set_bases_unlocked
    - BEGIN_TYPE_LOCK
    - type_check_new_bases
    - END_TYPE_LOCK
    - PyTypeObject_CAST
    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:2036,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2037,1
    - Dst: PyDictProxy_New
      Src: /src/cpython/Objects/typeobject.c:2041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2033
    functionDepth: 5
    functionLinenumber: 2033
    functionLinenumberEnd: 2042
    functionName: type_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDictProxy_New
    - PyTypeObject_CAST
    - lookup_tp_dict
    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:2047,1
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/cpython/Objects/typeobject.c:2050,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2052,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2053,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2053,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:2054,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2057,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2059,1
    - Dst: descr_get
      Src: /src/cpython/Objects/typeobject.c:2059,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2044
    functionDepth: 8
    functionLinenumber: 2044
    functionLinenumberEnd: 2063
    functionName: type_get_doc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    - Py_SETREF
    - lookup_tp_dict
    - descr_get
    - PyTypeObject_CAST
    - PyDict_GetItemRef
    - Py_NewRef
    - Py_TYPE
    - _Py_ID
    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:2068,1
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/cpython/Objects/typeobject.c:2069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2065
    functionDepth: 3
    functionLinenumber: 2065
    functionLinenumberEnd: 2070
    functionName: type_get_text_signature
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    - PyTypeObject_CAST
    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:2075,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:2076,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2078,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2079,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2080,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2072
    functionDepth: 10
    functionLinenumber: 2072
    functionLinenumberEnd: 2081
    functionName: type_set_doc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_set_special_type_attr
    - lookup_tp_dict
    - PyDict_SetItem
    - PyType_Modified
    - PyTypeObject_CAST
    - _Py_ID
    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:2086,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2088,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Objects/typeobject.c:2093,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2095,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2096,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2100,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2101,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2106,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2108,1
    - Dst: get
      Src: /src/cpython/Objects/typeobject.c:2108,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2113,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2083
    functionDepth: 10
    functionLinenumber: 2083
    functionLinenumberEnd: 2121
    functionName: type_get_annotate
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_GetDict
    - get
    - Py_SETREF
    - PyDict_SetItem
    - PyErr_Format
    - PyTypeObject_CAST
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_TYPE
    - _Py_ID
    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:2126,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2128,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:2131,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2132,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typeobject.c:2138,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/typeobject.c:2138,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2139,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Objects/typeobject.c:2143,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2144,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:2144,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2145,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2147,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/typeobject.c:2150,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2151,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2152,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2153,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2157,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2158,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: 2143
        line_start: 2143
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2160
      start: 2123
    functionDepth: 10
    functionLinenumber: 2123
    functionLinenumberEnd: 2160
    functionName: type_set_annotate
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyType_GetDict
    - PyCallable_Check
    - assert
    - PyDict_Pop
    - PyErr_SetString
    - PyDict_SetItem
    - Py_IsNone
    - PyType_Modified
    - PyDict_Check
    - PyErr_Format
    - PyTypeObject_CAST
    - Py_DECREF
    - _Py_ID
    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:2165,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2167,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Objects/typeobject.c:2172,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2174,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2175,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2179,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2179,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2180,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2186,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2188,1
    - Dst: get
      Src: /src/cpython/Objects/typeobject.c:2188,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/typeobject.c:2192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2194,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/typeobject.c:2197,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/typeobject.c:2198,1
    - Dst: _PyObject_CallOneArg
      Src: /src/cpython/Objects/typeobject.c:2199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2202,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:2205,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2211,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:2216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2218,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2220,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2221,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2223,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2229,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2162
    functionDepth: 11
    functionLinenumber: 2162
    functionLinenumberEnd: 2231
    functionName: type_get_annotations
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallOneArg
    - PyType_GetDict
    - get
    - PyCallable_Check
    - _PyLong_GetOne
    - Py_SETREF
    - PyDict_SetItem
    - Py_CLEAR
    - PyDict_New
    - PyDict_Check
    - PyType_Modified
    - PyErr_Format
    - PyTypeObject_CAST
    - Py_DECREF
    - PyDict_GetItemRef
    - PyObject_GetAttrString
    - Py_TYPE
    - _Py_ID
    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:2236,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:2237,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2238,1
    - Dst: PyType_GetDict
      Src: /src/cpython/Objects/typeobject.c:2244,1
    - Dst: PyDict_ContainsString
      Src: /src/cpython/Objects/typeobject.c:2245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2247,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2253,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2253,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2255,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2255,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2264,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2268,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2268,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2274,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2274,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2277,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2277,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2286,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/typeobject.c:2289,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2289,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2291,1
    - Dst: PyDict_Pop
      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:2295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2296,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2301,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2233
    functionDepth: 10
    functionLinenumber: 2233
    functionLinenumberEnd: 2303
    functionName: type_set_annotations
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyDict_ContainsString
    - PyType_GetDict
    - PyDict_Pop
    - PyErr_SetString
    - PyDict_SetItem
    - PyType_Modified
    - PyErr_Format
    - PyTypeObject_CAST
    - Py_DECREF
    - _Py_ID
    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:2308,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:2310,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:2314,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2314,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2314,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:2315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tp
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2305
    functionDepth: 8
    functionLinenumber: 2305
    functionLinenumberEnd: 2318
    functionName: type_get_type_params
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_dict
    - PyTypeObject_CAST
    - PyDict_GetItemRef
    - PyTuple_New
    - _Py_ID
    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:2323,1
    - Dst: check_set_special_type_attr
      Src: /src/cpython/Objects/typeobject.c:2324,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:2328,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:2329,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2329,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:2332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - tp
    - value
    - Py_UNUSED(closure)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2320
    functionDepth: 10
    functionLinenumber: 2320
    functionLinenumberEnd: 2335
    functionName: type_set_type_params
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_set_special_type_attr
    - lookup_tp_dict
    - PyDict_SetItem
    - PyType_Modified
    - PyTypeObject_CAST
    - _Py_ID
    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:2351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - instance
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2347
    functionDepth: 6
    functionLinenumber: 2347
    functionLinenumberEnd: 2352
    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:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - subclass
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2363
    functionDepth: 6
    functionLinenumber: 2363
    functionLinenumberEnd: 2368
    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:2391,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:2395,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:2398,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:2400,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:2402,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2403,1
    - Dst: type_qualname
      Src: /src/cpython/Objects/typeobject.c:2406,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:2408,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:2413,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:2413,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:2414,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:2417,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:2419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2388
    functionDepth: 11
    functionLinenumber: 2388
    functionLinenumberEnd: 2423
    functionName: type_repr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicode_Equal
    - type_qualname
    - PyUnicode_FromFormat
    - PyUnicode_Check
    - type_module
    - Py_CLEAR
    - PyErr_Clear
    - PyTypeObject_CAST
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_repr(PyObject *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:2428,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:2430,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2436,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:2436,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2442,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:2442,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2443,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:2443,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:2444,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:2446,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2447,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:2447,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:2448,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:2455,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:2462,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/cpython/Objects/typeobject.c:2467,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/cpython/Objects/typeobject.c:2468,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/typeobject.c:2474,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2477,1
    - Dst: PyTypeObject*::tp_init
      Src: /src/cpython/Objects/typeobject.c:2479,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2481,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:2481,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2482,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2485,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:2485,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: 2435
        line_start: 2435
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (kwds == NULL || PyDict_Check(kwds))
      pos:
        line_end: 2442
        line_start: 2442
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2480
        line_start: 2480
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 2441
        line_start: 2441
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2484
        line_start: 2484
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2489
      start: 2425
    functionDepth: 1
    functionLinenumber: 2425
    functionLinenumberEnd: 2489
    functionName: type_call
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PyObject_TypeCheck
    - PyTuple_GET_ITEM
    - PyTypeObject*::tp_new
    - _Py_CheckFunctionResult
    - assert
    - PyTypeObject*::tp_init
    - PyErr_SetString
    - _PyErr_Occurred
    - Py_SETREF
    - _PyThreadState_GET
    - PyDict_Check
    - PyTuple_Check
    - PyTypeObject_CAST
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_NewRef
    - Py_TYPE
    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:2494,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2495,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2495,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2496,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2497,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2498,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/typeobject.c:2499,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:2501,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: 2493
        line_start: 2493
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_new == PyBaseObject_Type.tp_new)
      pos:
        line_end: 2495
        line_start: 2495
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_IS_GC(type))
      pos:
        line_end: 2494
        line_start: 2494
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_alloc == PyType_GenericAlloc)
      pos:
        line_end: 2496
        line_start: 2496
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_itemsize == 0)
      pos:
        line_end: 2497
        line_start: 2497
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2504
      start: 2491
    functionDepth: 1
    functionLinenumber: 2491
    functionLinenumberEnd: 2504
    functionName: _PyType_NewManagedObject
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_IS_GC
    - PyType_GenericAlloc
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_NewManagedObject(PyTypeObject *type)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/typeobject.c:2516,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Objects/typeobject.c:2518,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2520,1
    - Dst: _PyInlineValuesSize
      Src: /src/cpython/Objects/typeobject.c:2521,1
    - Dst: _PyObject_MallocWithType
      Src: /src/cpython/Objects/typeobject.c:2523,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:2525,1
    - Dst: PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2532,1
    - Dst: _PyObject_GC_Link
      Src: /src/cpython/Objects/typeobject.c:2533,1
    - Dst: memset
      Src: /src/cpython/Objects/typeobject.c:2537,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/typeobject.c:2540,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Objects/typeobject.c:2543,1
    - Dst: _PyObject_InitInlineValues
      Src: /src/cpython/Objects/typeobject.c:2546,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: 2519
        line_start: 2519
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2549
      start: 2506
    functionDepth: 2
    functionLinenumber: 2506
    functionLinenumberEnd: 2549
    functionName: _PyType_AllocNoTrack
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyInlineValuesSize
    - _PyObject_VAR_SIZE
    - PyErr_NoMemory
    - _PyObject_InitVar
    - _PyObject_MallocWithType
    - _PyType_PreHeaderSize
    - _PyObject_Init
    - PyType_IS_GC
    - _PyObject_GC_Link
    - _PyObject_InitInlineValues
    - memset
    - 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:2554,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2559,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:2560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2551
    functionDepth: 3
    functionLinenumber: 2551
    functionLinenumberEnd: 2563
    functionName: PyType_GenericAlloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 6
    functionsReached:
    - _PyType_IS_GC
    - _PyType_AllocNoTrack
    - _PyObject_GC_TRACK
    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:2568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2565
    functionDepth: 0
    functionLinenumber: 2565
    functionLinenumberEnd: 2569
    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:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyHeapTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2573
    functionDepth: 1
    functionLinenumber: 2573
    functionLinenumberEnd: 2577
    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:2585,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:2586,1
    - Dst: _PyMember_GetOffset
      Src: /src/cpython/Objects/typeobject.c:2589,1
    - Dst: visit
      Src: /src/cpython/Objects/typeobject.c:2592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - type
    - self
    - visit
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2579
    functionDepth: 2
    functionLinenumber: 2579
    functionLinenumberEnd: 2599
    functionName: traverse_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyHeapType_GET_MEMBERS
    - _PyMember_GetOffset
    - visit
    - Py_SIZE
    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:2609,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/typeobject.c:2612,1
    - Dst: traverse_slots
      Src: /src/cpython/Objects/typeobject.c:2613,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2618,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2622,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2624,1
    - Dst: PyObject_VisitManagedDict
      Src: /src/cpython/Objects/typeobject.c:2625,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/typeobject.c:2631,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:2633,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:2646,1
    - Dst: basetraverse
      Src: /src/cpython/Objects/typeobject.c:2650,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (base->tp_dictoffset == 0)
      pos:
        line_end: 2621
        line_start: 2621
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 2617
        line_start: 2617
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_dictoffset == -1)
      pos:
        line_end: 2623
        line_start: 2623
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2652
      start: 2601
    functionDepth: 3
    functionLinenumber: 2601
    functionLinenumberEnd: 2652
    functionName: subtype_traverse
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - basetraverse
    - assert
    - Py_VISIT
    - Py_SIZE
    - PyObject_VisitManagedDict
    - traverse_slots
    - _PyObject_ComputedDictPointer
    - Py_TYPE
    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:2660,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:2661,1
    - Dst: _PyMember_GetOffset
      Src: /src/cpython/Objects/typeobject.c:2664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - type
    - self
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2654
    functionDepth: 2
    functionLinenumber: 2654
    functionLinenumberEnd: 2672
    functionName: clear_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyHeapType_GET_MEMBERS
    - _PyMember_GetOffset
    - Py_DECREF
    - Py_SIZE
    linkageType: ''
    returnType: void
    signature: void clear_slots(PyTypeObject *type, PyObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2682,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/typeobject.c:2685,1
    - Dst: clear_slots
      Src: /src/cpython/Objects/typeobject.c:2686,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2688,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typeobject.c:2695,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2698,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/typeobject.c:2703,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2705,1
    - Dst: baseclear
      Src: /src/cpython/Objects/typeobject.c:2709,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (base)
      pos:
        line_end: 2687
        line_start: 2687
        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: 2698
        line_start: 2697
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2711
      start: 2674
    functionDepth: 6
    functionLinenumber: 2674
    functionLinenumberEnd: 2711
    functionName: subtype_clear
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - baseclear
    - clear_slots
    - Py_SIZE
    - Py_CLEAR
    - assert
    - _PyObject_ComputedDictPointer
    - PyObject_ClearManagedDict
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int subtype_clear(PyObject *self)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2721,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:2722,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2726,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/typeobject.c:2733,1
    - Dst: PyTypeObject*::tp_del
      Src: /src/cpython/Objects/typeobject.c:2737,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/typeobject.c:2738,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2747,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2751,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2758,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2761,1
    - Dst: basedealloc
      Src: /src/cpython/Objects/typeobject.c:2762,1
    - Dst: _Py_DECREF_TYPE
      Src: /src/cpython/Objects/typeobject.c:2769,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/typeobject.c:2780,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2786,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:2792,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/cpython/Objects/typeobject.c:2793,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:2797,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typeobject.c:2809,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:2813,1
    - Dst: PyTypeObject*::tp_del
      Src: /src/cpython/Objects/typeobject.c:2814,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/typeobject.c:2815,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:2819,1
    - Dst: _PyWeakref_ClearWeakRefsNoCallbacks
      Src: /src/cpython/Objects/typeobject.c:2827,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/typeobject.c:2834,1
    - Dst: clear_slots
      Src: /src/cpython/Objects/typeobject.c:2835,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2837,1
    - Dst: PyObject_ClearManagedDict
      Src: /src/cpython/Objects/typeobject.c:2842,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/typeobject.c:2845,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:2849,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2856,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:2861,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:2862,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:2870,1
    - Dst: basedealloc
      Src: /src/cpython/Objects/typeobject.c:2871,1
    - Dst: _Py_DECREF_TYPE
      Src: /src/cpython/Objects/typeobject.c:2878,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (basedealloc)
      pos:
        line_end: 2869
        line_start: 2869
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 2746
        line_start: 2746
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((type->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0)
      pos:
        line_end: 2757
        line_start: 2757
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (basedealloc)
      pos:
        line_end: 2760
        line_start: 2760
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 2836
        line_start: 2836
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 2785
        line_start: 2785
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2880
      start: 2713
    functionDepth: 6
    functionLinenumber: 2713
    functionLinenumberEnd: 2880
    functionName: subtype_dealloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - _PyWeakref_ClearWeakRefsNoCallbacks
    - _Py_DECREF_TYPE
    - assert
    - _PyObject_ComputedDictPointer
    - PyObject_ClearManagedDict
    - Py_TYPE
    - clear_slots
    - PyObject_GC_UnTrack
    - PyTypeObject*::tp_del
    - PyObject_ClearWeakRefs
    - Py_SIZE
    - Py_REFCNT
    - Py_DECREF
    - PyObject_CallFinalizerFromDealloc
    - _PyObject_ASSERT
    - _PyType_IS_GC
    - basedealloc
    - _PyObject_GC_UNTRACK
    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: 2896
      start: 2886
    functionDepth: 0
    functionLinenumber: 2886
    functionLinenumberEnd: 2896
    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:2906,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:2906,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:2907,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:2910,1
    - Dst: type_is_subtype_base_chain
      Src: /src/cpython/Objects/typeobject.c:2918,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: 2905
        line_start: 2905
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2921
      start: 2898
    functionDepth: 1
    functionLinenumber: 2898
    functionLinenumberEnd: 2921
    functionName: is_subtype_with_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - type_is_subtype_base_chain
    - PyTuple_GET_ITEM
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    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:2926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2923
    functionDepth: 2
    functionLinenumber: 2923
    functionLinenumberEnd: 2927
    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:2949,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2949,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2952,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:2953,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:2953,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2944
    functionDepth: 1
    functionLinenumber: 2944
    functionLinenumberEnd: 2957
    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:2967,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:2968,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2968,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:2969,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:2974,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2974,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2979,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:2981,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2981,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2985,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:2986,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/typeobject.c:2988,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - attr
    - method_and_self
    argTypes:
    - PyObject*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2964
    functionDepth: 1
    functionLinenumber: 2964
    functionLinenumberEnd: 2990
    functionName: _PyObject_LookupSpecialMethod
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyType_HasFeature
    - PyStackRef_CLEAR
    - _PyType_LookupStackRefAndVersion
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - f
    - Py_TYPE
    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:2996,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:2996,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:2997,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/typeobject.c:2999,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3004,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:3005,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3005,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3010,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:3012,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3012,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/typeobject.c:3013,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/typeobject.c:3016,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:3018,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:3022,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: 3025
      start: 2992
    functionDepth: 1
    functionLinenumber: 2992
    functionLinenumberEnd: 3025
    functionName: lookup_method_ex
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyStackRef_CLEAR
    - PyErr_SetObject
    - _PyType_LookupStackRefAndVersion
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - f
    - PyStackRef_IsNull
    - Py_TYPE
    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:3030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - out
    argTypes:
    - PyObject*
    - PyObject*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3031
      start: 3027
    functionDepth: 2
    functionLinenumber: 3027
    functionLinenumberEnd: 3031
    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:3036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - out
    argTypes:
    - PyObject*
    - PyObject*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3033
    functionDepth: 2
    functionLinenumber: 3033
    functionLinenumberEnd: 3037
    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:3051,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/typeobject.c:3052,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: 3053
      start: 3040
    functionDepth: 1
    functionLinenumber: 3040
    functionLinenumberEnd: 3053
    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:3059,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:3062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - unbound
    - func
    - self
    argTypes:
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3064
      start: 3055
    functionDepth: 1
    functionLinenumber: 3055
    functionLinenumberEnd: 3064
    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:3071,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3073,1
    - Dst: lookup_method
      Src: /src/cpython/Objects/typeobject.c:3075,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3077,1
    - Dst: call_unbound_noarg
      Src: /src/cpython/Objects/typeobject.c:3078,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3082
      start: 3068
    functionDepth: 3
    functionLinenumber: 3068
    functionLinenumberEnd: 3082
    functionName: call_method_noarg
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_PopCStackRef
    - lookup_method
    - call_unbound_noarg
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - PyStackRef_AsPyObjectBorrow
    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:3087,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3089,1
    - Dst: lookup_method
      Src: /src/cpython/Objects/typeobject.c:3091,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3093,1
    - Dst: _PyObject_Call_Prepend
      Src: /src/cpython/Objects/typeobject.c:3095,1
    - Dst: _PyObject_Call
      Src: /src/cpython/Objects/typeobject.c:3098,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - attr
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3103
      start: 3084
    functionDepth: 3
    functionLinenumber: 3084
    functionLinenumberEnd: 3103
    functionName: call_method
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_PopCStackRef
    - lookup_method
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - _PyObject_Call
    - PyStackRef_AsPyObjectBorrow
    - _PyObject_Call_Prepend
    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:3113,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:3115,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3119,1
    - Dst: lookup_method
      Src: /src/cpython/Objects/typeobject.c:3120,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3122,1
    - Dst: vectorcall_unbound
      Src: /src/cpython/Objects/typeobject.c:3123,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3125,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: 3112
        line_start: 3112
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3127
      start: 3110
    functionDepth: 3
    functionLinenumber: 3110
    functionLinenumberEnd: 3127
    functionName: vectorcall_method
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_PopCStackRef
    - lookup_method
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - assert
    - PyStackRef_AsPyObjectBorrow
    - vectorcall_unbound
    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:3135,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3139,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:3140,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3141,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3143,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:3144,1
    - Dst: vectorcall_unbound
      Src: /src/cpython/Objects/typeobject.c:3149,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3150,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: 3134
        line_start: 3134
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3152
      start: 3131
    functionDepth: 3
    functionLinenumber: 3131
    functionLinenumberEnd: 3152
    functionName: vectorcall_maybe
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - _PyThreadState_PopCStackRef
    - _PyThreadState_PushCStackRef
    - PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    - vectorcall_unbound
    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:3161,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3163,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:3166,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3167,1
    - Dst: call_unbound_noarg
      Src: /src/cpython/Objects/typeobject.c:3172,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - attr
    - attr_is_none
    argTypes:
    - PyObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3176
      start: 3158
    functionDepth: 3
    functionLinenumber: 3158
    functionLinenumberEnd: 3176
    functionName: maybe_call_special_no_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - _PyThreadState_PopCStackRef
    - call_unbound_noarg
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - PyStackRef_AsPyObjectBorrow
    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:3182,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:3184,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:3187,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:3188,1
    - Dst: vectorcall_unbound
      Src: /src/cpython/Objects/typeobject.c:3194,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:3196,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: 3198
      start: 3178
    functionDepth: 3
    functionLinenumber: 3178
    functionLinenumberEnd: 3198
    functionName: maybe_call_special_one_arg
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - _PyThreadState_PopCStackRef
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - PyStackRef_AsPyObjectBorrow
    - vectorcall_unbound
    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:3203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 3200
    functionDepth: 4
    functionLinenumber: 3200
    functionLinenumberEnd: 3204
    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:3209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - attr
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3206
    functionDepth: 4
    functionLinenumber: 3206
    functionLinenumberEnd: 3210
    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:3244,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tuple
    - whence
    - o
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3240
    functionDepth: 1
    functionLinenumber: 3240
    functionLinenumberEnd: 3251
    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:3258,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:3258,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Objects/typeobject.c:3259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3253
    functionDepth: 3
    functionLinenumber: 3253
    functionLinenumberEnd: 3262
    functionName: class_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - _Py_ID
    - 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:3271,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3273,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3275,1
    - Dst: class_name
      Src: /src/cpython/Objects/typeobject.c:3276,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:3278,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3279,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - tuple
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3264
    functionDepth: 4
    functionLinenumber: 3264
    functionLinenumberEnd: 3293
    functionName: check_duplicates
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - class_name
    - PyErr_SetString
    - PyUnicode_Check
    - PyErr_Format
    - Py_DECREF
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int check_duplicates(PyObject *tuple)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:3310,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3315,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3316,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:3317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3318,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3323,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/typeobject.c:3325,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:3328,1
    - Dst: class_name
      Src: /src/cpython/Objects/typeobject.c:3329,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:3332,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/typeobject.c:3333,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:3340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3341,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/typeobject.c:3344,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:3345,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3352,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: 3353
      start: 3304
    functionDepth: 11
    functionLinenumber: 3304
    functionLinenumberEnd: 3353
    functionName: set_mro_error
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - class_name
    - PyErr_SetString
    - PyDict_Next
    - PyUnicode_Check
    - PyDict_SetItem
    - PyUnicode_AsUTF8
    - Py_XDECREF
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyOS_snprintf
    - PyDict_New
    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:3366,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:3368,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3381,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3393,1
    - Dst: tail_contains
      Src: /src/cpython/Objects/typeobject.c:3396,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/typeobject.c:3399,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3405,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3406,1
    - Dst: set_mro_error
      Src: /src/cpython/Objects/typeobject.c:3415,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:3420,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: 3423
      start: 3355
    functionDepth: 12
    functionLinenumber: 3355
    functionLinenumberEnd: 3423
    functionName: pmerge
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyTuple_GET_ITEM
    - PyErr_NoMemory
    - set_mro_error
    - tail_contains
    - PyMem_Free
    - PyList_Append
    - PyTuple_GET_SIZE
    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:3428,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/typeobject.c:3430,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:3431,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:3435,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3436,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:3438,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3438,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3439,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3440,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3445,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:3445,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3445,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:3452,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3452,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3453,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3454,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3455,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:3456,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3462,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:3462,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3464,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3465,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:3465,1
    - Dst: check_duplicates
      Src: /src/cpython/Objects/typeobject.c:3471,1
    - Dst: PyMem_New
      Src: /src/cpython/Objects/typeobject.c:3483,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:3485,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:3491,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3491,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3492,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3493,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:3498,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:3500,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3504,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:3504,1
    - Dst: pmerge
      Src: /src/cpython/Objects/typeobject.c:3505,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:3506,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:3508,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mro_to_merge != NULL)
      pos:
        line_end: 3492
        line_start: 3492
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_Check(lookup_tp_mro(base)))
      pos:
        line_end: 3444
        line_start: 3444
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base_mro != NULL)
      pos:
        line_end: 3453
        line_start: 3453
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3511
      start: 3425
    functionDepth: 13
    functionLinenumber: 3425
    functionLinenumberEnd: 3511
    functionName: mro_implementation_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_bases
    - PyMem_New
    - PyTuple_GET_ITEM
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    - _PyType_CAST
    - PyErr_NoMemory
    - PyList_New
    - PyMem_Free
    - check_duplicates
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_New
    - ASSERT_TYPE_LOCK_HELD
    - PyList_SET_ITEM
    - _PyType_IsReady
    - pmerge
    - Py_CLEAR
    - PyErr_Format
    - lookup_tp_mro
    - PyType_Ready
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mro_implementation_unlocked(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:3517,1
    - Dst: mro_implementation_unlocked
      Src: /src/cpython/Objects/typeobject.c:3518,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:3519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3513
    functionDepth: 14
    functionLinenumber: 3513
    functionLinenumberEnd: 3521
    functionName: mro_implementation
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    - mro_implementation_unlocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mro_implementation(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mro_implementation
      Src: /src/cpython/Objects/typeobject.c:3534,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:3535,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:3536,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/typeobject.c:3536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3529
    functionDepth: 15
    functionLinenumber: 3529
    functionLinenumberEnd: 3539
    functionName: type_mro_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - mro_implementation
    - Py_SETREF
    - PySequence_List
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_mro_impl(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: solid_base
      Src: /src/cpython/Objects/typeobject.c:3547,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3549,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3551,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:3552,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3553,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:3559,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3559,1
    - Dst: solid_base
      Src: /src/cpython/Objects/typeobject.c:3559,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - type
    - mro
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3569
      start: 3541
    functionDepth: 2
    functionLinenumber: 3541
    functionLinenumberEnd: 3569
    functionName: mro_check
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyType_Check
    - solid_base
    - is_subtype_with_mro
    - PyErr_Format
    - lookup_tp_mro
    - PyTuple_GET_SIZE
    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:3591,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:3593,1
    - Dst: call_method_noarg
      Src: /src/cpython/Objects/typeobject.c:3598,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:3598,1
    - Dst: mro_implementation_unlocked
      Src: /src/cpython/Objects/typeobject.c:3603,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/typeobject.c:3608,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3609,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3615,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3616,1
    - Dst: mro_check
      Src: /src/cpython/Objects/typeobject.c:3620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3625
      start: 3585
    functionDepth: 14
    functionLinenumber: 3585
    functionLinenumberEnd: 3625
    functionName: mro_invoke
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Tuple
    - ASSERT_TYPE_LOCK_HELD
    - Py_IS_TYPE
    - _Py_ID
    - call_method_noarg
    - PyErr_Format
    - Py_DECREF
    - PyTuple_GET_SIZE
    - mro_check
    - mro_implementation_unlocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mro_invoke(PyTypeObject *type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:3652,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:3660,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3660,1
    - Dst: mro_invoke
      Src: /src/cpython/Objects/typeobject.c:3661,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3662,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:3663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:3669,1
    - Dst: set_tp_mro
      Src: /src/cpython/Objects/typeobject.c:3673,1
    - Dst: type_mro_modified
      Src: /src/cpython/Objects/typeobject.c:3675,1
    - Dst: type_mro_modified
      Src: /src/cpython/Objects/typeobject.c:3678,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:3678,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:3682,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3687,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:3693,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: 3686
        line_start: 3686
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3696
      start: 3649
    functionDepth: 15
    functionLinenumber: 3649
    functionLinenumberEnd: 3696
    functionName: mro_internal
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - type_mro_modified
    - lookup_tp_bases
    - assert
    - mro_invoke
    - set_tp_mro
    - type_modified_unlocked
    - Py_XDECREF
    - lookup_tp_mro
    - Py_DECREF
    - Py_XNewRef
    - ASSERT_TYPE_LOCK_HELD
    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:3707,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:3707,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:3708,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3709,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:3713,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:3714,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3715,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/typeobject.c:3722,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:3723,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:3726,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3727,1
    - Dst: solid_base
      Src: /src/cpython/Objects/typeobject.c:3732,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:3737,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:3739,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:3744,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3751,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - bases
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(bases))
      pos:
        line_end: 3706
        line_start: 3706
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (n > 0)
      pos:
        line_end: 3708
        line_start: 3708
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (base != NULL)
      pos:
        line_end: 3750
        line_start: 3750
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3754
      start: 3701
    functionDepth: 3
    functionLinenumber: 3701
    functionLinenumberEnd: 3754
    functionName: find_best_base
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyType_HasFeature
    - PyType_IsSubtype
    - PyTuple_GET_ITEM
    - _PyType_IsReady
    - PyType_Check
    - PyErr_SetString
    - solid_base
    - PyTuple_Check
    - assert
    - PyErr_Format
    - PyTuple_GET_SIZE
    - PyType_Ready
    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: 3763
      start: 3756
    functionDepth: 0
    functionLinenumber: 3756
    functionLinenumberEnd: 3763
    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:3771,1
    - Dst: shape_differs
      Src: /src/cpython/Objects/typeobject.c:3776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3782
      start: 3765
    functionDepth: 1
    functionLinenumber: 3765
    functionLinenumberEnd: 3782
    functionName: solid_base
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - solid_base
    - shape_differs
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      solid_base(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/typeobject.c:3833,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:3835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3841
      start: 3830
    functionDepth: 2
    functionLinenumber: 3830
    functionLinenumberEnd: 3841
    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:3849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - updates
    argTypes:
    - slot_update_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3852
      start: 3843
    functionDepth: 2
    functionLinenumber: 3843
    functionLinenumberEnd: 3852
    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:3862,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:3874,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: 3873
        line_start: 3873
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3876
      start: 3854
    functionDepth: 3
    functionLinenumber: 3854
    functionLinenumberEnd: 3876
    functionName: queue_slot_update
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - slot_update_new_chunk
    - assert
    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:3881,1
    - Dst: types_world_is_stopped
      Src: /src/cpython/Objects/typeobject.c:3881,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:3889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - updates
    argTypes:
    - slot_update_t*
    assertStmts:
    - condition: (types_world_is_stopped())
      pos:
        line_end: 3880
        line_start: 3880
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3894
      start: 3878
    functionDepth: 3
    functionLinenumber: 3878
    functionLinenumberEnd: 3894
    functionName: apply_slot_updates
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_clear_flags
    - types_world_is_stopped
    - assert
    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:3917,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:3918,1
    - Dst: apply_slot_updates
      Src: /src/cpython/Objects/typeobject.c:3919,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:3920,1
    - Dst: type_lock_allow_release
      Src: /src/cpython/Objects/typeobject.c:3921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - updates
    argTypes:
    - slot_update_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3896
    functionDepth: 4
    functionLinenumber: 3896
    functionLinenumberEnd: 3922
    functionName: apply_type_slot_updates
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - apply_slot_updates
    - type_lock_allow_release
    - types_start_world
    - type_lock_prevent_release
    - types_stop_world
    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: 3961
      start: 3951
    functionDepth: 0
    functionLinenumber: 3951
    functionLinenumberEnd: 3961
    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:3968,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:3968,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/typeobject.c:3969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3963
    functionDepth: 1
    functionLinenumber: 3963
    functionLinenumberEnd: 3973
    functionName: get_dict_descriptor
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDescr_IsData
    - _PyType_Lookup
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dict_descriptor(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:3978,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3981
      start: 3975
    functionDepth: 1
    functionLinenumber: 3975
    functionLinenumberEnd: 3981
    functionName: raise_dict_descr_error
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void raise_dict_descr_error(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_builtin_base_with_dict
      Src: /src/cpython/Objects/typeobject.c:3988,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3988,1
    - Dst: get_dict_descriptor
      Src: /src/cpython/Objects/typeobject.c:3991,1
    - Dst: raise_dict_descr_error
      Src: /src/cpython/Objects/typeobject.c:3993,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:3996,1
    - Dst: raise_dict_descr_error
      Src: /src/cpython/Objects/typeobject.c:3998,1
    - Dst: func
      Src: /src/cpython/Objects/typeobject.c:4001,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4001,1
    - Dst: PyObject_GenericGetDict
      Src: /src/cpython/Objects/typeobject.c:4003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4004
      start: 3983
    functionDepth: 15
    functionLinenumber: 3983
    functionLinenumberEnd: 4004
    functionName: subtype_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetDict
    - raise_dict_descr_error
    - get_dict_descriptor
    - get_builtin_base_with_dict
    - func
    - 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:4009,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4010,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4012,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4015,1
    - Dst: _PyObject_SetManagedDict
      Src: /src/cpython/Objects/typeobject.c:4016,1
    - Dst: _PyObject_ComputedDictPointer
      Src: /src/cpython/Objects/typeobject.c:4018,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4020,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/typeobject.c:4024,1
    - Dst: _PyObject_XSetRefDelayed
      Src: /src/cpython/Objects/typeobject.c:4027,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4027,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/typeobject.c:4028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4030
      start: 4006
    functionDepth: 5
    functionLinenumber: 4006
    functionLinenumberEnd: 4030
    functionName: _PyObject_SetDict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_XSetRefDelayed
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_SetString
    - PyDict_Check
    - PyErr_Format
    - _PyObject_SetManagedDict
    - _PyObject_ComputedDictPointer
    - Py_NewRef
    - 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:4037,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4037,1
    - Dst: get_dict_descriptor
      Src: /src/cpython/Objects/typeobject.c:4040,1
    - Dst: raise_dict_descr_error
      Src: /src/cpython/Objects/typeobject.c:4042,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4045,1
    - Dst: raise_dict_descr_error
      Src: /src/cpython/Objects/typeobject.c:4047,1
    - Dst: func
      Src: /src/cpython/Objects/typeobject.c:4050,1
    - Dst: _PyObject_SetDict
      Src: /src/cpython/Objects/typeobject.c:4052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - obj
    - value
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4053
      start: 4032
    functionDepth: 6
    functionLinenumber: 4032
    functionLinenumberEnd: 4053
    functionName: subtype_setdict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - raise_dict_descr_error
    - _PyObject_SetDict
    - get_dict_descriptor
    - get_builtin_base_with_dict
    - func
    - 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:4060,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4063,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:4067,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:4070,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4055
    functionDepth: 1
    functionLinenumber: 4055
    functionLinenumberEnd: 4079
    functionName: subtype_getweakref
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - PyErr_SetString
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subtype_getweakref(PyObject *obj, void *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4095,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4096,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4098,1
    - Dst: PyUnicode_IsIdentifier
      Src: /src/cpython/Objects/typeobject.c:4101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4107
      start: 4092
    functionDepth: 4
    functionLinenumber: 4092
    functionLinenumberEnd: 4107
    functionName: valid_identifier
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_IsIdentifier
    - PyUnicode_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int valid_identifier(PyObject *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4112,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:4112,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4113,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:4113,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4115,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4117,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4122,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4122,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4123,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: 4111
        line_start: 4111
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (kwds == NULL || PyDict_Check(kwds))
      pos:
        line_end: 4112
        line_start: 4112
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4129
      start: 4109
    functionDepth: 1
    functionLinenumber: 4109
    functionLinenumberEnd: 4129
    functionName: type_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - PyDict_Check
    - PyTuple_Check
    - assert
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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: 4136
      start: 4132
    functionDepth: 0
    functionLinenumber: 4132
    functionLinenumberEnd: 4136
    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:4142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4143
      start: 4139
    functionDepth: 1
    functionLinenumber: 4139
    functionLinenumberEnd: 4143
    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:4160,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4163,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4164,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:4165,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:4167,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - metatype
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4147
    functionDepth: 3
    functionLinenumber: 4147
    functionLinenumberEnd: 4180
    functionName: _PyType_CalculateMetaclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_IsSubtype
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PyTuple_GET_SIZE
    - 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:4211,1
    - Dst: valid_identifier
      Src: /src/cpython/Objects/typeobject.c:4212,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4215,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4215,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4216,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4216,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4218,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4225,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4225,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts:
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 4214
        line_start: 4214
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4236
      start: 4205
    functionDepth: 5
    functionLinenumber: 4205
    functionLinenumberEnd: 4236
    functionName: type_new_visit_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - valid_identifier
    - _PyUnicode_Equal
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - _Py_ID
    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:4250,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4257,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4258,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4258,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4259,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4259,1
    - Dst: _Py_Mangle
      Src: /src/cpython/Objects/typeobject.c:4264,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4268,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:4270,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4278,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4278,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4279,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4279,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:4280,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4280,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4282,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4291,1
    - Dst: PyList_Sort
      Src: /src/cpython/Objects/typeobject.c:4293,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Objects/typeobject.c:4297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4298,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4303,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4307,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: 4302
        line_start: 4302
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (j == new_nslot)
      pos:
        line_end: 4290
        line_start: 4290
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4309
      start: 4243
    functionDepth: 10
    functionLinenumber: 4243
    functionLinenumberEnd: 4309
    functionName: type_new_copy_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_Mangle
    - PyList_SET_ITEM
    - PyTuple_GET_ITEM
    - _PyUnicode_Equal
    - PyDict_Contains
    - PyList_AsTuple
    - PyList_New
    - PyErr_Format
    - assert
    - PyList_Sort
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _Py_ID
    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:4315,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4321,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:4326,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4348
      start: 4312
    functionDepth: 1
    functionLinenumber: 4312
    functionLinenumberEnd: 4348
    functionName: type_new_slots_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - _PyType_CAST
    linkageType: ''
    returnType: void
    signature: void type_new_slots_bases(type_new_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_new_visit_slots
      Src: /src/cpython/Objects/typeobject.c:4354,1
    - Dst: type_new_copy_slots
      Src: /src/cpython/Objects/typeobject.c:4358,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4362,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:4362,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:4364,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4365,1
    - Dst: type_new_slots_bases
      Src: /src/cpython/Objects/typeobject.c:4368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - dict
    argTypes:
    - type_new_ctx*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(new_slots))
      pos:
        line_end: 4361
        line_start: 4361
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4370
      start: 4351
    functionDepth: 11
    functionLinenumber: 4351
    functionLinenumberEnd: 4370
    functionName: type_new_slots_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_new_visit_slots
    - type_new_copy_slots
    - Py_XSETREF
    - assert
    - type_new_slots_bases
    - PyTuple_GET_SIZE
    - 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:4392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - dict
    argTypes:
    - type_new_ctx*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4397
      start: 4373
    functionDepth: 12
    functionLinenumber: 4373
    functionLinenumberEnd: 4397
    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:4407,1
    - Dst: type_set_flags
      Src: /src/cpython/Objects/typeobject.c:4416,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:4426,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4426,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4427,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4437,1
    - Dst: _PyObject_AssignUniqueId
      Src: /src/cpython/Objects/typeobject.c:4443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4447
      start: 4400
    functionDepth: 4
    functionLinenumber: 4400
    functionLinenumberEnd: 4447
    functionName: type_new_alloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - set_tp_bases
    - type_set_flags
    - _PyObject_AssignUniqueId
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    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:4454,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:4458,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:4459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - type_new_ctx*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4464
      start: 4450
    functionDepth: 5
    functionLinenumber: 4450
    functionLinenumberEnd: 4464
    functionName: type_new_set_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - strlen
    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:4471,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4471,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Objects/typeobject.c:4479,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:4485,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4485,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:4487,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4491
      start: 4468
    functionDepth: 10
    functionLinenumber: 4468
    functionLinenumberEnd: 4491
    functionName: type_new_set_module
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyEval_GetGlobals
    - PyDict_SetItem
    - PyDict_Contains
    - Py_DECREF
    - PyDict_GetItemRef
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int type_new_set_module(PyObject *dict)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:4501,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4501,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4505,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4506,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4509,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:4513,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4513,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:4518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - type
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4521
      start: 4496
    functionDepth: 8
    functionLinenumber: 4496
    functionLinenumberEnd: 4521
    functionName: type_new_set_ht_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyDict_DelItem
    - PyErr_Format
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_NewRef
    - Py_TYPE
    - _Py_ID
    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:4530,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4530,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4532,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4538,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/typeobject.c:4543,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:4549,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/typeobject.c:4550,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:4552,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:4556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - type
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4527
    functionDepth: 7
    functionLinenumber: 4527
    functionLinenumberEnd: 4559
    functionName: type_new_set_doc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - memcpy
    - PyErr_Occurred
    - strlen
    - PyDict_GetItemWithError
    - _Py_ID
    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:4565,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4567,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/typeobject.c:4572,1
    - Dst: PyStaticMethod_New
      Src: /src/cpython/Objects/typeobject.c:4576,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:4580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4584,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - dict
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4586
      start: 4562
    functionDepth: 10
    functionLinenumber: 4562
    functionLinenumberEnd: 4586
    functionName: type_new_staticmethod
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - PyDict_SetItem
    - PyErr_Occurred
    - PyStaticMethod_New
    - Py_DECREF
    - PyDict_GetItemWithError
    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:4592,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4594,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/typeobject.c:4599,1
    - Dst: PyClassMethod_New
      Src: /src/cpython/Objects/typeobject.c:4603,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:4608,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4612,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - dict
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4589
    functionDepth: 10
    functionLinenumber: 4589
    functionLinenumberEnd: 4614
    functionName: type_new_classmethod
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - PyClassMethod_New
    - PyDict_SetItem
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_GetItemWithError
    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:4624,1
    - Dst: PyDescr_NewGetSet
      Src: /src/cpython/Objects/typeobject.c:4628,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Objects/typeobject.c:4632,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/typeobject.c:4637,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/typeobject.c:4637,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: 4641
      start: 4617
    functionDepth: 7
    functionLinenumber: 4617
    functionLinenumberEnd: 4641
    functionName: type_add_common_descriptor
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - PyDict_SetDefaultRef
    - PyDescr_NewGetSet
    - PyDescr_NAME
    - PyMutex_Lock
    linkageType: ''
    returnType: int
    signature: "int type_add_common_descriptor(PyInterpreterState *interp,\n                           PyObject
      **cache,\n                           PyGetSetDef *getset_def,\n                           PyObject
      *dict)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:4650,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4651,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4657,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/typeobject.c:4663,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:4664,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4675,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:4675,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4676,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:4676,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4683,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:4684,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4688,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:4689,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:4695,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:4697,1
    - Dst: type_add_common_descriptor
      Src: /src/cpython/Objects/typeobject.c:4700,1
    - Dst: type_add_common_descriptor
      Src: /src/cpython/Objects/typeobject.c:4710,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - ctx
    - type
    - dict
    argTypes:
    - type_new_ctx*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (strcmp(mp->name, "__dict__") != 0)
      pos:
        line_end: 4674
        line_start: 4674
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (strcmp(mp->name, "__weakref__") != 0)
      pos:
        line_end: 4675
        line_start: 4675
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((type->tp_flags & Py_TPFLAGS_MANAGED_WEAKREF) == 0)
      pos:
        line_end: 4682
        line_start: 4682
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((type->tp_flags & Py_TPFLAGS_MANAGED_DICT) == 0)
      pos:
        line_end: 4687
        line_start: 4687
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4721
      start: 4644
    functionDepth: 8
    functionLinenumber: 4644
    functionLinenumberEnd: 4721
    functionName: type_new_descriptors
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyHeapType_GET_MEMBERS
    - PyTuple_GET_ITEM
    - strcmp
    - _PyInterpreterState_GET
    - PyUnicode_AsUTF8
    - PyErr_Format
    - assert
    - PyTuple_GET_SIZE
    - type_add_flags
    - type_add_common_descriptor
    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: 4739
      start: 4724
    functionDepth: 0
    functionLinenumber: 4724
    functionLinenumberEnd: 4739
    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:4746,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4746,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4748,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/typeobject.c:4755,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4756,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4758,1
    - Dst: PyCell_Set
      Src: /src/cpython/Objects/typeobject.c:4762,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:4763,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - type
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4767
      start: 4743
    functionDepth: 7
    functionLinenumber: 4743
    functionLinenumberEnd: 4767
    functionName: type_new_set_classcell
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyCell_Set
    - PyDict_DelItem
    - PyCell_Check
    - PyErr_Format
    - PyErr_Occurred
    - PyDict_GetItemWithError
    - _Py_ID
    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:4772,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4772,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4774,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/typeobject.c:4781,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:4782,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4784,1
    - Dst: PyCell_Set
      Src: /src/cpython/Objects/typeobject.c:4788,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:4789,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4789,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4793
      start: 4769
    functionDepth: 7
    functionLinenumber: 4769
    functionLinenumberEnd: 4793
    functionName: type_new_set_classdictcell
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyCell_Set
    - PyDict_DelItem
    - PyCell_Check
    - PyErr_Format
    - PyErr_Occurred
    - PyDict_GetItemWithError
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int type_new_set_classdictcell(PyObject *dict)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: type_new_set_name
      Src: /src/cpython/Objects/typeobject.c:4798,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:4802,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4803,1
    - Dst: type_new_set_module
      Src: /src/cpython/Objects/typeobject.c:4805,1
    - Dst: type_new_set_ht_name
      Src: /src/cpython/Objects/typeobject.c:4809,1
    - Dst: type_new_set_doc
      Src: /src/cpython/Objects/typeobject.c:4813,1
    - Dst: type_new_staticmethod
      Src: /src/cpython/Objects/typeobject.c:4819,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4819,1
    - Dst: type_new_classmethod
      Src: /src/cpython/Objects/typeobject.c:4825,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4825,1
    - Dst: type_new_classmethod
      Src: /src/cpython/Objects/typeobject.c:4828,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4828,1
    - Dst: type_new_descriptors
      Src: /src/cpython/Objects/typeobject.c:4832,1
    - Dst: type_new_set_slots
      Src: /src/cpython/Objects/typeobject.c:4836,1
    - Dst: type_new_set_classcell
      Src: /src/cpython/Objects/typeobject.c:4838,1
    - Dst: type_new_set_classdictcell
      Src: /src/cpython/Objects/typeobject.c:4841,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:4849,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/typeobject.c:4850,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:4850,1
    - Dst: PyUnstable_Object_EnableDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:4851,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - type_new_ctx*
    - PyTypeObject*
    assertStmts:
    - condition: (dict)
      pos:
        line_end: 4802
        line_start: 4802
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4857
      start: 4795
    functionDepth: 11
    functionLinenumber: 4795
    functionLinenumberEnd: 4857
    functionName: type_new_set_attrs
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_new_set_doc
    - PyUnstable_Object_EnableDeferredRefcount
    - PyFunction_Check
    - type_new_set_classcell
    - type_new_staticmethod
    - type_new_classmethod
    - type_new_descriptors
    - type_new_set_name
    - PyDict_Next
    - lookup_tp_dict
    - type_new_set_ht_name
    - assert
    - type_new_set_classdictcell
    - type_new_set_module
    - type_new_set_slots
    - Py_TYPE
    - _Py_ID
    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:4863,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:4863,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4865,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:4875,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:4876,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/typeobject.c:4879,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4884,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/typeobject.c:4884,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4886,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: 4883
        line_start: 4883
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4888
      start: 4860
    functionDepth: 7
    functionLinenumber: 4860
    functionLinenumberEnd: 4888
    functionName: type_new_get_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Tuple
    - PyUnicode_Check
    - PyTuple_Pack
    - PyErr_Occurred
    - assert
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - PyDict_GetItemWithError
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int type_new_get_slots(type_new_ctx *ctx, PyObject *dict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_CopyAsDict
      Src: /src/cpython/Objects/typeobject.c:4894,1
    - Dst: type_new_get_slots
      Src: /src/cpython/Objects/typeobject.c:4899,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4902,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:4902,1
    - Dst: type_new_slots
      Src: /src/cpython/Objects/typeobject.c:4904,1
    - Dst: type_new_alloc
      Src: /src/cpython/Objects/typeobject.c:4908,1
    - Dst: set_tp_dict
      Src: /src/cpython/Objects/typeobject.c:4913,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:4916,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:4922,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:4928,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:4929,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 4901
        line_start: 4901
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4931
      start: 4891
    functionDepth: 13
    functionLinenumber: 4891
    functionLinenumberEnd: 4931
    functionName: type_new_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_CopyAsDict
    - set_tp_dict
    - type_new_slots
    - Py_CLEAR
    - type_new_alloc
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - type_new_get_slots
    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:4937,1
    - Dst: type_new_set_attrs
      Src: /src/cpython/Objects/typeobject.c:4942,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:4947,1
    - Dst: fixup_slot_dispatchers
      Src: /src/cpython/Objects/typeobject.c:4952,1
    - Dst: _PyDict_HasOnlyStringKeys
      Src: /src/cpython/Objects/typeobject.c:4954,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/typeobject.c:4955,1
    - Dst: type_new_set_names
      Src: /src/cpython/Objects/typeobject.c:4965,1
    - Dst: type_new_init_subclass
      Src: /src/cpython/Objects/typeobject.c:4969,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:4973,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:4973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:4982,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - type_new_ctx*
    assertStmts:
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 4972
        line_start: 4972
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4984
      start: 4934
    functionDepth: 14
    functionLinenumber: 4934
    functionLinenumberEnd: 4984
    functionName: type_new_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_CheckConsistency
    - assert
    - type_new_set_names
    - PyErr_WarnFormat
    - type_new_init
    - type_new_init_subclass
    - _PyDict_HasOnlyStringKeys
    - fixup_slot_dispatchers
    - Py_DECREF
    - type_new_set_attrs
    - PyType_Ready
    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:4990,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:4994,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5003,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5004,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/typeobject.c:5007,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5007,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5012,1
    - Dst: _PyType_CalculateMetaclass
      Src: /src/cpython/Objects/typeobject.c:5021,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/cpython/Objects/typeobject.c:5029,1
    - Dst: find_best_base
      Src: /src/cpython/Objects/typeobject.c:5040,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5046,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - type_new_ctx*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5048
      start: 4987
    functionDepth: 4
    functionLinenumber: 4987
    functionLinenumberEnd: 5048
    functionName: type_new_get_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrWithError
    - PyTuple_GET_ITEM
    - PyTypeObject*::tp_new
    - find_best_base
    - PyType_Check
    - PyErr_SetString
    - _PyType_CalculateMetaclass
    - PyTuple_Pack
    - PyTuple_GET_SIZE
    - Py_NewRef
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int type_new_get_bases(type_new_ctx *ctx, PyObject **type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5054,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:5054,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5055,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:5055,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/typeobject.c:5059,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/typeobject.c:5066,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5067,1
    - Dst: type_new_get_bases
      Src: /src/cpython/Objects/typeobject.c:5088,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5090,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:5090,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5094,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5097,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5098,1
    - Dst: type_new_impl
      Src: /src/cpython/Objects/typeobject.c:5100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:5101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - metatype
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 5053
        line_start: 5053
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (kwds == NULL || PyDict_Check(kwds))
      pos:
        line_end: 5054
        line_start: 5054
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 5089
        line_start: 5089
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type != NULL)
      pos:
        line_end: 5093
        line_start: 5093
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (ctx.bases != NULL)
      pos:
        line_end: 5097
        line_start: 5097
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (ctx.base != NULL)
      pos:
        line_end: 5096
        line_start: 5096
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5103
      start: 5051
    functionDepth: 15
    functionLinenumber: 5051
    functionLinenumberEnd: 5103
    functionName: type_new
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - PyAnyDict_Check
    - Py_DECREF
    - type_new_impl
    - PyDict_Check
    - PyTuple_Check
    - assert
    - PyArg_ParseTuple
    - PyErr_Format
    - type_new_get_bases
    - PyErr_Occurred
    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:5110,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/typeobject.c:5112,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5115,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:5115,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:5119,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/cpython/Objects/typeobject.c:5120,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: 5121
      start: 5106
    functionDepth: 1
    functionLinenumber: 5106
    functionLinenumberEnd: 5121
    functionName: type_vectorcall
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_MakeTpCall
    - _PyThreadState_GET
    - _PyArg_NoKwnames
    - PyVectorcall_NARGS
    - Py_NewRef
    - 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: 5130
      start: 5126
    functionDepth: 0
    functionLinenumber: 5126
    functionLinenumberEnd: 5130
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5142,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5149,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5156,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5170
      start: 5132
    functionDepth: 1
    functionLinenumber: 5132
    functionLinenumberEnd: 5170
    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:5180,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5181,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5185,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - type_name
    - bases
    - skip_first
    argTypes:
    - char*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5195
      start: 5172
    functionDepth: 1
    functionLinenumber: 5172
    functionLinenumberEnd: 5195
    functionName: check_immutable_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyErr_Format
    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:5212,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5226,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: 5231
      start: 5201
    functionDepth: 1
    functionLinenumber: 5201
    functionLinenumberEnd: 5231
    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: 81
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5272,1
    - Dst: _PySlotIterator_InitLegacy
      Src: /src/cpython/Objects/typeobject.c:5281,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5285,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5286,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5287,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5288,1
    - Dst: _PySlotIterator_Init
      Src: /src/cpython/Objects/typeobject.c:5289,1
    - Dst: _PySlotIterator_Next
      Src: /src/cpython/Objects/typeobject.c:5302,1
    - Dst: _PySlotIterator_SawSlot
      Src: /src/cpython/Objects/typeobject.c:5322,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5330,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5340,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5350,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5368,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/typeobject.c:5374,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:5377,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:5380,1
    - Dst: strcmp
      Src: /src/cpython/Objects/typeobject.c:5383,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5392,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:5405,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:5409,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/typeobject.c:5410,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:5412,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:5415,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5426,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5430,1
    - Dst: _PySlotIterator_SawSlot
      Src: /src/cpython/Objects/typeobject.c:5436,1
    - Dst: _PySlotIterator_SawSlot
      Src: /src/cpython/Objects/typeobject.c:5437,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5439,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5449,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5455,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5464,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:5465,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:5473,1
    - Dst: strlen
      Src: /src/cpython/Objects/typeobject.c:5487,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/typeobject.c:5488,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:5492,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:5503,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5504,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:5507,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:5511,1
    - Dst: check_immutable_bases
      Src: /src/cpython/Objects/typeobject.c:5522,1
    - Dst: _PyType_CalculateMetaclass
      Src: /src/cpython/Objects/typeobject.c:5532,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5536,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5537,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5543,1
    - Dst: find_best_base
      Src: /src/cpython/Objects/typeobject.c:5550,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5556,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5556,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5563,1
    - Dst: _align_up
      Src: /src/cpython/Objects/typeobject.c:5564,1
    - Dst: _align_up
      Src: /src/cpython/Objects/typeobject.c:5565,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:5571,1
    - Dst: special_offset_from_member
      Src: /src/cpython/Objects/typeobject.c:5585,1
    - Dst: special_offset_from_member
      Src: /src/cpython/Objects/typeobject.c:5590,1
    - Dst: special_offset_from_member
      Src: /src/cpython/Objects/typeobject.c:5595,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/typeobject.c:5608,1
    - Dst: type_set_flags
      Src: /src/cpython/Objects/typeobject.c:5615,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:5617,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5629,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:5630,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:5636,1
    - Dst: _PySlotIterator_Rewind
      Src: /src/cpython/Objects/typeobject.c:5653,1
    - Dst: _PySlotIterator_Next
      Src: /src/cpython/Objects/typeobject.c:5654,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:5666,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:5667,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:5667,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:5668,1
    - Dst: _PyHeapType_GET_MEMBERS
      Src: /src/cpython/Objects/typeobject.c:5671,1
    - Dst: _PySlot_heaptype_apply_field_slot
      Src: /src/cpython/Objects/typeobject.c:5682,1
    - Dst: _PyObject_AssignUniqueId
      Src: /src/cpython/Objects/typeobject.c:5701,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:5710,1
    - Dst: check_basicsize_includes_size_and_offsets
      Src: /src/cpython/Objects/typeobject.c:5714,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:5718,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:5720,1
    - Dst: _PyType_DocWithoutSignature
      Src: /src/cpython/Objects/typeobject.c:5720,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:5724,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:5725,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:5732,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5732,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:5737,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5737,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:5743,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5743,1
    - Dst: strrchr
      Src: /src/cpython/Objects/typeobject.c:5748,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/typeobject.c:5750,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:5755,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:5755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:5756,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/typeobject.c:5762,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5769,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:5769,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:5776,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:5777,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:5779,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:5780,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:5781,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:5782,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 367
    argCount: 5
    argNames:
    - slots
    - spec
    - metaclass
    - module
    - bases_in
    argTypes:
    - PySlot*
    - PyType_Spec*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (it.name)
      pos:
        line_end: 5463
        line_start: 5463
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!metaclass)
      pos:
        line_end: 5285
        line_start: 5285
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 5768
        line_start: 5768
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (basicsize == 0)
      pos:
        line_end: 5562
        line_start: 5562
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_HasFeature(base, Py_TPFLAGS_BASETYPE))
      pos:
        line_end: 5555
        line_start: 5555
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!module)
      pos:
        line_end: 5286
        line_start: 5286
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!spec)
      pos:
        line_end: 5284
        line_start: 5284
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!slots)
      pos:
        line_end: 5271
        line_start: 5271
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!bases_in)
      pos:
        line_end: 5287
        line_start: 5287
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5784
      start: 5234
    functionDepth: 10
    functionLinenumber: 5234
    functionLinenumberEnd: 5784
    functionName: type_from_slots_or_spec
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strcmp
    - find_best_base
    - PyType_Check
    - set_tp_bases
    - PyDict_DelItem
    - _PyType_CalculateMetaclass
    - _PySlot_heaptype_apply_field_slot
    - memcpy
    - PyTuple_Check
    - assert
    - _PySlotIterator_InitLegacy
    - _align_up
    - PyErr_Occurred
    - Py_XNewRef
    - Py_TYPE
    - _PySlotIterator_Rewind
    - PyUnicode_FromStringAndSize
    - PyUnicode_FromString
    - _PyType_CheckConsistency
    - PyErr_NoMemory
    - type_set_flags
    - _PySlotIterator_Init
    - PyDict_Contains
    - _PyObject_AssignUniqueId
    - PyMem_Free
    - PyMem_Malloc
    - strlen
    - check_immutable_bases
    - Py_XDECREF
    - _PyType_DocWithoutSignature
    - _PyType_HasFeature
    - _PyHeapType_GET_MEMBERS
    - PyErr_SetString
    - Py_MAX
    - lookup_tp_dict
    - PyErr_WarnFormat
    - _PySlotIterator_Next
    - special_offset_from_member
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - _PySlotIterator_SawSlot
    - check_basicsize_includes_size_and_offsets
    - PyDict_SetItem
    - Py_CLEAR
    - PyTuple_Pack
    - PyErr_Format
    - PyType_Ready
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntype_from_slots_or_spec(\n    PySlot *slots, PyType_Spec
      *spec,\n    PyTypeObject *metaclass, PyObject *module, PyObject *bases_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_from_slots_or_spec
      Src: /src/cpython/Objects/typeobject.c:5789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slots
    argTypes:
    - PySlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5790
      start: 5786
    functionDepth: 11
    functionLinenumber: 5786
    functionLinenumberEnd: 5790
    functionName: PyType_FromSlots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - type_from_slots_or_spec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromSlots(PySlot *slots)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_from_slots_or_spec
      Src: /src/cpython/Objects/typeobject.c:5797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - metaclass
    - module
    - spec
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyType_Spec*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5798
      start: 5792
    functionDepth: 11
    functionLinenumber: 5792
    functionLinenumberEnd: 5798
    functionName: PyType_FromMetaclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 8
    functionsReached:
    - type_from_slots_or_spec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyType_FromMetaclass(\n    PyTypeObject *metaclass, PyObject
      *module,\n    PyType_Spec *spec, PyObject *bases)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_from_slots_or_spec
      Src: /src/cpython/Objects/typeobject.c:5803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - spec
    - bases
    argTypes:
    - PyObject*
    - PyType_Spec*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5804
      start: 5800
    functionDepth: 11
    functionLinenumber: 5800
    functionLinenumberEnd: 5804
    functionName: PyType_FromModuleAndSpec
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 46
    functionsReached:
    - type_from_slots_or_spec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromModuleAndSpec(PyObject *module, PyType_Spec *spec, PyObject *bases)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_from_slots_or_spec
      Src: /src/cpython/Objects/typeobject.c:5809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - spec
    - bases
    argTypes:
    - PyType_Spec*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5810
      start: 5806
    functionDepth: 11
    functionLinenumber: 5806
    functionLinenumberEnd: 5810
    functionName: PyType_FromSpecWithBases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 9
    functionsReached:
    - type_from_slots_or_spec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_from_slots_or_spec
      Src: /src/cpython/Objects/typeobject.c:5815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyType_Spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5816
      start: 5812
    functionDepth: 11
    functionLinenumber: 5812
    functionLinenumberEnd: 5816
    functionName: PyType_FromSpec
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 18
    functionsReached:
    - type_from_slots_or_spec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromSpec(PyType_Spec *spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_name
      Src: /src/cpython/Objects/typeobject.c:5821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5822
      start: 5818
    functionDepth: 3
    functionLinenumber: 5818
    functionLinenumberEnd: 5822
    functionName: PyType_GetName
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    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:5827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5828
      start: 5824
    functionDepth: 3
    functionLinenumber: 5824
    functionLinenumberEnd: 5828
    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:5833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5834
      start: 5830
    functionDepth: 11
    functionLinenumber: 5830
    functionLinenumberEnd: 5834
    functionName: PyType_GetModuleName
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - type_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModuleName(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySlot_resolve_type_slot
      Src: /src/cpython/Objects/typeobject.c:5839,1
    - Dst: _PySlot_type_getslot
      Src: /src/cpython/Objects/typeobject.c:5840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - slot_in
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5841
      start: 5836
    functionDepth: 1
    functionLinenumber: 5836
    functionLinenumberEnd: 5841
    functionName: PyType_GetSlot
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 15
    functionsReached:
    - _PySlot_resolve_type_slot
    - _PySlot_type_getslot
    linkageType: ''
    returnType: void
    signature: 'void *

      PyType_GetSlot(PyTypeObject *type, int slot_in)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5846,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5846,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 5845
        line_start: 5845
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5852
      start: 5843
    functionDepth: 1
    functionLinenumber: 5843
    functionLinenumberEnd: 5852
    functionName: PyType_GetModule_DuringGC
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - _PyType_HasFeature
    - PyType_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModule_DuringGC(PyTypeObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5857,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5857,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5858,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5859,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 5856
        line_start: 5856
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5875
      start: 5854
    functionDepth: 1
    functionLinenumber: 5854
    functionLinenumberEnd: 5875
    functionName: PyType_GetModule
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 19
    functionsReached:
    - _PyType_HasFeature
    - PyType_Check
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModule(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule_DuringGC
      Src: /src/cpython/Objects/typeobject.c:5880,1
    - Dst: _PyModule_GetState
      Src: /src/cpython/Objects/typeobject.c:5884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5885
      start: 5877
    functionDepth: 2
    functionLinenumber: 5877
    functionLinenumberEnd: 5885
    functionName: PyType_GetModuleState_DuringGC
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - PyType_GetModule_DuringGC
    - _PyModule_GetState
    linkageType: ''
    returnType: void
    signature: 'void *

      PyType_GetModuleState_DuringGC(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModule
      Src: /src/cpython/Objects/typeobject.c:5890,1
    - Dst: _PyModule_GetState
      Src: /src/cpython/Objects/typeobject.c:5894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5895
      start: 5887
    functionDepth: 2
    functionLinenumber: 5887
    functionLinenumberEnd: 5895
    functionName: PyType_GetModuleState
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 116
    functionsReached:
    - _PyModule_GetState
    - PyType_GetModule
    linkageType: ''
    returnType: void
    signature: 'void *

      PyType_GetModuleState(PyTypeObject *type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5903,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:5903,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5905,1
    - Dst: _PyModule_GetToken
      Src: /src/cpython/Objects/typeobject.c:5913,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:5919,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:5921,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5923,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5924,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:5924,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5926,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5926,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5929,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5929,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5931,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5933,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5934,1
    - Dst: _PyModule_GetToken
      Src: /src/cpython/Objects/typeobject.c:5941,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:5946,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - type
    - token
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 5902
        line_start: 5902
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (mro != NULL)
      pos:
        line_end: 5922
        line_start: 5922
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 5923
        line_start: 5923
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_GET_SIZE(mro) >= 1)
      pos:
        line_end: 5925
        line_start: 5925
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_GET_ITEM(mro, 0) == (PyObject *)type)
      pos:
        line_end: 5928
        line_start: 5928
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5949
      start: 5900
    functionDepth: 1
    functionLinenumber: 5900
    functionLinenumberEnd: 5949
    functionName: PyType_GetModuleByToken_DuringGC
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - _PyType_HasFeature
    - lookup_tp_mro
    - PyTuple_GET_ITEM
    - PyType_Check
    - BEGIN_TYPE_LOCK
    - _PyModule_GetToken
    - END_TYPE_LOCK
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModuleByToken_DuringGC(PyTypeObject *type, const void *token)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/typeobject.c:5954,1
    - Dst: PyType_GetModuleByDef
      Src: /src/cpython/Objects/typeobject.c:5954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - token
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5955
      start: 5951
    functionDepth: 1
    functionLinenumber: 5951
    functionLinenumberEnd: 5955
    functionName: PyType_GetModuleByToken
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_XNewRef
    - PyType_GetModuleByDef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModuleByToken(PyTypeObject *type, const void *token)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetModuleByToken_DuringGC
      Src: /src/cpython/Objects/typeobject.c:5960,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:5962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - def
    argTypes:
    - PyTypeObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5969
      start: 5957
    functionDepth: 2
    functionLinenumber: 5957
    functionLinenumberEnd: 5969
    functionName: PyType_GetModuleByDef
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 26
    functionsReached:
    - PyErr_Format
    - PyType_GetModuleByToken_DuringGC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GetModuleByDef(PyTypeObject *type, PyModuleDef *def)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:5975,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:5977,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:5979,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:5979,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:5980,1
    - Dst: get_base_by_token_recursive
      Src: /src/cpython/Objects/typeobject.c:5987,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:5987,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - bases
    - token
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (bases != NULL)
      pos:
        line_end: 5974
        line_start: 5974
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5994
      start: 5972
    functionDepth: 1
    functionLinenumber: 5972
    functionLinenumberEnd: 5994
    functionName: get_base_by_token_recursive
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyType_HasFeature
    - lookup_tp_bases
    - PyTuple_GET_ITEM
    - get_base_by_token_recursive
    - assert
    - PyTuple_GET_SIZE
    - _PyType_CAST
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      get_base_by_token_recursive(PyObject *bases, void *token)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:6005,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6009,1
    - Dst: get_base_by_token_recursive
      Src: /src/cpython/Objects/typeobject.c:6025,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:6025,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6035,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:6035,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6038,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:6038,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:6039,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:6041,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6042,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - type
    - token
    - result
    argTypes:
    - PyTypeObject*
    - void*
    - PyTypeObject**
    assertStmts:
    - condition: (PyTuple_GET_SIZE(mro) >= 1)
      pos:
        line_end: 6034
        line_start: 6034
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_GET_ITEM(mro, 0) == (PyObject *)type)
      pos:
        line_end: 6037
        line_start: 6037
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6049
      start: 5996
    functionDepth: 2
    functionLinenumber: 5996
    functionLinenumberEnd: 6049
    functionName: PyType_GetBaseByToken_DuringGC
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - _PyType_HasFeature
    - lookup_tp_bases
    - PyTuple_GET_ITEM
    - PyType_Check
    - get_base_by_token_recursive
    - assert
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int PyType_GetBaseByToken_DuringGC(PyTypeObject *type, void *token,
      PyTypeObject **result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6058,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:6062,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6063,1
    - Dst: PyType_GetBaseByToken_DuringGC
      Src: /src/cpython/Objects/typeobject.c:6068,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:6070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - type
    - token
    - result
    argTypes:
    - PyTypeObject*
    - void*
    - PyTypeObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6073
      start: 6051
    functionDepth: 3
    functionLinenumber: 6051
    functionLinenumberEnd: 6073
    functionName: PyType_GetBaseByToken
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 6
    functionsReached:
    - Py_INCREF
    - PyType_GetBaseByToken_DuringGC
    - PyErr_Format
    - PyType_Check
    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:6079,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/typeobject.c:6079,1
    - Dst: _align_up
      Src: /src/cpython/Objects/typeobject.c:6080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(obj, cls))
      pos:
        line_end: 6078
        line_start: 6078
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6081
      start: 6076
    functionDepth: 1
    functionLinenumber: 6076
    functionLinenumberEnd: 6081
    functionName: PyObject_GetTypeData_DuringGC
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 7
    functionsReached:
    - PyObject_TypeCheck
    - _align_up
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_GetTypeData_DuringGC(PyObject *obj, PyTypeObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetTypeData_DuringGC
      Src: /src/cpython/Objects/typeobject.c:6086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - cls
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6087
      start: 6083
    functionDepth: 2
    functionLinenumber: 6083
    functionLinenumberEnd: 6087
    functionName: PyObject_GetTypeData
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 11
    functionsReached:
    - PyObject_GetTypeData_DuringGC
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_GetTypeData(PyObject *obj, PyTypeObject *cls)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _align_up
      Src: /src/cpython/Objects/typeobject.c:6092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6097
      start: 6089
    functionDepth: 1
    functionLinenumber: 6089
    functionLinenumberEnd: 6097
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6102,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6102,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6104,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - raise
    argTypes:
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6111
      start: 6099
    functionDepth: 1
    functionLinenumber: 6099
    functionLinenumberEnd: 6111
    functionName: getitemdata
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: 'void *

      getitemdata(PyObject *obj, bool raise)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getitemdata
      Src: /src/cpython/Objects/typeobject.c:6116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6117
      start: 6113
    functionDepth: 2
    functionLinenumber: 6113
    functionLinenumberEnd: 6117
    functionName: PyObject_GetItemData_DuringGC
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 5
    functionsReached:
    - getitemdata
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_GetItemData_DuringGC(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getitemdata
      Src: /src/cpython/Objects/typeobject.c:6122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6123
      start: 6119
    functionDepth: 2
    functionLinenumber: 6119
    functionLinenumberEnd: 6123
    functionName: PyObject_GetItemData
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 6
    functionsReached:
    - getitemdata
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_GetItemData(PyObject *obj)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HashFast
      Src: /src/cpython/Objects/typeobject.c:6132,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:6134,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:6139,1
    - Dst: is_readying
      Src: /src/cpython/Objects/typeobject.c:6141,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:6142,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:6143,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:6146,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:6154,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:6158,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/typeobject.c:6159,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:6160,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:6162,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:6163,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:6163,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6164,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:6164,1
    - Dst: _Py_dict_lookup_threadsafe_stackref
      Src: /src/cpython/Objects/typeobject.c:6165,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:6168,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:6172,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:6178,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - type
    - name
    - out
    argTypes:
    - PyTypeObject*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (dict && PyDict_Check(dict))
      pos:
        line_end: 6163
        line_start: 6163
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6180
      start: 6129
    functionDepth: 7
    functionLinenumber: 6129
    functionLinenumberEnd: 6180
    functionName: find_name_in_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - PyTuple_GET_ITEM
    - _PyThreadState_PopCStackRef
    - assert
    - _Py_dict_lookup_threadsafe_stackref
    - is_readying
    - PyStackRef_IsNull
    - _PyObject_HashFast
    - lookup_tp_dict
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - PyErr_Clear
    - PyDict_Check
    - lookup_tp_mro
    - PyTuple_GET_SIZE
    - PyType_Ready
    - _PyType_CAST
    linkageType: ''
    returnType: int
    signature: int find_name_in_mro(PyTypeObject *type, PyObject *name, _PyStackRef
      *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/typeobject.c:6187,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/typeobject.c:6188,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Objects/typeobject.c:6191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6198
      start: 6184
    functionDepth: 1
    functionLinenumber: 6184
    functionLinenumberEnd: 6198
    functionName: is_dunder_name
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_KIND
    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:6203,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6204,1
    - Dst: PyUnstable_Unicode_GET_CACHED_HASH
      Src: /src/cpython/Objects/typeobject.c:6204,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6205,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Objects/typeobject.c:6209,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:6209,1
    - Dst: _Py_atomic_store_uint32_release
      Src: /src/cpython/Objects/typeobject.c:6215,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: (PyUnstable_Unicode_GET_CACHED_HASH(name) != -1)
      pos:
        line_end: 6203
        line_start: 6203
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6217
      start: 6200
    functionDepth: 1
    functionLinenumber: 6200
    functionLinenumberEnd: 6217
    functionName: update_cache
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_ptr_relaxed
    - _Py_atomic_store_uint32_release
    - assert
    - PyUnstable_Unicode_GET_CACHED_HASH
    - Py_NewRef
    - OBJECT_STAT_INC_COND
    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:6225,1
    - Dst: _PySeqLock_AbandonWrite
      Src: /src/cpython/Objects/typeobject.c:6232,1
    - Dst: update_cache
      Src: /src/cpython/Objects/typeobject.c:6236,1
    - Dst: _PySeqLock_UnlockWrite
      Src: /src/cpython/Objects/typeobject.c:6239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6241,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: 6242
      start: 6221
    functionDepth: 2
    functionLinenumber: 6221
    functionLinenumberEnd: 6242
    functionName: update_cache_gil_disabled
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PySeqLock_AbandonWrite
    - update_cache
    - _PySeqLock_LockWrite
    - Py_DECREF
    - _PySeqLock_UnlockWrite
    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:6250,1
    - Dst: _PySeqLock_AfterFork
      Src: /src/cpython/Objects/typeobject.c:6253,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:6256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6261
      start: 6246
    functionDepth: 2
    functionLinenumber: 6246
    functionLinenumberEnd: 6261
    functionName: _PyTypes_AfterFork
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - get_type_cache
    - _PySeqLock_AfterFork
    - Py_SETREF
    linkageType: ''
    returnType: void
    signature: void _PyTypes_AfterFork(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:6272,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:6276,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:6279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - type
    - name
    - version
    argTypes:
    - PyTypeObject*
    - PyObject*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6280
      start: 6268
    functionDepth: 1
    functionLinenumber: 6268
    functionLinenumberEnd: 6280
    functionName: _PyType_LookupRefAndVersion
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_IsNull
    - _PyType_LookupStackRefAndVersion
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_LookupRefAndVersion(PyTypeObject *type, PyObject *name, unsigned int
      *version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_UINT16_RELAXED
      Src: /src/cpython/Objects/typeobject.c:6286,1
    - Dst: MCACHE_CACHEABLE_NAME
      Src: /src/cpython/Objects/typeobject.c:6287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - type
    - name
    - version_tag
    argTypes:
    - PyTypeObject*
    - PyObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6288
      start: 6282
    functionDepth: 1
    functionLinenumber: 6282
    functionLinenumberEnd: 6288
    functionName: should_assign_version_tag
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - MCACHE_CACHEABLE_NAME
    - FT_ATOMIC_LOAD_UINT16_RELAXED
    linkageType: ''
    returnType: int
    signature: int should_assign_version_tag(PyTypeObject *type, PyObject *name, unsigned
      int version_tag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MCACHE_HASH_METHOD
      Src: /src/cpython/Objects/typeobject.c:6293,1
    - Dst: get_type_cache
      Src: /src/cpython/Objects/typeobject.c:6294,1
    - Dst: _PySeqLock_BeginRead
      Src: /src/cpython/Objects/typeobject.c:6299,1
    - Dst: _Py_atomic_load_uint32_acquire
      Src: /src/cpython/Objects/typeobject.c:6300,1
    - Dst: _Py_atomic_load_uint32_acquire
      Src: /src/cpython/Objects/typeobject.c:6301,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/typeobject.c:6303,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6304,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6304,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6305,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6305,1
    - Dst: _Py_TryXGetStackRef
      Src: /src/cpython/Objects/typeobject.c:6306,1
    - Dst: _PySeqLock_EndRead
      Src: /src/cpython/Objects/typeobject.c:6308,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Objects/typeobject.c:6311,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6325,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6326,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6326,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6327,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6327,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/typeobject.c:6328,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6332,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6332,1
    - Dst: OBJECT_STAT_INC_COND
      Src: /src/cpython/Objects/typeobject.c:6333,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6333,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6336,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:6336,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:6339,1
    - Dst: FT_ATOMIC_LOAD_UINT
      Src: /src/cpython/Objects/typeobject.c:6341,1
    - Dst: should_assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:6342,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6343,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:6344,1
    - Dst: find_name_in_mro
      Src: /src/cpython/Objects/typeobject.c:6346,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6347,1
    - Dst: find_name_in_mro
      Src: /src/cpython/Objects/typeobject.c:6350,1
    - Dst: MCACHE_CACHEABLE_NAME
      Src: /src/cpython/Objects/typeobject.c:6359,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:6363,1
    - Dst: update_cache_gil_disabled
      Src: /src/cpython/Objects/typeobject.c:6365,1
    - Dst: update_cache
      Src: /src/cpython/Objects/typeobject.c:6367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6368,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - type
    - name
    - out
    argTypes:
    - PyTypeObject*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 6335
        line_start: 6335
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_version_tag)
      pos:
        line_end: 6324
        line_start: 6324
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6371
      start: 6290
    functionDepth: 8
    functionLinenumber: 6290
    functionLinenumberEnd: 6371
    functionName: _PyType_LookupStackRefAndVersion
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 7
    functionsReached:
    - is_dunder_name
    - _Py_atomic_load_uint32_acquire
    - PyErr_Occurred
    - assert
    - MCACHE_CACHEABLE_NAME
    - OBJECT_STAT_INC_COND
    - PyStackRef_FromPyObjectNew
    - MCACHE_HASH_METHOD
    - _PySeqLock_BeginRead
    - assign_version_tag
    - _PySeqLock_EndRead
    - update_cache_gil_disabled
    - get_type_cache
    - _Py_TryXGetStackRef
    - _Py_atomic_load_ptr_relaxed
    - Py_DECREF
    - FT_ATOMIC_LOAD_UINT
    - should_assign_version_tag
    - BEGIN_TYPE_LOCK
    - _PyInterpreterState_GET
    - END_TYPE_LOCK
    - update_cache
    - find_name_in_mro
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    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:6379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6380
      start: 6376
    functionDepth: 2
    functionLinenumber: 6376
    functionLinenumberEnd: 6380
    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:6387,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6390
      start: 6384
    functionDepth: 2
    functionLinenumber: 6384
    functionLinenumberEnd: 6390
    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:6400,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:6403,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/typeobject.c:6406,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - type
    - init
    - tp_version
    argTypes:
    - PyHeapTypeObject*
    - PyObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6410
      start: 6392
    functionDepth: 1
    functionLinenumber: 6392
    functionLinenumberEnd: 6410
    functionName: _PyType_CacheInitForSpecialization
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - END_TYPE_LOCK
    - _PyObject_HasDeferredRefcount
    - BEGIN_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:6419,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Objects/typeobject.c:6424,1
    - Dst: _PyFunction_IsVersionValid
      Src: /src/cpython/Objects/typeobject.c:6425,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:6427,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/typeobject.c:6430,1
    - Dst: FT_ATOMIC_STORE_UINT32_RELAXED
      Src: /src/cpython/Objects/typeobject.c:6431,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ht
    - descriptor
    - tp_version
    argTypes:
    - PyHeapTypeObject*
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6435
      start: 6412
    functionDepth: 1
    functionLinenumber: 6412
    functionLinenumberEnd: 6435
    functionName: _PyType_CacheGetItemForSpecialization
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_HasDeferredRefcount
    - _PyFunction_GetVersionForCurrentState
    - FT_ATOMIC_STORE_PTR_RELEASE
    - BEGIN_TYPE_LOCK
    - END_TYPE_LOCK
    - FT_ATOMIC_STORE_UINT32_RELAXED
    - _PyFunction_IsVersionValid
    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:6442,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:6445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - mask
    - flags
    argTypes:
    - PyTypeObject*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6447
      start: 6437
    functionDepth: 3
    functionLinenumber: 6437
    functionLinenumberEnd: 6447
    functionName: _PyType_SetFlags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - types_start_world
    - types_stop_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:6453,1
    - Dst: validate
      Src: /src/cpython/Objects/typeobject.c:6454,1
    - Dst: assign_version_tag
      Src: /src/cpython/Objects/typeobject.c:6456,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:6456,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6463,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: 6465
      start: 6449
    functionDepth: 3
    functionLinenumber: 6449
    functionLinenumberEnd: 6465
    functionName: _PyType_Validate
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - BEGIN_TYPE_LOCK
    - _PyInterpreterState_GET
    - END_TYPE_LOCK
    - assign_version_tag
    - validate
    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:6470,1
    - Dst: type_set_flags_with_mask
      Src: /src/cpython/Objects/typeobject.c:6476,1
    - Dst: _PyType_GetSubclasses
      Src: /src/cpython/Objects/typeobject.c:6478,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:6483,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:6484,1
    - Dst: set_flags_recursive
      Src: /src/cpython/Objects/typeobject.c:6485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6487,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - mask
    - flags
    argTypes:
    - PyTypeObject*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6488
      start: 6467
    functionDepth: 6
    functionLinenumber: 6467
    functionLinenumberEnd: 6488
    functionName: set_flags_recursive
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - set_flags_recursive
    - _PyType_GetSubclasses
    - PyType_HasFeature
    - type_set_flags_with_mask
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_GET_SIZE
    linkageType: ''
    returnType: void
    signature: void set_flags_recursive(PyTypeObject *self, unsigned long mask, unsigned
      long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6493,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6499,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:6502,1
    - Dst: type_lock_prevent_release
      Src: /src/cpython/Objects/typeobject.c:6506,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:6507,1
    - Dst: set_flags_recursive
      Src: /src/cpython/Objects/typeobject.c:6508,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:6509,1
    - Dst: type_lock_allow_release
      Src: /src/cpython/Objects/typeobject.c:6510,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - mask
    - flags
    argTypes:
    - PyTypeObject*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6512
      start: 6490
    functionDepth: 7
    functionLinenumber: 6490
    functionLinenumberEnd: 6512
    functionName: _PyType_SetFlagsRecursive
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - set_flags_recursive
    - type_lock_allow_release
    - PyType_HasFeature
    - BEGIN_TYPE_LOCK
    - types_start_world
    - END_TYPE_LOCK
    - type_modified_unlocked
    - type_lock_prevent_release
    - types_stop_world
    linkageType: ''
    returnType: void
    signature: void _PyType_SetFlagsRecursive(PyTypeObject *self, unsigned long mask,
      unsigned long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_type_getattro_stackref
      Src: /src/cpython/Objects/typeobject.c:6529,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:6530,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:6533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - name
    - suppress_missing_attribute
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6534
      start: 6526
    functionDepth: 1
    functionLinenumber: 6526
    functionLinenumberEnd: 6534
    functionName: _Py_type_getattro_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _Py_type_getattro_stackref
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_IsNull
    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:6541,1
    - Dst: _Py_type_getattro_impl
      Src: /src/cpython/Objects/typeobject.c:6542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6543
      start: 6538
    functionDepth: 2
    functionLinenumber: 6538
    functionLinenumberEnd: 6543
    functionName: _Py_type_getattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject_CAST
    - _Py_type_getattro_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_type_getattro(PyObject *tp, PyObject *name)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6559,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:6562,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6563,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6565,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/typeobject.c:6570,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:6571,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:6577,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:6578,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:6579,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:6580,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:6583,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:6585,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:6586,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6587,1
    - Dst: PyDescr_IsData
      Src: /src/cpython/Objects/typeobject.c:6589,1
    - Dst: meta_get
      Src: /src/cpython/Objects/typeobject.c:6594,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:6597,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:6605,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:6606,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:6608,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6609,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Objects/typeobject.c:6612,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6617,1
    - Dst: _PyStaticMethod_GetFunc
      Src: /src/cpython/Objects/typeobject.c:6618,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Objects/typeobject.c:6620,1
    - Dst: local_get
      Src: /src/cpython/Objects/typeobject.c:6626,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:6629,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:6643,1
    - Dst: meta_get
      Src: /src/cpython/Objects/typeobject.c:6644,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Objects/typeobject.c:6647,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:6653,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6661,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:6671,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:6672,1
    - Dst: _PyThreadState_PopCStackRefSteal
      Src: /src/cpython/Objects/typeobject.c:6673,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 3
    argNames:
    - type
    - name
    - suppress_missing_attribute
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6674
      start: 6555
    functionDepth: 9
    functionLinenumber: 6555
    functionLinenumberEnd: 6674
    functionName: _Py_type_getattro_stackref
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - PyStackRef_CLEAR
    - _PyType_LookupStackRefAndVersion
    - _PyThreadState_GET
    - meta_get
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _PyThreadState_PopCStackRef
    - _PyStaticMethod_GetFunc
    - PyUnicode_Check
    - _PyThreadState_PushCStackRef
    - PyDescr_IsData
    - PyStackRef_FromPyObjectSteal
    - _PyThreadState_PopCStackRefSteal
    - PyStackRef_IsNull
    - _PyType_IsReady
    - local_get
    - PyErr_Format
    - PyStackRef_AsPyObjectBorrow
    - PyType_Ready
    linkageType: ''
    returnType: _PyStackRef
    signature: "_PyStackRef _Py_type_getattro_stackref(PyTypeObject *type, PyObject
      *name,\n                           int *suppress_missing_attribute)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_GetItemRef_Unicode_LockHeld
      Src: /src/cpython/Objects/typeobject.c:6688,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:6697,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Objects/typeobject.c:6699,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6700,1
    - Dst: _PyObject_SetAttributeErrorContext
      Src: /src/cpython/Objects/typeobject.c:6703,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: 6708
      start: 6678
    functionDepth: 10
    functionLinenumber: 6678
    functionLinenumberEnd: 6708
    functionName: type_update_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItem_LockHeld
    - _PyObject_SetAttributeErrorContext
    - type_modified_unlocked
    - PyErr_Format
    - _PyDict_GetItemRef_Unicode_LockHeld
    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:6715,1
    - Dst: update_slot
      Src: /src/cpython/Objects/typeobject.c:6719,1
    - Dst: apply_type_slot_updates
      Src: /src/cpython/Objects/typeobject.c:6723,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:6724,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6726,1
    - Dst: update_slot
      Src: /src/cpython/Objects/typeobject.c:6729,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: 6714
        line_start: 6714
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (chunk.prev == NULL)
      pos:
        line_end: 6725
        line_start: 6725
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6732
      start: 6710
    functionDepth: 5
    functionLinenumber: 6710
    functionLinenumberEnd: 6732
    functionName: update_slot_after_setattr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - apply_type_slot_updates
    - update_slot
    - ASSERT_TYPE_LOCK_HELD
    - assert
    linkageType: ''
    returnType: int
    signature: int update_slot_after_setattr(PyTypeObject *type, PyObject *name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:6737,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6740,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:6746,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:6747,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6749,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/typeobject.c:6753,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:6754,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Objects/typeobject.c:6757,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/typeobject.c:6761,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:6762,1
    - Dst: _PyUnicode_InternMortal
      Src: /src/cpython/Objects/typeobject.c:6763,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/typeobject.c:6764,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:6765,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6767,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6772,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6773,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6773,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6774,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:6774,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/typeobject.c:6781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6781,1
    - Dst: PyUnstable_Object_EnableDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:6783,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:6788,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:6790,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:6792,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6802,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:6805,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6807,1
    - Dst: BEGIN_TYPE_DICT_LOCK
      Src: /src/cpython/Objects/typeobject.c:6814,1
    - Dst: type_update_dict
      Src: /src/cpython/Objects/typeobject.c:6815,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6816,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:6816,1
    - Dst: is_dunder_name
      Src: /src/cpython/Objects/typeobject.c:6818,1
    - Dst: has_slotdef
      Src: /src/cpython/Objects/typeobject.c:6818,1
    - Dst: update_slot_after_setattr
      Src: /src/cpython/Objects/typeobject.c:6820,1
    - Dst: END_TYPE_DICT_LOCK
      Src: /src/cpython/Objects/typeobject.c:6823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6826,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6827,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:6828,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyType_HasFeature(metatype, Py_TPFLAGS_MANAGED_DICT))
      pos:
        line_end: 6773
        line_start: 6773
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!_PyType_HasFeature(metatype, Py_TPFLAGS_INLINE_VALUES))
      pos:
        line_end: 6772
        line_start: 6772
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 6815
        line_start: 6815
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6830
      start: 6734
    functionDepth: 11
    functionLinenumber: 6734
    functionLinenumberEnd: 6830
    functionName: type_setattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Object_EnableDeferredRefcount
    - PyFunction_Check
    - is_dunder_name
    - BEGIN_TYPE_DICT_LOCK
    - _PyType_LookupRef
    - assert
    - Py_TYPE
    - _PyUnicode_Copy
    - _PyType_CheckConsistency
    - update_slot_after_setattr
    - PyUnicode_Check
    - has_slotdef
    - Py_XDECREF
    - f
    - _PyType_HasFeature
    - Py_INCREF
    - PyErr_SetString
    - PyTypeObject_CAST
    - Py_DECREF
    - END_TYPE_DICT_LOCK
    - _PyUnicode_InternMortal
    - PyDict_New
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_CheckExact
    - BEGIN_TYPE_LOCK
    - type_update_dict
    - _PyInterpreterState_GET
    - END_TYPE_LOCK
    - PyErr_Format
    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:6836,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/typeobject.c:6838,1
    - Dst: remove_all_subclasses
      Src: /src/cpython/Objects/typeobject.c:6839,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/typeobject.c:6840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6842
      start: 6833
    functionDepth: 1
    functionLinenumber: 6833
    functionLinenumberEnd: 6842
    functionName: type_dealloc_common
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_bases
    - PyErr_GetRaisedException
    - remove_all_subclasses
    - PyErr_SetRaisedException
    linkageType: ''
    returnType: void
    signature: void type_dealloc_common(PyTypeObject *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:6848,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:6877,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:6878,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:6884,1
    - Dst: clear_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:6890,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: 6882
        line_start: 6882
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6891
      start: 6845
    functionDepth: 5
    functionLinenumber: 6845
    functionLinenumberEnd: 6891
    functionName: clear_static_tp_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_subclasses
    - clear_tp_subclasses
    - PyDict_Next
    - assert
    - Py_DECREF
    - type_from_ref
    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:6898,1
    - Dst: clear_tp_dict
      Src: /src/cpython/Objects/typeobject.c:6900,1
    - Dst: clear_tp_bases
      Src: /src/cpython/Objects/typeobject.c:6901,1
    - Dst: clear_tp_mro
      Src: /src/cpython/Objects/typeobject.c:6902,1
    - Dst: clear_static_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:6903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - interp
    - type
    - isbuiltin
    - final
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6904
      start: 6893
    functionDepth: 6
    functionLinenumber: 6893
    functionLinenumberEnd: 6904
    functionName: clear_static_type_objects
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - clear_static_tp_subclasses
    - clear_tp_dict
    - Py_CLEAR
    - clear_tp_bases
    - clear_tp_mro
    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:6911,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6912,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/typeobject.c:6912,1
    - Dst: type_dealloc_common
      Src: /src/cpython/Objects/typeobject.c:6914,1
    - Dst: clear_static_type_objects
      Src: /src/cpython/Objects/typeobject.c:6916,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6919,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:6920,1
    - Dst: set_version_unlocked
      Src: /src/cpython/Objects/typeobject.c:6921,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:6922,1
    - Dst: _PyStaticType_ClearWeakRefs
      Src: /src/cpython/Objects/typeobject.c:6925,1
    - Dst: managed_static_type_state_clear
      Src: /src/cpython/Objects/typeobject.c:6926,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: 6910
        line_start: 6910
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_Py_IsImmortal((PyObject *)type))
      pos:
        line_end: 6911
        line_start: 6911
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6928
      start: 6907
    functionDepth: 7
    functionLinenumber: 6907
    functionLinenumberEnd: 6928
    functionName: fini_static_type
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - clear_static_type_objects
    - type_dealloc_common
    - BEGIN_TYPE_LOCK
    - set_version_unlocked
    - END_TYPE_LOCK
    - managed_static_type_state_clear
    - _Py_IsImmortal
    - assert
    - type_clear_flags
    - _PyStaticType_ClearWeakRefs
    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:6938,1
    - Dst: fini_static_type
      Src: /src/cpython/Objects/typeobject.c:6943,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6945
      start: 6930
    functionDepth: 8
    functionLinenumber: 6930
    functionLinenumberEnd: 6945
    functionName: _PyTypes_FiniExtTypes
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - fini_static_type
    - static_ext_type_lookup
    linkageType: ''
    returnType: void
    signature: void _PyTypes_FiniExtTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fini_static_type
      Src: /src/cpython/Objects/typeobject.c:6950,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/typeobject.c:6950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - type
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6951
      start: 6947
    functionDepth: 8
    functionLinenumber: 6947
    functionLinenumberEnd: 6951
    functionName: _PyStaticType_FiniBuiltin
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - fini_static_type
    - _Py_IsMainInterpreter
    linkageType: ''
    returnType: void
    signature: void _PyStaticType_FiniBuiltin(PyInterpreterState *interp, PyTypeObject
      *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:6957,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:6958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6959
      start: 6954
    functionDepth: 1
    functionLinenumber: 6954
    functionLinenumberEnd: 6959
    functionName: _PyTypes_FiniCachedDescriptors
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyTypes_FiniCachedDescriptors(PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:6965,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:6968,1
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/typeobject.c:6974,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:6975,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:6979,1
    - Dst: cb
      Src: /src/cpython/Objects/typeobject.c:6982,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:6983,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/typeobject.c:6992,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:6997,1
    - Dst: type_dealloc_common
      Src: /src/cpython/Objects/typeobject.c:6998,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7001,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/typeobject.c:7001,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Objects/typeobject.c:7002,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7004,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7005,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7006,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7007,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7008,1
    - Dst: clear_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:7009,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:7014,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7017,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7018,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7019,1
    - Dst: _PyDictKeys_DecRef
      Src: /src/cpython/Objects/typeobject.c:7021,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7023,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/typeobject.c:7024,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7026,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7029,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(type) == 0)
      pos:
        line_end: 7000
        line_start: 7000
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (i < TYPE_MAX_WATCHERS)
      pos:
        line_end: 6978
        line_start: 6978
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (et->unique_id == _Py_INVALID_UNIQUE_ID)
      pos:
        line_end: 7025
        line_start: 7025
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7030
      start: 6962
    functionDepth: 5
    functionLinenumber: 6962
    functionLinenumberEnd: 7030
    functionName: type_dealloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - cb
    - type_dealloc_common
    - _PyObject_ResurrectEnd
    - PyObject_ClearWeakRefs
    - clear_tp_subclasses
    - _PyInterpreterState_GET
    - _PyObject_ResurrectStart
    - Py_REFCNT
    - PyTypeObject_CAST
    - assert
    - Py_XDECREF
    - _PyObject_GC_UNTRACK
    - PyMem_Free
    - PyErr_FormatUnraisable
    - _PyDictKeys_DecRef
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void type_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetSubclasses
      Src: /src/cpython/Objects/typeobject.c:7043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7044
      start: 7039
    functionDepth: 6
    functionLinenumber: 7039
    functionLinenumberEnd: 7044
    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:7050,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: 7051
      start: 7046
    functionDepth: 11
    functionLinenumber: 7046
    functionLinenumberEnd: 7051
    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:7068,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:7068,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7069,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:7072,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7072,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/typeobject.c:7076,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7077,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:7083,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7083,1
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/typeobject.c:7089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7091,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/typeobject.c:7097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7099,1
    - Dst: merge_class_dict
      Src: /src/cpython/Objects/typeobject.c:7102,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - dict
    - aclass
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 7067
        line_start: 7067
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (aclass)
      pos:
        line_end: 7068
        line_start: 7068
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7113
      start: 7062
    functionDepth: 3
    functionLinenumber: 7062
    functionLinenumberEnd: 7113
    functionName: merge_class_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDict_Update
    - PySequence_GetItem
    - PyObject_GetOptionalAttr
    - PyDict_Check
    - PySequence_Size
    - assert
    - Py_DECREF
    - merge_class_dict
    - _Py_ID
    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:7130,1
    - Dst: merge_class_dict
      Src: /src/cpython/Objects/typeobject.c:7132,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/typeobject.c:7133,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7137
      start: 7125
    functionDepth: 11
    functionLinenumber: 7125
    functionLinenumberEnd: 7137
    functionName: type___dir___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - merge_class_dict
    - PyDict_Keys
    - Py_XDECREF
    - 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:7154,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/typeobject.c:7159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7160
      start: 7145
    functionDepth: 2
    functionLinenumber: 7145
    functionLinenumberEnd: 7160
    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:7185,1
    - Dst: sprintf
      Src: /src/cpython/Objects/typeobject.c:7191,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Objects/typeobject.c:7193,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:7196,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:7197,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:7198,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:7199,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:7200,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:7201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7211
      start: 7182
    functionDepth: 1
    functionLinenumber: 7182
    functionLinenumberEnd: 7211
    functionName: type_traverse
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - sprintf
    - PyTypeObject_CAST
    - _PyObject_ASSERT_FAILED_MSG
    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:7216,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:7220,1
    - Dst: PyType_Modified
      Src: /src/cpython/Objects/typeobject.c:7251,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:7252,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Objects/typeobject.c:7254,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7256,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:7258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7261
      start: 7213
    functionDepth: 10
    functionLinenumber: 7213
    functionLinenumberEnd: 7261
    functionName: type_clear
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - PyDict_Clear
    - lookup_tp_dict
    - Py_CLEAR
    - PyType_Modified
    - PyTypeObject_CAST
    linkageType: ''
    returnType: int
    signature: int type_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject_CAST
      Src: /src/cpython/Objects/typeobject.c:7266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7268
      start: 7263
    functionDepth: 1
    functionLinenumber: 7263
    functionLinenumberEnd: 7268
    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:7366,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:7367,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7368
      start: 7363
    functionDepth: 1
    functionLinenumber: 7363
    functionLinenumberEnd: 7368
    functionName: excess_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: int excess_args(PyObject *args, PyObject *kwds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7373,1
    - Dst: excess_args
      Src: /src/cpython/Objects/typeobject.c:7374,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:7376,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7388
      start: 7370
    functionDepth: 2
    functionLinenumber: 7370
    functionLinenumberEnd: 7388
    functionName: object_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - excess_args
    - PyErr_SetString
    - PyErr_Format
    - Py_TYPE
    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:7393,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:7395,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7400,1
    - Dst: type_abstractmethods
      Src: /src/cpython/Objects/typeobject.c:7415,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/typeobject.c:7418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7419,1
    - Dst: PyList_Sort
      Src: /src/cpython/Objects/typeobject.c:7422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7423,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:7426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7428,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Objects/typeobject.c:7431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7434,1
    - Dst: PyObject_Length
      Src: /src/cpython/Objects/typeobject.c:7437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7440,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7450,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/typeobject.c:7453,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7458
      start: 7390
    functionDepth: 10
    functionLinenumber: 7390
    functionLinenumberEnd: 7458
    functionName: object_new
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PySequence_List
    - PyErr_SetString
    - type_abstractmethods
    - PyUnicode_Join
    - PyObject_Length
    - PyList_Sort
    - PyErr_Format
    - Py_DECREF
    - excess_args
    - PyTypeObject*::tp_alloc
    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:7463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7464
      start: 7460
    functionDepth: 0
    functionLinenumber: 7460
    functionLinenumberEnd: 7464
    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:7472,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:7473,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:7475,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:7476,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:7477,1
    - Dst: type_qualname
      Src: /src/cpython/Objects/typeobject.c:7479,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7481,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:7484,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7484,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:7485,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:7487,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:7489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7492
      start: 7466
    functionDepth: 11
    functionLinenumber: 7466
    functionLinenumberEnd: 7492
    functionName: object_repr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_Equal
    - type_qualname
    - Py_SETREF
    - PyUnicode_Check
    - type_module
    - PyUnicode_FromFormat
    - PyErr_Clear
    - Py_XDECREF
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7499,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:7502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7503
      start: 7494
    functionDepth: 0
    functionLinenumber: 7494
    functionLinenumberEnd: 7503
    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:7516,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7522,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7523,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7526,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:7528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7529,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7534,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7536,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7542,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7547
      start: 7505
    functionDepth: 2
    functionLinenumber: 7505
    functionLinenumberEnd: 7547
    functionName: object_richcompare
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_IsTrue
    - Py_NewRef
    - Py_TYPE
    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:7552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7553
      start: 7549
    functionDepth: 3
    functionLinenumber: 7549
    functionLinenumberEnd: 7553
    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:7558,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7559
      start: 7555
    functionDepth: 0
    functionLinenumber: 7555
    functionLinenumberEnd: 7559
    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: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7570
      start: 7561
    functionDepth: 0
    functionLinenumber: 7561
    functionLinenumberEnd: 7570
    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:7579,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/typeobject.c:7594,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7596,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (base == b->tp_base)
      pos:
        line_end: 7578
        line_start: 7578
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7599
      start: 7572
    functionDepth: 4
    functionLinenumber: 7572
    functionLinenumberEnd: 7599
    functionName: same_slots_added
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyObject_RichCompareBool
    - assert
    linkageType: ''
    returnType: int
    signature: int same_slots_added(PyTypeObject *a, PyTypeObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - setclass
    - origto
    - newto
    - flags
    argTypes:
    - int
    - PyTypeObject*
    - PyTypeObject*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7610
      start: 7601
    functionDepth: 0
    functionLinenumber: 7601
    functionLinenumberEnd: 7610
    functionName: compatible_flags
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compatible_flags(int setclass, PyTypeObject *origto, PyTypeObject
      *newto, unsigned long flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7620,1
    - Dst: compatible_flags
      Src: /src/cpython/Objects/typeobject.c:7628,1
    - Dst: compatible_with_tp_base
      Src: /src/cpython/Objects/typeobject.c:7662,1
    - Dst: compatible_with_tp_base
      Src: /src/cpython/Objects/typeobject.c:7664,1
    - Dst: same_slots_added
      Src: /src/cpython/Objects/typeobject.c:7668,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7673,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 4
    argNames:
    - origto
    - newto
    - attr
    - setclass
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7680
      start: 7612
    functionDepth: 5
    functionLinenumber: 7612
    functionLinenumberEnd: 7680
    functionName: compatible_for_assignment
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - same_slots_added
    - compatible_flags
    - PyErr_Format
    - compatible_with_tp_base
    linkageType: ''
    returnType: int
    signature: "int compatible_for_assignment(PyTypeObject *origto, PyTypeObject *newto,\n
      \                         const char *attr, int setclass)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7687,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:7738,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:7739,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:7740,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:7741,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7742,1
    - Dst: compatible_for_assignment
      Src: /src/cpython/Objects/typeobject.c:7748,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/typeobject.c:7752,1
    - Dst: _PyObject_MaterializeManagedDict_LockHeld
      Src: /src/cpython/Objects/typeobject.c:7754,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7760,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Objects/typeobject.c:7760,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/typeobject.c:7763,1
    - Dst: _PyDict_DetachFromObject
      Src: /src/cpython/Objects/typeobject.c:7764,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/typeobject.c:7765,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:7772,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Objects/typeobject.c:7775,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - self
    - newto
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (_PyObject_GetManagedDict(self) == dict)
      pos:
        line_end: 7759
        line_start: 7759
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7782
      start: 7684
    functionDepth: 12
    functionLinenumber: 7684
    functionLinenumberEnd: 7782
    functionName: object_set_class_world_stopped
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyType_IsSubtype
    - Py_SET_TYPE
    - Py_INCREF
    - _PyObject_GetManagedDict
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDict_DetachFromObject
    - compatible_for_assignment
    - PyErr_Format
    - assert
    - Py_TYPE
    - _PyObject_MaterializeManagedDict_LockHeld
    linkageType: ''
    returnType: int
    signature: int object_set_class_world_stopped(PyObject *self, PyTypeObject *newto)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:7789,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:7793,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7794,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7796,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/typeobject.c:7801,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/typeobject.c:7806,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:7808,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7810,1
    - Dst: object_set_class_world_stopped
      Src: /src/cpython/Objects/typeobject.c:7811,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:7813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7817,1
    - Dst: RARE_EVENT_INC
      Src: /src/cpython/Objects/typeobject.c:7820,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7824
      start: 7784
    functionDepth: 13
    functionLinenumber: 7784
    functionLinenumberEnd: 7824
    functionName: object_set_class
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PySys_Audit
    - PyErr_SetString
    - types_start_world
    - _PyObject_IsUniquelyReferenced
    - RARE_EVENT_INC
    - object_set_class_world_stopped
    - PyErr_Format
    - Py_DECREF
    - types_stop_world
    - 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:7848,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7848,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:7852,1
    - Dst: PyImport_Import
      Src: /src/cpython/Objects/typeobject.c:7855,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7856
      start: 7840
    functionDepth: 1
    functionLinenumber: 7840
    functionLinenumberEnd: 7856
    functionName: import_copyreg
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyImport_GetModule
    - PyImport_Import
    - PyErr_Occurred
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_copyreg(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7864,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:7864,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:7867,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:7868,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7868,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:7872,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7873,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7877,1
    - Dst: import_copyreg
      Src: /src/cpython/Objects/typeobject.c:7884,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Objects/typeobject.c:7891,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:7892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7893,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:7897,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:7898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7900,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check(cls))
      pos:
        line_end: 7863
        line_start: 7863
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7905
      start: 7858
    functionDepth: 8
    functionLinenumber: 7858
    functionLinenumberEnd: 7905
    functionName: _PyType_GetSlotNames
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - import_copyreg
    - PyObject_CallMethodOneArg
    - PyErr_SetString
    - lookup_tp_dict
    - PyList_Check
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetSlotNames(PyTypeObject *cls)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7913,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7914,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7916,1
    - Dst: _PyObject_IsInstanceDictEmpty
      Src: /src/cpython/Objects/typeobject.c:7920,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7921,1
    - Dst: PyObject_GenericGetDict
      Src: /src/cpython/Objects/typeobject.c:7924,1
    - Dst: _PyType_GetSlotNames
      Src: /src/cpython/Objects/typeobject.c:7930,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7932,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:7936,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:7936,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7939,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7940,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7944,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7948,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7952,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7953,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:7955,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7960,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:7964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7966,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7967,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7971,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:7975,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:7975,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:7976,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7981,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:7985,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7986,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:7987,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:7995,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:7996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8006,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:8013,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/typeobject.c:8016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8020,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8027,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: 7935
        line_start: 7935
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 8030
      start: 7907
    functionDepth: 15
    functionLinenumber: 7907
    functionLinenumberEnd: 8030
    functionName: object_getstate_default
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetDict
    - _PyObject_IsInstanceDictEmpty
    - _PyType_GetSlotNames
    - PyList_GET_ITEM
    - _PyTuple_FromPair
    - PyObject_GetOptionalAttr
    - PyDict_SetItem
    - PyList_Check
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyList_GET_SIZE
    - Py_NewRef
    - Py_TYPE
    - PyDict_New
    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:8037,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8037,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Objects/typeobject.c:8041,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Objects/typeobject.c:8042,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Objects/typeobject.c:8043,1
    - Dst: object_getstate_default
      Src: /src/cpython/Objects/typeobject.c:8046,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:8049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - required
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8053
      start: 8032
    functionDepth: 16
    functionLinenumber: 8032
    functionLinenumberEnd: 8053
    functionName: object_getstate
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GET_FUNCTION
    - PyObject_GetAttr
    - PyCFunction_GET_SELF
    - PyCFunction_Check
    - Py_DECREF
    - object_getstate_default
    - _PyObject_CallNoArgs
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_getstate(PyObject *obj, int required)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object_getstate
      Src: /src/cpython/Objects/typeobject.c:8058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8059
      start: 8055
    functionDepth: 17
    functionLinenumber: 8055
    functionLinenumberEnd: 8059
    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:8071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8072
      start: 8067
    functionDepth: 16
    functionLinenumber: 8067
    functionLinenumberEnd: 8072
    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:8080,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/typeobject.c:8086,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8086,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:8088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8089,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:8093,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8094,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8097,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:8100,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8101,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:8103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8104,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:8107,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:8107,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:8108,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:8108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8109,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:8112,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8113,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8116,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:8117,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:8118,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:8121,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8122,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8125,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:8126,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:8127,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:8131,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/typeobject.c:8137,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8137,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:8139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8140,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:8144,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8145,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8147,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:8148,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:8153,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 3
    argNames:
    - obj
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8164
      start: 8074
    functionDepth: 2
    functionLinenumber: 8074
    functionLinenumberEnd: 8164
    functionName: _PyObject_GetNewArguments
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyObject_LookupSpecial
    - PyErr_BadInternalCall
    - Py_CLEAR
    - PyDict_Check
    - PyTuple_Check
    - PyErr_Format
    - Py_DECREF
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyObject_CallNoArgs
    - Py_NewRef
    - Py_TYPE
    - _Py_ID
    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:8171,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:8175,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:8176,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/typeobject.c:8179,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:8184,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:8185,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/typeobject.c:8188,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8188,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:8190,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/typeobject.c:8193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8194,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:8196,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8201,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: 8200
        line_start: 8200
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 8204
      start: 8166
    functionDepth: 3
    functionLinenumber: 8166
    functionLinenumberEnd: 8204
    functionName: _PyObject_GetItemsIter
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyObject_GetIter
    - PyList_Check
    - PyDict_Check
    - Py_CLEAR
    - assert
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - Py_NewRef
    - _Py_ID
    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:8215,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8216,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8218,1
    - Dst: _PyObject_GetNewArguments
      Src: /src/cpython/Objects/typeobject.c:8221,1
    - Dst: import_copyreg
      Src: /src/cpython/Objects/typeobject.c:8224,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8226,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8227,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:8231,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8235,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:8236,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8237,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8239,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:8242,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:8243,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8246,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8249,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:8250,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:8250,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:8252,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:8253,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:8253,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8255,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:8258,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8261,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8262,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:8265,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8276,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/typeobject.c:8277,1
    - Dst: object_getstate
      Src: /src/cpython/Objects/typeobject.c:8281,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/typeobject.c:8281,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:8281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8284,1
    - Dst: _PyObject_GetItemsIter
      Src: /src/cpython/Objects/typeobject.c:8287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8290,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:8294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8299,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 76
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8301
      start: 8206
    functionDepth: 17
    functionLinenumber: 8206
    functionLinenumberEnd: 8301
    functionName: reduce_newobj
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - import_copyreg
    - PyTuple_GET_SIZE
    - Py_TYPE
    - object_getstate
    - Py_XDECREF
    - PyDict_GET_SIZE
    - _PyObject_GetItemsIter
    - _PyObject_GetNewArguments
    - PyErr_BadInternalCall
    - PyList_Check
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    - PyObject_GetAttr
    - PyDict_Check
    - PyTuple_Pack
    - PyErr_Format
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reduce_newobj(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reduce_newobj
      Src: /src/cpython/Objects/typeobject.c:8324,1
    - Dst: import_copyreg
      Src: /src/cpython/Objects/typeobject.c:8326,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/typeobject.c:8330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8334
      start: 8318
    functionDepth: 18
    functionLinenumber: 8318
    functionLinenumberEnd: 8334
    functionName: _common_reduce
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - reduce_newobj
    - PyObject_CallMethod
    - import_copyreg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _common_reduce(PyObject *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _common_reduce
      Src: /src/cpython/Objects/typeobject.c:8346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8347
      start: 8342
    functionDepth: 0
    functionLinenumber: 8342
    functionLinenumberEnd: 8347
    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:8363,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8363,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8370,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:8371,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8373,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/typeobject.c:8377,1
    - Dst: _Py_INTERP_CACHED_OBJECT
      Src: /src/cpython/Objects/typeobject.c:8378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8379,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/typeobject.c:8381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8386,1
    - Dst: _common_reduce
      Src: /src/cpython/Objects/typeobject.c:8389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8390
      start: 8358
    functionDepth: 3
    functionLinenumber: 8358
    functionLinenumberEnd: 8390
    functionName: object___reduce_ex___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_INTERP_CACHED_OBJECT
    - _common_reduce
    - PyObject_GetAttr
    - PyObject_GetOptionalAttr
    - _PyInterpreterState_GET
    - Py_DECREF
    - _PyObject_CallNoArgs
    - Py_TYPE
    - _Py_ID
    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: 8396
      start: 8392
    functionDepth: 0
    functionLinenumber: 8392
    functionLinenumberEnd: 8396
    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: 8410
      start: 8406
    functionDepth: 0
    functionLinenumber: 8406
    functionLinenumberEnd: 8410
    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:8435,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:8436,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8438,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/typeobject.c:8441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8442
      start: 8429
    functionDepth: 4
    functionLinenumber: 8429
    functionLinenumberEnd: 8442
    functionName: object___format___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - Py_TYPE
    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:8457,1
    - Dst: _PyVarObject_CAST
      Src: /src/cpython/Objects/typeobject.c:8461,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:8463,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/typeobject.c:8465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8466
      start: 8450
    functionDepth: 1
    functionLinenumber: 8450
    functionLinenumberEnd: 8466
    functionName: object___sizeof___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyVarObject_CAST
    - PyLong_FromSsize_t
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___sizeof___impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:8486,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8486,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:8490,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:8492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8493,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:8494,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/typeobject.c:8498,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:8499,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:8506,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8506,1
    - Dst: merge_class_dict
      Src: /src/cpython/Objects/typeobject.c:8511,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/typeobject.c:8514,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8517,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8518,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8520
      start: 8477
    functionDepth: 13
    functionLinenumber: 8477
    functionLinenumberEnd: 8520
    functionName: object___dir___impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Keys
    - Py_SETREF
    - PyObject_GetOptionalAttr
    - PyDict_Copy
    - _Py_ID
    - PyDict_Check
    - Py_XDECREF
    - Py_DECREF
    - merge_class_dict
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___dir___impl(PyObject *self)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:8592,1
    - Dst: PyDescr_NewClassMethod
      Src: /src/cpython/Objects/typeobject.c:8596,1
    - Dst: type_module
      Src: /src/cpython/Objects/typeobject.c:8599,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/typeobject.c:8601,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:8604,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Objects/typeobject.c:8606,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:8607,1
    - Dst: PyStaticMethod_New
      Src: /src/cpython/Objects/typeobject.c:8611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8613,1
    - Dst: PyDescr_NewMethod
      Src: /src/cpython/Objects/typeobject.c:8616,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/typeobject.c:8624,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:8627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8629,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:8635,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/typeobject.c:8637,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:8640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8645,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - type
    - meth
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8650
      start: 8585
    functionDepth: 11
    functionLinenumber: 8585
    functionLinenumberEnd: 8650
    functionName: type_add_method
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetDefaultRef
    - PyUnicode_FromString
    - PyErr_SetString
    - type_module
    - lookup_tp_dict
    - PyDescr_NewMethod
    - PyDict_SetItem
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - PyDescr_NAME
    - PyStaticMethod_New
    - Py_DECREF
    - PyCFunction_NewEx
    - PyDescr_NewClassMethod
    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:8655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - meth
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8656
      start: 8652
    functionDepth: 12
    functionLinenumber: 8652
    functionLinenumberEnd: 8656
    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:8669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8674
      start: 8660
    functionDepth: 12
    functionLinenumber: 8660
    functionLinenumberEnd: 8674
    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:8685,1
    - Dst: PyDescr_NewMember
      Src: /src/cpython/Objects/typeobject.c:8687,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/typeobject.c:8691,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/typeobject.c:8691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8698
      start: 8677
    functionDepth: 7
    functionLinenumber: 8677
    functionLinenumberEnd: 8698
    functionName: type_add_members
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetDefaultRef
    - lookup_tp_dict
    - PyDescr_NAME
    - Py_DECREF
    - 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:8709,1
    - Dst: PyDescr_NewGetSet
      Src: /src/cpython/Objects/typeobject.c:8711,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Objects/typeobject.c:8716,1
    - Dst: PyDescr_NAME
      Src: /src/cpython/Objects/typeobject.c:8716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8717,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:8720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8723
      start: 8701
    functionDepth: 7
    functionLinenumber: 8701
    functionLinenumberEnd: 8723
    functionName: type_add_getset
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetDefaultRef
    - lookup_tp_dict
    - PyDescr_NewGetSet
    - PyDescr_NAME
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int type_add_getset(PyTypeObject *type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8733,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8739,1
    - Dst: COPYVAL
      Src: /src/cpython/Objects/typeobject.c:8749,1
    - Dst: COPYVAL
      Src: /src/cpython/Objects/typeobject.c:8750,1
    - Dst: COPYVAL
      Src: /src/cpython/Objects/typeobject.c:8751,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:8756,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8758,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8761,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8764,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8767,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8770,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8773,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8776,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:8779,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8784,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8787,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8790,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8791
      start: 8726
    functionDepth: 3
    functionLinenumber: 8726
    functionLinenumberEnd: 8791
    functionName: inherit_special
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_HasFeature
    - is_subtype_with_mro
    - lookup_tp_mro
    - COPYVAL
    - type_add_flags
    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: 8748
      start: 8746
    functionDepth: 0
    functionLinenumber: 8746
    functionLinenumberEnd: 8748
    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:8796,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:8798,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:8799,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8799,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:8801,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:8801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 8797
        line_start: 8797
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 8804
      start: 8793
    functionDepth: 5
    functionLinenumber: 8793
    functionLinenumberEnd: 8804
    functionName: overrides_hash
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyDict_Contains
    - _Py_ID
    - lookup_tp_dict
    linkageType: ''
    returnType: int
    signature: int overrides_hash(PyTypeObject *type)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8838,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8839,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8840,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8841,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8842,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8843,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8844,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8845,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8846,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8847,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8848,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8849,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8850,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8851,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8852,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8853,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8854,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8855,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8856,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8857,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8858,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8859,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8860,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8861,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8862,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8863,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8864,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8865,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8866,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8867,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8868,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8869,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8870,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8871,1
    - Dst: COPYNUM
      Src: /src/cpython/Objects/typeobject.c:8872,1
    - Dst: COPYASYNC
      Src: /src/cpython/Objects/typeobject.c:8879,1
    - Dst: COPYASYNC
      Src: /src/cpython/Objects/typeobject.c:8880,1
    - Dst: COPYASYNC
      Src: /src/cpython/Objects/typeobject.c:8881,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8888,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8889,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8890,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8891,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8892,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8893,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8894,1
    - Dst: COPYSEQ
      Src: /src/cpython/Objects/typeobject.c:8895,1
    - Dst: COPYMAP
      Src: /src/cpython/Objects/typeobject.c:8902,1
    - Dst: COPYMAP
      Src: /src/cpython/Objects/typeobject.c:8903,1
    - Dst: COPYMAP
      Src: /src/cpython/Objects/typeobject.c:8904,1
    - Dst: COPYBUF
      Src: /src/cpython/Objects/typeobject.c:8911,1
    - Dst: COPYBUF
      Src: /src/cpython/Objects/typeobject.c:8912,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8917,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8926,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8932,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8936,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8938,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8940,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8942,1
    - Dst: overrides_hash
      Src: /src/cpython/Objects/typeobject.c:8949,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8960,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8961,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8964,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8969,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:8970,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:8972,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8974,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8975,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8976,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8977,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8978,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8979,1
    - Dst: COPYSLOT
      Src: /src/cpython/Objects/typeobject.c:8983,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 126
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9000
      start: 8806
    functionDepth: 6
    functionLinenumber: 8806
    functionLinenumberEnd: 9000
    functionName: inherit_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - COPYSLOT
    - COPYMAP
    - overrides_hash
    - COPYNUM
    - COPYSEQ
    - type_add_flags
    - COPYBUF
    - COPYASYNC
    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: 8821
      start: 8818
    functionDepth: 0
    functionLinenumber: 8818
    functionLinenumberEnd: 8821
    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: 8824
      start: 8822
    functionDepth: 0
    functionLinenumber: 8822
    functionLinenumberEnd: 8824
    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: 8826
      start: 8825
    functionDepth: 0
    functionLinenumber: 8825
    functionLinenumberEnd: 8826
    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: 8827
      start: 8826
    functionDepth: 0
    functionLinenumber: 8826
    functionLinenumberEnd: 8827
    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: 8828
      start: 8827
    functionDepth: 0
    functionLinenumber: 8827
    functionLinenumberEnd: 8828
    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: 8829
      start: 8828
    functionDepth: 0
    functionLinenumber: 8828
    functionLinenumberEnd: 8829
    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: 8830
      start: 8829
    functionDepth: 0
    functionLinenumber: 8829
    functionLinenumberEnd: 8830
    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:9017,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:9020,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:9021,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:9026,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9029,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9034
      start: 9007
    functionDepth: 1
    functionLinenumber: 9007
    functionLinenumberEnd: 9034
    functionName: type_ready_pre_checks
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int type_ready_pre_checks(PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:9045,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9051,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Objects/typeobject.c:9057,1
    - Dst: PyType_Ready
      Src: /src/cpython/Objects/typeobject.c:9058,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: 9050
        line_start: 9050
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9064
      start: 9037
    functionDepth: 1
    functionLinenumber: 9037
    functionLinenumberEnd: 9064
    functionName: type_ready_set_base
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - Py_NewRef
    - _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:9077,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Objects/typeobject.c:9078,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:9078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9082
      start: 9066
    functionDepth: 1
    functionLinenumber: 9066
    functionLinenumberEnd: 9082
    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:9089,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:9089,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9092,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:9092,1
    - Dst: lookup_tp_bases
      Src: /src/cpython/Objects/typeobject.c:9095,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/typeobject.c:9099,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/typeobject.c:9102,1
    - Dst: set_tp_bases
      Src: /src/cpython/Objects/typeobject.c:9107,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: 9088
        line_start: 9088
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (lookup_tp_bases(type) == NULL)
      pos:
        line_end: 9091
        line_start: 9091
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9110
      start: 9084
    functionDepth: 4
    functionLinenumber: 9084
    functionLinenumberEnd: 9110
    functionName: type_ready_set_bases
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_bases
    - set_tp_bases
    - PyTuple_Pack
    - assert
    - PyTuple_New
    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:9116,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:9120,1
    - Dst: set_tp_dict
      Src: /src/cpython/Objects/typeobject.c:9124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9126
      start: 9113
    functionDepth: 11
    functionLinenumber: 9113
    functionLinenumberEnd: 9126
    functionName: type_ready_set_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - set_tp_dict
    - lookup_tp_dict
    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:9134,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:9135,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:9135,1
    - Dst: _PyType_DocWithoutSignature
      Src: /src/cpython/Objects/typeobject.c:9145,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/typeobject.c:9146,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:9151,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:9151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9155,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:9158,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:9158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9163
      start: 9131
    functionDepth: 10
    functionLinenumber: 9131
    functionLinenumberEnd: 9163
    functionName: type_dict_set_doc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyType_DocWithoutSignature
    - lookup_tp_dict
    - PyDict_SetItem
    - PyDict_Contains
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int type_dict_set_doc(PyTypeObject *type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: add_operators
      Src: /src/cpython/Objects/typeobject.c:9170,1
    - Dst: type_add_methods
      Src: /src/cpython/Objects/typeobject.c:9173,1
    - Dst: type_add_members
      Src: /src/cpython/Objects/typeobject.c:9176,1
    - Dst: type_add_getset
      Src: /src/cpython/Objects/typeobject.c:9179,1
    - Dst: type_dict_set_doc
      Src: /src/cpython/Objects/typeobject.c:9182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9186
      start: 9166
    functionDepth: 13
    functionLinenumber: 9166
    functionLinenumberEnd: 9186
    functionName: type_ready_fill_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_add_methods
    - add_operators
    - type_dict_set_doc
    - type_add_members
    - type_add_getset
    linkageType: ''
    returnType: int
    signature: int type_ready_fill_dict(PyTypeObject *type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9193,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9200,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9212,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9228
      start: 9188
    functionDepth: 1
    functionLinenumber: 9188
    functionLinenumberEnd: 9228
    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:9233,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9237,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:9237,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9240,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:9240,1
    - Dst: mro_internal
      Src: /src/cpython/Objects/typeobject.c:9244,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:9247,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9248,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9249,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:9249,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9254,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9255,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:9257,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9257,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9259,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9265,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: 9236
        line_start: 9236
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (lookup_tp_mro(type) == NULL)
      pos:
        line_end: 9239
        line_start: 9239
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (mro != NULL)
      pos:
        line_end: 9247
        line_start: 9247
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 9248
        line_start: 9248
        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: 9265
        line_start: 9264
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (type->tp_flags & Py_TPFLAGS_IMMUTABLETYPE)
      pos:
        line_end: 9253
        line_start: 9253
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9270
      start: 9230
    functionDepth: 16
    functionLinenumber: 9230
    functionLinenumberEnd: 9270
    functionName: type_ready_mro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_mro
    - PyTuple_GET_ITEM
    - mro_internal
    - PyTuple_Check
    - assert
    - PyErr_Format
    - PyTuple_GET_SIZE
    - _PyType_CAST
    - ASSERT_TYPE_LOCK_HELD
    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: 9296
      start: 9278
    functionDepth: 0
    functionLinenumber: 9278
    functionLinenumberEnd: 9296
    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:9301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9303
      start: 9298
    functionDepth: 3
    functionLinenumber: 9298
    functionLinenumberEnd: 9303
    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:9308,1
    - Dst: inherit_special
      Src: /src/cpython/Objects/typeobject.c:9313,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:9317,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9318,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9319,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9321,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:9322,1
    - Dst: inherit_slots
      Src: /src/cpython/Objects/typeobject.c:9323,1
    - Dst: inherit_patma_flags
      Src: /src/cpython/Objects/typeobject.c:9326,1
    - Dst: type_ready_inherit_as_structs
      Src: /src/cpython/Objects/typeobject.c:9331,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/typeobject.c:9335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (mro != NULL)
      pos:
        line_end: 9317
        line_start: 9317
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9349
      start: 9305
    functionDepth: 7
    functionLinenumber: 9305
    functionLinenumberEnd: 9349
    functionName: type_ready_inherit
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - inherit_patma_flags
    - lookup_tp_mro
    - PyTuple_GET_ITEM
    - PyType_Check
    - inherit_slots
    - _PyType_IS_GC
    - inherit_special
    - PyErr_Format
    - assert
    - PyTuple_GET_SIZE
    - type_ready_inherit_as_structs
    - ASSERT_TYPE_LOCK_HELD
    linkageType: ''
    returnType: int
    signature: int type_ready_inherit(PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:9364,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:9365,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:9365,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:9373,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:9373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9378
      start: 9357
    functionDepth: 10
    functionLinenumber: 9357
    functionLinenumberEnd: 9378
    functionName: type_ready_set_hash
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyDict_Contains
    - _Py_ID
    - lookup_tp_dict
    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:9385,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9386,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9388,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:9389,1
    - Dst: add_subclass
      Src: /src/cpython/Objects/typeobject.c:9389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9394
      start: 9382
    functionDepth: 1
    functionLinenumber: 9382
    functionLinenumberEnd: 9394
    functionName: type_ready_add_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_bases
    - PyTuple_GET_ITEM
    - PyType_Check
    - PyTuple_GET_SIZE
    - 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:9418,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9420,1
    - Dst: add_tp_new_wrapper
      Src: /src/cpython/Objects/typeobject.c:9429,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: 9419
        line_start: 9419
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9448
      start: 9399
    functionDepth: 3
    functionLinenumber: 9399
    functionLinenumberEnd: 9448
    functionName: type_ready_set_new
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - add_tp_new_wrapper
    - type_add_flags
    - assert
    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:9457,1
    - Dst: _PyDict_NewKeysForClass
      Src: /src/cpython/Objects/typeobject.c:9465,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/typeobject.c:9467,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9472,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9475
      start: 9450
    functionDepth: 5
    functionLinenumber: 9450
    functionLinenumberEnd: 9475
    functionName: type_ready_managed_dict
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_NewKeysForClass
    - type_add_flags
    - PyErr_NoMemory
    - 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:9485,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9493,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9509
      start: 9477
    functionDepth: 1
    functionLinenumber: 9477
    functionLinenumberEnd: 9509
    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:9515,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Objects/typeobject.c:9517,1
    - Dst: is_readying
      Src: /src/cpython/Objects/typeobject.c:9517,1
    - Dst: start_readying
      Src: /src/cpython/Objects/typeobject.c:9518,1
    - Dst: type_ready_pre_checks
      Src: /src/cpython/Objects/typeobject.c:9520,1
    - Dst: _Py_AddToAllObjects
      Src: /src/cpython/Objects/typeobject.c:9530,1
    - Dst: type_ready_set_dict
      Src: /src/cpython/Objects/typeobject.c:9534,1
    - Dst: type_ready_set_base
      Src: /src/cpython/Objects/typeobject.c:9537,1
    - Dst: type_ready_set_type
      Src: /src/cpython/Objects/typeobject.c:9540,1
    - Dst: type_ready_set_bases
      Src: /src/cpython/Objects/typeobject.c:9543,1
    - Dst: type_ready_mro
      Src: /src/cpython/Objects/typeobject.c:9546,1
    - Dst: type_ready_set_new
      Src: /src/cpython/Objects/typeobject.c:9549,1
    - Dst: type_ready_fill_dict
      Src: /src/cpython/Objects/typeobject.c:9552,1
    - Dst: type_ready_inherit
      Src: /src/cpython/Objects/typeobject.c:9556,1
    - Dst: type_ready_preheader
      Src: /src/cpython/Objects/typeobject.c:9559,1
    - Dst: type_ready_set_hash
      Src: /src/cpython/Objects/typeobject.c:9563,1
    - Dst: type_ready_add_subclasses
      Src: /src/cpython/Objects/typeobject.c:9566,1
    - Dst: type_ready_managed_dict
      Src: /src/cpython/Objects/typeobject.c:9570,1
    - Dst: type_ready_post_checks
      Src: /src/cpython/Objects/typeobject.c:9573,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9580,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9582,1
    - Dst: stop_readying
      Src: /src/cpython/Objects/typeobject.c:9585,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9587,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:9587,1
    - Dst: stop_readying
      Src: /src/cpython/Objects/typeobject.c:9591,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: 9581
        line_start: 9581
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 9586
        line_start: 9586
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9593
      start: 9512
    functionDepth: 17
    functionLinenumber: 9512
    functionLinenumberEnd: 9593
    functionName: type_ready
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - is_readying
    - type_ready_set_base
    - start_readying
    - assert
    - type_ready_managed_dict
    - type_add_flags
    - type_ready_set_new
    - type_ready_set_type
    - _PyType_CheckConsistency
    - type_ready_add_subclasses
    - type_ready_set_hash
    - type_ready_set_bases
    - type_ready_inherit
    - type_ready_preheader
    - type_ready_mro
    - stop_readying
    - ASSERT_TYPE_LOCK_HELD
    - type_ready_pre_checks
    - _PyObject_ASSERT
    - type_ready_post_checks
    - type_ready_fill_dict
    - type_ready_set_dict
    - _Py_AddToAllObjects
    linkageType: ''
    returnType: int
    signature: int type_ready(PyTypeObject *type, int initial)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9599,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:9599,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9602,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9606,1
    - Dst: _Py_SetImmortalUntracked
      Src: /src/cpython/Objects/typeobject.c:9608,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9612,1
    - Dst: type_ready
      Src: /src/cpython/Objects/typeobject.c:9614,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9617,1
    - Dst: _PyType_CheckConsistency
      Src: /src/cpython/Objects/typeobject.c:9617,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 9598
        line_start: 9598
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!(type->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN))
      pos:
        line_end: 9601
        line_start: 9601
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 9616
        line_start: 9616
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9621
      start: 9595
    functionDepth: 18
    functionLinenumber: 9595
    functionLinenumberEnd: 9621
    functionName: PyType_Ready
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 32
    functionsReached:
    - _PyType_CheckConsistency
    - BEGIN_TYPE_LOCK
    - _Py_SetImmortalUntracked
    - END_TYPE_LOCK
    - assert
    - type_ready
    - type_add_flags
    linkageType: ''
    returnType: int
    signature: int PyType_Ready(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9628,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/typeobject.c:9628,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9629,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9630,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9631,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9634,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9636,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:9637,1
    - Dst: next_global_version_tag
      Src: /src/cpython/Objects/typeobject.c:9640,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9641,1
    - Dst: _PyType_SetVersion
      Src: /src/cpython/Objects/typeobject.c:9642,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9646,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9647,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9648,1
    - Dst: managed_static_type_state_init
      Src: /src/cpython/Objects/typeobject.c:9651,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9654,1
    - Dst: type_ready
      Src: /src/cpython/Objects/typeobject.c:9655,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:9656,1
    - Dst: _PyStaticType_ClearWeakRefs
      Src: /src/cpython/Objects/typeobject.c:9658,1
    - Dst: managed_static_type_state_clear
      Src: /src/cpython/Objects/typeobject.c:9659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - interp
    - self
    - isbuiltin
    - initial
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    - int
    - int
    assertStmts:
    - condition: (_Py_IsImmortal((PyObject *)self))
      pos:
        line_end: 9627
        line_start: 9627
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!(self->tp_flags & Py_TPFLAGS_MANAGED_WEAKREF))
      pos:
        line_end: 9630
        line_start: 9630
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (next_version_tag != 0)
      pos:
        line_end: 9640
        line_start: 9640
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN)
      pos:
        line_end: 9646
        line_start: 9646
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!(self->tp_flags & Py_TPFLAGS_HEAPTYPE))
      pos:
        line_end: 9628
        line_start: 9628
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((self->tp_flags & Py_TPFLAGS_READY) == 0)
      pos:
        line_end: 9633
        line_start: 9633
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!initial)
      pos:
        line_end: 9645
        line_start: 9645
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!(self->tp_flags & Py_TPFLAGS_MANAGED_DICT))
      pos:
        line_end: 9629
        line_start: 9629
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (self->tp_version_tag != 0)
      pos:
        line_end: 9647
        line_start: 9647
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9662
      start: 9624
    functionDepth: 18
    functionLinenumber: 9624
    functionLinenumberEnd: 9662
    functionName: init_static_type
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - managed_static_type_state_init
    - assert
    - BEGIN_TYPE_LOCK
    - END_TYPE_LOCK
    - managed_static_type_state_clear
    - _Py_IsImmortal
    - _PyType_SetVersion
    - next_global_version_tag
    - type_ready
    - type_add_flags
    - _PyStaticType_ClearWeakRefs
    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:9667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - self
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9668
      start: 9664
    functionDepth: 19
    functionLinenumber: 9664
    functionLinenumberEnd: 9668
    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:9673,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/typeobject.c:9673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - self
    argTypes:
    - PyInterpreterState*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9674
      start: 9670
    functionDepth: 19
    functionLinenumber: 9670
    functionLinenumberEnd: 9674
    functionName: _PyStaticType_InitBuiltin
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - init_static_type
    - _Py_IsMainInterpreter
    linkageType: ''
    returnType: int
    signature: int _PyStaticType_InitBuiltin(PyInterpreterState *interp, PyTypeObject
      *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/typeobject.c:9680,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Objects/typeobject.c:9684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9686,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9693,1
    - Dst: init_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9695,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9698,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9702,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:9702,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:9704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9705,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - base
    - type
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 9701
        line_start: 9701
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9708
      start: 9677
    functionDepth: 12
    functionLinenumber: 9677
    functionLinenumberEnd: 9708
    functionName: add_subclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - init_tp_subclasses
    - lookup_tp_subclasses
    - PyDict_SetItem
    - PyWeakref_NewRef
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - PyLong_FromVoidPtr
    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:9713,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9716,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:9718,1
    - Dst: add_subclass
      Src: /src/cpython/Objects/typeobject.c:9719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - type
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9724
      start: 9710
    functionDepth: 13
    functionLinenumber: 9710
    functionLinenumberEnd: 9724
    functionName: add_all_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - add_subclass
    - _PyType_CAST
    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:9729,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:9733,1
    - Dst: lookup_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9739,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:9741,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:9742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9747,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:9748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:9750,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9755
      start: 9726
    functionDepth: 5
    functionLinenumber: 9726
    functionLinenumberEnd: 9755
    functionName: get_subclasses_key
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_subclasses
    - PyDict_Next
    - PyErr_Clear
    - Py_DECREF
    - type_from_ref
    - Py_NewRef
    - PyLong_FromVoidPtr
    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:9760,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9764,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:9764,1
    - Dst: get_subclasses_key
      Src: /src/cpython/Objects/typeobject.c:9766,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/typeobject.c:9767,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:9771,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:9773,1
    - Dst: PyDict_Size
      Src: /src/cpython/Objects/typeobject.c:9775,1
    - Dst: clear_tp_subclasses
      Src: /src/cpython/Objects/typeobject.c:9776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - base
    - type
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 9763
        line_start: 9763
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9778
      start: 9757
    functionDepth: 6
    functionLinenumber: 9757
    functionLinenumberEnd: 9778
    functionName: remove_subclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Size
    - lookup_tp_subclasses
    - get_subclasses_key
    - clear_tp_subclasses
    - PyDict_DelItem
    - PyErr_Clear
    - Py_XDECREF
    - assert
    - PyDict_CheckExact
    linkageType: ''
    returnType: void
    signature: void remove_subclass(PyTypeObject *base, PyTypeObject *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9783,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9785,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9785,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9787,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9788,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:9789,1
    - Dst: remove_subclass
      Src: /src/cpython/Objects/typeobject.c:9790,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9793,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (bases != NULL)
      pos:
        line_end: 9782
        line_start: 9782
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 9784
        line_start: 9784
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 9792
        line_start: 9792
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9794
      start: 9780
    functionDepth: 7
    functionLinenumber: 9780
    functionLinenumberEnd: 9794
    functionName: remove_all_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_ITEM
    - PyType_Check
    - remove_subclass
    - PyErr_Occurred
    - assert
    - PyTuple_GET_SIZE
    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:9799,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:9800,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9804,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9806,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ob
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9810
      start: 9796
    functionDepth: 1
    functionLinenumber: 9796
    functionLinenumberEnd: 9810
    functionName: check_num_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - 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:9818,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:9819,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9823,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:9827,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:9829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9831
      start: 9812
    functionDepth: 1
    functionLinenumber: 9812
    functionLinenumberEnd: 9831
    functionName: check_pow_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - 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:9847,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9850,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/typeobject.c:9852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9853
      start: 9841
    functionDepth: 2
    functionLinenumber: 9841
    functionLinenumberEnd: 9853
    functionName: wrap_lenfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - check_num_args
    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:9861,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9864,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/typeobject.c:9866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9867
      start: 9855
    functionDepth: 2
    functionLinenumber: 9855
    functionLinenumberEnd: 9867
    functionName: wrap_inquirypred
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBool_FromLong
    - check_num_args
    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:9875,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9877,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_binaryfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - check_num_args
    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:9887,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9891
      start: 9881
    functionDepth: 2
    functionLinenumber: 9881
    functionLinenumberEnd: 9891
    functionName: wrap_binaryfunc_l
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - check_num_args
    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:9899,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9903
      start: 9893
    functionDepth: 2
    functionLinenumber: 9893
    functionLinenumberEnd: 9903
    functionName: wrap_binaryfunc_r
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - check_num_args
    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:9914,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9918,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9924
      start: 9905
    functionDepth: 2
    functionLinenumber: 9905
    functionLinenumberEnd: 9924
    functionName: wrap_ternaryfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_pow_args
    - PyTuple_GET_ITEM
    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:9935,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9939,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9945
      start: 9926
    functionDepth: 2
    functionLinenumber: 9926
    functionLinenumberEnd: 9945
    functionName: wrap_ternaryfunc_r
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_pow_args
    - PyTuple_GET_ITEM
    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:9952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9955
      start: 9947
    functionDepth: 2
    functionLinenumber: 9947
    functionLinenumberEnd: 9955
    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:9964,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:9966,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:9967,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9971
      start: 9957
    functionDepth: 3
    functionLinenumber: 9957
    functionLinenumberEnd: 9971
    functionName: wrap_indexargfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    - PyNumber_AsSsize_t
    - check_num_args
    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:9978,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9979,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:9982,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:9986,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:9986,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 9985
        line_start: 9985
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 9993
      start: 9973
    functionDepth: 3
    functionLinenumber: 9973
    functionLinenumberEnd: 9993
    functionName: getindex
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - assert
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    - Py_TYPE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t getindex(PyObject *self, PyObject *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:10002,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10003,1
    - Dst: getindex
      Src: /src/cpython/Objects/typeobject.c:10004,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10005,1
    - Dst: check_num_args
      Src: /src/cpython/Objects/typeobject.c:10009,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10010,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10010,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 10009
        line_start: 10009
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 10012
      start: 9995
    functionDepth: 4
    functionLinenumber: 9995
    functionLinenumberEnd: 10012
    functionName: wrap_sq_item
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - assert
    - getindex
    - check_num_args
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    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:10022,1
    - Dst: getindex
      Src: /src/cpython/Objects/typeobject.c:10024,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10025,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10028,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10031
      start: 10014
    functionDepth: 4
    functionLinenumber: 10014
    functionLinenumberEnd: 10031
    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:10041,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10043,1
    - Dst: getindex
      Src: /src/cpython/Objects/typeobject.c:10044,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10045,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10051
      start: 10033
    functionDepth: 4
    functionLinenumber: 10033
    functionLinenumberEnd: 10051
    functionName: wrap_sq_delitem
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    - getindex
    - check_num_args
    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:10061,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10063,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10065,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/typeobject.c:10068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10069
      start: 10054
    functionDepth: 2
    functionLinenumber: 10054
    functionLinenumberEnd: 10069
    functionName: wrap_objobjproc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    - PyBool_FromLong
    - check_num_args
    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:10078,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10084
      start: 10071
    functionDepth: 1
    functionLinenumber: 10071
    functionLinenumberEnd: 10084
    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:10093,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10095,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10097,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10100
      start: 10086
    functionDepth: 2
    functionLinenumber: 10086
    functionLinenumberEnd: 10100
    functionName: wrap_delitem
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    - check_num_args
    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:10109,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:10111,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:10113,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10118,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:10118,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:10123,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:10124,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10124,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10144,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: 10117
        line_start: 10117
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 10152
      start: 10106
    functionDepth: 1
    functionLinenumber: 10106
    functionLinenumberEnd: 10152
    functionName: hackcheck_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_mro
    - PyTuple_GET_ITEM
    - _PyType_CAST
    - PyTuple_Check
    - assert
    - PyErr_Format
    - PyTuple_GET_SIZE
    - Py_TYPE
    - ASSERT_TYPE_LOCK_HELD
    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:10157,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:10162,1
    - Dst: hackcheck_unlocked
      Src: /src/cpython/Objects/typeobject.c:10163,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:10164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - func
    - what
    argTypes:
    - PyObject*
    - setattrofunc
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10166
      start: 10154
    functionDepth: 2
    functionLinenumber: 10154
    functionLinenumberEnd: 10166
    functionName: hackcheck
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - hackcheck_unlocked
    - END_TYPE_LOCK
    - BEGIN_TYPE_LOCK
    - PyType_Check
    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:10175,1
    - Dst: hackcheck
      Src: /src/cpython/Objects/typeobject.c:10177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10183
      start: 10168
    functionDepth: 3
    functionLinenumber: 10168
    functionLinenumberEnd: 10183
    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:10192,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10194,1
    - Dst: hackcheck
      Src: /src/cpython/Objects/typeobject.c:10195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10201
      start: 10185
    functionDepth: 3
    functionLinenumber: 10185
    functionLinenumberEnd: 10201
    functionName: wrap_delattr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - hackcheck
    - PyTuple_GET_ITEM
    - check_num_args
    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:10209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10212,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/typeobject.c:10214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10215
      start: 10203
    functionDepth: 2
    functionLinenumber: 10203
    functionLinenumberEnd: 10215
    functionName: wrap_hashfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_FromSsize_t
    - check_num_args
    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: 10223
      start: 10217
    functionDepth: 0
    functionLinenumber: 10217
    functionLinenumberEnd: 10223
    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:10230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10235
      start: 10225
    functionDepth: 2
    functionLinenumber: 10225
    functionLinenumberEnd: 10235
    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:10243,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - args
    - wrapped
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10247
      start: 10237
    functionDepth: 2
    functionLinenumber: 10237
    functionLinenumberEnd: 10247
    functionName: wrap_richcmpfunc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - check_num_args
    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: 10256
      start: 10250
    functionDepth: 0
    functionLinenumber: 10250
    functionLinenumberEnd: 10256
    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:10270,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10273,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Objects/typeobject.c:10274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10276
      start: 10264
    functionDepth: 2
    functionLinenumber: 10264
    functionLinenumberEnd: 10276
    functionName: wrap_next
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    - PyErr_Occurred
    - check_num_args
    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:10285,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10297
      start: 10278
    functionDepth: 1
    functionLinenumber: 10278
    functionLinenumberEnd: 10297
    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:10306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10312
      start: 10299
    functionDepth: 1
    functionLinenumber: 10299
    functionLinenumberEnd: 10312
    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:10321,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:10323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10328
      start: 10314
    functionDepth: 2
    functionLinenumber: 10314
    functionLinenumberEnd: 10328
    functionName: wrap_descr_delete
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - check_num_args
    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:10335,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:10338,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10339,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10343,1
    - Dst: _PyMemoryView_FromBufferProc
      Src: /src/cpython/Objects/typeobject.c:10348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10350
      start: 10330
    functionDepth: 3
    functionLinenumber: 10330
    functionLinenumberEnd: 10350
    functionName: wrap_buffer
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyMemoryView_FromBufferProc
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    - PyArg_UnpackTuple
    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:10356,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/typeobject.c:10359,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10360,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10370,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10375,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/typeobject.c:10379,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10385
      start: 10352
    functionDepth: 1
    functionLinenumber: 10352
    functionLinenumberEnd: 10385
    functionName: wrap_releasebuffer
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_Check
    - PyArg_UnpackTuple
    - PyErr_SetString
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - _Py_ID
    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:10392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - args
    - wrapped
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10395
      start: 10387
    functionDepth: 0
    functionLinenumber: 10387
    functionLinenumberEnd: 10395
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:10403,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10404,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10411,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:10417,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10418,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10421,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:10426,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10427,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10446,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10450,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Objects/typeobject.c:10458,1
    - Dst: _PyStack_AsDict
      Src: /src/cpython/Objects/typeobject.c:10464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10466,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/cpython/Objects/typeobject.c:10470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10471,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:10472,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10474
      start: 10397
    functionDepth: 3
    functionLinenumber: 10397
    functionLinenumberEnd: 10474
    functionName: tp_new_wrapper
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_IsSubtype
    - PyTypeObject*::tp_new
    - PyType_Check
    - PyTuple_FromArray
    - _PyStack_AsDict
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tp_new_wrapper(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:10487,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:10488,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10488,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Objects/typeobject.c:10496,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/typeobject.c:10500,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:10501,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10504
      start: 10484
    functionDepth: 10
    functionLinenumber: 10484
    functionLinenumberEnd: 10504
    functionName: add_tp_new_wrapper
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_SetDeferredRefcount
    - lookup_tp_dict
    - PyDict_SetItem
    - PyDict_Contains
    - Py_DECREF
    - PyCFunction_NewEx
    - _Py_ID
    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: 10516
      start: 10509
    functionDepth: 0
    functionLinenumber: 10509
    functionLinenumberEnd: 10516
    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: 10524
      start: 10517
    functionDepth: 0
    functionLinenumber: 10517
    functionLinenumberEnd: 10524
    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:10533,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10533,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:10541,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10546,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/typeobject.c:10551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - left
    - right
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10555
      start: 10527
    functionDepth: 4
    functionLinenumber: 10527
    functionLinenumberEnd: 10555
    functionName: method_is_overloaded
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - Py_TYPE
    - PyObject_GetOptionalAttr
    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: 10600
      start: 10558
    functionDepth: 0
    functionLinenumber: 10558
    functionLinenumberEnd: 10600
    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: 10603
      start: 10601
    functionDepth: 0
    functionLinenumber: 10601
    functionLinenumberEnd: 10603
    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:10608,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10608,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:10614,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/typeobject.c:10614,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10618,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/typeobject.c:10618,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/typeobject.c:10619,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10620,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10621,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:10626,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:10627,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/typeobject.c:10627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10628,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(res))
      pos:
        line_end: 10617
        line_start: 10617
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (len >= 0 || PyErr_ExceptionMatches(PyExc_OverflowError))
      pos:
        line_end: 10626
        line_start: 10626
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 10630
      start: 10604
    functionDepth: 4
    functionLinenumber: 10604
    functionLinenumberEnd: 10630
    functionName: slot_sq_length
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - vectorcall_method
    - PyErr_SetString
    - Py_SETREF
    - _PyLong_IsNegative
    - PyNumber_AsSsize_t
    - PyLong_Check
    - PyErr_ExceptionMatches
    - assert
    - _PyNumber_Index
    - Py_DECREF
    - _Py_ID
    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:10635,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10640,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10643
      start: 10632
    functionDepth: 4
    functionLinenumber: 10632
    functionLinenumberEnd: 10643
    functionName: slot_sq_item
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - vectorcall_method
    - _Py_ID
    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:10652,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10660,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10660,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10664,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10673
      start: 10645
    functionDepth: 4
    functionLinenumber: 10645
    functionLinenumberEnd: 10673
    functionName: slot_sq_ass_item
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - vectorcall_method
    - _Py_ID
    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:10679,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10679,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10682,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10684,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10687,1
    - Dst: _PySequence_IterSearch
      Src: /src/cpython/Objects/typeobject.c:10691,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:10693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10696
      start: 10675
    functionDepth: 5
    functionLinenumber: 10675
    functionLinenumberEnd: 10696
    functionName: slot_sq_contains
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PySequence_IterSearch
    - maybe_call_special_one_arg
    - PyObject_IsTrue
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    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:10711,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10711,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10715,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10722
      start: 10702
    functionDepth: 4
    functionLinenumber: 10702
    functionLinenumberEnd: 10722
    functionName: slot_mp_ass_subscript
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - vectorcall_method
    - _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:10739,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:10743,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:10744,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10744,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10745,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10746,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10747,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10748,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:10750,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10750,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10750,1
    - Dst: method_is_overloaded
      Src: /src/cpython/Objects/typeobject.c:10751,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10751,1
    - Dst: vectorcall_maybe
      Src: /src/cpython/Objects/typeobject.c:10759,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10762,1
    - Dst: vectorcall_maybe
      Src: /src/cpython/Objects/typeobject.c:10769,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10769,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:10771,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10773,1
    - Dst: vectorcall_maybe
      Src: /src/cpython/Objects/typeobject.c:10779,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10779,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - self
    - other
    - modulus
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10782
      start: 10735
    functionDepth: 5
    functionLinenumber: 10735
    functionLinenumberEnd: 10782
    functionName: slot_nb_power
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_IsSubtype
    - Py_IS_TYPE
    - vectorcall_maybe
    - _PyThreadState_GET
    - slot_nb_power_binary
    - Py_DECREF
    - method_is_overloaded
    - Py_TYPE
    - _Py_ID
    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:10793,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10793,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10796,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10798,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10801,1
    - Dst: _PyObject_MaybeCallSpecialNoArgs
      Src: /src/cpython/Objects/typeobject.c:10802,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10802,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10803,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:10816,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/typeobject.c:10818,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/typeobject.c:10819,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:10822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10827,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10829
      start: 10788
    functionDepth: 5
    functionLinenumber: 10788
    functionLinenumberEnd: 10829
    functionName: slot_nb_bool
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_Check
    - PyObject_IsTrue
    - _PyObject_MaybeCallSpecialNoArgs
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - maybe_call_special_no_args
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int slot_nb_bool(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:10836,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10837
      start: 10832
    functionDepth: 4
    functionLinenumber: 10832
    functionLinenumberEnd: 10837
    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:10859,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg1
    - arg2
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10860
      start: 10855
    functionDepth: 4
    functionLinenumber: 10855
    functionLinenumberEnd: 10860
    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:10875,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10875,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10879,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:10882,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10884
      start: 10872
    functionDepth: 10
    functionLinenumber: 10872
    functionLinenumberEnd: 10884
    functionName: slot_tp_repr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - _PyObject_MaybeCallSpecialNoArgs
    - PyErr_Occurred
    - Py_TYPE
    - _Py_ID
    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:10893,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10893,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10895,1
    - Dst: PyObject_HashNotImplemented
      Src: /src/cpython/Objects/typeobject.c:10898,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/typeobject.c:10900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10901,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:10902,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/typeobject.c:10911,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:10912,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:10916,1
    - Dst: tp_hash
      Src: /src/cpython/Objects/typeobject.c:10917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:10922,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10924
      start: 10888
    functionDepth: 4
    functionLinenumber: 10888
    functionLinenumberEnd: 10924
    functionName: slot_tp_hash
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - tp_hash
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Clear
    - PyErr_Occurred
    - Py_DECREF
    - maybe_call_special_no_args
    - PyObject_HashNotImplemented
    - PyLong_AsSsize_t
    - _Py_ID
    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:10929,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10930
      start: 10926
    functionDepth: 4
    functionLinenumber: 10926
    functionLinenumberEnd: 10930
    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:10947,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10948
      start: 10943
    functionDepth: 4
    functionLinenumber: 10943
    functionLinenumberEnd: 10948
    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:10955,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10955,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typeobject.c:10957,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10961,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:10964,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:10964,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/typeobject.c:10970,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:10971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - attr
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10973
      start: 10950
    functionDepth: 1
    functionLinenumber: 10950
    functionLinenumberEnd: 10973
    functionName: call_attribute
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyObject_Vectorcall
    - Py_XDECREF
    - f
    - Py_TYPE
    - PyObject_CallOneArg
    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:10978,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:10986,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:10986,1
    - Dst: _Py_slot_tp_getattro
      Src: /src/cpython/Objects/typeobject.c:10993,1
    - Dst: _PyType_LookupRef
      Src: /src/cpython/Objects/typeobject.c:11000,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11000,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:11002,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:11005,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Objects/typeobject.c:11006,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11009,1
    - Dst: call_attribute
      Src: /src/cpython/Objects/typeobject.c:11010,1
    - Dst: call_attribute
      Src: /src/cpython/Objects/typeobject.c:11014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11015,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/typeobject.c:11016,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/typeobject.c:11017,1
    - Dst: call_attribute
      Src: /src/cpython/Objects/typeobject.c:11018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11022,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11024
      start: 10975
    functionDepth: 5
    functionLinenumber: 10975
    functionLinenumberEnd: 11024
    functionName: _Py_slot_tp_getattr_hook
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _Py_slot_tp_getattro
    - _PyObject_GenericGetAttrWithDict
    - Py_IS_TYPE
    - _PyType_LookupRef
    - call_attribute
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - PyErr_Occurred
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    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:11035,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11035,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:11039,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11045
      start: 11026
    functionDepth: 4
    functionLinenumber: 11026
    functionLinenumberEnd: 11045
    functionName: slot_tp_setattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - vectorcall_method
    - _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:11059,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11061,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11067
      start: 11056
    functionDepth: 5
    functionLinenumber: 11056
    functionLinenumberEnd: 11067
    functionName: slot_tp_richcompare
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_MaybeCallSpecialOneArg
    - PyErr_Occurred
    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:11072,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:11074,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:11075,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11075,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:11076,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:11077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11079
      start: 11069
    functionDepth: 3
    functionLinenumber: 11069
    functionLinenumberEnd: 11079
    functionName: has_dunder_getitem
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - _PyThreadState_PopCStackRef
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - PyStackRef_IsNull
    - _Py_ID
    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:11085,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11085,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11090,1
    - Dst: has_dunder_getitem
      Src: /src/cpython/Objects/typeobject.c:11093,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:11094,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11096,1
    - Dst: PySeqIter_New
      Src: /src/cpython/Objects/typeobject.c:11099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11100
      start: 11081
    functionDepth: 4
    functionLinenumber: 11081
    functionLinenumberEnd: 11100
    functionName: slot_tp_iter
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    - PyErr_Occurred
    - maybe_call_special_no_args
    - PySeqIter_New
    - has_dunder_getitem
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_iter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:11106,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11107
      start: 11102
    functionDepth: 4
    functionLinenumber: 11102
    functionLinenumberEnd: 11107
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11113
      start: 11109
    functionDepth: 0
    functionLinenumber: 11109
    functionLinenumberEnd: 11113
    functionName: _PyType_HasSlotTpIternext
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyType_HasSlotTpIternext(PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11118,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:11119,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:11121,1
    - Dst: _PyType_LookupStackRefAndVersion
      Src: /src/cpython/Objects/typeobject.c:11122,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11122,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:11123,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:11124,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:11130,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:11136,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typeobject.c:11138,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:11139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11141
      start: 11115
    functionDepth: 9
    functionLinenumber: 11115
    functionLinenumberEnd: 11141
    functionName: slot_tp_descr_get
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_PopCStackRef
    - PyObject_Vectorcall
    - PyStackRef_IsNull
    - _PyType_LookupStackRefAndVersion
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - PyStackRef_AsPyObjectBorrow
    - Py_NewRef
    - Py_TYPE
    - _Py_ID
    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:11152,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11152,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:11156,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - target
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11162
      start: 11143
    functionDepth: 4
    functionLinenumber: 11143
    functionLinenumberEnd: 11162
    functionName: slot_tp_descr_set
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - vectorcall_method
    - _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:11167,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11167,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:11171,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11179
      start: 11164
    functionDepth: 4
    functionLinenumber: 11164
    functionLinenumberEnd: 11179
    functionName: slot_tp_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - call_method
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    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:11184,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:11188,1
    - Dst: _PyObject_GetAttrStackRef
      Src: /src/cpython/Objects/typeobject.c:11189,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11189,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/typeobject.c:11190,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:11191,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:11195,1
    - Dst: _PyObject_Call_Prepend
      Src: /src/cpython/Objects/typeobject.c:11196,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:11197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11199
      start: 11181
    functionDepth: 3
    functionLinenumber: 11181
    functionLinenumberEnd: 11199
    functionName: slot_tp_new
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_PopCStackRef
    - _PyObject_GetAttrStackRef
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - PyStackRef_AsPyObjectBorrow
    - _PyObject_Call_Prepend
    - PyStackRef_IsNull
    - _Py_ID
    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:11205,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Objects/typeobject.c:11206,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/typeobject.c:11209,1
    - Dst: lookup_maybe_method
      Src: /src/cpython/Objects/typeobject.c:11212,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11212,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:11214,1
    - Dst: call_unbound_noarg
      Src: /src/cpython/Objects/typeobject.c:11215,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:11217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11221,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:11225,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Objects/typeobject.c:11228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11229
      start: 11201
    functionDepth: 3
    functionLinenumber: 11201
    functionLinenumberEnd: 11229
    functionName: slot_tp_finalize
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - _PyThreadState_PopCStackRef
    - call_unbound_noarg
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    - PyErr_FormatUnraisable
    - _Py_ID
    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: 11238
      start: 11237
    functionDepth: 0
    functionLinenumber: 11237
    functionLinenumberEnd: 11238
    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:11242,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:11243,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:11244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11246
      start: 11239
    functionDepth: 1
    functionLinenumber: 11239
    functionLinenumberEnd: 11246
    functionName: bufferwrapper_traverse
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyBufferWrapper_CAST
    - Py_VISIT
    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:11251,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:11253,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:11254,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:11255,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11257
      start: 11248
    functionDepth: 1
    functionLinenumber: 11248
    functionLinenumberEnd: 11257
    functionName: bufferwrapper_dealloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyBufferWrapper_CAST
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void bufferwrapper_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBufferWrapper_CAST
      Src: /src/cpython/Objects/typeobject.c:11262,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11272,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/typeobject.c:11272,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11273,1
    - Dst: bf_releasebuffer
      Src: /src/cpython/Objects/typeobject.c:11273,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11277,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11278,1
    - Dst: releasebuffer_call_python
      Src: /src/cpython/Objects/typeobject.c:11279,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:11282,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:11283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (PyMemoryView_Check(mv))
      pos:
        line_end: 11271
        line_start: 11271
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11284
      start: 11259
    functionDepth: 1
    functionLinenumber: 11259
    functionLinenumberEnd: 11284
    functionName: bufferwrapper_releasebuf
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_Check
    - releasebuffer_call_python
    - PyBufferWrapper_CAST
    - Py_CLEAR
    - assert
    - Py_TYPE
    - bf_releasebuffer
    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:11306,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:11312,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11312,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/typeobject.c:11316,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:11317,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/typeobject.c:11323,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11326,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/typeobject.c:11328,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:11333,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/typeobject.c:11334,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11338,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:11342,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:11343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11344,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: 11325
        line_start: 11325
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11346
      start: 11303
    functionDepth: 4
    functionLinenumber: 11303
    functionLinenumberEnd: 11346
    functionName: slot_bf_getbuffer
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyMemoryView_Check
    - PyLong_FromLong
    - vectorcall_method
    - _PyObject_GC_TRACK
    - PyErr_Format
    - assert
    - Py_DECREF
    - Py_XDECREF
    - PyObject_GetBuffer
    - Py_NewRef
    - _Py_ID
    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:11351,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:11352,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11357,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:11357,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:11358,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:11363,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:11371,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:11372,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 11356
        line_start: 11356
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11384
      start: 11348
    functionDepth: 1
    functionLinenumber: 11348
    functionLinenumberEnd: 11384
    functionName: releasebuffer_maybe_call_super_unlocked
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_tp_mro
    - PyTuple_GET_ITEM
    - PyType_Check
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    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:11391,1
    - Dst: releasebuffer_maybe_call_super_unlocked
      Src: /src/cpython/Objects/typeobject.c:11392,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:11393,1
    - Dst: base_releasebuffer
      Src: /src/cpython/Objects/typeobject.c:11396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11398
      start: 11386
    functionDepth: 2
    functionLinenumber: 11386
    functionLinenumberEnd: 11398
    functionName: releasebuffer_maybe_call_super
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - END_TYPE_LOCK
    - base_releasebuffer
    - BEGIN_TYPE_LOCK
    - releasebuffer_maybe_call_super_unlocked
    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:11407,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11410,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:11418,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Objects/typeobject.c:11423,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:11425,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11425,1
    - Dst: vectorcall_method
      Src: /src/cpython/Objects/typeobject.c:11436,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11436,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:11438,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11441,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/typeobject.c:11444,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11444,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/typeobject.c:11446,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11449,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:11452,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11454,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11454,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Objects/typeobject.c:11456,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 11453
        line_start: 11453
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11457
      start: 11400
    functionDepth: 4
    functionLinenumber: 11400
    functionLinenumberEnd: 11457
    functionName: releasebuffer_call_python
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - vectorcall_method
    - PyObject_CallMethodNoArgs
    - PyErr_FormatUnraisable
    - _Py_ID
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_NewRef
    - PyMemoryView_FromBuffer
    - Py_TYPE
    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:11473,1
    - Dst: releasebuffer_maybe_call_super
      Src: /src/cpython/Objects/typeobject.c:11474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11475
      start: 11470
    functionDepth: 5
    functionLinenumber: 11470
    functionLinenumberEnd: 11475
    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:11480,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11481,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:11482,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:11484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11487
      start: 11477
    functionDepth: 5
    functionLinenumber: 11477
    functionLinenumberEnd: 11487
    functionName: slot_am_generic
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyErr_Format
    - PyErr_Occurred
    - _PyObject_MaybeCallSpecialNoArgs
    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:11492,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11493
      start: 11489
    functionDepth: 6
    functionLinenumber: 11489
    functionLinenumberEnd: 11493
    functionName: slot_am_await
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - slot_am_generic
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_am_await(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slot_am_generic
      Src: /src/cpython/Objects/typeobject.c:11498,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11499
      start: 11495
    functionDepth: 6
    functionLinenumber: 11495
    functionLinenumberEnd: 11499
    functionName: slot_am_aiter
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - slot_am_generic
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_am_aiter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: slot_am_generic
      Src: /src/cpython/Objects/typeobject.c:11504,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:11504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11505
      start: 11501
    functionDepth: 6
    functionLinenumber: 11501
    functionLinenumberEnd: 11505
    functionName: slot_am_anext
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - slot_am_generic
    - _Py_ID
    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: 11534
      start: 11531
    functionDepth: 0
    functionLinenumber: 11531
    functionLinenumberEnd: 11534
    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: 11537
      start: 11534
    functionDepth: 0
    functionLinenumber: 11534
    functionLinenumberEnd: 11537
    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: 11540
      start: 11537
    functionDepth: 0
    functionLinenumber: 11537
    functionLinenumberEnd: 11540
    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: 11542
      start: 11540
    functionDepth: 0
    functionLinenumber: 11540
    functionLinenumberEnd: 11542
    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: 11544
      start: 11542
    functionDepth: 0
    functionLinenumber: 11542
    functionLinenumberEnd: 11544
    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: 11546
      start: 11544
    functionDepth: 0
    functionLinenumber: 11544
    functionLinenumberEnd: 11546
    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: 11548
      start: 11546
    functionDepth: 0
    functionLinenumber: 11546
    functionLinenumberEnd: 11548
    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: 11550
      start: 11548
    functionDepth: 0
    functionLinenumber: 11548
    functionLinenumberEnd: 11550
    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: 11553
      start: 11550
    functionDepth: 0
    functionLinenumber: 11550
    functionLinenumberEnd: 11553
    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: 11556
      start: 11553
    functionDepth: 0
    functionLinenumber: 11553
    functionLinenumberEnd: 11556
    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: 11559
      start: 11556
    functionDepth: 0
    functionLinenumber: 11556
    functionLinenumberEnd: 11559
    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: 11562
      start: 11559
    functionDepth: 0
    functionLinenumber: 11559
    functionLinenumberEnd: 11562
    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: 11565
      start: 11562
    functionDepth: 0
    functionLinenumber: 11562
    functionLinenumberEnd: 11565
    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: 11568
      start: 11565
    functionDepth: 0
    functionLinenumber: 11565
    functionLinenumberEnd: 11568
    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:11785,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11786,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (offset >= 0)
      pos:
        line_end: 11784
        line_start: 11784
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((size_t)offset < offsetof(PyHeapTypeObject, ht_name))
      pos:
        line_end: 11785
        line_start: 11785
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 11813
      start: 11778
    functionDepth: 0
    functionLinenumber: 11778
    functionLinenumberEnd: 11813
    functionName: slotptr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: 'void **

      slotptr(PyTypeObject *type, int ioffset)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11826
      start: 11817
    functionDepth: 0
    functionLinenumber: 11817
    functionLinenumberEnd: 11826
    functionName: has_slotdef
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_slotdef(PyObject *name)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NEW_TYPE_OR_LOCKED
      Src: /src/cpython/Objects/typeobject.c:11894,1
    - Dst: slotptr
      Src: /src/cpython/Objects/typeobject.c:11910,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:11922,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:11922,1
    - Dst: find_name_in_mro
      Src: /src/cpython/Objects/typeobject.c:11926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:11933,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:11934,1
    - Dst: slotptr
      Src: /src/cpython/Objects/typeobject.c:11942,1
    - Dst: slotptr
      Src: /src/cpython/Objects/typeobject.c:11953,1
    - Dst: is_subtype_with_mro
      Src: /src/cpython/Objects/typeobject.c:11961,1
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:11961,1
    - Dst: PyDescr_TYPE
      Src: /src/cpython/Objects/typeobject.c:11961,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:11976,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Objects/typeobject.c:11977,1
    - Dst: _PyCFunction_CAST
      Src: /src/cpython/Objects/typeobject.c:11978,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:12007,1
    - Dst: type_clear_flags
      Src: /src/cpython/Objects/typeobject.c:12018,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Objects/typeobject.c:12022,1
    - Dst: queue_slot_update
      Src: /src/cpython/Objects/typeobject.c:12035,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12044,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 4
    argNames:
    - type
    - p
    - next_p
    - queued_updates
    argTypes:
    - PyTypeObject*
    - pytype_slotdef*
    - pytype_slotdef**
    - slot_update_t*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 11921
        line_start: 11921
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (queued_updates == NULL)
      pos:
        line_end: 12043
        line_start: 12043
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12052
      start: 11890
    functionDepth: 8
    functionLinenumber: 11890
    functionLinenumberEnd: 12052
    functionName: update_one_slot
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GET_FUNCTION
    - lookup_tp_mro
    - PyStackRef_CLOSE
    - assert
    - Py_IS_TYPE
    - _PyCFunction_CAST
    - slotptr
    - PyDescr_TYPE
    - is_subtype_with_mro
    - find_name_in_mro
    - PyErr_Occurred
    - ASSERT_NEW_TYPE_OR_LOCKED
    - PyStackRef_AsPyObjectBorrow
    - type_clear_flags
    - queue_slot_update
    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:12059,1
    - Dst: update_one_slot
      Src: /src/cpython/Objects/typeobject.c:12064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - data
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12069
      start: 12056
    functionDepth: 9
    functionLinenumber: 12056
    functionLinenumberEnd: 12069
    functionName: update_slots_callback
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - update_one_slot
    - ASSERT_NEW_TYPE_OR_LOCKED
    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:12080,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12081,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/typeobject.c:12081,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12082,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/typeobject.c:12082,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12086,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/typeobject.c:12086,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12087,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Objects/typeobject.c:12087,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12088,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/typeobject.c:12088,1
    - Dst: update_subclasses
      Src: /src/cpython/Objects/typeobject.c:12108,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: 12080
        line_start: 12080
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_CHECK_INTERNED(name))
      pos:
        line_end: 12081
        line_start: 12081
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_CheckExact(p->name_strobj))
      pos:
        line_end: 12085
        line_start: 12085
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_CHECK_INTERNED(p->name_strobj))
      pos:
        line_end: 12086
        line_start: 12086
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 12087
        line_start: 12087
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12110
      start: 12072
    functionDepth: 1
    functionLinenumber: 12072
    functionLinenumberEnd: 12110
    functionName: update_slot
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_CheckExact
    - assert
    - update_subclasses
    - ASSERT_TYPE_LOCK_HELD
    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:12118,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:12118,1
    - Dst: update_one_slot
      Src: /src/cpython/Objects/typeobject.c:12120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 12117
        line_start: 12117
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12122
      start: 12115
    functionDepth: 9
    functionLinenumber: 12115
    functionLinenumberEnd: 12122
    functionName: fixup_slot_dispatchers
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - update_one_slot
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: void
    signature: void fixup_slot_dispatchers(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: update_slot
      Src: /src/cpython/Objects/typeobject.c:12137,1
    - Dst: slot_update_free_chunks
      Src: /src/cpython/Objects/typeobject.c:12139,1
    - Dst: apply_type_slot_updates
      Src: /src/cpython/Objects/typeobject.c:12145,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:12146,1
    - Dst: slot_update_free_chunks
      Src: /src/cpython/Objects/typeobject.c:12147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12150
      start: 12127
    functionDepth: 5
    functionLinenumber: 12127
    functionLinenumberEnd: 12150
    functionName: update_all_slots
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - slot_update_free_chunks
    - apply_type_slot_updates
    - update_slot
    - 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:12161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12164
      start: 12155
    functionDepth: 2
    functionLinenumber: 12155
    functionLinenumberEnd: 12164
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/typeobject.c:12171,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/typeobject.c:12175,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12183,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:12185,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/cpython/Objects/typeobject.c:12191,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/typeobject.c:12196,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:12199,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12204,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Objects/typeobject.c:12204,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/typeobject.c:12205,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12208,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/typeobject.c:12212,1
    - Dst: memset
      Src: /src/cpython/Objects/typeobject.c:12215,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:12220,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/typeobject.c:12221,1
    - Dst: memcpy
      Src: /src/cpython/Objects/typeobject.c:12225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12229,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12234,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (idx < 255)
      pos:
        line_end: 12182
        line_start: 12182
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyByteArray_CheckExact(bytearray))
      pos:
        line_end: 12203
        line_start: 12203
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (data[0] < MAX_EQUIV)
      pos:
        line_end: 12207
        line_start: 12207
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12236
      start: 12168
    functionDepth: 11
    functionLinenumber: 12168
    functionLinenumberEnd: 12236
    functionName: _PyType_InitSlotDefs
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_FromStringAndSize
    - _Py_IsMainInterpreter
    - PyDict_Next
    - PyDict_SetItem
    - Py_CLEAR
    - memset
    - memcpy
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - PyByteArray_CheckExact
    - PyByteArray_AS_STRING
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int _PyType_InitSlotDefs(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/typeobject.c:12242,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/typeobject.c:12243,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12247,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12250,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/typeobject.c:12251,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (slotdefs[len].name == NULL)
      pos:
        line_end: 12246
        line_start: 12246
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (slotdef->name != NULL)
      pos:
        line_end: 12249
        line_start: 12249
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12254
      start: 12239
    functionDepth: 4
    functionLinenumber: 12239
    functionLinenumberEnd: 12254
    functionName: _PyType_GetSlotWrapperNames
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyList_SET_ITEM
    - Py_ARRAY_LENGTH
    - PyList_New
    - assert
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetSlotWrapperNames(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:12262,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/typeobject.c:12263,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:12270,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/cpython/Objects/typeobject.c:12271,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:12272,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:12274,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/typeobject.c:12280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12281,1
    - Dst: _PyErr_FormatNote
      Src: /src/cpython/Objects/typeobject.c:12284,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12287,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12301
      start: 12259
    functionDepth: 13
    functionLinenumber: 12259
    functionLinenumberEnd: 12301
    functionName: type_new_set_names
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyErr_FormatNote
    - _PyObject_LookupSpecial
    - PyDict_Next
    - lookup_tp_dict
    - PyDict_Copy
    - PyObject_CallFunctionObjArgs
    - PyErr_Occurred
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int type_new_set_names(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typeobject.c:12309,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/typeobject.c:12315,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:12315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12316,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Objects/typeobject.c:12321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - type
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12329
      start: 12305
    functionDepth: 3
    functionLinenumber: 12305
    functionLinenumberEnd: 12329
    functionName: type_new_init_subclass
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyObject_Vectorcall
    - PyObject_GetAttr
    - _Py_ID
    - Py_DECREF
    - PyObject_VectorcallDict
    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:12340,1
    - Dst: recurse_down_subclasses
      Src: /src/cpython/Objects/typeobject.c:12343,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: 12344
      start: 12336
    functionDepth: 1
    functionLinenumber: 12336
    functionLinenumberEnd: 12344
    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:12353,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12357,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/typeobject.c:12357,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/typeobject.c:12361,1
    - Dst: type_from_ref
      Src: /src/cpython/Objects/typeobject.c:12362,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:12368,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:12369,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:12370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12376,1
    - Dst: update_subclasses
      Src: /src/cpython/Objects/typeobject.c:12381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12385,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: 12356
        line_start: 12356
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12388
      start: 12346
    functionDepth: 5
    functionLinenumber: 12346
    functionLinenumberEnd: 12388
    functionName: recurse_down_subclasses
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - lookup_tp_subclasses
    - PyDict_Next
    - lookup_tp_dict
    - PyDict_Contains
    - PyDict_Check
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - type_from_ref
    - update_subclasses
    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:12393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - type
    - slotdef
    - slot
    argTypes:
    - PyTypeObject*
    - pytype_slotdef*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12408
      start: 12390
    functionDepth: 1
    functionLinenumber: 12390
    functionLinenumberEnd: 12408
    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:12443,1
    - Dst: slotptr
      Src: /src/cpython/Objects/typeobject.c:12451,1
    - Dst: slot_inherited
      Src: /src/cpython/Objects/typeobject.c:12457,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/typeobject.c:12461,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:12471,1
    - Dst: PyDescr_NewWrapper
      Src: /src/cpython/Objects/typeobject.c:12475,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/typeobject.c:12478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12482,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12486
      start: 12440
    functionDepth: 10
    functionLinenumber: 12440
    functionLinenumberEnd: 12486
    functionName: add_operators
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - slot_inherited
    - slotptr
    - lookup_tp_dict
    - PyDict_SetItem
    - PyDict_Contains
    - Py_DECREF
    - PyDescr_NewWrapper
    linkageType: ''
    returnType: int
    signature: int add_operators(PyTypeObject *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_get_mro
      Src: /src/cpython/Objects/typeobject.c:12493,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:12494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12495,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12496,1
    - Dst: check_immutable_bases
      Src: /src/cpython/Objects/typeobject.c:12500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12501,1
    - Dst: BEGIN_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:12506,1
    - Dst: types_stop_world
      Src: /src/cpython/Objects/typeobject.c:12507,1
    - Dst: type_add_flags
      Src: /src/cpython/Objects/typeobject.c:12508,1
    - Dst: types_start_world
      Src: /src/cpython/Objects/typeobject.c:12509,1
    - Dst: ASSERT_TYPE_LOCK_HELD
      Src: /src/cpython/Objects/typeobject.c:12510,1
    - Dst: type_modified_unlocked
      Src: /src/cpython/Objects/typeobject.c:12511,1
    - Dst: END_TYPE_LOCK
      Src: /src/cpython/Objects/typeobject.c:12512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12515
      start: 12489
    functionDepth: 6
    functionLinenumber: 12489
    functionLinenumberEnd: 12515
    functionName: PyType_Freeze
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - type_get_mro
    - PyErr_SetString
    - BEGIN_TYPE_LOCK
    - types_start_world
    - END_TYPE_LOCK
    - type_modified_unlocked
    - check_immutable_bases
    - PyTuple_Check
    - Py_DECREF
    - type_add_flags
    - types_stop_world
    - ASSERT_TYPE_LOCK_HELD
    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: 12528
      start: 12527
    functionDepth: 0
    functionLinenumber: 12527
    functionLinenumberEnd: 12528
    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:12542,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/typeobject.c:12544,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12545,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12546,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12547,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12549
      start: 12539
    functionDepth: 1
    functionLinenumber: 12539
    functionLinenumberEnd: 12549
    functionName: super_dealloc
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - superobject_CAST
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void super_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: superobject_CAST
      Src: /src/cpython/Objects/typeobject.c:12554,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:12557,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/typeobject.c:12562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12565
      start: 12551
    functionDepth: 10
    functionLinenumber: 12551
    functionLinenumberEnd: 12565
    functionName: super_repr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - superobject_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      super_repr(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_tp_mro
      Src: /src/cpython/Objects/typeobject.c:12577,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:12583,1
    - Dst: _PyThreadState_PushCStackRefNew
      Src: /src/cpython/Objects/typeobject.c:12585,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12587,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/typeobject.c:12587,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/typeobject.c:12588,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:12592,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:12597,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:12602,1
    - Dst: lookup_tp_dict
      Src: /src/cpython/Objects/typeobject.c:12603,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/typeobject.c:12603,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12604,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/typeobject.c:12604,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/typeobject.c:12606,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:12608,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/typeobject.c:12614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - su_type
    - su_obj_type
    - name
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 12586
        line_start: 12586
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (dict != NULL && PyDict_Check(dict))
      pos:
        line_end: 12603
        line_start: 12603
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12616
      start: 12571
    functionDepth: 8
    functionLinenumber: 12571
    functionLinenumberEnd: 12616
    functionName: _PySuper_LookupDescr
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_PushCStackRefNew
    - lookup_tp_mro
    - PyTuple_GET_ITEM
    - _PyThreadState_PopCStackRef
    - lookup_tp_dict
    - _PyThreadState_GET
    - PyDict_Check
    - PyTuple_Check
    - assert
    - PyDict_GetItemRef
    - PyTuple_GET_SIZE
    - _PyType_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySuper_LookupDescr(PyTypeObject *su_type, PyTypeObject *su_obj_type, PyObject
      *name)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PySuper_LookupDescr
      Src: /src/cpython/Objects/typeobject.c:12631,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Objects/typeobject.c:12633,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12633,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12637,1
    - Dst: f
      Src: /src/cpython/Objects/typeobject.c:12640,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/typeobject.c:12645,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/typeobject.c:12651,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Objects/typeobject.c:12658,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Objects/typeobject.c:12664,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12666,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: 12669
      start: 12620
    functionDepth: 9
    functionLinenumber: 12620
    functionLinenumberEnd: 12669
    functionName: do_super_lookup
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - PyObject_GenericGetAttr
    - PyObject_Vectorcall
    - Py_SETREF
    - _PySuper_LookupDescr
    - PyErr_Occurred
    - Py_DECREF
    - f
    - Py_TYPE
    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:12674,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:12678,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/typeobject.c:12679,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:12680,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:12680,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Objects/typeobject.c:12681,1
    - Dst: do_super_lookup
      Src: /src/cpython/Objects/typeobject.c:12683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12684
      start: 12671
    functionDepth: 10
    functionLinenumber: 12671
    functionLinenumberEnd: 12684
    functionName: super_getattro
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - superobject_CAST
    - _PyUnicode_Equal
    - PyUnicode_Check
    - do_super_lookup
    - PyUnicode_GET_LENGTH
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      super_getattro(PyObject *self, PyObject *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12705,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:12705,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12706,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:12710,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12710,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12711,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12711,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/typeobject.c:12717,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:12717,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12721,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12722,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/typeobject.c:12724,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/typeobject.c:12730,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12735,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12741,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:12744,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - type
    - obj
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12750
      start: 12686
    functionDepth: 3
    functionLinenumber: 12686
    functionLinenumberEnd: 12750
    functionName: supercheck
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_IsSubtype
    - PyType_Check
    - PyObject_GetOptionalAttr
    - Py_XDECREF
    - PyErr_Format
    - Py_NewRef
    - Py_TYPE
    - _Py_ID
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      supercheck(PyTypeObject *type, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: supercheck
      Src: /src/cpython/Objects/typeobject.c:12755,1
    - Dst: do_super_lookup
      Src: /src/cpython/Objects/typeobject.c:12759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12760,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: 12762
      start: 12752
    functionDepth: 10
    functionLinenumber: 12752
    functionLinenumberEnd: 12762
    functionName: _PySuper_Lookup
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - supercheck
    - do_super_lookup
    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:12767,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12772,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/typeobject.c:12774,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Objects/typeobject.c:12777,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12777,1
    - Dst: supercheck
      Src: /src/cpython/Objects/typeobject.c:12781,1
    - Dst: tp_new
      Src: /src/cpython/Objects/typeobject.c:12784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12787,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12790,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/typeobject.c:12791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12795
      start: 12764
    functionDepth: 4
    functionLinenumber: 12764
    functionLinenumberEnd: 12795
    functionName: super_descr_get
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - superobject_CAST
    - PyObject_CallFunctionObjArgs
    - tp_new
    - Py_DECREF
    - supercheck
    - Py_NewRef
    - Py_TYPE
    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:12801,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12803,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12808,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/typeobject.c:12808,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:12809,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/typeobject.c:12809,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12811,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/typeobject.c:12817,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/typeobject.c:12818,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12821,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/typeobject.c:12821,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/typeobject.c:12822,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12823,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/typeobject.c:12823,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/typeobject.c:12824,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12826,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:12831,1
    - Dst: PyUnstable_Code_GetFirstFree
      Src: /src/cpython/Objects/typeobject.c:12836,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12838,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/typeobject.c:12838,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/typeobject.c:12839,1
    - Dst: assert
      Src: /src/cpython/Objects/typeobject.c:12840,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/typeobject.c:12840,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/typeobject.c:12841,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/typeobject.c:12841,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/typeobject.c:12842,1
    - Dst: _PyFrame_GetLocalsArray
      Src: /src/cpython/Objects/typeobject.c:12842,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/typeobject.c:12843,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12846,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Objects/typeobject.c:12849,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12851,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12853,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12856,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:12857,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12861,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12868,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12870,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - cframe
    - type_p
    - obj_p
    argTypes:
    - _PyInterpreterFrame*
    - PyTypeObject**
    - PyObject**
    assertStmts:
    - condition: "(_PyCode_CODE(co)[0].op.code == MAKE_CELL ||\n                _PyCode_CODE(co)[0].op.code
        == COPY_FREE_VARS)"
      pos:
        line_end: 12821
        line_start: 12820
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyCell_Check(firstarg))
      pos:
        line_end: 12822
        line_start: 12822
        source_file: /src/cpython/Objects/typeobject.c
    - condition: ((_PyLocals_GetKind(co->co_localspluskinds, i) & CO_FAST_FREE) !=
        0)
      pos:
        line_end: 12837
        line_start: 12837
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (_PyFrame_GetCode(cframe)->co_nlocalsplus > 0)
      pos:
        line_end: 12807
        line_start: 12807
        source_file: /src/cpython/Objects/typeobject.c
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 12839
        line_start: 12839
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 12877
      start: 12797
    functionDepth: 2
    functionLinenumber: 12797
    functionLinenumberEnd: 12877
    functionName: super_init_without_args
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyCell_GetRef
    - PyUnstable_Code_GetFirstFree
    - PyTuple_GET_ITEM
    - PyType_Check
    - assert
    - Py_TYPE
    - PyUnicode_Check
    - PyCell_Check
    - _PyInterpreterFrame_LASTI
    - _PyFrame_GetLocalsArray
    - Py_INCREF
    - _PyFrame_GetCode
    - PyErr_SetString
    - Py_DECREF
    - _PyUnicode_Equal
    - _PyCode_CODE
    - _PyLocals_GetKind
    - PyErr_Format
    - PyStackRef_AsPyObjectBorrow
    - _Py_ID
    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:12887,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Objects/typeobject.c:12889,1
    - Dst: super_init_impl
      Src: /src/cpython/Objects/typeobject.c:12891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12895
      start: 12881
    functionDepth: 1
    functionLinenumber: 12881
    functionLinenumberEnd: 12895
    functionName: super_init
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyArg_ParseTuple
    - super_init_impl
    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:12899,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/typeobject.c:12904,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Objects/typeobject.c:12905,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/typeobject.c:12907,1
    - Dst: super_init_without_args
      Src: /src/cpython/Objects/typeobject.c:12911,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/typeobject.c:12918,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/typeobject.c:12919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12923,1
    - Dst: supercheck
      Src: /src/cpython/Objects/typeobject.c:12927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:12930,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:12934,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:12935,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/typeobject.c:12936,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - type
    - obj
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12938
      start: 12897
    functionDepth: 4
    functionLinenumber: 12897
    functionLinenumberEnd: 12938
    functionName: super_init_impl
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - superobject_CAST
    - Py_XSETREF
    - PyErr_SetString
    - super_init_without_args
    - supercheck
    - _PyThreadState_GET
    - Py_DECREF
    - _PyThreadState_GetFrame
    - Py_XINCREF
    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:12959,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:12961,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:12962,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/typeobject.c:12963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12966
      start: 12956
    functionDepth: 1
    functionLinenumber: 12956
    functionLinenumberEnd: 12966
    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:12972,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12972,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Objects/typeobject.c:12973,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/typeobject.c:12976,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/typeobject.c:12977,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/typeobject.c:12983,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/typeobject.c:12990,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/typeobject.c:12991,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/typeobject.c:12992,1
    - Dst: super_init_impl
      Src: /src/cpython/Objects/typeobject.c:13000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/typeobject.c:13005,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: 12971
        line_start: 12971
        source_file: /src/cpython/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 13007
      start: 12968
    functionDepth: 5
    functionLinenumber: 12968
    functionLinenumberEnd: 13007
    functionName: super_vectorcall
    functionSourceFile: /src/cpython/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyType_Check
    - super_init_impl
    - _PyArg_NoKwnames
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyVectorcall_NARGS
    - Py_TYPE
    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:
    - PyObject_GC_NewVar
    - PyErr_NoMemory
    - _PyTuple_RESET_HASH_CACHE
    - PyErr_BadInternalCall
    - _Py_FREELIST_POP
    - 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: 122
    functionsReached:
    - tuple_get_empty
    - tuple_alloc
    - _PyObject_GC_TRACK
    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:
    - PyErr_BadInternalCall
    - Py_SIZE
    - PyTuple_Check
    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: 18
    functionsReached:
    - PyErr_BadInternalCall
    - Py_SIZE
    - PyErr_SetString
    - PyTuple_Check
    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: _PyObject_IsUniquelyReferenced
      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_XSETREF
    - PyErr_SetString
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyTuple_Check
    - Py_XDECREF
    - _PyObject_IsUniquelyReferenced
    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:
    - PyTuple_GET_ITEM
    - Py_SIZE
    - _PyObject_GC_MAY_BE_TRACKED
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - PyTuple_CheckExact
    linkageType: ''
    returnType: void
    signature: void _PyTuple_MaybeUntrack(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/tupleobject.c:168,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/tupleobject.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: maybe_tracked
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyType_IS_GC
    - Py_TYPE
    linkageType: ''
    returnType: bool
    signature: bool maybe_tracked(PyObject *ob)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:181,1
    - Dst: va_start
      Src: /src/cpython/Objects/tupleobject.c:184,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:185,1
    - Dst: va_end
      Src: /src/cpython/Objects/tupleobject.c:187,1
    - Dst: va_arg
      Src: /src/cpython/Objects/tupleobject.c:192,1
    - Dst: maybe_tracked
      Src: /src/cpython/Objects/tupleobject.c:193,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:196,1
    - Dst: va_end
      Src: /src/cpython/Objects/tupleobject.c:198,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 203
    functionName: PyTuple_Pack
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 49
    functionsReached:
    - maybe_tracked
    - _PyObject_GC_TRACK
    - va_start
    - tuple_get_empty
    - va_end
    - va_arg
    - tuple_alloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_Pack(Py_ssize_t n, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:208,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:209,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/tupleobject.c:211,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:211,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (first != NULL)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (second != NULL)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: _PyTuple_FromPair
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 31
    functionsReached:
    - _PyTuple_FromPairSteal
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_FromPair(PyObject *first, PyObject *second)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:217,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:218,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:223,1
    - Dst: maybe_tracked
      Src: /src/cpython/Objects/tupleobject.c:229,1
    - Dst: maybe_tracked
      Src: /src/cpython/Objects/tupleobject.c:229,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (first != NULL)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (second != NULL)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: _PyTuple_FromPairSteal
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 31
    functionsReached:
    - maybe_tracked
    - _PyObject_GC_TRACK
    - assert
    - Py_DECREF
    - tuple_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_FromPairSteal(PyObject *first, PyObject *second)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:244,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:244,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:245,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:246,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:246,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:247,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/tupleobject.c:247,1
    - Dst: maybe_freelist_push
      Src: /src/cpython/Objects/tupleobject.c:249,1
    - Dst: tp_free
      Src: /src/cpython/Objects/tupleobject.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(obj))
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (Py_SIZE(op) != 0)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (!_PyObject_GC_IS_TRACKED(obj))
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: _PyStolenTuple_Free
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - maybe_freelist_push
    - assert
    - tp_free
    - _PyTuple_CAST
    - _PyObject_GC_IS_TRACKED
    - PyTuple_CheckExact
    linkageType: ''
    returnType: void
    signature: void _PyStolenTuple_Free(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:257,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:258,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/tupleobject.c:260,1
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Objects/tupleobject.c:262,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:269,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:269,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/tupleobject.c:273,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:275,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/tupleobject.c:277,1
    - Dst: maybe_freelist_push
      Src: /src/cpython/Objects/tupleobject.c:280,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/tupleobject.c:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyTuple_CheckExact(op))
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 283
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 283
    functionName: tuple_dealloc
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - maybe_freelist_push
    - PyObject_GC_UnTrack
    - assert
    - _Py_SINGLETON
    - _PyTuple_CAST
    - Py_XDECREF
    - PyTuple_CheckExact
    - _Py_FatalRefcountError
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void tuple_dealloc(PyObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:288,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:289,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/tupleobject.c:291,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/tupleobject.c:298,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/tupleobject.c:300,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/tupleobject.c:312,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:317,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:324,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:327,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Objects/tupleobject.c:332,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:338,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/tupleobject.c:342,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/tupleobject.c:346,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/tupleobject.c:347,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/tupleobject.c:350,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/tupleobject.c:351,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 353
    functionName: tuple_repr
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicode_FromString
    - Py_ReprLeave
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteChar
    - Py_ReprEnter
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_WriteRepr
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:374,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:376,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:381,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/tupleobject.c:385,1
    - Dst: _PyTuple_HASH_XXROTATE
      Src: /src/cpython/Objects/tupleobject.c:390,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 404
    functionName: tuple_hash
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - Py_SIZE
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - _PyTuple_HASH_XXROTATE
    - _PyTuple_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    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:409,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: tuple_length
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - Py_SIZE
    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:416,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:418,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/tupleobject.c:419,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - el
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 422
    functionName: tuple_contains
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int tuple_contains(PyObject *self, PyObject *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:427,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/tupleobject.c:429,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 433
    functionName: tuple_item
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyErr_SetString
    - Py_NewRef
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_item(PyObject *op, Py_ssize_t i)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:439,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:442,1
    - Dst: maybe_tracked
      Src: /src/cpython/Objects/tupleobject.c:450,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:453,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 459
    functionName: PyTuple_FromArray
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 33
    functionsReached:
    - maybe_tracked
    - _PyObject_GC_TRACK
    - tuple_get_empty
    - tuple_alloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:465,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:467,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Objects/tupleobject.c:474,1
    - Dst: maybe_tracked
      Src: /src/cpython/Objects/tupleobject.c:475,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - _PyStackRef*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 484
    functionName: _PyTuple_FromStackRefStealOnSuccess
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - PyStackRef_AsPyObjectSteal
    - maybe_tracked
    - _PyObject_GC_TRACK
    - tuple_get_empty
    - tuple_alloc
    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:490,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:495,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 506
    functionName: _PyTuple_FromArraySteal
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 2
    functionsReached:
    - tuple_get_empty
    - tuple_alloc
    - Py_DECREF
    - _PyObject_GC_TRACK
    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:514,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:515,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:518,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:518,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:519,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Objects/tupleobject.c:521,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: 522
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 522
    functionName: tuple_slice
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyTuple_CheckExact
    - Py_NewRef
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntuple_slice(PyTupleObject *a, Py_ssize_t ilow,\n           Py_ssize_t
      ihigh)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:527,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:527,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:528,1
    - Dst: _PyEval_UnpackIndices
      Src: /src/cpython/Objects/tupleobject.c:530,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:534,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Objects/tupleobject.c:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - container
    - start
    - stop
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(container))
      pos:
        line_end: 526
        line_start: 526
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 541
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 541
    functionName: _PyTuple_BinarySlice
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - PyTuple_FromArray
    - Py_SIZE
    - _PyEval_UnpackIndices
    - assert
    - PyTuple_CheckExact
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_BinarySlice(PyObject *container, PyObject *start, PyObject *stop)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:546,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:547,1
    - Dst: tuple_slice
      Src: /src/cpython/Objects/tupleobject.c:550,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: 551
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 551
    functionName: PyTuple_GetSlice
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 13
    functionsReached:
    - PyErr_BadInternalCall
    - PyTuple_Check
    - 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:556,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:557,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:557,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:558,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:560,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/tupleobject.c:561,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/tupleobject.c:563,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:568,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:568,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:569,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:571,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:571,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:571,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:572,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:572,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:574,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:577,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:584,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:586,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:590,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:591,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:593,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:596,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: 570
        line_start: 570
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 598
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 598
    functionName: _PyTuple_Concat
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyObject_GC_TRACK
    - Py_SIZE
    - tuple_get_empty
    - PyTuple_Check
    - PyErr_Format
    - _PyTuple_CAST
    - tuple_alloc
    - PyTuple_CheckExact
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_Concat(PyObject *aa, PyObject *bb)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:603,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:604,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:606,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:609,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:613,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:615,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/tupleobject.c:618,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:621,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/tupleobject.c:628,1
    - Dst: _Py_RefcntAdd
      Src: /src/cpython/Objects/tupleobject.c:638,1
    - Dst: _Py_memory_repeat
      Src: /src/cpython/Objects/tupleobject.c:642,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:645,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (n>0)
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 647
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 647
    functionName: _PyTuple_Repeat
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _Py_RefcntAdd
    - PyErr_NoMemory
    - _PyObject_GC_TRACK
    - _Py_memory_repeat
    - Py_SIZE
    - tuple_get_empty
    - assert
    - _PyTuple_CAST
    - tuple_alloc
    - PyTuple_CheckExact
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_Repeat(PyObject *self, Py_ssize_t n)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:670,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:675,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:677,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:678,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/tupleobject.c:681,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/tupleobject.c:683,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/tupleobject.c:687,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: 689
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 689
    functionName: tuple_index_impl
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_RichCompareBool
    - PyLong_FromSsize_t
    - Py_SIZE
    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:707,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/tupleobject.c:708,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/tupleobject.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyTupleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 700
    functionDepth: 4
    functionLinenumber: 700
    functionLinenumberEnd: 715
    functionName: tuple_count_impl
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyLong_FromSsize_t
    - Py_SIZE
    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:720,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:721,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/tupleobject.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: tuple_traverse
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - Py_VISIT
    - Py_SIZE
    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:734,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:734,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:740,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:741,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/tupleobject.c:755,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/tupleobject.c:765,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/tupleobject.c:777,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 778
    functionName: tuple_richcompare
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_RETURN_RICHCOMPARE
    - Py_SIZE
    - PyObject_RichCompare
    - PyTuple_Check
    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:802,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:805,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/tupleobject.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 810
    functionName: tuple_new_impl
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - tuple_get_empty
    - tuple_subtype_new
    - PySequence_Tuple
    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:816,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/tupleobject.c:820,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/tupleobject.c:821,1
    - Dst: tuple_new_impl
      Src: /src/cpython/Objects/tupleobject.c:826,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/tupleobject.c:826,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:829,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: 831
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 831
    functionName: tuple_vectorcall
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - tuple_new_impl
    - tuple_get_empty
    - _PyArg_NoKwnames
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:839,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/tupleobject.c:839,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:841,1
    - Dst: _PyType_IS_GC
      Src: /src/cpython/Objects/tupleobject.c:841,1
    - Dst: tuple_new_impl
      Src: /src/cpython/Objects/tupleobject.c:843,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:846,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:846,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/tupleobject.c:848,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:850,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:854,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:855,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:855,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:857,1
    - Dst: _PyTuple_RESET_HASH_CACHE
      Src: /src/cpython/Objects/tupleobject.c:859,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/tupleobject.c:862,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:863,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: 838
        line_start: 838
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (_PyType_IS_GC(type))
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (PyTuple_Check(tmp))
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 866
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 866
    functionName: tuple_subtype_new
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - PyType_IsSubtype
    - PyTuple_GET_ITEM
    - _PyTuple_RESET_HASH_CACHE
    - _PyType_IS_GC
    - tuple_new_impl
    - _PyObject_GC_TRACK
    - PyTuple_SET_ITEM
    - PyTuple_Check
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyObject_GC_IS_TRACKED
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_subtype_new(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:882,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:885,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/tupleobject.c:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 888
    functionName: tuple_iteritem
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: _PyObjectIndexPair
    signature: _PyObjectIndexPair tuple_iteritem(PyObject *obj, Py_ssize_t index)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/tupleobject.c:893,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/tupleobject.c:894,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/tupleobject.c:895,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/tupleobject.c:896,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:899,1
    - Dst: tuple_item
      Src: /src/cpython/Objects/tupleobject.c:900,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/tupleobject.c:902,1
    - Dst: PySlice_Unpack
      Src: /src/cpython/Objects/tupleobject.c:908,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/tupleobject.c:911,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:911,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:915,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:918,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/tupleobject.c:919,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:920,1
    - Dst: tuple_alloc
      Src: /src/cpython/Objects/tupleobject.c:923,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:930,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:934,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/tupleobject.c:939,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/tupleobject.c:941,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - op
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 890
    functionDepth: 3
    functionLinenumber: 890
    functionLinenumberEnd: 944
    functionName: tuple_subscript
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - tuple_alloc
    - PySlice_AdjustIndices
    - _PyObject_GC_TRACK
    - PyNumber_AsSsize_t
    - _PyIndex_Check
    - tuple_get_empty
    - tuple_item
    - PySlice_Unpack
    - PyErr_Occurred
    - PyErr_Format
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - Py_NewRef
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_subscript(PyObject *op, PyObject* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/tupleobject.c:954,1
    - Dst: tuple_slice
      Src: /src/cpython/Objects/tupleobject.c:954,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 950
    functionDepth: 4
    functionLinenumber: 950
    functionLinenumberEnd: 955
    functionName: tuple___getnewargs___impl
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - tuple_slice
    - Py_SIZE
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple___getnewargs___impl(PyTupleObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/tupleobject.c:1036,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1037,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/tupleobject.c:1037,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/tupleobject.c:1039,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:1040,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:1049,1
    - Dst: tuple_get_empty
      Src: /src/cpython/Objects/tupleobject.c:1050,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:1055,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Objects/tupleobject.c:1055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:1059,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/tupleobject.c:1060,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Objects/tupleobject.c:1064,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/tupleobject.c:1065,1
    - Dst: _Py_ForgetReference
      Src: /src/cpython/Objects/tupleobject.c:1068,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/tupleobject.c:1072,1
    - Dst: _PyReftracerTrack
      Src: /src/cpython/Objects/tupleobject.c:1074,1
    - Dst: PyObject_GC_Resize
      Src: /src/cpython/Objects/tupleobject.c:1075,1
    - Dst: _Py_DecRefTotal
      Src: /src/cpython/Objects/tupleobject.c:1079,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/tupleobject.c:1079,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/tupleobject.c:1081,1
    - Dst: _Py_NewReferenceNoTotal
      Src: /src/cpython/Objects/tupleobject.c:1084,1
    - Dst: memset
      Src: /src/cpython/Objects/tupleobject.c:1087,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:1090,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: 1054
        line_start: 1054
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 1092
      start: 1027
    functionDepth: 5
    functionLinenumber: 1027
    functionLinenumberEnd: 1092
    functionName: _PyTuple_Resize
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 5
    functionsReached:
    - _PyObject_GC_TRACK
    - _PyThreadState_GET
    - assert
    - _PyObject_GC_IS_TRACKED
    - PyObject_GC_Del
    - Py_XDECREF
    - _PyObject_IsUniquelyReferenced
    - Py_IS_TYPE
    - PyObject_GC_Resize
    - Py_SIZE
    - PyErr_BadInternalCall
    - _PyReftracerTrack
    - Py_DECREF
    - _Py_SINGLETON
    - PyTuple_New
    - _Py_ForgetReference
    - tuple_get_empty
    - Py_CLEAR
    - _Py_NewReferenceNoTotal
    - memset
    - _Py_DecRefTotal
    - _PyObject_GC_UNTRACK
    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: 1097
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1097
    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:1101,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/tupleobject.c:1102,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/tupleobject.c:1103,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:1104,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/tupleobject.c:1104,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/tupleobject.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_IS_TYPE(self, &PyTupleIter_Type))
      pos:
        line_end: 1103
        line_start: 1103
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 1106
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1106
    functionName: tupleiter_dealloc
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_IS_TYPE
    - Py_XDECREF
    - assert
    - _PyObject_GC_UNTRACK
    - _PyTupleIterObject_CAST
    - _Py_FREELIST_FREE
    linkageType: ''
    returnType: void
    signature: void tupleiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:1111,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/tupleobject.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1114
    functionName: tupleiter_traverse
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyTupleIterObject_CAST
    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:1119,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:1123,1
    - Dst: assert
      Src: /src/cpython/Objects/tupleobject.c:1129,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:1129,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1131,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1132,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1133,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/tupleobject.c:1134,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:1135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/tupleobject.c:1140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 1122
        line_start: 1122
        source_file: /src/cpython/Objects/tupleobject.c
    - condition: (PyTuple_Check(seq))
      pos:
        line_end: 1128
        line_start: 1128
        source_file: /src/cpython/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 1143
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1143
    functionName: tupleiter_next
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_NewRef
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyTuple_Check
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyTupleIterObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_next(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:1148,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1151,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1152,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1157,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/tupleobject.c:1159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1160
    functionName: tupleiter_len
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLong_FromSsize_t
    - _PyTupleIterObject_CAST
    - PyTuple_GET_SIZE
    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:1167,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/tupleobject.c:1167,1
    - Dst: _PyTupleIterObject_CAST
      Src: /src/cpython/Objects/tupleobject.c:1172,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1175,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1176,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/tupleobject.c:1177,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/tupleobject.c:1180,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/tupleobject.c:1182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1183
    functionName: tupleiter_reduce
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_BuildValue
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyTuple_GET_SIZE
    - _PyTupleIterObject_CAST
    - _Py_ID
    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:1188,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/tupleobject.c:1189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/tupleobject.c:1190,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1195,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1196,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/tupleobject.c:1197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1200
    functionName: tupleiter_setstate
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - _PyTupleIterObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_setstate(PyObject *self, PyObject *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/tupleobject.c:1248,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/tupleobject.c:1249,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/tupleobject.c:1252,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/tupleobject.c:1254,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/tupleobject.c:1259,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/tupleobject.c:1260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1262
    functionName: tuple_iter
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyErr_BadInternalCall
    - _Py_FREELIST_POP
    - PyTuple_Check
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_iter(PyObject *seq)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/tupleobject.c:1272,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1275,1
    - Dst: _Py_FREELIST_PUSH
      Src: /src/cpython/Objects/tupleobject.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1280
    functionName: maybe_freelist_push
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 2
    functionsReached:
    - Py_IS_TYPE
    - _Py_FREELIST_PUSH
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int maybe_freelist_push(PyTupleObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Objects/tupleobject.c:1289,1
    - Dst: _PyDebugAllocatorStats
      Src: /src/cpython/Objects/tupleobject.c:1291,1
    - Dst: _Py_FREELIST_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1291,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Objects/tupleobject.c:1292,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/tupleobject.c:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1294
    functionName: _PyTuple_DebugMallocStats
    functionSourceFile: /src/cpython/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - _PyDebugAllocatorStats
    - _PyObject_VAR_SIZE
    - _PyType_PreHeaderSize
    - _Py_FREELIST_SIZE
    - PyOS_snprintf
    linkageType: ''
    returnType: void
    signature: void _PyTuple_DebugMallocStats(FILE *out)
  - BBCount: 2024
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2178
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6541
      start: 4362
    functionDepth: 0
    functionLinenumber: 4362
    functionLinenumberEnd: 6541
    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: 6581
      start: 6546
    functionDepth: 0
    functionLinenumber: 6546
    functionLinenumberEnd: 6581
    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: 6603
      start: 6587
    functionDepth: 0
    functionLinenumber: 6587
    functionLinenumberEnd: 6603
    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: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    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: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    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: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    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: 525
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 525
    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: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    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: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    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: 529
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 529
    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: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    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: 531
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 531
    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: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    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_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:538,1
    - 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: 11
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 535
    functionDepth: 6
    functionLinenumber: 535
    functionLinenumberEnd: 555
    functionName: _odict_get_index_raw
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _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: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:563,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Objects/odictobject.c:569,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/odictobject.c:571,1
    - Dst: _odict_get_index_raw
      Src: /src/cpython/Objects/odictobject.c:579,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:579,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:580,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/odictobject.c:582,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/odictobject.c:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 560
    functionDepth: 7
    functionLinenumber: 560
    functionLinenumberEnd: 594
    functionName: _odict_resize
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _odictnode_KEY
    - PyErr_NoMemory
    - PyMem_NEW
    - _odict_get_index_raw
    - PyMem_Free
    - _odictnode_HASH
    linkageType: ''
    returnType: int
    signature: int _odict_resize(PyODictObject *od)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _odict_get_index_raw
      Src: /src/cpython/Objects/odictobject.c:579,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:579,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:580,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/odictobject.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 578
    functionDepth: 7
    functionLinenumber: 578
    functionLinenumberEnd: 586
    functionName: _odict_FOREACH
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_HASH
    - _odictnode_KEY
    - _odict_get_index_raw
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:600,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:603,1
    - Dst: _odict_resize
      Src: /src/cpython/Objects/odictobject.c:609,1
    - Dst: _odict_get_index_raw
      Src: /src/cpython/Objects/odictobject.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 615
      start: 597
    functionDepth: 8
    functionLinenumber: 597
    functionLinenumberEnd: 615
    functionName: _odict_get_index
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_resize
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _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: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:621,1
    - Dst: _odict_EMPTY
      Src: /src/cpython/Objects/odictobject.c:624,1
    - Dst: _odict_get_index
      Src: /src/cpython/Objects/odictobject.c:626,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 631
      start: 618
    functionDepth: 9
    functionLinenumber: 618
    functionLinenumberEnd: 631
    functionName: _odict_find_node_hash
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _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: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:636,1
    - Dst: _odict_EMPTY
      Src: /src/cpython/Objects/odictobject.c:640,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/odictobject.c:642,1
    - Dst: _odict_get_index
      Src: /src/cpython/Objects/odictobject.c:645,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - od
    - key
    argTypes:
    - PyODictObject*
    - PyObject*
    assertStmts:
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 650
      start: 633
    functionDepth: 9
    functionLinenumber: 633
    functionLinenumberEnd: 650
    functionName: _odict_find_node
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyObject_Hash
    - _odict_get_index
    - _odict_EMPTY
    - assert
    linkageType: ''
    returnType: _ODictNode
    signature: '_ODictNode *

      _odict_find_node(PyODictObject *od, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:655,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:656,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:657,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:657,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:658,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:659,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:661,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:661,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 664
    functionName: _odict_add_head
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _odictnode_PREV
    - _odictnode_NEXT
    - _odict_FIRST
    - _odict_LAST
    linkageType: ''
    returnType: void
    signature: void _odict_add_head(PyODictObject *od, _ODictNode *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:669,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:670,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:670,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:671,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:672,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:673,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:675,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:675,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 678
    functionName: _odict_add_tail
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _odictnode_PREV
    - _odictnode_NEXT
    - _odict_FIRST
    - _odict_LAST
    linkageType: ''
    returnType: void
    signature: void _odict_add_tail(PyODictObject *od, _ODictNode *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:684,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:688,1
    - Dst: _odict_get_index
      Src: /src/cpython/Objects/odictobject.c:689,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:691,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:693,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:699,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/odictobject.c:704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:706,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/odictobject.c:707,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:711,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:712,1
    - Dst: _odict_add_tail
      Src: /src/cpython/Objects/odictobject.c:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 716
      start: 681
    functionDepth: 9
    functionLinenumber: 681
    functionLinenumberEnd: 716
    functionName: _odict_add_new_node
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - Py_INCREF
    - _odictnode_KEY
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyErr_SetObject
    - _odict_get_index
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - _odictnode_HASH
    - _odict_add_tail
    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: 724
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 724
    functionName: _odictnode_DEALLOC
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odictnode_DEALLOC(node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:729,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:730,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:731,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:731,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:732,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:733,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:733,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:733,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:735,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:736,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:736,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:737,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:738,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:738,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:738,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:740,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 743
    functionName: _odict_remove_node
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _odictnode_PREV
    - _odictnode_NEXT
    - _odict_FIRST
    - _odict_LAST
    linkageType: ''
    returnType: void
    signature: void _odict_remove_node(PyODictObject *od, _ODictNode *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:765,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:768,1
    - Dst: _odict_EMPTY
      Src: /src/cpython/Objects/odictobject.c:769,1
    - Dst: _odict_get_index
      Src: /src/cpython/Objects/odictobject.c:774,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:776,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:778,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:781,1
    - Dst: _odict_remove_node
      Src: /src/cpython/Objects/odictobject.c:789,1
    - Dst: _odictnode_DEALLOC
      Src: /src/cpython/Objects/odictobject.c:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - od
    - node
    - key
    - hash
    argTypes:
    - PyODictObject*
    - _ODictNode*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 767
        line_start: 767
        source_file: /src/cpython/Objects/odictobject.c
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 777
        line_start: 777
        source_file: /src/cpython/Objects/odictobject.c
    - condition: (node == od->od_fast_nodes[i])
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 792
      start: 761
    functionDepth: 9
    functionLinenumber: 761
    functionLinenumberEnd: 792
    functionName: _odict_clear_node
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _odict_get_index
    - _odict_EMPTY
    - _odictnode_DEALLOC
    - PyErr_Occurred
    - assert
    - _odict_remove_node
    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:799,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:804,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:805,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:806,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:808,1
    - Dst: _odictnode_DEALLOC
      Src: /src/cpython/Objects/odictobject.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 813
    functionName: _odict_clear_nodes
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_NEXT
    - _odictnode_DEALLOC
    - PyMem_Free
    - _odict_FIRST
    - _odict_LAST
    linkageType: ''
    returnType: void
    signature: void _odict_clear_nodes(PyODictObject *od)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:827,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:828,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:839,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:839,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:840,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:840,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/odictobject.c:841,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:842,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:843,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:848,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:859,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:860,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyODictObject*
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 818
    functionDepth: 4
    functionLinenumber: 818
    functionLinenumberEnd: 863
    functionName: _odict_keys_equal
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - _odictnode_KEY
    - PyErr_SetString
    - _odictnode_NEXT
    - Py_DECREF
    - Py_NewRef
    - _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:876,1
    - Dst: PyODict_SetItem
      Src: /src/cpython/Objects/odictobject.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - od
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 879
    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:901,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:902,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:906,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/odictobject.c:909,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/odictobject.c:912,1
    - Dst: mutablemapping_update_arg
      Src: /src/cpython/Objects/odictobject.c:916,1
    - Dst: right::right
      Src: /src/cpython/Objects/odictobject.c:916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 921
    functionName: odict_or
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - right::right
    - mutablemapping_update_arg
    - PyODict_Check
    - Py_TYPE
    - PyObject_CallOneArg
    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:926,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: odict_inplace_or
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - mutablemapping_update_arg
    - Py_NewRef
    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:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - seq
    - value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 957
    functionDepth: 11
    functionLinenumber: 957
    functionLinenumberEnd: 962
    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: _PyDict_SizeOf_LockHeld
      Src: /src/cpython/Objects/odictobject.c:973,1
    - Dst: _odict_EMPTY
      Src: /src/cpython/Objects/odictobject.c:975,1
    - Dst: PyODict_SIZE
      Src: /src/cpython/Objects/odictobject.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 979
    functionName: OrderedDict___sizeof___impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_SizeOf_LockHeld
    - _odict_EMPTY
    - PyODict_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t OrderedDict___sizeof___impl(PyODictObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetState
      Src: /src/cpython/Objects/odictobject.c:996,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/odictobject.c:1001,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Objects/odictobject.c:1005,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/odictobject.c:1005,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/odictobject.c:1009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1010,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/odictobject.c:1014,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:1014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1015,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1018,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1019,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 988
    functionDepth: 18
    functionLinenumber: 988
    functionLinenumberEnd: 1022
    functionName: OrderedDict___reduce___impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GetIter
    - _PyObject_GetState
    - PyTuple_Pack
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyTuple_New
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict___reduce___impl(PyODictObject *od)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_CheckExact
      Src: /src/cpython/Objects/odictobject.c:1047,1
    - Dst: PyODict_GetItemWithError
      Src: /src/cpython/Objects/odictobject.c:1048,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1050,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:1052,1
    - Dst: _odict_find_node
      Src: /src/cpython/Objects/odictobject.c:1052,1
    - Dst: PyODict_SetItem_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1053,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1054,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:1058,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/odictobject.c:1062,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/odictobject.c:1067,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:1069,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1070,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: 1051
        line_start: 1051
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 1075
      start: 1040
    functionDepth: 10
    functionLinenumber: 1040
    functionLinenumberEnd: 1075
    functionName: OrderedDict_setdefault_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyODict_CheckExact
    - Py_INCREF
    - _odict_find_node
    - PySequence_Contains
    - Py_NewRef
    - PyObject_GetItem
    - PyErr_Occurred
    - assert
    - PyObject_SetItem
    - PyODict_SetItem_LockHeld
    - PyODict_GetItemWithError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nOrderedDict_setdefault_impl(PyODictObject *self, PyObject
      *key,\n                            PyObject *default_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:1083,1
    - Dst: _odict_find_node_hash
      Src: /src/cpython/Objects/odictobject.c:1086,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1086,1
    - Dst: _odict_clear_node
      Src: /src/cpython/Objects/odictobject.c:1091,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1091,1
    - Dst: _PyDict_Pop_KnownHash
      Src: /src/cpython/Objects/odictobject.c:1096,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1098,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1101,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1104,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - od
    - key
    - failobj
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1079
    functionDepth: 10
    functionLinenumber: 1079
    functionLinenumberEnd: 1113
    functionName: _odict_popkey_hash
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_Pop_KnownHash
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_SetObject
    - _odict_clear_node
    - _odict_find_node_hash
    - PyErr_Occurred
    - _PyODictObject_CAST
    - Py_NewRef
    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:1135,1
    - Dst: _odict_popkey_hash
      Src: /src/cpython/Objects/odictobject.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyODictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1130
    functionDepth: 11
    functionLinenumber: 1130
    functionLinenumberEnd: 1139
    functionName: OrderedDict_pop_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _odict_popkey_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:1165,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:1166,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:1170,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:1170,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1171,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1171,1
    - Dst: _odict_popkey_hash
      Src: /src/cpython/Objects/odictobject.c:1172,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:1172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1174,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/odictobject.c:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - last
    argTypes:
    - PyODictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1156
    functionDepth: 11
    functionLinenumber: 1156
    functionLinenumberEnd: 1178
    functionName: OrderedDict_popitem_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_KEY
    - _odict_popkey_hash
    - PyErr_SetString
    - _odict_EMPTY
    - _PyTuple_FromPairSteal
    - Py_DECREF
    - _odictnode_HASH
    - Py_NewRef
    - _odict_FIRST
    - _odict_LAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_popitem_impl(PyODictObject *self, int last)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_Clear_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1225,1
    - Dst: _odict_clear_nodes
      Src: /src/cpython/Objects/odictobject.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1221
    functionDepth: 10
    functionLinenumber: 1221
    functionLinenumberEnd: 1228
    functionName: OrderedDict_clear_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_clear_nodes
    - _PyDict_Clear_LockHeld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_clear_impl(PyODictObject *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_CheckExact
      Src: /src/cpython/Objects/odictobject.c:1247,1
    - Dst: PyODict_New
      Src: /src/cpython/Objects/odictobject.c:1248,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/odictobject.c:1250,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:1250,1
    - Dst: PyODict_CheckExact
      Src: /src/cpython/Objects/odictobject.c:1254,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1256,1
    - Dst: _odictnode_VALUE
      Src: /src/cpython/Objects/odictobject.c:1257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1259,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1260,1
    - Dst: _PyODict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1263,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:1264,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/odictobject.c:1271,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1272,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:1275,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1285,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1287
    functionName: OrderedDict_copy_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_VALUE
    - PyODict_CheckExact
    - _odictnode_KEY
    - _PyODict_SetItem_KnownHash_LockHeld
    - PyErr_SetObject
    - PyODict_New
    - PyObject_GetItem
    - PyErr_Occurred
    - Py_DECREF
    - _odictnode_HASH
    - _PyObject_CallNoArgs
    - PyObject_SetItem
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_copy_impl(PyObject *od)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1256,1
    - Dst: _odictnode_VALUE
      Src: /src/cpython/Objects/odictobject.c:1257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1259,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1260,1
    - Dst: _PyODict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1263,1
    - Dst: _odictnode_HASH
      Src: /src/cpython/Objects/odictobject.c:1264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1266
    functionName: _odict_FOREACH
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_VALUE
    - _odictnode_KEY
    - _PyODict_SetItem_KnownHash_LockHeld
    - PyErr_SetObject
    - PyErr_Occurred
    - _odictnode_HASH
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/odictobject.c:1271,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1272,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:1275,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1269
    functionDepth: 3
    functionLinenumber: 1269
    functionLinenumberEnd: 1280
    functionName: _odict_FOREACH
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _odictnode_KEY
    - PyObject_SetItem
    - PyObject_GetItem
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1304,1
    - Dst: odictiter_new
      Src: /src/cpython/Objects/odictobject.c:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1306
    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:1329,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1330,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:1333,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:1333,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1334,1
    - Dst: _odict_find_node
      Src: /src/cpython/Objects/odictobject.c:1335,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1337,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1338,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:1343,1
    - Dst: _odict_remove_node
      Src: /src/cpython/Objects/odictobject.c:1344,1
    - Dst: _odict_add_tail
      Src: /src/cpython/Objects/odictobject.c:1345,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:1350,1
    - Dst: _odict_remove_node
      Src: /src/cpython/Objects/odictobject.c:1351,1
    - Dst: _odict_add_head
      Src: /src/cpython/Objects/odictobject.c:1352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - key
    - last
    argTypes:
    - PyODictObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1323
    functionDepth: 10
    functionLinenumber: 1323
    functionLinenumberEnd: 1357
    functionName: OrderedDict_move_to_end_impl
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_KEY
    - _odict_find_node
    - _odict_add_head
    - PyErr_SetObject
    - _odict_EMPTY
    - PyErr_Occurred
    - _odict_add_tail
    - _odict_remove_node
    - _odict_FIRST
    - _odict_LAST
    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:1410,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/odictobject.c:1411,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1413,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/odictobject.c:1414,1
    - Dst: _odict_clear_nodes
      Src: /src/cpython/Objects/odictobject.c:1416,1
    - Dst: tp_dealloc
      Src: /src/cpython/Objects/odictobject.c:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1407
    functionDepth: 3
    functionLinenumber: 1407
    functionLinenumberEnd: 1418
    functionName: odict_dealloc
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - _PyODictObject_CAST
    - tp_dealloc
    - _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:1425,1
    - Dst: PyODict_SIZE
      Src: /src/cpython/Objects/odictobject.c:1429,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/odictobject.c:1430,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/odictobject.c:1430,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:1430,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/odictobject.c:1432,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/odictobject.c:1434,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Objects/odictobject.c:1437,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/odictobject.c:1442,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/odictobject.c:1443,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/odictobject.c:1443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1445,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/odictobject.c:1448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1422
    functionDepth: 13
    functionLinenumber: 1422
    functionLinenumberEnd: 1450
    functionName: odict_repr
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - Py_ReprEnter
    - PyDict_Copy
    - _PyType_Name
    - _PyODictObject_CAST
    - Py_DECREF
    - PyODict_SIZE
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1462,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1465,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1467,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1467,1
    - Dst: tp_traverse
      Src: /src/cpython/Objects/odictobject.c:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1470
    functionName: odict_traverse
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyODictObject_CAST
    - tp_traverse
    - _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:1467,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1468
    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:1477,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1478,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Objects/odictobject.c:1480,1
    - Dst: _odict_clear_nodes
      Src: /src/cpython/Objects/odictobject.c:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1474
    functionDepth: 10
    functionLinenumber: 1474
    functionLinenumberEnd: 1483
    functionName: odict_tp_clear
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    - _PyODictObject_CAST
    - _odict_clear_nodes
    - 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:1490,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/odictobject.c:1490,1
    - Dst: tp_richcompare
      Src: /src/cpython/Objects/odictobject.c:1498,1
    - Dst: PyODict_Check
      Src: /src/cpython/Objects/odictobject.c:1501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1507,1
    - Dst: _odict_keys_equal
      Src: /src/cpython/Objects/odictobject.c:1510,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1510,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1510,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1515,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1487
    functionDepth: 5
    functionLinenumber: 1487
    functionLinenumberEnd: 1519
    functionName: odict_richcompare_lock_held
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_keys_equal
    - PyDict_Check
    - Py_DECREF
    - _PyODictObject_CAST
    - PyODict_Check
    - Py_NewRef
    - tp_richcompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_richcompare_lock_held(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Objects/odictobject.c:1525,1
    - Dst: odict_richcompare_lock_held
      Src: /src/cpython/Objects/odictobject.c:1526,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Objects/odictobject.c:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1521
    functionDepth: 6
    functionLinenumber: 1521
    functionLinenumberEnd: 1529
    functionName: odict_richcompare
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - odict_richcompare_lock_held
    - Py_END_CRITICAL_SECTION2
    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:1536,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1537
    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:1545,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/odictobject.c:1551,1
    - Dst: odict_update
      Src: /src/cpython/Objects/odictobject.c:1556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1541
    functionDepth: 3
    functionLinenumber: 1541
    functionLinenumberEnd: 1563
    functionName: odict_init
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Length
    - 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:1617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1618
    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: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:1624,1
    - Dst: _PyDict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1625,1
    - Dst: _odict_add_new_node
      Src: /src/cpython/Objects/odictobject.c:1627,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1627,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Objects/odictobject.c:1630,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/cpython/Objects/odictobject.c:1631,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Objects/odictobject.c:1632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - od
    - key
    - value
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1620
    functionDepth: 10
    functionLinenumber: 1620
    functionLinenumberEnd: 1636
    functionName: _PyODict_SetItem_KnownHash_LockHeld
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - _PyDict_DelItem_KnownHash
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _odict_add_new_node
    - _PyDict_SetItem_KnownHash_LockHeld
    - _PyErr_ChainExceptions1
    - PyErr_GetRaisedException
    - _PyODictObject_CAST
    linkageType: ''
    returnType: int
    signature: "int _PyODict_SetItem_KnownHash_LockHeld(PyObject *od, PyObject *key,
      PyObject *value,\n                                    Py_hash_t hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:1642,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/odictobject.c:1643,1
    - Dst: _PyODict_SetItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - od
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1639
    functionDepth: 11
    functionLinenumber: 1639
    functionLinenumberEnd: 1648
    functionName: PyODict_SetItem_LockHeld
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 1
    functionsReached:
    - PyObject_Hash
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyODict_SetItem_KnownHash_LockHeld
    linkageType: ''
    returnType: int
    signature: int PyODict_SetItem_LockHeld(PyObject *od, PyObject *key, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1654,1
    - Dst: PyODict_SetItem_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1655,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - od
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1650
    functionDepth: 12
    functionLinenumber: 1650
    functionLinenumberEnd: 1658
    functionName: PyODict_SetItem
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyODict_SetItem_LockHeld
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int PyODict_SetItem(PyObject *od, PyObject *key, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:1663,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/odictobject.c:1665,1
    - Dst: _odict_clear_node
      Src: /src/cpython/Objects/odictobject.c:1668,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1668,1
    - Dst: _PyDict_DelItem_KnownHash_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - od
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1660
    functionDepth: 10
    functionLinenumber: 1660
    functionLinenumberEnd: 1672
    functionName: PyODict_DelItem_LockHeld
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_DelItem_KnownHash_LockHeld
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyObject_Hash
    - _odict_clear_node
    - _PyODictObject_CAST
    linkageType: ''
    returnType: int
    signature: int PyODict_DelItem_LockHeld(PyObject *od, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1678,1
    - Dst: PyODict_DelItem_LockHeld
      Src: /src/cpython/Objects/odictobject.c:1679,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - od
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1674
    functionDepth: 11
    functionLinenumber: 1674
    functionLinenumberEnd: 1682
    functionName: PyODict_DelItem
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - PyODict_DelItem_LockHeld
    - Py_END_CRITICAL_SECTION
    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:1702,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1703,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1706,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/odictobject.c:1708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1709
    functionName: odictiter_dealloc
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void odictiter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1715,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1716,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/odictobject.c:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1719
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:1726,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:1727,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:1737,1
    - Dst: PyODict_SIZE
      Src: /src/cpython/Objects/odictobject.c:1741,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:1742,1
    - Dst: _odict_find_node
      Src: /src/cpython/Objects/odictobject.c:1749,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1751,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1752,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1754,1
    - Dst: _odictnode_PREV
      Src: /src/cpython/Objects/odictobject.c:1760,1
    - Dst: _odictnode_NEXT
      Src: /src/cpython/Objects/odictobject.c:1760,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1766,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1766,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1772,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - di
    argTypes:
    - odictiterobject*
    assertStmts:
    - condition: (di->di_odict != NULL)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 1774
      start: 1723
    functionDepth: 10
    functionLinenumber: 1723
    functionLinenumberEnd: 1774
    functionName: odictiter_nextkey_lock_held
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _odictnode_PREV
    - _odictnode_KEY
    - _odict_find_node
    - PyErr_SetObject
    - PyErr_SetString
    - _odictnode_NEXT
    - Py_CLEAR
    - PyErr_Occurred
    - assert
    - Py_NewRef
    - PyODict_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_nextkey_lock_held(odictiterobject *di)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/odictobject.c:1780,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1785,1
    - Dst: odictiter_nextkey_lock_held
      Src: /src/cpython/Objects/odictobject.c:1786,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - di
    argTypes:
    - odictiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1777
    functionDepth: 11
    functionLinenumber: 1777
    functionLinenumberEnd: 1789
    functionName: odictiter_nextkey
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - odictiter_nextkey_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_nextkey(odictiterobject *di)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_nextkey
      Src: /src/cpython/Objects/odictobject.c:1796,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/odictobject.c:1806,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:1807,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/odictobject.c:1808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1815,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/odictobject.c:1822,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:1825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1826,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/odictobject.c:1826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1827,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/odictobject.c:1827,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Objects/odictobject.c:1830,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/odictobject.c:1831,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/odictobject.c:1832,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/odictobject.c:1835,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1844,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/odictobject.c:1845,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1791
    functionDepth: 12
    functionLinenumber: 1791
    functionLinenumberEnd: 1847
    functionName: odictiter_iternext_lock_held
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - PyErr_SetObject
    - _PyTuple_FromPairSteal
    - Py_CLEAR
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_GetItemRef
    - odictiter_nextkey
    - _PyObject_IsUniquelyReferenced
    - _PyTuple_Recycle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_iternext_lock_held(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1853,1
    - Dst: odictiter_iternext_lock_held
      Src: /src/cpython/Objects/odictobject.c:1854,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/odictobject.c:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1849
    functionDepth: 13
    functionLinenumber: 1849
    functionLinenumberEnd: 1857
    functionName: odictiter_iternext
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - odictiter_iternext_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_iternext(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/odictobject.c:1871,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Objects/odictobject.c:1872,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/odictobject.c:1875,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1876,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:1877,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/odictobject.c:1881,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/odictobject.c:1881,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/odictobject.c:1881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1864
    functionDepth: 2
    functionLinenumber: 1864
    functionLinenumberEnd: 1882
    functionName: odictiter_reduce
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - PySequence_List
    - Py_BuildValue
    - _Py_ID
    - Py_XDECREF
    - 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:1929,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/odictobject.c:1934,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:1936,1
    - Dst: _odict_LAST
      Src: /src/cpython/Objects/odictobject.c:1945,1
    - Dst: _odict_FIRST
      Src: /src/cpython/Objects/odictobject.c:1945,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1946,1
    - Dst: _odictnode_KEY
      Src: /src/cpython/Objects/odictobject.c:1946,1
    - Dst: PyODict_SIZE
      Src: /src/cpython/Objects/odictobject.c:1947,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/odictobject.c:1949,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/odictobject.c:1951,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - od
    - kind
    argTypes:
    - PyODictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1922
    functionDepth: 3
    functionLinenumber: 1922
    functionLinenumberEnd: 1953
    functionName: odictiter_new
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - _odictnode_KEY
    - _PyObject_GC_TRACK
    - _PyTuple_FromPairSteal
    - Py_DECREF
    - PyODict_SIZE
    - Py_NewRef
    - _odict_FIRST
    - _odict_LAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_new(PyODictObject *od, int kind)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/cpython/Objects/odictobject.c:1964,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1957
    functionDepth: 4
    functionLinenumber: 1957
    functionLinenumberEnd: 1966
    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:1975,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:1975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1968
    functionDepth: 4
    functionLinenumber: 1968
    functionLinenumberEnd: 1977
    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:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2018
    functionDepth: 2
    functionLinenumber: 2018
    functionLinenumberEnd: 2022
    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:2033,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:2033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2026
    functionDepth: 4
    functionLinenumber: 2026
    functionLinenumberEnd: 2035
    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:2044,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2037
    functionDepth: 4
    functionLinenumber: 2037
    functionLinenumberEnd: 2046
    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:2090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 2087
    functionDepth: 2
    functionLinenumber: 2087
    functionLinenumberEnd: 2091
    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:2102,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:2102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2095
    functionDepth: 4
    functionLinenumber: 2095
    functionLinenumberEnd: 2104
    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:2113,1
    - Dst: _PyODictObject_CAST
      Src: /src/cpython/Objects/odictobject.c:2113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2106
    functionDepth: 4
    functionLinenumber: 2106
    functionLinenumberEnd: 2115
    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:2159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2156
    functionDepth: 2
    functionLinenumber: 2156
    functionLinenumberEnd: 2160
    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:2212,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/odictobject.c:2215,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2217,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/odictobject.c:2220,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2224,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2226,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:2227,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2234,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:2235,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2242,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/odictobject.c:2243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2247,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:2250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2253,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:2254,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:2255,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/odictobject.c:2256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2257,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2260,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2262,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 2
    argNames:
    - self
    - pairs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2206
    functionDepth: 3
    functionLinenumber: 2206
    functionLinenumberEnd: 2266
    functionName: mutablemapping_add_pairs
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_GetIter
    - PyErr_Clear
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - PyIter_Next
    - PyObject_SetItem
    linkageType: ''
    returnType: int
    signature: int mutablemapping_add_pairs(PyObject *self, PyObject *pairs)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Objects/odictobject.c:2272,1
    - Dst: PyDict_Items
      Src: /src/cpython/Objects/odictobject.c:2273,1
    - Dst: mutablemapping_add_pairs
      Src: /src/cpython/Objects/odictobject.c:2277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2278,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/odictobject.c:2282,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/odictobject.c:2282,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/odictobject.c:2286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2287,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/odictobject.c:2291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2292,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/odictobject.c:2297,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/odictobject.c:2298,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Objects/odictobject.c:2300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2308,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/odictobject.c:2309,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/odictobject.c:2314,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/odictobject.c:2314,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/odictobject.c:2318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2319,1
    - Dst: mutablemapping_add_pairs
      Src: /src/cpython/Objects/odictobject.c:2323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2324,1
    - Dst: mutablemapping_add_pairs
      Src: /src/cpython/Objects/odictobject.c:2327,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2268
    functionDepth: 5
    functionLinenumber: 2268
    functionLinenumberEnd: 2329
    functionName: mutablemapping_update_arg
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - PyDict_Items
    - PyAnyDict_CheckExact
    - PyObject_GetOptionalAttr
    - mutablemapping_add_pairs
    - PyObject_GetIter
    - PyObject_GetItem
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_CallNoArgs
    - PyIter_Next
    - PyObject_SetItem
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int mutablemapping_update_arg(PyObject *self, PyObject *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:2336,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/odictobject.c:2336,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/odictobject.c:2337,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/odictobject.c:2340,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/odictobject.c:2345,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:2346,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/odictobject.c:2347,1
    - Dst: mutablemapping_update_arg
      Src: /src/cpython/Objects/odictobject.c:2348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2349,1
    - Dst: assert
      Src: /src/cpython/Objects/odictobject.c:2356,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/odictobject.c:2356,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/odictobject.c:2357,1
    - Dst: PyDict_Items
      Src: /src/cpython/Objects/odictobject.c:2358,1
    - Dst: mutablemapping_add_pairs
      Src: /src/cpython/Objects/odictobject.c:2361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/odictobject.c:2362,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: 2335
        line_start: 2335
        source_file: /src/cpython/Objects/odictobject.c
    - condition: (other != NULL)
      pos:
        line_end: 2345
        line_start: 2345
        source_file: /src/cpython/Objects/odictobject.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 2355
        line_start: 2355
        source_file: /src/cpython/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 2368
      start: 2331
    functionDepth: 6
    functionLinenumber: 2331
    functionLinenumberEnd: 2368
    functionName: mutablemapping_update
    functionSourceFile: /src/cpython/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_INCREF
    - PyDict_Items
    - assert
    - mutablemapping_update_arg
    - mutablemapping_add_pairs
    - PyDict_Check
    - PyErr_Format
    - PyTuple_Check
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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: 15
    functionsReached:
    - PyObject_GC_New
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCapsule_New(void *pointer, const char *name, PyCapsule_Destructor destructor)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_CheckExact
      Src: /src/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:
    - name_matches
    - PyCapsule_CheckExact
    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:
    - PyErr_SetString
    - name_matches
    - is_legal_capsule
    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:
    - PyErr_SetString
    - is_legal_capsule
    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:
    - _PyObject_GC_IS_TRACKED
    - _PyObject_GC_TRACK
    - PyErr_SetString
    - is_legal_capsule
    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:
    - PyImport_ImportModule
    - PyErr_NoMemory
    - PyCapsule_IsValid
    - Py_SETREF
    - strchr
    - memcpy
    - strlen
    - PyMem_Malloc
    - PyErr_Format
    - PyObject_GetAttrString
    - Py_XDECREF
    - PyMem_Free
    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:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - _PyCapsule_CAST
    - 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_FromPairSteal
      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:
    - _PyLong_GetOne
    - PyObject_GetIter
    - PyLong_Check
    - _PyTuple_FromPairSteal
    - PyErr_Clear
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyNumber_Index
    - PyLong_AsSsize_t
    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:
    - PyTuple_GET_ITEM
    - PyErr_Format
    - _PyUnicode_EqualToASCIIString
    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:
    - enum_new_impl
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - _PyUnicode_EqualToASCIIString
    - PyErr_Format
    - check_keyword
    - PyTuple_GET_SIZE
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:
    - PyObject_GC_UnTrack
    - _enumobject_CAST
    - Py_XDECREF
    - Py_TYPE
    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:182,1
    - Dst: assert
      Src: /src/cpython/Objects/enumobject.c:187,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Objects/enumobject.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - en
    argTypes:
    - enumobject*
    assertStmts:
    - condition: (en->en_longindex != NULL)
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/cpython/Objects/enumobject.c
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: increment_longindex_lock_held
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Add
    - PyLong_FromSsize_t
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      increment_longindex_lock_held(enumobject *en)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/enumobject.c:208,1
    - Dst: increment_longindex_lock_held
      Src: /src/cpython/Objects/enumobject.c:209,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/enumobject.c:210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:212,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/enumobject.c:216,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/enumobject.c:217,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:218,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:219,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:220,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:223,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Objects/enumobject.c:226,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/enumobject.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - en
    - next_item
    argTypes:
    - enumobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 230
    functionName: enum_next_long
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - increment_longindex_lock_held
    - _PyTuple_FromPairSteal
    - PyTuple_SET_ITEM
    - Py_DECREF
    - _PyObject_IsUniquelyReferenced
    - _PyTuple_Recycle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_next_long(enumobject *en, PyObject* next_item)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _enumobject_CAST
      Src: /src/cpython/Objects/enumobject.c:235,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:243,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:247,1
    - Dst: enum_next_long
      Src: /src/cpython/Objects/enumobject.c:249,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/enumobject.c:251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:253,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:256,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/enumobject.c:258,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/enumobject.c:259,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:260,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/enumobject.c:261,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:262,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/enumobject.c:263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:265,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Objects/enumobject.c:268,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/enumobject.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 272
    functionName: enum_next
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - enum_next_long
    - _PyObject_IsUniquelyReferenced
    - _PyTuple_FromPairSteal
    - PyLong_FromSsize_t
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyTuple_SET_ITEM
    - Py_DECREF
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _enumobject_CAST
    - Py_TYPE
    - _PyTuple_Recycle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_next(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _enumobject_CAST
      Src: /src/cpython/Objects/enumobject.c:277,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/enumobject.c:279,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/enumobject.c:281,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:281,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/enumobject.c:283,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:283,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/enumobject.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 286
    functionName: enum_reduce
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_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: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    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:370,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/enumobject.c:370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:372,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/enumobject.c:373,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:375,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/enumobject.c:379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/enumobject.c:380,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/enumobject.c:383,1
    - Dst: PySequence_Check
      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: PySequence_Size
      Src: /src/cpython/Objects/enumobject.c:393,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/enumobject.c:397,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/enumobject.c:402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - type
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 404
    functionName: reversed_new_impl
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - _PyObject_LookupSpecial
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - PySequence_Size
    - _PyObject_CallNoArgs
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - Py_TYPE
    - _Py_ID
    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:410,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/enumobject.c:414,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/enumobject.c:415,1
    - Dst: reversed_new_impl
      Src: /src/cpython/Objects/enumobject.c:419,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/enumobject.c:419,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: 420
      start: 406
    functionDepth: 4
    functionLinenumber: 406
    functionLinenumberEnd: 420
    functionName: reversed_vectorcall
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - reversed_new_impl
    - _PyArg_NoKwnames
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:425,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/enumobject.c:426,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/enumobject.c:427,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: reversed_dealloc
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _reversedobject_CAST
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void reversed_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _reversedobject_CAST
      Src: /src/cpython/Objects/enumobject.c:434,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/enumobject.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: reversed_traverse
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _reversedobject_CAST
    - Py_VISIT
    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:442,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:444,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/enumobject.c:447,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:449,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/enumobject.c:452,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/enumobject.c:453,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/enumobject.c:454,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:456,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/enumobject.c:458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 461
    functionName: reversed_next
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - Py_CLEAR
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - _reversedobject_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_next(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _reversedobject_CAST
      Src: /src/cpython/Objects/enumobject.c:466,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:468,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/enumobject.c:471,1
    - Dst: assert
      Src: /src/cpython/Objects/enumobject.c:472,1
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/enumobject.c:473,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/enumobject.c:477,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: 471
        line_start: 471
        source_file: /src/cpython/Objects/enumobject.c
    constantsTouched: []
    func_position:
      end: 478
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 478
    functionName: reversed_len
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromSsize_t
    - PySequence_Size
    - assert
    - _reversedobject_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    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:485,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:486,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/enumobject.c:488,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:488,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/enumobject.c:491,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/enumobject.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 493
    functionName: reversed_reduce
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - _reversedobject_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_TYPE
    - Py_BuildValue
    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:498,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/enumobject.c:499,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/enumobject.c:500,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:502,1
    - Dst: PySequence_Size
      Src: /src/cpython/Objects/enumobject.c:507,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Objects/enumobject.c:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 517
    functionName: reversed_setstate
    functionSourceFile: /src/cpython/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PySequence_Size
    - PyErr_Occurred
    - _reversedobject_CAST
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - 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
    - isnan
    - isinf
    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
    - isfinite
    - isnan
    - 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
    - isfinite
    - isnan
    - 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:
    - atan2
    - _Py_ADJUST_ERANGE2
    - log
    - exp
    - sin
    - pow
    - cos
    - hypot
    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:
    - hypot
    - fabs
    - isinf
    - isfinite
    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_Malloc
    - _Py_FREELIST_POP
    - _PyObject_Init
    - 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_Check
    - PyComplex_CheckExact
    - assert
    - _Py_FREELIST_FREE
    - Py_TYPE
    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: 16
    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: 2
    functionsReached:
    - PyFloat_AsDouble
    - try_complex_special_method
    - PyComplex_Check
    - PyErr_Occurred
    - Py_DECREF
    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: 2
    functionsReached:
    - PyFloat_AsDouble
    - try_complex_special_method
    - PyComplex_Check
    - PyErr_Occurred
    - Py_DECREF
    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_LookupSpecial
    - PyErr_WarnFormat
    - PyComplex_CheckExact
    - PyComplex_Check
    - PyErr_Format
    - Py_DECREF
    - _PyObject_CallNoArgs
    - _Py_ID
    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: 39
    functionsReached:
    - PyFloat_AsDouble
    - try_complex_special_method
    - PyComplex_Check
    - PyErr_Occurred
    - assert
    - Py_DECREF
    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:
    - _PyComplexObject_CAST
    - PyErr_NoMemory
    - copysign
    - PyOS_double_to_string
    - PyUnicode_FromFormat
    - PyMem_Free
    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:
    - _Py_HashDouble
    - _PyComplexObject_CAST
    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:
    - _Py_convert_int_to_double
    - PyFloat_Check
    - 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:
    - TO_COMPLEX
    - floor
    - fabs
    - PyErr_SetString
    - c_powi
    - PyComplex_FromCComplex
    - _Py_c_pow
    - _Py_ADJUST_ERANGE2
    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:
    - PyComplex_FromCComplex
    - _PyComplexObject_CAST
    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:
    - PyComplex_CheckExact
    - PyComplex_FromCComplex
    - _PyComplexObject_CAST
    - Py_NewRef
    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:
    - PyFloat_FromDouble
    - PyErr_SetString
    - _PyComplexObject_CAST
    - _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:
    - TO_COMPLEX
    - PyFloat_AsDouble
    - PyFloat_FromDouble
    - PyFloat_Check
    - PyComplex_Check
    - PyLong_Check
    - PyObject_RichCompare
    - assert
    - Py_DECREF
    - Py_NewRef
    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: 6
    functionLinenumber: 910
    functionLinenumberEnd: 926
    functionName: complex___format___impl
    functionSourceFile: /src/cpython/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Dealloc
    - _PyComplex_FormatAdvancedWriter
    - PyUnicode_GET_LENGTH
    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:
    - PyComplex_CheckExact
    - PyComplex_FromCComplex
    - Py_NewRef
    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:
    - complex_subtype_from_doubles
    - PyErr_SetString
    - Py_ISSPACE
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - PyOS_string_to_double
    - _PyType_CAST
    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:
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - _Py_string_to_number_with_underscores
    - PyUnicode_IS_ASCII
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyErr_Format
    - assert
    - Py_DECREF
    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:
    - complex_subtype_from_doubles
    - PyTuple_GET_ITEM
    - PyFloat_AsDouble
    - try_complex_special_method
    - PyUnicode_Check
    - PyComplex_CheckExact
    - PyComplex_Check
    - PyErr_Occurred
    - complex_subtype_from_string
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyErr_Format
    - Py_NewRef
    - complex_new
    - Py_TYPE
    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: (PyFloat_Check(tmp))
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/cpython/Objects/complexobject.c
    - condition: (!own_r)
      pos:
        line_end: 1273
        line_start: 1273
        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:
    - complex_subtype_from_doubles
    - PyFloat_AsDouble
    - assert
    - try_complex_special_method
    - PyFloat_Check
    - PyErr_WarnFormat
    - PyComplex_Check
    - PyNumber_Float
    - PyErr_Occurred
    - _PyLong_GetZero
    - PyErr_Format
    - Py_DECREF
    - Py_TYPE
    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
    - Py_SETREF
    - PyComplex_CheckExact
    - PyComplex_FromCComplex
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyObject_CallOneArg
    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_TYPE
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    - FT_CLEAR_WEAKREFS
    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: 7
    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_GetItemRef
      Src: /src/cpython/Objects/genericaliasobject.c:71,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/genericaliasobject.c:75,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:79,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    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: 87
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 87
    functionName: ga_repr_items_list
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyList_GetItemRef
    - Py_DECREF
    - PyUnicodeWriter_WriteChar
    - _Py_typing_type_repr
    - assert
    - PyUnicodeWriter_WriteASCII
    - PyList_CheckExact
    - PyList_GET_SIZE
    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:93,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Objects/genericaliasobject.c:98,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:104,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/genericaliasobject.c:108,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:111,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/genericaliasobject.c:116,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:120,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Objects/genericaliasobject.c:121,1
    - Dst: ga_repr_items_list
      Src: /src/cpython/Objects/genericaliasobject.c:123,1
    - Dst: _Py_typing_type_repr
      Src: /src/cpython/Objects/genericaliasobject.c:127,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Objects/genericaliasobject.c:133,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Objects/genericaliasobject.c:137,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/genericaliasobject.c:140,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Objects/genericaliasobject.c:143,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 145
    functionName: ga_repr
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyTuple_GET_ITEM
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_WriteChar
    - _Py_typing_type_repr
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_WriteASCII
    - PyTuple_GET_SIZE
    - ga_repr_items_list
    - PyList_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - len
    - item
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 157
    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:162,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:163,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - len
    - item
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: tuple_add
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - tuple_index
    - PyTuple_SET_ITEM
    - Py_NewRef
    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:173,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/genericaliasobject.c:174,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:174,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:177,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:177,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:180,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:180,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: 172
        line_start: 172
        source_file: /src/cpython/Objects/genericaliasobject.c
    - condition: (dstindex + count <= PyTuple_GET_SIZE(*dst))
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 6
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: tuple_extend
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_Resize
    - PyTuple_SET_ITEM
    - assert
    - PyTuple_GET_SIZE
    - Py_NewRef
    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:188,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:188,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:188,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:189,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/genericaliasobject.c:192,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:197,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/genericaliasobject.c:199,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:201,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:206,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:208,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Objects/genericaliasobject.c:211,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:213,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:214,1
    - Dst: tuple_add
      Src: /src/cpython/Objects/genericaliasobject.c:218,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:222,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:224,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:225,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:228,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:228,1
    - Dst: _Py_make_parameters
      Src: /src/cpython/Objects/genericaliasobject.c:231,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:233,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:234,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:238,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:239,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/genericaliasobject.c:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:244,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:245,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:250,1
    - Dst: tuple_add
      Src: /src/cpython/Objects/genericaliasobject.c:251,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:254,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/genericaliasobject.c:258,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:259,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:260,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:264,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 1
    argNames:
    - args
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args) || PyList_Check(args))
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 266
      start: 185
    functionDepth: 6
    functionLinenumber: 185
    functionLinenumberEnd: 266
    functionName: _Py_make_parameters
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 2
    functionsReached:
    - PyObject_HasAttrWithError
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyType_Check
    - _PyTuple_Resize
    - _Py_make_parameters
    - tuple_add
    - PyObject_GetOptionalAttr
    - PyList_Check
    - PyTuple_Check
    - assert
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTuple_New
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_make_parameters(PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:278,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:278,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:281,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:281,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:282,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:283,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/genericaliasobject.c:284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:286,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:291,1
    - Dst: tuple_index
      Src: /src/cpython/Objects/genericaliasobject.c:292,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:294,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genericaliasobject.c:296,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:296,1
    - Dst: tuple_extend
      Src: /src/cpython/Objects/genericaliasobject.c:297,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:298,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:302,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:308,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:308,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:311,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:311,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/genericaliasobject.c:313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:315,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genericaliasobject.c:318,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:320,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - obj
    - params
    - argitems
    - nargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (j == PyTuple_GET_SIZE(subargs))
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 322
      start: 273
    functionDepth: 7
    functionLinenumber: 273
    functionLinenumberEnd: 322
    functionName: subs_tvars
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - tuple_extend
    - PyTuple_GET_ITEM
    - Py_INCREF
    - tuple_index
    - PyObject_GetOptionalAttr
    - PyObject_GetItem
    - PyTuple_SET_ITEM
    - PyTuple_Check
    - assert
    - Py_DECREF
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - _Py_ID
    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:328,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:331,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:331,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/genericaliasobject.c:333,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: _is_unpacked_typevartuple
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - PyObject_IsTrue
    - PyObject_GetOptionalAttr
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _is_unpacked_typevartuple(PyObject *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:343,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:343,1
    - Dst: _PyGenericAlias_Check
      Src: /src/cpython/Objects/genericaliasobject.c:345,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:350,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:353,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyType_Check(arg))
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 361
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 361
    functionName: _unpacked_tuple_args
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - _PyGenericAlias_Check
    - PyObject_GetOptionalAttr
    - assert
    - Py_DECREF
    - Py_NewRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _unpacked_tuple_args(PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Objects/genericaliasobject.c:366,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:370,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:371,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:372,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:375,1
    - Dst: _unpacked_tuple_args
      Src: /src/cpython/Objects/genericaliasobject.c:376,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:378,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:379,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:380,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:380,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Objects/genericaliasobject.c:382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:387,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:390,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/genericaliasobject.c:391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:392,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/genericaliasobject.c:396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:397,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/genericaliasobject.c:401,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/genericaliasobject.c:401,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 363
    functionDepth: 12
    functionLinenumber: 363
    functionLinenumberEnd: 403
    functionName: _unpack_args
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyType_Check
    - PyList_Append
    - Py_SETREF
    - PyList_New
    - PyTuple_Check
    - _unpacked_tuple_args
    - Py_DECREF
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyList_SetSlice
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _unpack_args(PyObject *item)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:408,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genericaliasobject.c:410,1
    - Dst: _unpack_args
      Src: /src/cpython/Objects/genericaliasobject.c:414,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:419,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:421,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:422,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:426,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/genericaliasobject.c:427,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Objects/genericaliasobject.c:430,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:432,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/genericaliasobject.c:433,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:439,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:440,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:443,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genericaliasobject.c:444,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:456,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:456,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:456,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:457,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Objects/genericaliasobject.c:460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:462,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:466,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/genericaliasobject.c:467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:469,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:470,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:474,1
    - Dst: PyType_Check
      Src: /src/cpython/Objects/genericaliasobject.c:475,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:476,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:476,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:481,1
    - Dst: PyList_Check
      Src: /src/cpython/Objects/genericaliasobject.c:481,1
    - Dst: _Py_subs_parameters
      Src: /src/cpython/Objects/genericaliasobject.c:482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:485,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:486,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:489,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:490,1
    - Dst: PySequence_List
      Src: /src/cpython/Objects/genericaliasobject.c:495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:499,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:500,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:503,1
    - Dst: _is_unpacked_typevartuple
      Src: /src/cpython/Objects/genericaliasobject.c:508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:511,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:512,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/genericaliasobject.c:516,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:518,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:519,1
    - Dst: tuple_index
      Src: /src/cpython/Objects/genericaliasobject.c:523,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:524,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/genericaliasobject.c:525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:526,1
    - Dst: subs_tvars
      Src: /src/cpython/Objects/genericaliasobject.c:529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:533,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:534,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/genericaliasobject.c:538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:539,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:540,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:541,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:542,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/genericaliasobject.c:543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:546,1
    - Dst: tuple_extend
      Src: /src/cpython/Objects/genericaliasobject.c:549,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:550,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:553,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:554,1
    - Dst: assert
      Src: /src/cpython/Objects/genericaliasobject.c:555,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:565,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:566,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 121
    argCount: 4
    argNames:
    - self
    - args
    - parameters
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (iparam >= 0)
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/cpython/Objects/genericaliasobject.c
    - condition: (newargs == NULL)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/cpython/Objects/genericaliasobject.c
    - condition: (PyTuple_Check(args) || PyList_Check(args))
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/cpython/Objects/genericaliasobject.c
    constantsTouched: []
    func_position:
      end: 568
      start: 405
    functionDepth: 13
    functionLinenumber: 405
    functionLinenumberEnd: 568
    functionName: _Py_subs_parameters
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 2
    functionsReached:
    - tuple_extend
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyType_Check
    - PySequence_List
    - tuple_index
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    - subs_tvars
    - PyObject_GetOptionalAttr
    - Py_XDECREF
    - _Py_subs_parameters
    - _is_unpacked_typevartuple
    - PyObject_CallFunction
    - PyList_Check
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    - Py_SETREF
    - PyErr_Format
    - _unpack_args
    - PyObject_CallOneArg
    - _Py_ID
    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:583,1
    - Dst: _Py_subs_parameters
      Src: /src/cpython/Objects/genericaliasobject.c:589,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Objects/genericaliasobject.c:594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 577
    functionDepth: 14
    functionLinenumber: 577
    functionLinenumberEnd: 603
    functionName: ga_getitem
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_make_parameters
    - Py_GenericAlias
    - _Py_subs_parameters
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_getitem(PyObject *self, PyObject *item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/genericaliasobject.c:614,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/genericaliasobject.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 623
    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:629,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:629,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genericaliasobject.c:630,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/genericaliasobject.c:631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:633,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/genericaliasobject.c:636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 640
    functionName: set_orig_class
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - _Py_ID
    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:646,1
    - Dst: set_orig_class
      Src: /src/cpython/Objects/genericaliasobject.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 648
    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: PyObject_Vectorcall
      Src: /src/cpython/Objects/genericaliasobject.c:655,1
    - Dst: set_orig_class
      Src: /src/cpython/Objects/genericaliasobject.c:656,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: 657
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 657
    functionName: ga_vectorcall
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Vectorcall
    - set_orig_class
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nga_vectorcall(PyObject *self, PyObject *const *args,\n
      \             size_t nargsf, PyObject *kwnames)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/genericaliasobject.c:683,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/genericaliasobject.c:690,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/genericaliasobject.c:698,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/genericaliasobject.c:700,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/cpython/Objects/genericaliasobject.c:707,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 708
    functionName: ga_getattro
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - PyObject_GetAttr
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_getattro(PyObject *self, PyObject *name)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyGenericAlias_Check
      Src: /src/cpython/Objects/genericaliasobject.c:713,1
    - Dst: ga_richcompare
      Src: /src/cpython/Objects/genericaliasobject.c:720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:723,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/genericaliasobject.c:737,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/genericaliasobject.c:744,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 710
    functionDepth: 4
    functionLinenumber: 710
    functionLinenumberEnd: 745
    functionName: ga_richcompare
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 1
    functionsReached:
    - PyObject_RichCompareBool
    - _PyGenericAlias_Check
    - PyObject_RichCompare
    - ga_richcompare
    - Py_DECREF
    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:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 747
    functionDepth: 3
    functionLinenumber: 747
    functionLinenumberEnd: 752
    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:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 760
    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:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 768
    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:775,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/genericaliasobject.c:777,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/genericaliasobject.c:777,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genericaliasobject.c:782,1
    - Dst: _PyEval_GetBuiltin
      Src: /src/cpython/Objects/genericaliasobject.c:782,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:782,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genericaliasobject.c:784,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/genericaliasobject.c:784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 786
    functionName: ga_reduce
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltin
    - Py_GenericAlias
    - Py_SETREF
    - Py_BuildValue
    - PyObject_GetIter
    - Py_TYPE
    - _Py_ID
    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:792,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/genericaliasobject.c:803,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/genericaliasobject.c:807,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/genericaliasobject.c:811,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/genericaliasobject.c:815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:821,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:822,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 788
    functionDepth: 6
    functionLinenumber: 788
    functionLinenumberEnd: 824
    functionName: ga_dir
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PySequence_Contains
    - Py_CLEAR
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    - PyObject_Dir
    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:847,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 842
    functionDepth: 7
    functionLinenumber: 842
    functionLinenumberEnd: 853
    functionName: ga_parameters
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - _Py_make_parameters
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_parameters(PyObject *self, void *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 863
    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:876,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/genericaliasobject.c:877,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/genericaliasobject.c:883,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:886,1
    - Dst: PyVectorcall_Function
      Src: /src/cpython/Objects/genericaliasobject.c:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - alias
    - origin
    - args
    argTypes:
    - gaobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 899
    functionName: setup_ga
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyVectorcall_Function
    - PyTuple_Pack
    - PyTuple_Check
    - Py_NewRef
    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:904,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/genericaliasobject.c:907,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/genericaliasobject.c:907,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:910,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/genericaliasobject.c:911,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/genericaliasobject.c:912,1
    - Dst: setup_ga
      Src: /src/cpython/Objects/genericaliasobject.c:916,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 901
    functionDepth: 4
    functionLinenumber: 901
    functionLinenumberEnd: 921
    functionName: ga_new
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyTuple_GET_ITEM
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - setup_ga
    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:932,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Objects/genericaliasobject.c:936,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/genericaliasobject.c:941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 943
    functionName: ga_iternext
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    - Py_GenericAlias
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_iternext(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/genericaliasobject.c:949,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/genericaliasobject.c:950,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/genericaliasobject.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 952
    functionName: ga_iter_dealloc
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void ga_iter_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/genericaliasobject.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 960
    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:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 968
    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:973,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/genericaliasobject.c:973,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genericaliasobject.c:981,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/genericaliasobject.c:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 984
    functionName: ga_iter_reduce
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _PyEval_GetBuiltin
    - _Py_ID
    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:1008,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/genericaliasobject.c:1012,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/genericaliasobject.c:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1015
    functionName: ga_iter
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_NewRef
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ga_iter(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/genericaliasobject.c:1049,1
    - Dst: setup_ga
      Src: /src/cpython/Objects/genericaliasobject.c:1054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/genericaliasobject.c:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - origin
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1046
    functionDepth: 4
    functionLinenumber: 1046
    functionLinenumberEnd: 1059
    functionName: Py_GenericAlias
    functionSourceFile: /src/cpython/Objects/genericaliasobject.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - PyType_GenericAlloc
    - setup_ga
    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_UNREACHABLE
    - PY_FOREACH_CODE_EVENT
    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: 10
    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: (i < CODE_MAX_WATCHERS)
      pos:
        line_end: 48
        line_start: 48
        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: (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
    - Py_REFCNT
    - assert
    - code_event_name
    - PyErr_FormatUnraisable
    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:
    - assert
    - PyErr_SetString
    - _PyInterpreterState_GET
    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:
    - assert
    - validate_watcher_id
    - _PyInterpreterState_GET
    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:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_IS_ASCII
    - Py_ISALNUM
    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:
    - PySlice_Check
    - PyTuple_GET_ITEM
    - PyFrozenSet_CheckExact
    - PyComplex_Check
    - _PySet_NextEntry
    - PyLong_CheckExact
    - PyFloat_CheckExact
    - _Py_IsImmortal
    - PyBytes_CheckExact
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    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: 10
    functionLinenumber: 181
    functionLinenumberEnd: 197
    functionName: intern_strings
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PyUnicode_CheckExact
    - _PyInterpreterState_GET
    - _PyTuple_ITEMS
    - PyTuple_GET_SIZE
    - _PyUnicode_InternImmortal
    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: 13
    functionLinenumber: 202
    functionLinenumberEnd: 304
    functionName: intern_constants
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - should_immortalize_constant
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - intern_constants
    - PyFrozenSet_CheckExact
    - _PyThreadState_GET
    - PySlice_New
    - PyTuple_GET_SIZE
    - should_intern_string
    - PyTuple_CheckExact
    - PyTuple_SET_ITEM
    - intern_one_constant
    - _Py_IsImmortal
    - Py_DECREF
    - _PyUnicode_InternMortal
    - Py_NewRef
    - PyTuple_New
    - PyUnicode_CheckExact
    - Py_SETREF
    - _PyInterpreterState_GET
    - PyFrozenSet_New
    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: 14
    functionLinenumber: 252
    functionLinenumberEnd: 281
    functionName: if
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_ITEM
    - intern_constants
    - PyTuple_SET_ITEM
    - PySlice_New
    - Py_DECREF
    - Py_NewRef
    - PyTuple_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:
    - _PyUnicode_Copy
    - Py_INCREF
    - PyTuple_GET_ITEM
    - PyUnicode_CheckExact
    - PyUnicode_Check
    - PyTuple_SET_ITEM
    - PyErr_Format
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    - 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:
    - FT_ATOMIC_LOAD_PTR
    - PyMem_New
    - PyErr_NoMemory
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - FT_ATOMIC_STORE_PTR
    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:
    - PyTuple_SET_ITEM
    - Py_NewRef
    - _PyLocals_SetKind
    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:
    - PyTuple_GET_SIZE
    - _PyLocals_GetKind
    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_GET_ITEM
    - PyTuple_SET_ITEM
    - _PyLocals_GetKind
    - assert
    - Py_NewRef
    - PyTuple_New
    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:
    - _Py_IS_ALIGNED
    - PyBytes_Check
    - PyErr_SetString
    - get_localsplus_counts
    - PyUnicode_Check
    - PyErr_BadInternalCall
    - PyTuple_Check
    - PyBytes_AS_STRING
    - PyTuple_GET_SIZE
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int _PyCode_Validate(struct _PyCodeConstructor *con)
  - BBCount: 5
    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_CODE
      Src: /src/cpython/Objects/codeobject.c:579,1
    - Dst: _PyCode_Quicken
      Src: /src/cpython/Objects/codeobject.c:589,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:589,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:589,1
    - Dst: _PyCode_Quicken
      Src: /src/cpython/Objects/codeobject.c:591,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:591,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:591,1
    - Dst: notify_code_watchers
      Src: /src/cpython/Objects/codeobject.c:593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 2
    argNames:
    - co
    - con
    argTypes:
    - PyCodeObject*
    - struct _PyCodeConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 510
    functionDepth: 10
    functionLinenumber: 510
    functionLinenumberEnd: 595
    functionName: init_code
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - FT_MUTEX_LOCK
    - get_localsplus_counts
    - _PyCode_CODE
    - _PyCodeArray_New
    - Py_SIZE
    - _PyInterpreterState_GET
    - PyBytes_GET_SIZE
    - _PyCode_Quicken
    - memcpy
    - notify_code_watchers
    - PyBytes_AS_STRING
    - PyTuple_GET_SIZE
    - FT_MUTEX_UNLOCK
    - _PyUnicode_InternMortal
    - Py_NewRef
    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: 609
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 609
    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:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 621
    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:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 643
    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:649,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:650,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:652,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:655,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:656,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:657,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:658,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/codeobject.c:659,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:659,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:662,1
    - Dst: write_location_entry_start
      Src: /src/cpython/Objects/codeobject.c:670,1
    - Dst: get_line_delta
      Src: /src/cpython/Objects/codeobject.c:672,1
    - Dst: write_signed_varint
      Src: /src/cpython/Objects/codeobject.c:673,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:676,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:681,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/codeobject.c:682,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - locations
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 645
    functionDepth: 6
    functionLinenumber: 645
    functionLinenumberEnd: 686
    functionName: remove_column_info
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - write_signed_varint
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - get_line_delta
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    - write_location_entry_start
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      remove_column_info(PyObject *locations)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:692,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Objects/codeobject.c:694,1
    - Dst: intern_strings
      Src: /src/cpython/Objects/codeobject.c:696,1
    - Dst: intern_constants
      Src: /src/cpython/Objects/codeobject.c:699,1
    - Dst: intern_strings
      Src: /src/cpython/Objects/codeobject.c:702,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/codeobject.c:705,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Objects/codeobject.c:709,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct _PyCodeConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 688
    functionDepth: 14
    functionLinenumber: 688
    functionLinenumberEnd: 711
    functionName: intern_code_constants
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - FT_MUTEX_LOCK
    - intern_constants
    - _PyInterpreterState_GET
    - intern_strings
    - FT_MUTEX_UNLOCK
    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:718,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/codeobject.c:725,1
    - Dst: remove_column_info
      Src: /src/cpython/Objects/codeobject.c:726,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:733,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Objects/codeobject.c:736,1
    - Dst: PyObject_NewVar
      Src: /src/cpython/Objects/codeobject.c:738,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:741,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:742,1
    - Dst: init_code
      Src: /src/cpython/Objects/codeobject.c:746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:747,1
    - Dst: _PyObject_AssignUniqueId
      Src: /src/cpython/Objects/codeobject.c:752,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/codeobject.c:753,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct _PyCodeConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 715
    functionDepth: 15
    functionLinenumber: 715
    functionLinenumberEnd: 757
    functionName: _PyCode_New
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - init_code
    - remove_column_info
    - PyObject_GC_NewVar
    - PyErr_NoMemory
    - _PyObject_GC_TRACK
    - intern_code_constants
    - PyObject_NewVar
    - _PyObject_AssignUniqueId
    - Py_XDECREF
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _Py_GetConfig
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      _PyCode_New(struct _PyCodeConstructor *con)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:779,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:780,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:781,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/codeobject.c:783,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:788,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:789,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:790,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:792,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:796,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:802,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Objects/codeobject.c:803,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:807,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Objects/codeobject.c:810,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:810,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:812,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:812,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/codeobject.c:822,1
    - Dst: _PyLocals_SetKind
      Src: /src/cpython/Objects/codeobject.c:823,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Objects/codeobject.c:826,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:830,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Objects/codeobject.c:831,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:837,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:838,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:851,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/codeobject.c:856,1
    - Dst: _PyLocals_SetKind
      Src: /src/cpython/Objects/codeobject.c:857,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:864,1
    - Dst: _PyTuple_Resize
      Src: /src/cpython/Objects/codeobject.c:865,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Objects/codeobject.c:866,1
    - Dst: _PyCode_Validate
      Src: /src/cpython/Objects/codeobject.c:896,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:899,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:899,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:900,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Objects/codeobject.c:900,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:900,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:901,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:902,1
    - Dst: _PyCode_New
      Src: /src/cpython/Objects/codeobject.c:907,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:913,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:914,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: (!PyErr_Occurred())
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PyBytes_GET_SIZE(code) % sizeof(_Py_CODEUNIT) == 0)
      pos:
        line_end: 898
        line_start: 898
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (_Py_IS_ALIGNED(PyBytes_AS_STRING(code), sizeof(_Py_CODEUNIT)))
      pos:
        line_end: 899
        line_start: 899
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 916
      start: 764
    functionDepth: 16
    functionLinenumber: 764
    functionLinenumberEnd: 916
    functionName: PyUnstable_Code_NewWithPosOnlyArgs
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyBytes_FromStringAndSize
    - PyTuple_Check
    - assert
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyTuple_Resize
    - _Py_IS_ALIGNED
    - _Py_set_localsplus_info
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Compare
    - PyErr_BadInternalCall
    - _PyBytes_Resize
    - _PyCode_New
    - PyBytes_GET_SIZE
    - PyTuple_New
    - _PyCode_Validate
    - _PyLocals_SetKind
    - _PyLocals_GetKind
    - PyErr_Format
    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:928,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: 934
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 934
    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:963,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/codeobject.c:967,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Objects/codeobject.c:971,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:975,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:979,1
    - Dst: _PyCode_New
      Src: /src/cpython/Objects/codeobject.c:999,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:1002,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:1003,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:1004,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:1005,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:1006,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - filename
    - funcname
    - firstlineno
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 953
    functionDepth: 16
    functionLinenumber: 953
    functionLinenumberEnd: 1008
    functionName: PyCode_NewEmpty
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - PyBytes_FromStringAndSize
    - Py_XDECREF
    - _PyCode_New
    - PyUnicode_DecodeFSDefault
    - PyTuple_New
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/codeobject.c:1021,1
    - Dst: _Py_atomic_load_ptr_acquire
      Src: /src/cpython/Objects/codeobject.c:1023,1
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Objects/codeobject.c:1025,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1028,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:1028,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1030,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Objects/codeobject.c:1031,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - co
    - addrq
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (addrq >= 0 && addrq < _PyCode_NBYTES(co))
      pos:
        line_end: 1027
        line_start: 1027
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1032
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1032
    functionName: PyCode_Addr2Line
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_load_ptr_acquire
    - _Py_Instrumentation_GetLine
    - _PyCode_CheckLineNumber
    - _PyCode_NBYTES
    - assert
    - _PyCode_InitAddressRange
    linkageType: ''
    returnType: int
    signature: int PyCode_Addr2Line(PyCodeObject *co, int addrq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Objects/codeobject.c:1041,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:1043,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1047,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Objects/codeobject.c:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - co
    - addrq
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1049
    functionName: _PyCode_SafeAddr2Line
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCode_InitAddressRange
    - _PyCode_CheckLineNumber
    - _PyCode_NBYTES
    - _Py_Instrumentation_GetLine
    linkageType: ''
    returnType: int
    signature: int _PyCode_SafeAddr2Line(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: 1060
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1060
    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:1065,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:1066,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1067,1
    - Dst: _PyLineTable_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - co
    - bounds
    argTypes:
    - PyCodeObject*
    - PyCodeAddressRange*
    assertStmts:
    - condition: (co->co_linetable != NULL)
      pos:
        line_end: 1064
        line_start: 1064
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1070
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1070
    functionName: _PyCode_InitAddressRange
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 3
    functionsReached:
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _PyLineTable_InitAddressRange
    - 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:1078,1
    - Dst: _PyLineTable_PreviousAddressRange
      Src: /src/cpython/Objects/codeobject.c:1083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - lasti
    - bounds
    argTypes:
    - int
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1088
    functionName: _PyCode_CheckLineNumber
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    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: 1094
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1094
    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: 1102
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1102
    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:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts:
    - condition: ((*bounds->opaque.lo_next) & 128)
      pos:
        line_end: 1105
        line_start: 1105
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1108
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1108
    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: 1123
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1123
    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: 1129
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1129
    functionName: read_byte
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int read_byte(PyCodeAddressRange *bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1134,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1143
    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:1148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1155
    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:1160,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1161,1
    - Dst: get_line_delta
      Src: /src/cpython/Objects/codeobject.c:1165,1
    - Dst: previous_code_delta
      Src: /src/cpython/Objects/codeobject.c:1167,1
    - Dst: is_no_line_marker
      Src: /src/cpython/Objects/codeobject.c:1168,1
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts:
    - condition: (bounds->ar_start >= 0)
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1175
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1175
    functionName: retreat
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - get_line_delta
    - ASSERT_VALID_BOUNDS
    - is_no_line_marker
    - 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:1180,1
    - Dst: get_line_delta
      Src: /src/cpython/Objects/codeobject.c:1181,1
    - Dst: is_no_line_marker
      Src: /src/cpython/Objects/codeobject.c:1182,1
    - Dst: next_code_delta
      Src: /src/cpython/Objects/codeobject.c:1189,1
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - PyCodeAddressRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1195
    functionName: advance
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 6
    functionsReached:
    - next_code_delta
    - is_no_line_marker
    - get_line_delta
    - ASSERT_VALID_BOUNDS
    linkageType: ''
    returnType: void
    signature: void advance(PyCodeAddressRange *bounds)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1200,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1201,1
    - Dst: read_signed_varint
      Src: /src/cpython/Objects/codeobject.c:1212,1
    - Dst: read_varint
      Src: /src/cpython/Objects/codeobject.c:1214,1
    - Dst: read_varint
      Src: /src/cpython/Objects/codeobject.c:1215,1
    - Dst: read_varint
      Src: /src/cpython/Objects/codeobject.c:1216,1
    - Dst: read_signed_varint
      Src: /src/cpython/Objects/codeobject.c:1222,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1235,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1236,1
    - Dst: read_byte
      Src: /src/cpython/Objects/codeobject.c:1242,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1243,1
    - Dst: ASSERT_VALID_BOUNDS
      Src: /src/cpython/Objects/codeobject.c:1249,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: 1242
        line_start: 1242
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1250
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1250
    functionName: advance_with_locations
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - read_signed_varint
    - read_byte
    - read_varint
    - ASSERT_VALID_BOUNDS
    - 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:1261,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:1261,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1263,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Objects/codeobject.c:1264,1
    - Dst: retreat
      Src: /src/cpython/Objects/codeobject.c:1265,1
    - Dst: advance_with_locations
      Src: /src/cpython/Objects/codeobject.c:1266,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: 1260
        line_start: 1260
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1269
      start: 1251
    functionDepth: 3
    functionLinenumber: 1251
    functionLinenumberEnd: 1269
    functionName: PyCode_Addr2Location
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - retreat
    - assert
    - _PyCode_CheckLineNumber
    - _PyCode_NBYTES
    - _PyCode_InitAddressRange
    - advance_with_locations
    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: 1275
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1275
    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:1283,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - PyCodeAddressRange*
    assertStmts:
    - condition: (range->ar_end > range->ar_start)
      pos:
        line_end: 1283
        line_start: 1283
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1286
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1286
    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:1291,1
    - Dst: advance
      Src: /src/cpython/Objects/codeobject.c:1294,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - PyCodeAddressRange*
    assertStmts:
    - condition: (range->ar_end > range->ar_start)
      pos:
        line_end: 1294
        line_start: 1294
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1297
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1297
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:1311,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1313
    functionName: lineiter_dealloc
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void lineiter_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/codeobject.c:1321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1322
    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:1329,1
    - Dst: _PyLineTable_NextAddressRange
      Src: /src/cpython/Objects/codeobject.c:1335,1
    - Dst: _PyLineTable_PreviousAddressRange
      Src: /src/cpython/Objects/codeobject.c:1337,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/codeobject.c:1341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1324
    functionDepth: 3
    functionLinenumber: 1324
    functionLinenumberEnd: 1343
    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:1391,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:1395,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1388
    functionDepth: 4
    functionLinenumber: 1388
    functionLinenumberEnd: 1398
    functionName: new_linesiterator
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCode_InitAddressRange
    - PyType_GenericAlloc
    - Py_NewRef
    linkageType: ''
    returnType: lineiterator
    signature: 'lineiterator *

      new_linesiterator(PyCodeObject *code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:1415,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1417
    functionName: positionsiter_dealloc
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void positionsiter_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1424,1
    - Dst: at_end
      Src: /src/cpython/Objects/codeobject.c:1425,1
    - Dst: advance_with_locations
      Src: /src/cpython/Objects/codeobject.c:1428,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/codeobject.c:1431,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: 1423
        line_start: 1423
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1436
      start: 1419
    functionDepth: 3
    functionLinenumber: 1419
    functionLinenumberEnd: 1436
    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:1485,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:1489,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Objects/codeobject.c:1490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1481
    functionDepth: 4
    functionLinenumber: 1481
    functionLinenumberEnd: 1493
    functionName: code_positionsiterator
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCode_InitAddressRange
    - PyType_GenericAlloc
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_positionsiterator(PyObject *self, PyObject* Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1511
    functionName: code_extra_size
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t code_extra_size(Py_ssize_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Objects/codeobject.c:1519,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/codeobject.c:1520,1
    - Dst: code_extra_size
      Src: /src/cpython/Objects/codeobject.c:1521,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:1523,1
    - Dst: memcpy
      Src: /src/cpython/Objects/codeobject.c:1528,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/codeobject.c:1538,1
    - Dst: _PyMem_FreeDelayed
      Src: /src/cpython/Objects/codeobject.c:1541,1
    - Dst: code_extra_size
      Src: /src/cpython/Objects/codeobject.c:1541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - co
    - old_co_extra
    - old_ce_size
    - new_ce_size
    - index
    - extra
    argTypes:
    - PyCodeObject*
    - _PyCodeObjectExtra*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1514
    functionDepth: 7
    functionLinenumber: 1514
    functionLinenumberEnd: 1544
    functionName: code_extra_grow_ft
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - PyErr_NoMemory
    - FT_ATOMIC_STORE_PTR_RELEASE
    - code_extra_size
    - _PyMem_FreeDelayed
    - memcpy
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: "int code_extra_grow_ft(PyCodeObject *co, _PyCodeObjectExtra *old_co_extra,\n
      \                  Py_ssize_t old_ce_size, Py_ssize_t new_ce_size,\n                   Py_ssize_t
      index, void *extra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/cpython/Objects/codeobject.c:1551,1
    - Dst: code_extra_size
      Src: /src/cpython/Objects/codeobject.c:1552,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:1554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - co
    - old_co_extra
    - old_ce_size
    - new_ce_size
    - index
    - extra
    argTypes:
    - PyCodeObject*
    - _PyCodeObjectExtra*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1565
    functionName: code_extra_grow_gil
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - code_extra_size
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: "int code_extra_grow_gil(PyCodeObject *co, _PyCodeObjectExtra *old_co_extra,\n
      \                   Py_ssize_t old_ce_size, Py_ssize_t new_ce_size,\n                    Py_ssize_t
      index, void *extra)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:1571,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/codeobject.c:1572,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/codeobject.c:1584,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Objects/codeobject.c:1586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - code
    - index
    - extra
    argTypes:
    - PyObject*
    - Py_ssize_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1590
    functionName: PyUnstable_Code_GetExtra
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyErr_BadInternalCall
    - PyCode_Check
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Code_GetExtra(PyObject *code, Py_ssize_t index, void
      **extra)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:1596,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_ACQUIRE
      Src: /src/cpython/Objects/codeobject.c:1601,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:1604,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/codeobject.c:1605,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1613,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Objects/codeobject.c:1622,1
    - Dst: code_extra_grow_ft
      Src: /src/cpython/Objects/codeobject.c:1630,1
    - Dst: code_extra_grow_gil
      Src: /src/cpython/Objects/codeobject.c:1634,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1639,1
    - Dst: free_extra
      Src: /src/cpython/Objects/codeobject.c:1646,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - code
    - index
    - extra
    argTypes:
    - PyObject*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1593
    functionDepth: 8
    functionLinenumber: 1593
    functionLinenumberEnd: 1651
    functionName: PyUnstable_Code_SetExtra
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyCode_Check
    - code_extra_grow_ft
    - Py_END_CRITICAL_SECTION
    - FT_ATOMIC_STORE_PTR_RELEASE
    - Py_BEGIN_CRITICAL_SECTION
    - _PyInterpreterState_GET
    - PyErr_BadInternalCall
    - FT_ATOMIC_LOAD_SSIZE_ACQUIRE
    - free_extra
    - code_extra_grow_gil
    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:1662,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1663,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Objects/codeobject.c:1664,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:1666,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1669,1
    - Dst: get_localsplus_names
      Src: /src/cpython/Objects/codeobject.c:1672,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/codeobject.c:1674,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1677,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/codeobject.c:1678,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: 1661
        line_start: 1661
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (co->_co_cached != NULL)
      pos:
        line_end: 1662
        line_start: 1662
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1679
      start: 1658
    functionDepth: 4
    functionLinenumber: 1658
    functionLinenumberEnd: 1679
    functionName: get_cached_locals
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_LOAD_PTR
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - get_localsplus_names
    - FT_ATOMIC_STORE_PTR
    - assert
    - Py_XNewRef
    - Py_NewRef
    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:1684,1
    - Dst: get_cached_locals
      Src: /src/cpython/Objects/codeobject.c:1687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1681
    functionDepth: 5
    functionLinenumber: 1681
    functionLinenumberEnd: 1688
    functionName: _PyCode_GetVarnames
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - get_cached_locals
    - init_co_cached
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_GetVarnames(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetVarnames
      Src: /src/cpython/Objects/codeobject.c:1693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1690
    functionDepth: 6
    functionLinenumber: 1690
    functionLinenumberEnd: 1694
    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:1699,1
    - Dst: get_cached_locals
      Src: /src/cpython/Objects/codeobject.c:1702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1696
    functionDepth: 5
    functionLinenumber: 1696
    functionLinenumberEnd: 1703
    functionName: _PyCode_GetCellvars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - get_cached_locals
    - init_co_cached
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_GetCellvars(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetCellvars
      Src: /src/cpython/Objects/codeobject.c:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1705
    functionDepth: 6
    functionLinenumber: 1705
    functionLinenumberEnd: 1709
    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:1714,1
    - Dst: get_cached_locals
      Src: /src/cpython/Objects/codeobject.c:1717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1711
    functionDepth: 5
    functionLinenumber: 1711
    functionLinenumberEnd: 1718
    functionName: _PyCode_GetFreevars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - get_cached_locals
    - init_co_cached
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_GetFreevars(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetFreevars
      Src: /src/cpython/Objects/codeobject.c:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1720
    functionDepth: 6
    functionLinenumber: 1720
    functionLinenumberEnd: 1724
    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: 1728
      start: 1727
    functionDepth: 0
    functionLinenumber: 1727
    functionLinenumberEnd: 1728
    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: 1731
      start: 1730
    functionDepth: 0
    functionLinenumber: 1730
    functionLinenumberEnd: 1731
    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: 1732
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1732
    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: 1735
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1735
    functionName: GETITEM
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETITEM(v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1739,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/codeobject.c:1739,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1740,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1741,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1741,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1742,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:1742,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:1743,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: 1738
        line_start: 1738
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (i >= 0)
      pos:
        line_end: 1739
        line_start: 1739
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (i < PyTuple_GET_SIZE(v))
      pos:
        line_end: 1740
        line_start: 1740
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PyTuple_GET_ITEM(v, i) != NULL)
      pos:
        line_end: 1741
        line_start: 1741
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1744
      start: 1736
    functionDepth: 1
    functionLinenumber: 1736
    functionLinenumberEnd: 1744
    functionName: GETITEM
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 21
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyTuple_Check
    - 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:1756,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1757,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/codeobject.c:1757,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1758,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1758,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1759,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1760,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/codeobject.c:1760,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1761,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1761,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1762,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/codeobject.c:1762,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1763,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/codeobject.c:1763,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1764,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:1767,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Objects/codeobject.c:1768,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:1769,1
    - Dst: GET_OPARG
      Src: /src/cpython/Objects/codeobject.c:1771,1
    - Dst: LOAD_ATTR_NAME_INDEX
      Src: /src/cpython/Objects/codeobject.c:1772,1
    - Dst: GETITEM
      Src: /src/cpython/Objects/codeobject.c:1773,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/codeobject.c:1774,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1775,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/codeobject.c:1782,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/codeobject.c:1785,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1786,1
    - Dst: GET_OPARG
      Src: /src/cpython/Objects/codeobject.c:1793,1
    - Dst: LOAD_ATTR_NAME_INDEX
      Src: /src/cpython/Objects/codeobject.c:1794,1
    - Dst: GETITEM
      Src: /src/cpython/Objects/codeobject.c:1795,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/codeobject.c:1796,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1797,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/codeobject.c:1804,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1805,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Objects/codeobject.c:1810,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1811,1
    - Dst: PySet_Add
      Src: /src/cpython/Objects/codeobject.c:1819,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/codeobject.c:1822,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Objects/codeobject.c:1823,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: (globalnames != NULL)
      pos:
        line_end: 1755
        line_start: 1755
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (attrnames != NULL)
      pos:
        line_end: 1758
        line_start: 1758
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PySet_GET_SIZE(attrnames) == 0 || counts != NULL)
      pos:
        line_end: 1760
        line_start: 1760
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (builtinsns == NULL || PyDict_Check(builtinsns))
      pos:
        line_end: 1762
        line_start: 1762
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PySet_Check(globalnames))
      pos:
        line_end: 1756
        line_start: 1756
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (counts == NULL || counts->total == 0)
      pos:
        line_end: 1763
        line_start: 1763
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (globalsns == NULL || PyAnyDict_Check(globalsns))
      pos:
        line_end: 1761
        line_start: 1761
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PySet_GET_SIZE(globalnames) == 0 || counts != NULL)
      pos:
        line_end: 1757
        line_start: 1757
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PySet_Check(attrnames))
      pos:
        line_end: 1759
        line_start: 1759
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1837
      start: 1747
    functionDepth: 8
    functionLinenumber: 1747
    functionLinenumberEnd: 1837
    functionName: identify_unbound_names
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - _PyInstruction_GetLength
    - PySet_Add
    - LOAD_ATTR_NAME_INDEX
    - PySet_GET_SIZE
    - _Py_GetBaseCodeUnit
    - _PyErr_Occurred
    - Py_SIZE
    - GET_OPARG
    - GETITEM
    - PySet_Contains
    - PyDict_Check
    - PySet_Check
    - PyDict_Contains
    - 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:1843,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1849,1
    - Dst: _PyLocals_GetKind
      Src: /src/cpython/Objects/codeobject.c:1851,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1853,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1854,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1855,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1860,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1866,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1867,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1871,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1872,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1885,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1893,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1914,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1918,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1919,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1920,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1921,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1922,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1923,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1924,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1925,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1928,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1928,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1929,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1929,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:1930,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 2
    argNames:
    - co
    - counts
    argTypes:
    - PyCodeObject*
    - _PyCode_var_counts_t*
    assertStmts:
    - condition: (!(kind & CO_FAST_HIDDEN))
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.args.numposonly + locals.args.numposorkw == co->co_argcount)
      pos:
        line_end: 1918
        line_start: 1918
        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: 1916
        line_start: 1913
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.args.numposonly == co->co_posonlyargcount)
      pos:
        line_end: 1917
        line_start: 1917
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.args.numkwonly == co->co_kwonlyargcount)
      pos:
        line_end: 1919
        line_start: 1919
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.cells.total == co->co_ncellvars)
      pos:
        line_end: 1920
        line_start: 1920
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.total + numfree == co->co_nlocalsplus)
      pos:
        line_end: 1923
        line_start: 1923
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (counts != NULL)
      pos:
        line_end: 1842
        line_start: 1842
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!(kind & CO_FAST_ARG_KW))
      pos:
        line_end: 1865
        line_start: 1865
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (kind & CO_FAST_ARG_KW)
      pos:
        line_end: 1870
        line_start: 1870
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.total + locals.cells.numargs == co->co_nlocals + co->co_ncellvars)
      pos:
        line_end: 1922
        line_start: 1922
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!(kind & CO_FAST_HIDDEN))
      pos:
        line_end: 1853
        line_start: 1853
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!(kind & CO_FAST_ARG))
      pos:
        line_end: 1854
        line_start: 1854
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (kind)
      pos:
        line_end: 1859
        line_start: 1859
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!locals.args.varkwargs)
      pos:
        line_end: 1871
        line_start: 1871
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (kind & CO_FAST_ARG_KW)
      pos:
        line_end: 1884
        line_start: 1884
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (numfree == co->co_nfreevars)
      pos:
        line_end: 1924
        line_start: 1924
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!(kind & CO_FAST_LOCAL))
      pos:
        line_end: 1852
        line_start: 1852
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (!locals.args.varargs)
      pos:
        line_end: 1866
        line_start: 1866
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (locals.args.total + locals.numpure == co->co_nlocals)
      pos:
        line_end: 1921
        line_start: 1921
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PyTuple_GET_SIZE(co->co_names) >= 0)
      pos:
        line_end: 1927
        line_start: 1927
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (PyTuple_GET_SIZE(co->co_names) < INT_MAX)
      pos:
        line_end: 1928
        line_start: 1928
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1945
      start: 1840
    functionDepth: 1
    functionLinenumber: 1840
    functionLinenumberEnd: 1945
    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:1959,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/codeobject.c:1965,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:1966,1
    - Dst: PySet_New
      Src: /src/cpython/Objects/codeobject.c:1971,1
    - Dst: PySet_Check
      Src: /src/cpython/Objects/codeobject.c:1977,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/codeobject.c:1978,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1986,1
    - Dst: identify_unbound_names
      Src: /src/cpython/Objects/codeobject.c:1987,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:1990,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1994,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1995,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:1996,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2006,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2007,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: 1993
        line_start: 1993
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (unbound.total - numdupes <= counts->unbound.total)
      pos:
        line_end: 1994
        line_start: 1994
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (counts->unbound.numunknown == counts->unbound.total)
      pos:
        line_end: 1995
        line_start: 1995
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2009
      start: 1947
    functionDepth: 13
    functionLinenumber: 1947
    functionLinenumberEnd: 2009
    functionName: _PyCode_SetUnboundVarCounts
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _PyErr_Format
    - identify_unbound_names
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PySet_New
    - PySet_Check
    - Py_XDECREF
    - 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: 2029
      start: 2012
    functionDepth: 0
    functionLinenumber: 2012
    functionLinenumberEnd: 2029
    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: 2057
      start: 2031
    functionDepth: 0
    functionLinenumber: 2031
    functionLinenumberEnd: 2057
    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:2066,1
    - Dst: _PyCode_SetUnboundVarCounts
      Src: /src/cpython/Objects/codeobject.c:2067,1
    - Dst: _PyCode_CheckNoInternalState
      Src: /src/cpython/Objects/codeobject.c:2075,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2076,1
    - Dst: _PyCode_CheckNoExternalState
      Src: /src/cpython/Objects/codeobject.c:2084,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2085,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: 2090
      start: 2059
    functionDepth: 14
    functionLinenumber: 2059
    functionLinenumberEnd: 2090
    functionName: _PyCode_VerifyStateless
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _PyCode_GetVarCounts
    - _PyErr_SetString
    - _PyCode_SetUnboundVarCounts
    - _PyCode_CheckNoInternalState
    - _PyCode_CheckNoExternalState
    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: 2117
      start: 2093
    functionDepth: 0
    functionLinenumber: 2093
    functionLinenumberEnd: 2117
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CheckPureFunction
      Src: /src/cpython/Objects/codeobject.c:2125,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2128,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2129,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/codeobject.c:2132,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:2135,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Objects/codeobject.c:2140,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2141,1
    - Dst: IS_RETURN_OPCODE
      Src: /src/cpython/Objects/codeobject.c:2142,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2145,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2146,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 2128
        line_start: 2128
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (i != 0)
      pos:
        line_end: 2144
        line_start: 2144
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2160
      start: 2122
    functionDepth: 2
    functionLinenumber: 2122
    functionLinenumberEnd: 2160
    functionName: code_returns_only_none
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCode_CheckPureFunction
    - _PyInstruction_GetLength
    - PyTuple_Size
    - PyTuple_GET_ITEM
    - IS_RETURN_OPCODE
    - _Py_GetBaseCodeUnit
    - Py_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:2166,1
    - Dst: code_returns_only_none
      Src: /src/cpython/Objects/codeobject.c:2167,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2170
    functionName: _PyCode_ReturnsOnlyNone
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - code_returns_only_none
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: int
    signature: int _PyCode_ReturnsOnlyNone(PyCodeObject *co)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2178,1
    - Dst: _Py_ExecutorDetach
      Src: /src/cpython/Objects/codeobject.c:2181,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2182,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (co->co_executors)
      pos:
        line_end: 2177
        line_start: 2177
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (co->co_executors->executors[i] == NULL)
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2187
      start: 2175
    functionDepth: 2
    functionLinenumber: 2175
    functionLinenumberEnd: 2187
    functionName: clear_executors
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _Py_ExecutorDetach
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_executors(PyCodeObject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_executors
      Src: /src/cpython/Objects/codeobject.c:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2189
    functionDepth: 3
    functionLinenumber: 2189
    functionLinenumberEnd: 2193
    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:2200,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2202,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2203,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: 2202
        line_start: 2202
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2211
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2211
    functionName: deopt_code
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _Py_GetBaseCodeUnit
    - Py_SIZE
    - 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:2216,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Objects/codeobject.c:2221,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:2223,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:2226,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:2229,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Objects/codeobject.c:2229,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:2230,1
    - Dst: deopt_code
      Src: /src/cpython/Objects/codeobject.c:2232,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/codeobject.c:2232,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2233,1
    - Dst: FT_ATOMIC_STORE_PTR
      Src: /src/cpython/Objects/codeobject.c:2234,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:2237,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/codeobject.c:2238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (cached->_co_code == NULL)
      pos:
        line_end: 2232
        line_start: 2232
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2239
      start: 2213
    functionDepth: 4
    functionLinenumber: 2213
    functionLinenumberEnd: 2239
    functionName: _PyCode_GetCode
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_LOAD_PTR
    - PyBytes_AS_STRING
    - Py_END_CRITICAL_SECTION
    - PyBytes_FromStringAndSize
    - Py_BEGIN_CRITICAL_SECTION
    - assert
    - _PyCode_CODE
    - init_co_cached
    - FT_ATOMIC_STORE_PTR
    - _PyCode_NBYTES
    - Py_XNewRef
    - Py_NewRef
    - deopt_code
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_GetCode(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Objects/codeobject.c:2244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2241
    functionDepth: 5
    functionLinenumber: 2241
    functionLinenumberEnd: 2245
    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:2299,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2306,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2313,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2320,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/codeobject.c:2326,1
    - Dst: validate_and_copy_tuple
      Src: /src/cpython/Objects/codeobject.c:2332,1
    - Dst: validate_and_copy_tuple
      Src: /src/cpython/Objects/codeobject.c:2335,1
    - Dst: validate_and_copy_tuple
      Src: /src/cpython/Objects/codeobject.c:2339,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:2341,1
    - Dst: validate_and_copy_tuple
      Src: /src/cpython/Objects/codeobject.c:2345,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:2347,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/cpython/Objects/codeobject.c:2351,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2362,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2363,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2364,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2365,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: 2367
      start: 2283
    functionDepth: 6
    functionLinenumber: 2283
    functionLinenumberEnd: 2367
    functionName: code_new_impl
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_NewWithPosOnlyArgs
    - PySys_Audit
    - PyErr_SetString
    - Py_XDECREF
    - validate_and_copy_tuple
    - PyTuple_New
    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:2376,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2379,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2382,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2385,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2388,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCoMonitoringData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2369
    functionDepth: 2
    functionLinenumber: 2369
    functionLinenumberEnd: 2391
    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:2396,1
    - Dst: _Py_atomic_add_uint64
      Src: /src/cpython/Objects/codeobject.c:2397,1
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2398,1
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/codeobject.c:2399,1
    - Dst: notify_code_watchers
      Src: /src/cpython/Objects/codeobject.c:2400,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/codeobject.c:2401,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/codeobject.c:2406,1
    - Dst: _PyFunction_ClearCodeByVersion
      Src: /src/cpython/Objects/codeobject.c:2409,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:2411,1
    - Dst: free_extra
      Src: /src/cpython/Objects/codeobject.c:2418,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2422,1
    - Dst: clear_executors
      Src: /src/cpython/Objects/codeobject.c:2426,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2430,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2431,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2432,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2433,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2434,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2435,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2436,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2437,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2438,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:2440,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2443,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2444,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2445,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2446,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2447,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/codeobject.c:2449,1
    - Dst: free_monitoring_data
      Src: /src/cpython/Objects/codeobject.c:2450,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2457,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:2460,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/codeobject.c:2462,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: 2439
        line_start: 2439
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 2463
      start: 2393
    functionDepth: 3
    functionLinenumber: 2393
    functionLinenumberEnd: 2463
    functionName: code_dealloc
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - clear_executors
    - _PyFunction_ClearCodeByVersion
    - assert
    - _Py_atomic_add_uint64
    - _PyObject_ResurrectEnd
    - FT_CLEAR_WEAKREFS
    - _PyObject_ResurrectStart
    - PyThreadState_GET
    - _PyInterpreterState_GET
    - _PyCodeObject_CAST
    - free_monitoring_data
    - notify_code_watchers
    - PyMem_Free
    - PyObject_GC_UnTrack
    - Py_XDECREF
    - free_extra
    - PyObject_Free
    linkageType: ''
    returnType: void
    signature: void code_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2469,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/codeobject.c:2470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2466
    functionDepth: 1
    functionLinenumber: 2466
    functionLinenumberEnd: 2472
    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:2478,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/codeobject.c:2484,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/codeobject.c:2485,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/codeobject.c:2489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2475
    functionDepth: 10
    functionLinenumber: 2475
    functionLinenumberEnd: 2493
    functionName: code_repr
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCodeObject_CAST
    - PyUnicode_FromFormat
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_repr(PyObject *self)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:2504,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:2505,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2512,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2524,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2524,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2528,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2529,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2530,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:2538,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:2541,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:2543,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:2547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:2548,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2551,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2553,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2556,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:2560,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:2581,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 89
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2495
    functionDepth: 4
    functionLinenumber: 2495
    functionLinenumberEnd: 2582
    functionName: code_richcompare
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyObject_RichCompareBool
    - _Py_GetBaseCodeUnit
    - Py_SIZE
    - _PyCode_ConstantKey
    - Py_DECREF
    - Py_NewRef
    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:2587,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2601,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2602,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2603,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2604,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2605,1
    - Dst: SCRAMBLE_IN_HASH
      Src: /src/cpython/Objects/codeobject.c:2606,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2607,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2608,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2609,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2610,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2611,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2612,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2612,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2613,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Objects/codeobject.c:2614,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2615,1
    - Dst: SCRAMBLE_IN
      Src: /src/cpython/Objects/codeobject.c:2616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2584
    functionDepth: 1
    functionLinenumber: 2584
    functionLinenumberEnd: 2623
    functionName: code_hash
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - SCRAMBLE_IN
    - _Py_GetBaseCodeUnit
    - SCRAMBLE_IN_HASH
    - Py_SIZE
    - _PyCodeObject_CAST
    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: 2593
      start: 2589
    functionDepth: 0
    functionLinenumber: 2589
    functionLinenumberEnd: 2593
    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: 2600
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2600
    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: 2627
      start: 2626
    functionDepth: 0
    functionLinenumber: 2626
    functionLinenumberEnd: 2627
    functionName: 'OFF'
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2650,1
    - Dst: _PyCode_GetVarnames
      Src: /src/cpython/Objects/codeobject.c:2651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2647
    functionDepth: 6
    functionLinenumber: 2647
    functionLinenumberEnd: 2652
    functionName: code_getvarnames
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCode_GetVarnames
    - _PyCodeObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getvarnames(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2657,1
    - Dst: _PyCode_GetCellvars
      Src: /src/cpython/Objects/codeobject.c:2658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2659
      start: 2654
    functionDepth: 6
    functionLinenumber: 2654
    functionLinenumberEnd: 2659
    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:2664,1
    - Dst: _PyCode_GetFreevars
      Src: /src/cpython/Objects/codeobject.c:2665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2661
    functionDepth: 6
    functionLinenumber: 2661
    functionLinenumberEnd: 2666
    functionName: code_getfreevars
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCode_GetFreevars
    - _PyCodeObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getfreevars(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2671,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/codeobject.c:2672,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:2673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2668
    functionDepth: 4
    functionLinenumber: 2668
    functionLinenumberEnd: 2674
    functionName: code_getcodeadaptive
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyCodeObject_CAST
    - _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:2679,1
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Objects/codeobject.c:2680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2676
    functionDepth: 5
    functionLinenumber: 2676
    functionLinenumberEnd: 2681
    functionName: code_getcode
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyCode_GetCode
    - _PyCodeObject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_getcode(PyObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodeObject_CAST
      Src: /src/cpython/Objects/codeobject.c:2697,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Objects/codeobject.c:2698,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2698,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/codeobject.c:2698,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/codeobject.c:2704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2694
    functionDepth: 1
    functionLinenumber: 2694
    functionLinenumberEnd: 2705
    functionName: code_sizeof
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - _PyObject_VAR_SIZE
    - Py_SIZE
    - _PyCodeObject_CAST
    - 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:2710,1
    - Dst: new_linesiterator
      Src: /src/cpython/Objects/codeobject.c:2711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2707
    functionDepth: 5
    functionLinenumber: 2707
    functionLinenumberEnd: 2712
    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:2717,1
    - Dst: _PyInstrumentation_BranchesIterator
      Src: /src/cpython/Objects/codeobject.c:2718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2714
    functionDepth: 1
    functionLinenumber: 2714
    functionLinenumberEnd: 2719
    functionName: code_branchesiterator
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyInstrumentation_BranchesIterator
    - _PyCodeObject_CAST
    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: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: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2771,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2772,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2773,1
    - Dst: CHECK_INT_ARG
      Src: /src/cpython/Objects/codeobject.c:2774,1
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Objects/codeobject.c:2780,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/codeobject.c:2787,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2791,1
    - Dst: get_localsplus_names
      Src: /src/cpython/Objects/codeobject.c:2800,1
    - Dst: get_localsplus_names
      Src: /src/cpython/Objects/codeobject.c:2807,1
    - Dst: get_localsplus_names
      Src: /src/cpython/Objects/codeobject.c:2814,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/cpython/Objects/codeobject.c:2821,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2829,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2830,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2831,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:2832,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: 2834
      start: 2749
    functionDepth: 5
    functionLinenumber: 2749
    functionLinenumberEnd: 2834
    functionName: code_replace_impl
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_NewWithPosOnlyArgs
    - PySys_Audit
    - _PyCode_GetCode
    - get_localsplus_names
    - Py_XDECREF
    - CHECK_INT_ARG
    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: 2767
      start: 2761
    functionDepth: 0
    functionLinenumber: 2761
    functionLinenumberEnd: 2767
    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:2851,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:2855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - oparg
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2847
    functionDepth: 2
    functionLinenumber: 2847
    functionLinenumberEnd: 2856
    functionName: code__varname_from_oparg_impl
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - Py_NewRef
    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:2934,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2935,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/codeobject.c:2937,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/codeobject.c:2941,1
    - Dst: PyBool_Check
      Src: /src/cpython/Objects/codeobject.c:2943,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2943,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/codeobject.c:2946,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2946,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2948,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/codeobject.c:2949,1
    - Dst: copysign
      Src: /src/cpython/Objects/codeobject.c:2953,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2954,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2954,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/codeobject.c:2956,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2956,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2958,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Objects/codeobject.c:2965,1
    - Dst: copysign
      Src: /src/cpython/Objects/codeobject.c:2966,1
    - Dst: copysign
      Src: /src/cpython/Objects/codeobject.c:2967,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2971,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2971,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2974,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2974,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/codeobject.c:2977,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2977,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/codeobject.c:2980,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:2980,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:2983,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:2987,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:2988,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:2995,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:2996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:2998,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:3002,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/codeobject.c:3005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3006,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3008,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3015,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/codeobject.c:3016,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Objects/codeobject.c:3021,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:3024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3026,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3030,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/codeobject.c:3031,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Objects/codeobject.c:3034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3035,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/codeobject.c:3039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3040,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/codeobject.c:3043,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:3050,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:3055,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Objects/codeobject.c:3060,1
    - Dst: PySlice_New
      Src: /src/cpython/Objects/codeobject.c:3065,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/codeobject.c:3070,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3071,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:3073,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:3074,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/codeobject.c:3075,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/codeobject.c:3080,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Objects/codeobject.c:3084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/codeobject.c:3085,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 104
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (i < len)
      pos:
        line_end: 3029
        line_start: 3029
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3088
      start: 2927
    functionDepth: 13
    functionLinenumber: 2927
    functionLinenumberEnd: 3088
    functionName: _PyCode_ConstantKey
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 2
    functionsReached:
    - PySlice_Check
    - PyTuple_GET_ITEM
    - PyFloat_AS_DOUBLE
    - copysign
    - PyFrozenSet_CheckExact
    - PyComplex_CheckExact
    - _PySet_NextEntry
    - PySlice_New
    - assert
    - PyComplex_AsCComplex
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyLong_FromVoidPtr
    - PyBytes_CheckExact
    - PyFloat_CheckExact
    - Py_XDECREF
    - PyTuple_CheckExact
    - _PyTuple_FromPair
    - PyLong_CheckExact
    - PyTuple_SET_ITEM
    - _PyCode_ConstantKey
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    - PyBool_Check
    - PyCode_Check
    - PySet_GET_SIZE
    - PyUnicode_CheckExact
    - PyTuple_Pack
    - PyFrozenSet_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_ConstantKey(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/codeobject.c:3094,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3097,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3097,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Objects/codeobject.c:3099,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Objects/codeobject.c:3101,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3102,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/codeobject.c:3107,1
    - Dst: _Py_AddRefTotal
      Src: /src/cpython/Objects/codeobject.c:3111,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/codeobject.c:3111,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/codeobject.c:3115,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3119,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Objects/codeobject.c:3119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyUnicode_CheckExact(op))
      pos:
        line_end: 3096
        line_start: 3096
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (_Py_IsImmortal(entry->value))
      pos:
        line_end: 3118
        line_start: 3118
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3121
      start: 3091
    functionDepth: 3
    functionLinenumber: 3091
    functionLinenumberEnd: 3121
    functionName: intern_one_constant
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - _Py_hashtable_set
    - PyErr_NoMemory
    - PyUnicode_CheckExact
    - _PyInterpreterState_GET
    - Py_REFCNT
    - _Py_AddRefTotal
    - _PyThreadState_GET
    - _Py_IsImmortal
    - assert
    - _Py_SetImmortal
    - _Py_hashtable_get_entry
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      intern_one_constant(PyObject *op)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:3131,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/codeobject.c:3131,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3136,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3137,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3138,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:3142,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/codeobject.c:3142,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3148,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3149,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3149,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Objects/codeobject.c:3155,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Objects/codeobject.c:3156,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/codeobject.c:3164,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3171,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3171,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/codeobject.c:3172,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3174,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/codeobject.c:3176,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Objects/codeobject.c:3177,1
    - Dst: memcmp
      Src: /src/cpython/Objects/codeobject.c:3178,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3180,1
    - Dst: memcmp
      Src: /src/cpython/Objects/codeobject.c:3183,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3188
      start: 3123
    functionDepth: 4
    functionLinenumber: 3123
    functionLinenumberEnd: 3188
    functionName: compare_constants
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyTuple_GET_ITEM
    - PyObject_RichCompareBool
    - PyFloat_AS_DOUBLE
    - PyFrozenSet_CheckExact
    - memcmp
    - PySet_GET_SIZE
    - PyBytes_CheckExact
    - _PySet_NextEntry
    - PyLong_CheckExact
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - Py_TYPE
    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:3194,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/codeobject.c:3197,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3199,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3200,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/codeobject.c:3201,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/codeobject.c:3202,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/codeobject.c:3204,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/codeobject.c:3211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3215
      start: 3190
    functionDepth: 3
    functionLinenumber: 3190
    functionLinenumberEnd: 3215
    functionName: hash_const
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyObject_Hash
    - PyErr_Clear
    - _PyTuple_ITEMS
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - Py_HashBuffer
    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:3224,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/codeobject.c:3225,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/codeobject.c:3226,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Objects/codeobject.c:3226,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/codeobject.c:3229,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/codeobject.c:3231,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/codeobject.c:3232,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/codeobject.c:3233,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Objects/codeobject.c:3235,1
    - Dst: _PySet_ClearInternal
      Src: /src/cpython/Objects/codeobject.c:3236,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: 3239
      start: 3217
    functionDepth: 10
    functionLinenumber: 3217
    functionLinenumberEnd: 3239
    functionName: clear_containers
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyFrozenSet_CheckExact
    - Py_SETREF
    - Py_CLEAR
    - _PySet_ClearInternal
    - _PyTuple_ITEMS
    - PyTuple_GET_SIZE
    - 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:3244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3241
    functionDepth: 1
    functionLinenumber: 3241
    functionLinenumberEnd: 3245
    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:3253,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Objects/codeobject.c:3256,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/codeobject.c:3259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3260
      start: 3248
    functionDepth: 1
    functionLinenumber: 3248
    functionLinenumberEnd: 3260
    functionName: _PyCode_Init
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_new_full
    - _PyStatus_OK
    - _PyStatus_NO_MEMORY
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyCode_Init(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Objects/codeobject.c:3269,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Objects/codeobject.c:3270,1
    - Dst: _PyIndexPool_Fini
      Src: /src/cpython/Objects/codeobject.c:3273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3262
    functionDepth: 1
    functionLinenumber: 3262
    functionLinenumberEnd: 3275
    functionName: _PyCode_Fini
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_foreach
    - _PyIndexPool_Fini
    - _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:3303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3307
      start: 3299
    functionDepth: 1
    functionLinenumber: 3299
    functionLinenumberEnd: 3307
    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:3314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3309
    functionDepth: 1
    functionLinenumber: 3309
    functionLinenumberEnd: 3316
    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:3321,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3329
      start: 3318
    functionDepth: 2
    functionLinenumber: 3318
    functionLinenumberEnd: 3329
    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:3335,1
    - Dst: FT_ATOMIC_LOAD_UINT16_RELAXED
      Src: /src/cpython/Objects/codeobject.c:3337,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3341,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - code
    - i
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (inst.op.code != ENTER_EXECUTOR)
      pos:
        line_end: 3343
        line_start: 3343
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (inst.op.code < MIN_SPECIALIZED_OPCODE)
      pos:
        line_end: 3340
        line_start: 3340
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3346
      start: 3332
    functionDepth: 1
    functionLinenumber: 3332
    functionLinenumberEnd: 3346
    functionName: deopt_code_unit
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyCode_CODE
    - FT_ATOMIC_LOAD_UINT16_RELAXED
    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:3351,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Objects/codeobject.c:3352,1
    - Dst: deopt_code_unit
      Src: /src/cpython/Objects/codeobject.c:3353,1
    - Dst: _PyCode_Quicken
      Src: /src/cpython/Objects/codeobject.c:3355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - interp
    - dst
    - co
    argTypes:
    - PyInterpreterState*
    - _Py_CODEUNIT*
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3356
      start: 3348
    functionDepth: 2
    functionLinenumber: 3348
    functionLinenumberEnd: 3356
    functionName: copy_code
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - deopt_code_unit
    - _PyInstruction_GetLength
    - _PyCode_Quicken
    - Py_SIZE
    linkageType: ''
    returnType: void
    signature: void copy_code(PyInterpreterState *interp, _Py_CODEUNIT *dst, PyCodeObject
      *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3362,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: 3361
        line_start: 3361
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3368
      start: 3358
    functionDepth: 0
    functionLinenumber: 3358
    functionLinenumberEnd: 3368
    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:3375,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3377,1
    - Dst: _PyCodeArray_New
      Src: /src/cpython/Objects/codeobject.c:3380,1
    - Dst: memcpy
      Src: /src/cpython/Objects/codeobject.c:3384,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Objects/codeobject.c:3385,1
    - Dst: _PyMem_FreeDelayed
      Src: /src/cpython/Objects/codeobject.c:3386,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/codeobject.c:3389,1
    - Dst: _PyCode_NBYTES
      Src: /src/cpython/Objects/codeobject.c:3389,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3391,1
    - Dst: copy_code
      Src: /src/cpython/Objects/codeobject.c:3394,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - interp
    - co
    - idx
    argTypes:
    - PyInterpreterState*
    - PyCodeObject*
    - Py_ssize_t
    assertStmts:
    - condition: (tlbc->entries[idx] == NULL)
      pos:
        line_end: 3394
        line_start: 3394
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3398
      start: 3370
    functionDepth: 7
    functionLinenumber: 3370
    functionLinenumberEnd: 3398
    functionName: create_tlbc_lock_held
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - assert
    - _PyMem_FreeDelayed
    - _PyCodeArray_New
    - _PyCode_NBYTES
    - memcpy
    - copy_code
    - _Py_atomic_store_ptr_release
    - get_pow2_greater
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: '_Py_CODEUNIT *

      create_tlbc_lock_held(PyInterpreterState *interp, PyCodeObject *co, Py_ssize_t
      idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/codeobject.c:3404,1
    - Dst: create_tlbc_lock_held
      Src: /src/cpython/Objects/codeobject.c:3410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3400
    functionDepth: 8
    functionLinenumber: 3400
    functionLinenumberEnd: 3411
    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:3417,1
    - Dst: get_tlbc_lock_held
      Src: /src/cpython/Objects/codeobject.c:3418,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/codeobject.c:3419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3421
      start: 3413
    functionDepth: 9
    functionLinenumber: 3413
    functionLinenumberEnd: 3421
    functionName: _PyCode_GetTLBC
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - get_tlbc_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: '_Py_CODEUNIT *

      _PyCode_GetTLBC(PyCodeObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3432,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: 3431
        line_start: 3431
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3434
      start: 3429
    functionDepth: 0
    functionLinenumber: 3429
    functionLinenumberEnd: 3434
    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:3440,1
    - Dst: assert
      Src: /src/cpython/Objects/codeobject.c:3441,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Objects/codeobject.c:3449,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Objects/codeobject.c:3451,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Objects/codeobject.c:3458,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: 3439
        line_start: 3439
        source_file: /src/cpython/Objects/codeobject.c
    - condition: (in_use->flags == NULL)
      pos:
        line_end: 3440
        line_start: 3440
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3460
      start: 3437
    functionDepth: 2
    functionLinenumber: 3437
    functionLinenumberEnd: 3460
    functionName: get_indices_in_use
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - _Py_FOR_EACH_TSTATE_END
    - assert
    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: 3448
      start: 3443
    functionDepth: 0
    functionLinenumber: 3443
    functionLinenumberEnd: 3448
    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: 3457
      start: 3455
    functionDepth: 0
    functionLinenumber: 3455
    functionLinenumberEnd: 3457
    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:3472,1
    - Dst: _PyObjectStack_Clear
      Src: /src/cpython/Objects/codeobject.c:3475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct get_code_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3476
      start: 3468
    functionDepth: 2
    functionLinenumber: 3468
    functionLinenumberEnd: 3476
    functionName: clear_get_code_args
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Clear
    - PyMem_Free
    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:3482,1
    - Dst: flag_is_set
      Src: /src/cpython/Objects/codeobject.c:3483,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: 3481
        line_start: 3481
        source_file: /src/cpython/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 3484
      start: 3478
    functionDepth: 1
    functionLinenumber: 3478
    functionLinenumberEnd: 3484
    functionName: is_bytecode_unused
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - flag_is_set
    - assert
    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:3490,1
    - Dst: is_bytecode_unused
      Src: /src/cpython/Objects/codeobject.c:3498,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Objects/codeobject.c:3499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3486
    functionDepth: 2
    functionLinenumber: 3486
    functionLinenumberEnd: 3507
    functionName: get_code_with_unused_tlbc
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - is_bytecode_unused
    - PyCode_Check
    - _PyObjectStack_Push
    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:3516,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/codeobject.c:3517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - co
    - indices_in_use
    argTypes:
    - PyCodeObject*
    - struct flag_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3509
    functionDepth: 2
    functionLinenumber: 3509
    functionLinenumberEnd: 3521
    functionName: free_unused_bytecode
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - is_bytecode_unused
    - PyMem_Free
    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:3531,1
    - Dst: get_indices_in_use
      Src: /src/cpython/Objects/codeobject.c:3533,1
    - Dst: _PyGC_VisitObjectsWorldStopped
      Src: /src/cpython/Objects/codeobject.c:3537,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Objects/codeobject.c:3546,1
    - Dst: free_unused_bytecode
      Src: /src/cpython/Objects/codeobject.c:3547,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/codeobject.c:3549,1
    - Dst: clear_get_code_args
      Src: /src/cpython/Objects/codeobject.c:3550,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/codeobject.c:3554,1
    - Dst: clear_get_code_args
      Src: /src/cpython/Objects/codeobject.c:3555,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/codeobject.c:3556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3558
      start: 3523
    functionDepth: 3
    functionLinenumber: 3523
    functionLinenumberEnd: 3558
    functionName: _Py_ClearUnusedTLBC
    functionSourceFile: /src/cpython/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Pop
    - _PyEval_StartTheWorld
    - PyErr_NoMemory
    - clear_get_code_args
    - get_indices_in_use
    - _PyEval_StopTheWorld
    - _PyGC_VisitObjectsWorldStopped
    - free_unused_bytecode
    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:
    - PyUnicode_GET_LENGTH
    - templateiterobject_CAST
    - PyIter_Next
    - Py_SETREF
    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:
    - PyObject_GC_UnTrack
    - Py_TYPE
    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:
    - Py_CLEAR
    - templateiterobject_CAST
    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:152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:153,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:158,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:161,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/templateobject.c:161,1
    - Dst: _PyInterpolation_CheckExact
      Src: /src/cpython/Objects/templateobject.c:165,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/templateobject.c:167,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:168,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/templateobject.c:168,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:170,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/templateobject.c:170,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Objects/templateobject.c:175,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:176,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/templateobject.c:176,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:181,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 92
    functionDepth: 7
    functionLinenumber: 92
    functionLinenumberEnd: 183
    functionName: template_new
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _Py_STR
    - _Py_DECLARE_STR
    - PyErr_SetString
    - _PyInterpolation_CheckExact
    - PyUnicode_Check
    - PyTuple_SET_ITEM
    - PyErr_Format
    - PyUnicode_Concat
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    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:188,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/templateobject.c:189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/templateobject.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: template_dealloc
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void template_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:196,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/templateobject.c:197,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/templateobject.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 200
    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:205,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/templateobject.c:206,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/templateobject.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 209
    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:214,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/templateobject.c:215,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/templateobject.c:216,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/templateobject.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 10
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: template_repr
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - Py_TYPE
    - PyUnicode_FromFormat
    - templateobject_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_repr(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:224,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/templateobject.c:225,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/templateobject.c:230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:232,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/templateobject.c:236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:239,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/templateobject.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 248
    functionName: template_iter
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GetIter
    - templateobject_CAST
    - Py_DECREF
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      template_iter(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:253,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:254,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:255,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:256,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Objects/templateobject.c:258,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/templateobject.c:263,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:265,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:271,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/templateobject.c:271,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:271,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:273,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:275,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/templateobject.c:275,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 250
    functionDepth: 7
    functionLinenumber: 250
    functionLinenumberEnd: 279
    functionName: template_strings_concat
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_SET_ITEM
    - PyUnicode_Concat
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    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:284,1
    - Dst: PySequence_Concat
      Src: /src/cpython/Objects/templateobject.c:289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:291,1
    - Dst: _PyTemplate_Build
      Src: /src/cpython/Objects/templateobject.c:295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - templateobject*
    - templateobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 8
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: template_concat_templates
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyTemplate_Build
    - PySequence_Concat
    - template_strings_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:304,1
    - Dst: _PyTemplate_CheckExact
      Src: /src/cpython/Objects/templateobject.c:304,1
    - Dst: template_concat_templates
      Src: /src/cpython/Objects/templateobject.c:305,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/templateobject.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 301
    functionDepth: 9
    functionLinenumber: 301
    functionLinenumberEnd: 312
    functionName: _PyTemplate_Concat
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - _PyTemplate_CheckExact
    - PyErr_Format
    - template_concat_templates
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTemplate_Concat(PyObject *self, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:317,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:319,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/templateobject.c:320,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/templateobject.c:320,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/templateobject.c:326,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/templateobject.c:327,1
    - Dst: _PyInterpolation_GetValueRef
      Src: /src/cpython/Objects/templateobject.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(data)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 331
    functionName: template_values_get
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyInterpolation_GetValueRef
    - PyTuple_SET_ITEM
    - templateobject_CAST
    - PyTuple_GET_SIZE
    - PyTuple_New
    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:352,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/templateobject.c:356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:357,1
    - Dst: templateobject_CAST
      Src: /src/cpython/Objects/templateobject.c:362,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Objects/templateobject.c:363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/templateobject.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(dummy)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 370
    functionName: template_reduce
    functionSourceFile: /src/cpython/Objects/templateobject.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_BuildValue
    - PyObject_GetAttrString
    - templateobject_CAST
    - Py_DECREF
    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_Format
    - Py_FatalError
    - _PyErr_Occurred
    - assert
    - Py_DECREF
    - _PyErr_FormatFromCauseTstate
    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:
    - _Py_FatalErrorFormat
    - _PyThreadState_GET
    - _PyErr_Occurred
    - Py_TYPE
    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
    - _Py_CheckFunctionResult
    - PyVectorcall_Function
    - _PyErr_Occurred
    - _PyStack_UnpackDict
    - _PyStack_UnpackDict_Free
    - PyDict_Check
    - func
    - assert
    - PyDict_GET_SIZE
    - PyVectorcall_NARGS
    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
    - _PyErr_Format
    - Py_IS_TYPE
    - PyCallable_Check
    - PyObject_GetOptionalAttr
    - _PyErr_Clear
    - Py_XDECREF
    - Py_DECREF
    - 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: (keywords == NULL || PyTuple_Check(keywords) || PyDict_Check(keywords))
      pos:
        line_end: 205
        line_start: 205
        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: (args != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/cpython/Objects/call.c
    - condition: (nargs >= 0)
      pos:
        line_end: 203
        line_start: 203
        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
    - _Py_CheckFunctionResult
    - PyTuple_FromArray
    - _PyStack_AsDict
    - PyDict_Check
    - _Py_LeaveRecursiveCallTstate
    - PyTuple_Check
    - assert
    - Py_DECREF
    - _PyCFunctionWithKeywords_TrampolineCall
    - PyTuple_GET_SIZE
    - _Py_EnterRecursiveCallTstate
    - Py_TYPE
    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: 3
    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:
    - _Py_CheckFunctionResult
    - _PyStack_UnpackDict
    - _PyStack_UnpackDict_Free
    - _PyTuple_ITEMS
    - func
    - assert
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    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
    - memcpy
    - assert
    - Py_TYPE
    - _PyVectorcall_Call
    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: 36
    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: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 343
        line_start: 343
        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
    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:
    - Py_TYPE
    - object_is_not_callable
    - _Py_CheckFunctionResult
    - _PyErr_Occurred
    - PyVectorcall_Function
    - PyDict_Check
    - _Py_LeaveRecursiveCallTstate
    - PyTuple_Check
    - assert
    - _Py_EnterRecursiveCallTstate
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - _PyVectorcall_Call
    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: 30
    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: 90
    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
    - assert
    - PyVectorcall_NARGS
    - EVAL_CALL_STAT_INC
    - _PyEval_Vector
    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:
    - _PyErr_SetString
    - _PyErr_Occurred
    - _PyThreadState_GET
    - PyDict_Check
    - PyTuple_Check
    - assert
    - _PyObject_VectorcallDictTstate
    - _PyObject_Call
    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:
    - _PyErr_SetString
    - _PyErr_Occurred
    - _PyObject_CallNoArgsTstate
    - _PyThreadState_GET
    - PyTuple_Check
    - assert
    - _PyObject_Call
    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:
    - PyErr_NoMemory
    - assert
    - Py_ARRAY_LENGTH
    - memcpy
    - PyTuple_Check
    - PyMem_Malloc
    - _PyTuple_ITEMS
    - _PyObject_VectorcallDictTstate
    - PyTuple_GET_SIZE
    - PyMem_Free
    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:
    - _PyObject_VectorcallTstate
    - Py_ARRAY_LENGTH
    - _Py_VaBuildStack
    - _PyObject_CallNoArgsTstate
    - _PyTuple_ITEMS
    - PyTuple_Check
    - null_error
    - Py_DECREF
    - PyMem_Free
    - PyTuple_GET_SIZE
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    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: 47
    functionsReached:
    - _PyThreadState_GET
    - va_end
    - va_start
    - _PyObject_CallFunctionVa
    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_end
    - va_start
    - _PyObject_CallFunctionVa
    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_end
    - va_start
    - _PyObject_CallFunctionVa
    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:
    - _PyErr_Format
    - _PyObject_CallFunctionVa
    - PyCallable_Check
    - assert
    - Py_TYPE
    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: 42
    functionsReached:
    - va_start
    - _PyThreadState_GET
    - va_end
    - callmethod
    - PyObject_GetAttrString
    - null_error
    - Py_DECREF
    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:
    - va_start
    - _PyThreadState_GET
    - va_end
    - callmethod
    - PyObject_GetAttrString
    - null_error
    - Py_DECREF
    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:
    - va_start
    - PyObject_GetAttr
    - _PyThreadState_GET
    - va_end
    - callmethod
    - null_error
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallMethod(PyObject *obj, PyObject *name,\n
      \                    const char *format, ...)"
  - BBCount: 2
    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:713,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:720,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:721,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 702
    functionDepth: 4
    functionLinenumber: 702
    functionLinenumberEnd: 726
    functionName: _PyObject_CallMethodId
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetAttrId
    - va_start
    - _PyThreadState_GET
    - va_end
    - callmethod
    - null_error
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallMethodId(PyObject *obj, _Py_Identifier *name,\n
      \                      const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:732,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:734,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:735,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - callable
    - format
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts:
    - condition: (callable != NULL)
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 738
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 738
    functionName: _PyObject_CallMethodFormat
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - va_end
    - callmethod
    - va_start
    - assert
    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:747,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:749,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/call.c:752,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:758,1
    - Dst: callmethod
      Src: /src/cpython/Objects/call.c:759,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 744
    functionDepth: 4
    functionLinenumber: 744
    functionLinenumberEnd: 764
    functionName: _PyObject_CallMethod_SizeT
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - va_start
    - _PyThreadState_GET
    - va_end
    - callmethod
    - PyObject_GetAttrString
    - null_error
    - Py_DECREF
    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:781,1
    - Dst: va_copy
      Src: /src/cpython/Objects/call.c:785,1
    - Dst: va_arg
      Src: /src/cpython/Objects/call.c:788,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:794,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/call.c:797,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/call.c:801,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/call.c:803,1
    - Dst: va_arg
      Src: /src/cpython/Objects/call.c:814,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/call.c:818,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Objects/call.c:819,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:823,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/call.c:826,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: 829
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 829
    functionName: object_vacall
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 0
    functionsReached:
    - va_copy
    - PyFunction_Check
    - PyMem_Malloc
    - PyErr_NoMemory
    - _PyObject_VectorcallTstate
    - Py_ARRAY_LENGTH
    - va_end
    - PyMem_Free
    - null_error
    - va_arg
    - EVAL_CALL_STAT_INC
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nobject_vacall(PyThreadState *tstate, PyObject *base,\n
      \             PyObject *callable, va_list vargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/call.c:836,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:837,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:846,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:847,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/call.c:852,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:855,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/call.c:860,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/call.c:864,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Objects/call.c:866,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:875,1
    - Dst: memcpy
      Src: /src/cpython/Objects/call.c:876,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:877,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/call.c:880,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 6
    argNames:
    - tstate
    - callable
    - arg
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (nargs == 0 || args[nargs-1])
      pos:
        line_end: 836
        line_start: 836
        source_file: /src/cpython/Objects/call.c
    - condition: (newargs[nargs-1])
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/cpython/Objects/call.c
    - condition: (args != NULL)
      pos:
        line_end: 874
        line_start: 874
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 884
      start: 831
    functionDepth: 7
    functionLinenumber: 831
    functionLinenumberEnd: 884
    functionName: _PyObject_VectorcallPrepend
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 1
    functionsReached:
    - PyMem_Malloc
    - _PyObject_VectorcallTstate
    - Py_ARRAY_LENGTH
    - _PyErr_NoMemory
    - memcpy
    - PyMem_Free
    - assert
    - PyTuple_GET_SIZE
    - PyVectorcall_NARGS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_VectorcallPrepend(PyThreadState *tstate, PyObject
      *callable,\n                            PyObject *arg, PyObject *const *args,\n
      \                           size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:890,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:891,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:892,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Objects/call.c:892,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:894,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/call.c:896,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/call.c:897,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Objects/call.c:899,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Objects/call.c:900,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:902,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:903,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/call.c:907,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/call.c:908,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Objects/call.c:911,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:915,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Objects/call.c:921,1
    - Dst: _PyObject_VectorcallPrepend
      Src: /src/cpython/Objects/call.c:928,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:931,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - name
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/cpython/Objects/call.c
    - condition: (args != NULL)
      pos:
        line_end: 890
        line_start: 890
        source_file: /src/cpython/Objects/call.c
    - condition: (PyVectorcall_NARGS(nargsf) >= 1)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 934
      start: 886
    functionDepth: 8
    functionLinenumber: 886
    functionLinenumberEnd: 934
    functionName: PyObject_VectorcallMethod
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 5
    functionsReached:
    - _PyObject_VectorcallPrepend
    - _PyThreadState_PopCStackRef
    - _PyObject_VectorcallTstate
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - _PyObject_GetMethodStackRef
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyVectorcall_NARGS
    - PyStackRef_FromPyObjectBorrow
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    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:940,1
    - Dst: null_error
      Src: /src/cpython/Objects/call.c:942,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/call.c:946,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Objects/call.c:947,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Objects/call.c:948,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Objects/call.c:949,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:951,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:952,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/call.c:955,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Objects/call.c:956,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:959,1
    - Dst: object_vacall
      Src: /src/cpython/Objects/call.c:960,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:961,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:963,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Objects/call.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 937
    functionDepth: 4
    functionLinenumber: 937
    functionLinenumberEnd: 966
    functionName: PyObject_CallMethodObjArgs
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 20
    functionsReached:
    - _PyThreadState_PopCStackRef
    - va_start
    - object_vacall
    - _PyThreadState_PushCStackRef
    - _PyThreadState_GET
    - va_end
    - null_error
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectBorrow
    - _PyObject_GetMethodStackRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallMethodObjArgs(PyObject *obj, PyObject *name, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/call.c:972,1
    - Dst: va_start
      Src: /src/cpython/Objects/call.c:976,1
    - Dst: object_vacall
      Src: /src/cpython/Objects/call.c:977,1
    - Dst: va_end
      Src: /src/cpython/Objects/call.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 969
    functionDepth: 3
    functionLinenumber: 969
    functionLinenumberEnd: 981
    functionName: PyObject_CallFunctionObjArgs
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 31
    functionsReached:
    - object_vacall
    - _PyThreadState_GET
    - va_end
    - va_start
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallFunctionObjArgs(PyObject *callable, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/call.c:991,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/call.c:992,1
    - Dst: _PyDict_FromItems
      Src: /src/cpython/Objects/call.c:993,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/call.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - values
    - kwnames
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (kwnames != NULL)
      pos:
        line_end: 990
        line_start: 990
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 995
      start: 986
    functionDepth: 13
    functionLinenumber: 986
    functionLinenumberEnd: 995
    functionName: _PyStack_AsDict
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 4
    functionsReached:
    - _PyDict_FromItems
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - 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:1019,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:1020,1
    - Dst: assert
      Src: /src/cpython/Objects/call.c:1021,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/call.c:1021,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/call.c:1023,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Objects/call.c:1029,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/call.c:1034,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Objects/call.c:1036,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/call.c:1040,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/call.c:1042,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/call.c:1060,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/call.c:1061,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/call.c:1062,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/call.c:1062,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/call.c:1063,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/call.c:1073,1
    - Dst: _PyStack_UnpackDict_Free
      Src: /src/cpython/Objects/call.c:1075,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nargs >= 0)
      pos:
        line_end: 1018
        line_start: 1018
        source_file: /src/cpython/Objects/call.c
    - condition: (PyDict_Check(kwargs))
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/cpython/Objects/call.c
    - condition: (kwargs != NULL)
      pos:
        line_end: 1019
        line_start: 1019
        source_file: /src/cpython/Objects/call.c
    constantsTouched: []
    func_position:
      end: 1081
      start: 1014
    functionDepth: 7
    functionLinenumber: 1014
    functionLinenumberEnd: 1081
    functionName: _PyStack_UnpackDict
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 2
    functionsReached:
    - assert
    - _PyErr_SetString
    - PyDict_Next
    - _PyStack_UnpackDict_Free
    - PyDict_Check
    - _PyErr_NoMemory
    - PyTuple_SET_ITEM
    - PyMem_Free
    - PyMem_Malloc
    - PyDict_GET_SIZE
    - Py_NewRef
    - PyTuple_New
    - Py_TYPE
    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:1088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:1090,1
    - Dst: _PyStack_UnpackDict_FreeNoDecRef
      Src: /src/cpython/Objects/call.c:1092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - stack
    - nargs
    - kwnames
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1093
    functionName: _PyStack_UnpackDict_Free
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - _PyStack_UnpackDict_FreeNoDecRef
    - PyTuple_GET_SIZE
    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:1098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/call.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stack
    - kwnames
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1095
    functionDepth: 2
    functionLinenumber: 1095
    functionLinenumberEnd: 1100
    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:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1108
    functionName: PyVectorcall_NARGS
    functionSourceFile: /src/cpython/Objects/call.c
    functionUses: 41
    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_New
    - _PyObject_GC_TRACK
    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:
    - mbuf_alloc
    - Py_DECREF
    - PyObject_GetBuffer
    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:
    - _PyObject_GC_UNTRACK
    - PyBuffer_Release
    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:
    - mbuf_release
    - PyObject_GC_Del
    - 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:
    - PyErr_SetString
    - equiv_format
    - equiv_shape
    linkageType: ''
    returnType: int
    signature: int equiv_structure(const Py_buffer *dest, const Py_buffer *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/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:
    - memmove
    - ADJUST_PTR
    - memcpy
    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:
    - copy_base
    - copy_rec
    - ADJUST_PTR
    - 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:
    - PyErr_NoMemory
    - equiv_structure
    - assert
    - copy_base
    - CHECK_RELEASED_INT_AGAIN
    - PyMem_Free
    - PyMem_Malloc
    - last_dim_is_contiguous
    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:
    - PyErr_NoMemory
    - equiv_structure
    - assert
    - copy_rec
    - PyMem_Free
    - PyMem_Malloc
    - last_dim_is_contiguous
    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->shape != NULL)
      pos:
        line_end: 502
        line_start: 502
        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
    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
    - PyErr_NoMemory
    - assert
    - init_fortran_strides_from_shape
    - PyMem_Free
    - PyMem_Malloc
    - init_strides_from_shape
    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:
    - init_suboffsets
    - init_shape_strides
    - PyErr_SetString
    - memory_alloc
    - init_shared_values
    - Py_STRINGIFY
    - Py_NewRef
    - init_flags
    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:
    - memory_alloc
    - init_shared_values
    - Py_NewRef
    - 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:
    - mbuf_add_view
    - mbuf_alloc
    - assert
    - Py_DECREF
    - PyBuffer_FillInfo
    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:
    - mbuf_alloc
    - mbuf_add_view
    - PyErr_SetString
    - Py_DECREF
    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:
    - CHECK_RELEASED
    - PyMemoryView_Check
    - _PyManagedBuffer_FromObject
    - mbuf_add_view
    - PyErr_Format
    - CHECK_RESTRICTED
    - Py_DECREF
    - PyObject_CheckBuffer
    - Py_TYPE
    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:
    - mbuf_alloc
    - mbuf_add_view
    - bufferproc
    - Py_DECREF
    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
    - PyBytes_FromStringAndSize
    - init_fortran_strides_from_shape
    - init_flags
    - mbuf_add_incomplete_view
    - assert
    - Py_DECREF
    - init_strides_from_shape
    - _PyManagedBuffer_FromObject
    - mbuf_copy_format
    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:
    - memory_from_contiguous_copy
    - PyErr_SetString
    - assert
    - Py_DECREF
    - PyBuffer_IsContiguous
    - PyMemoryView_FromObject
    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:
    - buffer_to_contiguous
    - PyErr_NoMemory
    - init_suboffsets
    - assert
    - init_shape_strides
    - PyErr_SetString
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - PyBuffer_IsContiguous
    - init_shared_values
    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:
    - get_exports
    - mbuf_release
    - assert
    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_SetString
    - PyErr_Format
    - 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:
    - assert
    - PyObject_ClearWeakRefs
    - Py_CLEAR
    - PyObject_GC_Del
    - _memory_release
    - _PyObject_GC_UNTRACK
    - get_exports
    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:
    - CHECK_RELEASED
    - Py_NewRef
    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: 1202
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1202
    functionName: IS_BYTE_FORMAT
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BYTE_FORMAT(f)
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 2
    argNames:
    - result
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1241
    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(const char **result, const char *fmt)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1269,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1270,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1271,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1272,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1273,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1274,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1275,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1276,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1277,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1278,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1279,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1280,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1281,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1282,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1283,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1284,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1287,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1288,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1292,1
    - Dst: RETURN
      Src: /src/cpython/Objects/memoryobject.c:1293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 65
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1297
    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: 1267
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1267
    functionName: RETURN
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN(s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1313,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1314,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/memoryobject.c:1314,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1315,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1316,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1317,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/cpython/Objects/memoryobject.c:1319,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:1323,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:1323,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1325,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:1331,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/cpython/Objects/memoryobject.c:1332,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/cpython/Objects/memoryobject.c:1332,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1333,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1338,1
    - Dst: get_native_fmtstr
      Src: /src/cpython/Objects/memoryobject.c:1343,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:1343,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1346,1
    - Dst: init_flags
      Src: /src/cpython/Objects/memoryobject.c:1357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1362,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - mv
    - format
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts:
    - condition: (Py_SIZE(mv) == 3*view->ndim)
      pos:
        line_end: 1313
        line_start: 1313
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->ndim >= 1)
      pos:
        line_end: 1312
        line_start: 1312
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->shape == mv->ob_array)
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->strides == mv->ob_array + view->ndim)
      pos:
        line_end: 1315
        line_start: 1315
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->suboffsets == mv->ob_array + 2*view->ndim)
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1364
      start: 1304
    functionDepth: 11
    functionLinenumber: 1304
    functionLinenumberEnd: 1364
    functionName: cast_to_1D
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - get_native_fmtchar
    - assert
    - PyErr_SetString
    - get_native_fmtstr
    - Py_SIZE
    - PyUnicode_AsASCIIString
    - IS_BYTE_FORMAT
    - PyBytes_AS_STRING
    - Py_DECREF
    - init_flags
    linkageType: ''
    returnType: int
    signature: int cast_to_1D(PyMemoryViewObject *mv, PyObject *format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:1375,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/memoryobject.c:1376,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1377,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:1381,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1382,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1387,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1392,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: 1401
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1401
    functionName: copy_shape
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_Check
    - PyErr_Occurred
    - PyErr_Format
    - PySequence_Fast_GET_ITEM
    - 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:1412,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1413,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/memoryobject.c:1413,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1414,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1415,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:1416,1
    - Dst: copy_shape
      Src: /src/cpython/Objects/memoryobject.c:1425,1
    - Dst: init_strides_from_shape
      Src: /src/cpython/Objects/memoryobject.c:1428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1432,1
    - Dst: init_flags
      Src: /src/cpython/Objects/memoryobject.c:1437,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: 1411
        line_start: 1411
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->strides == mv->ob_array + (ndim==0?1:ndim))
      pos:
        line_end: 1414
        line_start: 1414
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (Py_SIZE(mv) == 3*(ndim==0?1:ndim))
      pos:
        line_end: 1412
        line_start: 1412
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->shape == mv->ob_array)
      pos:
        line_end: 1413
        line_start: 1413
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->suboffsets == NULL)
      pos:
        line_end: 1415
        line_start: 1415
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1440
      start: 1406
    functionDepth: 2
    functionLinenumber: 1406
    functionLinenumberEnd: 1440
    functionName: cast_to_ND
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_SIZE
    - copy_shape
    - assert
    - init_strides_from_shape
    - init_flags
    linkageType: ''
    returnType: int
    signature: int cast_to_ND(PyMemoryViewObject *mv, const PyObject *shape, int ndim)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - mv
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1453
    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:1484,1
    - Dst: CHECK_RESTRICTED
      Src: /src/cpython/Objects/memoryobject.c:1485,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1487,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1488,1
    - Dst: zero_in_shape
      Src: /src/cpython/Objects/memoryobject.c:1492,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1493,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/cpython/Objects/memoryobject.c:1498,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:1499,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1501,1
    - Dst: Py_STRINGIFY
      Src: /src/cpython/Objects/memoryobject.c:1503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1507,1
    - Dst: mbuf_add_incomplete_view
      Src: /src/cpython/Objects/memoryobject.c:1514,1
    - Dst: cast_to_1D
      Src: /src/cpython/Objects/memoryobject.c:1518,1
    - Dst: cast_to_ND
      Src: /src/cpython/Objects/memoryobject.c:1520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1526,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - self
    - format
    - shape
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1476
    functionDepth: 12
    functionLinenumber: 1476
    functionLinenumberEnd: 1528
    functionName: memoryview_cast_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - Py_DECREF
    - CHECK_LIST_OR_TUPLE
    - PySequence_Fast_GET_SIZE
    - zero_in_shape
    - cast_to_ND
    - PyErr_SetString
    - mbuf_add_incomplete_view
    - cast_to_1D
    - MV_C_CONTIGUOUS
    - Py_STRINGIFY
    - CHECK_RESTRICTED
    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:1540,1
    - Dst: CHECK_RESTRICTED
      Src: /src/cpython/Objects/memoryobject.c:1541,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:1545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1536
    functionDepth: 3
    functionLinenumber: 1536
    functionLinenumberEnd: 1550
    functionName: memoryview_toreadonly_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - mbuf_add_view
    - CHECK_RESTRICTED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_toreadonly_impl(PyMemoryViewObject *self)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/cpython/Objects/memoryobject.c:1564,1
    - Dst: CHECK_RESTRICTED_INT
      Src: /src/cpython/Objects/memoryobject.c:1565,1
    - Dst: REQ_WRITABLE
      Src: /src/cpython/Objects/memoryobject.c:1571,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1572,1
    - Dst: REQ_FORMAT
      Src: /src/cpython/Objects/memoryobject.c:1576,1
    - Dst: REQ_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1585,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1585,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1586,1
    - Dst: REQ_F_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1590,1
    - Dst: MV_F_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1590,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1591,1
    - Dst: REQ_ANY_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1595,1
    - Dst: MV_ANY_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1595,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1596,1
    - Dst: REQ_INDIRECT
      Src: /src/cpython/Objects/memoryobject.c:1600,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1601,1
    - Dst: REQ_STRIDES
      Src: /src/cpython/Objects/memoryobject.c:1605,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:1606,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:1607,1
    - Dst: REQ_SHAPE
      Src: /src/cpython/Objects/memoryobject.c:1613,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1619,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:1631,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Objects/memoryobject.c:1632,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - _self
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1635
    functionName: memory_getbuf
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED_INT
    - CHECK_RESTRICTED_INT
    - MV_F_CONTIGUOUS
    - REQ_INDIRECT
    - REQ_SHAPE
    - REQ_ANY_CONTIGUOUS
    - PyErr_SetString
    - MV_ANY_CONTIGUOUS
    - REQ_FORMAT
    - REQ_F_CONTIGUOUS
    - REQ_C_CONTIGUOUS
    - FT_ATOMIC_ADD_SSIZE
    - REQ_WRITABLE
    - PyErr_Format
    - MV_C_CONTIGUOUS
    - Py_NewRef
    - REQ_STRIDES
    linkageType: ''
    returnType: int
    signature: int memory_getbuf(PyObject *_self, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Objects/memoryobject.c:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - view
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1644
    functionName: memory_releasebuf
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - FT_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:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1669
    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:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1677
    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:1682,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1682,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:1683,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:1684,1
    - Dst: type_error_int
      Src: /src/cpython/Objects/memoryobject.c:1685,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:1687,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:1688,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:1689,1
    - Dst: value_error_int
      Src: /src/cpython/Objects/memoryobject.c:1690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1681
        line_start: 1681
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1694
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1694
    functionName: fix_error_int
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - value_error_int
    - type_error_int
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: int fix_error_int(const char *fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1699
    functionName: UNPACK_TO_BOOL
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_TO_BOOL(PTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/memoryobject.c:1707,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/memoryobject.c:1711,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1701
    functionDepth: 2
    functionLinenumber: 1701
    functionLinenumberEnd: 1714
    functionName: pylong_as_ld
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyNumber_Index
    - PyLong_AsLong
    - Py_DECREF
    linkageType: ''
    returnType: long
    signature: long pylong_as_ld(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/memoryobject.c:1722,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Objects/memoryobject.c:1726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1716
    functionDepth: 2
    functionLinenumber: 1716
    functionLinenumberEnd: 1729
    functionName: pylong_as_lu
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsUnsignedLong
    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:1737,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Objects/memoryobject.c:1741,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1731
    functionDepth: 2
    functionLinenumber: 1731
    functionLinenumberEnd: 1744
    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:1752,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Objects/memoryobject.c:1756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1759
    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:1767,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:1771,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1761
    functionDepth: 2
    functionLinenumber: 1761
    functionLinenumberEnd: 1774
    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:1782,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Objects/memoryobject.c:1786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:1787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1776
    functionDepth: 2
    functionLinenumber: 1776
    functionLinenumberEnd: 1789
    functionName: pylong_as_zu
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSize_t
    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: 1800
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1800
    functionName: UNPACK_SINGLE
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_SINGLE(dest, ptr, type)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1817,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1830,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1831,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1832,1
    - Dst: UNPACK_TO_BOOL
      Src: /src/cpython/Objects/memoryobject.c:1835,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1838,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1839,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1840,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1843,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1844,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1847,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1848,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1851,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1852,1
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Objects/memoryobject.c:1853,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Objects/memoryobject.c:1859,1
    - Dst: PyFloat_Unpack4
      Src: /src/cpython/Objects/memoryobject.c:1860,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Objects/memoryobject.c:1864,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Objects/memoryobject.c:1865,1
    - Dst: UNPACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1877,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/memoryobject.c:1885,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/memoryobject.c:1887,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Objects/memoryobject.c:1889,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Objects/memoryobject.c:1891,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Objects/memoryobject.c:1893,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:1895,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Objects/memoryobject.c:1897,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/memoryobject.c:1899,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Objects/memoryobject.c:1901,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:1903,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/memoryobject.c:1905,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Objects/memoryobject.c:1907,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:1909,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 136
    argCount: 3
    argNames:
    - self
    - ptr
    - fmt
    argTypes:
    - PyMemoryViewObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1804
    functionDepth: 4
    functionLinenumber: 1804
    functionLinenumberEnd: 1912
    functionName: unpack_single
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 3
    functionsReached:
    - PyFloat_Unpack2
    - PyFloat_Unpack8
    - PyLong_FromSize_t
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - PyLong_FromLongLong
    - PyFloat_FromDouble
    - PyLong_FromSsize_t
    - PyBool_FromLong
    - UNPACK_SINGLE
    - CHECK_RELEASED_AGAIN
    - PyLong_FromUnsignedLongLong
    - PyLong_FromVoidPtr
    - PyComplex_FromDoubles
    - UNPACK_TO_BOOL
    - PyErr_Format
    - PyFloat_Unpack4
    - PyLong_FromUnsignedLong
    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: 1920
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1920
    functionName: PACK_SINGLE
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_SINGLE(ptr, src, type)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: pylong_as_ld
      Src: /src/cpython/Objects/memoryobject.c:1944,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1945,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1947,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1954,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1957,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1959,1
    - Dst: pylong_as_lu
      Src: /src/cpython/Objects/memoryobject.c:1965,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1966,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1968,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1975,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1978,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1980,1
    - Dst: pylong_as_lld
      Src: /src/cpython/Objects/memoryobject.c:1986,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1987,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1989,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1990,1
    - Dst: pylong_as_llu
      Src: /src/cpython/Objects/memoryobject.c:1993,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:1994,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:1996,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:1997,1
    - Dst: pylong_as_zd
      Src: /src/cpython/Objects/memoryobject.c:2002,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2003,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:2005,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2006,1
    - Dst: pylong_as_zu
      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: PyFloat_AsDouble
      Src: /src/cpython/Objects/memoryobject.c:2018,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2019,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:2021,1
    - Dst: PyFloat_Pack2
      Src: /src/cpython/Objects/memoryobject.c:2029,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Objects/memoryobject.c:2039,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2040,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:2043,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:2047,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:2052,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/memoryobject.c:2063,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:2066,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2067,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/memoryobject.c:2072,1
    - Dst: type_error_int
      Src: /src/cpython/Objects/memoryobject.c:2073,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2074,1
    - Dst: value_error_int
      Src: /src/cpython/Objects/memoryobject.c:2075,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/memoryobject.c:2076,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Objects/memoryobject.c:2081,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2082,1
    - Dst: CHECK_RELEASED_INT_AGAIN
      Src: /src/cpython/Objects/memoryobject.c:2084,1
    - Dst: PACK_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:2085,1
    - Dst: fix_error_int
      Src: /src/cpython/Objects/memoryobject.c:2095,1
    - Dst: value_error_int
      Src: /src/cpython/Objects/memoryobject.c:2097,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:2099,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 179
    argCount: 4
    argNames:
    - self
    - ptr
    - item
    - fmt
    argTypes:
    - PyMemoryViewObject*
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 1923
    functionDepth: 4
    functionLinenumber: 1923
    functionLinenumberEnd: 2102
    functionName: pack_single
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 4
    functionsReached:
    - pylong_as_lu
    - PyBytes_Check
    - pylong_as_llu
    - pylong_as_lld
    - type_error_int
    - memcpy
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - fix_error_int
    - PyLong_AsVoidPtr
    - pylong_as_ld
    - PyObject_IsTrue
    - PyBytes_AS_STRING
    - pylong_as_zu
    - PyFloat_AsDouble
    - PyFloat_Pack2
    - pylong_as_zd
    - PyBytes_GET_SIZE
    - value_error_int
    - CHECK_RELEASED_INT_AGAIN
    - PyErr_Format
    - PACK_SINGLE
    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:2123,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:2126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2120
    functionDepth: 2
    functionLinenumber: 2120
    functionLinenumberEnd: 2136
    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:2142,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2143,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:2144,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:2145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - struct unpacker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2138
    functionDepth: 2
    functionLinenumber: 2138
    functionLinenumberEnd: 2147
    functionName: unpacker_free
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void unpacker_free(struct unpacker *x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Objects/memoryobject.c:2158,1
    - Dst: unpacker_new
      Src: /src/cpython/Objects/memoryobject.c:2162,1
    - Dst: PyBytes_FromString
      Src: /src/cpython/Objects/memoryobject.c:2166,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/memoryobject.c:2170,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/memoryobject.c:2174,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:2178,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:2180,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Objects/memoryobject.c:2185,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2191,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2192,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:2193,1
    - Dst: unpacker_free
      Src: /src/cpython/Objects/memoryobject.c:2197,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - fmt
    - itemsize
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2150
    functionDepth: 4
    functionLinenumber: 2150
    functionLinenumberEnd: 2200
    functionName: struct_get_unpacker
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMemoryView_FromMemory
    - unpacker_free
    - PyObject_GetAttrString
    - PyMem_Malloc
    - PyBytes_FromString
    - Py_XDECREF
    - unpacker_new
    - PyImport_ImportModuleAttrString
    - PyObject_CallOneArg
    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:2208,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/memoryobject.c:2209,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2213,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:2214,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ptr
    - x
    argTypes:
    - char*
    - struct unpacker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2203
    functionDepth: 2
    functionLinenumber: 2203
    functionLinenumberEnd: 2220
    functionName: struct_unpack_single
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - memcpy
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_NewRef
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      struct_unpack_single(const char *ptr, struct unpacker *x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:2239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2228
    functionDepth: 1
    functionLinenumber: 2228
    functionLinenumberEnd: 2242
    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:2253,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:2258,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2261,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2264,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: 2268
      start: 2245
    functionDepth: 4
    functionLinenumber: 2245
    functionLinenumberEnd: 2268
    functionName: tolist_base
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyList_New
    - Py_DECREF
    - unpack_single
    - ADJUST_PTR
    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:2280,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2281,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2282,1
    - Dst: tolist_base
      Src: /src/cpython/Objects/memoryobject.c:2285,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/memoryobject.c:2287,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:2292,1
    - Dst: tolist_rec
      Src: /src/cpython/Objects/memoryobject.c:2293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2297,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2300,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: 2279
        line_start: 2279
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (strides != NULL)
      pos:
        line_end: 2281
        line_start: 2281
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (shape != NULL)
      pos:
        line_end: 2280
        line_start: 2280
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2304
      start: 2272
    functionDepth: 5
    functionLinenumber: 2272
    functionLinenumberEnd: 2304
    functionName: tolist_rec
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - tolist_base
    - tolist_rec
    - PyList_SET_ITEM
    - PyList_New
    - assert
    - Py_DECREF
    - ADJUST_PTR
    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:2321,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2323,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2327,1
    - Dst: tolist_base
      Src: /src/cpython/Objects/memoryobject.c:2330,1
    - Dst: tolist_rec
      Src: /src/cpython/Objects/memoryobject.c:2335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2314
    functionDepth: 6
    functionLinenumber: 2314
    functionLinenumberEnd: 2339
    functionName: memoryview_tolist_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - tolist_base
    - tolist_rec
    - CHECK_RELEASED
    - adjust_fmt
    - unpack_single
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_tolist_impl(PyMemoryViewObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VIEW_ADDR
      Src: /src/cpython/Objects/memoryobject.c:2360,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2363,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:2366,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:2369,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:2372,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2373,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/memoryobject.c:2379,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/memoryobject.c:2384,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/memoryobject.c:2384,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/memoryobject.c:2386,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Objects/memoryobject.c:2390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - order
    argTypes:
    - PyMemoryViewObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2356
    functionDepth: 8
    functionLinenumber: 2356
    functionLinenumberEnd: 2391
    functionName: memoryview_tobytes_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - strcmp
    - PyBytesWriter_Create
    - PyErr_SetString
    - PyBytesWriter_Discard
    - PyBuffer_ToContiguous
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    - VIEW_ADDR
    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:2421,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2423,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:2425,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Objects/memoryobject.c:2429,1
    - Dst: _Py_strhex_with_sep
      Src: /src/cpython/Objects/memoryobject.c:2430,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Objects/memoryobject.c:2431,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/memoryobject.c:2435,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/cpython/Objects/memoryobject.c:2440,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/memoryobject.c:2440,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/memoryobject.c:2442,1
    - Dst: _Py_strhex_with_sep
      Src: /src/cpython/Objects/memoryobject.c:2446,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/memoryobject.c:2447,1
    - Dst: PyBytesWriter_GetSize
      Src: /src/cpython/Objects/memoryobject.c:2448,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/memoryobject.c:2450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2416
    functionDepth: 4
    functionLinenumber: 2416
    functionLinenumberEnd: 2453
    functionName: memoryview_hex_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - _Py_strhex_with_sep
    - PyBytesWriter_GetSize
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - PyBuffer_ToContiguous
    - FT_ATOMIC_ADD_SSIZE
    - PyBytesWriter_GetData
    - MV_C_CONTIGUOUS
    - VIEW_ADDR
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmemoryview_hex_impl(PyMemoryViewObject *self, PyObject
      *sep,\n                    Py_ssize_t bytes_per_sep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/memoryobject.c:2460,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/memoryobject.c:2462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2455
    functionDepth: 10
    functionLinenumber: 2455
    functionLinenumberEnd: 2463
    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:2475,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2476,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:2483,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:2490,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: 2474
        line_start: 2474
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (view->strides)
      pos:
        line_end: 2475
        line_start: 2475
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2493
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2493
    functionName: lookup_dimension
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - ADJUST_PTR
    - PyErr_Format
    - assert
    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:2500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - view
    - index
    argTypes:
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2496
    functionDepth: 2
    functionLinenumber: 2496
    functionLinenumberEnd: 2501
    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:2508,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/memoryobject.c:2511,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2519,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2519,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2521,1
    - Dst: lookup_dimension
      Src: /src/cpython/Objects/memoryobject.c:2523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - view
    - tup
    argTypes:
    - Py_buffer*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2504
    functionDepth: 3
    functionLinenumber: 2504
    functionLinenumberEnd: 2528
    functionName: ptr_from_tuple
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyNumber_AsSsize_t
    - lookup_dimension
    - PyErr_Occurred
    - PyErr_Format
    - PyTuple_GET_SIZE
    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:2540,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2542,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2547,1
    - Dst: ptr_from_index
      Src: /src/cpython/Objects/memoryobject.c:2551,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2554,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - _self
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2533
    functionDepth: 2
    functionLinenumber: 2533
    functionLinenumberEnd: 2560
    functionName: memory_item
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyErr_SetString
    - ptr_from_index
    - adjust_fmt
    - unpack_single
    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:2568,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:2571,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2578,1
    - Dst: ptr_from_tuple
      Src: /src/cpython/Objects/memoryobject.c:2582,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - tup
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2563
    functionDepth: 4
    functionLinenumber: 2563
    functionLinenumberEnd: 2586
    functionName: memory_item_multi
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyErr_SetString
    - unpack_single
    - adjust_fmt
    - PyTuple_GET_SIZE
    - 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:2593,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Objects/memoryobject.c:2596,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - base
    - key
    - dim
    argTypes:
    - Py_buffer*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2588
    functionDepth: 2
    functionLinenumber: 2588
    functionLinenumberEnd: 2615
    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:2622,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2624,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2629,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/memoryobject.c:2630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2617
    functionDepth: 1
    functionLinenumber: 2617
    functionLinenumberEnd: 2634
    functionName: is_multislice
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyTuple_Check
    linkageType: ''
    returnType: int
    signature: int is_multislice(PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/memoryobject.c:2641,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2643,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:2645,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/memoryobject.c:2646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2636
    functionDepth: 1
    functionLinenumber: 2636
    functionLinenumberEnd: 2651
    functionName: is_multiindex
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyIndex_Check
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyTuple_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:2666,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/memoryobject.c:2669,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2669,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2670,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:2673,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:2676,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2679,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/memoryobject.c:2685,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2687,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2688,1
    - Dst: memory_item
      Src: /src/cpython/Objects/memoryobject.c:2690,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/memoryobject.c:2692,1
    - Dst: CHECK_RESTRICTED
      Src: /src/cpython/Objects/memoryobject.c:2693,1
    - Dst: mbuf_add_view
      Src: /src/cpython/Objects/memoryobject.c:2696,1
    - Dst: init_slice
      Src: /src/cpython/Objects/memoryobject.c:2700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2701,1
    - Dst: init_len
      Src: /src/cpython/Objects/memoryobject.c:2704,1
    - Dst: init_flags
      Src: /src/cpython/Objects/memoryobject.c:2705,1
    - Dst: is_multiindex
      Src: /src/cpython/Objects/memoryobject.c:2709,1
    - Dst: memory_item_multi
      Src: /src/cpython/Objects/memoryobject.c:2710,1
    - Dst: is_multislice
      Src: /src/cpython/Objects/memoryobject.c:2712,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2713,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2718,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - _self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2659
    functionDepth: 5
    functionLinenumber: 2659
    functionLinenumberEnd: 2720
    functionName: memory_subscript
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - CHECK_RELEASED
    - memory_item
    - _PyIndex_Check
    - is_multiindex
    - init_len
    - PyTuple_Check
    - PyErr_Occurred
    - adjust_fmt
    - PyTuple_GET_SIZE
    - CHECK_RESTRICTED
    - memory_item_multi
    - PyErr_SetString
    - mbuf_add_view
    - Py_DECREF
    - is_multislice
    - unpack_single
    - Py_NewRef
    - init_flags
    - init_slice
    - PyNumber_AsSsize_t
    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:2731,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:2733,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2738,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2742,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/memoryobject.c:2747,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2747,1
    - Dst: pack_single
      Src: /src/cpython/Objects/memoryobject.c:2749,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2752,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Objects/memoryobject.c:2758,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2761,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2765,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2766,1
    - Dst: ptr_from_index
      Src: /src/cpython/Objects/memoryobject.c:2768,1
    - Dst: pack_single
      Src: /src/cpython/Objects/memoryobject.c:2771,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/memoryobject.c:2774,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/memoryobject.c:2780,1
    - Dst: init_slice
      Src: /src/cpython/Objects/memoryobject.c:2790,1
    - Dst: copy_single
      Src: /src/cpython/Objects/memoryobject.c:2794,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/memoryobject.c:2797,1
    - Dst: is_multiindex
      Src: /src/cpython/Objects/memoryobject.c:2800,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/memoryobject.c:2802,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2803,1
    - Dst: ptr_from_tuple
      Src: /src/cpython/Objects/memoryobject.c:2807,1
    - Dst: pack_single
      Src: /src/cpython/Objects/memoryobject.c:2810,1
    - Dst: PySlice_Check
      Src: /src/cpython/Objects/memoryobject.c:2812,1
    - Dst: is_multislice
      Src: /src/cpython/Objects/memoryobject.c:2812,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2815,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2821,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 3
    argNames:
    - _self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2722
    functionDepth: 4
    functionLinenumber: 2722
    functionLinenumberEnd: 2823
    functionName: memory_ass_sub
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED_INT
    - PySlice_Check
    - init_slice
    - PyErr_SetString
    - copy_single
    - PyNumber_AsSsize_t
    - ptr_from_index
    - PyBuffer_Release
    - _PyIndex_Check
    - is_multiindex
    - PyTuple_Check
    - PyErr_Occurred
    - is_multislice
    - adjust_fmt
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - pack_single
    - ptr_from_tuple
    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:2829,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2825
    functionDepth: 1
    functionLinenumber: 2825
    functionLinenumberEnd: 2835
    functionName: memory_length
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED_INT
    - PyErr_SetString
    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:2870,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/memoryobject.c:2870,1
    - Dst: PyIter_NextItem
      Src: /src/cpython/Objects/memoryobject.c:2877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2883,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/memoryobject.c:2887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2897,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2898,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2866
    functionDepth: 4
    functionLinenumber: 2866
    functionLinenumberEnd: 2899
    functionName: memoryview_count_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyIter_NextItem
    - _PyObject_CAST
    - PyObject_GetIter
    - PyLong_FromSsize_t
    - Py_DECREF
    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:2925,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2928,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/memoryobject.c:2936,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/memoryobject.c:2940,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/memoryobject.c:2943,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2944,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2945,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/memoryobject.c:2947,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2948,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2949,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Objects/memoryobject.c:2951,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:2957,1
    - Dst: memory_item
      Src: /src/cpython/Objects/memoryobject.c:2959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2964,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2965,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/memoryobject.c:2967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:2968,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:2970,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2977,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:2981,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 <= n)
      pos:
        line_end: 2944
        line_start: 2944
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (start <= stop)
      pos:
        line_end: 2948
        line_start: 2948
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (stop >= 0)
      pos:
        line_end: 2943
        line_start: 2943
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (0 <= start)
      pos:
        line_end: 2947
        line_start: 2947
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (index < n)
      pos:
        line_end: 2956
        line_start: 2956
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2985
      start: 2919
    functionDepth: 4
    functionLinenumber: 2919
    functionLinenumberEnd: 2985
    functionName: memoryview_index_impl
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyObject_RichCompareBool
    - memory_item
    - PyErr_SetString
    - _PyObject_CAST
    - Py_MAX
    - Py_MIN
    - PyLong_FromSsize_t
    - assert
    - Py_DECREF
    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:2999,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/memoryobject.c:2999,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:3001,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/memoryobject.c:3002,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:3006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2998
        line_start: 2998
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 3008
      start: 2996
    functionDepth: 1
    functionLinenumber: 2996
    functionLinenumberEnd: 3008
    functionName: fix_struct_error_int
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - 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:3020,1
    - Dst: struct_unpack_single
      Src: /src/cpython/Objects/memoryobject.c:3024,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:3026,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Objects/memoryobject.c:3031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:3032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:3033,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: 3036
      start: 3011
    functionDepth: 4
    functionLinenumber: 3011
    functionLinenumberEnd: 3036
    functionName: struct_unpack_cmp
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - 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: 3052
      start: 3044
    functionDepth: 0
    functionLinenumber: 3044
    functionLinenumberEnd: 3052
    functionName: CMP_SINGLE
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_SINGLE(p, q, type)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3064,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3065,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3066,1
    - Dst: UNPACK_TO_BOOL
      Src: /src/cpython/Objects/memoryobject.c:3069,1
    - Dst: UNPACK_TO_BOOL
      Src: /src/cpython/Objects/memoryobject.c:3069,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3072,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3073,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3074,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3077,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3078,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3081,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3082,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3086,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3087,1
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Objects/memoryobject.c:3095,1
    - Dst: PyFloat_Unpack2
      Src: /src/cpython/Objects/memoryobject.c:3096,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:3107,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:3108,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:3115,1
    - Dst: memcpy
      Src: /src/cpython/Objects/memoryobject.c:3116,1
    - Dst: CMP_SINGLE
      Src: /src/cpython/Objects/memoryobject.c:3127,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3131,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3132,1
    - Dst: struct_unpack_cmp
      Src: /src/cpython/Objects/memoryobject.c:3133,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 74
    argCount: 5
    argNames:
    - p
    - q
    - fmt
    - unpack_p
    - unpack_q
    argTypes:
    - char*
    - char*
    - char*
    - struct unpacker*
    - struct unpacker*
    assertStmts:
    - condition: (unpack_q)
      pos:
        line_end: 3131
        line_start: 3131
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (unpack_p)
      pos:
        line_end: 3130
        line_start: 3130
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 3140
      start: 3053
    functionDepth: 5
    functionLinenumber: 3053
    functionLinenumberEnd: 3140
    functionName: unpack_cmp
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - PyFloat_Unpack2
    - PyErr_SetString
    - memcpy
    - assert
    - CMP_SINGLE
    - UNPACK_TO_BOOL
    - struct_unpack_cmp
    linkageType: ''
    returnType: int
    signature: "int unpack_cmp(const char *p, const char *q, const char *fmt,\n           struct
      unpacker *unpack_p, struct unpacker *unpack_q)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3153,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3154,1
    - Dst: unpack_cmp
      Src: /src/cpython/Objects/memoryobject.c:3155,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: 3161
      start: 3143
    functionDepth: 6
    functionLinenumber: 3143
    functionLinenumberEnd: 3161
    functionName: cmp_base
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - unpack_cmp
    - ADJUST_PTR
    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         const char *fmt,
      struct unpacker *unpack_p, struct unpacker *unpack_q)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3175,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3176,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3177,1
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3178,1
    - Dst: cmp_base
      Src: /src/cpython/Objects/memoryobject.c:3181,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3188,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3189,1
    - Dst: cmp_rec
      Src: /src/cpython/Objects/memoryobject.c:3190,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: 3174
        line_start: 3174
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (qstrides != NULL)
      pos:
        line_end: 3177
        line_start: 3177
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (shape != NULL)
      pos:
        line_end: 3175
        line_start: 3175
        source_file: /src/cpython/Objects/memoryobject.c
    - condition: (pstrides != NULL)
      pos:
        line_end: 3176
        line_start: 3176
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 3199
      start: 3165
    functionDepth: 7
    functionLinenumber: 3165
    functionLinenumberEnd: 3199
    functionName: cmp_rec
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - cmp_base
    - cmp_rec
    - ADJUST_PTR
    - 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
      \       const char *fmt, struct unpacker *unpack_p, struct unpacker *unpack_q)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/memoryobject.c:3215,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/memoryobject.c:3215,1
    - Dst: BASE_INACCESSIBLE
      Src: /src/cpython/Objects/memoryobject.c:3216,1
    - Dst: VIEW_ADDR
      Src: /src/cpython/Objects/memoryobject.c:3220,1
    - Dst: strchr
      Src: /src/cpython/Objects/memoryobject.c:3237,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/memoryobject.c:3246,1
    - Dst: BASE_INACCESSIBLE
      Src: /src/cpython/Objects/memoryobject.c:3247,1
    - Dst: VIEW_ADDR
      Src: /src/cpython/Objects/memoryobject.c:3251,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/memoryobject.c:3254,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:3255,1
    - Dst: equiv_shape
      Src: /src/cpython/Objects/memoryobject.c:3261,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/memoryobject.c:3262,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:3268,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:3270,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:3272,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:3272,1
    - Dst: strcmp
      Src: /src/cpython/Objects/memoryobject.c:3272,1
    - Dst: struct_get_unpacker
      Src: /src/cpython/Objects/memoryobject.c:3278,1
    - Dst: fix_struct_error_int
      Src: /src/cpython/Objects/memoryobject.c:3280,1
    - Dst: struct_get_unpacker
      Src: /src/cpython/Objects/memoryobject.c:3283,1
    - Dst: fix_struct_error_int
      Src: /src/cpython/Objects/memoryobject.c:3285,1
    - Dst: unpack_cmp
      Src: /src/cpython/Objects/memoryobject.c:3291,1
    - Dst: cmp_base
      Src: /src/cpython/Objects/memoryobject.c:3295,1
    - Dst: cmp_rec
      Src: /src/cpython/Objects/memoryobject.c:3301,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/memoryobject.c:3320,1
    - Dst: unpacker_free
      Src: /src/cpython/Objects/memoryobject.c:3322,1
    - Dst: unpacker_free
      Src: /src/cpython/Objects/memoryobject.c:3323,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/memoryobject.c:3325,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 86
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyMemoryView_Check(v))
      pos:
        line_end: 3214
        line_start: 3214
        source_file: /src/cpython/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 3326
      start: 3201
    functionDepth: 8
    functionLinenumber: 3201
    functionLinenumberEnd: 3326
    functionName: memory_richcompare
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_Check
    - get_native_fmtchar
    - strcmp
    - cmp_rec
    - struct_get_unpacker
    - cmp_base
    - Py_XNewRef
    - BASE_INACCESSIBLE
    - fix_struct_error_int
    - equiv_shape
    - strchr
    - PyBuffer_Release
    - unpacker_free
    - PyErr_Clear
    - unpack_cmp
    - assert
    - PyObject_GetBuffer
    - VIEW_ADDR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/cpython/Objects/memoryobject.c:3342,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3345,1
    - Dst: get_native_fmtchar
      Src: /src/cpython/Objects/memoryobject.c:3349,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/cpython/Objects/memoryobject.c:3350,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3351,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Objects/memoryobject.c:3358,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Objects/memoryobject.c:3359,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Objects/memoryobject.c:3360,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:3367,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/memoryobject.c:3368,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/memoryobject.c:3370,1
    - Dst: buffer_to_contiguous
      Src: /src/cpython/Objects/memoryobject.c:3373,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:3374,1
    - Dst: Py_HashBuffer
      Src: /src/cpython/Objects/memoryobject.c:3380,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/memoryobject.c:3383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - _self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3387
      start: 3332
    functionDepth: 3
    functionLinenumber: 3332
    functionLinenumberEnd: 3387
    functionName: memory_hash
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED_INT
    - buffer_to_contiguous
    - get_native_fmtchar
    - PyErr_NoMemory
    - PyObject_Hash
    - PyErr_SetString
    - FT_ATOMIC_ADD_SSIZE
    - IS_BYTE_FORMAT
    - PyMem_Malloc
    - PyMem_Free
    - MV_C_CONTIGUOUS
    - Py_HashBuffer
    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:3402,1
    - Dst: PyTuple_New
      Src: /src/cpython/Objects/memoryobject.c:3404,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:3408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:3410,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Objects/memoryobject.c:3413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - len
    - vals
    argTypes:
    - int
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3394
    functionDepth: 3
    functionLinenumber: 3394
    functionLinenumberEnd: 3416
    functionName: _IntTupleFromSsizet
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - PyTuple_New
    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:3424,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:3428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3429
      start: 3418
    functionDepth: 1
    functionLinenumber: 3418
    functionLinenumberEnd: 3429
    functionName: memory_obj_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - Py_NewRef
    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:3435,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:3436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3431
    functionDepth: 1
    functionLinenumber: 3431
    functionLinenumberEnd: 3437
    functionName: memory_nbytes_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyLong_FromSsize_t
    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:3443,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/memoryobject.c:3444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3439
    functionDepth: 2
    functionLinenumber: 3439
    functionLinenumberEnd: 3445
    functionName: memory_format_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyUnicode_FromString
    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:3451,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/memoryobject.c:3452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3453
      start: 3447
    functionDepth: 1
    functionLinenumber: 3447
    functionLinenumberEnd: 3453
    functionName: memory_itemsize_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyLong_FromSsize_t
    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:3459,1
    - Dst: _IntTupleFromSsizet
      Src: /src/cpython/Objects/memoryobject.c:3460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3455
    functionDepth: 4
    functionLinenumber: 3455
    functionLinenumberEnd: 3461
    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:3467,1
    - Dst: _IntTupleFromSsizet
      Src: /src/cpython/Objects/memoryobject.c:3468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3469
      start: 3463
    functionDepth: 4
    functionLinenumber: 3463
    functionLinenumberEnd: 3469
    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:3475,1
    - Dst: _IntTupleFromSsizet
      Src: /src/cpython/Objects/memoryobject.c:3476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3471
    functionDepth: 4
    functionLinenumber: 3471
    functionLinenumberEnd: 3477
    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:3483,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3485
      start: 3479
    functionDepth: 1
    functionLinenumber: 3479
    functionLinenumberEnd: 3485
    functionName: memory_readonly_get
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyBool_FromLong
    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:3491,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3487
    functionDepth: 1
    functionLinenumber: 3487
    functionLinenumberEnd: 3493
    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:3499,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3500,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:3500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3495
    functionDepth: 1
    functionLinenumber: 3495
    functionLinenumberEnd: 3501
    functionName: memory_c_contiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyBool_FromLong
    - MV_C_CONTIGUOUS
    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:3507,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3508,1
    - Dst: MV_F_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:3508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3509
      start: 3503
    functionDepth: 1
    functionLinenumber: 3503
    functionLinenumberEnd: 3509
    functionName: memory_f_contiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - MV_F_CONTIGUOUS
    - CHECK_RELEASED
    - PyBool_FromLong
    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:3515,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/memoryobject.c:3516,1
    - Dst: MV_ANY_CONTIGUOUS
      Src: /src/cpython/Objects/memoryobject.c:3516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3517
      start: 3511
    functionDepth: 1
    functionLinenumber: 3511
    functionLinenumberEnd: 3517
    functionName: memory_contiguous
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyBool_FromLong
    - 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:3604,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/memoryobject.c:3605,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/memoryobject.c:3606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3600
    functionDepth: 0
    functionLinenumber: 3600
    functionLinenumberEnd: 3607
    functionName: memoryiter_dealloc
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void memoryiter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/memoryobject.c:3613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3609
    functionDepth: 1
    functionLinenumber: 3609
    functionLinenumberEnd: 3615
    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:3628,1
    - Dst: ADJUST_PTR
      Src: /src/cpython/Objects/memoryobject.c:3633,1
    - Dst: unpack_single
      Src: /src/cpython/Objects/memoryobject.c:3637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/memoryobject.c:3641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3643
      start: 3617
    functionDepth: 1
    functionLinenumber: 3617
    functionLinenumberEnd: 3643
    functionName: memoryiter_next
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CHECK_RELEASED
    - unpack_single
    - ADJUST_PTR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryiter_next(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Objects/memoryobject.c:3648,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/memoryobject.c:3649,1
    - Dst: CHECK_RELEASED
      Src: /src/cpython/Objects/memoryobject.c:3652,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3656,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/memoryobject.c:3660,1
    - Dst: adjust_fmt
      Src: /src/cpython/Objects/memoryobject.c:3665,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/memoryobject.c:3671,1
    - Dst: memory_length
      Src: /src/cpython/Objects/memoryobject.c:3676,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/memoryobject.c:3678,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/memoryobject.c:3679,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3645
    functionDepth: 2
    functionLinenumber: 3645
    functionLinenumberEnd: 3681
    functionName: memory_iter
    functionSourceFile: /src/cpython/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyMemoryView_Check
    - PyObject_GC_New
    - memory_length
    - _PyObject_GC_TRACK
    - PyErr_SetString
    - PyErr_BadInternalCall
    - adjust_fmt
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_iter(PyObject *seq)'
  - 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: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: sentinelobject_CAST
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sentinelobject_CAST(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/sentinelobject.c:34,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Objects/sentinelobject.c:35,1
    - Dst: assert
      Src: /src/cpython/Objects/sentinelobject.c:36,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/sentinelobject.c:36,1
    - Dst: _PyFrame_GetFunction
      Src: /src/cpython/Objects/sentinelobject.c:39,1
    - Dst: assert
      Src: /src/cpython/Objects/sentinelobject.c:40,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/sentinelobject.c:40,1
    - Dst: PyFunction_GetModule
      Src: /src/cpython/Objects/sentinelobject.c:41,1
    - Dst: assert
      Src: /src/cpython/Objects/sentinelobject.c:43,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/sentinelobject.c:43,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sentinelobject.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/cpython/Objects/sentinelobject.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Objects/sentinelobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/cpython/Objects/sentinelobject.c
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: caller
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 4
    functionsReached:
    - PyFunction_GetModule
    - PyFunction_Check
    - _PyThreadState_GET
    - _PyFrame_GetFunction
    - PyErr_Occurred
    - assert
    - Py_NewRef
    - PyStackRef_IsNull
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      caller(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/sentinelobject.c:52,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/sentinelobject.c:52,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/sentinelobject.c:54,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sentinelobject.c:58,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sentinelobject.c:59,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/sentinelobject.c:60,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/sentinelobject.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - type
    - name
    - module
    - repr
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/cpython/Objects/sentinelobject.c
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: sentinel_new_with_module
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyUnicode_Check
    - assert
    - Py_XNewRef
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sentinel_new_with_module(PyTypeObject *type, PyObject *name, PyObject *module,
      PyObject *repr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/sentinelobject.c:82,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/sentinelobject.c:83,1
    - Dst: caller
      Src: /src/cpython/Objects/sentinelobject.c:86,1
    - Dst: sentinel_new_with_module
      Src: /src/cpython/Objects/sentinelobject.c:87,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sentinelobject.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - type
    - name
    - repr
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: sentinel_new_impl
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - caller
    - sentinel_new_with_module
    - PyUnicode_Check
    - _PyArg_BadArgument
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sentinel_new_impl(PyTypeObject *type, PyObject *name, PyObject *repr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/sentinelobject.c:95,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/sentinelobject.c:101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sentinelobject.c:103,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/sentinelobject.c:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sentinelobject.c:111,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sentinelobject.c:112,1
    - Dst: sentinel_new_with_module
      Src: /src/cpython/Objects/sentinelobject.c:116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sentinelobject.c:118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/sentinelobject.c:119,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/sentinelobject.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - name
    - module_name
    - repr
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 122
    functionName: PySentinel_New
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - Py_XDECREF
    - sentinel_new_with_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySentinel_New(const char *name, const char *module_name, const char *repr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentinelobject_CAST
      Src: /src/cpython/Objects/sentinelobject.c:127,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/sentinelobject.c:128,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/sentinelobject.c:129,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/sentinelobject.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: sentinel_clear
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - sentinelobject_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int sentinel_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/sentinelobject.c:137,1
    - Dst: sentinel_clear
      Src: /src/cpython/Objects/sentinelobject.c:138,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/sentinelobject.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: sentinel_dealloc
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - sentinel_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void sentinel_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentinelobject_CAST
      Src: /src/cpython/Objects/sentinelobject.c:145,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sentinelobject.c:146,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sentinelobject.c:147,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/sentinelobject.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: sentinel_traverse
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - sentinelobject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int sentinel_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentinelobject_CAST
      Src: /src/cpython/Objects/sentinelobject.c:155,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sentinelobject.c:157,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sentinelobject.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: sentinel_repr
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - sentinelobject_CAST
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sentinel_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sentinelobject.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: sentinel_copy
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sentinel_copy(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sentinelobject.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(memo)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: sentinel_deepcopy
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sentinel_deepcopy(PyObject *self, PyObject *Py_UNUSED(memo))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentinelobject_CAST
      Src: /src/cpython/Objects/sentinelobject.c:177,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/sentinelobject.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: sentinel_reduce
    functionSourceFile: /src/cpython/Objects/sentinelobject.c
    functionUses: 0
    functionsReached:
    - sentinelobject_CAST
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sentinel_reduce(PyObject *op, 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: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    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:48,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:48,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Objects/longobject.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyLongObject*
    assertStmts:
    - condition: (PyLong_CheckExact(op))
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    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: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    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:63,1
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ival
    argTypes:
    - sdigit
    assertStmts:
    - condition: (IS_SMALL_INT(ival))
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    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:70,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:71,1
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:72,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:73,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: maybe_small_long
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - medium_value
    - _Py_DECREF_INT
    - get_small_int
    - IS_SMALL_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: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    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:128,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:135,1
    - Dst: _PyLong_SetDigitCount
      Src: /src/cpython/Objects/longobject.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: long_normalize
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_DigitCount
    - _PyLong_SetSignAndDigitCount
    - _PyLong_SetDigitCount
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_normalize(PyLongObject *v)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:164,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/longobject.c:173,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/longobject.c:181,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/longobject.c:184,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/longobject.c:187,1
    - Dst: _PyLong_InitTag
      Src: /src/cpython/Objects/longobject.c:188,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:190,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 197
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 197
    functionName: long_alloc
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    - _PyObject_Init
    - PyObject_Malloc
    - _Py_FREELIST_POP
    - _PyLong_SetSignAndDigitCount
    - memset
    - _PyLong_InitTag
    - 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:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 203
    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:208,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/longobject.c:210,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:212,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:216,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:217,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: 207
        line_start: 207
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: _PyLong_FromDigits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_SetSignAndDigitCount
    - memcpy
    - _PyLong_GetZero
    - assert
    - long_alloc
    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:224,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:227,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:228,1
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:229,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:230,1
    - Dst: _PyLong_CompactSign
      Src: /src/cpython/Objects/longobject.c:232,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:235,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:238,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:239,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:244,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - src
    argTypes:
    - PyLongObject*
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 248
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 248
    functionName: _PyLong_Copy
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - medium_value
    - get_small_int
    - _PyLong_CompactSign
    - _PyLong_DigitCount
    - _PyLong_SetSignAndDigitCount
    - memcpy
    - assert
    - IS_SMALL_INT
    - long_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_Copy(PyLongObject *src)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:253,1
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:253,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:254,1
    - Dst: is_medium_int
      Src: /src/cpython/Objects/longobject.c:254,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/longobject.c:256,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/longobject.c:258,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/longobject.c:260,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/longobject.c:263,1
    - Dst: _PyLong_InitTag
      Src: /src/cpython/Objects/longobject.c:264,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - x
    argTypes:
    - sdigit
    assertStmts:
    - condition: (!IS_SMALL_INT(x))
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/cpython/Objects/longobject.c
    - condition: (is_medium_int(x))
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 270
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 270
    functionName: _PyLong_FromMedium
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _PyObject_Init
    - is_medium_int
    - PyObject_Malloc
    - _Py_FREELIST_POP
    - _PyLong_SetSignAndDigitCount
    - _PyLong_InitTag
    - assert
    - IS_SMALL_INT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromMedium(sdigit x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:277,1
    - Dst: is_medium_int
      Src: /src/cpython/Objects/longobject.c:277,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:290,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:297,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:300,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Objects/longobject.c:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ival
    argTypes:
    - stwodigits
    assertStmts:
    - condition: (!is_medium_int(ival))
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/cpython/Objects/longobject.c
    - condition: (abs_ival >> PyLong_SHIFT != 0)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 309
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 309
    functionName: _PyLong_FromLarge
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - is_medium_int
    - _PyLong_SetSignAndDigitCount
    - assert
    - long_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromLarge(stwodigits ival)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:315,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:316,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:318,1
    - Dst: is_medium_int
      Src: /src/cpython/Objects/longobject.c:319,1
    - Dst: _PyLong_FromMedium
      Src: /src/cpython/Objects/longobject.c:320,1
    - Dst: _PyLong_FromLarge
      Src: /src/cpython/Objects/longobject.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - stwodigits
    assertStmts:
    - condition: (x != 0)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 323
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 323
    functionName: _PyLong_FromSTwoDigits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromMedium
    - get_small_int
    - is_medium_int
    - assert
    - _PyLong_FromLarge
    - IS_SMALL_INT
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      _PyLong_FromSTwoDigits(stwodigits x)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_SMALL_INT
      Src: /src/cpython/Objects/longobject.c:330,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Objects/longobject.c:331,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:331,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:333,1
    - Dst: is_medium_int
      Src: /src/cpython/Objects/longobject.c:334,1
    - Dst: _Py_FREELIST_POP
      Src: /src/cpython/Objects/longobject.c:337,1
    - Dst: PyObject_Malloc
      Src: /src/cpython/Objects/longobject.c:339,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Objects/longobject.c:343,1
    - Dst: _PyLong_InitTag
      Src: /src/cpython/Objects/longobject.c:344,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:347,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Objects/longobject.c:349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - x
    argTypes:
    - stwodigits
    assertStmts:
    - condition: (x != 0)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 350
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 350
    functionName: medium_from_stwodigits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_Init
    - get_small_int
    - is_medium_int
    - PyObject_Malloc
    - _Py_FREELIST_POP
    - _PyLong_SetSignAndDigitCount
    - _PyLong_InitTag
    - assert
    - PyStackRef_FromPyObjectStealMortal
    - IS_SMALL_INT
    - PyStackRef_FromPyObjectBorrow
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef medium_from_stwodigits(stwodigits x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/longobject.c:361,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:362,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:366,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x_p
    argTypes:
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 368
    functionName: _PyLong_Negate
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - medium_value
    - Py_DECREF
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    - _PyObject_IsUniquelyReferenced
    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: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    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: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    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: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: PyLong_FromUnsignedLongLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 38
    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: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: PyLong_FromSize_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 46
    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:483,1
    - Dst: isinf
      Src: /src/cpython/Objects/longobject.c:490,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:491,1
    - Dst: isnan
      Src: /src/cpython/Objects/longobject.c:495,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:496,1
    - Dst: frexp
      Src: /src/cpython/Objects/longobject.c:504,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:505,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:507,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:510,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:515,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:518,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - dval
    argTypes:
    - double
    assertStmts:
    - condition: (expo > 0)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 521
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 521
    functionName: PyLong_FromDouble
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 11
    functionsReached:
    - ldexp
    - PyLong_FromLong
    - frexp
    - PyErr_SetString
    - isinf
    - isnan
    - assert
    - _PyLong_FlipSign
    - long_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromDouble(double dval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:538,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:541,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: 537
        line_start: 537
        source_file: /src/cpython/Objects/longobject.c
    - condition: (i >= 2)
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 557
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 557
    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:562,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:565,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: 561
        line_start: 561
        source_file: /src/cpython/Objects/longobject.c
    - condition: (i >= 2)
      pos:
        line_end: 564
        line_start: 564
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 581
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 581
    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:604,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:608,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:612,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:617,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:619,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:632,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:637,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:638,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:664,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 2
    argNames:
    - vv
    - overflow
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 667
    functionName: PyLong_AsLongAndOverflow
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 27
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_DigitCount
    - unroll_digits_ulong
    - _PyNumber_Index
    - Py_DECREF
    linkageType: ''
    returnType: long
    signature: long PyLong_AsLongAndOverflow(PyObject *vv, int *overflow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/longobject.c:676,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 684
    functionName: PyLong_AsLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 101
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    linkageType: ''
    returnType: long
    signature: long PyLong_AsLong(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/longobject.c:693,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 702
    functionName: PyLong_AsInt
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 305
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyLong_AsInt(PyObject *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:714,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:717,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:718,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:723,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:724,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:726,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:727,1
    - Dst: unroll_digits_size_t
      Src: /src/cpython/Objects/longobject.c:729,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:748,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 751
    functionName: PyLong_AsSsize_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 154
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - PyErr_SetString
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_DigitCount
    - unroll_digits_size_t
    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:763,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:766,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:767,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Objects/longobject.c:772,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:774,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:781,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:784,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:785,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:789,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:791,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:800,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 804
    functionName: PyLong_AsUnsignedLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 13
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsNonNegativeCompact
    - PyErr_SetString
    - _PyLong_IsNegative
    - PyErr_BadInternalCall
    - PyLong_Check
    - _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:816,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:819,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:820,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Objects/longobject.c:825,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:826,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:828,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:829,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:833,1
    - Dst: unroll_digits_size_t
      Src: /src/cpython/Objects/longobject.c:835,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:838,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 845
    functionName: PyLong_AsSize_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 6
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsNonNegativeCompact
    - PyErr_SetString
    - _PyLong_IsNegative
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_DigitCount
    - unroll_digits_size_t
    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:856,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:857,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:861,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:863,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:865,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:868,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:869,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:870,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 875
    functionName: _PyLong_AsUnsignedLongMask
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - PyErr_BadInternalCall
    - PyLong_Check
    - _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:884,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:888,1
    - Dst: _PyLong_AsUnsignedLongMask
      Src: /src/cpython/Objects/longobject.c:889,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:892,1
    - Dst: _PyLong_AsUnsignedLongMask
      Src: /src/cpython/Objects/longobject.c:896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 899
    functionName: PyLong_AsUnsignedLongMask
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 9
    functionsReached:
    - _PyLong_AsUnsignedLongMask
    - _PyNumber_Index
    - PyErr_BadInternalCall
    - PyLong_Check
    - Py_DECREF
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyLong_AsUnsignedLongMask(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:904,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:905,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:906,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 910
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 910
    functionName: PyLong_IsPositive
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - PyLong_Check
    - _PyLong_IsPositive
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int PyLong_IsPositive(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:915,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:916,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:917,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 914
        line_start: 914
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: PyLong_IsNegative
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 17
    functionsReached:
    - _PyLong_IsNegative
    - PyLong_Check
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int PyLong_IsNegative(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:926,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:927,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:928,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 925
        line_start: 925
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 932
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 932
    functionName: PyLong_IsZero
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 7
    functionsReached:
    - PyLong_Check
    - _PyLong_IsZero
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int PyLong_IsZero(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:937,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:938,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:938,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:941,1
    - Dst: _PyLong_CompactSign
      Src: /src/cpython/Objects/longobject.c:942,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (vv != NULL)
      pos:
        line_end: 936
        line_start: 936
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(vv))
      pos:
        line_end: 937
        line_start: 937
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 945
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 945
    functionName: long_sign
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - _PyLong_CompactSign
    - PyLong_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int long_sign(PyObject *vv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_sign
      Src: /src/cpython/Objects/longobject.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 951
    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:956,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:957,1
    - Dst: long_sign
      Src: /src/cpython/Objects/longobject.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vv
    - sign
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 963
    functionName: PyLong_GetSign
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 5
    functionsReached:
    - PyLong_Check
    - long_sign
    - 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:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 973
    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:983,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:984,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:984,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:985,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:986,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:990,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 983
        line_start: 983
        source_file: /src/cpython/Objects/longobject.c
    - condition: (ndigits == 0 || v->long_value.ob_digit[ndigits - 1] != 0)
      pos:
        line_end: 985
        line_start: 985
        source_file: /src/cpython/Objects/longobject.c
    - condition: (ndigits <= INT64_MAX / PyLong_SHIFT)
      pos:
        line_end: 989
        line_start: 989
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 997
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 997
    functionName: _PyLong_NumBits
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 5
    functionsReached:
    - PyLong_Check
    - _PyLong_DigitCount
    - bit_length_digit
    - 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:1012,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:1054,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1083,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1088,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1091,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1093,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:1104,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:1105,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:1105,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - bytes
    - n
    - little_endian
    - is_signed
    argTypes:
    - unsigned char*
    - size_t
    - int
    - int
    assertStmts:
    - condition: (idigit < ndigits)
      pos:
        line_end: 1082
        line_start: 1082
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits < PyLong_SHIFT)
      pos:
        line_end: 1087
        line_start: 1087
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits < PyLong_SHIFT)
      pos:
        line_end: 1090
        line_start: 1090
        source_file: /src/cpython/Objects/longobject.c
    - condition: (idigit < ndigits)
      pos:
        line_end: 1092
        line_start: 1092
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1106
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1106
    functionName: _PyLong_FromByteArray
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 8
    functionsReached:
    - maybe_small_long
    - long_normalize
    - PyLong_FromLong
    - _PyLong_SetSignAndDigitCount
    - assert
    - long_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyLong_FromByteArray(const unsigned char* bytes, size_t
      n,\n                      int little_endian, int is_signed)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1124,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1124,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:1126,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1127,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1130,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1159,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1204,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1205,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1232,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1250,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 86
    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: 1123
        line_start: 1123
        source_file: /src/cpython/Objects/longobject.c
    - condition: (ndigits == 0 || v->long_value.ob_digit[ndigits - 1] != 0)
      pos:
        line_end: 1158
        line_start: 1158
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits < 8)
      pos:
        line_end: 1203
        line_start: 1203
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry == 0)
      pos:
        line_end: 1204
        line_start: 1204
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits == 0)
      pos:
        line_end: 1231
        line_start: 1231
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1254
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1254
    functionName: _PyLong_AsByteArray
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 11
    functionsReached:
    - PyErr_SetString
    - _PyLong_IsNegative
    - 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: 1267
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1267
    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:1277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - endianness
    argTypes:
    - int*
    assertStmts:
    - condition: (*endianness == 0 || *endianness == 1)
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1279
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1279
    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:1293,1
    - Dst: _resolve_endianness
      Src: /src/cpython/Objects/longobject.c:1298,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1302,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:1306,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:1313,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1318,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1319,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1321,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:1326,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1328,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:1339,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:1353,1
    - Dst: _fits_in_n_bits
      Src: /src/cpython/Objects/longobject.c:1358,1
    - Dst: _fits_in_n_bits
      Src: /src/cpython/Objects/longobject.c:1360,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:1375,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:1376,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:1398,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:1399,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Objects/longobject.c:1406,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Objects/longobject.c:1411,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1412,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1459,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: 1411
        line_start: 1411
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1463
      start: 1281
    functionDepth: 3
    functionLinenumber: 1281
    functionLinenumberEnd: 1463
    functionName: PyLong_AsNativeBytes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 26
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsCompact
    - _resolve_endianness
    - _PyLong_NumBits
    - PyErr_SetString
    - _PyLong_IsNegative
    - PyErr_BadInternalCall
    - PyLong_Check
    - memset
    - memcpy
    - PyErr_Format
    - assert
    - _PyNumber_Index
    - Py_DECREF
    - _fits_in_n_bits
    - _PyLong_AsByteArray
    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:1470,1
    - Dst: _resolve_endianness
      Src: /src/cpython/Objects/longobject.c:1475,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Objects/longobject.c:1479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - buffer
    - n
    - flags
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1466
    functionDepth: 4
    functionLinenumber: 1466
    functionLinenumberEnd: 1485
    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:1492,1
    - Dst: _resolve_endianness
      Src: /src/cpython/Objects/longobject.c:1497,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Objects/longobject.c:1501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buffer
    - n
    - flags
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1488
    functionDepth: 4
    functionLinenumber: 1488
    functionLinenumberEnd: 1502
    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:1511,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Objects/longobject.c:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1520
    functionName: PyLong_FromVoidPtr
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 41
    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:1530,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1530,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/longobject.c:1531,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Objects/longobject.c:1534,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1543,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:1543,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Objects/longobject.c:1544,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Objects/longobject.c:1547,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:1552,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1524
    functionDepth: 4
    functionLinenumber: 1524
    functionLinenumberEnd: 1555
    functionName: PyLong_AsVoidPtr
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 48
    functionsReached:
    - PyLong_AsLongLong
    - _PyLong_IsNegative
    - PyLong_Check
    - PyLong_AsUnsignedLongLong
    - PyLong_AsLong
    - PyErr_Occurred
    - PyLong_AsUnsignedLong
    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: 1569
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1569
    functionName: PyLong_FromLongLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 43
    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: 1577
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1577
    functionName: PyLong_FromSsize_t
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 168
    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:1591,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1595,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:1599,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:1605,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1607,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Objects/longobject.c:1610,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1614,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1582
    functionDepth: 2
    functionLinenumber: 1582
    functionLinenumberEnd: 1622
    functionName: PyLong_AsLongLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 17
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsCompact
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyNumber_Index
    - Py_DECREF
    - _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:1635,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1638,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1639,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Objects/longobject.c:1644,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1647,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:1650,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1656,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Objects/longobject.c:1660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1627
    functionDepth: 2
    functionLinenumber: 1627
    functionLinenumberEnd: 1669
    functionName: PyLong_AsUnsignedLongLong
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 14
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsNonNegativeCompact
    - PyErr_SetString
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_AsByteArray
    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:1681,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:1682,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:1686,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1688,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1690,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:1693,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:1694,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:1695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1700
    functionName: _PyLong_AsUnsignedLongLongMask
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - PyErr_BadInternalCall
    - PyLong_Check
    - _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:1709,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1713,1
    - Dst: _PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Objects/longobject.c:1714,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:1717,1
    - Dst: _PyLong_AsUnsignedLongLongMask
      Src: /src/cpython/Objects/longobject.c:1721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1702
    functionDepth: 2
    functionLinenumber: 1702
    functionLinenumberEnd: 1724
    functionName: PyLong_AsUnsignedLongLongMask
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 6
    functionsReached:
    - _PyLong_AsUnsignedLongLongMask
    - _PyNumber_Index
    - PyErr_BadInternalCall
    - PyLong_Check
    - Py_DECREF
    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:1748,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:1752,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:1756,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:1761,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1763,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:1776,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:1780,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:1781,1
    - Dst: unroll_digits_ulong
      Src: /src/cpython/Objects/longobject.c:1782,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:1807,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 2
    argNames:
    - vv
    - overflow
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1810
    functionName: PyLong_AsLongLongAndOverflow
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 8
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_DigitCount
    - unroll_digits_ulong
    - _PyNumber_Index
    - Py_DECREF
    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: 1831
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1831
    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: 1848
      start: 1843
    functionDepth: 0
    functionLinenumber: 1843
    functionLinenumberEnd: 1848
    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:1859,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1864,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1870,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: 1858
        line_start: 1858
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((carry & 1) == carry)
      pos:
        line_end: 1869
        line_start: 1869
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((carry & 1) == carry)
      pos:
        line_end: 1863
        line_start: 1863
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1873
      start: 1853
    functionDepth: 0
    functionLinenumber: 1853
    functionLinenumberEnd: 1873
    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:1885,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: 1884
        line_start: 1884
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1899
      start: 1879
    functionDepth: 0
    functionLinenumber: 1879
    functionLinenumberEnd: 1899
    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:1910,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: 1909
        line_start: 1909
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1917
      start: 1904
    functionDepth: 0
    functionLinenumber: 1904
    functionLinenumberEnd: 1917
    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:1929,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: 1928
        line_start: 1928
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1936
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1936
    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:1964,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: 1963
        line_start: 1963
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1974
      start: 1959
    functionDepth: 0
    functionLinenumber: 1959
    functionLinenumberEnd: 1974
    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:1984,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:1987,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:1988,1
    - Dst: inplace_divrem1
      Src: /src/cpython/Objects/longobject.c:1991,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:1992,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: 1986
        line_start: 1986
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1993
      start: 1981
    functionDepth: 3
    functionLinenumber: 1981
    functionLinenumberEnd: 1993
    functionName: divrem1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - long_normalize
    - inplace_divrem1
    - _PyLong_DigitCount
    - assert
    - long_alloc
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      divrem1(PyLongObject *a, digit n, digit *prem)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2003,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: 2002
        line_start: 2002
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2007
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2007
    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:2016,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2018,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:2019,1
    - Dst: inplace_rem1
      Src: /src/cpython/Objects/longobject.c:2020,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: 2017
        line_start: 2017
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2022
      start: 2013
    functionDepth: 1
    functionLinenumber: 2013
    functionLinenumberEnd: 2022
    functionName: rem1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - _PyLong_DigitCount
    - PyLong_FromLong
    - inplace_rem1
    - assert
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      rem1(PyLongObject *a, digit n)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Objects/longobject.c:2034,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/longobject.c:2038,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/longobject.c:2042,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2043,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/longobject.c:2048,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2049,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/longobject.c:2052,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/longobject.c:2058,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/longobject.c:2059,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Objects/longobject.c:2060,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/longobject.c:2061,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Objects/longobject.c:2068,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:2075,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2080,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:2081,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2085,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2086,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: 2088
      start: 2026
    functionDepth: 5
    functionLinenumber: 2026
    functionLinenumberEnd: 2088
    functionName: pylong_int_to_decimal_string
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyUnicode_DATA
    - PyUnicode_KIND
    - _PyUnicodeWriter_Prepare
    - PyUnicode_READ
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyBytesWriter_GrowAndUpdatePointer
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallMethod
    - _PyUnicodeWriter_WriteStr
    - Py_NewRef
    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:2110,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:2113,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:2114,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2117,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:2118,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/longobject.c:2127,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:2131,1
    - Dst: pylong_int_to_decimal_string
      Src: /src/cpython/Objects/longobject.c:2140,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2164,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:2166,1
    - Dst: SIGCHECK
      Src: /src/cpython/Objects/longobject.c:2189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2190,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/longobject.c:2208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2212,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:2213,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2220,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/longobject.c:2225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2228,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/longobject.c:2233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2235,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: 2109
        line_start: 2109
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_a < PY_SSIZE_T_MAX/2)
      pos:
        line_end: 2163
        line_start: 2163
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2261
      start: 2095
    functionDepth: 6
    functionLinenumber: 2095
    functionLinenumberEnd: 2261
    functionName: long_to_decimal_string_internal
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Prepare
    - _PyLong_IsNegative
    - _PyInterpreterState_GET
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_DigitCount
    - SIGCHECK
    - PyUnicode_New
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyBytesWriter_GrowAndUpdatePointer
    - pylong_int_to_decimal_string
    - long_alloc
    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: 2243
      start: 2240
    functionDepth: 0
    functionLinenumber: 2240
    functionLinenumberEnd: 2243
    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: 2272
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2272
    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:2323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aa
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2319
    functionDepth: 7
    functionLinenumber: 2319
    functionLinenumberEnd: 2326
    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:2345,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2347,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:2348,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/longobject.c:2349,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2352,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:2353,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/longobject.c:2367,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2378,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:2383,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/cpython/Objects/longobject.c:2393,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/longobject.c:2397,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Objects/longobject.c:2403,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2421,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: 2344
        line_start: 2344
        source_file: /src/cpython/Objects/longobject.c
    - condition: (writer == NULL || bytes_writer == NULL)
      pos:
        line_end: 2346
        line_start: 2346
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accumbits >= bits)
      pos:
        line_end: 2420
        line_start: 2420
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2431
      start: 2333
    functionDepth: 4
    functionLinenumber: 2333
    functionLinenumberEnd: 2431
    functionName: long_format_binary
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - bit_length_digit
    - _PyUnicodeWriter_Prepare
    - PyErr_SetString
    - _PyLong_IsNegative
    - PyErr_BadInternalCall
    - PyLong_Check
    - _PyLong_DigitCount
    - Py_UNREACHABLE
    - PyUnicode_New
    - PyBytesWriter_GrowAndUpdatePointer
    - 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: 2414
      start: 2408
    functionDepth: 0
    functionLinenumber: 2408
    functionLinenumberEnd: 2414
    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: 2460
      start: 2446
    functionDepth: 0
    functionLinenumber: 2446
    functionLinenumberEnd: 2460
    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:2505,1
    - Dst: long_format_binary
      Src: /src/cpython/Objects/longobject.c:2507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2499
    functionDepth: 7
    functionLinenumber: 2499
    functionLinenumberEnd: 2511
    functionName: _PyLong_Format
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - long_to_decimal_string_internal
    - long_format_binary
    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:2519,1
    - Dst: long_format_binary
      Src: /src/cpython/Objects/longobject.c:2522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - writer
    - obj
    - base
    - alternate
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2513
    functionDepth: 7
    functionLinenumber: 2513
    functionLinenumberEnd: 2524
    functionName: _PyLong_FormatWriter
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 6
    functionsReached:
    - long_to_decimal_string_internal
    - long_format_binary
    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:2535,1
    - Dst: long_format_binary
      Src: /src/cpython/Objects/longobject.c:2538,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2542,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: 2541
        line_start: 2541
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2544
      start: 2526
    functionDepth: 7
    functionLinenumber: 2526
    functionLinenumberEnd: 2544
    functionName: _PyLong_FormatBytesWriter
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - assert
    - long_to_decimal_string_internal
    - long_format_binary
    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:2596,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2605,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:2611,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/longobject.c:2628,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2629,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2634,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2637,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2641,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2643,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: 2595
        line_start: 2595
        source_file: /src/cpython/Objects/longobject.c
    - condition: (k >= 0 && k < base)
      pos:
        line_end: 2628
        line_start: 2628
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pdigit - z->long_value.ob_digit <= n)
      pos:
        line_end: 2633
        line_start: 2633
        source_file: /src/cpython/Objects/longobject.c
    - condition: (bits_in_accum < PyLong_SHIFT)
      pos:
        line_end: 2636
        line_start: 2636
        source_file: /src/cpython/Objects/longobject.c
    - condition: (bits_in_accum <= PyLong_SHIFT)
      pos:
        line_end: 2640
        line_start: 2640
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pdigit - z->long_value.ob_digit <= n)
      pos:
        line_end: 2642
        line_start: 2642
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2649
      start: 2585
    functionDepth: 3
    functionLinenumber: 2585
    functionLinenumberEnd: 2649
    functionName: long_from_binary_base
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - long_alloc
    - Py_CHARMASK
    - 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:2656,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/longobject.c:2660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2662,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/longobject.c:2665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2667,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:2671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2672,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2673,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - start
    - end
    - res
    argTypes:
    - char*
    - char*
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2653
    functionDepth: 5
    functionLinenumber: 2653
    functionLinenumberEnd: 2682
    functionName: pylong_int_from_string
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyErr_SetString
    - PyLong_Check
    - Py_DECREF
    - PyObject_CallMethod
    - PyUnicode_FromStringAndSize
    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:2837,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:2847,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2855,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:2856,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:2862,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/longobject.c:2878,1
    - Dst: Py_CHARMASK
      Src: /src/cpython/Objects/longobject.c:2885,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2886,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2902,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2910,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2911,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2913,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:2913,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:2914,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2914,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:2919,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:2919,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:2920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:2922,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:2926,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:2929,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 70
    argCount: 5
    argNames:
    - start
    - end
    - digits
    - base
    - res
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - int
    - PyLongObject**
    assertStmts:
    - condition: (log_base_BASE[base] != 0.0)
      pos:
        line_end: 2836
        line_start: 2836
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_z > 0)
      pos:
        line_end: 2854
        line_start: 2854
        source_file: /src/cpython/Objects/longobject.c
    - condition: (c < PyLong_BASE)
      pos:
        line_end: 2885
        line_start: 2885
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!_PyLong_IsNegative(z))
      pos:
        line_end: 2912
        line_start: 2912
        source_file: /src/cpython/Objects/longobject.c
    - condition: (c < PyLong_BASE)
      pos:
        line_end: 2909
        line_start: 2909
        source_file: /src/cpython/Objects/longobject.c
    - condition: (_PyLong_DigitCount(z) == size_z)
      pos:
        line_end: 2918
        line_start: 2918
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2937
      start: 2825
    functionDepth: 3
    functionLinenumber: 2825
    functionLinenumberEnd: 2937
    functionName: long_from_non_binary_base
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_SETREF
    - _PyLong_IsNegative
    - Py_CHARMASK
    - _PyLong_SetSignAndDigitCount
    - _PyLong_DigitCount
    - memcpy
    - assert
    - Py_DECREF
    - long_alloc
    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:2979,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/longobject.c:3003,1
    - Dst: long_from_binary_base
      Src: /src/cpython/Objects/longobject.c:3017,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/longobject.c:3023,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:3026,1
    - Dst: pylong_int_from_string
      Src: /src/cpython/Objects/longobject.c:3035,1
    - Dst: long_from_non_binary_base
      Src: /src/cpython/Objects/longobject.c:3039,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 3
    argNames:
    - str
    - base
    - res
    argTypes:
    - char**
    - int
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3041
      start: 2958
    functionDepth: 6
    functionLinenumber: 2958
    functionLinenumberEnd: 3041
    functionName: long_from_string_base
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_from_binary_base
    - long_from_non_binary_base
    - _PyInterpreterState_GET
    - Py_CHARMASK
    - Py_ISSPACE
    - PyErr_Format
    - pylong_int_from_string
    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:3061,1
    - Dst: Py_ISSPACE
      Src: /src/cpython/Objects/longobject.c:3065,1
    - Dst: long_from_string_base
      Src: /src/cpython/Objects/longobject.c:3107,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:3121,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3129,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3130,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:3132,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:3144,1
    - Dst: strlen
      Src: /src/cpython/Objects/longobject.c:3145,1
    - Dst: strlen
      Src: /src/cpython/Objects/longobject.c:3145,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Objects/longobject.c:3146,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:3150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3153,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 75
    argCount: 3
    argNames:
    - str
    - pend
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3051
    functionDepth: 7
    functionLinenumber: 3051
    functionLinenumberEnd: 3155
    functionName: PyLong_FromString
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 8
    functionsReached:
    - long_normalize
    - maybe_small_long
    - _PyLong_IsZero
    - PyErr_SetString
    - Py_ISSPACE
    - long_from_string_base
    - Py_XDECREF
    - strlen
    - PyErr_Format
    - _PyLong_Negate
    - Py_DECREF
    - PyUnicode_FromStringAndSize
    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:3168,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:3171,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Objects/longobject.c:3172,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/longobject.c:3172,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:3174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - s
    - len
    - base
    argTypes:
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3162
    functionDepth: 8
    functionLinenumber: 3162
    functionLinenumberEnd: 3180
    functionName: _PyLong_FromBytes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_MIN
    - Py_XDECREF
    - PyErr_Format
    - Py_DECREF
    - PyLong_FromString
    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:3190,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3193,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/longobject.c:3193,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/longobject.c:3195,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3196,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Objects/longobject.c:3198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3203,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:3204,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:3205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - u
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(asciidig))
      pos:
        line_end: 3192
        line_start: 3192
        source_file: /src/cpython/Objects/longobject.c
    - condition: (buffer != NULL)
      pos:
        line_end: 3195
        line_start: 3195
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3209
      start: 3182
    functionDepth: 8
    functionLinenumber: 3182
    functionLinenumberEnd: 3209
    functionName: PyLong_FromUnicodeObject
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - PyUnicode_IS_ASCII
    - PyUnicode_AsUTF8AndSize
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyErr_Format
    - PyLong_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromUnicodeObject(PyObject *u, int base)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3217,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3217,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3221,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:3228,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/longobject.c:3232,1
    - Dst: divrem1
      Src: /src/cpython/Objects/longobject.c:3237,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:3240,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3242,1
    - Dst: x_divrem
      Src: /src/cpython/Objects/longobject.c:3247,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3248,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3256,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3256,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:3257,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:3259,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3263,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:3263,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:3264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3266,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:3267,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3271,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - a
    - b
    - pdiv
    - prem
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3213
    functionDepth: 6
    functionLinenumber: 3213
    functionLinenumberEnd: 3273
    functionName: long_divrem
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    - maybe_small_long
    - PyLong_FromLong
    - _PyLong_IsZero
    - x_divrem
    - PyErr_SetString
    - _PyLong_IsNegative
    - Py_CLEAR
    - _PyLong_DigitCount
    - divrem1
    - _PyLong_GetZero
    - Py_DECREF
    - _PyLong_Negate
    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:3280,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3280,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3283,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:3291,1
    - Dst: rem1
      Src: /src/cpython/Objects/longobject.c:3295,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:3301,1
    - Dst: x_divrem
      Src: /src/cpython/Objects/longobject.c:3301,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3302,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3307,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:3307,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:3308,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:3310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - a
    - b
    - prem
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3277
    functionDepth: 6
    functionLinenumber: 3277
    functionLinenumberEnd: 3315
    functionName: long_rem
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    - maybe_small_long
    - _PyLong_IsZero
    - x_divrem
    - PyErr_SetString
    - rem1
    - _PyLong_IsNegative
    - Py_CLEAR
    - _PyLong_DigitCount
    - Py_XDECREF
    - _PyLong_Negate
    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:3338,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3339,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3340,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3341,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3348,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:3355,1
    - Dst: v_lshift
      Src: /src/cpython/Objects/longobject.c:3356,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3357,1
    - Dst: v_lshift
      Src: /src/cpython/Objects/longobject.c:3358,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3367,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3371,1
    - Dst: SIGCHECK
      Src: /src/cpython/Objects/longobject.c:3384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3387,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3394,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3412,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Objects/longobject.c:3422,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3427,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3439,1
    - Dst: v_rshift
      Src: /src/cpython/Objects/longobject.c:3444,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3446,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3448,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3449,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 81
    argCount: 3
    argNames:
    - v1
    - w1
    - prem
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    assertStmts:
    - condition: (k >= 0)
      pos:
        line_end: 3366
        line_start: 3366
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_v >= size_w && size_w >= 2)
      pos:
        line_end: 3339
        line_start: 3339
        source_file: /src/cpython/Objects/longobject.c
    - condition: (q < PyLong_BASE)
      pos:
        line_end: 3438
        line_start: 3438
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry == 0)
      pos:
        line_end: 3356
        line_start: 3356
        source_file: /src/cpython/Objects/longobject.c
    - condition: (vtop <= wm1)
      pos:
        line_end: 3393
        line_start: 3393
        source_file: /src/cpython/Objects/longobject.c
    - condition: (q <= PyLong_BASE)
      pos:
        line_end: 3411
        line_start: 3411
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((sdigit)vtop + zhi == -1 || (sdigit)vtop + zhi == 0)
      pos:
        line_end: 3426
        line_start: 3426
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry==0)
      pos:
        line_end: 3444
        line_start: 3444
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3450
      start: 3320
    functionDepth: 3
    functionLinenumber: 3320
    functionLinenumberEnd: 3450
    functionName: x_divrem
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - bit_length_digit
    - long_normalize
    - Py_ARITHMETIC_RIGHT_SHIFT
    - v_rshift
    - SIGCHECK
    - v_lshift
    - _PyLong_DigitCount
    - assert
    - Py_DECREF
    - long_alloc
    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:3479,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Objects/longobject.c:3485,1
    - Dst: v_lshift
      Src: /src/cpython/Objects/longobject.c:3516,1
    - Dst: v_rshift
      Src: /src/cpython/Objects/longobject.c:3524,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3540,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Objects/longobject.c:3540,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3551,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3557,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: 3539
        line_start: 3539
        source_file: /src/cpython/Objects/longobject.c
    - condition: (a_bits < INT64_MAX)
      pos:
        line_end: 3550
        line_start: 3550
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3558
      start: 3464
    functionDepth: 3
    functionLinenumber: 3464
    functionLinenumberEnd: 3558
    functionName: _PyLong_Frexp
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - _PyLong_NumBits
    - Py_ARRAY_LENGTH
    - v_rshift
    - _PyLong_IsNegative
    - v_lshift
    - _PyLong_DigitCount
    - 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:3570,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:3573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3574,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:3577,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3582,1
    - Dst: _PyLong_Frexp
      Src: /src/cpython/Objects/longobject.c:3584,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3585,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3586,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:3586,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:3588,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:3592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (exponent >= 0)
      pos:
        line_end: 3584
        line_start: 3584
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3585
        line_start: 3585
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3593
      start: 3563
    functionDepth: 4
    functionLinenumber: 3563
    functionLinenumberEnd: 3593
    functionName: PyLong_AsDouble
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 9
    functionsReached:
    - _PyLong_IsCompact
    - medium_value
    - assert
    - PyErr_SetString
    - PyErr_BadInternalCall
    - PyLong_Check
    - PyErr_Occurred
    - _PyLong_Frexp
    - ldexp
    linkageType: ''
    returnType: double
    signature: double PyLong_AsDouble(PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3604,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:3605,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:3605,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:3607,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:3607,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3609,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3620
      start: 3601
    functionDepth: 1
    functionLinenumber: 3601
    functionLinenumberEnd: 3620
    functionName: long_compare
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_SignedDigitCount
    - _PyLong_BothAreCompact
    - _PyLong_IsNegative
    - _PyLong_DigitCount
    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:3626,1
    - Dst: long_compare
      Src: /src/cpython/Objects/longobject.c:3630,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/cpython/Objects/longobject.c:3631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3632
      start: 3622
    functionDepth: 2
    functionLinenumber: 3622
    functionLinenumberEnd: 3632
    functionName: long_richcompare
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - long_compare
    - Py_RETURN_RICHCOMPARE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3637,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:3637,1
    - Dst: _PyLong_IsSmallInt
      Src: /src/cpython/Objects/longobject.c:3638,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/longobject.c:3640,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:3643,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/longobject.c:3644,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/longobject.c:3647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_CheckExact(self))
      pos:
        line_end: 3636
        line_start: 3636
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3648
      start: 3634
    functionDepth: 3
    functionLinenumber: 3634
    functionLinenumberEnd: 3648
    functionName: _PyLong_ExactDealloc
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - PyLong_CheckExact
    - assert
    - _Py_SetImmortal
    - PyObject_Free
    - _Py_FREELIST_FREE
    - _PyLong_IsSmallInt
    linkageType: ''
    returnType: void
    signature: void _PyLong_ExactDealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsSmallInt
      Src: /src/cpython/Objects/longobject.c:3653,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Objects/longobject.c:3660,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:3663,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:3663,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Objects/longobject.c:3664,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/longobject.c:3667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3650
    functionDepth: 3
    functionLinenumber: 3650
    functionLinenumberEnd: 3668
    functionName: long_dealloc
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - PyLong_CheckExact
    - _Py_SetImmortal
    - _Py_FREELIST_FREE
    - Py_TYPE
    - _PyLong_IsSmallInt
    linkageType: ''
    returnType: void
    signature: void long_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:3678,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Objects/longobject.c:3679,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3685,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:3686,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Objects/longobject.c:3689,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3690,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3693,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3697,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (i >= 1)
      pos:
        line_end: 3689
        line_start: 3689
        source_file: /src/cpython/Objects/longobject.c
    - condition: (x < PyHASH_MODULUS)
      pos:
        line_end: 3692
        line_start: 3692
        source_file: /src/cpython/Objects/longobject.c
    - condition: (i >= 1)
      pos:
        line_end: 3696
        line_start: 3696
        source_file: /src/cpython/Objects/longobject.c
    - condition: (x < PyHASH_MODULUS)
      pos:
        line_end: 3700
        line_start: 3700
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3740
      start: 3670
    functionDepth: 1
    functionLinenumber: 3670
    functionLinenumberEnd: 3740
    functionName: long_hash
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - _PyLong_DigitCount
    - Py_BUILD_ASSERT
    - assert
    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:3748,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3748,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3760,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3745
    functionDepth: 3
    functionLinenumber: 3745
    functionLinenumberEnd: 3775
    functionName: x_add
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_normalize
    - _PyLong_DigitCount
    - long_alloc
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_add(PyLongObject *a, PyLongObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3782,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3782,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:3802,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3809,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3826,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:3828,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:3830,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:3830,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (borrow == 0)
      pos:
        line_end: 3825
        line_start: 3825
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3831
      start: 3779
    functionDepth: 3
    functionLinenumber: 3779
    functionLinenumberEnd: 3831
    functionName: x_sub
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - maybe_small_long
    - long_normalize
    - PyLong_FromLong
    - _PyLong_DigitCount
    - assert
    - _PyLong_FlipSign
    - long_alloc
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_sub(PyLongObject *a, PyLongObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3836,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3837,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3837,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:3838,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3842,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3843,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:3844,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3850,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:3850,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:3851,1
    - Dst: x_sub
      Src: /src/cpython/Objects/longobject.c:3855,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3858,1
    - Dst: x_sub
      Src: /src/cpython/Objects/longobject.c:3859,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:3861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (Py_REFCNT(z) == 1)
      pos:
        line_end: 3849
        line_start: 3849
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3864
      start: 3833
    functionDepth: 5
    functionLinenumber: 3833
    functionLinenumberEnd: 3864
    functionName: long_add
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - x_sub
    - medium_value
    - _PyLong_IsNegative
    - x_add
    - _PyLong_BothAreCompact
    - Py_REFCNT
    - assert
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_add(PyLongObject *a, PyLongObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3869,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3869,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3870,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3870,1
    - Dst: medium_from_stwodigits
      Src: /src/cpython/Objects/longobject.c:3871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_BothAreCompact(a, b))
      pos:
        line_end: 3868
        line_start: 3868
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3872
      start: 3866
    functionDepth: 3
    functionLinenumber: 3866
    functionLinenumberEnd: 3872
    functionName: _PyCompactLong_Add
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    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:3877,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:3878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3874
    functionDepth: 6
    functionLinenumber: 3874
    functionLinenumberEnd: 3879
    functionName: long_add_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - long_add
    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:3885,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:3886,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3886,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3886,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3890,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3891,1
    - Dst: x_sub
      Src: /src/cpython/Objects/longobject.c:3892,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:3895,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3897,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:3897,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:3897,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:3898,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:3903,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:3904,1
    - Dst: x_sub
      Src: /src/cpython/Objects/longobject.c:3906,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: 3896
        line_start: 3896
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3909
      start: 3882
    functionDepth: 5
    functionLinenumber: 3882
    functionLinenumberEnd: 3909
    functionName: long_sub
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - x_sub
    - _PyLong_IsZero
    - medium_value
    - _PyLong_IsNegative
    - _PyLong_BothAreCompact
    - x_add
    - Py_REFCNT
    - assert
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_sub(PyLongObject *a, PyLongObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3914,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:3914,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3915,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:3915,1
    - Dst: medium_from_stwodigits
      Src: /src/cpython/Objects/longobject.c:3916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_BothAreCompact(a, b))
      pos:
        line_end: 3913
        line_start: 3913
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3917
      start: 3911
    functionDepth: 3
    functionLinenumber: 3911
    functionLinenumberEnd: 3917
    functionName: _PyCompactLong_Subtract
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    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:3922,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:3923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3919
    functionDepth: 6
    functionLinenumber: 3919
    functionLinenumberEnd: 3924
    functionName: long_sub_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - long_sub
    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:3934,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3935,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:3938,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:3942,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:3942,1
    - Dst: SIGCHECK
      Src: /src/cpython/Objects/longobject.c:3957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:3958,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3965,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3975,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3982,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3994,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:3995,1
    - Dst: SIGCHECK
      Src: /src/cpython/Objects/longobject.c:4009,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4010,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4018,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4022,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4025,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (carry <= PyLong_MASK)
      pos:
        line_end: 4017
        line_start: 4017
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((carry >> PyLong_SHIFT) == 0)
      pos:
        line_end: 4021
        line_start: 4021
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pz[1] == 0)
      pos:
        line_end: 3994
        line_start: 3994
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry <= (PyLong_MASK << 1))
      pos:
        line_end: 3974
        line_start: 3974
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry <= PyLong_MASK)
      pos:
        line_end: 3964
        line_start: 3964
        source_file: /src/cpython/Objects/longobject.c
    - condition: (*pz <= 1)
      pos:
        line_end: 3981
        line_start: 3981
        source_file: /src/cpython/Objects/longobject.c
    - condition: (carry == 1)
      pos:
        line_end: 3993
        line_start: 3993
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4026
      start: 3930
    functionDepth: 3
    functionLinenumber: 3930
    functionLinenumberEnd: 4026
    functionName: x_mul
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_normalize
    - SIGCHECK
    - _PyLong_DigitCount
    - memset
    - assert
    - Py_DECREF
    - long_alloc
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4043,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/longobject.c:4045,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4048,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4051,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4055,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4056,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4058,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4059,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: 4061
      start: 4035
    functionDepth: 3
    functionLinenumber: 4035
    functionLinenumberEnd: 4061
    functionName: kmul_split
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_normalize
    - Py_MIN
    - _PyLong_DigitCount
    - memcpy
    - Py_DECREF
    - 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:4072,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4073,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:4108,1
    - Dst: x_mul
      Src: /src/cpython/Objects/longobject.c:4110,1
    - Dst: k_lopsided_mul
      Src: /src/cpython/Objects/longobject.c:4120,1
    - Dst: kmul_split
      Src: /src/cpython/Objects/longobject.c:4124,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4125,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4125,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4128,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4129,1
    - Dst: kmul_split
      Src: /src/cpython/Objects/longobject.c:4131,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4150,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4154,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4155,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4155,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4156,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4156,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4156,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4157,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4158,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4161,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4161,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:4163,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4163,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4168,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4171,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4171,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4172,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4172,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4173,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4173,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4176,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:4178,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4178,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4183,1
    - Dst: v_isub
      Src: /src/cpython/Objects/longobject.c:4184,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4184,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4185,1
    - Dst: v_isub
      Src: /src/cpython/Objects/longobject.c:4187,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4187,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4188,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:4191,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4192,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4193,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4197,1
    - Dst: x_add
      Src: /src/cpython/Objects/longobject.c:4199,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4200,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4203,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4204,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4207,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4208,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4209,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4211,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4211,1
    - Dst: v_iadd
      Src: /src/cpython/Objects/longobject.c:4216,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4216,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4217,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4219,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4222,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4223,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4224,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4225,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4226,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 93
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_IsPositive(ah))
      pos:
        line_end: 4124
        line_start: 4124
        source_file: /src/cpython/Objects/longobject.c
    - condition: (2*shift + _PyLong_DigitCount(t1) <= _PyLong_DigitCount(ret))
      pos:
        line_end: 4155
        line_start: 4155
        source_file: /src/cpython/Objects/longobject.c
    - condition: (_PyLong_DigitCount(t2) <= 2*shift)
      pos:
        line_end: 4171
        line_start: 4171
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!_PyLong_IsNegative(t2))
      pos:
        line_end: 4170
        line_start: 4170
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!_PyLong_IsNegative(t3))
      pos:
        line_end: 4210
        line_start: 4210
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!_PyLong_IsNegative(t1))
      pos:
        line_end: 4154
        line_start: 4154
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4228
      start: 4069
    functionDepth: 4
    functionLinenumber: 4069
    functionLinenumberEnd: 4228
    functionName: k_mul
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - x_mul
    - k_lopsided_mul
    - v_isub
    - memcpy
    - assert
    - long_alloc
    - _PyLong_IsNegative
    - _PyLong_DigitCount
    - Py_XDECREF
    - kmul_split
    - long_normalize
    - v_iadd
    - _Py_DECREF_INT
    - k_mul
    - x_add
    - Py_DECREF
    - Py_NewRef
    - _PyLong_IsPositive
    - memset
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      k_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4286,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4287,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4292,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4293,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4296,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:4299,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4299,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4302,1
    - Dst: Py_MIN
      Src: /src/cpython/Objects/longobject.c:4309,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:4312,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4314,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:4315,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4316,1
    - Dst: v_iadd
      Src: /src/cpython/Objects/longobject.c:4321,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4321,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4322,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4323,1
    - Dst: _Py_DECREF_INT
      Src: /src/cpython/Objects/longobject.c:4329,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4333,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (2 * asize <= bsize)
      pos:
        line_end: 4292
        line_start: 4292
        source_file: /src/cpython/Objects/longobject.c
    - condition: (nbtouse >= 0)
      pos:
        line_end: 4313
        line_start: 4313
        source_file: /src/cpython/Objects/longobject.c
    - condition: (asize > KARATSUBA_CUTOFF)
      pos:
        line_end: 4291
        line_start: 4291
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4336
      start: 4283
    functionDepth: 5
    functionLinenumber: 4283
    functionLinenumberEnd: 4336
    functionName: k_lopsided_mul
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - long_normalize
    - v_iadd
    - _Py_DECREF_INT
    - k_mul
    - Py_MIN
    - _PyLong_DigitCount
    - _PyLong_SetSignAndDigitCount
    - memset
    - memcpy
    - Py_XDECREF
    - assert
    - Py_DECREF
    - long_alloc
    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:4343,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:4344,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:4344,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:4345,1
    - Dst: k_mul
      Src: /src/cpython/Objects/longobject.c:4348,1
    - Dst: _PyLong_SameSign
      Src: /src/cpython/Objects/longobject.c:4350,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:4351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4354
      start: 4339
    functionDepth: 6
    functionLinenumber: 4339
    functionLinenumberEnd: 4354
    functionName: long_mul
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - medium_value
    - k_mul
    - _PyLong_BothAreCompact
    - _PyLong_SameSign
    - _PyLong_Negate
    - _PyLong_FromSTwoDigits
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4361,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Objects/longobject.c:4361,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:4362,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:4362,1
    - Dst: medium_from_stwodigits
      Src: /src/cpython/Objects/longobject.c:4363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_BothAreCompact(a, b))
      pos:
        line_end: 4360
        line_start: 4360
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4364
      start: 4358
    functionDepth: 3
    functionLinenumber: 4358
    functionLinenumberEnd: 4364
    functionName: _PyCompactLong_Multiply
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    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:4369,1
    - Dst: long_mul
      Src: /src/cpython/Objects/longobject.c:4370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4366
    functionDepth: 7
    functionLinenumber: 4366
    functionLinenumberEnd: 4371
    functionName: long_mul_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - long_mul
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_mul_method(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4381,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4381,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4382,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4382,1
    - Dst: _PyLong_CompactSign
      Src: /src/cpython/Objects/longobject.c:4383,1
    - Dst: _PyLong_SameSign
      Src: /src/cpython/Objects/longobject.c:4384,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:4392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_DigitCount(a) == 1)
      pos:
        line_end: 4380
        line_start: 4380
        source_file: /src/cpython/Objects/longobject.c
    - condition: (_PyLong_DigitCount(b) == 1)
      pos:
        line_end: 4381
        line_start: 4381
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4393
      start: 4374
    functionDepth: 1
    functionLinenumber: 4374
    functionLinenumberEnd: 4393
    functionName: fast_mod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_CompactSign
    - _PyLong_DigitCount
    - _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:4403,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4403,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4404,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4404,1
    - Dst: _PyLong_SameSign
      Src: /src/cpython/Objects/longobject.c:4406,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:4414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_DigitCount(a) == 1)
      pos:
        line_end: 4402
        line_start: 4402
        source_file: /src/cpython/Objects/longobject.c
    - condition: (_PyLong_DigitCount(b) == 1)
      pos:
        line_end: 4403
        line_start: 4403
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4415
      start: 4396
    functionDepth: 1
    functionLinenumber: 4396
    functionLinenumberEnd: 4415
    functionName: fast_floor_div
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_DigitCount
    - PyLong_FromLong
    - _PyLong_SameSign
    - assert
    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:4423,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Objects/longobject.c:4427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4428,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/longobject.c:4432,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/longobject.c:4432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4433,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4434,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/longobject.c:4438,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/longobject.c:4439,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:4440,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:4440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4441,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4442,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4447,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - v
    - w
    - pdiv
    - pmod
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4419
    functionDepth: 5
    functionLinenumber: 4419
    functionLinenumberEnd: 4454
    functionName: pylong_int_divmod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PyLong_Check
    - PyTuple_Check
    - Py_DECREF
    - PyObject_CallMethod
    - Py_NewRef
    - PyTuple_GET_SIZE
    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:4484,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4484,1
    - Dst: fast_floor_div
      Src: /src/cpython/Objects/longobject.c:4488,1
    - Dst: fast_mod
      Src: /src/cpython/Objects/longobject.c:4494,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:4496,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4509,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4510,1
    - Dst: pylong_int_divmod
      Src: /src/cpython/Objects/longobject.c:4517,1
    - Dst: long_divrem
      Src: /src/cpython/Objects/longobject.c:4520,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4522,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4522,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4523,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4523,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:4525,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4528,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:4531,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:4531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4534,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4547,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 4
    argNames:
    - v
    - w
    - pdiv
    - pmod
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4550
      start: 4478
    functionDepth: 7
    functionLinenumber: 4478
    functionLinenumberEnd: 4550
    functionName: l_divmod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsPositive
    - _PyLong_GetOne
    - pylong_int_divmod
    - fast_floor_div
    - _PyLong_IsNegative
    - long_divrem
    - fast_mod
    - long_add
    - _PyLong_DigitCount
    - Py_SETREF
    - Py_XDECREF
    - Py_DECREF
    - long_sub
    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:4561,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4562,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4562,1
    - Dst: fast_mod
      Src: /src/cpython/Objects/longobject.c:4564,1
    - Dst: long_rem
      Src: /src/cpython/Objects/longobject.c:4567,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4569,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4569,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4570,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4570,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:4572,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4573,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - v
    - w
    - pmod
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    assertStmts:
    - condition: (pmod)
      pos:
        line_end: 4560
        line_start: 4560
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4580
      start: 4556
    functionDepth: 7
    functionLinenumber: 4556
    functionLinenumberEnd: 4580
    functionName: l_mod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsPositive
    - long_rem
    - _PyLong_IsNegative
    - Py_SETREF
    - fast_mod
    - long_add
    - _PyLong_DigitCount
    - assert
    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:4587,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4589,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4589,1
    - Dst: fast_floor_div
      Src: /src/cpython/Objects/longobject.c:4590,1
    - Dst: l_divmod
      Src: /src/cpython/Objects/longobject.c:4593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4596
      start: 4582
    functionDepth: 8
    functionLinenumber: 4582
    functionLinenumberEnd: 4596
    functionName: long_div
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - _PyLong_DigitCount
    - l_divmod
    - fast_floor_div
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_div(PyObject *a, PyObject *b)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4612,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4704,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4705,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4706,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:4706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4708,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:4746,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:4747,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/longobject.c:4755,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4768,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4772,1
    - Dst: v_lshift
      Src: /src/cpython/Objects/longobject.c:4777,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4785,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:4786,1
    - Dst: v_rshift
      Src: /src/cpython/Objects/longobject.c:4789,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4798,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:4799,1
    - Dst: inplace_divrem1
      Src: /src/cpython/Objects/longobject.c:4804,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:4806,1
    - Dst: x_divrem
      Src: /src/cpython/Objects/longobject.c:4812,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4813,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:4816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4818,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:4820,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4821,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:4822,1
    - Dst: Py_MAX
      Src: /src/cpython/Objects/longobject.c:4825,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4839,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:4843,1
    - Dst: ldexp
      Src: /src/cpython/Objects/longobject.c:4845,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/longobject.c:4848,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/longobject.c:4851,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4854,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 117
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (a_size >= shift_digits)
      pos:
        line_end: 4784
        line_start: 4784
        source_file: /src/cpython/Objects/longobject.c
    - condition: (extra_bits == 2 || extra_bits == 3)
      pos:
        line_end: 4825
        line_start: 4825
        source_file: /src/cpython/Objects/longobject.c
    - condition: (x_size > 0)
      pos:
        line_end: 4820
        line_start: 4820
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4858
      start: 4603
    functionDepth: 4
    functionLinenumber: 4603
    functionLinenumberEnd: 4858
    functionName: long_true_divide
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - bit_length_digit
    - _PyLong_IsZero
    - PyFloat_FromDouble
    - v_lshift
    - assert
    - long_alloc
    - x_divrem
    - v_rshift
    - _PyLong_IsNegative
    - _PyLong_DigitCount
    - ldexp
    - long_normalize
    - PyErr_SetString
    - _PyLong_SignedDigitCount
    - Py_MAX
    - inplace_divrem1
    - Py_DECREF
    - Py_SETREF
    - CHECK_BINOP
    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:4865,1
    - Dst: l_mod
      Src: /src/cpython/Objects/longobject.c:4867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4870
      start: 4860
    functionDepth: 8
    functionLinenumber: 4860
    functionLinenumberEnd: 4870
    functionName: long_mod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - l_mod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_mod(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4876,1
    - Dst: l_divmod
      Src: /src/cpython/Objects/longobject.c:4878,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/longobject.c:4881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4882
      start: 4872
    functionDepth: 8
    functionLinenumber: 4872
    functionLinenumberEnd: 4882
    functionName: long_divmod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - l_divmod
    - _PyTuple_FromPairSteal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_divmod(PyObject *a, PyObject *b)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:4909,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Objects/longobject.c:4909,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:4911,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4912,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:4912,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4913,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/longobject.c:4913,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:4914,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:4917,1
    - Dst: l_divmod
      Src: /src/cpython/Objects/longobject.c:4920,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4923,1
    - Dst: long_mul
      Src: /src/cpython/Objects/longobject.c:4925,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4926,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:4930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4931,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:4935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4940,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4941,1
    - Dst: long_compare
      Src: /src/cpython/Objects/longobject.c:4942,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:4942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4945,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:4946,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4952,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (_PyLong_IsPositive(n))
      pos:
        line_end: 4908
        line_start: 4908
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4962
      start: 4905
    functionDepth: 8
    functionLinenumber: 4905
    functionLinenumberEnd: 4962
    functionName: long_invmod
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsPositive
    - Py_INCREF
    - _PyLong_IsZero
    - _PyLong_GetOne
    - PyErr_SetString
    - Py_SETREF
    - long_mul
    - l_divmod
    - _PyLong_GetZero
    - assert
    - Py_DECREF
    - long_compare
    - Py_NewRef
    - long_sub
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_invmod(PyLongObject *a, PyLongObject *n)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:4989,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4990,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4991,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:4992,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:4993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:4999,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5003,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5009,1
    - Dst: tp_as_number::nb_power
      Src: /src/cpython/Objects/longobject.c:5010,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5016,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5017,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5025,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5027,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5030,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:5032,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Objects/longobject.c:5039,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5040,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5046,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5047,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5050,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:5052,1
    - Dst: long_invmod
      Src: /src/cpython/Objects/longobject.c:5056,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5059,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5072,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5072,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5072,1
    - Dst: l_mod
      Src: /src/cpython/Objects/longobject.c:5073,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5075,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5083,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:5114,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5120,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5122,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5130,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5141,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5142,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5142,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5145,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5147,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5153,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5155,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5169,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5171,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5175,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:5178,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5187,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5188,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5189,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5194,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5197,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5199,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5201,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5202,1
    - Dst: _PyLong_SignedDigitCount
      Src: /src/cpython/Objects/longobject.c:5206,1
    - Dst: MULT
      Src: /src/cpython/Objects/longobject.c:5217,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 150
    argCount: 3
    argNames:
    - v
    - w
    - x
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (pending >> blen == 0)
      pos:
        line_end: 5188
        line_start: 5188
        source_file: /src/cpython/Objects/longobject.c
    - condition: ((bi & bit) == 0)
      pos:
        line_end: 5144
        line_start: 5144
        source_file: /src/cpython/Objects/longobject.c
    - condition: (bi & bit)
      pos:
        line_end: 5146
        line_start: 5146
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pending && blen)
      pos:
        line_end: 5186
        line_start: 5186
        source_file: /src/cpython/Objects/longobject.c
    - condition: (blen == 0)
      pos:
        line_end: 5201
        line_start: 5201
        source_file: /src/cpython/Objects/longobject.c
    - condition: (bi)
      pos:
        line_end: 5140
        line_start: 5140
        source_file: /src/cpython/Objects/longobject.c
    - condition: (ntz < blen)
      pos:
        line_end: 5193
        line_start: 5193
        source_file: /src/cpython/Objects/longobject.c
    - condition: (pending >> (blen - 1))
      pos:
        line_end: 5187
        line_start: 5187
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5222
      start: 4966
    functionDepth: 9
    functionLinenumber: 4966
    functionLinenumberEnd: 5222
    functionName: long_pow
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_IsZero
    - _PyLong_IsNonNegativeCompact
    - assert
    - l_mod
    - _PyLong_IsNegative
    - PyLong_Check
    - _PyLong_DigitCount
    - PyErr_SetString
    - _PyLong_SignedDigitCount
    - Py_DECREF
    - Py_NewRef
    - MULT
    - tp_as_number::nb_power
    - Py_SETREF
    - CHECK_BINOP
    - long_invmod
    - Py_CLEAR
    - _PyLong_Negate
    - _PyLong_Copy
    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: 5100
      start: 5090
    functionDepth: 0
    functionLinenumber: 5090
    functionLinenumberEnd: 5100
    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: 5113
      start: 5103
    functionDepth: 0
    functionLinenumber: 5103
    functionLinenumberEnd: 5113
    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:5250,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5253,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5254,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5254,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:5256,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:5256,1
    - Dst: _PyLong_Negate
      Src: /src/cpython/Objects/longobject.c:5259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5263
      start: 5247
    functionDepth: 6
    functionLinenumber: 5247
    functionLinenumberEnd: 5263
    functionName: long_invert
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - _PyLong_CAST
    - medium_value
    - _PyLong_GetOne
    - long_add
    - _PyLong_Negate
    - _PyLong_FromSTwoDigits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_invert(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5268,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5269,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5269,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5272,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:5274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5277
      start: 5265
    functionDepth: 5
    functionLinenumber: 5265
    functionLinenumberEnd: 5277
    functionName: long_neg
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - medium_value
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    - _PyLong_Copy
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_neg(PyLongObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_neg
      Src: /src/cpython/Objects/longobject.c:5282,1
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5283
      start: 5279
    functionDepth: 6
    functionLinenumber: 5279
    functionLinenumberEnd: 5283
    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:5288,1
    - Dst: long_neg
      Src: /src/cpython/Objects/longobject.c:5289,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:5291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5285
    functionDepth: 6
    functionLinenumber: 5285
    functionLinenumberEnd: 5292
    functionName: long_abs
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_neg
    - long_long
    - _PyLong_IsNegative
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_abs(PyLongObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_abs
      Src: /src/cpython/Objects/longobject.c:5297,1
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5298
      start: 5294
    functionDepth: 7
    functionLinenumber: 5294
    functionLinenumberEnd: 5298
    functionName: long_abs_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_abs
    - _PyLong_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_abs_method(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5303,1
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5304
      start: 5300
    functionDepth: 1
    functionLinenumber: 5300
    functionLinenumberEnd: 5304
    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:5319,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5320,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5323,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5326,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5329,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5332,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5333,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:5342,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5349,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5353,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5355,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:5374,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5389,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:5392,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5392,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: 5318
        line_start: 5318
        source_file: /src/cpython/Objects/longobject.c
    - condition: (remshift < PyLong_SHIFT)
      pos:
        line_end: 5319
        line_start: 5319
        source_file: /src/cpython/Objects/longobject.c
    - condition: (wordshift >= 0)
      pos:
        line_end: 5348
        line_start: 5348
        source_file: /src/cpython/Objects/longobject.c
    - condition: (accum <= PyLong_MASK)
      pos:
        line_end: 5388
        line_start: 5388
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5394
      start: 5310
    functionDepth: 5
    functionLinenumber: 5310
    functionLinenumberEnd: 5394
    functionName: long_rshift1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    - maybe_small_long
    - PyLong_FromLong
    - long_normalize
    - _PyLong_IsCompact
    - medium_value
    - _PyLong_IsNegative
    - _PyLong_DigitCount
    - _PyLong_SetSignAndDigitCount
    - assert
    - _PyLong_FromSTwoDigits
    - long_alloc
    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:5401,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5403,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5404,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5407,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5408,1
    - Dst: PyLong_AsInt64
      Src: /src/cpython/Objects/longobject.c:5410,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/longobject.c:5411,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/longobject.c:5414,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5415,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5416,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5419,1
    - Dst: _PyLong_Rshift
      Src: /src/cpython/Objects/longobject.c:5422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5423
      start: 5396
    functionDepth: 1
    functionLinenumber: 5396
    functionLinenumberEnd: 5423
    functionName: long_rshift
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_IsZero
    - PyErr_SetString
    - _PyLong_IsNegative
    - CHECK_BINOP
    - PyLong_AsInt64
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - _PyLong_Rshift
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_rshift(PyObject *a, PyObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5432,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:5432,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5433,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5434,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5435,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5439,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5440,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5443,1
    - Dst: long_rshift1
      Src: /src/cpython/Objects/longobject.c:5449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - a
    - shiftby
    argTypes:
    - PyObject*
    - int64_t
    assertStmts:
    - condition: (PyLong_Check(a))
      pos:
        line_end: 5431
        line_start: 5431
        source_file: /src/cpython/Objects/longobject.c
    - condition: (shiftby >= 0)
      pos:
        line_end: 5432
        line_start: 5432
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5450
      start: 5426
    functionDepth: 6
    functionLinenumber: 5426
    functionLinenumberEnd: 5450
    functionName: _PyLong_Rshift
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - PyLong_FromLong
    - _PyLong_IsZero
    - long_rshift1
    - _PyLong_IsNegative
    - PyLong_Check
    - 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:5459,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5460,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5463,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5466,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5470,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5473,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5474,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:5474,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:5475,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5488,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5489,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:5490,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: 5473
        line_start: 5473
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!accum)
      pos:
        line_end: 5487
        line_start: 5487
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5491
      start: 5452
    functionDepth: 5
    functionLinenumber: 5452
    functionLinenumberEnd: 5491
    functionName: long_lshift1
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_normalize
    - maybe_small_long
    - _PyLong_IsCompact
    - medium_value
    - _PyLong_IsNegative
    - Py_REFCNT
    - _PyLong_DigitCount
    - assert
    - _PyLong_FlipSign
    - _PyLong_FromSTwoDigits
    - long_alloc
    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:5497,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5501,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5502,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5505,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5506,1
    - Dst: PyLong_AsInt64
      Src: /src/cpython/Objects/longobject.c:5510,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/longobject.c:5511,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5512,1
    - Dst: long_lshift_int64
      Src: /src/cpython/Objects/longobject.c:5517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - aa
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5518
      start: 5494
    functionDepth: 1
    functionLinenumber: 5494
    functionLinenumberEnd: 5518
    functionName: long_lshift_method
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_IsZero
    - long_lshift_int64
    - PyErr_SetString
    - _PyLong_IsNegative
    - CHECK_BINOP
    - PyLong_AsInt64
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_lshift_method(PyObject *aa, PyObject *bb)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5524,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Objects/longobject.c:5526,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5527,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5531,1
    - Dst: long_lshift1
      Src: /src/cpython/Objects/longobject.c:5538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - shiftby
    argTypes:
    - PyLongObject*
    - int64_t
    assertStmts:
    - condition: (shiftby >= 0)
      pos:
        line_end: 5523
        line_start: 5523
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5539
      start: 5521
    functionDepth: 6
    functionLinenumber: 5521
    functionLinenumberEnd: 5539
    functionName: long_lshift_int64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - _PyLong_IsZero
    - PyErr_SetString
    - assert
    - long_lshift1
    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:5544,1
    - Dst: _PyLong_CAST
      Src: /src/cpython/Objects/longobject.c:5544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - shiftby
    argTypes:
    - PyObject*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5545
      start: 5541
    functionDepth: 7
    functionLinenumber: 5541
    functionLinenumberEnd: 5545
    functionName: _PyLong_Lshift
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    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:5562,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: 5561
        line_start: 5561
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5563
      start: 5552
    functionDepth: 0
    functionLinenumber: 5552
    functionLinenumberEnd: 5563
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5584,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5585,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5593,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5595,1
    - Dst: v_complement
      Src: /src/cpython/Objects/longobject.c:5598,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:5604,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5606,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5608,1
    - Dst: v_complement
      Src: /src/cpython/Objects/longobject.c:5611,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/longobject.c:5637,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5641,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5642,1
    - Dst: get_small_int
      Src: /src/cpython/Objects/longobject.c:5643,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5648,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5650,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5651,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/longobject.c:5670,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:5678,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:5683,1
    - Dst: v_complement
      Src: /src/cpython/Objects/longobject.c:5685,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5688,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5689,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:5690,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5690,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 87
    argCount: 3
    argNames:
    - a
    - op
    - b
    argTypes:
    - PyLongObject*
    - char
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5691
      start: 5567
    functionDepth: 3
    functionLinenumber: 5567
    functionLinenumberEnd: 5691
    functionName: long_bitwise
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - maybe_small_long
    - long_normalize
    - get_small_int
    - _PyLong_IsNegative
    - Py_UNREACHABLE
    - _PyLong_DigitCount
    - memcpy
    - Py_XDECREF
    - _PyLong_FlipSign
    - v_complement
    - long_alloc
    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:5696,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5699,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5699,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5700,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5700,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5700,1
    - Dst: long_bitwise
      Src: /src/cpython/Objects/longobject.c:5702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5703
      start: 5693
    functionDepth: 5
    functionLinenumber: 5693
    functionLinenumberEnd: 5703
    functionName: long_and
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - medium_value
    - CHECK_BINOP
    - long_bitwise
    - _PyLong_FromSTwoDigits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_and(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:5708,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5711,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5711,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5712,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5712,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5712,1
    - Dst: long_bitwise
      Src: /src/cpython/Objects/longobject.c:5714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5715
      start: 5705
    functionDepth: 5
    functionLinenumber: 5705
    functionLinenumberEnd: 5715
    functionName: long_xor
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - medium_value
    - CHECK_BINOP
    - long_bitwise
    - _PyLong_FromSTwoDigits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_xor(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/cpython/Objects/longobject.c:5720,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5723,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:5723,1
    - Dst: _PyLong_FromSTwoDigits
      Src: /src/cpython/Objects/longobject.c:5724,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5724,1
    - Dst: medium_value
      Src: /src/cpython/Objects/longobject.c:5724,1
    - Dst: long_bitwise
      Src: /src/cpython/Objects/longobject.c:5726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5727
      start: 5717
    functionDepth: 5
    functionLinenumber: 5717
    functionLinenumberEnd: 5727
    functionName: long_or
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsCompact
    - medium_value
    - CHECK_BINOP
    - long_bitwise
    - _PyLong_FromSTwoDigits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_or(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/longobject.c:5732,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5733,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5738
      start: 5729
    functionDepth: 4
    functionLinenumber: 5729
    functionLinenumberEnd: 5738
    functionName: long_long
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 4
    functionsReached:
    - PyLong_CheckExact
    - Py_NewRef
    - _PyLong_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_long(PyObject *v)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5751,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5751,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5752,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5753,1
    - Dst: long_abs
      Src: /src/cpython/Objects/longobject.c:5758,1
    - Dst: long_abs
      Src: /src/cpython/Objects/longobject.c:5761,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5763,1
    - Dst: long_compare
      Src: /src/cpython/Objects/longobject.c:5766,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5774,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5775,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5777,1
    - Dst: bit_length_digit
      Src: /src/cpython/Objects/longobject.c:5778,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5781,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5782,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:5785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5790,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5791,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5792,1
    - Dst: l_mod
      Src: /src/cpython/Objects/longobject.c:5820,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:5822,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:5825,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5838,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:5839,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/longobject.c:5841,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5842,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5846,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5852,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:5853,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Objects/longobject.c:5855,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:5857,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5858,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:5859,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:5863,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5893,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5894,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5896,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/longobject.c:5897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5899,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5900,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:5901,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5903,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5904,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5907,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:5907,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:5908,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:5908,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/longobject.c:5913,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Objects/longobject.c:5914,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Objects/longobject.c:5916,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Objects/longobject.c:5917,1
    - Dst: Py_ABS
      Src: /src/cpython/Objects/longobject.c:5921,1
    - Dst: Py_ABS
      Src: /src/cpython/Objects/longobject.c:5922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5924,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5933,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Objects/longobject.c:5935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:5942,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5943,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:5944,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 168
    argCount: 2
    argNames:
    - aarg
    - barg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(a) > 0)
      pos:
        line_end: 5906
        line_start: 5906
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_b <= size_a)
      pos:
        line_end: 5781
        line_start: 5781
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_a >= 0)
      pos:
        line_end: 5837
        line_start: 5837
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_a >= 0)
      pos:
        line_end: 5857
        line_start: 5857
        source_file: /src/cpython/Objects/longobject.c
    - condition: (Py_REFCNT(b) > 0)
      pos:
        line_end: 5907
        line_start: 5907
        source_file: /src/cpython/Objects/longobject.c
    - condition: (d_carry == 0)
      pos:
        line_end: 5893
        line_start: 5893
        source_file: /src/cpython/Objects/longobject.c
    - condition: (size_a >= 0)
      pos:
        line_end: 5851
        line_start: 5851
        source_file: /src/cpython/Objects/longobject.c
    - condition: (c_carry == 0)
      pos:
        line_end: 5892
        line_start: 5892
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5946
      start: 5740
    functionDepth: 8
    functionLinenumber: 5740
    functionLinenumberEnd: 5946
    functionName: _PyLong_GCD
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - bit_length_digit
    - PyLong_FromLong
    - assert
    - Py_ABS
    - long_alloc
    - l_mod
    - PyLong_FromLongLong
    - PyLong_AsLongLong
    - _PyLong_DigitCount
    - PyLong_AsLong
    - Py_XDECREF
    - _PyObject_IsUniquelyReferenced
    - long_normalize
    - Py_INCREF
    - Py_REFCNT
    - Py_DECREF
    - long_compare
    - Py_NewRef
    - long_abs
    - Py_SETREF
    - _PyLong_SetSignAndDigitCount
    - _PyLong_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_GCD(PyObject *aarg, PyObject *barg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Objects/longobject.c:5952,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:5953,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Objects/longobject.c:5955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5956
      start: 5948
    functionDepth: 5
    functionLinenumber: 5948
    functionLinenumberEnd: 5956
    functionName: long_float
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsDouble
    - PyFloat_FromDouble
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_float(PyObject *v)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: long_subtype_new
      Src: /src/cpython/Objects/longobject.c:5976,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5979,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:5983,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Objects/longobject.c:5987,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Objects/longobject.c:5989,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:5990,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:5993,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/longobject.c:5998,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/cpython/Objects/longobject.c:5999,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/longobject.c:6000,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/longobject.c:6000,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Objects/longobject.c:6002,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Objects/longobject.c:6003,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/longobject.c:6005,1
    - Dst: _PyLong_FromBytes
      Src: /src/cpython/Objects/longobject.c:6006,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/longobject.c:6006,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6009,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - type
    - x
    - obase
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6013
      start: 5969
    functionDepth: 9
    functionLinenumber: 5969
    functionLinenumberEnd: 6013
    functionName: long_new_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_AS_STRING
    - PyBytes_Check
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - PyUnicode_Check
    - Py_SIZE
    - PyNumber_Long
    - _PyLong_FromBytes
    - long_subtype_new
    - PyErr_Occurred
    - PyLong_FromUnicodeObject
    - PyByteArray_Check
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6027,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Objects/longobject.c:6027,1
    - Dst: long_new_impl
      Src: /src/cpython/Objects/longobject.c:6028,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6031,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6031,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6032,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/longobject.c:6036,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6038,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6041,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6041,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Objects/longobject.c:6042,1
    - Dst: _PyLong_CompactSign
      Src: /src/cpython/Objects/longobject.c:6043,1
    - Dst: _PyLong_NonCompactSign
      Src: /src/cpython/Objects/longobject.c:6046,1
    - Dst: _PyLong_InitTag
      Src: /src/cpython/Objects/longobject.c:6048,1
    - Dst: _PyLong_SetSignAndDigitCount
      Src: /src/cpython/Objects/longobject.c:6049,1
    - Dst: memcpy
      Src: /src/cpython/Objects/longobject.c:6050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - type
    - x
    - obase
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyLong_Type))
      pos:
        line_end: 6026
        line_start: 6026
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(tmp))
      pos:
        line_end: 6030
        line_start: 6030
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(newobj))
      pos:
        line_end: 6040
        line_start: 6040
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6054
      start: 6020
    functionDepth: 10
    functionLinenumber: 6020
    functionLinenumberEnd: 6054
    functionName: long_subtype_new
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyType_IsSubtype
    - long_new_impl
    - _PyLong_NonCompactSign
    - _PyLong_IsCompact
    - _PyLong_CompactSign
    - PyLong_Check
    - _PyLong_DigitCount
    - _PyLong_SetSignAndDigitCount
    - memcpy
    - _PyLong_InitTag
    - assert
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    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:6064,1
    - Dst: _PyLong_Copy
      Src: /src/cpython/Objects/longobject.c:6064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6065
      start: 6060
    functionDepth: 4
    functionLinenumber: 6060
    functionLinenumberEnd: 6065
    functionName: int___getnewargs___impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_Copy
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___getnewargs___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6071
      start: 6067
    functionDepth: 0
    functionLinenumber: 6067
    functionLinenumberEnd: 6071
    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:6076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6077
      start: 6073
    functionDepth: 0
    functionLinenumber: 6073
    functionLinenumberEnd: 6077
    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:6095,1
    - Dst: _PyLong_FormatAdvancedWriter
      Src: /src/cpython/Objects/longobject.c:6096,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/longobject.c:6099,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/longobject.c:6101,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/longobject.c:6104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6105
      start: 6088
    functionDepth: 6
    functionLinenumber: 6088
    functionLinenumberEnd: 6105
    functionName: int___format___impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Dealloc
    - _PyLong_FormatAdvancedWriter
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6135,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6135,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6136,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6142,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6142,1
    - Dst: long_divrem
      Src: /src/cpython/Objects/longobject.c:6144,1
    - Dst: long_lshift_int64
      Src: /src/cpython/Objects/longobject.c:6149,1
    - Dst: long_neg
      Src: /src/cpython/Objects/longobject.c:6153,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6154,1
    - Dst: long_compare
      Src: /src/cpython/Objects/longobject.c:6158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6159,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6162,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:6164,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:6166,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:6168,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6169,1
    - Dst: long_add
      Src: /src/cpython/Objects/longobject.c:6174,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:6176,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6177,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/longobject.c:6182,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:6185,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/longobject.c:6186,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6112
    functionDepth: 7
    functionLinenumber: 6112
    functionLinenumberEnd: 6188
    functionName: _PyLong_DivmodNear
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - long_lshift_int64
    - _PyLong_GetOne
    - PyErr_SetString
    - Py_SETREF
    - _PyLong_IsNegative
    - long_divrem
    - long_add
    - PyLong_Check
    - long_neg
    - _PyTuple_FromPairSteal
    - Py_XDECREF
    - Py_DECREF
    - long_compare
    - long_sub
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_DivmodNear(PyObject *a, PyObject *b)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:6220,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/longobject.c:6222,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6228,1
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:6229,1
    - Dst: long_neg
      Src: /src/cpython/Objects/longobject.c:6233,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6234,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6240,1
    - Dst: long_pow
      Src: /src/cpython/Objects/longobject.c:6244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6245,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6246,1
    - Dst: _PyLong_DivmodNear
      Src: /src/cpython/Objects/longobject.c:6250,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6251,1
    - Dst: long_sub
      Src: /src/cpython/Objects/longobject.c:6255,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/longobject.c:6256,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - o_ndigits
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6260
      start: 6201
    functionDepth: 10
    functionLinenumber: 6201
    functionLinenumberEnd: 6260
    functionName: int___round___impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    - PyLong_FromLong
    - PyTuple_GET_ITEM
    - Py_SETREF
    - _PyLong_IsNegative
    - long_neg
    - long_pow
    - _PyLong_DivmodNear
    - _PyNumber_Index
    - Py_DECREF
    - long_sub
    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:6274,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6274,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/longobject.c:6275,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/longobject.c:6275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6276
      start: 6268
    functionDepth: 1
    functionLinenumber: 6268
    functionLinenumberEnd: 6276
    functionName: int___sizeof___impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_DigitCount
    - Py_TYPE
    - Py_MAX
    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:6293,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6294,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6295,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:6295,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Objects/longobject.c:6296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (nbits >= 0)
      pos:
        line_end: 6293
        line_start: 6293
        source_file: /src/cpython/Objects/longobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 6294
        line_start: 6294
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6297
      start: 6289
    functionDepth: 3
    functionLinenumber: 6289
    functionLinenumberEnd: 6297
    functionName: int_bit_length_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyLong_FromInt64
    - PyErr_Occurred
    - _PyLong_NumBits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_bit_length_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_popcount32
      Src: /src/cpython/Objects/longobject.c:6305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6306
      start: 6299
    functionDepth: 1
    functionLinenumber: 6299
    functionLinenumberEnd: 6306
    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:6326,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6327,1
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6327,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6330,1
    - Dst: popcount_digit
      Src: /src/cpython/Objects/longobject.c:6334,1
    - Dst: PyLong_FromInt64
      Src: /src/cpython/Objects/longobject.c:6337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 6325
        line_start: 6325
        source_file: /src/cpython/Objects/longobject.c
    - condition: (PyLong_Check(self))
      pos:
        line_end: 6326
        line_start: 6326
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6338
      start: 6322
    functionDepth: 2
    functionLinenumber: 6322
    functionLinenumberEnd: 6338
    functionName: int_bit_count_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromInt64
    - PyLong_Check
    - _PyLong_DigitCount
    - assert
    - popcount_digit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_bit_count_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: long_long
      Src: /src/cpython/Objects/longobject.c:6359,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/longobject.c:6363,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/longobject.c:6363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6364
      start: 6355
    functionDepth: 5
    functionLinenumber: 6355
    functionLinenumberEnd: 6364
    functionName: int_as_integer_ratio_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromPairSteal
    - long_long
    - _PyLong_GetOne
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_as_integer_ratio_impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/longobject.c:6397,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/longobject.c:6397,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/longobject.c:6399,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/longobject.c:6399,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6402,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Objects/longobject.c:6407,1
    - Dst: _PyLong_AsByteArray
      Src: /src/cpython/Objects/longobject.c:6412,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Objects/longobject.c:6413,1
    - Dst: PyBytesWriter_Discard
      Src: /src/cpython/Objects/longobject.c:6415,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Objects/longobject.c:6419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - self
    - length
    - byteorder
    - is_signed
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6420
      start: 6389
    functionDepth: 8
    functionLinenumber: 6389
    functionLinenumberEnd: 6420
    functionName: int_to_bytes_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_Equal
    - PyErr_SetString
    - PyBytesWriter_Create
    - PyBytesWriter_Discard
    - PyBytesWriter_Finish
    - PyBytesWriter_GetData
    - _PyLong_AsByteArray
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nint_to_bytes_impl(PyObject *self, Py_ssize_t length, PyObject
      *byteorder,\n                  int is_signed)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/longobject.c:6456,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/longobject.c:6456,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Objects/longobject.c:6458,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/longobject.c:6458,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/longobject.c:6461,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Objects/longobject.c:6467,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Objects/longobject.c:6468,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/longobject.c:6469,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/longobject.c:6469,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Objects/longobject.c:6473,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/longobject.c:6475,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Objects/longobject.c:6478,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/longobject.c:6480,1
    - Dst: PyObject_Bytes
      Src: /src/cpython/Objects/longobject.c:6484,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Objects/longobject.c:6488,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/longobject.c:6489,1
    - Dst: Py_SIZE
      Src: /src/cpython/Objects/longobject.c:6489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6491,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/longobject.c:6495,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/longobject.c:6495,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - type
    - bytes_obj
    - byteorder
    - is_signed
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6499
      start: 6446
    functionDepth: 4
    functionLinenumber: 6446
    functionLinenumberEnd: 6499
    functionName: int_from_bytes_impl
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_Equal
    - PyErr_SetString
    - Py_SETREF
    - Py_SIZE
    - PyBuffer_Release
    - _PyLong_FromByteArray
    - PyBytes_CheckExact
    - PyObject_Bytes
    - PyBytes_AS_STRING
    - Py_DECREF
    - PyObject_CallOneArg
    - PyObject_GetBuffer
    - PyObject_CheckBuffer
    - _Py_ID
    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:6504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6505
      start: 6501
    functionDepth: 5
    functionLinenumber: 6501
    functionLinenumberEnd: 6505
    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:6510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6511
      start: 6507
    functionDepth: 5
    functionLinenumber: 6507
    functionLinenumberEnd: 6511
    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: 6525
      start: 6520
    functionDepth: 0
    functionLinenumber: 6520
    functionLinenumberEnd: 6525
    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:6531,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/longobject.c:6533,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/cpython/Objects/longobject.c:6534,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Objects/longobject.c:6538,1
    - Dst: PyNumber_Long
      Src: /src/cpython/Objects/longobject.c:6540,1
    - Dst: long_new_impl
      Src: /src/cpython/Objects/longobject.c:6542,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Objects/longobject.c:6542,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:6544,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: 6548
      start: 6527
    functionDepth: 10
    functionLinenumber: 6527
    functionLinenumberEnd: 6548
    functionName: long_vectorcall
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_new_impl
    - _PyObject_MakeTpCall
    - PyThreadState_GET
    - PyNumber_Long
    - _PyLong_GetZero
    - PyErr_Format
    - PyVectorcall_NARGS
    - _PyType_CAST
    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:6720,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6723,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6724,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6725,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6726,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6734,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6735,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Objects/longobject.c:6736,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Objects/longobject.c:6737,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:6738,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/longobject.c:6739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6743
      start: 6715
    functionDepth: 2
    functionLinenumber: 6715
    functionLinenumberEnd: 6743
    functionName: PyLong_GetInfo
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_New
    - PyStructSequence_SET_ITEM
    - Py_CLEAR
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_GetInfo(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_InitBuiltin
      Src: /src/cpython/Objects/longobject.c:6752,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Objects/longobject.c:6755,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Objects/longobject.c:6758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6759
      start: 6748
    functionDepth: 1
    functionLinenumber: 6748
    functionLinenumberEnd: 6759
    functionName: _PyLong_InitTypes
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyStructSequence_InitBuiltin
    - _PyStatus_OK
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyLong_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Objects/longobject.c:6765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6766
      start: 6762
    functionDepth: 3
    functionLinenumber: 6762
    functionLinenumberEnd: 6766
    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:6772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6773
      start: 6770
    functionDepth: 1
    functionLinenumber: 6770
    functionLinenumberEnd: 6773
    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:6779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6780
      start: 6777
    functionDepth: 1
    functionLinenumber: 6777
    functionLinenumberEnd: 6780
    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: 6786
      start: 6783
    functionDepth: 0
    functionLinenumber: 6783
    functionLinenumberEnd: 6786
    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: 6791
      start: 6788
    functionDepth: 0
    functionLinenumber: 6788
    functionLinenumberEnd: 6791
    functionName: PyLong_FromUInt32
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 5
    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: 6796
      start: 6793
    functionDepth: 0
    functionLinenumber: 6793
    functionLinenumberEnd: 6796
    functionName: PyLong_FromInt64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 18
    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: 6801
      start: 6798
    functionDepth: 0
    functionLinenumber: 6798
    functionLinenumberEnd: 6801
    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: 6818
      start: 6803
    functionDepth: 0
    functionLinenumber: 6803
    functionLinenumberEnd: 6818
    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:6821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6822
      start: 6819
    functionDepth: 1
    functionLinenumber: 6819
    functionLinenumberEnd: 6822
    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:6826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6827
      start: 6824
    functionDepth: 1
    functionLinenumber: 6824
    functionLinenumberEnd: 6827
    functionName: PyLong_AsInt64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 11
    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: 6846
      start: 6829
    functionDepth: 0
    functionLinenumber: 6829
    functionLinenumberEnd: 6846
    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:6849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6850
      start: 6847
    functionDepth: 1
    functionLinenumber: 6847
    functionLinenumberEnd: 6850
    functionName: PyLong_AsUInt32
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    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:6854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - value
    argTypes:
    - PyObject*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6855
      start: 6852
    functionDepth: 1
    functionLinenumber: 6852
    functionLinenumberEnd: 6855
    functionName: PyLong_AsUInt64
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    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: 6870
      start: 6866
    functionDepth: 0
    functionLinenumber: 6866
    functionLinenumberEnd: 6870
    functionName: PyLong_GetNativeLayout
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: PyLongLayout
    signature: 'PyLongLayout *

      PyLong_GetNativeLayout(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Objects/longobject.c:6876,1
    - Dst: memset
      Src: /src/cpython/Objects/longobject.c:6877,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:6878,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Objects/longobject.c:6885,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/cpython/Objects/longobject.c:6888,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Objects/longobject.c:6890,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6892,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/longobject.c:6892,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Objects/longobject.c:6904,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6905,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/longobject.c:6910,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: 6891
        line_start: 6891
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6913
      start: 6873
    functionDepth: 3
    functionLinenumber: 6873
    functionLinenumberEnd: 6913
    functionName: PyLong_Export
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - PyLong_AsLongAndOverflow
    - assert
    - _PyLong_IsNegative
    - PyLong_Check
    - _PyLong_DigitCount
    - memset
    - Py_BUILD_ASSERT
    - PyErr_Format
    - PyLong_AsLongLongAndOverflow
    - PyErr_Occurred
    - Py_NewRef
    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:6922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - export_long
    argTypes:
    - PyLongExport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6924
      start: 6916
    functionDepth: 0
    functionLinenumber: 6916
    functionLinenumberEnd: 6924
    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:6933,1
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6936,1
    - Dst: long_alloc
      Src: /src/cpython/Objects/longobject.c:6938,1
    - Dst: _PyLong_FlipSign
      Src: /src/cpython/Objects/longobject.c:6943,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: 6935
        line_start: 6935
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6952
      start: 6929
    functionDepth: 3
    functionLinenumber: 6929
    functionLinenumberEnd: 6952
    functionName: PyLongWriter_Create
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - _PyLong_FlipSign
    - PyErr_SetString
    - 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:6963,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:6963,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyLongWriter*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 6962
        line_start: 6962
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 6965
      start: 6955
    functionDepth: 0
    functionLinenumber: 6955
    functionLinenumberEnd: 6965
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/longobject.c:6972,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/longobject.c:6972,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Objects/longobject.c:6979,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/longobject.c:6987,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/longobject.c:6988,1
    - Dst: maybe_small_long
      Src: /src/cpython/Objects/longobject.c:6997,1
    - Dst: long_normalize
      Src: /src/cpython/Objects/longobject.c:6997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - writer
    argTypes:
    - PyLongWriter*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 6971
        line_start: 6971
        source_file: /src/cpython/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 7000
      start: 6968
    functionDepth: 3
    functionLinenumber: 6968
    functionLinenumberEnd: 7000
    functionName: PyLongWriter_Finish
    functionSourceFile: /src/cpython/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - maybe_small_long
    - long_normalize
    - Py_REFCNT
    - _PyLong_DigitCount
    - PyErr_Format
    - assert
    - Py_DECREF
    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: 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: _PyNamespace_Check
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyNamespace_Check(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/namespaceobject.c:32,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Objects/namespaceobject.c:33,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/namespaceobject.c:36,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:38,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: 31
        line_start: 31
        source_file: /src/cpython/Objects/namespaceobject.c
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 11
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: namespace_new
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - PyTypeObject*::tp_alloc
    - 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:49,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/namespaceobject.c:51,1
    - Dst: _PyType_Name
      Src: /src/cpython/Objects/namespaceobject.c:51,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:51,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Objects/namespaceobject.c:56,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/namespaceobject.c:57,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/namespaceobject.c:60,1
    - Dst: PyArg_ValidateKeywordArguments
      Src: /src/cpython/Objects/namespaceobject.c:65,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:66,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:67,1
    - Dst: PyArg_ValidateKeywordArguments
      Src: /src/cpython/Objects/namespaceobject.c:75,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - op
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 79
    functionName: namespace_init
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - Py_DECREF
    - _PyNamespace_CAST
    - PyArg_ValidateKeywordArguments
    - _PyType_Name
    - PyDict_CheckExact
    - PyObject_CallOneArg
    - Py_NewRef
    - Py_TYPE
    - PyArg_UnpackTuple
    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:85,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/namespaceobject.c:86,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/namespaceobject.c:87,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: namespace_dealloc
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_CLEAR
    - Py_TYPE
    - _PyNamespace_CAST
    linkageType: ''
    returnType: void
    signature: void namespace_dealloc(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:101,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:102,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Objects/namespaceobject.c:104,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/namespaceobject.c:106,1
    - Dst: PyList_New
      Src: /src/cpython/Objects/namespaceobject.c:109,1
    - Dst: assert
      Src: /src/cpython/Objects/namespaceobject.c:113,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/namespaceobject.c:114,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/namespaceobject.c:116,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Objects/namespaceobject.c:120,1
    - Dst: PyIter_Next
      Src: /src/cpython/Objects/namespaceobject.c:124,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/namespaceobject.c:125,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/namespaceobject.c:125,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/namespaceobject.c:128,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/namespaceobject.c:130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:131,1
    - Dst: PyList_Append
      Src: /src/cpython/Objects/namespaceobject.c:136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:145,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/namespaceobject.c:150,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/namespaceobject.c:154,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Objects/namespaceobject.c:158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:159,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/namespaceobject.c:163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:164,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_XDECREF
      Src: /src/cpython/Objects/namespaceobject.c:170,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Objects/namespaceobject.c:171,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 1
    argNames:
    - ns
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (((_PyNamespaceObject *)ns)->ns_dict != NULL)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/cpython/Objects/namespaceobject.c
    constantsTouched: []
    func_position:
      end: 174
      start: 92
    functionDepth: 10
    functionLinenumber: 92
    functionLinenumberEnd: 174
    functionName: namespace_repr
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Join
    - PyObject_GetIter
    - PyErr_Occurred
    - assert
    - PyIter_Next
    - Py_TYPE
    - PyUnicode_FromString
    - PyUnicode_Check
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_IS_TYPE
    - Py_ReprEnter
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_NewRef
    - PyDict_Keys
    - Py_ReprLeave
    - PyUnicode_FromFormat
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_repr(PyObject *ns)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyNamespace_CAST
      Src: /src/cpython/Objects/namespaceobject.c:180,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/namespaceobject.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: namespace_traverse
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyNamespace_CAST
    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:189,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/namespaceobject.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: namespace_clear
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyNamespace_CAST
    linkageType: ''
    returnType: int
    signature: int namespace_clear(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/namespaceobject.c:200,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Objects/namespaceobject.c:201,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Objects/namespaceobject.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: namespace_richcompare
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyObject_RichCompare
    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:216,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/namespaceobject.c:221,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: namespace_reduce
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_Pack
    - PyTuple_New
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Objects/namespaceobject.c:230,1
    - Dst: PyObject_CallNoArgs
      Src: /src/cpython/Objects/namespaceobject.c:234,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/namespaceobject.c:234,1
    - Dst: _PyNamespace_Check
      Src: /src/cpython/Objects/namespaceobject.c:238,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/namespaceobject.c:239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:242,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:249,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 259
    functionName: namespace_replace
    functionSourceFile: /src/cpython/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - _PyArg_NoPositional
    - _PyNamespace_Check
    - PyErr_Format
    - PyObject_CallNoArgs
    - Py_DECREF
    - 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:324,1
    - Dst: PyDict_Update
      Src: /src/cpython/Objects/namespaceobject.c:330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/namespaceobject.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - kwds
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 321
    functionDepth: 12
    functionLinenumber: 321
    functionLinenumberEnd: 336
    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:23,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Objects/funcobject.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - event
    argTypes:
    - PyFunction_WatchEvent
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: func_event_name
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - PY_FOREACH_FUNC_EVENT
    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: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: CASE
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:36,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:40,1
    - Dst: cb
      Src: /src/cpython/Objects/funcobject.c:41,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/funcobject.c:42,1
    - Dst: func_event_name
      Src: /src/cpython/Objects/funcobject.c:44,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: 35
        line_start: 35
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (cb != NULL)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: notify_func_watchers
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - cb
    - func_event_name
    - PyErr_FormatUnraisable
    - assert
    linkageType: ''
    returnType: void
    signature: "void notify_func_watchers(PyInterpreterState *interp, PyFunction_WatchEvent
      event,\n                     PyFunctionObject *func, PyObject *new_value)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:56,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/funcobject.c:56,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:57,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:58,1
    - Dst: notify_func_watchers
      Src: /src/cpython/Objects/funcobject.c:60,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Objects/funcobject.c:72,1
    - Dst: RARE_EVENT_INTERP_INC
      Src: /src/cpython/Objects/funcobject.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - event
    - func
    - new_value
    argTypes:
    - PyFunction_WatchEvent
    - PyFunctionObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(func) > 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (interp->_initialized)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 79
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 79
    functionName: handle_func_event
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - notify_func_watchers
    - _Py_Executors_InvalidateDependency
    - _PyInterpreterState_GET
    - Py_REFCNT
    - assert
    - RARE_EVENT_INTERP_INC
    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:84,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:85,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - callback
    argTypes:
    - PyFunction_WatchCallback
    assertStmts:
    - condition: (interp->_initialized)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: PyFunction_AddWatcher
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - assert
    - PyErr_SetString
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyFunction_AddWatcher(PyFunction_WatchCallback callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:100,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:102,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - watcher_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: PyFunction_ClearWatcher
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - PyErr_Format
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyFunction_ClearWatcher(int watcher_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/funcobject.c:119,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:119,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/funcobject.c:123,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:125,1
    - Dst: _Py_INCREF_DICT
      Src: /src/cpython/Objects/funcobject.c:128,1
    - Dst: _Py_INCREF_BUILTINS
      Src: /src/cpython/Objects/funcobject.c:130,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:132,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:133,1
    - Dst: _Py_INCREF_CODE
      Src: /src/cpython/Objects/funcobject.c:134,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:136,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:137,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:138,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:139,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/funcobject.c:151,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - constr
    argTypes:
    - PyFrameConstructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 115
    functionDepth: 8
    functionLinenumber: 115
    functionLinenumberEnd: 154
    functionName: _PyFunction_FromConstructor
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - _Py_INCREF_DICT
    - _PyObject_GC_TRACK
    - handle_func_event
    - _Py_INCREF_CODE
    - Py_XDECREF
    - PyDict_GetItemRef
    - _Py_INCREF_BUILTINS
    - Py_XNewRef
    - Py_NewRef
    - _Py_ID
    linkageType: ''
    returnType: PyFunctionObject
    signature: 'PyFunctionObject *

      _PyFunction_FromConstructor(PyFrameConstructor *constr)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:159,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:160,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Objects/funcobject.c:160,1
    - Dst: _Py_INCREF_DICT
      Src: /src/cpython/Objects/funcobject.c:161,1
    - Dst: _Py_INCREF_CODE
      Src: /src/cpython/Objects/funcobject.c:164,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:166,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:167,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:172,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:173,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:176,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:176,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:179,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Objects/funcobject.c:179,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Objects/funcobject.c:180,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/funcobject.c:181,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:188,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/funcobject.c:193,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:193,1
    - Dst: _PyDict_LoadBuiltinsFromGlobals
      Src: /src/cpython/Objects/funcobject.c:197,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/funcobject.c:202,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/funcobject.c:234,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/funcobject.c:236,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:242,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:245,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:246,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:247,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 68
    argCount: 3
    argNames:
    - code
    - globals
    - qualname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (globals != NULL)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyAnyDict_Check(globals))
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (code_obj->co_name != NULL)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (qualname != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Size(consts) >= 1)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Check(consts))
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 249
      start: 156
    functionDepth: 8
    functionLinenumber: 156
    functionLinenumberEnd: 249
    functionName: PyFunction_NewWithQualName
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetDeferredRefcount
    - _PyObject_GC_TRACK
    - PyTuple_Check
    - assert
    - handle_func_event
    - PyObject_GC_New
    - _PyDict_LoadBuiltinsFromGlobals
    - PyUnicode_Check
    - PyTuple_GetItem
    - Py_XDECREF
    - PyAnyDict_Check
    - Py_INCREF
    - _Py_INCREF_DICT
    - _Py_INCREF_CODE
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_NewRef
    - PyTuple_Size
    - _Py_ID
    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: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    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:321,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:322,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:327,1
    - Dst: get_cache_item
      Src: /src/cpython/Objects/funcobject.c:328,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: 320
        line_start: 320
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (version >= FUNC_VERSION_FIRST_VALID)
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: _PyFunction_SetVersion
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GET
    - get_cache_item
    - assert
    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:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - func
    argTypes:
    - PyInterpreterState*
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 350
    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:360,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Objects/funcobject.c:361,1
    - Dst: func_clear_version
      Src: /src/cpython/Objects/funcobject.c:362,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Objects/funcobject.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 364
    functionName: _PyFunction_ClearVersion
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_StopTheWorld
    - _PyEval_StartTheWorld
    - func_clear_version
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void _PyFunction_ClearVersion(PyFunctionObject *func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:370,1
    - Dst: get_cache_item
      Src: /src/cpython/Objects/funcobject.c:371,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:373,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/funcobject.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts:
    - condition: (PyCode_Check(slot->code))
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: _PyFunction_ClearCodeByVersion
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - assert
    - PyCode_Check
    - get_cache_item
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void _PyFunction_ClearCodeByVersion(uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 387
    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:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - globals
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 9
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: PyFunction_New
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    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:398,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    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:408,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 413
    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:418,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 423
    functionName: PyFunction_GetModule
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 4
    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:428,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 433
    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:438,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:439,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:444,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:445,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:448,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:451,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:453,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - op
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 456
    functionName: PyFunction_SetDefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - _PyFunction_ClearVersion
    - Py_XSETREF
    - PyErr_SetString
    - PyErr_BadInternalCall
    - PyTuple_Check
    - handle_func_event
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:461,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - vectorcall
    argTypes:
    - PyFunctionObject*
    - vectorcallfunc
    assertStmts:
    - condition: (func != NULL)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 464
    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:469,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 474
    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:479,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:480,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:485,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:486,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:489,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:493,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:495,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - op
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 476
    functionDepth: 4
    functionLinenumber: 476
    functionLinenumberEnd: 498
    functionName: PyFunction_SetKwDefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - _PyFunction_ClearVersion
    - Py_XSETREF
    - PyErr_SetString
    - PyErr_BadInternalCall
    - PyDict_Check
    - handle_func_event
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetKwDefaults(PyObject *op, PyObject *defaults)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:503,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 508
    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:513,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:514,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:519,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:520,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:523,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:525,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:528,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 531
    functionName: PyFunction_SetClosure
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - Py_XSETREF
    - PyErr_BadInternalCall
    - PyErr_Format
    - PyTuple_Check
    - Py_TYPE
    - _PyFunction_ClearVersion
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetClosure(PyObject *op, PyObject *closure)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/funcobject.c:537,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/funcobject.c:540,1
    - Dst: _PyObject_CallOneArg
      Src: /src/cpython/Objects/funcobject.c:541,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:545,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:549,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:552,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Objects/funcobject.c:555,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/funcobject.c:557,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:562,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:562,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:564,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/funcobject.c:565,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/funcobject.c:566,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/funcobject.c:567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:570,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/funcobject.c:574,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:576,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:576,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyFunctionObject*
    assertStmts:
    - condition: (PyTuple_GET_SIZE(ann_tuple) % 2 == 0)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyDict_Check(op->func_annotations))
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 578
      start: 533
    functionDepth: 11
    functionLinenumber: 533
    functionLinenumberEnd: 578
    functionName: func_get_annotation_dict
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallOneArg
    - PyTuple_GET_ITEM
    - PyCallable_Check
    - _PyLong_GetOne
    - Py_XSETREF
    - Py_SETREF
    - PyDict_SetItem
    - PyDict_Check
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_annotation_dict(PyFunctionObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:583,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:584,1
    - Dst: func_get_annotation_dict
      Src: /src/cpython/Objects/funcobject.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 12
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: PyFunction_GetAnnotations
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    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:593,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/funcobject.c:594,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:599,1
    - Dst: Py_INCREF
      Src: /src/cpython/Objects/funcobject.c:600,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:603,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:608,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - op
    - annotations
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 611
    functionName: PyFunction_SetAnnotations
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - Py_XSETREF
    - PyErr_SetString
    - PyErr_BadInternalCall
    - Py_CLEAR
    - PyDict_Check
    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: 616
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 616
    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:636,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:637,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 642
    functionName: func_get_code
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_NewRef
    - _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:647,1
    - Dst: PyCode_Check
      Src: /src/cpython/Objects/funcobject.c:651,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:652,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:657,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:664,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:666,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Objects/funcobject.c:674,1
    - Dst: PyErr_Warn
      Src: /src/cpython/Objects/funcobject.c:679,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:687,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:688,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:689,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:689,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 691
    functionName: func_set_code
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyFunction_GET_CODE
    - _PyFunction_ClearVersion
    - PySys_Audit
    - Py_XSETREF
    - PyErr_SetString
    - _PyFunction_CAST
    - PyErr_Format
    - PyErr_Warn
    - PyTuple_GET_SIZE
    - Py_NewRef
    - handle_func_event
    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:696,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 698
    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:703,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/funcobject.c:706,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:707,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:711,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 713
    functionName: func_set_name
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyErr_SetString
    - _PyFunction_CAST
    - PyUnicode_Check
    - Py_NewRef
    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:718,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 720
    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:725,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/funcobject.c:728,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:729,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:733,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:734,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 722
    functionDepth: 4
    functionLinenumber: 722
    functionLinenumberEnd: 736
    functionName: func_set_qualname
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyErr_SetString
    - _PyFunction_CAST
    - PyUnicode_Check
    - Py_NewRef
    - handle_func_event
    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:741,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:742,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 749
    functionName: func_get_defaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_NewRef
    - _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:756,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:759,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:760,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:765,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:769,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:774,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:775,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:776,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 778
    functionName: func_set_defaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyFunction_ClearVersion
    - PySys_Audit
    - Py_XSETREF
    - PyErr_SetString
    - _PyFunction_CAST
    - PyTuple_Check
    - Py_XNewRef
    - handle_func_event
    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:783,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:784,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 792
    functionName: func_get_kwdefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_NewRef
    - _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:797,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:802,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:803,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:808,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:812,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:817,1
    - Dst: _PyFunction_ClearVersion
      Src: /src/cpython/Objects/funcobject.c:818,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:819,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 794
    functionDepth: 4
    functionLinenumber: 794
    functionLinenumberEnd: 821
    functionName: func_set_kwdefaults
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyFunction_ClearVersion
    - PySys_Audit
    - Py_XSETREF
    - PyErr_SetString
    - _PyFunction_CAST
    - PyDict_Check
    - Py_XNewRef
    - handle_func_event
    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:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 839
    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:852,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/funcobject.c:856,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:857,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/funcobject.c:860,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:861,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:861,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:862,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 870
    functionName: function___annotate___set_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - Py_XSETREF
    - PyErr_SetString
    - Py_IsNone
    - Py_CLEAR
    - Py_XNewRef
    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:886,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/funcobject.c:887,1
    - Dst: func_get_annotation_dict
      Src: /src/cpython/Objects/funcobject.c:891,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:892,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 880
    functionDepth: 12
    functionLinenumber: 880
    functionLinenumberEnd: 893
    functionName: function___annotations___get_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - func_get_annotation_dict
    - Py_XNewRef
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function___annotations___get_impl(PyFunctionObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:910,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:911,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:915,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/funcobject.c:915,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 918
    functionName: function___annotations___set_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyErr_SetString
    - Py_CLEAR
    - PyDict_Check
    - Py_XNewRef
    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:933,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:936,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:936,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyFunctionObject*
    assertStmts:
    - condition: (PyTuple_Check(self->func_typeparams))
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 938
      start: 928
    functionDepth: 3
    functionLinenumber: 928
    functionLinenumberEnd: 938
    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:952,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:953,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:957,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 959
    functionName: function___type_params___set_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyErr_SetString
    - Py_NewRef
    - PyTuple_Check
    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:965,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:965,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:966,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:966,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:968,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:968,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:969,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: 964
        line_start: 964
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Check(type_params))
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 970
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 970
    functionName: _Py_set_function_type_params
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - Py_XSETREF
    - PyTuple_Check
    - assert
    - Py_NewRef
    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:1023,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1024,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:1028,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1029,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:1033,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1035,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1040,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:1045,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1046,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:1052,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1054,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Objects/funcobject.c:1060,1
    - Dst: PyCell_Check
      Src: /src/cpython/Objects/funcobject.c:1061,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1062,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:1064,1
    - Dst: PySys_Audit
      Src: /src/cpython/Objects/funcobject.c:1068,1
    - Dst: PyFunction_New
      Src: /src/cpython/Objects/funcobject.c:1072,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/funcobject.c:1078,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1078,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1081,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1084,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1087,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: 1091
      start: 1014
    functionDepth: 10
    functionLinenumber: 1014
    functionLinenumberEnd: 1091
    functionName: func_new_impl
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PySys_Audit
    - PyErr_SetString
    - Py_SETREF
    - PyUnicode_Check
    - PyFunction_New
    - PyDict_Check
    - PyCell_Check
    - PyTuple_Check
    - PyErr_Format
    - PyTuple_GET_SIZE
    - Py_NewRef
    - 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:1096,1
    - Dst: func_clear_version
      Src: /src/cpython/Objects/funcobject.c:1097,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/funcobject.c:1097,1
    - Dst: _Py_DECREF_DICT
      Src: /src/cpython/Objects/funcobject.c:1101,1
    - Dst: _Py_DECREF_BUILTINS
      Src: /src/cpython/Objects/funcobject.c:1106,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1108,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1109,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1110,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1111,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1112,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1113,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1114,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1115,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1116,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/funcobject.c:1122,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/funcobject.c:1122,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/funcobject.c:1123,1
    - Dst: _Py_STR
      Src: /src/cpython/Objects/funcobject.c:1123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1125
    functionName: func_clear
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - _PyFunction_CAST
    - Py_SETREF
    - _PyInterpreterState_GET
    - Py_CLEAR
    - _Py_DECREF_DICT
    - _Py_DECREF_BUILTINS
    - func_clear_version
    linkageType: ''
    returnType: int
    signature: int func_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:1130,1
    - Dst: _PyObject_ResurrectStart
      Src: /src/cpython/Objects/funcobject.c:1131,1
    - Dst: handle_func_event
      Src: /src/cpython/Objects/funcobject.c:1132,1
    - Dst: _PyObject_ResurrectEnd
      Src: /src/cpython/Objects/funcobject.c:1133,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/funcobject.c:1136,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/funcobject.c:1137,1
    - Dst: func_clear
      Src: /src/cpython/Objects/funcobject.c:1138,1
    - Dst: _Py_DECREF_CODE
      Src: /src/cpython/Objects/funcobject.c:1140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1141,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1142,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Objects/funcobject.c:1143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1127
    functionDepth: 4
    functionLinenumber: 1127
    functionLinenumberEnd: 1144
    functionName: func_dealloc
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - func_clear
    - _PyObject_ResurrectEnd
    - _PyFunction_CAST
    - _PyObject_ResurrectStart
    - _Py_DECREF_CODE
    - PyObject_GC_Del
    - FT_CLEAR_WEAKREFS
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - handle_func_event
    linkageType: ''
    returnType: void
    signature: void func_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:1149,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/funcobject.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1146
    functionDepth: 10
    functionLinenumber: 1146
    functionLinenumberEnd: 1152
    functionName: func_repr
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyFunction_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFunction_CAST
      Src: /src/cpython/Objects/funcobject.c:1157,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1158,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1159,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1160,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1161,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1162,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1163,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1164,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1165,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1166,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1167,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1168,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1169,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1170,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1173
    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:1180,1
    - Dst: PyMethod_New
      Src: /src/cpython/Objects/funcobject.c:1182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - func
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1183
    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:1232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/funcobject.c:1232,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1233,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Objects/funcobject.c:1233,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Objects/funcobject.c:1236,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:1237,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1238,1
    - Dst: _PyFunction_GET_BUILTINS
      Src: /src/cpython/Objects/funcobject.c:1243,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:1244,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1245,1
    - Dst: PyFunction_GET_DEFAULTS
      Src: /src/cpython/Objects/funcobject.c:1250,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1252,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:1252,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:1253,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1254,1
    - Dst: PyFunction_GET_KW_DEFAULTS
      Src: /src/cpython/Objects/funcobject.c:1260,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1262,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/funcobject.c:1262,1
    - Dst: PyDict_Size
      Src: /src/cpython/Objects/funcobject.c:1263,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1264,1
    - Dst: PyFunction_GET_CLOSURE
      Src: /src/cpython/Objects/funcobject.c:1270,1
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1272,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/funcobject.c:1272,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/funcobject.c:1273,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Objects/funcobject.c:1274,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Objects/funcobject.c:1279,1
    - Dst: _PyCode_VerifyStateless
      Src: /src/cpython/Objects/funcobject.c:1280,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - tstate
    - func
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1231
        line_start: 1231
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Check(defaults))
      pos:
        line_end: 1251
        line_start: 1251
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyDict_Check(kwdefaults))
      pos:
        line_end: 1261
        line_start: 1261
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 1232
        line_start: 1232
        source_file: /src/cpython/Objects/funcobject.c
    - condition: (PyTuple_Check(closure))
      pos:
        line_end: 1271
        line_start: 1271
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 1284
      start: 1229
    functionDepth: 15
    functionLinenumber: 1229
    functionLinenumberEnd: 1284
    functionName: _PyFunction_VerifyStateless
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_KW_DEFAULTS
    - PyFunction_Check
    - PyFunction_GET_CODE
    - PyFunction_GET_DEFAULTS
    - PyDict_Size
    - _PyErr_SetString
    - _PyCode_VerifyStateless
    - PyDict_Check
    - PyErr_Occurred
    - assert
    - PyTuple_Check
    - PyFunction_GET_CLOSURE
    - _PyFunction_GET_BUILTINS
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int _PyFunction_VerifyStateless(PyThreadState *tstate, PyObject *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/funcobject.c:1291,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/funcobject.c:1293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - wrapper
    - wrapped
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1297
    functionName: functools_copy_attr
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_SetAttr
    - 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:1310,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Objects/funcobject.c:1311,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Objects/funcobject.c:1312,1
    - Dst: COPY_ATTR
      Src: /src/cpython/Objects/funcobject.c:1313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - wrapper
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1300
    functionDepth: 0
    functionLinenumber: 1300
    functionLinenumberEnd: 1317
    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: 1310
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1310
    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:1324,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/funcobject.c:1329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1334,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/funcobject.c:1337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1339,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/funcobject.c:1342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - wrapped
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1321
    functionDepth: 15
    functionLinenumber: 1321
    functionLinenumberEnd: 1349
    functionName: descriptor_get_wrapped_attribute
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetDict
    - PyObject_GetAttr
    - PyDict_SetItem
    - Py_DECREF
    - 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:1355,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Objects/funcobject.c:1360,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/funcobject.c:1361,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/funcobject.c:1362,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/funcobject.c:1363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1378,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/funcobject.c:1379,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: 1381
      start: 1351
    functionDepth: 15
    functionLinenumber: 1351
    functionLinenumberEnd: 1381
    functionName: descriptor_set_wrapped_attribute
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetDict
    - PyDict_SetItem
    - PyDict_DelItem
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Py_DECREF
    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: 1413
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1413
    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:1417,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/funcobject.c:1418,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:1419,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:1420,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1422
    functionName: cm_dealloc
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - _PyClassMethod_CAST
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void cm_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1427,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1428,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1431
    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:1436,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1437,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1440
    functionName: cm_clear
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyClassMethod_CAST
    linkageType: ''
    returnType: int
    signature: int cm_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:1448,1
    - Dst: PyMethod_New
      Src: /src/cpython/Objects/funcobject.c:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1443
    functionDepth: 2
    functionLinenumber: 1443
    functionLinenumberEnd: 1450
    functionName: cm_descr_get
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyMethod_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1455,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:1461,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1461,1
    - Dst: functools_wraps
      Src: /src/cpython/Objects/funcobject.c:1462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cm
    - callable
    argTypes:
    - classmethod*
    - PyObject*
    assertStmts:
    - condition: (callable != NULL)
      pos:
        line_end: 1454
        line_start: 1454
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 1463
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1463
    functionName: cm_set_callable
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - functools_wraps
    - Py_XSETREF
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: int
    signature: int cm_set_callable(classmethod *cm, PyObject *callable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/funcobject.c:1468,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/funcobject.c:1472,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/funcobject.c:1476,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/funcobject.c:1480,1
    - Dst: cm_set_callable
      Src: /src/cpython/Objects/funcobject.c:1481,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1465
    functionDepth: 4
    functionLinenumber: 1465
    functionLinenumberEnd: 1486
    functionName: cm_new
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetDeferredRefcount
    - cm_set_callable
    - PyType_GenericAlloc
    - _PyArg_NoKeywords
    - Py_DECREF
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/funcobject.c:1491,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/funcobject.c:1495,1
    - Dst: cm_set_callable
      Src: /src/cpython/Objects/funcobject.c:1500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1501
    functionName: cm_init
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - cm_set_callable
    - PyArg_UnpackTuple
    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:1512,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Objects/funcobject.c:1513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1509
    functionDepth: 2
    functionLinenumber: 1509
    functionLinenumberEnd: 1521
    functionName: cm_get___isabstractmethod__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyClassMethod_CAST
    - _PyObject_IsAbstract
    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:1526,1
    - Dst: descriptor_get_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1527,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1523
    functionDepth: 16
    functionLinenumber: 1523
    functionLinenumberEnd: 1528
    functionName: cm_get___annotations__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - descriptor_get_wrapped_attribute
    - _PyClassMethod_CAST
    - _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:1533,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1530
    functionDepth: 16
    functionLinenumber: 1530
    functionLinenumberEnd: 1534
    functionName: cm_set___annotations__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - descriptor_set_wrapped_attribute
    - _Py_ID
    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:1539,1
    - Dst: descriptor_get_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1540,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1536
    functionDepth: 16
    functionLinenumber: 1536
    functionLinenumberEnd: 1541
    functionName: cm_get___annotate__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - descriptor_get_wrapped_attribute
    - _PyClassMethod_CAST
    - _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:1546,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1543
    functionDepth: 16
    functionLinenumber: 1543
    functionLinenumberEnd: 1547
    functionName: cm_set___annotate__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - descriptor_set_wrapped_attribute
    - _Py_ID
    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:1566,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/funcobject.c:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1563
    functionDepth: 10
    functionLinenumber: 1563
    functionLinenumberEnd: 1568
    functionName: cm_repr
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyClassMethod_CAST
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/funcobject.c:1639,1
    - Dst: cm_set_callable
      Src: /src/cpython/Objects/funcobject.c:1643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1635
    functionDepth: 4
    functionLinenumber: 1635
    functionLinenumberEnd: 1648
    functionName: PyClassMethod_New
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyType_GenericAlloc
    - cm_set_callable
    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: 1678
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1678
    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:1682,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/funcobject.c:1683,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:1684,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/funcobject.c:1685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/funcobject.c:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1687
    functionName: sm_dealloc
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - _PyStaticMethod_CAST
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void sm_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1692,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1693,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/funcobject.c:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1689
    functionDepth: 1
    functionLinenumber: 1689
    functionLinenumberEnd: 1696
    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:1701,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1702,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/funcobject.c:1703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1698
    functionDepth: 1
    functionLinenumber: 1698
    functionLinenumberEnd: 1705
    functionName: sm_clear
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyStaticMethod_CAST
    linkageType: ''
    returnType: int
    signature: int sm_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1712
    functionName: sm_descr_get
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/funcobject.c:1717,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/funcobject.c:1723,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/funcobject.c:1723,1
    - Dst: functools_wraps
      Src: /src/cpython/Objects/funcobject.c:1724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sm
    - callable
    argTypes:
    - staticmethod*
    - PyObject*
    assertStmts:
    - condition: (callable != NULL)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/cpython/Objects/funcobject.c
    constantsTouched: []
    func_position:
      end: 1725
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1725
    functionName: sm_set_callable
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - functools_wraps
    - Py_XSETREF
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: int
    signature: int sm_set_callable(staticmethod *sm, PyObject *callable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/funcobject.c:1730,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/funcobject.c:1734,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/funcobject.c:1738,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/funcobject.c:1742,1
    - Dst: sm_set_callable
      Src: /src/cpython/Objects/funcobject.c:1743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1727
    functionDepth: 4
    functionLinenumber: 1727
    functionLinenumberEnd: 1748
    functionName: sm_new
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetDeferredRefcount
    - sm_set_callable
    - PyType_GenericAlloc
    - _PyArg_NoKeywords
    - Py_DECREF
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Objects/funcobject.c:1753,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Objects/funcobject.c:1757,1
    - Dst: sm_set_callable
      Src: /src/cpython/Objects/funcobject.c:1762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1763
    functionName: sm_init
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - sm_set_callable
    - PyArg_UnpackTuple
    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:1769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - callable
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1765
    functionDepth: 5
    functionLinenumber: 1765
    functionLinenumberEnd: 1770
    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:1781,1
    - Dst: _PyObject_IsAbstract
      Src: /src/cpython/Objects/funcobject.c:1782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1778
    functionDepth: 2
    functionLinenumber: 1778
    functionLinenumberEnd: 1790
    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:1795,1
    - Dst: descriptor_get_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1796,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1792
    functionDepth: 16
    functionLinenumber: 1792
    functionLinenumberEnd: 1797
    functionName: sm_get___annotations__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - descriptor_get_wrapped_attribute
    - _PyStaticMethod_CAST
    - _Py_ID
    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:1802,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1799
    functionDepth: 16
    functionLinenumber: 1799
    functionLinenumberEnd: 1803
    functionName: sm_set___annotations__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - descriptor_set_wrapped_attribute
    - _Py_ID
    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:1808,1
    - Dst: descriptor_get_wrapped_attribute
      Src: /src/cpython/Objects/funcobject.c:1809,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1805
    functionDepth: 16
    functionLinenumber: 1805
    functionLinenumberEnd: 1810
    functionName: sm_get___annotate__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - descriptor_get_wrapped_attribute
    - _PyStaticMethod_CAST
    - _Py_ID
    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:1815,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/funcobject.c:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1812
    functionDepth: 16
    functionLinenumber: 1812
    functionLinenumberEnd: 1816
    functionName: sm_set___annotate__
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - descriptor_set_wrapped_attribute
    - _Py_ID
    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:1834,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/funcobject.c:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1831
    functionDepth: 10
    functionLinenumber: 1831
    functionLinenumberEnd: 1836
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Objects/funcobject.c:1905,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/funcobject.c:1909,1
    - Dst: sm_set_callable
      Src: /src/cpython/Objects/funcobject.c:1910,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/funcobject.c:1911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1901
    functionDepth: 4
    functionLinenumber: 1901
    functionLinenumberEnd: 1915
    functionName: PyStaticMethod_New
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _PyObject_SetDeferredRefcount
    - PyType_GenericAlloc
    - sm_set_callable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyStaticMethod_New(PyObject *callable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyClassMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1917
    functionDepth: 1
    functionLinenumber: 1917
    functionLinenumberEnd: 1922
    functionName: _PyClassMethod_GetFunc
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - _PyClassMethod_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyClassMethod_GetFunc(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStaticMethod_CAST
      Src: /src/cpython/Objects/funcobject.c:1927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1929
    functionName: _PyStaticMethod_GetFunc
    functionSourceFile: /src/cpython/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - _PyStaticMethod_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyStaticMethod_GetFunc(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: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: PyLazyImportObject_CAST
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLazyImportObject_CAST(op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/lazyimportobject.c:17,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/lazyimportobject.c:18,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/lazyimportobject.c:24,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Objects/lazyimportobject.c:24,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/lazyimportobject.c:25,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Objects/lazyimportobject.c:29,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/lazyimportobject.c:33,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/lazyimportobject.c:34,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Objects/lazyimportobject.c:35,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Objects/lazyimportobject.c:42,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/lazyimportobject.c:44,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Objects/lazyimportobject.c:46,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Objects/lazyimportobject.c:50,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - frame
    - builtins
    - name
    - fromlist
    argTypes:
    - _PyInterpreterFrame*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 52
    functionName: _PyLazyImport_New
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyFrame_GetCode
    - _PyObject_GC_TRACK
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_Check
    - _PyInterpreterFrame_LASTI
    - Py_XNewRef
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLazyImport_New(_PyInterpreterFrame *frame, PyObject *builtins, PyObject *name,
      PyObject *fromlist)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLazyImportObject_CAST
      Src: /src/cpython/Objects/lazyimportobject.c:57,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/lazyimportobject.c:58,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/lazyimportobject.c:59,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/lazyimportobject.c:60,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/lazyimportobject.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: lazy_import_traverse
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached:
    - PyLazyImportObject_CAST
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int lazy_import_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLazyImportObject_CAST
      Src: /src/cpython/Objects/lazyimportobject.c:68,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/lazyimportobject.c:69,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/lazyimportobject.c:70,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/lazyimportobject.c:71,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/lazyimportobject.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: lazy_import_clear
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyLazyImportObject_CAST
    linkageType: ''
    returnType: int
    signature: int lazy_import_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Objects/lazyimportobject.c:79,1
    - Dst: lazy_import_clear
      Src: /src/cpython/Objects/lazyimportobject.c:80,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/lazyimportobject.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: lazy_import_dealloc
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - lazy_import_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void lazy_import_dealloc(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/lazyimportobject.c:88,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/lazyimportobject.c:89,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/lazyimportobject.c:92,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/lazyimportobject.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyLazyImportObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 10
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: lazy_import_name
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_NewRef
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lazy_import_name(PyLazyImportObject *m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLazyImportObject_CAST
      Src: /src/cpython/Objects/lazyimportobject.c:101,1
    - Dst: lazy_import_name
      Src: /src/cpython/Objects/lazyimportobject.c:102,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Objects/lazyimportobject.c:106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/lazyimportobject.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 11
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: lazy_import_repr
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLazyImportObject_CAST
    - lazy_import_name
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lazy_import_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLazyImportObject_CAST
      Src: /src/cpython/Objects/lazyimportobject.c:114,1
    - Dst: assert
      Src: /src/cpython/Objects/lazyimportobject.c:115,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Objects/lazyimportobject.c:115,1
    - Dst: lazy_import_name
      Src: /src/cpython/Objects/lazyimportobject.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLazyImport_CheckExact(lazy_import))
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/cpython/Objects/lazyimportobject.c
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 11
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: _PyLazyImport_GetName
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached:
    - PyLazyImportObject_CAST
    - lazy_import_name
    - PyLazyImport_CheckExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLazyImport_GetName(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Objects/lazyimportobject.c:122,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/lazyimportobject.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: lazy_import_resolve
    functionSourceFile: /src/cpython/Objects/lazyimportobject.c
    functionUses: 0
    functionsReached:
    - _PyImport_LoadLazyImportTstate
    - PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lazy_import_resolve(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: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: _PyModule_CAST
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyModule_CAST(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:42,1
    - Dst: DO_ASSERT
      Src: /src/cpython/Objects/moduleobject.c:44,1
    - Dst: DO_ASSERT
      Src: /src/cpython/Objects/moduleobject.c:45,1
    - Dst: DO_ASSERT
      Src: /src/cpython/Objects/moduleobject.c:46,1
    - Dst: DO_ASSERT
      Src: /src/cpython/Objects/moduleobject.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyModuleObject*
    assertStmts:
    - condition: (def)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: assert_def_missing_or_redundant
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - DO_ASSERT
    - assert
    linkageType: ''
    returnType: void
    signature: void assert_def_missing_or_redundant(PyModuleObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: DO_ASSERT
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_ASSERT(F)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: _PyModule_IsExtension
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    linkageType: ''
    returnType: int
    signature: int _PyModule_IsExtension(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:129,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/cpython/Objects/moduleobject.c:130,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:133,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:137,1
    - Dst: Py_SET_REFCNT
      Src: /src/cpython/Objects/moduleobject.c:139,1
    - Dst: Py_SET_TYPE
      Src: /src/cpython/Objects/moduleobject.c:140,1
    - Dst: _PyImport_GetNextModuleIndex
      Src: /src/cpython/Objects/moduleobject.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts:
    - condition: (PyModuleDef_Type.tp_flags & Py_TPFLAGS_READY)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 144
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 144
    functionName: PyModuleDef_Init
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 130
    functionsReached:
    - Py_SET_TYPE
    - Py_SET_REFCNT
    - PyErr_SetString
    - PyErr_WriteUnraisable
    - _PyImport_GetNextModuleIndex
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModuleDef_Init(PyModuleDef* def)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:150,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:154,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:156,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:156,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:158,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:158,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:160,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:160,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:162,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:162,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Objects/moduleobject.c:164,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Objects/moduleobject.c:165,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/moduleobject.c:165,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: 149
        line_start: 149
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 169
      start: 146
    functionDepth: 10
    functionLinenumber: 146
    functionLinenumberEnd: 169
    functionName: module_init_dict
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyUnicode_CheckExact
    - PyDict_SetItem
    - assert
    - Py_NewRef
    - _Py_ID
    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:175,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/moduleobject.c:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - mt
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 171
    functionDepth: 11
    functionLinenumber: 171
    functionLinenumberEnd: 197
    functionName: new_module_notrack
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyType_AllocNoTrack
    - PyDict_New
    linkageType: ''
    returnType: PyModuleObject
    signature: 'PyModuleObject *

      new_module_notrack(PyTypeObject *mt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:207,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:207,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Objects/moduleobject.c:212,1
    - Dst: _PyDict_ClearKeysVersionLockHeld
      Src: /src/cpython/Objects/moduleobject.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - event
    - dict
    - key
    - new_value
    argTypes:
    - PyDict_WatchEvent
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: module_dict_watcher
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_ClearKeysVersionLockHeld
    - PyDict_Check
    - PyLazyImport_CheckExact
    - assert
    linkageType: ''
    returnType: int
    signature: "int module_dict_watcher(PyDict_WatchEvent event, PyObject *dict,\n
      \                   PyObject *key, PyObject *new_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (interp->dict_state.watchers[MODULE_WATCHER_ID] == NULL)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: _PyModule_InitModuleDictWatcher
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyModule_InitModuleDictWatcher(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_EnablePerThreadRefcounting
      Src: /src/cpython/Objects/moduleobject.c:230,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/moduleobject.c:231,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Objects/moduleobject.c:232,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Objects/moduleobject.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyModuleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: track_module
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetDeferredRefcount
    - _PyDict_EnablePerThreadRefcounting
    - PyDict_Watch
    - PyObject_GC_Track
    linkageType: ''
    returnType: void
    signature: void track_module(PyModuleObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_module_notrack
      Src: /src/cpython/Objects/moduleobject.c:239,1
    - Dst: track_module
      Src: /src/cpython/Objects/moduleobject.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mt
    - args
    - kws
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 12
    functionLinenumber: 236
    functionLinenumberEnd: 244
    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:249,1
    - Dst: module_init_dict
      Src: /src/cpython/Objects/moduleobject.c:252,1
    - Dst: track_module
      Src: /src/cpython/Objects/moduleobject.c:254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 246
    functionDepth: 12
    functionLinenumber: 246
    functionLinenumberEnd: 260
    functionName: PyModule_NewObject
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - module_init_dict
    - new_module_notrack
    - track_module
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_NewObject(PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/moduleobject.c:266,1
    - Dst: PyModule_NewObject
      Src: /src/cpython/Objects/moduleobject.c:269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 13
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: PyModule_New
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyModule_NewObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_New(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Objects/moduleobject.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - name
    - module_api_version
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 292
    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:303,1
    - Dst: PyCFunction_NewEx
      Src: /src/cpython/Objects/moduleobject.c:308,1
    - Dst: _PyObject_SetDeferredRefcount
      Src: /src/cpython/Objects/moduleobject.c:312,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Objects/moduleobject.c:313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - module
    - name
    - functions
    argTypes:
    - PyObject*
    - PyObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 321
    functionName: _add_methods_to_object
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetDeferredRefcount
    - PyErr_SetString
    - PyObject_SetAttrString
    - Py_DECREF
    - PyCFunction_NewEx
    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:326,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/moduleobject.c:326,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:327,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/cpython/Objects/moduleobject.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - module_api_version
    argTypes:
    - PyModuleDef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: PyModule_Create2
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyModule_CreateInitialized
    - PyErr_SetString
    - _PyImport_IsInitialized
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_Create2(PyModuleDef* module, int module_api_version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - md
    - def_like
    argTypes:
    - PyModuleObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: module_copy_members_from_deflike
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void module_copy_members_from_deflike(\n    PyModuleObject *md,\n
      \   PyModuleDef *def_like /* not necessarily a valid Python object */)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Objects/moduleobject.c:351,1
    - Dst: check_api_version
      Src: /src/cpython/Objects/moduleobject.c:354,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:358,1
    - Dst: _PyImport_ResolveNameWithPackageContext
      Src: /src/cpython/Objects/moduleobject.c:363,1
    - Dst: PyModule_New
      Src: /src/cpython/Objects/moduleobject.c:365,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/moduleobject.c:370,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/moduleobject.c:372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:373,1
    - Dst: memset
      Src: /src/cpython/Objects/moduleobject.c:376,1
    - Dst: PyModule_AddFunctions
      Src: /src/cpython/Objects/moduleobject.c:380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:381,1
    - Dst: PyModule_SetDocString
      Src: /src/cpython/Objects/moduleobject.c:386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:387,1
    - Dst: module_copy_members_from_deflike
      Src: /src/cpython/Objects/moduleobject.c:393,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - module
    - module_api_version
    argTypes:
    - PyModuleDef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 345
    functionDepth: 14
    functionLinenumber: 345
    functionLinenumberEnd: 398
    functionName: _PyModule_CreateInitialized
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyModule_AddFunctions
    - PyModule_SetDocString
    - PyModule_New
    - PyErr_NoMemory
    - _PyImport_ResolveNameWithPackageContext
    - PyModuleDef_Init
    - module_copy_members_from_deflike
    - memset
    - PyErr_Format
    - PyMem_Malloc
    - Py_DECREF
    - check_api_version
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyModule_CreateInitialized(PyModuleDef* module, int module_api_version)'
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/moduleobject.c:418,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Objects/moduleobject.c:420,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:424,1
    - Dst: check_api_version
      Src: /src/cpython/Objects/moduleobject.c:429,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:438,1
    - Dst: _PySlotIterator_Init
      Src: /src/cpython/Objects/moduleobject.c:440,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:443,1
    - Dst: _PySlotIterator_InitLegacy
      Src: /src/cpython/Objects/moduleobject.c:445,1
    - Dst: _PySlotIterator_Next
      Src: /src/cpython/Objects/moduleobject.c:449,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:459,1
    - Dst: PyABIInfo_Check
      Src: /src/cpython/Objects/moduleobject.c:478,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:484,1
    - Dst: DEF_SLOT_CASE
      Src: /src/cpython/Objects/moduleobject.c:515,1
    - Dst: DEF_SLOT_CASE
      Src: /src/cpython/Objects/moduleobject.c:517,1
    - Dst: DEF_SLOT_CASE
      Src: /src/cpython/Objects/moduleobject.c:519,1
    - Dst: DEF_SLOT_CASE
      Src: /src/cpython/Objects/moduleobject.c:520,1
    - Dst: _PySlotIterator_SawSlot
      Src: /src/cpython/Objects/moduleobject.c:524,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:525,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Objects/moduleobject.c:539,1
    - Dst: _PyEval_EnableGILTransient
      Src: /src/cpython/Objects/moduleobject.c:540,1
    - Dst: _PyImport_EnableGILAndWarn
      Src: /src/cpython/Objects/moduleobject.c:543,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:550,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/moduleobject.c:560,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Objects/moduleobject.c:561,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Objects/moduleobject.c:568,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Objects/moduleobject.c:569,1
    - Dst: create
      Src: /src/cpython/Objects/moduleobject.c:575,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:577,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:578,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:585,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Objects/moduleobject.c:586,1
    - Dst: PyModule_NewObject
      Src: /src/cpython/Objects/moduleobject.c:594,1
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:600,1
    - Dst: module_copy_members_from_deflike
      Src: /src/cpython/Objects/moduleobject.c:603,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:605,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:622,1
    - Dst: _PySlotIterator_SawSlot
      Src: /src/cpython/Objects/moduleobject.c:628,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:629,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:637,1
    - Dst: _add_methods_to_object
      Src: /src/cpython/Objects/moduleobject.c:647,1
    - Dst: PyModule_SetDocString
      Src: /src/cpython/Objects/moduleobject.c:654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:664,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:665,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 172
    argCount: 4
    argNames:
    - slots
    - spec
    - module_api_version
    - original_def
    argTypes:
    - PySlot*
    - PyObject*
    - int
    - PyModuleDef*
    assertStmts:
    - condition: (!original_def)
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (original_def)
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (!token || token == original_def)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 667
      start: 402
    functionDepth: 13
    functionLinenumber: 402
    functionLinenumberEnd: 667
    functionName: module_from_slots_and_spec
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_EnableGILTransient
    - PyModule_NewObject
    - DEF_SLOT_CASE
    - _PyThreadState_GET
    - PyErr_Occurred
    - _PySlotIterator_InitLegacy
    - assert
    - _PyErr_FormatFromCause
    - PyUnicode_AsUTF8
    - _PySlotIterator_Init
    - Py_XDECREF
    - _add_methods_to_object
    - PyModule_Check
    - module_copy_members_from_deflike
    - _PySlotIterator_Next
    - _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    - Py_DECREF
    - _PySlotIterator_SawSlot
    - create
    - PyModule_SetDocString
    - _Py_IsMainInterpreter
    - _PyInterpreterState_GET
    - _PyImport_EnableGILAndWarn
    - PyObject_GetAttrString
    - PyErr_Format
    - PyABIInfo_Check
    - check_api_version
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmodule_from_slots_and_spec(\n    const PySlot *slots,\n
      \   PyObject *spec,\n    int module_api_version,\n    PyModuleDef* original_def
      /* NULL if not defined by a def */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - SLOT
    - ','
    - TYPE
    - ','
    - SL_MEMBER
    - ','
    - MEMBER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 514
    functionName: DEF_SLOT_CASE
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_SLOT_CASE(SLOT, TYPE, SL_MEMBER, MEMBER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Objects/moduleobject.c:672,1
    - Dst: module_from_slots_and_spec
      Src: /src/cpython/Objects/moduleobject.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - def
    - spec
    - module_api_version
    argTypes:
    - PyModuleDef*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 669
    functionDepth: 14
    functionLinenumber: 669
    functionLinenumberEnd: 674
    functionName: PyModule_FromDefAndSpec2
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    - module_from_slots_and_spec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_FromDefAndSpec2(PyModuleDef* def, PyObject *spec, int module_api_version)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:680,1
    - Dst: module_from_slots_and_spec
      Src: /src/cpython/Objects/moduleobject.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - slots
    - spec
    argTypes:
    - PySlot*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 676
    functionDepth: 14
    functionLinenumber: 676
    functionLinenumberEnd: 688
    functionName: PyModule_FromSlotsAndSpec
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 17
    functionsReached:
    - module_from_slots_and_spec
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_FromSlotsAndSpec(const PySlot *slots, PyObject *spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:695,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/moduleobject.c:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - gil
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: PyUnstable_Module_SetGIL
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 12
    functionsReached:
    - PyErr_BadInternalCall
    - PyModule_Check
    linkageType: ''
    returnType: int
    signature: int PyUnstable_Module_SetGIL(PyObject *module, void *gil)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exec
      Src: /src/cpython/Objects/moduleobject.c:707,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:709,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:710,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:717,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Objects/moduleobject.c:718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 725
    functionName: run_exec_func
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _PyErr_FormatFromCause
    - exec
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int run_exec_func(PyObject *module, int (*exec)(PyObject *))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:730,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:731,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Objects/moduleobject.c:740,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Objects/moduleobject.c:742,1
    - Dst: memset
      Src: /src/cpython/Objects/moduleobject.c:745,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 749
    functionName: alloc_state
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyModule_Check
    - memset
    - PyErr_Format
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int alloc_state(PyObject *module)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_state
      Src: /src/cpython/Objects/moduleobject.c:754,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:759,1
    - Dst: run_exec_func
      Src: /src/cpython/Objects/moduleobject.c:760,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Objects/moduleobject.c:763,1
    - Dst: PyModule_ExecDef
      Src: /src/cpython/Objects/moduleobject.c:765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!md->md_token_is_def)
      pos:
        line_end: 758
        line_start: 758
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 768
      start: 751
    functionDepth: 3
    functionLinenumber: 751
    functionLinenumberEnd: 768
    functionName: PyModule_Exec
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 3
    functionsReached:
    - alloc_state
    - run_exec_func
    - _PyModule_GetDefOrNull
    - PyModule_ExecDef
    - assert
    linkageType: ''
    returnType: int
    signature: int PyModule_Exec(PyObject *module)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: alloc_state
      Src: /src/cpython/Objects/moduleobject.c:773,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:777,1
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:777,1
    - Dst: _PySlotIterator_InitLegacy
      Src: /src/cpython/Objects/moduleobject.c:784,1
    - Dst: _PySlotIterator_Next
      Src: /src/cpython/Objects/moduleobject.c:785,1
    - Dst: run_exec_func
      Src: /src/cpython/Objects/moduleobject.c:792,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - module
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts:
    - condition: (PyModule_Check(module))
      pos:
        line_end: 776
        line_start: 776
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 799
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 799
    functionName: PyModule_ExecDef
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - alloc_state
    - assert
    - PyModule_Check
    - _PySlotIterator_Next
    - run_exec_func
    - _PySlotIterator_InitLegacy
    linkageType: ''
    returnType: int
    signature: int PyModule_ExecDef(PyObject *module, PyModuleDef *def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetNameObject
      Src: /src/cpython/Objects/moduleobject.c:805,1
    - Dst: _add_methods_to_object
      Src: /src/cpython/Objects/moduleobject.c:810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - m
    - functions
    argTypes:
    - PyObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 813
    functionName: PyModule_AddFunctions
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 68
    functionsReached:
    - PyModule_GetNameObject
    - _add_methods_to_object
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyModule_AddFunctions(PyObject *m, PyMethodDef *functions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Objects/moduleobject.c:820,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Objects/moduleobject.c:821,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:821,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - m
    - doc
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 827
    functionName: PyModule_SetDocString
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - PyObject_SetAttr
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    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:832,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Objects/moduleobject.c:833,1
    - Dst: _PyModule_GetDict
      Src: /src/cpython/Objects/moduleobject.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 837
    functionName: PyModule_GetDict
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 16
    functionsReached:
    - PyErr_BadInternalCall
    - _PyModule_GetDict
    - PyModule_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetDict(PyObject *m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:843,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - m
    - size_p
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 850
    functionName: PyModule_GetStateSize
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 2
    functionsReached:
    - PyErr_Format
    - PyModule_Check
    linkageType: ''
    returnType: int
    signature: int PyModule_GetStateSize(PyObject *m, Py_ssize_t *size_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:856,1
    - Dst: _PyModule_GetToken
      Src: /src/cpython/Objects/moduleobject.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - m
    - token_p
    argTypes:
    - PyObject*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 861
    functionName: PyModule_GetToken_DuringGC
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 2
    functionsReached:
    - _PyModule_GetToken
    - PyModule_Check
    linkageType: ''
    returnType: int
    signature: int PyModule_GetToken_DuringGC(PyObject *m, void **token_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:867,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:868,1
    - Dst: _PyModule_GetToken
      Src: /src/cpython/Objects/moduleobject.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - m
    - token_p
    argTypes:
    - PyObject*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 873
    functionName: PyModule_GetToken
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 5
    functionsReached:
    - _PyModule_GetToken
    - PyErr_Format
    - PyModule_Check
    linkageType: ''
    returnType: int
    signature: int PyModule_GetToken(PyObject *m, void **token_p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:878,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/moduleobject.c:879,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:883,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:887,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:887,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:892,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:898,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:899,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 875
    functionDepth: 8
    functionLinenumber: 875
    functionLinenumberEnd: 902
    functionName: PyModule_GetNameObject
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 3
    functionsReached:
    - PyErr_SetString
    - PyUnicode_Check
    - PyModule_Check
    - PyDict_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_GetItemRef
    - PyErr_BadArgument
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetNameObject(PyObject *mod)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetNameObject
      Src: /src/cpython/Objects/moduleobject.c:907,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:911,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Objects/moduleobject.c:911,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:912,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(name) >= 2)
      pos:
        line_end: 910
        line_start: 910
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 914
      start: 904
    functionDepth: 9
    functionLinenumber: 904
    functionLinenumberEnd: 914
    functionName: PyModule_GetName
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyModule_GetNameObject
    - PyUnicode_AsUTF8
    - Py_REFCNT
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: char
    signature: 'char *

      PyModule_GetName(PyObject *m)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:920,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/moduleobject.c:921,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:930,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:930,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:944,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 916
    functionDepth: 8
    functionLinenumber: 916
    functionLinenumberEnd: 948
    functionName: _PyModule_GetFilenameObject
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyModule_Check
    - Py_DECREF
    - PyDict_GetItemRef
    - PyErr_BadArgument
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyModule_GetFilenameObject(PyObject *mod)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_GetFilenameObject
      Src: /src/cpython/Objects/moduleobject.c:953,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 950
    functionDepth: 9
    functionLinenumber: 950
    functionLinenumberEnd: 962
    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:969,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 964
    functionDepth: 10
    functionLinenumber: 964
    functionLinenumberEnd: 975
    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:982,1
    - Dst: _PyModule_GetFilenameObject
      Src: /src/cpython/Objects/moduleobject.c:984,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/moduleobject.c:994,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:995,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:998,1
    - Dst: strcpy
      Src: /src/cpython/Objects/moduleobject.c:1001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1004,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: 981
        line_start: 981
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (size >= 0)
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 1006
      start: 977
    functionDepth: 9
    functionLinenumber: 977
    functionLinenumberEnd: 1006
    functionName: _PyModule_GetFilenameUTF8
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyModule_GetFilenameObject
    - strcpy
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - assert
    - Py_DECREF
    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:1011,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/moduleobject.c:1012,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Objects/moduleobject.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1016
    functionName: PyModule_GetDef
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 9
    functionsReached:
    - _PyModule_GetDefOrNull
    - PyErr_BadArgument
    - PyModule_Check
    linkageType: ''
    returnType: PyModuleDef
    signature: 'PyModuleDef *

      PyModule_GetDef(PyObject* m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:1021,1
    - Dst: _PyModule_GetState
      Src: /src/cpython/Objects/moduleobject.c:1024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1025
    functionName: PyModule_GetState_DuringGC
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 6
    functionsReached:
    - _PyModule_GetState
    - PyModule_Check
    linkageType: ''
    returnType: void
    signature: 'void *

      PyModule_GetState_DuringGC(PyObject* m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Objects/moduleobject.c:1030,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Objects/moduleobject.c:1031,1
    - Dst: _PyModule_GetState
      Src: /src/cpython/Objects/moduleobject.c:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1035
    functionName: PyModule_GetState
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 93
    functionsReached:
    - _PyModule_GetState
    - PyErr_BadArgument
    - PyModule_Check
    linkageType: ''
    returnType: void
    signature: 'void *

      PyModule_GetState(PyObject* m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_ClearDict
      Src: /src/cpython/Objects/moduleobject.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1043
    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:1058,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/moduleobject.c:1062,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:1063,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/moduleobject.c:1064,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/moduleobject.c:1065,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:1067,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Objects/moduleobject.c:1069,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:1071,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1073,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/moduleobject.c:1074,1
    - Dst: PyDict_Next
      Src: /src/cpython/Objects/moduleobject.c:1083,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:1084,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/moduleobject.c:1085,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Objects/moduleobject.c:1086,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Objects/moduleobject.c:1089,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Objects/moduleobject.c:1091,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:1093,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1095,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/moduleobject.c:1096,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 1
    argNames:
    - d
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1045
    functionDepth: 10
    functionLinenumber: 1045
    functionLinenumberEnd: 1107
    functionName: _PyModule_ClearDict
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READ_CHAR
    - PySys_WriteStderr
    - PyUnicode_Check
    - PyDict_Next
    - PyUnicode_AsUTF8
    - PyDict_SetItem
    - _PyUnicode_EqualToASCIIString
    - PyErr_Clear
    - PyErr_FormatUnraisable
    - _Py_GetConfig
    linkageType: ''
    returnType: void
    signature: void _PyModule_ClearDict(PyObject *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_init_dict
      Src: /src/cpython/Objects/moduleobject.c:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - name
    - doc
    argTypes:
    - PyModuleObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1128
    functionDepth: 11
    functionLinenumber: 1128
    functionLinenumberEnd: 1133
    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:1138,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Objects/moduleobject.c:1140,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Objects/moduleobject.c:1142,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Objects/moduleobject.c:1144,1
    - Dst: FT_CLEAR_WEAKREFS
      Src: /src/cpython/Objects/moduleobject.c:1146,1
    - Dst: assert_def_missing_or_redundant
      Src: /src/cpython/Objects/moduleobject.c:1148,1
    - Dst: PyModuleObject*::md_state_free
      Src: /src/cpython/Objects/moduleobject.c:1152,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1155,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1156,1
    - Dst: PyMem_Free
      Src: /src/cpython/Objects/moduleobject.c:1158,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/moduleobject.c:1160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1161
    functionName: module_dealloc
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PySys_FormatStderr
    - assert_def_missing_or_redundant
    - PyModuleObject*::md_state_free
    - _PyModule_CAST
    - Py_XDECREF
    - FT_CLEAR_WEAKREFS
    - PyObject_GC_UnTrack
    - PyMem_Free
    - Py_TYPE
    - _Py_GetConfig
    linkageType: ''
    returnType: void
    signature: void module_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1166,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Objects/moduleobject.c:1167,1
    - Dst: _PyImport_ImportlibModuleRepr
      Src: /src/cpython/Objects/moduleobject.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    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:1180,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1180,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/moduleobject.c:1182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1186
    functionName: _PyModuleSpec_IsInitializing
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - 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:1199,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1199,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Objects/moduleobject.c:1201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - spec
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1191
    functionDepth: 6
    functionLinenumber: 1191
    functionLinenumberEnd: 1205
    functionName: _PyModuleSpec_IsUninitializedSubmodule
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - PySequence_Contains
    - PyObject_GetOptionalAttr
    linkageType: ''
    returnType: int
    signature: int _PyModuleSpec_IsUninitializedSubmodule(PyObject *spec, PyObject
      *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/moduleobject.c:1211,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1211,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/moduleobject.c:1218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1219,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Objects/moduleobject.c:1225,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1225,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1229,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:1230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - spec
    - p_origin
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (origin != NULL)
      pos:
        line_end: 1228
        line_start: 1228
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 1236
      start: 1207
    functionDepth: 2
    functionLinenumber: 1207
    functionLinenumberEnd: 1236
    functionName: _PyModuleSpec_GetFileOrigin
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - assert
    - Py_DECREF
    - _Py_ID
    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:1253,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/cpython/Objects/moduleobject.c:1260,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1264,1
    - Dst: wcsrchr
      Src: /src/cpython/Objects/moduleobject.c:1267,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/moduleobject.c:1272,1
    - Dst: wcsrchr
      Src: /src/cpython/Objects/moduleobject.c:1274,1
    - Dst: _Py_wgetcwd
      Src: /src/cpython/Objects/moduleobject.c:1290,1
    - Dst: wcscmp
      Src: /src/cpython/Objects/moduleobject.c:1298,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - origin
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (size <= MAXPATHLEN)
      pos:
        line_end: 1263
        line_start: 1263
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 1300
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1300
    functionName: _PyModule_IsPossiblyShadowing
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _Py_wgetcwd
    - PyUnicode_AsWideChar
    - assert
    - wcsrchr
    - wcscmp
    - _Py_GetConfig
    linkageType: ''
    returnType: int
    signature: int _PyModule_IsPossiblyShadowing(PyObject *origin)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/cpython/Objects/moduleobject.c:1307,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Objects/moduleobject.c:1309,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1312,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1313,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/moduleobject.c:1317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1320,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/moduleobject.c:1323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1324,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:1327,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Objects/moduleobject.c:1329,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Objects/moduleobject.c:1330,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/moduleobject.c:1333,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:1338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1340,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1344,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/moduleobject.c:1345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1347,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:1353,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/moduleobject.c:1359,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:1363,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1365,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1366,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1366,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Objects/moduleobject.c:1370,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Objects/moduleobject.c:1371,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Objects/moduleobject.c:1373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1375,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1384,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1384,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/moduleobject.c:1387,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1388,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1389,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1394,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1395,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1402,1
    - Dst: _PyModuleSpec_GetFileOrigin
      Src: /src/cpython/Objects/moduleobject.c:1407,1
    - Dst: _PyModule_IsPossiblyShadowing
      Src: /src/cpython/Objects/moduleobject.c:1411,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Objects/moduleobject.c:1418,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Objects/moduleobject.c:1421,1
    - Dst: PySet_Contains
      Src: /src/cpython/Objects/moduleobject.c:1422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1424,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1428,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1432,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1433,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/cpython/Objects/moduleobject.c:1441,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1447,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1450,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1457,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1464,1
    - Dst: assert
      Src: /src/cpython/Objects/moduleobject.c:1472,1
    - Dst: _PyModuleSpec_IsUninitializedSubmodule
      Src: /src/cpython/Objects/moduleobject.c:1473,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1475,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1481,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1491,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 134
    argCount: 3
    argNames:
    - m
    - name
    - suppress
    argTypes:
    - PyModuleObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (rc == 0)
      pos:
        line_end: 1471
        line_start: 1471
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (origin)
      pos:
        line_end: 1446
        line_start: 1446
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (origin)
      pos:
        line_end: 1431
        line_start: 1431
        source_file: /src/cpython/Objects/moduleobject.c
    - condition: (m->md_dict != NULL)
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/cpython/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 1493
      start: 1302
    functionDepth: 10
    functionLinenumber: 1302
    functionLinenumberEnd: 1493
    functionName: _Py_module_getattro_impl
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - _PyModuleSpec_IsUninitializedSubmodule
    - PyErr_Occurred
    - assert
    - _PyModuleSpec_GetFileOrigin
    - PySys_GetOptionalAttrString
    - PyUnicode_Check
    - PyThreadState_GET
    - Py_XDECREF
    - _PyObject_GenericGetAttrWithDict
    - PyAnySet_Check
    - PyErr_Clear
    - _Py_ID
    - _PyModuleSpec_IsInitializing
    - Py_DECREF
    - PyDict_GetItemRef
    - _PyImport_LoadLazyImportTstate
    - _PyModule_IsPossiblyShadowing
    - PyDict_SetItem
    - Py_CLEAR
    - PySet_Contains
    - PyLazyImport_CheckExact
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyObject_CallOneArg
    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:1499,1
    - Dst: _Py_module_getattro_impl
      Src: /src/cpython/Objects/moduleobject.c:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1496
    functionDepth: 11
    functionLinenumber: 1496
    functionLinenumberEnd: 1501
    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:1506,1
    - Dst: assert_def_missing_or_redundant
      Src: /src/cpython/Objects/moduleobject.c:1508,1
    - Dst: PyModuleObject*::md_state_traverse
      Src: /src/cpython/Objects/moduleobject.c:1512,1
    - Dst: Py_VISIT
      Src: /src/cpython/Objects/moduleobject.c:1517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1503
    functionDepth: 2
    functionLinenumber: 1503
    functionLinenumberEnd: 1519
    functionName: module_traverse
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyModule_CAST
    - PyModuleObject*::md_state_traverse
    - Py_VISIT
    - assert_def_missing_or_redundant
    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:1524,1
    - Dst: assert_def_missing_or_redundant
      Src: /src/cpython/Objects/moduleobject.c:1526,1
    - Dst: PyModuleObject*::md_state_clear
      Src: /src/cpython/Objects/moduleobject.c:1530,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:1531,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Objects/moduleobject.c:1532,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/moduleobject.c:1540,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1542
    functionName: module_clear
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 22
    functionsReached:
    - assert_def_missing_or_redundant
    - PyModuleObject*::md_state_clear
    - _PyModule_CAST
    - Py_CLEAR
    - PyErr_Occurred
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: int
    signature: int module_clear(PyObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_CheckExact
      Src: /src/cpython/Objects/moduleobject.c:1549,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/moduleobject.c:1550,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/moduleobject.c:1552,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1552,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:1556,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Objects/moduleobject.c:1557,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1557,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Objects/moduleobject.c:1559,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/moduleobject.c:1561,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Objects/moduleobject.c:1562,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1566,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1570,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1544
    functionDepth: 7
    functionLinenumber: 1544
    functionLinenumberEnd: 1572
    functionName: module_dir
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Keys
    - _PyObject_CallNoArgs
    - PyObject_GetAttr
    - PyDict_Check
    - PyErr_Occurred
    - PyErr_Format
    - Py_XDECREF
    - PyModule_CheckExact
    - Py_NewRef
    - PyDict_GetItemWithError
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_dir(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/moduleobject.c:1583,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1583,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:1587,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyModuleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1580
    functionDepth: 3
    functionLinenumber: 1580
    functionLinenumberEnd: 1593
    functionName: module_load_dict
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - PyDict_Check
    - PyErr_Format
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_load_dict(PyModuleObject *m)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CAST
      Src: /src/cpython/Objects/moduleobject.c:1598,1
    - Dst: module_load_dict
      Src: /src/cpython/Objects/moduleobject.c:1600,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1606,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1606,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1608,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1608,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/moduleobject.c:1609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1595
    functionDepth: 10
    functionLinenumber: 1595
    functionLinenumberEnd: 1614
    functionName: module_get_annotate
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - _PyModule_CAST
    - Py_CLEAR
    - Py_DECREF
    - PyDict_GetItemRef
    - module_load_dict
    - _Py_ID
    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:1619,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:1621,1
    - Dst: module_load_dict
      Src: /src/cpython/Objects/moduleobject.c:1625,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/moduleobject.c:1630,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/moduleobject.c:1630,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/moduleobject.c:1631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1632,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1636,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1637,1
    - Dst: Py_IsNone
      Src: /src/cpython/Objects/moduleobject.c:1640,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/moduleobject.c:1641,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1646,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1616
    functionDepth: 10
    functionLinenumber: 1616
    functionLinenumberEnd: 1648
    functionName: module_set_annotate
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyDict_Pop
    - PyErr_SetString
    - PyDict_SetItem
    - _PyModule_CAST
    - Py_IsNone
    - Py_DECREF
    - module_load_dict
    - _Py_ID
    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:1653,1
    - Dst: module_load_dict
      Src: /src/cpython/Objects/moduleobject.c:1655,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1661,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1661,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1663,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1663,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1664,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/cpython/Objects/moduleobject.c:1669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1675,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Objects/moduleobject.c:1682,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1682,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1684,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Objects/moduleobject.c:1687,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Objects/moduleobject.c:1688,1
    - Dst: _PyObject_CallOneArg
      Src: /src/cpython/Objects/moduleobject.c:1689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1692,1
    - Dst: PyDict_Check
      Src: /src/cpython/Objects/moduleobject.c:1695,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/moduleobject.c:1696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1700,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1701,1
    - Dst: PyDict_New
      Src: /src/cpython/Objects/moduleobject.c:1706,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/moduleobject.c:1708,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1711,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1712,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/moduleobject.c:1714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1718,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1650
    functionDepth: 11
    functionLinenumber: 1650
    functionLinenumberEnd: 1720
    functionName: module_get_annotations
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallOneArg
    - PyCallable_Check
    - _PyLong_GetOne
    - PyDict_SetItem
    - _PyModule_CAST
    - PyDict_New
    - PyDict_Check
    - Py_CLEAR
    - PyErr_Format
    - _PyModuleSpec_IsInitializing
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_XDECREF
    - module_load_dict
    - _Py_ID
    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:1725,1
    - Dst: module_load_dict
      Src: /src/cpython/Objects/moduleobject.c:1727,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Objects/moduleobject.c:1735,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1735,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/moduleobject.c:1739,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1739,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/moduleobject.c:1741,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1741,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Objects/moduleobject.c:1748,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/moduleobject.c:1748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/moduleobject.c:1752,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1722
    functionDepth: 10
    functionLinenumber: 1722
    functionLinenumberEnd: 1754
    functionName: module_set_annotations
    functionSourceFile: /src/cpython/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyDict_Pop
    - PyDict_SetItem
    - _PyModule_CAST
    - Py_DECREF
    - module_load_dict
    - _Py_ID
    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_atomic_cas_weak_release
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - 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_atomic_cas_weak_release
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - 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_segment_map_index_of
    - mi_likely
    - _mi_ptr_segment
    - 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_arena_contains
    - _mi_segment_of
    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_align_up
    - mi_unlikely
    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_add_acq_rel
    - mi_prim_get_default_heap
    - _mi_align_up
    - _mi_heap_random_next
    - mi_atomic_cas_strong_acq_rel
    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_stat_decrease
    - _mi_prim_free
    - _mi_os_page_size
    - MI_UNUSED
    - _mi_warning_message
    - mi_assert_internal
    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_assert
    - mi_os_prim_free
    - _mi_os_good_alloc_size
    - mi_memkind_is_os
    - 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_track_mem_defined
    - _mi_stat_increase
    - _mi_prim_alloc
    - mi_track_mem_undefined
    - mi_stat_counter_increase
    - _mi_os_page_size
    - _mi_warning_message
    - mi_assert_internal
    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_os_commit
    - mi_os_prim_free
    - _mi_align_up
    - _mi_os_page_size
    - mi_os_prim_alloc
    - mi_align_up_ptr
    - mi_assert_internal
    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_memid_none
    - _mi_os_good_alloc_size
    - _mi_memid_create_os
    - mi_os_prim_alloc
    - MI_UNUSED
    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_align_up
    - _mi_os_good_alloc_size
    - mi_os_prim_alloc_aligned
    - _mi_memid_create_os
    - _mi_os_page_size
    - _mi_memid_none
    - MI_UNUSED
    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_assert
    - _mi_is_aligned
    - _mi_os_decommit
    - _mi_align_up
    - _mi_os_alloc_aligned
    - _mi_os_page_size
    - _mi_memid_none
    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_assert
    - mi_align_down_ptr
    - _mi_os_page_size
    - mi_align_up_ptr
    - mi_assert_internal
    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_increase
    - _mi_stat_counter_increase
    - mi_assert_expensive
    - mi_track_mem_undefined
    - _mi_prim_commit
    - mi_os_page_align_areax
    - mi_mem_is_zero
    - MI_UNUSED
    - _mi_warning_message
    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_stat_decrease
    - _mi_prim_decommit
    - mi_os_page_align_area_conservative
    - MI_UNUSED
    - _mi_warning_message
    - mi_assert_internal
    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_increase
    - _mi_stat_counter_increase
    - _mi_prim_reset
    - memset
    - mi_os_page_align_area_conservative
    - _mi_warning_message
    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_stat_increase
    - _mi_os_reset
    - _mi_stat_counter_increase
    - mi_option_is_enabled
    - mi_os_decommit_ex
    - _mi_preloading
    - mi_option_get
    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_os_page_align_area_conservative
    - _mi_prim_protect
    - _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_prim_get_default_heap
    - _mi_heap_random_next
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_load_relaxed
    - mi_assert_internal
    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_track_mem_defined
    - mi_assert
    - _mi_stat_increase
    - _mi_clock_end
    - _mi_clock_start
    - mi_os_claim_huge_pages
    - _mi_prim_alloc_huge_os_pages
    - mi_os_prim_free
    - _mi_memid_create_os
    - _mi_memid_none
    - _mi_warning_message
    - mi_assert_internal
    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_load_acquire
    - mi_atomic_store_release
    - _mi_prim_numa_node_count
    - _mi_verbose_message
    - mi_option_get
    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_atomic_addi64_relaxed
    - mi_is_in_main
    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_atomic_addi64_relaxed
    - mi_is_in_main
    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_counter_add
    - mi_stat_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_fprintf
    - mi_print_amount
    - mi_print_count
    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
    - _mi_bin_size
    - snprintf
    - 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_stats_print_bins
    - mi_stat_print_ex
    - mi_printf_amount
    - _mi_fprintf
    - _mi_os_numa_node_count
    - mi_stat_counter_print_avg
    - mi_stat_peak_print
    - mi_process_info
    - mi_stat_counter_print
    - mi_stat_add
    - 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_clock_start
    - memset
    - mi_stats_get_default
    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_print
    - mi_stats_get_default
    - mi_stats_merge_from
    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_print
    - mi_stats_get_default
    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_clock_end
    - mi_atomic_loadi64_relaxed
    - _mi_prim_process_info
    - _mi_memzero_var
    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_assert_internal
    - mi_arena_id_index
    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_memzero
    - mi_atomic_add_acq_rel
    - _mi_align_up
    - _mi_memid_none
    - _mi_memid_create
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_load_relaxed
    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_os_alloc
    - _mi_memid_none
    - mi_arena_static_zalloc
    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_assert
    - _mi_os_free
    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_bitmap_index_field
    - _mi_bitmap_try_find_from_claim_across
    - mi_atomic_store_relaxed
    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_block_size
    - _mi_bitmap_claim_across
    - mi_arena_try_claim
    - mi_arena_id_index
    - _mi_bitmap_is_claimed_across
    - _mi_os_commit
    - mi_arena_block_start
    - mi_memid_create_arena
    - MI_UNUSED
    - mi_assert_internal
    - _mi_bitmap_unclaim_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_UNUSED_RELEASE
    - mi_atomic_load_ptr_acquire
    - mi_arena_try_alloc_at
    - mi_arena_block_size
    - mi_arena_id_index
    - _mi_is_aligned
    - _mi_arena_id_none
    - mi_arena_id_is_suitable
    - mi_block_count_of_size
    - mi_atomic_load_relaxed
    - mi_assert_internal
    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_arena_id_none
    - mi_likely
    - mi_arena_try_alloc_at_id
    - mi_arena_id_create
    - MI_UNUSED
    - mi_atomic_load_relaxed
    - mi_assert_internal
    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_atomic_load_acquire
    - mi_option_get_size
    - _mi_arena_id_none
    - _mi_align_up
    - _mi_preloading
    - mi_reserve_os_memory_ex
    - mi_option_get
    - _mi_os_has_virtual_reserve
    - _mi_os_has_overcommit
    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_os_alloc_aligned_at_offset
    - mi_arena_try_alloc
    - _mi_os_numa_node
    - _mi_arena_id_none
    - mi_option_is_enabled
    - mi_arena_reserve
    - _mi_os_alloc_aligned
    - mi_arena_try_alloc_at_id
    - _mi_memid_none
    - mi_assert_internal
    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_atomic_load_ptr_acquire
    - mi_arena_block_size
    - mi_arena_id_index
    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_os_purge_ex
    - mi_arena_block_size
    - _mi_stat_increase
    - _mi_os_purge
    - _mi_bitmap_is_claimed_across
    - mi_option_is_enabled
    - mi_arena_block_start
    - mi_assert_internal
    - _mi_bitmap_unclaim_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_atomic_loadi64_relaxed
    - _mi_bitmap_claim_across
    - mi_arena_purge_delay
    - _mi_clock_now
    - mi_arena_purge
    - mi_atomic_addi64_acq_rel
    - _mi_preloading
    - mi_atomic_storei64_release
    - mi_assert_internal
    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_atomic_loadi64_relaxed
    - mi_atomic_load_acquire
    - mi_arena_purge_delay
    - _mi_clock_now
    - mi_arena_purge_range
    - _mi_bitmap_unclaim
    - mi_atomic_casi64_strong_acq_rel
    - mi_bitmap_index_create
    - mi_atomic_load_relaxed
    - _mi_bitmap_try_claim
    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_atomic_load_ptr_acquire
    - mi_atomic_load_acquire
    - mi_arena_purge_delay
    - _mi_clock_now
    - _mi_preloading
    - mi_arena_try_purge
    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_atomic_load_ptr_acquire
    - mi_arena_try_purge
    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_os_free
    - mi_atomic_load_ptr_acquire
    - mi_arena_schedule_purge
    - _mi_stat_decrease
    - mi_track_mem_undefined
    - mi_arenas_try_purge
    - mi_arena_memid_indices
    - mi_block_count_of_size
    - _mi_error_message
    - mi_memkind_is_os
    - mi_bitmap_index_field
    - mi_track_mem_noaccess
    - mi_assert_internal
    - _mi_bitmap_unclaim_across
    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_atomic_load_ptr_acquire
    - _mi_os_free
    - mi_arena_size
    - mi_arena_meta_free
    - mi_atomic_store_ptr_release
    - mi_memkind_is_os
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_load_relaxed
    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_load_ptr_relaxed
    - mi_atomic_increment_acq_rel
    - mi_atomic_decrement_acq_rel
    - mi_atomic_store_ptr_release
    - mi_arena_id_create
    - mi_assert_internal
    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_arena_add
    - mi_arena_meta_zalloc
    - _mi_arena_id_none
    - _mi_bitmap_claim
    - _mi_divide_up
    - memset
    - mi_bitmap_index_create
    - mi_assert_internal
    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_memid_create
    - mi_manage_os_memory_ex2
    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_manage_os_memory_ex2
    - _mi_arena_id_none
    - _mi_align_up
    - _mi_divide_up
    - _mi_os_alloc_aligned
    - _mi_verbose_message
    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_atomic_load_relaxed
    - _mi_verbose_message
    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_atomic_load_ptr_relaxed
    - mi_debug_show_bitmap
    - mi_atomic_load_relaxed
    - _mi_verbose_message
    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_free
    - mi_manage_os_memory_ex2
    - _mi_os_alloc_huge_os_pages
    - _mi_os_numa_node_count
    - _mi_verbose_message
    - _mi_warning_message
    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:
    - read32
    - memset
    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
    - chacha_block
    - mi_assert_internal
    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_prim_clock_now
    - mi_assert_internal
    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:
    - chacha_init
    - _mi_prim_random_buf
    - _mi_os_random_weak
    - _mi_random_shuffle
    - _mi_warning_message
    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_heap_malloc_zero_ex
    - _mi_heap_malloc_zero
    - _mi_is_power_of_two
    - _mi_error_message
    - mi_unlikely
    - mi_assert_internal
    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_count_size_overflow
    - mi_heap_zalloc_aligned_at
    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_prim_get_default_heap
    - mi_heap_zalloc_aligned_at
    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_prim_get_default_heap
    - mi_heap_zalloc_aligned
    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_prim_get_default_heap
    - mi_heap_calloc_aligned_at
    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_prim_get_default_heap
    - mi_heap_calloc_aligned
    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_memzero
    - mi_assert
    - mi_heap_malloc_zero_aligned_at
    - _mi_memcpy_aligned
    - _mi_heap_realloc_zero
    - mi_heap_malloc_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_aligned_at
    - mi_assert
    - _mi_heap_realloc_zero
    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_prim_get_default_heap
    - mi_heap_realloc_aligned_at
    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_prim_get_default_heap
    - mi_heap_realloc_aligned
    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_prim_get_default_heap
    - mi_heap_rezalloc_aligned
    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_prim_get_default_heap
    - mi_heap_recalloc_aligned_at
    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_prim_get_default_heap
    - mi_heap_recalloc_aligned
    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_commit_mask_create_full
    - mi_assert_internal
    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_slice_index
    - mi_span_queue_for
    - mi_segment_slices_end
    - mi_slice_is_used
    - mi_commit_mask_all_set
    - _mi_thread_id
    - mi_span_queue_contains
    - _mi_ptr_cookie
    - mi_assert_internal
    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_page
    - mi_page_to_slice
    - _mi_segment_page_start_from_slice
    - _mi_ptr_segment
    - mi_assert_internal
    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_align_up
    - mi_assert_internal
    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_increase
    - _mi_stat_decrease
    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_commit_mask_committed_size
    - mi_segments_track_size
    - _mi_segment_map_freed_at
    - mi_segment_size
    - _mi_arena_free
    - mi_segment_info_size
    - _mi_abandoned_await_readers
    - _mi_os_unprotect
    - _mi_os_page_size
    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_commit_mask_create_empty
    - mi_commit_mask_create
    - _mi_align_down
    - mi_segment_size
    - _mi_align_up
    - mi_segment_info_size
    - _mi_ptr_segment
    - _mi_warning_message
    - mi_assert_internal
    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_commit_mask_any_set
    - _mi_commit_mask_committed_size
    - _mi_stat_decrease
    - mi_commit_mask_all_set
    - _mi_clock_now
    - _mi_os_commit
    - mi_commit_mask_create_intersect
    - mi_commit_mask_is_empty
    - mi_commit_mask_set
    - mi_option_get
    - mi_commit_mask_clear
    - mi_assert_internal
    - mi_segment_commit_mask
    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_all_set
    - mi_segment_commit
    - mi_commit_mask_is_full
    - mi_commit_mask_is_empty
    - mi_assert_internal
    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_committed_size
    - _mi_stat_increase
    - _mi_os_purge
    - mi_commit_mask_all_set
    - mi_commit_mask_create_intersect
    - mi_commit_mask_is_empty
    - mi_assert_internal
    - mi_commit_mask_clear
    - mi_commit_mask_any_set
    - mi_segment_commit_mask
    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_clock_now
    - mi_commit_mask_create_intersect
    - mi_commit_mask_is_empty
    - mi_segment_purge
    - mi_commit_mask_set
    - mi_option_get
    - mi_segment_try_purge
    - mi_assert_internal
    - mi_segment_commit_mask
    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_commit_mask_create_empty
    - _mi_clock_now
    - mi_commit_mask_is_empty
    - mi_segment_purge
    - mi_commit_mask_foreach
    - mi_assert_internal
    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_schedule_purge
    - mi_span_queue_for
    - mi_slice_start
    - mi_segment_is_abandoned
    - mi_span_queue_push
    - mi_assert_internal
    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_ptr_segment
    - mi_span_queue_for
    - mi_span_queue_delete
    - 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_segment_span_free
    - mi_slice_index
    - mi_segment_slices_end
    - mi_segment_is_abandoned
    - mi_slice_first
    - _mi_ptr_segment
    - mi_segment_span_remove_from_queue
    - 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_segment_slices_end
    - mi_page_block_size
    - mi_segment_ensure_committed
    - mi_slice_to_page
    - mi_assert_internal
    - _mi_segment_page_start_from_slice
    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_segment_span_free
    - _mi_ptr_segment
    - 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_slice_index
    - mi_span_queue_for
    - _mi_arena_memid_is_suitable
    - mi_segment_span_free_coalesce
    - mi_segment_span_allocate
    - mi_span_queue_delete
    - mi_segment_slice_split
    - _mi_ptr_segment
    - mi_assert_internal
    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_arena_alloc_aligned
    - mi_commit_mask_create_empty
    - mi_commit_mask_create
    - _mi_os_commit
    - mi_segments_track_size
    - _mi_align_up
    - _mi_divide_up
    - mi_commit_mask_create_full
    - mi_segment_calculate_slices
    - _mi_arena_free
    - _mi_segment_map_allocated_at
    - mi_atomic_store_ptr_release
    - mi_option_get
    - mi_assert_internal
    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_segment_span_free
    - _mi_os_protect
    - mi_segment_size
    - _mi_ptr_cookie
    - mi_segment_info_size
    - mi_assert_expensive
    - mi_segment_is_valid
    - mi_commit_mask_is_empty
    - mi_commit_mask_is_full
    - mi_option_get
    - _mi_stat_increase
    - mi_option_is_enabled
    - _mi_thread_id
    - mi_segment_calculate_slices
    - _mi_os_page_size
    - _mi_current_thread_count
    - _mi_memzero
    - mi_segment_span_allocate
    - mi_segment_ensure_committed
    - mi_segment_os_alloc
    - mi_assert_internal
    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_slice_index
    - mi_segment_slices_end
    - _mi_stat_decrease
    - mi_segment_span_remove_from_queue
    - mi_segment_os_free
    - mi_segment_info_size
    - MI_UNUSED
    - mi_assert_internal
    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_memzero
    - _mi_stat_decrease
    - _mi_os_reset
    - mi_page_block_size
    - _mi_page_start
    - mi_segment_span_free_coalesce
    - mi_option_is_enabled
    - mi_page_to_slice
    - mi_page_all_free
    - _mi_ptr_segment
    - mi_assert_internal
    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_assert
    - _mi_page_segment
    - mi_assert_expensive
    - mi_segment_is_valid
    - mi_segment_free
    - mi_segment_abandon
    - mi_segment_page_clear
    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_atomic_cas_ptr_weak_release
    - mi_atomic_increment_relaxed
    - mi_atomic_load_ptr_relaxed
    - mi_atomic_store_ptr_release
    - mi_assert_internal
    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_sub_relaxed
    - mi_tagged_segment_ptr
    - mi_atomic_load_ptr_relaxed
    - mi_atomic_exchange_ptr_acq_rel
    - mi_atomic_add_relaxed
    - mi_atomic_store_ptr_release
    - mi_atomic_cas_weak_release
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_load_relaxed
    - mi_tagged_segment
    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_tagged_segment_ptr
    - mi_atomic_increment_relaxed
    - mi_atomic_load_ptr_relaxed
    - mi_atomic_store_ptr_release
    - mi_atomic_cas_weak_release
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - mi_tagged_segment
    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_yield
    - mi_atomic_load_acquire
    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_tagged_segment_ptr
    - mi_likely
    - mi_abandoned_visited_revisit
    - mi_atomic_load_relaxed
    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_stat_increase
    - mi_segment_is_valid
    - mi_assert_expensive
    - mi_option_is_enabled
    - mi_segments_track_size
    - mi_segment_size
    - mi_atomic_load_ptr_relaxed
    - mi_atomic_store_ptr_release
    - mi_segment_span_remove_from_queue
    - mi_abandoned_push
    - mi_segment_try_purge
    - mi_assert_internal
    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_assert
    - _mi_stat_increase
    - mi_page_heap
    - _mi_page_segment
    - mi_assert_expensive
    - mi_segment_is_valid
    - mi_segment_abandon
    - mi_page_thread_free_flag
    - mi_assert_internal
    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_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1289,1
    - Dst: mi_segment_page_clear
      Src: /src/cpython/Objects/mimalloc/segment.c:1292,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1293,1
    - Dst: mi_slice_is_used
      Src: /src/cpython/Objects/mimalloc/segment.c:1293,1
    - Dst: mi_page_has_any_available
      Src: /src/cpython/Objects/mimalloc/segment.c:1299,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    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: 1314
      start: 1267
    functionDepth: 12
    functionLinenumber: 1267
    functionLinenumberEnd: 1314
    functionName: mi_segment_check_free
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _PyMem_mi_page_is_safe_to_free
    - mi_slice_is_used
    - _mi_stat_decrease
    - mi_segment_is_abandoned
    - mi_page_has_any_available
    - mi_slice_to_page
    - mi_page_all_free
    - mi_segment_page_clear
    - _mi_page_free_collect
    - mi_slices_start_iterate
    - mi_assert_internal
    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: 1326
      start: 1316
    functionDepth: 0
    functionLinenumber: 1316
    functionLinenumberEnd: 1326
    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:1331,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1331,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/segment.c:1332,1
    - Dst: mi_segment_is_valid
      Src: /src/cpython/Objects/mimalloc/segment.c:1332,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/segment.c:1335,1
    - Dst: mi_segments_track_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1337,1
    - Dst: mi_segment_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1337,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1338,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:1339,1
    - Dst: mi_slices_start_iterate
      Src: /src/cpython/Objects/mimalloc/segment.c:1343,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1345,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1346,1
    - Dst: mi_slice_is_used
      Src: /src/cpython/Objects/mimalloc/segment.c:1347,1
    - Dst: mi_slice_to_page
      Src: /src/cpython/Objects/mimalloc/segment.c:1349,1
    - Dst: mi_heap_by_tag
      Src: /src/cpython/Objects/mimalloc/segment.c:1350,1
    - Dst: mi_assert_internal
      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_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/segment.c:1352,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1353,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/segment.c:1353,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1354,1
    - Dst: _mi_stat_decrease
      Src: /src/cpython/Objects/mimalloc/segment.c:1355,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/segment.c:1358,1
    - Dst: _mi_page_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1359,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/segment.c:1360,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1361,1
    - Dst: _PyMem_mi_page_is_safe_to_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1361,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1365,1
    - Dst: mi_segment_page_clear
      Src: /src/cpython/Objects/mimalloc/segment.c:1367,1
    - Dst: _mi_page_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1371,1
    - Dst: mi_page_has_any_available
      Src: /src/cpython/Objects/mimalloc/segment.c:1372,1
    - Dst: mi_segment_span_free_coalesce
      Src: /src/cpython/Objects/mimalloc/segment.c:1380,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1382,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/segment.c:1386,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1388,1
    - Dst: mi_segment_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1389,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    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: 1395
      start: 1330
    functionDepth: 14
    functionLinenumber: 1330
    functionLinenumberEnd: 1395
    functionName: mi_segment_reclaim
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_page_set_heap
    - mi_segments_track_size
    - mi_segment_size
    - mi_slices_start_iterate
    - mi_page_thread_free_flag
    - mi_slice_is_used
    - mi_segment_span_free_coalesce
    - mi_segment_is_valid
    - mi_assert_expensive
    - mi_slice_to_page
    - mi_segment_page_clear
    - _mi_page_free_collect
    - mi_assert
    - mi_page_heap
    - _mi_thread_id
    - mi_atomic_load_ptr_relaxed
    - mi_segment_free
    - mi_heap_by_tag
    - _PyMem_mi_page_is_safe_to_free
    - _mi_page_use_delayed_free
    - _mi_stat_decrease
    - mi_page_has_any_available
    - mi_page_all_free
    - mi_assert_internal
    - _mi_page_reclaim
    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:1400,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1401,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: 1403
      start: 1398
    functionDepth: 15
    functionLinenumber: 1398
    functionLinenumberEnd: 1403
    functionName: _mi_abandoned_reclaim_all
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_abandoned_pop
    - mi_segment_reclaim
    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:1409,1
    - Dst: mi_abandoned_pop
      Src: /src/cpython/Objects/mimalloc/segment.c:1410,1
    - Dst: _mi_heap_memid_is_suitable
      Src: /src/cpython/Objects/mimalloc/segment.c:1414,1
    - Dst: mi_segment_check_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1415,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1422,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1428,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1432,1
    - Dst: mi_segment_try_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:1436,1
    - Dst: mi_abandoned_visited_push
      Src: /src/cpython/Objects/mimalloc/segment.c:1437,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: 1441
      start: 1405
    functionDepth: 15
    functionLinenumber: 1405
    functionLinenumberEnd: 1441
    functionName: mi_segment_try_reclaim
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_abandoned_pop
    - _mi_heap_memid_is_suitable
    - mi_segment_reclaim
    - mi_segment_check_free
    - mi_option_get_clamp
    - mi_segment_try_purge
    - mi_abandoned_visited_push
    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:1450,1
    - Dst: mi_abandoned_pop
      Src: /src/cpython/Objects/mimalloc/segment.c:1452,1
    - Dst: mi_segment_check_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1453,1
    - Dst: mi_segment_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1458,1
    - Dst: mi_segment_try_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:1463,1
    - Dst: mi_abandoned_visited_push
      Src: /src/cpython/Objects/mimalloc/segment.c:1464,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: 1467
      start: 1444
    functionDepth: 15
    functionLinenumber: 1444
    functionLinenumberEnd: 1467
    functionName: _mi_abandoned_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_abandoned_pop
    - mi_abandoned_visited_revisit
    - mi_segment_reclaim
    - mi_segment_check_free
    - mi_segment_try_purge
    - mi_abandoned_visited_push
    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:1475,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1476,1
    - Dst: mi_segment_try_reclaim
      Src: /src/cpython/Objects/mimalloc/segment.c:1480,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1483,1
    - Dst: mi_segment_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1491,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: 1492
      start: 1473
    functionDepth: 16
    functionLinenumber: 1473
    functionLinenumberEnd: 1492
    functionName: mi_segment_reclaim_or_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_segment_alloc
    - mi_assert_internal
    - mi_segment_try_reclaim
    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:1501,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:1504,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1506,1
    - Dst: mi_segments_page_find_and_allocate
      Src: /src/cpython/Objects/mimalloc/segment.c:1507,1
    - Dst: mi_segment_reclaim_or_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1510,1
    - Dst: mi_segments_page_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1516,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1519,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1520,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1520,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/segment.c:1520,1
    - Dst: mi_segment_try_purge
      Src: /src/cpython/Objects/mimalloc/segment.c:1521,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1521,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: 1523
      start: 1499
    functionDepth: 17
    functionLinenumber: 1499
    functionLinenumberEnd: 1523
    functionName: mi_segments_page_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 1
    functionsReached:
    - mi_segments_page_find_and_allocate
    - mi_segment_try_purge
    - _mi_thread_id
    - _mi_align_up
    - _mi_ptr_segment
    - mi_assert_internal
    - mi_segments_page_alloc
    - mi_segment_reclaim_or_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:1534,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1536,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1537,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1537,1
    - Dst: _mi_segment_page_start
      Src: /src/cpython/Objects/mimalloc/segment.c:1545,1
    - Dst: _mi_align_up
      Src: /src/cpython/Objects/mimalloc/segment.c:1550,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1551,1
    - Dst: _mi_is_aligned
      Src: /src/cpython/Objects/mimalloc/segment.c:1551,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1552,1
    - Dst: _mi_os_reset
      Src: /src/cpython/Objects/mimalloc/segment.c:1555,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: 1559
      start: 1531
    functionDepth: 14
    functionLinenumber: 1531
    functionLinenumberEnd: 1559
    functionName: mi_segment_huge_page_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_os_reset
    - mi_segment_alloc
    - mi_page_block_size
    - _mi_is_aligned
    - _mi_align_up
    - _mi_segment_page_start
    - mi_assert_internal
    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:1565,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1566,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1566,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1567,1
    - Dst: mi_atomic_load_relaxed
      Src: /src/cpython/Objects/mimalloc/segment.c:1567,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/mimalloc/segment.c:1570,1
    - Dst: mi_atomic_cas_strong_acq_rel
      Src: /src/cpython/Objects/mimalloc/segment.c:1573,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/segment.c:1574,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/segment.c:1578,1
    - Dst: _mi_segment_page_free
      Src: /src/cpython/Objects/mimalloc/segment.c:1580,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1584,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: 1587
      start: 1563
    functionDepth: 15
    functionLinenumber: 1563
    functionLinenumberEnd: 1587
    functionName: _mi_segment_huge_page_free
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_assert
    - _mi_page_segment
    - mi_heap_get_default
    - _mi_segment_page_free
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - 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: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_page_segment
      Src: /src/cpython/Objects/mimalloc/segment.c:1594,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1595,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1596,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/segment.c:1598,1
    - Dst: _mi_os_reset
      Src: /src/cpython/Objects/mimalloc/segment.c:1602,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: 1605
      start: 1591
    functionDepth: 5
    functionLinenumber: 1591
    functionLinenumberEnd: 1605
    functionName: _mi_segment_huge_page_reset
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_os_reset
    - _mi_page_segment
    - mi_usable_size
    - MI_UNUSED
    - mi_assert_internal
    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:1613,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1614,1
    - Dst: _mi_is_power_of_two
      Src: /src/cpython/Objects/mimalloc/segment.c:1614,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/segment.c:1615,1
    - Dst: mi_segment_huge_page_alloc
      Src: /src/cpython/Objects/mimalloc/segment.c:1617,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: 1618
      start: 1611
    functionDepth: 15
    functionLinenumber: 1611
    functionLinenumberEnd: 1618
    functionName: _mi_segment_page_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - _mi_is_power_of_two
    - mi_unlikely
    - mi_assert_internal
    - mi_segment_huge_page_alloc
    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:1643,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/segment.c:1644,1
    - Dst: _mi_heap_area_visit_blocks
      Src: /src/cpython/Objects/mimalloc/segment.c:1646,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: 1651
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1651
    functionName: mi_segment_visit_page
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - visitor
    - _mi_heap_area_visit_blocks
    - _mi_heap_area_init
    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:1655,1
    - Dst: mi_slice_is_used
      Src: /src/cpython/Objects/mimalloc/segment.c:1657,1
    - Dst: mi_slice_to_page
      Src: /src/cpython/Objects/mimalloc/segment.c:1658,1
    - Dst: mi_segment_visit_page
      Src: /src/cpython/Objects/mimalloc/segment.c:1660,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: 1666
      start: 1653
    functionDepth: 2
    functionLinenumber: 1653
    functionLinenumberEnd: 1666
    functionName: mi_segment_visit_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/segment.c
    functionUses: 0
    functionsReached:
    - mi_slice_is_used
    - mi_slices_start_iterate
    - mi_segment_visit_page
    - mi_slice_to_page
    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:1671,1
    - Dst: mi_segment_visit_pages
      Src: /src/cpython/Objects/mimalloc/segment.c:1673,1
    - Dst: mi_segment_visit_pages
      Src: /src/cpython/Objects/mimalloc/segment.c:1679,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: 1684
      start: 1669
    functionDepth: 3
    functionLinenumber: 1669
    functionLinenumberEnd: 1684
    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_block_next
    - mi_assert_internal
    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_page_segment
    - mi_assert_expensive
    - mi_page_usable_block_size
    - mi_block_next
    - 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_list_is_valid
    - _mi_page_start
    - _mi_page_segment
    - mi_page_usable_block_size
    - mi_assert_expensive
    - mi_block_next
    - _mi_segment_page_start
    - mi_mem_is_zero
    - mi_page_thread_free
    - mi_assert_internal
    - mi_page_list_count
    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_heap
    - _mi_page_segment
    - mi_page_block_size
    - mi_page_is_in_full
    - mi_page_queue_of
    - mi_page_queue_contains
    - mi_heap_contains_queue
    - mi_page_is_valid_init
    - mi_assert_internal
    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_atomic_yield
    - _mi_page_try_use_delayed_free
    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_load_acquire
    - mi_atomic_yield
    - mi_tf_delayed
    - mi_atomic_cas_weak_release
    - mi_tf_set_delayed
    - mi_unlikely
    linkageType: ''
    returnType: bool
    signature: bool _mi_page_try_use_delayed_free(mi_page_t* page, mi_delayed_t delay,
      bool override_never)
  - BBCount: 4
    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
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 223
    functionName: _mi_page_thread_free_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _PyMem_mi_page_clear_qsbr
    - mi_tf_set_block
    - mi_tf_block
    - mi_atomic_cas_weak_acq_rel
    - mi_block_next
    - _mi_error_message
    - mi_atomic_load_relaxed
    - 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:226,1
    - Dst: mi_page_thread_free
      Src: /src/cpython/Objects/mimalloc/page.c:229,1
    - Dst: _mi_page_thread_free_collect
      Src: /src/cpython/Objects/mimalloc/page.c:230,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/page.c:235,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/page.c:245,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:248,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - page
    - force
    argTypes:
    - mi_page_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 256
    functionName: _mi_page_free_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 2
    functionsReached:
    - _mi_page_thread_free_collect
    - mi_likely
    - mi_block_next
    - mi_page_thread_free
    - mi_assert_internal
    - 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:245,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: if
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 2
    functionsReached:
    - mi_block_next
    - mi_block_set_next
    linkageType: ''
    returnType: else
    signature: else if (force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:266,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:266,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:268,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:268,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:269,1
    - Dst: mi_page_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/page.c:269,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:271,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:271,1
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:275,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:275,1
    - Dst: mi_page_queue_push
      Src: /src/cpython/Objects/mimalloc/page.c:276,1
    - Dst: _PyMem_mi_page_reclaimed
      Src: /src/cpython/Objects/mimalloc/page.c:277,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:278,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - page
    argTypes:
    - mi_heap_t*
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: _mi_page_reclaim
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - _PyMem_mi_page_reclaimed
    - mi_page_heap
    - _mi_page_segment
    - mi_assert_expensive
    - mi_page_block_size
    - mi_page_queue_push
    - _mi_page_is_valid
    - mi_page_queue
    - mi_page_is_valid_init
    - mi_page_thread_free_flag
    - mi_assert_internal
    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:284,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:285,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page.c:285,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:286,1
    - Dst: _mi_segment_page_alloc
      Src: /src/cpython/Objects/mimalloc/page.c:288,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:293,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:293,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:294,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:295,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:295,1
    - Dst: mi_page_queue_is_huge
      Src: /src/cpython/Objects/mimalloc/page.c:297,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:297,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:298,1
    - Dst: mi_page_init
      Src: /src/cpython/Objects/mimalloc/page.c:299,1
    - Dst: mi_heap_stat_increase
      Src: /src/cpython/Objects/mimalloc/page.c:300,1
    - Dst: mi_page_queue_push
      Src: /src/cpython/Objects/mimalloc/page.c:301,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:302,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:302,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: 304
      start: 282
    functionDepth: 16
    functionLinenumber: 282
    functionLinenumberEnd: 304
    functionName: mi_page_fresh_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_segment_page_alloc
    - mi_page_queue_is_huge
    - mi_page_block_size
    - _mi_page_segment
    - mi_page_queue_push
    - mi_assert_expensive
    - mi_heap_stat_increase
    - mi_heap_contains_queue
    - _mi_page_is_valid
    - mi_page_init
    - mi_assert_internal
    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:308,1
    - Dst: mi_heap_contains_queue
      Src: /src/cpython/Objects/mimalloc/page.c:308,1
    - Dst: mi_page_fresh_alloc
      Src: /src/cpython/Objects/mimalloc/page.c:309,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:311,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:311,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:312,1
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:312,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:312,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: 314
      start: 307
    functionDepth: 17
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: mi_page_fresh
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_block_size
    - mi_page_fresh_alloc
    - mi_heap_contains_queue
    - mi_page_queue
    - mi_assert_internal
    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:321,1
    - Dst: mi_atomic_yield
      Src: /src/cpython/Objects/mimalloc/page.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: _mi_heap_delayed_free_all
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_atomic_yield
    - _mi_heap_delayed_free_partial
    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:329,1
    - Dst: mi_atomic_cas_ptr_weak_acq_rel
      Src: /src/cpython/Objects/mimalloc/page.c:330,1
    - Dst: mi_block_nextx
      Src: /src/cpython/Objects/mimalloc/page.c:335,1
    - Dst: _mi_free_delayed_block
      Src: /src/cpython/Objects/mimalloc/page.c:337,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/page.c:342,1
    - Dst: mi_block_set_nextx
      Src: /src/cpython/Objects/mimalloc/page.c:344,1
    - Dst: mi_atomic_cas_ptr_weak_release
      Src: /src/cpython/Objects/mimalloc/page.c:345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 350
    functionName: _mi_heap_delayed_free_partial
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - mi_atomic_cas_ptr_weak_acq_rel
    - mi_atomic_cas_ptr_weak_release
    - _mi_free_delayed_block
    - mi_block_set_nextx
    - mi_block_nextx
    - mi_atomic_load_ptr_relaxed
    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:358,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:359,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:359,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:360,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:360,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:361,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:363,1
    - Dst: mi_page_set_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:365,1
    - Dst: mi_heap_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:366,1
    - Dst: mi_page_set_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:367,1
    - Dst: mi_page_queue_enqueue_from
      Src: /src/cpython/Objects/mimalloc/page.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 369
    functionName: _mi_page_unfull
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - mi_page_heap
    - mi_assert_expensive
    - mi_page_is_in_full
    - mi_page_queue_enqueue_from
    - _mi_page_is_valid
    - mi_heap_page_queue_of
    - mi_assert_internal
    - mi_page_set_in_full
    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:372,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:372,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:373,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:373,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:374,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:374,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:376,1
    - Dst: mi_page_queue_enqueue_from
      Src: /src/cpython/Objects/mimalloc/page.c:377,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:377,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/page.c:378,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: 379
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: mi_page_to_full
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_heap
    - mi_page_is_in_full
    - mi_page_queue_of
    - mi_page_immediate_available
    - mi_page_queue_enqueue_from
    - _mi_page_free_collect
    - mi_assert_internal
    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:387,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:388,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:388,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:389,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:389,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:390,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:390,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:392,1
    - Dst: llist_remove
      Src: /src/cpython/Objects/mimalloc/page.c:397,1
    - Dst: mi_page_queue_remove
      Src: /src/cpython/Objects/mimalloc/page.c:403,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:406,1
    - Dst: mi_page_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/page.c:406,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/page.c:407,1
    - Dst: mi_block_nextx
      Src: /src/cpython/Objects/mimalloc/page.c:411,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:412,1
    - Dst: _mi_ptr_page
      Src: /src/cpython/Objects/mimalloc/page.c:412,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:417,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:417,1
    - Dst: _mi_segment_page_abandon
      Src: /src/cpython/Objects/mimalloc/page.c:418,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: 419
      start: 386
    functionDepth: 11
    functionLinenumber: 386
    functionLinenumberEnd: 419
    functionName: _mi_page_abandon
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_set_heap
    - _mi_segment_page_abandon
    - mi_page_heap
    - _mi_ptr_page
    - mi_assert_expensive
    - llist_remove
    - mi_block_nextx
    - mi_page_queue_of
    - _mi_page_is_valid
    - mi_page_queue_remove
    - mi_page_thread_free_flag
    - mi_assert_internal
    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:424,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:425,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:425,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:426,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:426,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:427,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/page.c:427,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:428,1
    - Dst: mi_page_thread_free_flag
      Src: /src/cpython/Objects/mimalloc/page.c:428,1
    - Dst: mi_page_set_has_aligned
      Src: /src/cpython/Objects/mimalloc/page.c:431,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:433,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:436,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:437,1
    - Dst: mi_page_queue_remove
      Src: /src/cpython/Objects/mimalloc/page.c:443,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/page.c:446,1
    - Dst: _mi_segment_page_free
      Src: /src/cpython/Objects/mimalloc/page.c:447,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: 448
      start: 423
    functionDepth: 15
    functionLinenumber: 423
    functionLinenumberEnd: 448
    functionName: _mi_page_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 3
    functionsReached:
    - mi_page_set_heap
    - mi_page_heap
    - mi_assert_expensive
    - mi_page_set_has_aligned
    - mi_page_queue_of
    - mi_page_all_free
    - _mi_segment_page_free
    - _mi_page_is_valid
    - mi_page_queue_remove
    - mi_page_thread_free_flag
    - mi_assert_internal
    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:461,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:462,1
    - Dst: _mi_page_is_valid
      Src: /src/cpython/Objects/mimalloc/page.c:462,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:463,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/page.c:463,1
    - Dst: mi_page_set_has_aligned
      Src: /src/cpython/Objects/mimalloc/page.c:465,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:468,1
    - Dst: mi_page_queue_of
      Src: /src/cpython/Objects/mimalloc/page.c:476,1
    - Dst: mi_likely
      Src: /src/cpython/Objects/mimalloc/page.c:477,1
    - Dst: mi_page_queue_is_special
      Src: /src/cpython/Objects/mimalloc/page.c:477,1
    - Dst: mi_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:479,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/page.c:481,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:482,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:484,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:487,1
    - Dst: mi_page_all_free
      Src: /src/cpython/Objects/mimalloc/page.c:487,1
    - Dst: _PyMem_mi_page_maybe_free
      Src: /src/cpython/Objects/mimalloc/page.c:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - page
    argTypes:
    - mi_page_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 492
    functionName: _mi_page_retire
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _PyMem_mi_page_clear_qsbr
    - mi_page_heap
    - mi_assert_expensive
    - mi_stat_counter_increase
    - mi_page_queue_is_special
    - mi_page_set_has_aligned
    - mi_likely
    - mi_page_queue_of
    - mi_page_all_free
    - _mi_page_is_valid
    - _PyMem_mi_page_maybe_free
    - mi_assert_internal
    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:503,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:507,1
    - Dst: _PyMem_mi_page_maybe_free
      Src: /src/cpython/Objects/mimalloc/page.c:509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - heap
    - force
    argTypes:
    - mi_heap_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 524
    functionName: _mi_heap_collect_retired
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _PyMem_mi_page_maybe_free
    - mi_page_all_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:538,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:540,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:541,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:543,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:544,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:544,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:545,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:545,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:555,1
    - Dst: mi_page_block_at
      Src: /src/cpython/Objects/mimalloc/page.c:559,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/page.c:566,1
    - Dst: _mi_random_shuffle
      Src: /src/cpython/Objects/mimalloc/page.c:571,1
    - Dst: _mi_random_shuffle
      Src: /src/cpython/Objects/mimalloc/page.c:575,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:586,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:590,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: 592
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 592
    functionName: mi_page_free_list_extend_secure
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_start
    - _mi_page_segment
    - mi_page_block_size
    - mi_page_block_at
    - _mi_heap_random_next
    - _mi_random_shuffle
    - MI_UNUSED
    - mi_assert_internal
    - mi_block_set_next
    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:596,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:598,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:599,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:601,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:602,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:602,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:603,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:603,1
    - Dst: mi_page_block_at
      Src: /src/cpython/Objects/mimalloc/page.c:605,1
    - Dst: mi_page_block_at
      Src: /src/cpython/Objects/mimalloc/page.c:608,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:612,1
    - Dst: mi_block_set_next
      Src: /src/cpython/Objects/mimalloc/page.c:616,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: 618
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 618
    functionName: mi_page_free_list_extend
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _mi_page_start
    - _mi_page_segment
    - mi_page_block_size
    - mi_page_block_at
    - MI_UNUSED
    - mi_assert_internal
    - mi_block_set_next
    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:637,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:638,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:638,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:640,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:641,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:647,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:647,1
    - Dst: mi_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:648,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:657,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:665,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:666,1
    - Dst: mi_page_free_list_extend
      Src: /src/cpython/Objects/mimalloc/page.c:670,1
    - Dst: mi_page_free_list_extend_secure
      Src: /src/cpython/Objects/mimalloc/page.c:673,1
    - Dst: mi_stat_increase
      Src: /src/cpython/Objects/mimalloc/page.c:677,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:678,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:678,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: 679
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 679
    functionName: mi_page_extend_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_free_list_extend_secure
    - mi_assert
    - mi_stat_increase
    - _mi_page_start
    - _mi_page_segment
    - mi_assert_expensive
    - mi_stat_counter_increase
    - mi_page_free_list_extend
    - MI_UNUSED
    - mi_page_is_valid_init
    - mi_assert_internal
    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:683,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:684,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:685,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:686,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/page.c:688,1
    - Dst: _mi_segment_page_start
      Src: /src/cpython/Objects/mimalloc/page.c:694,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/page.c:695,1
    - Dst: mi_track_mem_noaccess
      Src: /src/cpython/Objects/mimalloc/page.c:696,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:697,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:697,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:698,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:699,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:701,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/page.c:703,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/page.c:704,1
    - Dst: mi_track_mem_defined
      Src: /src/cpython/Objects/mimalloc/page.c:709,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:710,1
    - Dst: mi_mem_is_zero
      Src: /src/cpython/Objects/mimalloc/page.c:710,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:717,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:720,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:722,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:723,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:725,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:726,1
    - Dst: mi_page_has_aligned
      Src: /src/cpython/Objects/mimalloc/page.c:726,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:728,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:729,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/page.c:731,1
    - Dst: mi_page_is_valid_init
      Src: /src/cpython/Objects/mimalloc/page.c:731,1
    - Dst: mi_page_extend_free
      Src: /src/cpython/Objects/mimalloc/page.c:734,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:735,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:735,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: 736
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 736
    functionName: mi_page_init
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - mi_page_set_heap
    - mi_track_mem_defined
    - mi_assert
    - mi_page_block_size
    - _mi_page_segment
    - mi_assert_expensive
    - _mi_heap_random_next
    - mi_page_has_aligned
    - _mi_segment_page_start
    - mi_page_immediate_available
    - mi_mem_is_zero
    - mi_track_mem_noaccess
    - MI_UNUSED
    - mi_page_is_valid_init
    - mi_assert_internal
    - mi_page_extend_free
    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:759,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:762,1
    - Dst: mi_page_extend_free
      Src: /src/cpython/Objects/mimalloc/page.c:768,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:769,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:769,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:775,1
    - Dst: mi_page_is_in_full
      Src: /src/cpython/Objects/mimalloc/page.c:775,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:775,1
    - Dst: mi_page_to_full
      Src: /src/cpython/Objects/mimalloc/page.c:776,1
    - Dst: mi_heap_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:781,1
    - Dst: _PyMem_mi_heap_collect_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:784,1
    - Dst: _mi_heap_collect_retired
      Src: /src/cpython/Objects/mimalloc/page.c:785,1
    - Dst: mi_page_fresh
      Src: /src/cpython/Objects/mimalloc/page.c:786,1
    - Dst: mi_page_queue_find_free_ex
      Src: /src/cpython/Objects/mimalloc/page.c:789,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/page.c:793,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:795,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:797,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:797,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: 799
      start: 744
    functionDepth: 18
    functionLinenumber: 744
    functionLinenumberEnd: 799
    functionName: mi_page_queue_find_free_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 1
    functionsReached:
    - mi_page_to_full
    - mi_page_queue_find_free_ex
    - mi_assert
    - _PyMem_mi_page_clear_qsbr
    - mi_page_fresh
    - _mi_heap_collect_retired
    - mi_page_is_in_full
    - _PyMem_mi_heap_collect_qsbr
    - mi_page_immediate_available
    - mi_heap_stat_counter_increase
    - _mi_page_free_collect
    - mi_page_extend_free
    - mi_assert_internal
    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:805,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/page.c:809,1
    - Dst: mi_page_extend_free
      Src: /src/cpython/Objects/mimalloc/page.c:810,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:811,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:811,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/page.c:816,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:819,1
    - Dst: _PyMem_mi_page_clear_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:821,1
    - Dst: mi_page_queue_find_free_ex
      Src: /src/cpython/Objects/mimalloc/page.c:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - heap
    - size
    argTypes:
    - mi_heap_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 804
    functionDepth: 19
    functionLinenumber: 804
    functionLinenumberEnd: 826
    functionName: mi_find_free_page
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_queue_find_free_ex
    - _PyMem_mi_page_clear_qsbr
    - mi_page_immediate_available
    - _mi_heap_random_next
    - _mi_page_free_collect
    - mi_page_queue
    - mi_assert_internal
    - mi_page_extend_free
    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:843,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/page.c:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - heap
    - force
    argTypes:
    - mi_heap_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 846
    functionName: _mi_deferred_free
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_atomic_load_ptr_relaxed
    - deferred_free
    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: 851
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 851
    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:865,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:866,1
    - Dst: mi_bin
      Src: /src/cpython/Objects/mimalloc/page.c:866,1
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:869,1
    - Dst: mi_page_queue
      Src: /src/cpython/Objects/mimalloc/page.c:871,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:872,1
    - Dst: mi_page_queue_is_huge
      Src: /src/cpython/Objects/mimalloc/page.c:872,1
    - Dst: mi_page_fresh_alloc
      Src: /src/cpython/Objects/mimalloc/page.c:874,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:876,1
    - Dst: mi_page_immediate_available
      Src: /src/cpython/Objects/mimalloc/page.c:876,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:879,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:879,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:880,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:880,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:882,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:882,1
    - Dst: mi_page_set_heap
      Src: /src/cpython/Objects/mimalloc/page.c:883,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/page.c:887,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/page.c:887,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/page.c:890,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
    - Dst: mi_heap_stat_increase
      Src: /src/cpython/Objects/mimalloc/page.c:896,1
    - Dst: mi_heap_stat_counter_increase
      Src: /src/cpython/Objects/mimalloc/page.c:897,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: 901
      start: 864
    functionDepth: 17
    functionLinenumber: 864
    functionLinenumberEnd: 901
    functionName: mi_large_huge_page_alloc
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_page_set_heap
    - mi_page_queue_is_huge
    - _mi_page_segment
    - mi_page_usable_block_size
    - mi_heap_stat_increase
    - _mi_os_good_alloc_size
    - mi_page_fresh_alloc
    - mi_page_immediate_available
    - mi_heap_stat_counter_increase
    - mi_page_queue
    - mi_assert_internal
    - mi_bin
    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:909,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/page.c:910,1
    - Dst: _mi_error_message
      Src: /src/cpython/Objects/mimalloc/page.c:911,1
    - Dst: _PyMem_mi_heap_collect_qsbr
      Src: /src/cpython/Objects/mimalloc/page.c:915,1
    - Dst: mi_large_huge_page_alloc
      Src: /src/cpython/Objects/mimalloc/page.c:916,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: 917
      start: 906
    functionDepth: 18
    functionLinenumber: 906
    functionLinenumberEnd: 917
    functionName: mi_find_page
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - _PyMem_mi_heap_collect_qsbr
    - _mi_error_message
    - mi_large_huge_page_alloc
    - mi_unlikely
    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:934,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/page.c:937,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/page.c:937,1
    - Dst: mi_heap_get_default
      Src: /src/cpython/Objects/mimalloc/page.c:938,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/page.c:939,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/page.c:939,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: 939
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 939
    functionName: _mi_malloc_generic
    functionSourceFile: /src/cpython/Objects/mimalloc/page.c
    functionUses: 0
    functionsReached:
    - mi_heap_is_initialized
    - mi_unlikely
    - mi_assert_internal
    - mi_heap_get_default
    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_bitmap_mask_
    - mi_bitmap_index_create
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_load_relaxed
    - mi_assert_internal
    - mi_ctz
    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_unclaim
    - _mi_bitmap_try_find_claim_field
    - pred_fun
    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_bitmap_mask_
    - mi_bitmap_index_field
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_assert_internal
    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_atomic_or_acq_rel
    - mi_bitmap_mask_
    - mi_bitmap_index_field
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_assert_internal
    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_atomic_load_relaxed
    - mi_bitmap_mask_
    - mi_bitmap_index_field
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_assert_internal
    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_load_relaxed
    - mi_bitmap_mask_
    - mi_bitmap_index_field
    - MI_UNUSED
    - mi_atomic_cas_strong_acq_rel
    - mi_bitmap_index_bit_in_field
    - mi_assert_internal
    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_bitmap_try_find_claim_field_across
    - mi_bitmap_mask_
    - _mi_bitmap_try_find_claim_field
    - _mi_divide_up
    - mi_bitmap_index_create
    - mi_atomic_store_release
    - mi_atomic_cas_strong_acq_rel
    - mi_atomic_load_relaxed
    - mi_assert_internal
    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_across
    - _mi_bitmap_try_find_claim_field
    - _mi_bitmap_try_find_from_claim
    - mi_assert_internal
    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_bitmap_mask_
    - mi_likely
    - mi_bitmap_index_field
    - MI_UNUSED
    - mi_bitmap_index_bit_in_field
    - mi_assert_internal
    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_bitmap_index_field
    - mi_atomic_and_acq_rel
    - mi_bitmap_mask_across
    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_bitmap_index_field
    - mi_atomic_or_acq_rel
    - mi_bitmap_mask_across
    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_bitmap_index_field
    - mi_atomic_load_relaxed
    - mi_bitmap_mask_across
    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_assert_internal
    - mi_page_heap
    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_heap
    - _mi_page_segment
    - mi_assert_expensive
    - _mi_page_is_valid
    - MI_UNUSED
    - mi_assert_internal
    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_heap_visit_pages
    - mi_assert_internal
    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_is_in_full
      Src: /src/cpython/Objects/mimalloc/heap.c:105,1
    - Dst: _mi_bin
      Src: /src/cpython/Objects/mimalloc/heap.c:105,1
    - Dst: _mi_page_abandon
      Src: /src/cpython/Objects/mimalloc/heap.c:106,1
    - Dst: _mi_page_abandon
      Src: /src/cpython/Objects/mimalloc/heap.c:111,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: 114
      start: 92
    functionDepth: 12
    functionLinenumber: 92
    functionLinenumberEnd: 114
    functionName: mi_heap_page_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_page_is_valid
    - _mi_page_abandon
    - _mi_bin
    - mi_page_is_in_full
    - mi_page_all_free
    - _PyMem_mi_page_maybe_free
    - _mi_page_free_collect
    - MI_UNUSED
    - mi_assert_internal
    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:117,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:118,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:119,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:120,1
    - Dst: _mi_page_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/heap.c:121,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: 123
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 123
    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:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - heap
    - force
    argTypes:
    - mi_heap_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    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:194,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mi_collect
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_collect
    linkageType: ''
    returnType: void
    signature: void mi_collect(bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mi_thread_init
      Src: /src/cpython/Objects/mimalloc/heap.c:203,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 205
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 209
    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:213,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:214,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:216,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:217,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/heap.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: mi_heap_get_backing
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_thread_id
    - mi_assert_internal
    - 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:223,1
    - Dst: _mi_thread_id
      Src: /src/cpython/Objects/mimalloc/heap.c:225,1
    - Dst: _mi_random_init
      Src: /src/cpython/Objects/mimalloc/heap.c:228,1
    - Dst: _mi_random_split
      Src: /src/cpython/Objects/mimalloc/heap.c:231,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/heap.c:233,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/heap.c:234,1
    - Dst: _mi_heap_random_next
      Src: /src/cpython/Objects/mimalloc/heap.c:235,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: 241
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 241
    functionName: _mi_heap_init_ex
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_random_init
    - _mi_memcpy_aligned
    - _mi_thread_id
    - _mi_heap_random_next
    - _mi_random_split
    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:244,1
    - Dst: mi_heap_malloc_tp
      Src: /src/cpython/Objects/mimalloc/heap.c:245,1
    - Dst: _mi_heap_init_ex
      Src: /src/cpython/Objects/mimalloc/heap.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arena_id
    argTypes:
    - mi_arena_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 6
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: mi_heap_new_in_arena
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_get_backing
    - _mi_heap_init_ex
    - mi_heap_malloc_tp
    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:253,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Objects/mimalloc/heap.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 7
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: mi_heap_new
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_arena_id_none
    - mi_heap_new_in_arena
    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:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - heap
    - memid
    argTypes:
    - mi_heap_t*
    - mi_memid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 258
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 262
    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:266,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:267,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:267,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/heap.c:269,1
    - Dst: _mi_memcpy_aligned
      Src: /src/cpython/Objects/mimalloc/heap.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: mi_heap_reset_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_memcpy_aligned
    - mi_heap_is_initialized
    - memset
    - mi_assert_internal
    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:277,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:278,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:278,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:279,1
    - Dst: mi_heap_is_backing
      Src: /src/cpython/Objects/mimalloc/heap.c:280,1
    - Dst: mi_heap_is_default
      Src: /src/cpython/Objects/mimalloc/heap.c:283,1
    - Dst: _mi_heap_set_default_direct
      Src: /src/cpython/Objects/mimalloc/heap.c:284,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:295,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:300,1
    - Dst: mi_free
      Src: /src/cpython/Objects/mimalloc/heap.c:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 304
    functionName: mi_heap_free
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_free
    - mi_heap_is_initialized
    - mi_heap_is_backing
    - mi_assert
    - mi_heap_is_default
    - _mi_heap_set_default_direct
    - mi_assert_internal
    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:312,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:313,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:314,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:315,1
    - Dst: _mi_page_use_delayed_free
      Src: /src/cpython/Objects/mimalloc/heap.c:318,1
    - Dst: mi_page_block_size
      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_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:327,1
    - Dst: _mi_page_free_collect
      Src: /src/cpython/Objects/mimalloc/heap.c:331,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:334,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:336,1
    - Dst: _mi_bin
      Src: /src/cpython/Objects/mimalloc/heap.c:336,1
    - Dst: mi_heap_stat_decrease
      Src: /src/cpython/Objects/mimalloc/heap.c:339,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:343,1
    - Dst: mi_page_thread_free
      Src: /src/cpython/Objects/mimalloc/heap.c:343,1
    - Dst: _mi_segment_page_free
      Src: /src/cpython/Objects/mimalloc/heap.c:350,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: 353
      start: 311
    functionDepth: 15
    functionLinenumber: 311
    functionLinenumberEnd: 353
    functionName: _mi_heap_page_destroy
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_page_use_delayed_free
    - mi_page_block_size
    - _mi_bin
    - mi_assert_internal
    - _mi_segment_page_free
    - mi_page_thread_free
    - _mi_page_free_collect
    - MI_UNUSED
    - mi_heap_stat_decrease
    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:356,1
    - Dst: mi_heap_reset_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: _mi_heap_destroy_pages
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_visit_pages
    - mi_heap_reset_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:362,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:362,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:362,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:362,1
    - Dst: mi_track_free_size
      Src: /src/cpython/Objects/mimalloc/heap.c:363,1
    - Dst: mi_usable_size
      Src: /src/cpython/Objects/mimalloc/heap.c:363,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: 365
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: mi_heap_track_block_free
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_track_free_size
    - mi_usable_size
    - MI_UNUSED
    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:369,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:370,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:370,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:371,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/heap.c:372,1
    - Dst: mi_heap_is_valid
      Src: /src/cpython/Objects/mimalloc/heap.c:372,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:373,1
    - Dst: mi_heap_delete
      Src: /src/cpython/Objects/mimalloc/heap.c:376,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Objects/mimalloc/heap.c:381,1
    - Dst: _mi_heap_destroy_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:384,1
    - Dst: mi_heap_free
      Src: /src/cpython/Objects/mimalloc/heap.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 387
    functionName: mi_heap_destroy
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_is_initialized
    - mi_heap_delete
    - mi_assert
    - mi_heap_free
    - mi_heap_is_valid
    - mi_assert_expensive
    - _mi_heap_destroy_pages
    - 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:391,1
    - Dst: mi_heap_destroy
      Src: /src/cpython/Objects/mimalloc/heap.c:396,1
    - Dst: _mi_heap_destroy_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 4
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: _mi_heap_unsafe_destroy_all
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_get_backing
    - mi_heap_destroy
    - _mi_heap_destroy_pages
    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:411,1
    - Dst: _mi_heap_delayed_free_partial
      Src: /src/cpython/Objects/mimalloc/heap.c:415,1
    - Dst: _mi_page_queue_append
      Src: /src/cpython/Objects/mimalloc/heap.c:424,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:428,1
    - Dst: _mi_heap_delayed_free_all
      Src: /src/cpython/Objects/mimalloc/heap.c:434,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:436,1
    - Dst: mi_atomic_load_ptr_relaxed
      Src: /src/cpython/Objects/mimalloc/heap.c:436,1
    - Dst: mi_heap_reset_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - heap
    - from
    argTypes:
    - mi_heap_t*
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 441
    functionName: mi_heap_absorb
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_heap_delayed_free_all
    - _mi_heap_delayed_free_partial
    - mi_heap_reset_pages
    - _mi_page_queue_append
    - mi_atomic_load_ptr_relaxed
    - mi_assert_internal
    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:446,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:447,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:447,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/heap.c:448,1
    - Dst: mi_heap_is_valid
      Src: /src/cpython/Objects/mimalloc/heap.c:448,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:449,1
    - Dst: mi_heap_is_backing
      Src: /src/cpython/Objects/mimalloc/heap.c:451,1
    - Dst: mi_heap_absorb
      Src: /src/cpython/Objects/mimalloc/heap.c:453,1
    - Dst: _mi_heap_collect_abandon
      Src: /src/cpython/Objects/mimalloc/heap.c:457,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:459,1
    - Dst: mi_heap_free
      Src: /src/cpython/Objects/mimalloc/heap.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 461
    functionName: mi_heap_delete
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 1
    functionsReached:
    - mi_heap_is_initialized
    - mi_heap_is_backing
    - mi_assert
    - mi_heap_is_valid
    - mi_assert_expensive
    - mi_heap_absorb
    - _mi_heap_collect_abandon
    - mi_heap_free
    - mi_assert_internal
    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:464,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:465,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:465,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:466,1
    - Dst: mi_assert_expensive
      Src: /src/cpython/Objects/mimalloc/heap.c:467,1
    - Dst: mi_heap_is_valid
      Src: /src/cpython/Objects/mimalloc/heap.c:467,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:468,1
    - Dst: _mi_heap_set_default_direct
      Src: /src/cpython/Objects/mimalloc/heap.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - heap
    argTypes:
    - mi_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 471
    functionName: mi_heap_set_default
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_is_initialized
    - mi_assert
    - mi_heap_is_valid
    - mi_prim_get_default_heap
    - mi_assert_expensive
    - _mi_heap_set_default_direct
    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:483,1
    - Dst: _mi_ptr_cookie
      Src: /src/cpython/Objects/mimalloc/heap.c:484,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:485,1
    - Dst: mi_unlikely
      Src: /src/cpython/Objects/mimalloc/heap.c:486,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:487,1
    - Dst: _mi_segment_page_of
      Src: /src/cpython/Objects/mimalloc/heap.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: mi_heap_of_block
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_page_heap
    - _mi_segment_page_of
    - _mi_ptr_cookie
    - _mi_ptr_segment
    - mi_unlikely
    - mi_assert_internal
    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:491,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:492,1
    - Dst: mi_heap_of_block
      Src: /src/cpython/Objects/mimalloc/heap.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - heap
    - p
    argTypes:
    - mi_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: mi_heap_contains_block
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_of_block
    - mi_heap_is_initialized
    - mi_assert
    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:498,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:499,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/heap.c:501,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/heap.c:502,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:503,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: 506
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 506
    functionName: mi_heap_page_check_owned
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - _mi_page_segment
    - MI_UNUSED
    - mi_page_block_size
    - _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:509,1
    - Dst: mi_heap_is_initialized
      Src: /src/cpython/Objects/mimalloc/heap.c:510,1
    - Dst: mi_heap_visit_pages
      Src: /src/cpython/Objects/mimalloc/heap.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - p
    argTypes:
    - mi_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 515
    functionName: mi_heap_check_owned
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_heap_is_initialized
    - mi_heap_visit_pages
    - mi_assert
    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:518,1
    - Dst: mi_prim_get_default_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: mi_check_owned
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_check_owned
    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:534,1
    - Dst: mi_clz
      Src: /src/cpython/Objects/mimalloc/heap.c:535,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: 537
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 537
    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:540,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: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    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:545,1
    - Dst: mi_assert
      Src: /src/cpython/Objects/mimalloc/heap.c:547,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:550,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:553,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:554,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/heap.c:556,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/heap.c:556,1
    - Dst: mi_page_heap
      Src: /src/cpython/Objects/mimalloc/heap.c:557,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:561,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:562,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:569,1
    - Dst: memset
      Src: /src/cpython/Objects/mimalloc/heap.c:579,1
    - Dst: mi_fast_divisor
      Src: /src/cpython/Objects/mimalloc/heap.c:589,1
    - Dst: mi_block_next
      Src: /src/cpython/Objects/mimalloc/heap.c:594,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:598,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:600,1
    - Dst: mi_fast_divide
      Src: /src/cpython/Objects/mimalloc/heap.c:601,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:602,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:603,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:608,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:622,1
    - Dst: mi_ctz
      Src: /src/cpython/Objects/mimalloc/heap.c:632,1
    - Dst: visitor
      Src: /src/cpython/Objects/mimalloc/heap.c:633,1
    - Dst: mi_assert_internal
      Src: /src/cpython/Objects/mimalloc/heap.c:639,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: 641
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 641
    functionName: _mi_heap_area_visit_blocks
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 1
    functionsReached:
    - mi_assert
    - _mi_page_start
    - mi_page_usable_block_size
    - mi_page_block_size
    - _mi_page_segment
    - mi_page_heap
    - mi_fast_divide
    - mi_block_next
    - memset
    - mi_fast_divisor
    - visitor
    - mi_assert_internal
    - mi_ctz
    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:646,1
    - Dst: mi_page_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:647,1
    - Dst: mi_page_usable_block_size
      Src: /src/cpython/Objects/mimalloc/heap.c:648,1
    - Dst: _mi_page_start
      Src: /src/cpython/Objects/mimalloc/heap.c:651,1
    - Dst: _mi_page_segment
      Src: /src/cpython/Objects/mimalloc/heap.c:651,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: 655
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 655
    functionName: _mi_heap_area_init
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 1
    functionsReached:
    - _mi_page_start
    - mi_page_usable_block_size
    - _mi_page_segment
    - mi_page_block_size
    - _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:658,1
    - Dst: MI_UNUSED
      Src: /src/cpython/Objects/mimalloc/heap.c:659,1
    - Dst: _mi_heap_area_init
      Src: /src/cpython/Objects/mimalloc/heap.c:663,1
    - Dst: fun
      Src: /src/cpython/Objects/mimalloc/heap.c:664,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: 665
      start: 657
    functionDepth: 5
    functionLinenumber: 657
    functionLinenumberEnd: 665
    functionName: mi_heap_visit_areas_page
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - fun
    - MI_UNUSED
    - _mi_heap_area_init
    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:670,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: 671
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 671
    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:682,1
    - Dst: _mi_heap_area_visit_blocks
      Src: /src/cpython/Objects/mimalloc/heap.c:684,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: 689
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 689
    functionName: mi_heap_area_visitor
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 0
    functionsReached:
    - mi_visit_blocks_args_t*::visitor
    - _mi_heap_area_visit_blocks
    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:694,1
    - Dst: mi_heap_visit_areas
      Src: /src/cpython/Objects/mimalloc/heap.c:695,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: 696
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 696
    functionName: mi_heap_visit_blocks
    functionSourceFile: /src/cpython/Objects/mimalloc/heap.c
    functionUses: 4
    functionsReached:
    - mi_heap_visit_areas
    - _mi_heap_delayed_free_partial
    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_UNUSED
    - mi_option_get
    - mi_add_stderr_output
    - _mi_verbose_message
    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_option_init
    - mi_assert
    - mi_unlikely
    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_UNUSED
    - _mi_prim_out_stderr
    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_add_acq_rel
    - _mi_memcpy
    - MI_UNUSED
    - _mi_strlen
    - mi_atomic_load_relaxed
    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:
    - mi_atomic_add_acq_rel
    - out
    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_recurse_enter_prim
    - _mi_preloading
    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_recurse_exit_prim
    - _mi_preloading
    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_recurse_enter
    - mi_recurse_exit
    - mi_out_get_default
    - out
    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:
    - mi_recurse_enter
    - mi_recurse_exit
    - _mi_fputs
    - vsnprintf
    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_end
    - va_start
    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_is_main_thread
    - mi_vfprintf
    - _mi_thread_id
    - _mi_strnlen
    - snprintf
    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_vfprintf_thread
    - va_end
    - mi_option_get
    - va_start
    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
    - mi_option_is_enabled
    - va_end
    - va_start
    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_option_is_enabled
    - mi_atomic_increment_acq_rel
    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
    - va_start
    - va_end
    - mi_atomic_increment_acq_rel
    - mi_vfprintf_thread
    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:
    - MI_UNUSED
    - __debugbreak
    - abort
    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_error_default
    - va_end
    - va_start
    - mi_show_error_message
    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_strlcpy
    - mi_getenv
    - _mi_strlcat
    - strtol
    - _mi_strnlen
    - _mi_preloading
    - _mi_toupper
    - strstr
    - _mi_warning_message
    - mi_assert_internal
    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_thread_id
    - _mi_random_init
    - _mi_heap_random_next
    - _mi_random_init_weak
    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_os_alloc
    - mi_atomic_load_ptr_relaxed
    - _mi_error_message
    - _mi_memzero_aligned
    - 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_atomic_load_ptr_relaxed
    - mi_atomic_cas_ptr_weak_acq_rel
    - _mi_os_free
    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_atomic_load_ptr_relaxed
    - _mi_os_free
    - mi_atomic_exchange_ptr_acq_rel
    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_is_initialized
    - _mi_is_main_thread
    - mi_thread_data_zalloc
    - mi_prim_get_default_heap
    - _mi_tld_init
    - _mi_arena_id_none
    - _mi_heap_init_ex
    - _mi_heap_set_default_direct
    - mi_heap_main_init
    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_is_initialized
    - mi_heap_is_backing
    - _mi_is_main_thread
    - mi_heap_delete
    - mi_thread_data_free
    - _mi_heap_set_default_direct
    - _mi_heap_collect_abandon
    - _mi_heap_destroy_pages
    - _mi_stats_done
    - mi_assert_internal
    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_prim_thread_init_auto_done
    - _mi_heap_set_default_direct
    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_stat_decrease
    - mi_prim_get_default_heap
    - _mi_thread_id
    - mi_atomic_decrement_relaxed
    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_prim_thread_associate_default_heap
    - mi_tls_pthread_heap_slot
    - 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_is_main_thread
    - mi_process_init
    - _mi_options_init
    - mi_option_is_enabled
    - _mi_random_reinit_if_weak
    - mi_allocator_init
    - _mi_fputs
    - atexit
    - _mi_verbose_message
    - mi_process_setup_auto_thread_done
    - mi_assert_internal
    - mi_heap_main_init
    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_thread_init
    - mi_reserve_huge_os_pages_interleave
    - mi_atomic_once
    - mi_stats_reset
    - mi_option_get
    - mi_reserve_os_memory
    - mi_option_is_enabled
    - mi_detect_cpu_features
    - _mi_thread_id
    - _mi_os_init
    - mi_track_init
    - mi_reserve_huge_os_pages_at
    - _mi_verbose_message
    - mi_option_get_clamp
    - _mi_prim_thread_associate_default_heap
    - mi_process_setup_auto_thread_done
    - mi_heap_main_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_stats_print
    - mi_option_is_enabled
    - mi_collect
    - _mi_prim_thread_done_auto_done
    - _mi_verbose_message
    - _mi_arena_unsafe_destroy_all
    - _mi_heap_unsafe_destroy_all
    - _mi_heap_main_get
    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_is_redirected
    - mi_thread_done
    - MI_UNUSED
    - mi_process_done
    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_UNUSED
    - mi_new_nothrow
    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_UNUSED
    - mi_new_nothrow
    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:
    - static_cast<size_t>
    - mi_free_aligned
    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:
    - static_cast<size_t>
    - mi_free_aligned
    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:
    - static_cast<size_t>
    - mi_free_size_aligned
    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:
    - static_cast<size_t>
    - mi_free_size_aligned
    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:
    - static_cast<size_t>
    - mi_free_aligned
    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:
    - static_cast<size_t>
    - mi_free_aligned
    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:
    - static_cast<size_t>
    - mi_new_aligned
    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:
    - static_cast<size_t>
    - mi_new_aligned
    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:
    - static_cast<size_t>
    - mi_new_aligned_nothrow
    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:
    - static_cast<size_t>
    - mi_new_aligned_nothrow
    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_UNUSED
    - mi_new_nothrow
    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_UNUSED
    - mi_new_nothrow
    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_UNUSED
    - mi_new_aligned_nothrow
    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_UNUSED
    - mi_new_aligned_nothrow
    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_UNUSED
    - mi_new_nothrow
    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_UNUSED
    - mi_new_nothrow
    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_UNUSED
    - mi_new_aligned_nothrow
    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_UNUSED
    - mi_new_aligned_nothrow
    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: 3
    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: 2
    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_page_heap
    - mi_assert_expensive
    - mi_page_is_in_full
    - mi_page_queue_contains
    - mi_assert_internal
    - mi_bin
    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_bin
    - mi_assert_internal
    - mi_page_is_in_full
    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_assert
    - _mi_wsize_from_size
    - mi_heap_contains_queue
    - mi_assert_internal
    - mi_bin
    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_heap
    - mi_page_queue_is_full
    - mi_assert_expensive
    - mi_page_is_in_full
    - mi_heap_queue_first_update
    - mi_heap_contains_queue
    - mi_page_queue_contains
    - mi_assert_internal
    - mi_page_set_in_full
    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_heap
    - _mi_page_segment
    - mi_page_queue_is_full
    - mi_page_is_in_full
    - mi_heap_queue_first_update
    - mi_page_queue_contains
    - mi_assert_internal
    - mi_page_set_in_full
    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_heap
    - mi_page_queue_is_full
    - mi_assert_expensive
    - mi_heap_queue_first_update
    - mi_heap_contains_queue
    - mi_page_queue_contains
    - mi_assert_internal
    - mi_page_set_in_full
    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_page_use_delayed_free
    - mi_heap_queue_first_update
    - mi_heap_contains_queue
    - mi_atomic_store_release
    - mi_assert_internal
    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_malloc_generic
    - mi_unlikely
    - mi_assert_internal
    - mi_page_block_size
    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_track_mem_defined
    - _mi_memzero_aligned
    - mi_assert_internal
    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_track_malloc
    - mi_heap_is_initialized
    - mi_assert
    - mi_prim_get_default_heap
    - mi_assert_expensive
    - _mi_heap_get_free_small_page
    - mi_heap_stat_increase
    - _mi_page_malloc
    - _mi_thread_id
    - mi_mem_is_zero
    - 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: 3
    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: 3
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_malloc
    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_prim_get_default_heap
    - mi_heap_malloc_small_zero
    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_prim_get_default_heap
    - mi_heap_zalloc
    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_page_thread_free
    - mi_list_contains
    - _mi_error_message
    - mi_page_block_size
    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_is_in_same_page
    - mi_check_is_double_freex
    - mi_block_nextx
    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_page_usable_block_size
    - mi_track_mem_defined
    - mi_track_mem_noaccess
    - mi_ptr_encode
    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_track_mem_noaccess
    - mi_track_mem_defined
    - mi_page_decode_padding
    - mi_assert_internal
    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_verify_padding
    - _mi_error_message
    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_page_usable_block_size
    - _mi_bin
    - mi_heap_get_default
    - mi_page_usable_size_of
    - MI_UNUSED
    - mi_heap_stat_decrease
    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_stat_decrease
    - mi_heap_get_default
    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_check_padding
    - mi_usable_size
    - mi_tf_set_delayed
    - mi_tf_set_block
    - mi_stat_huge_free
    - mi_tf_delayed
    - mi_atomic_cas_ptr_weak_release
    - _mi_segment_huge_page_free
    - mi_atomic_load_ptr_relaxed
    - mi_debug_fill
    - _mi_segment_huge_page_reset
    - mi_atomic_load_relaxed
    - mi_block_set_next
    - mi_atomic_load_acquire
    - _mi_page_segment
    - _mi_padding_shrink
    - mi_tf_block
    - mi_block_set_nextx
    - mi_atomic_cas_weak_release
    - mi_assert_internal
    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_atomic_load_acquire
    - mi_atomic_cas_ptr_weak_release
    - mi_block_set_nextx
    - mi_atomic_load_ptr_relaxed
    - mi_tf_delayed
    - mi_atomic_cas_weak_release
    - mi_tf_set_delayed
    - mi_atomic_load_relaxed
    - mi_assert_internal
    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_check_padding
    - mi_page_block_size
    - _mi_free_block_mt
    - _mi_page_retire
    - mi_debug_fill
    - _mi_page_unfull
    - mi_page_is_huge
    - mi_block_set_next
    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_check_padding
    - mi_page_block_size
    - _mi_page_retire
    - mi_debug_fill
    - _mi_page_unfull
    - mi_page_is_huge
    - mi_block_set_next
    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_page_ptr_unalign
    - mi_page_has_aligned
    - _mi_free_block
    - mi_page_usable_size_of
    - mi_stat_free
    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_free_generic
    - mi_check_padding
    - mi_page_block_size
    - _mi_page_retire
    - mi_likely
    - mi_debug_fill
    - mi_page_usable_size_of
    - mi_unlikely
    - mi_block_set_next
    - mi_stat_free
    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_page_try_use_delayed_free
    - _mi_segment_page_of
    - _mi_free_block
    - _mi_thread_id
    - _mi_ptr_cookie
    - _mi_ptr_segment
    - _mi_page_free_collect
    - mi_assert_internal
    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_assert_internal
    - _mi_page_ptr_unalign
    - mi_page_usable_size_of
    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_segment_page_of
    - mi_page_has_aligned
    - mi_likely
    - mi_page_usable_size_of
    - mi_checked_ptr_segment
    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_usable_size
    - mi_assert
    - mi_free
    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_assert
    - mi_free_size
    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_assert
    - mi_free
    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_count_size_overflow
    - mi_heap_zalloc
    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: 3
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_calloc
    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_count_size_overflow
    - mi_heap_malloc
    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_usable_size
    - MI_UNUSED
    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_free
    - _mi_memzero
    - mi_track_mem_defined
    - _mi_memcpy
    - _mi_usable_size
    - mi_likely
    - mi_heap_malloc
    - mi_unlikely
    - mi_assert_internal
    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: 1
    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_count_size_overflow
    - mi_heap_realloc
    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_free
    - mi_heap_realloc
    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_count_size_overflow
    - mi_heap_rezalloc
    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: 3
    functionsReached:
    - mi_prim_get_default_heap
    - mi_heap_realloc
    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_prim_get_default_heap
    - mi_heap_rezalloc
    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_memcpy
    - mi_heap_malloc
    - 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_prim_get_default_heap
    - mi_heap_strdup
    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:
    - memchr
    - mi_heap_malloc
    - mi_assert_internal
    - _mi_memcpy
    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:
    - mi_heap_strndup
    - GetFullPathNameA
    - GetLastError
    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:
    - free
    - mi_heap_strdup
    - realpath
    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_prim_get_default_heap
    - mi_heap_realpath
    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::set_new_handler
    - h
    - std::bad_alloc
    - _mi_error_message
    - std::get_new_handler
    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
    - abort
    - h
    - mi_get_new_handler
    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_try_new_handler
    - mi_heap_malloc
    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_prim_get_default_heap
    - mi_heap_try_new
    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_try_new
    - mi_unlikely
    - mi_heap_malloc
    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_prim_get_default_heap
    - mi_heap_alloc_new
    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_malloc
    - mi_try_new
    - mi_unlikely
    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_try_new_handler
    - mi_malloc_aligned
    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_try_new_handler
    - mi_malloc_aligned
    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_is_in_heap_region
    - mi_free
    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_os_page_size
    - _mi_align_up
    - mi_malloc_aligned
    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_reallocarray
    - mi_assert
    - mi_unlikely
    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_malloc
    - _mi_memcpy
    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:
    - mi_strdup
    - getenv
    - _mi_strlen
    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:
    - sysctlbyname
    - mi_prim_read
    - mi_prim_close
    - mi_prim_open
    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:
    - mmap
    - _mi_is_aligned
    - _mi_verbose_message
    - _mi_os_page_size
    - _mi_os_get_aligned_hint
    - mi_bsr
    - MI_UNUSED
    - MAP_ALIGNED
    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
    - unix_mmap_prim
    - mi_atomic_load_acquire
    - unix_madvise
    - PROT_MAX
    - _mi_warning_message
    - memcntl
    - _mi_os_use_large_page
    - mi_atomic_store_release
    - mi_atomic_cas_strong_acq_rel
    - _mi_os_has_overcommit
    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:
    - unix_mprotect_hint
    - mprotect
    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:
    - unix_madvise
    - mprotect
    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:
    - unix_madvise
    - mi_atomic_store_release
    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:
    - unix_mprotect_hint
    - mprotect
    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:
    - mi_prim_mbind
    - _mi_warning_message
    - unix_mmap
    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:
    - mi_prim_access
    - snprintf
    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:
    - cpuset_getdomain
    - DOMAINSET_ISSET
    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:
    - get_thread_info
    - mach_task_self
    - getrusage
    - find_thread
    - timeval_secs
    - get_next_area_info
    - task_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_strlcpy
    - mi_get_environ
    - _mi_strlen
    - _mi_strnicmp
    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_strlcpy
    - getenv
    - _mi_strnlen
    - _mi_preloading
    - _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_atomic_load_acquire
    - mi_prim_close
    - mi_prim_open
    - mi_prim_read
    - mi_atomic_store_release
    - syscall
    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:
    - GetCurrentProcess
    - _mi_os_large_page_size
    - AdjustTokenPrivileges
    - LookupPrivilegeValue
    - CloseHandle
    - GetLastError
    - OpenProcessToken
    - TEXT
    - _mi_warning_message
    - GetLargePageMinimum
    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:
    - win_enable_large_os_pages
    - mi_option_is_enabled
    - GetSystemInfo
    - FreeLibrary
    - GetProcAddress
    - LoadLibrary
    - TEXT
    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:
    - VirtualFree
    - MI_UNUSED
    - VirtualQuery
    - 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:
    - GetCurrentProcess
    - GetLastError
    - VirtualAlloc
    - _mi_verbose_message
    - _mi_os_page_size
    - _mi_os_get_aligned_hint
    - _mi_warning_message
    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_load_acquire
    - win_virtual_alloc_prim
    - _mi_os_use_large_page
    - mi_atomic_store_release
    - mi_atomic_cas_strong_acq_rel
    - mi_assert_internal
    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:
    - _mi_os_page_size
    - GetLastError
    - 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:
    - GetLastError
    - VirtualUnlock
    - 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:
    - win_enable_large_os_pages
    - GetCurrentProcess
    - _mi_warning_message
    - VirtualAlloc
    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:
    - QueryPerformanceCounter
    - mi_to_msecs
    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:
    - GetCurrentProcess
    - pGetProcessMemoryInfo
    - filetime_msecs
    - memset
    - GetProcAddress
    - LoadLibrary
    - TEXT
    - 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:
    - GetStdHandle
    - _mi_strlen
    - fputs
    - GetConsoleScreenBufferInfo
    - _mi_preloading
    - WriteFile
    - WriteConsoleA
    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:
    - GetProcAddress
    - LoadLibrary
    - TEXT
    - pBCryptGenRandom
    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:
    - FlsSetValue
    - _mi_thread_done
    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:
    - FlsSetValue
    - mi_assert_internal
    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:
    - MCGEN_PRIVATE_ENABLE_CALLBACK_V2
    - UNREFERENCED_PARAMETER
    - RtlZeroMemory
    - McGenLevelKeywordEnabled
    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:
    - UNREFERENCED_PARAMETER
    - MCGEN_EVENTWRITETRANSFER
    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:
    - sbrk
    - memset
    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:
    - _mi_os_page_size
    - __builtin_wasm_memory_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:
    - mi_memory_grow
    - pthread_mutex_unlock
    - _mi_align_up
    - _mi_os_page_size
    - mi_align_up_ptr
    - pthread_mutex_lock
    - mi_assert_internal
    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_strlcpy
    - getenv
    - _mi_strnlen
    - _mi_preloading
    - _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_usable_size
    - MI_UNUSED
    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_malloc
    - MI_UNUSED
    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_os_page_size
    - MI_UNUSED
    - mi_malloc_aligned
    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_UNUSED
    - mi_malloc_aligned
    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_UNUSED
    - mi_collect
    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_good_size
    - MI_UNUSED
    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_stats_print
    - MI_UNUSED
    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_get_all_zones
    - malloc_default_zone
    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_register
    - malloc_zone_unregister
    - malloc_default_purgeable_zone
    - constructor
    - mi_get_default_zone
    linkageType: ''
    returnType: void
    signature: void _mi_macos_override_malloc(void)
  - 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: 7
    functionsReached:
    - memcmp
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_KIND
    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 > 0xFFFF) && (ch <= 0x10FFFF))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/cpython/Objects/stringlib/codecs.h
    - condition: ((ch > 0x007F) && (ch <= 0x07FF))
      pos:
        line_end: 116
        line_start: 116
        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:320,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:326,1
    - Dst: memset
      Src: /src/cpython/Objects/stringlib/codecs.h:335,1
    - Dst: backslashreplace
      Src: /src/cpython/Objects/stringlib/codecs.h:355,1
    - Dst: xmlcharrefreplace
      Src: /src/cpython/Objects/stringlib/codecs.h:365,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/codecs.h:384,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/cpython/Objects/stringlib/codecs.h:387,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/stringlib/codecs.h:395,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Objects/stringlib/codecs.h:411,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Objects/stringlib/codecs.h:412,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Objects/stringlib/codecs.h:413,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Objects/stringlib/codecs.h:417,1
    - Dst: raise_encode_exception
      Src: /src/cpython/Objects/stringlib/codecs.h:418,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Objects/stringlib/codecs.h:424,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/codecs.h:425,1
    - Dst: PyBytesWriter_GrowAndUpdatePointer
      Src: /src/cpython/Objects/stringlib/codecs.h:428,1
    - Dst: memcpy
      Src: /src/cpython/Objects/stringlib/codecs.h:432,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Objects/stringlib/codecs.h:434,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/codecs.h:441,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (writer->overallocate || i == size)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Objects/stringlib/codecs.h
    - condition: (startpos < endpos)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Objects/stringlib/codecs.h
    constantsTouched: []
    func_position:
      end: 442
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 442
    functionName: if
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 2
    functionsReached:
    - unicode_encode_call_errorhandler
    - PyBytes_AS_STRING
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - PyBytes_Check
    - backslashreplace
    - Py_UNICODE_IS_SURROGATE
    - xmlcharrefreplace
    - Py_CLEAR
    - memset
    - PyUnicode_GET_LENGTH
    - _Py_GetErrorHandler
    - assert
    - PyBytesWriter_GrowAndUpdatePointer
    - memcpy
    - PyBytes_GET_SIZE
    - raise_encode_exception
    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: 511
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 511
    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:532,1
    - Dst: SWAB
      Src: /src/cpython/Objects/stringlib/codecs.h:544,1
    - Dst: SWAB
      Src: /src/cpython/Objects/stringlib/codecs.h:549,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:583,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:594,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:600,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Objects/stringlib/codecs.h:602,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: 624
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 624
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - _Py_IS_ALIGNED
    - SWAB
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - Py_UNICODE_IS_SURROGATE
    - Py_UNICODE_IS_LOW_SURROGATE
    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:642,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:655,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:657,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:658,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:659,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:660,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:665,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:674,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:699,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:700,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:710,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:718,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:719,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:720,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:721,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:728,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:734,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:735,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:736,1
    - Dst: SWAB2
      Src: /src/cpython/Objects/stringlib/codecs.h:737,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: 752
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 752
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - _Py_SIZE_ROUND_DOWN
    - Py_UNICODE_HIGH_SURROGATE
    - SWAB2
    - Py_UNICODE_LOW_SURROGATE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(utf16_encode)(const STRINGLIB_CHAR *in,\n                        Py_ssize_t
      len,\n                        unsigned short **outptr,\n                        int
      native_ordering)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CH
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 655
    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: 709
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 709
    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:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - STRINGLIB_CHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 767
    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:778,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:798,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Objects/stringlib/codecs.h:806,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:816,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:817,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:818,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:819,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Objects/stringlib/codecs.h:825,1
    - Dst: STRINGLIB
      Src: /src/cpython/Objects/stringlib/codecs.h:830,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: 840
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 840
    functionName: STRINGLIB
    functionSourceFile: /src/cpython/Objects/stringlib/codecs.h
    functionUses: 1
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - _Py_SIZE_ROUND_DOWN
    - STRINGLIB
    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: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    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: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    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:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 70
    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:77,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 9
    functionLinenumber: 74
    functionLinenumberEnd: 80
    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:90,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - field_name_is_empty
    argTypes:
    - AutoNumberState
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 105
    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:124,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:124,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 141
    functionName: get_integer
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 1
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - Py_UNICODE_TODECIMAL
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_integer(const SubString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:152,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Objects/stringlib/unicode_format.h:155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 9
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: getattr
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttr
    - SubString_new_object
    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:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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:172,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: getitem_idx
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - 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:185,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 9
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: getitem_str
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - SubString_new_object
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getitem_str(PyObject *obj, SubString *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:208,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: 211
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 211
    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:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FieldNameIterator*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 238
    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:251,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FieldNameIterator*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 271
    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:282,1
    - Dst: _FieldNameIterator_attr
      Src: /src/cpython/Objects/stringlib/unicode_format.h:285,1
    - Dst: _FieldNameIterator_item
      Src: /src/cpython/Objects/stringlib/unicode_format.h:291,1
    - Dst: get_integer
      Src: /src/cpython/Objects/stringlib/unicode_format.h:293,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/unicode_format.h:294,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:299,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:306,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: 311
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 311
    functionName: FieldNameIterator_next
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - _FieldNameIterator_item
    - get_integer
    - PyErr_SetString
    - _FieldNameIterator_attr
    - PyErr_Occurred
    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:332,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:346,1
    - Dst: FieldNameIterator_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:347,1
    - Dst: get_integer
      Src: /src/cpython/Objects/stringlib/unicode_format.h:350,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/stringlib/unicode_format.h:351,1
    - Dst: autonumber_state_error
      Src: /src/cpython/Objects/stringlib/unicode_format.h:379,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: 389
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 389
    functionName: field_name_split
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - FieldNameIterator_init
    - autonumber_state_error
    - PyUnicode_READ_CHAR
    - get_integer
    - PyErr_Occurred
    - SubString_init
    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:409,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:416,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Objects/stringlib/unicode_format.h:421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:422,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:429,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:440,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Objects/stringlib/unicode_format.h:446,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:448,1
    - Dst: FieldNameIterator_next
      Src: /src/cpython/Objects/stringlib/unicode_format.h:457,1
    - Dst: getattr
      Src: /src/cpython/Objects/stringlib/unicode_format.h:463,1
    - Dst: getitem_str
      Src: /src/cpython/Objects/stringlib/unicode_format.h:467,1
    - Dst: PySequence_Check
      Src: /src/cpython/Objects/stringlib/unicode_format.h:469,1
    - Dst: getitem_sequence
      Src: /src/cpython/Objects/stringlib/unicode_format.h:470,1
    - Dst: getitem_idx
      Src: /src/cpython/Objects/stringlib/unicode_format.h:473,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:478,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:484,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: 486
      start: 397
    functionDepth: 10
    functionLinenumber: 397
    functionLinenumberEnd: 486
    functionName: get_field_object
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - field_name_split
    - PySequence_Check
    - PyErr_SetObject
    - getattr
    - PyErr_SetString
    - getitem_str
    - getitem_sequence
    - SubString_new_object
    - PyObject_GetItem
    - PySequence_GetItem
    - Py_SETREF
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - getitem_idx
    - 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:511,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Objects/stringlib/unicode_format.h:513,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Objects/stringlib/unicode_format.h:515,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Objects/stringlib/unicode_format.h:517,1
    - Dst: formatter
      Src: /src/cpython/Objects/stringlib/unicode_format.h:523,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Objects/stringlib/unicode_format.h:531,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Objects/stringlib/unicode_format.h:535,1
    - Dst: PyObject_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:539,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/cpython/Objects/stringlib/unicode_format.h:544,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:549,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:550,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - fieldobj
    - format_spec
    - writer
    argTypes:
    - PyObject*
    - SubString*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 500
    functionDepth: 8
    functionLinenumber: 500
    functionLinenumberEnd: 552
    functionName: render_field
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicode_CheckExact
    - PyObject_Format
    - PyComplex_CheckExact
    - PyLong_CheckExact
    - PyFloat_CheckExact
    - PyUnicode_Substring
    - Py_XDECREF
    - _PyUnicodeWriter_WriteStr
    - 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:566,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:575,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:579,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:602,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:607,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:610,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:614,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:624,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:641,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:645,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: 650
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 650
    functionName: parse_field
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_READ_CHAR
    - SubString_init
    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:669,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: 671
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 671
    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:688,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:689,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:690,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:710,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:725,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:727,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/stringlib/unicode_format.h:732,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Objects/stringlib/unicode_format.h:737,1
    - Dst: parse_field
      Src: /src/cpython/Objects/stringlib/unicode_format.h:757,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: 761
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 761
    functionName: MarkupIterator_next
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - parse_field
    - PyErr_SetString
    - PyUnicode_READ_CHAR
    - SubString_init
    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:772,1
    - Dst: PyObject_Str
      Src: /src/cpython/Objects/stringlib/unicode_format.h:774,1
    - Dst: PyObject_ASCII
      Src: /src/cpython/Objects/stringlib/unicode_format.h:776,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:782,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - conversion
    argTypes:
    - PyObject*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 765
    functionDepth: 4
    functionLinenumber: 765
    functionLinenumberEnd: 791
    functionName: do_conversion
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - PyObject_Repr
    - PyObject_ASCII
    - 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:819,1
    - Dst: do_conversion
      Src: /src/cpython/Objects/stringlib/unicode_format.h:824,1
    - Dst: Py_SETREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:829,1
    - Dst: build_string
      Src: /src/cpython/Objects/stringlib/unicode_format.h:835,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:843,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:843,1
    - Dst: render_field
      Src: /src/cpython/Objects/stringlib/unicode_format.h:849,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:855,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:856,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: 859
      start: 806
    functionDepth: 11
    functionLinenumber: 806
    functionLinenumberEnd: 859
    functionName: output_markup
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - build_string
    - Py_SETREF
    - get_field_object
    - do_conversion
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - SubString_init
    - render_field
    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:880,1
    - Dst: MarkupIterator_next
      Src: /src/cpython/Objects/stringlib/unicode_format.h:881,1
    - Dst: _PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Objects/stringlib/unicode_format.h:888,1
    - Dst: output_markup
      Src: /src/cpython/Objects/stringlib/unicode_format.h:896,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: 903
      start: 867
    functionDepth: 12
    functionLinenumber: 867
    functionLinenumberEnd: 903
    functionName: do_markup
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - output_markup
    - MarkupIterator_next
    - MarkupIterator_init
    - _PyUnicodeWriter_WriteSubstring
    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:918,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:923,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:925,1
    - Dst: do_markup
      Src: /src/cpython/Objects/stringlib/unicode_format.h:927,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/cpython/Objects/stringlib/unicode_format.h:929,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/cpython/Objects/stringlib/unicode_format.h:933,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: 934
      start: 910
    functionDepth: 13
    functionLinenumber: 910
    functionLinenumberEnd: 934
    functionName: build_string
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 1
    functionsReached:
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Init
    - PyErr_SetString
    - _PyUnicodeWriter_Dealloc
    - do_markup
    - PyUnicode_GET_LENGTH
    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:953,1
    - Dst: SubString_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:954,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:954,1
    - Dst: build_string
      Src: /src/cpython/Objects/stringlib/unicode_format.h:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 941
    functionDepth: 14
    functionLinenumber: 941
    functionLinenumberEnd: 956
    functionName: do_string_format
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - build_string
    - AutoNumber_Init
    - SubString_init
    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:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 958
    functionDepth: 15
    functionLinenumber: 958
    functionLinenumberEnd: 962
    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:984,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/stringlib/unicode_format.h:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 986
    functionName: formatteriter_dealloc
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void formatteriter_dealloc(PyObject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MarkupIterator_next
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1006,1
    - Dst: assert
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1012,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1023,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1027,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1043,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1046,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1051,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
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1057,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (0 <= result && result <= 2)
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/cpython/Objects/stringlib/unicode_format.h
    constantsTouched: []
    func_position:
      end: 1060
      start: 996
    functionDepth: 9
    functionLinenumber: 996
    functionLinenumberEnd: 1060
    functionName: formatteriter_next
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - MarkupIterator_next
    - SubString_new_object
    - PyTuple_Pack
    - Py_XDECREF
    - assert
    - PyUnicode_FromKindAndData
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatteriter_next(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1108,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1109,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1109,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1113,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1118,1
    - Dst: MarkupIterator_init
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1121,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1123
    functionName: formatter_parser
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - MarkupIterator_init
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - Py_NewRef
    - PyObject_New
    - 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:1145,1
    - Dst: PyObject_Free
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1147
    functionName: fieldnameiter_dealloc
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void fieldnameiter_dealloc(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FieldNameIterator_next
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1164,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1174,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1180,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1182,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1187,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1190,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1155
    functionDepth: 9
    functionLinenumber: 1155
    functionLinenumberEnd: 1194
    functionName: fieldnameiter_next
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - SubString_new_object
    - PyBool_FromLong
    - PyLong_FromSsize_t
    - Py_XDECREF
    - _PyTuple_FromPairSteal
    - FieldNameIterator_next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fieldnameiter_next(PyObject *op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1249,1
    - Dst: PyErr_Format
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1250,1
    - Dst: Py_TYPE
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1250,1
    - Dst: PyObject_New
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1254,1
    - Dst: Py_NewRef
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1260,1
    - Dst: field_name_split
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1264,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1264,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1270,1
    - Dst: SubString_new_object
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1273,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1278,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1281,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Objects/stringlib/unicode_format.h:1282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1239
    functionDepth: 9
    functionLinenumber: 1239
    functionLinenumberEnd: 1284
    functionName: formatter_field_name_split
    functionSourceFile: /src/cpython/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - field_name_split
    - PyUnicode_Check
    - SubString_new_object
    - PyLong_FromSsize_t
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - Py_XDECREF
    - _PyTuple_FromPairSteal
    - Py_NewRef
    - PyObject_New
    - 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_LEN
    - STRINGLIB_NEW
    - STRINGLIB_CHECK_EXACT
    - Py_NewRef
    - STRINGLIB_STR
    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_NEW
    - PyErr_SetString
    - STRINGLIB_LEN
    - STRINGLIB_STR
    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: 11
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - memset
    - memcpy
    - return_self
    - STRINGLIB_STR
    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:
    - pad
    - STRINGLIB_LEN
    - return_self
    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:
    - pad
    - STRINGLIB_LEN
    - return_self
    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:
    - pad
    - STRINGLIB_LEN
    - return_self
    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
    - pad
    - STRINGLIB_LEN
    - return_self
    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:
    - PyErr_SetString
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - memcpy
    - assert
    - STRINGLIB_STR
    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:
    - countchar
    - return_self
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - memcpy
    - assert
    - findchar
    - STRINGLIB_STR
    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_find
    - return_self
    - STRINGLIB_LEN
    - stringlib_count
    - STRINGLIB_NEW
    - memcpy
    - assert
    - STRINGLIB_STR
    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_LEN
    - STRINGLIB_NEW
    - memcpy
    - return_self
    - findchar
    - STRINGLIB_STR
    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_find
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - memcpy
    - return_self
    - STRINGLIB_STR
    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:
    - countchar
    - PyErr_SetString
    - return_self
    - STRINGLIB_LEN
    - STRINGLIB_NEW
    - memcpy
    - assert
    - findchar
    - STRINGLIB_STR
    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_find
    - PyErr_SetString
    - return_self
    - STRINGLIB_LEN
    - stringlib_count
    - STRINGLIB_NEW
    - memcpy
    - assert
    - STRINGLIB_STR
    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_replace_interleave
    - stringlib_replace_substring
    - STRINGLIB_LEN
    - stringlib_replace_delete_single_character
    - return_self
    - stringlib_replace_substring_in_place
    - stringlib_replace_delete_substring
    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:
    - FIX_PREALLOC_SIZE
    - PyList_SET_ITEM
    - Py_INCREF
    - PREALLOC_SIZE
    - STRINGLIB_ISSPACE
    - SPLIT_ADD
    - STRINGLIB_CHECK_EXACT
    - PyList_New
    - Py_DECREF
    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:
    - FIX_PREALLOC_SIZE
    - PyList_SET_ITEM
    - Py_INCREF
    - PREALLOC_SIZE
    - SPLIT_ADD
    - STRINGLIB_CHECK_EXACT
    - PyList_New
    - Py_DECREF
    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:
    - FIX_PREALLOC_SIZE
    - PyList_SET_ITEM
    - Py_INCREF
    - PREALLOC_SIZE
    - PyErr_SetString
    - STRINGLIB
    - FASTSEARCH
    - SPLIT_ADD
    - STRINGLIB_CHECK_EXACT
    - PyList_New
    - Py_DECREF
    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:
    - FIX_PREALLOC_SIZE
    - PyList_SET_ITEM
    - Py_INCREF
    - PREALLOC_SIZE
    - STRINGLIB_ISSPACE
    - SPLIT_ADD
    - STRINGLIB_CHECK_EXACT
    - PyList_New
    - PyList_Reverse
    - Py_DECREF
    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:
    - FIX_PREALLOC_SIZE
    - PyList_SET_ITEM
    - Py_INCREF
    - PREALLOC_SIZE
    - SPLIT_ADD
    - STRINGLIB_CHECK_EXACT
    - PyList_New
    - PyList_Reverse
    - Py_DECREF
    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:
    - FIX_PREALLOC_SIZE
    - PyList_SET_ITEM
    - Py_INCREF
    - PREALLOC_SIZE
    - PyErr_SetString
    - STRINGLIB
    - FASTSEARCH
    - SPLIT_ADD
    - STRINGLIB_CHECK_EXACT
    - PyList_New
    - PyList_Reverse
    - Py_DECREF
    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:
    - SPLIT_APPEND
    - STRINGLIB_CHECK_EXACT
    - PyList_New
    - STRINGLIB_ISLINEBREAK
    - PyList_Append
    - Py_DECREF
    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
    - PyErr_SetString
    - STRINGLIB_GET_EMPTY
    - STRINGLIB_NEW
    - FASTSEARCH
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyTuple_New
    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
    - PyErr_SetString
    - STRINGLIB_GET_EMPTY
    - STRINGLIB_NEW
    - FASTSEARCH
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyTuple_New
    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:
    - memchr
    - STRINGLIB_FAST_MEMCHR
    - _Py_ALIGN_DOWN
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(find_char)(const STRINGLIB_CHAR* s, Py_ssize_t n, STRINGLIB_CHAR
      ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memrchr
      Src: /src/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
    - STRINGLIB
    - LOG_STRING
    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_SAFE_DOWNCAST
    - memcmp
    - STRINGLIB
    - Py_MAX
    - Py_MIN
    - 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: "((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: (i - cut + 1 > gap)
      pos:
        line_end: 418
        line_start: 418
        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: 471
        line_start: 470
        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:
    - LOG_LINEUP
    - Py_MAX
    - LOG
    - Py_MIN
    - 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
    - STRINGLIB_BLOOM
    - STRINGLIB_BLOOM_ADD
    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:
    - PySequence_Fast
    - STRINGLIB_CHECK_EXACT
    - memcpy
    - PyObject_GetBuffer
    - Py_TYPE
    - PyErr_NoMemory
    - STRINGLIB_LEN
    - PyBytes_CheckExact
    - STRINGLIB_NEW
    - PyMem_Free
    - PyBytes_AS_STRING
    - PyEval_RestoreThread
    - Py_INCREF
    - PyMem_NEW
    - PyErr_SetString
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_NewRef
    - STRINGLIB_STR
    - PySequence_Fast_GET_SIZE
    - PyBuffer_Release
    - PyErr_Format
    - PyEval_SaveThread
    - PySequence_Fast_GET_ITEM
    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:
    - _Py_bytes_isalpha
    - STRINGLIB_LEN
    - STRINGLIB_STR
    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_LEN
    - _Py_bytes_isascii
    - STRINGLIB_STR
    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:
    - STRINGLIB_LEN
    - _Py_bytes_isdigit
    - 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:
    - _Py_bytes_islower
    - STRINGLIB_LEN
    - STRINGLIB_STR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_islower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isupper
      Src: /src/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_LEN
    - STRINGLIB_STR
    - _Py_bytes_isupper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isupper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_istitle
      Src: /src/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_LEN
    - STRINGLIB_STR
    - _Py_bytes_istitle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_istitle(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_NEW
      Src: /src/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:
    - _Py_bytes_lower
    - STRINGLIB_NEW
    - STRINGLIB_STR
    - STRINGLIB_LEN
    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_NEW
    - _Py_bytes_upper
    - STRINGLIB_LEN
    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_NEW
    - _Py_bytes_title
    - STRINGLIB_LEN
    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_NEW
    - _Py_bytes_capitalize
    - STRINGLIB_LEN
    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_NEW
    - _Py_bytes_swapcase
    - STRINGLIB_LEN
    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: 91
        line_start: 91
        source_file: /src/cpython/Objects/stringlib/find_max_char.h
    - condition: (mask == MASK_UCS1)
      pos:
        line_end: 112
        line_start: 112
        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:
    - _Py_SIZE_ROUND_DOWN
    - assert
    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_LEN
    - STRINGLIB
    - STRINGLIB_STR
    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
    - PyUnicode_DATA
    - PyUnicode_READ
    - Py_UNICODE_ISPRINTABLE
    - 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:
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - stringlib_expandtabs_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - PyByteArray_Check
    - PyBytes_AS_STRING
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - _PyArg_BadArgument
    - PyByteArray_GET_SIZE
    - PyErr_Occurred
    - PyErr_Format
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyByteArray_AS_STRING
    - stringlib_ljust_impl
    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:
    - _PyArg_CheckPositional
    - PyByteArray_Check
    - stringlib_rjust_impl
    - PyBytes_AS_STRING
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - _PyArg_BadArgument
    - PyByteArray_GET_SIZE
    - PyErr_Occurred
    - PyErr_Format
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyByteArray_AS_STRING
    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:
    - _PyArg_CheckPositional
    - PyByteArray_Check
    - PyBytes_AS_STRING
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - _PyArg_BadArgument
    - PyByteArray_GET_SIZE
    - stringlib_center_impl
    - PyErr_Occurred
    - PyErr_Format
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyByteArray_AS_STRING
    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:
    - stringlib_zfill_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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_CheckPositional
    - PyTuple_GET_ITEM
    - PyLong_AsInt
    - PyBytes_Check
    - PyUnicode_Check
    - _PyArg_BadArgument
    - code_new_impl
    - PyErr_Occurred
    - PyTuple_Check
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:
    - code_replace_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBytes_Check
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyErr_Occurred
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - _Py_ID
    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:439,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/codeobject.c.h:441,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/codeobject.c.h:460,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/codeobject.c.h:465,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/codeobject.c.h:466,1
    - Dst: code__varname_from_oparg_impl
      Src: /src/cpython/Objects/clinic/codeobject.c.h:469,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: 473
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 473
    functionName: code__varname_from_oparg
    functionSourceFile: /src/cpython/Objects/clinic/codeobject.c.h
    functionUses: 0
    functionsReached:
    - code__varname_from_oparg_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    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:
    - _PyTuple_CAST
    - typevar_new_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyTuple_GetSlice
    - Py_MIN
    - Py_XDECREF
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - typevar_typing_prepare_subst_impl
    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:
    - paramspecargs_new_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - paramspeckwargs_new_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - paramspec_new_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - paramspec_typing_prepare_subst_impl
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:544,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:546,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:546,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:546,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:546,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:546,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:546,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:564,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:565,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:573,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:573,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:578,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:579,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:593,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:602,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:611,1
    - Dst: typevartuple_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:621,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 531
    functionDepth: 4
    functionLinenumber: 531
    functionLinenumberEnd: 625
    functionName: typevartuple
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 2
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - typevartuple_impl
    - _Py_ID
    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:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 646
    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:667,1
    - Dst: typevartuple_typing_prepare_subst_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 676
    functionName: typevartuple_typing_prepare_subst
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - typevartuple_typing_prepare_subst_impl
    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:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 693
    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:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 710
    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:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 727
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:752,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:754,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:754,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:772,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:773,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:779,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:779,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:784,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:785,1
    - Dst: typealias_new_impl
      Src: /src/cpython/Objects/clinic/typevarobject.c.h:801,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 739
    functionDepth: 5
    functionLinenumber: 739
    functionLinenumberEnd: 805
    functionName: typealias_new
    functionSourceFile: /src/cpython/Objects/clinic/typevarobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - typealias_new_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - structseq_new_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - type___subclasscheck___impl
    - PyBool_FromLong
    - PyErr_Occurred
    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: 16
    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: 12
    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: 17
    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:
    - PyLong_AsInt
    - object___reduce_ex___impl
    - PyErr_Occurred
    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:
    - object___format___impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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: 14
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - mappingproxy_new_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - property_init_impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - bytes_split_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:
    - PyBuffer_Release
    - PyObject_GetBuffer
    - bytes_partition_impl
    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:184,1
    - Dst: bytes_rpartition_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:187,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 196
    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:234,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:236,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:236,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:253,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:257,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:273,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:276,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:278,1
    - Dst: bytes_rsplit_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:284,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: 288
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 288
    functionName: bytes_rsplit
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_rsplit_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 316
    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:346,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:353,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:359,1
    - Dst: bytes_find_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:363,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 367
    functionName: bytes_find
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 1
    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:397,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:404,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:410,1
    - Dst: bytes_index_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:414,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 389
    functionDepth: 5
    functionLinenumber: 389
    functionLinenumberEnd: 418
    functionName: bytes_index
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 1
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - bytes_index_impl
    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:448,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:455,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:461,1
    - Dst: bytes_rfind_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:465,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 469
    functionName: bytes_rfind
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 1
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - bytes_rfind_impl
    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:499,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:506,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:512,1
    - Dst: bytes_rindex_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:516,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 491
    functionDepth: 5
    functionLinenumber: 491
    functionLinenumberEnd: 520
    functionName: bytes_rindex
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 1
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - bytes_rindex_impl
    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:543,1
    - Dst: bytes_strip_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 555
    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:577,1
    - Dst: bytes_lstrip_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 589
    functionName: bytes_lstrip
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytes_lstrip_impl
    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:611,1
    - Dst: bytes_rstrip_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 623
    functionName: bytes_rstrip
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytes_rstrip_impl
    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:651,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:658,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:664,1
    - Dst: bytes_count_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:668,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 643
    functionDepth: 4
    functionLinenumber: 643
    functionLinenumberEnd: 672
    functionName: bytes_count
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 1
    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:707,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:709,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:726,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:730,1
    - Dst: bytes_translate_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:741,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: 745
      start: 694
    functionDepth: 5
    functionLinenumber: 694
    functionLinenumberEnd: 745
    functionName: bytes_translate
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - bytes_translate_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:771,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:774,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:777,1
    - Dst: bytes_maketrans_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:780,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:785,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:789,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 793
    functionName: bytes_maketrans
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - _PyArg_CheckPositional
    - PyObject_GetBuffer
    - bytes_maketrans_impl
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_maketrans(PyObject *null, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:828,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:830,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:847,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:852,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:857,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:860,1
    - Dst: PyBUF_SIMPLE::PyBUF_SIMPLE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:860,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:868,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:871,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:873,1
    - Dst: bytes_replace_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:879,1
    - Dst: count::count
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:879,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:884,1
    - Dst: obj::obj
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:887,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 892
    functionName: bytes_replace
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - obj::obj
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBUF_SIMPLE::PyBUF_SIMPLE
    - PyBuffer_Release
    - count::count
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - bytes_replace_impl
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_replace(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:916,1
    - Dst: bytes_removeprefix_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_removeprefix
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_removeprefix_impl
    - PyObject_GetBuffer
    - 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:952,1
    - Dst: bytes_removesuffix_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:955,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 946
    functionDepth: 5
    functionLinenumber: 946
    functionLinenumberEnd: 964
    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:994,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1001,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1007,1
    - Dst: bytes_startswith_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1011,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 986
    functionDepth: 4
    functionLinenumber: 986
    functionLinenumberEnd: 1015
    functionName: bytes_startswith
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 1
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - bytes_startswith_impl
    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:1045,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1052,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1058,1
    - Dst: bytes_endswith_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1062,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1037
    functionDepth: 4
    functionLinenumber: 1037
    functionLinenumberEnd: 1066
    functionName: bytes_endswith
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 1
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - bytes_endswith_impl
    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:1103,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1105,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1105,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1122,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1126,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1135,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1136,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1140,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1144,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1145,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1152,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1153,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1157,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1162,1
    - Dst: bytes_decode_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1166,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: 1170
      start: 1090
    functionDepth: 5
    functionLinenumber: 1090
    functionLinenumberEnd: 1170
    functionName: bytes_decode
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - bytes_decode_impl
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1200,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1202,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1219,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1222,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1230,1
    - Dst: bytes_splitlines_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1235,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: 1239
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1239
    functionName: bytes_splitlines
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - bytes_splitlines_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1264
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1308,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1310,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1310,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1327,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1331,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1347,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1350,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1352,1
    - Dst: bytes_hex_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1358,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: 1362
      start: 1295
    functionDepth: 2
    functionLinenumber: 1295
    functionLinenumberEnd: 1362
    functionName: bytes_hex
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_hex_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:1381,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1383,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1383,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1383,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1401,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1402,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1407,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1407,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1422,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1423,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1427,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1432,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1439,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1440,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1444,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1448,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1449,1
    - Dst: bytes_new_impl
      Src: /src/cpython/Objects/clinic/bytesobject.c.h:1453,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1368
    functionDepth: 5
    functionLinenumber: 1368
    functionLinenumberEnd: 1457
    functionName: bytes_new
    functionSourceFile: /src/cpython/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - bytes_new_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:24,1
    - Dst: range_iterator___length_hint___impl
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:25,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: range_iterator___length_hint__
    functionSourceFile: /src/cpython/Objects/clinic/rangeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - range_iterator___length_hint___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iterator___length_hint__(PyObject *r, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:48,1
    - Dst: range_iterator___reduce___impl
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:49,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: range_iterator___reduce__
    functionSourceFile: /src/cpython/Objects/clinic/rangeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - range_iterator___reduce___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iterator___reduce__(PyObject *r, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:72,1
    - Dst: range_iterator___setstate___impl
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:73,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: range_iterator___setstate__
    functionSourceFile: /src/cpython/Objects/clinic/rangeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - range_iterator___setstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iterator___setstate__(PyObject *r, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:96,1
    - Dst: longrange_iterator___length_hint___impl
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:97,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: longrange_iterator___length_hint__
    functionSourceFile: /src/cpython/Objects/clinic/rangeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - longrange_iterator___length_hint___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrange_iterator___length_hint__(PyObject *r, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:120,1
    - Dst: longrange_iterator___reduce___impl
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:121,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: longrange_iterator___reduce__
    functionSourceFile: /src/cpython/Objects/clinic/rangeobject.c.h
    functionUses: 0
    functionsReached:
    - longrange_iterator___reduce___impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrange_iterator___reduce__(PyObject *r, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:144,1
    - Dst: longrange_iterator___setstate___impl
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:145,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/rangeobject.c.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: longrange_iterator___setstate__
    functionSourceFile: /src/cpython/Objects/clinic/rangeobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - longrange_iterator___setstate___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrange_iterator___setstate__(PyObject *r, PyObject *state)'
  - 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: 12
    functionLinenumber: 22
    functionLinenumberEnd: 79
    functionName: module___init__
    functionSourceFile: /src/cpython/Objects/clinic/moduleobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - module___init___impl
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - tuple_index_impl
    - _PyEval_SliceIndexNotNone
    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_CheckPositional
    - PyTuple_GET_ITEM
    - tuple_new_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:37,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:39,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:39,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:56,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:60,1
    - Dst: OrderedDict_fromkeys_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:71,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: 75
      start: 24
    functionDepth: 12
    functionLinenumber: 24
    functionLinenumberEnd: 75
    functionName: OrderedDict_fromkeys
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - OrderedDict_fromkeys_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_fromkeys(PyObject *type, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:94,1
    - Dst: OrderedDict___sizeof___impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:95,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:96,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/odictobject.c.h:97,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/odictobject.c.h:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: OrderedDict___sizeof__
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - OrderedDict___sizeof___impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_FromSsize_t
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OrderedDict___reduce___impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 19
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: OrderedDict___reduce__
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - OrderedDict___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict___reduce__(PyObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/odictobject.c.h:152,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:154,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:171,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:175,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:186,1
    - Dst: OrderedDict_setdefault_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:187,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:188,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: 192
      start: 139
    functionDepth: 11
    functionLinenumber: 139
    functionLinenumberEnd: 192
    functionName: OrderedDict_setdefault
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - OrderedDict_setdefault_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:223,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:225,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:225,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:242,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:246,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:257,1
    - Dst: OrderedDict_pop_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:258,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:259,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: 263
      start: 210
    functionDepth: 12
    functionLinenumber: 210
    functionLinenumberEnd: 263
    functionName: OrderedDict_pop
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - OrderedDict_pop_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:293,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:295,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:312,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:315,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/odictobject.c.h:323,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:328,1
    - Dst: OrderedDict_popitem_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:329,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:330,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: 334
      start: 280
    functionDepth: 12
    functionLinenumber: 280
    functionLinenumberEnd: 334
    functionName: OrderedDict_popitem
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - OrderedDict_popitem_impl
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_popitem(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/odictobject.c.h:353,1
    - Dst: OrderedDict_clear_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:354,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 348
    functionDepth: 11
    functionLinenumber: 348
    functionLinenumberEnd: 358
    functionName: OrderedDict_clear
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - OrderedDict_clear_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_clear(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:377,1
    - Dst: OrderedDict_copy_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:378,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: OrderedDict_copy
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - OrderedDict_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_copy(PyObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/odictobject.c.h:411,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:413,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/odictobject.c.h:413,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/odictobject.c.h:430,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/odictobject.c.h:434,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/odictobject.c.h:443,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:448,1
    - Dst: OrderedDict_move_to_end_impl
      Src: /src/cpython/Objects/clinic/odictobject.c.h:449,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/odictobject.c.h:450,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 398
    functionDepth: 11
    functionLinenumber: 398
    functionLinenumberEnd: 454
    functionName: OrderedDict_move_to_end
    functionSourceFile: /src/cpython/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - OrderedDict_move_to_end_impl
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - _Py_ID
    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: 12
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: frame_locals_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frame_locals_get_impl
    - Py_END_CRITICAL_SECTION
    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: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: frame_lasti_get
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - frame_lasti_get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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
    - frame_globals_get_impl
    - Py_END_CRITICAL_SECTION
    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
    - frame_back_get_impl
    - Py_END_CRITICAL_SECTION
    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: 5
    functionLinenumber: 288
    functionLinenumberEnd: 298
    functionName: frame_lineno_set
    functionSourceFile: /src/cpython/Objects/clinic/frameobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frame_lineno_set_impl
    - Py_END_CRITICAL_SECTION
    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
    - frame_trace_set_impl
    - Py_END_CRITICAL_SECTION
    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
    - frame_generator_get_impl
    - Py_END_CRITICAL_SECTION
    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
    - frame_clear_impl
    - Py_END_CRITICAL_SECTION
    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
    - frame___sizeof___impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:27,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:29,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:47,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:48,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:52,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:52,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:57,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:58,1
    - Dst: sentinel_new_impl
      Src: /src/cpython/Objects/clinic/sentinelobject.c.h:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 71
    functionName: sentinel_new
    functionSourceFile: /src/cpython/Objects/clinic/sentinelobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - sentinel_new_impl
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sentinel_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - 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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - function___annotate___get_impl
    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: 13
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: function___annotations___get
    functionSourceFile: /src/cpython/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - function___annotations___get_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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
    - function___annotations___set_impl
    - Py_END_CRITICAL_SECTION
    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
    - function___type_params___get_impl
    - Py_END_CRITICAL_SECTION
    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
    - function___type_params___set_impl
    - Py_END_CRITICAL_SECTION
    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:
    - PyObject_TypeCheck
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _PyArg_BadArgument
    - PyDict_Check
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - func_new_impl
    - _Py_ID
    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:
    - long_new_impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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: 7
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: int___format__
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - int___format___impl
    - PyUnicode_Check
    - _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:
    - _PyArg_CheckPositional
    - int___round___impl
    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:
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - int___sizeof___impl
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/longobject.c.h:300,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:302,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:302,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:302,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/longobject.c.h:319,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/longobject.c.h:324,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/longobject.c.h:335,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/longobject.c.h:337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/longobject.c.h:338,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/longobject.c.h:340,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/longobject.c.h:345,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/longobject.c.h:355,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/longobject.c.h:356,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/longobject.c.h:368,1
    - Dst: int_to_bytes_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:373,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 287
    functionDepth: 9
    functionLinenumber: 287
    functionLinenumberEnd: 377
    functionName: int_to_bytes
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - int_to_bytes_impl
    - _Py_ID
    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:421,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:423,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:423,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/longobject.c.h:423,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/longobject.c.h:440,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/longobject.c.h:445,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/longobject.c.h:455,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/longobject.c.h:456,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/longobject.c.h:468,1
    - Dst: int_from_bytes_impl
      Src: /src/cpython/Objects/clinic/longobject.c.h:473,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: 477
      start: 408
    functionDepth: 5
    functionLinenumber: 408
    functionLinenumberEnd: 477
    functionName: int_from_bytes
    functionSourceFile: /src/cpython/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyUnicode_Check
    - _PyArg_BadArgument
    - int_from_bytes_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    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_END_CRITICAL_SECTION
    - Py_BEGIN_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: 12
    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: 14
    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: 15
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: frozenset_copy
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - frozenset_copy_impl
    - Py_END_CRITICAL_SECTION
    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: 10
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: set_clear
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 2
    functionsReached:
    - set_clear_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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: 12
    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: 16
    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: 17
    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: 7
    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: 17
    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: 19
    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: 14
    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: 14
    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: 16
    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: 7
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: set_issuperset
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - set_issuperset_impl
    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
    - set_add_impl
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_add(PyObject *so, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set___contains___impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 423
    functionDepth: 7
    functionLinenumber: 423
    functionLinenumberEnd: 431
    functionName: set___contains__
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - set___contains___impl
    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:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 453
    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:474,1
    - Dst: set_remove_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:475,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 469
    functionDepth: 6
    functionLinenumber: 469
    functionLinenumberEnd: 479
    functionName: set_remove
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set_remove_impl
    - Py_END_CRITICAL_SECTION
    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:501,1
    - Dst: set_discard_impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:502,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 496
    functionDepth: 6
    functionLinenumber: 496
    functionLinenumberEnd: 506
    functionName: set_discard
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set_discard_impl
    - Py_END_CRITICAL_SECTION
    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:525,1
    - Dst: set___reduce___impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:526,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 530
    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:549,1
    - Dst: set___sizeof___impl
      Src: /src/cpython/Objects/clinic/setobject.c.h:550,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/setobject.c.h:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 554
    functionName: set___sizeof__
    functionSourceFile: /src/cpython/Objects/clinic/setobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - set___sizeof___impl
    - Py_END_CRITICAL_SECTION
    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: 7
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: complex___format__
    functionSourceFile: /src/cpython/Objects/clinic/complexobject.c.h
    functionUses: 0
    functionsReached:
    - complex___format___impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - complex_new_impl
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - dict_fromkeys_impl
    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: 2
    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: 1
    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:
    - _PyArg_CheckPositional
    - dict_get_impl
    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_END_CRITICAL_SECTION
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION
    - 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
    - dict_popitem_impl
    - Py_END_CRITICAL_SECTION
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: frozendict_copy_impl
      Src: /src/cpython/Objects/clinic/dictobject.c.h: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: 14
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: frozendict_copy
    functionSourceFile: /src/cpython/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - frozendict_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozendict_copy(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:
    - enum_new_impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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_CheckPositional
    - PyTuple_GET_ITEM
    - reversed_new_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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
    - _Py_STR
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - interpolation_new_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - _conversion_converter
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - list_insert_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:
    - list_copy_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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
    - list_append_impl
    - Py_END_CRITICAL_SECTION
    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:
    - _PyArg_CheckPositional
    - list_pop_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - list_sort_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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: 3
    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:
    - list_index_impl
    - _PyArg_CheckPositional
    - _PyEval_SliceIndexNotNone
    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
    - list_remove_impl
    - Py_END_CRITICAL_SECTION
    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_CheckPositional
    - PyTuple_GET_ITEM
    - Py_IS_TYPE
    - list___init___impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    - 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: 3
    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:34,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:36,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:54,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:57,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:57,1
    - Dst: memoryview_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 67
    functionName: memoryview
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - memoryview_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _Py_ID
    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:94,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:96,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:96,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:116,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:123,1
    - Dst: memoryview__from_flags_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:126,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: 130
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 130
    functionName: memoryview__from_flags
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - memoryview__from_flags_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _Py_ID
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 148
    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:176,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:178,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:178,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:195,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:199,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:204,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:205,1
    - Dst: memoryview_cast_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:214,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: 218
      start: 163
    functionDepth: 13
    functionLinenumber: 163
    functionLinenumberEnd: 218
    functionName: memoryview_cast
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - memoryview_cast_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 236
    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:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 7
    functionLinenumber: 250
    functionLinenumberEnd: 254
    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:288,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:290,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:307,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:310,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:321,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:323,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:328,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:333,1
    - Dst: memoryview_tobytes_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:337,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: 341
      start: 275
    functionDepth: 9
    functionLinenumber: 275
    functionLinenumberEnd: 341
    functionName: memoryview_tobytes
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - memoryview_tobytes_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_tobytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:386,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:388,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:388,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:405,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:409,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:425,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:428,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:430,1
    - Dst: memoryview_hex_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:436,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: 440
      start: 373
    functionDepth: 5
    functionLinenumber: 373
    functionLinenumberEnd: 440
    functionName: memoryview_hex
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - memoryview_hex_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 5
    functionLinenumber: 454
    functionLinenumberEnd: 462
    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:487,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:494,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:500,1
    - Dst: memoryview_index_impl
      Src: /src/cpython/Objects/clinic/memoryobject.c.h:504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 508
    functionName: memoryview_index
    functionSourceFile: /src/cpython/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - memoryview_index_impl
    - _PyEval_SliceIndexNotNone
    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:112,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:117,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:119,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:120,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:122,1
    - Dst: convert_uc
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:130,1
    - Dst: unicode_center_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:134,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 138
    functionName: unicode_center
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - convert_uc
    - unicode_center_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    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:165,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:168,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:169,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:176,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:182,1
    - Dst: unicode_count_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:186,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:187,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:190,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 194
    functionName: unicode_count
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicode_count_impl
    - _PyEval_SliceIndex
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyLong_FromSsize_t
    - PyErr_Occurred
    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:230,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:232,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:232,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:249,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:253,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:262,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:263,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:267,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:271,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:272,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:279,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:280,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:284,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:289,1
    - Dst: unicode_encode_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:293,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: 297
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 297
    functionName: unicode_encode
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyTuple_GET_SIZE
    - unicode_encode_impl
    - _Py_ID
    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:326,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:328,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:345,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:348,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:356,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:357,1
    - Dst: unicode_expandtabs_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:361,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: 365
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 365
    functionName: unicode_expandtabs
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_expandtabs_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_ID
    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:392,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:395,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:396,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:403,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:409,1
    - Dst: unicode_find_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:413,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:414,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:417,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 421
    functionName: unicode_find
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicode_find_impl
    - _PyEval_SliceIndex
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyLong_FromSsize_t
    - PyErr_Occurred
    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:448,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:451,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:452,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:459,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:465,1
    - Dst: unicode_index_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:469,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:470,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:473,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 477
    functionName: unicode_index
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicode_index_impl
    - _PyEval_SliceIndex
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyLong_FromSsize_t
    - PyErr_Occurred
    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:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 498
    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:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 519
    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:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 540
    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: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: 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:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 582
    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:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 603
    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: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: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 624
    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:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 645
    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:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 666
    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:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 687
    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:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 704
    functionDepth: 5
    functionLinenumber: 704
    functionLinenumberEnd: 708
    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: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: 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:766,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:771,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:774,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:776,1
    - Dst: convert_uc
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:784,1
    - Dst: unicode_ljust_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 792
    functionName: unicode_ljust
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - convert_uc
    - unicode_ljust_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 6
    functionLinenumber: 806
    functionLinenumberEnd: 810
    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:832,1
    - Dst: unicode_strip_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:840,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 844
    functionName: unicode_strip
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicode_strip_impl
    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:866,1
    - Dst: unicode_lstrip_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 878
    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:900,1
    - Dst: unicode_rstrip_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 912
    functionName: unicode_rstrip
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicode_rstrip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:947,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:949,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:966,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:971,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:976,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:977,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:981,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:982,1
    - Dst: args::args
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:985,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:991,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:994,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:996,1
    - Dst: unicode_replace_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1002,1
    - Dst: count::count
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1002,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: 1006
      start: 934
    functionDepth: 7
    functionLinenumber: 934
    functionLinenumberEnd: 1006
    functionName: unicode_replace
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyArg_BadArgument
    - args::args
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - unicode_replace_impl
    - count::count
    - _Py_ID
    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:1030,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1031,1
    - Dst: unicode_removeprefix_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1024
    functionDepth: 9
    functionLinenumber: 1024
    functionLinenumberEnd: 1039
    functionName: unicode_removeprefix
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_removeprefix_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:1063,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1064,1
    - Dst: unicode_removesuffix_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1057
    functionDepth: 9
    functionLinenumber: 1057
    functionLinenumberEnd: 1072
    functionName: unicode_removesuffix
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_removesuffix_impl
    - PyUnicode_Check
    - _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:1099,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1102,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1103,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1110,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1116,1
    - Dst: unicode_rfind_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1120,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1121,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1124,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1090
    functionDepth: 4
    functionLinenumber: 1090
    functionLinenumberEnd: 1128
    functionName: unicode_rfind
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - 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:1155,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1158,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1159,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1166,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1172,1
    - Dst: unicode_rindex_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1176,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1177,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1180,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - str
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1146
    functionDepth: 4
    functionLinenumber: 1146
    functionLinenumberEnd: 1184
    functionName: unicode_rindex
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - PyUnicode_Check
    - _PyArg_BadArgument
    - unicode_rindex_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    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:1208,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1213,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1215,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1216,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1218,1
    - Dst: convert_uc
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1226,1
    - Dst: unicode_rjust_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1230,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1201
    functionDepth: 3
    functionLinenumber: 1201
    functionLinenumberEnd: 1234
    functionName: unicode_rjust
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - convert_uc
    - unicode_rjust_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:1277,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1279,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1279,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1296,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1300,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1316,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1319,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1321,1
    - Dst: unicode_split_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1327,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: 1331
      start: 1264
    functionDepth: 6
    functionLinenumber: 1264
    functionLinenumberEnd: 1331
    functionName: unicode_split
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_split_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:1403,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1405,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1405,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1422,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1426,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1442,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1445,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1447,1
    - Dst: unicode_rsplit_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1453,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: 1457
      start: 1390
    functionDepth: 6
    functionLinenumber: 1390
    functionLinenumberEnd: 1457
    functionName: unicode_rsplit
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - unicode_rsplit_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:1487,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1489,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1506,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1509,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1517,1
    - Dst: unicode_splitlines_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1522,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: 1526
      start: 1474
    functionDepth: 3
    functionLinenumber: 1474
    functionLinenumberEnd: 1526
    functionName: unicode_splitlines
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - PyTuple_GET_SIZE
    - unicode_splitlines_impl
    - _Py_ID
    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:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1540
    functionDepth: 6
    functionLinenumber: 1540
    functionLinenumberEnd: 1544
    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:1575,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1582,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1583,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1590,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1591,1
    - Dst: unicode_maketrans_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1596,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1567
    functionDepth: 12
    functionLinenumber: 1567
    functionLinenumberEnd: 1600
    functionName: unicode_maketrans
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicode_maketrans_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1632
    functionDepth: 6
    functionLinenumber: 1632
    functionLinenumberEnd: 1636
    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:1660,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1663,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1665,1
    - Dst: unicode_zfill_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1652
    functionDepth: 4
    functionLinenumber: 1652
    functionLinenumberEnd: 1674
    functionName: unicode_zfill
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_zfill_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:1704,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1711,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1717,1
    - Dst: unicode_startswith_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1721,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1725
    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:1755,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1762,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1768,1
    - Dst: unicode_endswith_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1772,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1747
    functionDepth: 2
    functionLinenumber: 1747
    functionLinenumberEnd: 1776
    functionName: unicode_endswith
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - unicode_endswith_impl
    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:1796,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1797,1
    - Dst: unicode___format___impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1790
    functionDepth: 7
    functionLinenumber: 1790
    functionLinenumberEnd: 1805
    functionName: unicode___format__
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode___format___impl
    - PyUnicode_Check
    - _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:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1819
    functionDepth: 4
    functionLinenumber: 1819
    functionLinenumberEnd: 1823
    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:1842,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1844,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1844,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1844,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1862,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1863,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1868,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1868,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1883,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1884,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1888,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1892,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1893,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1900,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1901,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1905,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1909,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1910,1
    - Dst: unicode_new_impl
      Src: /src/cpython/Objects/clinic/unicodeobject.c.h:1914,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1829
    functionDepth: 5
    functionLinenumber: 1829
    functionLinenumberEnd: 1918
    functionName: unicode_new
    functionSourceFile: /src/cpython/Objects/clinic/unicodeobject.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - unicode_new_impl
    - _Py_ID
    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
    - BaseException___reduce___impl
    - Py_END_CRITICAL_SECTION
    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
    - BaseException___setstate___impl
    - Py_END_CRITICAL_SECTION
    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:
    - BaseException_with_traceback_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - BaseException_add_note_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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
    - BaseException_args_get_impl
    - Py_END_CRITICAL_SECTION
    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
    - BaseException_args_set_impl
    - Py_END_CRITICAL_SECTION
    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_END_CRITICAL_SECTION
    - Py_BEGIN_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
    - BaseException___traceback___set_impl
    - Py_END_CRITICAL_SECTION
    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:
    - BaseException___context___set_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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
    - BaseException___cause___get_impl
    - Py_END_CRITICAL_SECTION
    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:
    - BaseExceptionGroup_derive_impl
    - Py_BEGIN_CRITICAL_SECTION
    - 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_END_CRITICAL_SECTION
    - Py_BEGIN_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
    - BaseExceptionGroup_subgroup_impl
    - Py_END_CRITICAL_SECTION
    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: 10
    functionLinenumber: 17
    functionLinenumberEnd: 106
    functionName: bytearray___init__
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray___init___impl
    - _PyTuple_CAST
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - _Py_ID
    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: 3
    functionLinenumber: 128
    functionLinenumberEnd: 159
    functionName: bytearray_find
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_find_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEval_SliceIndex
    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: 3
    functionLinenumber: 179
    functionLinenumberEnd: 210
    functionName: bytearray_count
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEval_SliceIndex
    - bytearray_count_impl
    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: 9
    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: 6
    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: 3
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: bytearray_index
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEval_SliceIndex
    - bytearray_index_impl
    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: 3
    functionLinenumber: 327
    functionLinenumberEnd: 358
    functionName: bytearray_rfind
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEval_SliceIndex
    - 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: 3
    functionLinenumber: 380
    functionLinenumberEnd: 411
    functionName: bytearray_rindex
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEval_SliceIndex
    - bytearray_rindex_impl
    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: 3
    functionLinenumber: 433
    functionLinenumberEnd: 464
    functionName: bytearray_startswith
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEval_SliceIndex
    - bytearray_startswith_impl
    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: 3
    functionLinenumber: 486
    functionLinenumberEnd: 517
    functionName: bytearray_endswith
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_endswith_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyEval_SliceIndex
    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: 6
    functionLinenumber: 535
    functionLinenumberEnd: 555
    functionName: bytearray_removeprefix
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - bytearray_removeprefix_impl
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_Release
    - PyObject_GetBuffer
    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: 6
    functionLinenumber: 573
    functionLinenumberEnd: 593
    functionName: bytearray_removesuffix
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - bytearray_removesuffix_impl
    - Py_BEGIN_CRITICAL_SECTION
    - PyBuffer_Release
    - PyObject_GetBuffer
    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: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:628,1
    - Dst: bytearray_resize_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:629,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 610
    functionDepth: 8
    functionLinenumber: 610
    functionLinenumberEnd: 634
    functionName: bytearray_resize
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    - bytearray_resize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_resize(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:657,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:665,1
    - Dst: bytearray_take_bytes_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:666,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 651
    functionDepth: 7
    functionLinenumber: 651
    functionLinenumberEnd: 671
    functionName: bytearray_take_bytes
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_take_bytes_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_take_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:706,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:708,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:725,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:729,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:740,1
    - Dst: bytearray_translate_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:741,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:742,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: 746
      start: 693
    functionDepth: 9
    functionLinenumber: 693
    functionLinenumberEnd: 746
    functionName: bytearray_translate
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - Py_BEGIN_CRITICAL_SECTION
    - _PyArg_UnpackKeywords
    - bytearray_translate_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:772,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:775,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:778,1
    - Dst: bytearray_maketrans_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:781,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:786,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:790,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 765
    functionDepth: 3
    functionLinenumber: 765
    functionLinenumberEnd: 794
    functionName: bytearray_maketrans
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_maketrans_impl
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_maketrans(PyObject *null, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:829,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:831,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:848,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:853,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:858,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:861,1
    - Dst: PyBUF_SIMPLE::PyBUF_SIMPLE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:861,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:869,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:871,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:872,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:874,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:880,1
    - Dst: bytearray_replace_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:881,1
    - Dst: count::count
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:881,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:882,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:887,1
    - Dst: obj::obj
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:890,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 895
    functionName: bytearray_replace
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - obj::obj
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyBUF_SIMPLE::PyBUF_SIMPLE
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_replace_impl
    - PyBuffer_Release
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyObject_GetBuffer
    - count::count
    - PyLong_AsSsize_t
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:931,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:933,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:933,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:950,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:954,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:970,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:973,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:975,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:981,1
    - Dst: bytearray_split_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:982,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:983,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: 987
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 987
    functionName: bytearray_split
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_split_impl
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:1014,1
    - Dst: bytearray_partition_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1015,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1009
    functionDepth: 4
    functionLinenumber: 1009
    functionLinenumberEnd: 1019
    functionName: bytearray_partition
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_partition_impl
    - Py_END_CRITICAL_SECTION
    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:1047,1
    - Dst: bytearray_rpartition_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1048,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1042
    functionDepth: 4
    functionLinenumber: 1042
    functionLinenumberEnd: 1052
    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:1091,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1093,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1093,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1110,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1114,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1130,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1133,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1135,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1141,1
    - Dst: bytearray_rsplit_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: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1078
    functionDepth: 3
    functionLinenumber: 1078
    functionLinenumberEnd: 1147
    functionName: bytearray_rsplit
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_rsplit_impl
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:1166,1
    - Dst: bytearray_reverse_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1167,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1171
    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:1197,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1202,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1204,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1205,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1207,1
    - Dst: _getbytevalue
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1212,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1215,1
    - Dst: bytearray_insert_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1216,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1190
    functionDepth: 8
    functionLinenumber: 1190
    functionLinenumberEnd: 1221
    functionName: bytearray_insert
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _getbytevalue
    - bytearray_insert_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:1244,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1247,1
    - Dst: bytearray_append_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1248,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1238
    functionDepth: 8
    functionLinenumber: 1238
    functionLinenumberEnd: 1253
    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:1275,1
    - Dst: bytearray_extend_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1276,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iterable_of_ints
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1270
    functionDepth: 10
    functionLinenumber: 1270
    functionLinenumberEnd: 1280
    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:1306,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1314,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1317,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1319,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1325,1
    - Dst: bytearray_pop_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1326,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1300
    functionDepth: 8
    functionLinenumber: 1300
    functionLinenumberEnd: 1331
    functionName: bytearray_pop
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_pop_impl
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:1354,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1357,1
    - Dst: bytearray_remove_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1358,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1348
    functionDepth: 8
    functionLinenumber: 1348
    functionLinenumberEnd: 1363
    functionName: bytearray_remove
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_remove_impl
    - Py_BEGIN_CRITICAL_SECTION
    - _getbytevalue
    - Py_END_CRITICAL_SECTION
    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:1386,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1394,1
    - Dst: bytearray_strip_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1395,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1380
    functionDepth: 7
    functionLinenumber: 1380
    functionLinenumberEnd: 1400
    functionName: bytearray_strip
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_strip_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1422,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1430,1
    - Dst: bytearray_lstrip_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1431,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1416
    functionDepth: 7
    functionLinenumber: 1416
    functionLinenumberEnd: 1436
    functionName: bytearray_lstrip
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_lstrip_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1458,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1466,1
    - Dst: bytearray_rstrip_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1467,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1452
    functionDepth: 7
    functionLinenumber: 1452
    functionLinenumberEnd: 1472
    functionName: bytearray_rstrip
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_rstrip_impl
    - Py_BEGIN_CRITICAL_SECTION
    - Py_END_CRITICAL_SECTION
    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:1509,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1511,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1511,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1528,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1532,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1541,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1542,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1546,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1550,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1551,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1558,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1559,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1563,1
    - Dst: strlen
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1567,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1568,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1572,1
    - Dst: bytearray_decode_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1573,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1574,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: 1578
      start: 1496
    functionDepth: 5
    functionLinenumber: 1496
    functionLinenumberEnd: 1578
    functionName: bytearray_decode
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - bytearray_decode_impl
    - strlen
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1602,1
    - Dst: bytearray_join_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1603,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1607
    functionName: bytearray_join
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_join_impl
    - Py_END_CRITICAL_SECTION
    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:1637,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1639,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1656,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1659,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1667,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1672,1
    - Dst: bytearray_splitlines_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1673,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1674,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: 1678
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1678
    functionName: bytearray_splitlines
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyObject_IsTrue
    - bytearray_splitlines_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1696
    functionDepth: 4
    functionLinenumber: 1696
    functionLinenumberEnd: 1704
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1749,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1751,1
    - Dst: _Py_ID
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1751,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1768,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1772,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1788,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1790,1
    - Dst: Py_DECREF
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1791,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1793,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1799,1
    - Dst: bytearray_hex_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1800,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1801,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: 1805
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1805
    functionName: bytearray_hex
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_hex_impl
    - Py_END_CRITICAL_SECTION
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    - _PyNumber_Index
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Py_ID
    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:1824,1
    - Dst: bytearray_reduce_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1825,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1829
    functionName: bytearray_reduce
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - bytearray_reduce_impl
    - Py_END_CRITICAL_SECTION
    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:1849,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1855,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1856,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1860,1
    - Dst: bytearray_reduce_ex_impl
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1861,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Objects/clinic/bytearrayobject.c.h:1862,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1843
    functionDepth: 4
    functionLinenumber: 1843
    functionLinenumberEnd: 1866
    functionName: bytearray_reduce_ex
    functionSourceFile: /src/cpython/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_reduce_ex_impl
    - _PyArg_CheckPositional
    - Py_END_CRITICAL_SECTION
    - PyLong_AsInt
    - Py_BEGIN_CRITICAL_SECTION
    - PyErr_Occurred
    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:1883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1880
    functionDepth: 2
    functionLinenumber: 1880
    functionLinenumberEnd: 1884
    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_CheckPositional
    - PyTuple_GET_ITEM
    - method_new_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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_CheckPositional
    - PyTuple_GET_ITEM
    - instancemethod_new_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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_CheckPositional
    - float_new_impl
    - PyTuple_GET_ITEM
    - _PyArg_NoKeywords
    - PyTuple_GET_SIZE
    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:
    - PyErr_SetString
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - float___getformat___impl
    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: 7
    functionLinenumber: 340
    functionLinenumberEnd: 355
    functionName: float___format__
    functionSourceFile: /src/cpython/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float___format___impl
    - PyUnicode_Check
    - _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:194,1
    - Dst: _PyPegen_raise_error_known_location
      Src: /src/cpython/Parser/pegen.h:197,1
    - Dst: va_end
      Src: /src/cpython/Parser/pegen.h:198,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: 200
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: RAISE_ERROR_KNOWN_LOCATION
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - _PyPegen_raise_error_known_location
    - va_end
    - va_start
    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: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    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: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    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: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    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: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    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: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    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: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    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:216,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.h:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - result
    argTypes:
    - Parser*
    - void*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/cpython/Parser/pegen.h
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 220
    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:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - result
    argTypes:
    - Parser*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 231
    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: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: CHECK
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 33
    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: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    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:241,1
    - Dst: _PyPegen_get_invalid_target
      Src: /src/cpython/Parser/pegen.h:241,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen.h:250,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/pegen.h:253,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen.h:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - type
    - e
    argTypes:
    - Parser*
    - TARGETS_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 258
    functionName: _RAISE_SYNTAX_ERROR_INVALID_TARGET
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _PyPegen_get_expr_name
    - _PyPegen_get_invalid_target
    - CHECK_NULL_ALLOWED
    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: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    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: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    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: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    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: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    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:278,1
    - Dst: _PyPegen_new_type_comment
      Src: /src/cpython/Parser/pegen.h:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - tc
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: NEW_TYPE_COMMENT
    functionSourceFile: /src/cpython/Parser/pegen.h
    functionUses: 0
    functionsReached:
    - _PyPegen_new_type_comment
    - PyBytes_AsString
    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:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - version
    - msg
    - node
    argTypes:
    - Parser*
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 305
    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: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    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: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: D
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1857
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1008,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1008,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1009,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1022,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1022,1
    - Dst: statements_rule
      Src: /src/cpython/Parser/parser.c:1026,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1028,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1031,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1031,1
    - Dst: _PyPegen_make_module
      Src: /src/cpython/Parser/parser.c:1032,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1033,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1041,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1048
    functionName: file_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_make_module
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - statements_rule
    - fprintf
    - _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:1054,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1054,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1055,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1068,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1068,1
    - Dst: statement_newline_rule
      Src: /src/cpython/Parser/parser.c:1071,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1074,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1074,1
    - Dst: _PyAST_Interactive
      Src: /src/cpython/Parser/parser.c:1075,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1076,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1084,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1084,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1091
    functionName: interactive_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyAST_Interactive
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - statement_newline_rule
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty interactive_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:1097,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1097,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1098,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1111,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1111,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:1116,1
    - Dst: _loop0_1_rule
      Src: /src/cpython/Parser/parser.c:1118,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1120,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1123,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1123,1
    - Dst: _PyAST_Expression
      Src: /src/cpython/Parser/parser.c:1124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1125,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1133,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1133,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1140
    functionName: eval_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyAST_Expression
    - _PyPegen_expect_token
    - expressions_rule
    - D
    - _loop0_1_rule
    - PyErr_Occurred
    - fprintf
    - _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:1146,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1146,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1147,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1160,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1160,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1169,1
    - Dst: type_expressions_rule
      Src: /src/cpython/Parser/parser.c:1171,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1173,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1175,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:1177,1
    - Dst: _loop0_1_rule
      Src: /src/cpython/Parser/parser.c:1179,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1181,1
    - Dst: _PyAST_FunctionType
      Src: /src/cpython/Parser/parser.c:1185,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1186,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1194,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1196
    functionName: func_type_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_FunctionType
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - _loop0_1_rule
    - PyErr_Occurred
    - fprintf
    - type_expressions_rule
    - _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:1207,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1207,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1208,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1221,1
    - Dst: _loop1_2_rule
      Src: /src/cpython/Parser/parser.c:1224,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1227,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1227,1
    - Dst: _PyPegen_seq_flatten
      Src: /src/cpython/Parser/parser.c:1228,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1229,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1237,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1244
    functionName: statements_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_2_rule
    - PyThreadState_Get
    - D
    - PyErr_Occurred
    - fprintf
    - _PyPegen_seq_flatten
    - _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:1250,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1250,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1251,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1264,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1264,1
    - Dst: compound_stmt_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: _PyPegen_register_stmts
      Src: /src/cpython/Parser/parser.c:1271,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:1271,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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1288,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1288,1
    - Dst: simple_stmts_rule
      Src: /src/cpython/Parser/parser.c:1291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1294,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1294,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1296,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1304,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1311
    functionName: statement_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - simple_stmts_rule
    - compound_stmt_rule
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - D
    - _PyPegen_register_stmts
    - PyErr_Occurred
    - fprintf
    - _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:1317,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1317,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1318,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1331,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1331,1
    - Dst: compound_stmt_rule
      Src: /src/cpython/Parser/parser.c:1334,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1337,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1337,1
    - Dst: _PyPegen_register_stmts
      Src: /src/cpython/Parser/parser.c:1338,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:1338,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1339,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1347,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1347,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1354
    functionName: single_compound_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - compound_stmt_rule
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - D
    - _PyPegen_register_stmts
    - PyErr_Occurred
    - fprintf
    - _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:1360,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1360,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1361,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:1369,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1375,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1377,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1383,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1383,1
    - Dst: single_compound_stmt_rule
      Src: /src/cpython/Parser/parser.c:1387,1
    - Dst: _PyPegen_expect_token
      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: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1394,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1402,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1402,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1410,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1410,1
    - Dst: simple_stmts_rule
      Src: /src/cpython/Parser/parser.c:1413,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1416,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1416,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1421,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1421,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1429,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1429,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1432,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1435,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1435,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:1436,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1442,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1444,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:1445,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:1445,1
    - Dst: _PyAST_Pass
      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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1462,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1462,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1468,1
    - Dst: _PyPegen_interactive_exit
      Src: /src/cpython/Parser/parser.c:1469,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1470,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1478,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 97
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1357
    functionDepth: 2
    functionLinenumber: 1357
    functionLinenumberEnd: 1485
    functionName: statement_newline_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - simple_stmts_rule
    - _PyPegen_interactive_exit
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - single_compound_stmt_rule
    - CHECK
    - PyErr_Occurred
    - _PyAST_Pass
    - fprintf
    - _Pypegen_stack_overflow
    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:1491,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1491,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1492,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1505,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1505,1
    - Dst: simple_stmt_rule
      Src: /src/cpython/Parser/parser.c:1509,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1511,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1513,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1516,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1516,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:1517,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1518,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1526,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1526,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1534,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1534,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1536,1
    - Dst: _gather_4_rule
      Src: /src/cpython/Parser/parser.c:1540,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1542,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:1544,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1547,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1549,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1557,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1557,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1564
    functionName: simple_stmts_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - simple_stmt_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _gather_4_rule
    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:1584,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1584,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1585,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:1592,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:1597,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1603,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1611,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1611,1
    - Dst: assignment_rule
      Src: /src/cpython/Parser/parser.c:1614,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1617,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1617,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1622,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1622,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1630,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1630,1
    - Dst: _PyPegen_lookahead_with_string
      Src: /src/cpython/Parser/parser.c:1633,1
    - Dst: type_alias_rule
      Src: /src/cpython/Parser/parser.c:1635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1638,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1638,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1643,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1651,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1651,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:1654,1
    - Dst: import_stmt_rule
      Src: /src/cpython/Parser/parser.c:1656,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1659,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1659,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1664,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1664,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1672,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1672,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:1675,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1678,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1678,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:1679,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1685,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:1687,1
    - Dst: _PyAST_Expr
      Src: /src/cpython/Parser/parser.c:1688,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:1689,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1697,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1697,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1705,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1705,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1708,1
    - Dst: return_stmt_rule
      Src: /src/cpython/Parser/parser.c:1710,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1713,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1713,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1718,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1718,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1726,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1726,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1729,1
    - Dst: raise_stmt_rule
      Src: /src/cpython/Parser/parser.c:1731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1734,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1734,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1739,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1739,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1747,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1747,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1750,1
    - Dst: pass_stmt_rule
      Src: /src/cpython/Parser/parser.c:1752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1755,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1760,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1760,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1768,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1768,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1771,1
    - Dst: del_stmt_rule
      Src: /src/cpython/Parser/parser.c:1773,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1776,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1776,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1781,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1789,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1789,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1792,1
    - Dst: yield_stmt_rule
      Src: /src/cpython/Parser/parser.c:1794,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1797,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1797,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1802,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1810,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1810,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1813,1
    - Dst: assert_stmt_rule
      Src: /src/cpython/Parser/parser.c:1815,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1818,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1818,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1823,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1831,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1831,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1834,1
    - Dst: break_stmt_rule
      Src: /src/cpython/Parser/parser.c:1836,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1839,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1839,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1844,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1844,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1852,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1855,1
    - Dst: continue_stmt_rule
      Src: /src/cpython/Parser/parser.c:1857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1860,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1860,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1865,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1865,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1873,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1876,1
    - Dst: global_stmt_rule
      Src: /src/cpython/Parser/parser.c:1878,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1881,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1881,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1886,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1886,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1894,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1894,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1897,1
    - Dst: nonlocal_stmt_rule
      Src: /src/cpython/Parser/parser.c:1899,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1902,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1902,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1907,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1907,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:1912,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 232
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1915
    functionName: simple_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead
    - _PyPegen_is_memoized
    - _PyPegen_fill_token
    - assert_stmt_rule
    - _PyPegen_insert_memo
    - _PyAST_Expr
    - PyErr_Occurred
    - _Pypegen_stack_overflow
    - _PyPegen_lookahead_with_int
    - global_stmt_rule
    - break_stmt_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - continue_stmt_rule
    - PyThreadState_Get
    - return_stmt_rule
    - type_alias_rule
    - raise_stmt_rule
    - del_stmt_rule
    - _PyPegen_lookahead_with_string
    - assignment_rule
    - _Py_ReachedRecursionLimitWithMargin
    - nonlocal_stmt_rule
    - UNUSED
    - D
    - import_stmt_rule
    - pass_stmt_rule
    - fprintf
    - star_expressions_rule
    - yield_stmt_rule
    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:1929,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:1929,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:1930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1943,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1943,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:1946,1
    - Dst: function_def_rule
      Src: /src/cpython/Parser/parser.c:1948,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1951,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1951,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1956,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1964,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1964,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:1967,1
    - Dst: if_stmt_rule
      Src: /src/cpython/Parser/parser.c:1969,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1972,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1972,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1977,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1977,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1985,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:1988,1
    - Dst: class_def_rule
      Src: /src/cpython/Parser/parser.c:1990,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1993,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:1998,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:1998,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2006,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2006,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:2009,1
    - Dst: with_stmt_rule
      Src: /src/cpython/Parser/parser.c:2011,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2014,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2014,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2019,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2019,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2027,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2027,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:2030,1
    - Dst: for_stmt_rule
      Src: /src/cpython/Parser/parser.c:2032,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2035,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2035,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2040,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2040,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2048,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2048,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:2051,1
    - Dst: try_stmt_rule
      Src: /src/cpython/Parser/parser.c:2053,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2056,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2056,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2061,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2061,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2069,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2069,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:2072,1
    - Dst: while_stmt_rule
      Src: /src/cpython/Parser/parser.c:2074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2077,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2082,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2082,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2090,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2090,1
    - Dst: match_stmt_rule
      Src: /src/cpython/Parser/parser.c:2093,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2096,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2096,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2101,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2101,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 125
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 2108
    functionName: compound_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - try_stmt_rule
    - function_def_rule
    - while_stmt_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - match_stmt_rule
    - with_stmt_rule
    - for_stmt_rule
    - D
    - class_def_rule
    - if_stmt_rule
    - fprintf
    - _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:2119,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2119,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2120,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:2128,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2134,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2142,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2142,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:2148,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2150,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2152,1
    - Dst: _tmp_10_rule
      Src: /src/cpython/Parser/parser.c:2154,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2157,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2157,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2158,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2164,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2166,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:2167,1
    - Dst: _PyAST_AnnAssign
      Src: /src/cpython/Parser/parser.c:2167,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:2167,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:2167,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2168,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2176,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2176,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2184,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2184,1
    - Dst: _tmp_11_rule
      Src: /src/cpython/Parser/parser.c:2190,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2192,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2194,1
    - Dst: _tmp_10_rule
      Src: /src/cpython/Parser/parser.c:2196,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2199,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2199,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2200,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2206,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2208,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:2209,1
    - Dst: _PyAST_AnnAssign
      Src: /src/cpython/Parser/parser.c:2209,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2210,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2218,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2218,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2226,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2226,1
    - Dst: _loop1_12_rule
      Src: /src/cpython/Parser/parser.c:2231,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:2233,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:2235,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2237,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2240,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2241,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2247,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2249,1
    - Dst: _PyAST_Assign
      Src: /src/cpython/Parser/parser.c:2250,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:2250,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2251,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2259,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2259,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2267,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2267,1
    - Dst: single_target_rule
      Src: /src/cpython/Parser/parser.c:2273,1
    - Dst: augassign_rule
      Src: /src/cpython/Parser/parser.c:2275,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:2279,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2282,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2282,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2283,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2289,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2291,1
    - Dst: _PyAST_AugAssign
      Src: /src/cpython/Parser/parser.c:2292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2301,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2301,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2313,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2313,1
    - Dst: invalid_assignment_rule
      Src: /src/cpython/Parser/parser.c:2316,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2319,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2319,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2324,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2324,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 139
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2116
    functionDepth: 3
    functionLinenumber: 2116
    functionLinenumberEnd: 2331
    functionName: assignment_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - expression_rule
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _Pypegen_stack_overflow
    - _PyPegen_lookahead_with_int
    - augassign_rule
    - invalid_assignment_rule
    - _PyAST_AnnAssign
    - _tmp_11_rule
    - annotated_rhs_rule
    - NEW_TYPE_COMMENT
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyPegen_set_expr_context
    - _tmp_10_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_Assign
    - UNUSED
    - _loop1_12_rule
    - single_target_rule
    - D
    - CHECK
    - _PyAST_AugAssign
    - fprintf
    - _PyPegen_name_token
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty assignment_rule(Parser *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:2337,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2337,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2338,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2351,1
    - Dst: yield_expr_rule
      Src: /src/cpython/Parser/parser.c:2354,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2357,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2357,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2362,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2370,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2370,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:2373,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2376,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2381,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2381,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2388
    functionName: annotated_rhs_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - star_expressions_rule
    - D
    - yield_expr_rule
    - fprintf
    - _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:2407,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2407,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2408,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: _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: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:2500,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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2709,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2709,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2712,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2715,1
    - Dst: _PyPegen_augoperator
      Src: /src/cpython/Parser/parser.c:2716,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2717,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2725,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2725,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 260
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2732
    functionName: augassign_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_augoperator
    - CHECK_VERSION
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:2738,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2738,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2739,1
    - Dst: _PyPegen_fill_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: D
      Src: /src/cpython/Parser/parser.c:2761,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2761,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2765,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:2767,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2770,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2770,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2771,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2777,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2779,1
    - Dst: _PyAST_Return
      Src: /src/cpython/Parser/parser.c:2780,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2789,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2789,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2735
    functionDepth: 1
    functionLinenumber: 2735
    functionLinenumberEnd: 2796
    functionName: return_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - star_expressions_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyAST_Return
    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:2806,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2806,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2807,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:2815,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2821,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2829,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2829,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2835,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2837,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2839,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2841,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2844,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2844,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2845,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2851,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2853,1
    - Dst: _PyAST_Raise
      Src: /src/cpython/Parser/parser.c:2854,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2855,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2863,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2863,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2871,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2871,1
    - Dst: invalid_raise_stmt_rule
      Src: /src/cpython/Parser/parser.c:2874,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2877,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2882,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2882,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2890,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2890,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2894,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:2896,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2899,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2900,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2906,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2908,1
    - Dst: _PyAST_Raise
      Src: /src/cpython/Parser/parser.c:2909,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2910,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2918,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2918,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2926,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2926,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2929,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2932,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2932,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2933,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2939,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2941,1
    - Dst: _PyAST_Raise
      Src: /src/cpython/Parser/parser.c:2942,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:2943,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2951,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2951,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 110
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2803
    functionDepth: 1
    functionLinenumber: 2803
    functionLinenumberEnd: 2958
    functionName: raise_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - invalid_raise_stmt_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _PyAST_Raise
    - _Pypegen_stack_overflow
    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:2964,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:2964,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:2965,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:2973,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2979,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:2981,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2987,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2987,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:2990,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:2993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:2993,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:2994,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3000,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3002,1
    - Dst: _PyAST_Pass
      Src: /src/cpython/Parser/parser.c:3003,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3004,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3012,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3012,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 2961
    functionDepth: 1
    functionLinenumber: 2961
    functionLinenumberEnd: 3019
    functionName: pass_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - _PyAST_Pass
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:3025,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3025,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3026,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3034,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3040,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3042,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3048,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3048,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3051,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3054,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3054,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3055,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3061,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3063,1
    - Dst: _PyAST_Break
      Src: /src/cpython/Parser/parser.c:3064,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3065,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3073,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3073,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3022
    functionDepth: 1
    functionLinenumber: 3022
    functionLinenumberEnd: 3080
    functionName: break_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyAST_Break
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:3086,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3086,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3087,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3095,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3101,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3103,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3109,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3109,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3115,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3115,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3116,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3122,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3124,1
    - Dst: _PyAST_Continue
      Src: /src/cpython/Parser/parser.c:3125,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3126,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3134,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3134,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3141
      start: 3083
    functionDepth: 1
    functionLinenumber: 3083
    functionLinenumberEnd: 3141
    functionName: continue_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyAST_Continue
    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:3147,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3147,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3148,1
    - Dst: _PyPegen_fill_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: D
      Src: /src/cpython/Parser/parser.c:3170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3170,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3174,1
    - Dst: _gather_14_rule
      Src: /src/cpython/Parser/parser.c:3176,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3179,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3179,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3180,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3186,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3188,1
    - Dst: _PyAST_Global
      Src: /src/cpython/Parser/parser.c:3189,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:3189,1
    - Dst: _PyPegen_map_names_to_ids
      Src: /src/cpython/Parser/parser.c:3189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3190,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3198,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3198,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3144
    functionDepth: 1
    functionLinenumber: 3144
    functionLinenumberEnd: 3205
    functionName: global_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_14_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_Global
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_map_names_to_ids
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:3211,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3211,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3212,1
    - Dst: _PyPegen_fill_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: D
      Src: /src/cpython/Parser/parser.c:3234,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3234,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3238,1
    - Dst: _gather_14_rule
      Src: /src/cpython/Parser/parser.c:3240,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3243,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3243,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3244,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3250,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3252,1
    - Dst: _PyAST_Nonlocal
      Src: /src/cpython/Parser/parser.c:3253,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:3253,1
    - Dst: _PyPegen_map_names_to_ids
      Src: /src/cpython/Parser/parser.c:3253,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3254,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3262,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3262,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3269
      start: 3208
    functionDepth: 1
    functionLinenumber: 3208
    functionLinenumberEnd: 3269
    functionName: nonlocal_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_Nonlocal
    - _gather_14_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_map_names_to_ids
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:3275,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3275,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3276,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3284,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3290,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3292,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3298,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3298,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3302,1
    - Dst: del_targets_rule
      Src: /src/cpython/Parser/parser.c:3304,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:3306,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3309,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3309,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3310,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3316,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3318,1
    - Dst: _PyAST_Delete
      Src: /src/cpython/Parser/parser.c:3319,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3320,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3328,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3328,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3336,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3336,1
    - Dst: invalid_del_stmt_rule
      Src: /src/cpython/Parser/parser.c:3339,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3342,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3342,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3347,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3347,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3272
    functionDepth: 1
    functionLinenumber: 3272
    functionLinenumberEnd: 3354
    functionName: del_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - invalid_del_stmt_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Delete
    - del_targets_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:3360,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3360,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3361,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3369,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3375,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3377,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3383,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3383,1
    - Dst: yield_expr_rule
      Src: /src/cpython/Parser/parser.c:3386,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3389,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3389,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3390,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3396,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3398,1
    - Dst: _PyAST_Expr
      Src: /src/cpython/Parser/parser.c:3399,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3400,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3408,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3408,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3357
    functionDepth: 1
    functionLinenumber: 3357
    functionLinenumberEnd: 3415
    functionName: yield_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyAST_Expr
    - D
    - yield_expr_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty yield_stmt_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3421,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3421,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3422,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3430,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3436,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3438,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3444,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3444,1
    - Dst: invalid_assert_stmt_rule
      Src: /src/cpython/Parser/parser.c:3447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3450,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3463,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3463,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3468,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:3470,1
    - Dst: _tmp_16_rule
      Src: /src/cpython/Parser/parser.c:3472,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3475,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3475,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3476,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3482,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3484,1
    - Dst: _PyAST_Assert
      Src: /src/cpython/Parser/parser.c:3485,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3486,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3494,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3494,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3501
      start: 3418
    functionDepth: 1
    functionLinenumber: 3418
    functionLinenumberEnd: 3501
    functionName: assert_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - invalid_assert_stmt_rule
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Assert
    - D
    - _tmp_16_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty assert_stmt_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3507,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3507,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3508,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:3515,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3525,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3525,1
    - Dst: invalid_import_rule
      Src: /src/cpython/Parser/parser.c:3528,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3531,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3531,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3536,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3536,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3544,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3544,1
    - Dst: import_name_rule
      Src: /src/cpython/Parser/parser.c:3547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3550,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3550,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3555,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3563,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3563,1
    - Dst: import_from_rule
      Src: /src/cpython/Parser/parser.c:3566,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3569,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3574,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3574,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:3579,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3504
    functionDepth: 1
    functionLinenumber: 3504
    functionLinenumberEnd: 3582
    functionName: import_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - invalid_import_rule
    - PyThreadState_Get
    - import_name_rule
    - import_from_rule
    - _PyPegen_insert_memo
    - D
    - fprintf
    - _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:3588,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3588,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3589,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3597,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3603,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3611,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3611,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:3616,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3618,1
    - Dst: dotted_as_names_rule
      Src: /src/cpython/Parser/parser.c:3620,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3623,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3623,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3624,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3630,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3632,1
    - Dst: _PyAST_Import
      Src: /src/cpython/Parser/parser.c:3633,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3634,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3642,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3642,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3649
      start: 3585
    functionDepth: 1
    functionLinenumber: 3585
    functionLinenumberEnd: 3649
    functionName: import_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_Import
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - D
    - PyErr_Occurred
    - fprintf
    - dotted_as_names_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty import_name_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:3657,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3657,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3658,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3666,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3672,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3674,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3680,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3680,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:3688,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3690,1
    - Dst: _loop0_17_rule
      Src: /src/cpython/Parser/parser.c:3692,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:3694,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3696,1
    - Dst: import_from_targets_rule
      Src: /src/cpython/Parser/parser.c:3698,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3702,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3708,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3710,1
    - Dst: _PyPegen_checked_future_import
      Src: /src/cpython/Parser/parser.c:3711,1
    - Dst: _PyPegen_seq_count_dots
      Src: /src/cpython/Parser/parser.c:3711,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3712,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3720,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3720,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3722
      start: 3654
    functionDepth: 1
    functionLinenumber: 3654
    functionLinenumberEnd: 3722
    functionName: import_from_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_17_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - _PyPegen_seq_count_dots
    - dotted_name_rule
    - D
    - PyErr_Occurred
    - fprintf
    - import_from_targets_rule
    - _Pypegen_stack_overflow
    - _PyPegen_checked_future_import
    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:3782,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3782,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3783,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3791,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3797,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3805,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3805,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3809,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3812,1
    - Dst: import_from_as_names_rule
      Src: /src/cpython/Parser/parser.c:3814,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3816,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3818,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3821,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3831,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3839,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3839,1
    - Dst: import_from_as_names_rule
      Src: /src/cpython/Parser/parser.c:3842,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:3844,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3847,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3847,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3852,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3860,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3860,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:3863,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3866,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3866,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:3867,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3873,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3875,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:3876,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:3876,1
    - Dst: _PyPegen_alias_for_star
      Src: /src/cpython/Parser/parser.c:3876,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3885,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3885,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3893,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3893,1
    - Dst: invalid_import_from_targets_rule
      Src: /src/cpython/Parser/parser.c:3896,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3899,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3904,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3904,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 94
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3911
      start: 3779
    functionDepth: 1
    functionLinenumber: 3779
    functionLinenumberEnd: 3911
    functionName: import_from_targets_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_alias_for_star
    - UNUSED
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_lookahead_with_int
    - invalid_import_from_targets_rule
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - import_from_as_names_rule
    - _Pypegen_stack_overflow
    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:3917,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3917,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3918,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3931,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3931,1
    - Dst: _gather_20_rule
      Src: /src/cpython/Parser/parser.c:3934,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3937,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:3939,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3947,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3954
      start: 3914
    functionDepth: 1
    functionLinenumber: 3914
    functionLinenumberEnd: 3954
    functionName: import_from_as_names_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _gather_20_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:3960,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:3960,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:3961,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:3969,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3975,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:3977,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3983,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3983,1
    - Dst: invalid_import_from_as_name_rule
      Src: /src/cpython/Parser/parser.c:3986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3989,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:3994,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:3994,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4002,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4002,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4006,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:4008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4011,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4011,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:4012,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4018,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4020,1
    - Dst: _PyAST_alias
      Src: /src/cpython/Parser/parser.c:4021,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4022,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4030,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4030,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4037
      start: 3957
    functionDepth: 1
    functionLinenumber: 3957
    functionLinenumberEnd: 4037
    functionName: import_from_as_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_21_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - invalid_import_from_as_name_rule
    - _PyAST_alias
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:4043,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4043,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4044,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4057,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4057,1
    - Dst: _gather_23_rule
      Src: /src/cpython/Parser/parser.c:4060,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4063,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4063,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4065,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4073,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4073,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4080
      start: 4040
    functionDepth: 1
    functionLinenumber: 4040
    functionLinenumberEnd: 4080
    functionName: dotted_as_names_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _gather_23_rule
    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:4086,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4086,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4087,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:4095,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4101,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4103,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4109,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4109,1
    - Dst: invalid_dotted_as_name_rule
      Src: /src/cpython/Parser/parser.c:4112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4115,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4115,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4120,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4120,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4128,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4128,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:4132,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:4134,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4137,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4137,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:4138,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4144,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4146,1
    - Dst: _PyAST_alias
      Src: /src/cpython/Parser/parser.c:4147,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4148,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4156,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4156,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4163
      start: 4083
    functionDepth: 1
    functionLinenumber: 4083
    functionLinenumberEnd: 4163
    functionName: dotted_as_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_21_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - dotted_name_rule
    - _PyAST_alias
    - D
    - invalid_dotted_as_name_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:4171,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4171,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4172,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:4175,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:4182,1
    - Dst: dotted_name_raw
      Src: /src/cpython/Parser/parser.c:4188,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4201
      start: 4168
    functionDepth: 1
    functionLinenumber: 4168
    functionLinenumberEnd: 4201
    functionName: dotted_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - dotted_name_raw
    - PyThreadState_Get
    - _PyPegen_update_memo
    - _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:4205,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4205,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4206,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4219,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4219,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:4224,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4226,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4228,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4231,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4231,1
    - Dst: _PyPegen_join_names_with_dot
      Src: /src/cpython/Parser/parser.c:4232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4241,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4249,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4249,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4255,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4260,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4260,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4267
      start: 4202
    functionDepth: 2
    functionLinenumber: 4202
    functionLinenumberEnd: 4267
    functionName: dotted_name_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_join_names_with_dot
    - PyThreadState_Get
    - _PyPegen_expect_token
    - dotted_name_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:4273,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4273,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4274,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:4281,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4291,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4297,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4299,1
    - Dst: statements_rule
      Src: /src/cpython/Parser/parser.c:4301,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4303,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4306,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4306,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4308,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4316,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4316,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4324,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4324,1
    - Dst: simple_stmts_rule
      Src: /src/cpython/Parser/parser.c:4327,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4330,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4330,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4335,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4335,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4343,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4343,1
    - Dst: invalid_block_rule
      Src: /src/cpython/Parser/parser.c:4346,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4349,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4349,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4354,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4354,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:4359,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4362
      start: 4270
    functionDepth: 2
    functionLinenumber: 4270
    functionLinenumberEnd: 4362
    functionName: block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - simple_stmts_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyPegen_insert_memo
    - D
    - PyErr_Occurred
    - statements_rule
    - fprintf
    - _Pypegen_stack_overflow
    - invalid_block_rule
    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:4368,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4368,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4382,1
    - Dst: _loop1_24_rule
      Src: /src/cpython/Parser/parser.c:4385,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4388,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4388,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4390,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4398,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4398,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4365
    functionDepth: 1
    functionLinenumber: 4365
    functionLinenumberEnd: 4405
    functionName: decorators_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _loop1_24_rule
    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:4411,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4411,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4412,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4425,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4425,1
    - Dst: decorators_rule
      Src: /src/cpython/Parser/parser.c:4429,1
    - Dst: class_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4431,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4434,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4434,1
    - Dst: _PyPegen_class_def_decorators
      Src: /src/cpython/Parser/parser.c:4435,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4436,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4444,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4444,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4452,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4452,1
    - Dst: class_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4458,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4458,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4463,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4463,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4470
      start: 4408
    functionDepth: 2
    functionLinenumber: 4408
    functionLinenumberEnd: 4470
    functionName: class_def_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - class_def_raw_rule
    - D
    - decorators_rule
    - PyErr_Occurred
    - fprintf
    - _PyPegen_class_def_decorators
    - _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:4478,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4478,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4479,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:4487,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4493,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4495,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4501,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4501,1
    - Dst: invalid_class_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4504,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4507,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4507,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4512,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4512,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4520,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4520,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4528,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4530,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:4532,1
    - Dst: _tmp_25_rule
      Src: /src/cpython/Parser/parser.c:4534,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4536,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:4538,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4541,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4541,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:4542,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4548,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4550,1
    - Dst: _PyAST_ClassDef
      Src: /src/cpython/Parser/parser.c:4551,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4552,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4560,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4560,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4567
      start: 4475
    functionDepth: 3
    functionLinenumber: 4475
    functionLinenumberEnd: 4567
    functionName: class_def_raw_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - invalid_class_def_raw_rule
    - D
    - PyErr_Occurred
    - block_rule
    - fprintf
    - type_params_rule
    - _tmp_25_rule
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - _PyAST_ClassDef
    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:4573,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4573,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4574,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4587,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4587,1
    - Dst: decorators_rule
      Src: /src/cpython/Parser/parser.c:4591,1
    - Dst: function_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4593,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4596,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4596,1
    - Dst: _PyPegen_function_def_decorators
      Src: /src/cpython/Parser/parser.c:4597,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4598,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4606,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4614,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4614,1
    - Dst: function_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4617,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4620,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4620,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4625,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4625,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4632
      start: 4570
    functionDepth: 2
    functionLinenumber: 4570
    functionLinenumberEnd: 4632
    functionName: function_def_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_function_def_decorators
    - PyThreadState_Get
    - D
    - decorators_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - function_def_raw_rule
    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:4641,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4641,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4642,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:4650,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4656,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4658,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4664,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4664,1
    - Dst: invalid_def_raw_rule
      Src: /src/cpython/Parser/parser.c:4667,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4670,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4670,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4675,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4675,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4683,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4683,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4695,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:4697,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:4699,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4701,1
    - Dst: params_rule
      Src: /src/cpython/Parser/parser.c:4703,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4705,1
    - Dst: _tmp_26_rule
      Src: /src/cpython/Parser/parser.c:4707,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:4709,1
    - Dst: func_type_comment_rule
      Src: /src/cpython/Parser/parser.c:4711,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:4713,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:4717,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4723,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:4725,1
    - Dst: _PyAST_FunctionDef
      Src: /src/cpython/Parser/parser.c:4726,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:4726,1
    - Dst: _PyPegen_empty_arguments
      Src: /src/cpython/Parser/parser.c:4726,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:4726,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4735,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4735,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4737
      start: 4638
    functionDepth: 3
    functionLinenumber: 4638
    functionLinenumberEnd: 4737
    functionName: function_def_raw_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_fill_token
    - func_type_comment_rule
    - PyErr_Occurred
    - block_rule
    - _Pypegen_stack_overflow
    - invalid_def_raw_rule
    - _PyAST_FunctionDef
    - type_params_rule
    - NEW_TYPE_COMMENT
    - params_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _tmp_26_rule
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_empty_arguments
    - UNUSED
    - D
    - CHECK
    - fprintf
    - _PyPegen_name_token
    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:4811,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4811,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4812,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4825,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4825,1
    - Dst: invalid_parameters_rule
      Src: /src/cpython/Parser/parser.c:4828,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4831,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4836,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4836,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4844,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4844,1
    - Dst: parameters_rule
      Src: /src/cpython/Parser/parser.c:4847,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4850,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4850,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4855,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4855,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4862
      start: 4808
    functionDepth: 1
    functionLinenumber: 4808
    functionLinenumberEnd: 4862
    functionName: params_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - invalid_parameters_rule
    - parameters_rule
    - D
    - fprintf
    - _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:4873,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:4873,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:4874,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4887,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4887,1
    - Dst: slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:4893,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:4895,1
    - Dst: _loop0_28_rule
      Src: /src/cpython/Parser/parser.c:4897,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:4899,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4902,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4902,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:4903,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:4903,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4904,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4912,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4920,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4920,1
    - Dst: slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:4925,1
    - Dst: _loop0_28_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: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:4933,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: _loop1_29_rule
      Src: /src/cpython/Parser/parser.c:4955,1
    - Dst: _loop0_28_rule
      Src: /src/cpython/Parser/parser.c:4957,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:4959,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4962,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4962,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:4963,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4964,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4972,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4972,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4980,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4980,1
    - Dst: _loop1_30_rule
      Src: /src/cpython/Parser/parser.c:4984,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:4986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4989,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:4990,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:4991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:4999,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:4999,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5007,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5007,1
    - Dst: star_etc_rule
      Src: /src/cpython/Parser/parser.c:5010,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5013,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5013,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:5014,1
    - Dst: PyErr_Occurred
      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
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5030
      start: 4870
    functionDepth: 1
    functionLinenumber: 4870
    functionLinenumberEnd: 5030
    functionName: parameters_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - star_etc_rule
    - CHECK_VERSION
    - PyThreadState_Get
    - slash_with_default_rule
    - _loop1_30_rule
    - _loop1_29_rule
    - _loop0_28_rule
    - _PyPegen_make_arguments
    - D
    - slash_no_default_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _loop0_27_rule
    linkageType: ''
    returnType: arguments_ty
    signature: arguments_ty parameters_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5036,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5036,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5037,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5050,1
    - Dst: _loop1_29_rule
      Src: /src/cpython/Parser/parser.c:5055,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5057,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5059,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5062,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5062,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5064,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5072,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5072,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5080,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5080,1
    - Dst: _loop1_29_rule
      Src: /src/cpython/Parser/parser.c:5084,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5086,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5088,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5091,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5091,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5093,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5101,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5101,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5108
      start: 5033
    functionDepth: 1
    functionLinenumber: 5033
    functionLinenumberEnd: 5108
    functionName: slash_no_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _loop1_29_rule
    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:5116,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5116,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5117,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5130,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5130,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:5136,1
    - Dst: _loop1_30_rule
      Src: /src/cpython/Parser/parser.c:5138,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5140,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5142,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5145,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5145,1
    - Dst: _PyPegen_slash_with_default
      Src: /src/cpython/Parser/parser.c:5146,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5147,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5155,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5155,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5163,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5163,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:5168,1
    - Dst: _loop1_30_rule
      Src: /src/cpython/Parser/parser.c:5170,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5172,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5174,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5177,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5177,1
    - Dst: _PyPegen_slash_with_default
      Src: /src/cpython/Parser/parser.c:5178,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5179,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5187,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5194
      start: 5113
    functionDepth: 1
    functionLinenumber: 5113
    functionLinenumberEnd: 5194
    functionName: slash_with_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _loop1_30_rule
    - _PyPegen_expect_token
    - D
    - _PyPegen_slash_with_default
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _loop0_27_rule
    linkageType: ''
    returnType: SlashWithDefault
    signature: 'SlashWithDefault *

      slash_with_default_rule(Parser *p)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5205,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5205,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5206,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5219,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5219,1
    - Dst: invalid_star_etc_rule
      Src: /src/cpython/Parser/parser.c:5222,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5225,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5225,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5230,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5230,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5238,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5238,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5244,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:5246,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:5248,1
    - Dst: kwds_rule
      Src: /src/cpython/Parser/parser.c:5250,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5253,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:5254,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5255,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5263,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5263,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5271,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5271,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5277,1
    - Dst: param_no_default_star_annotation_rule
      Src: /src/cpython/Parser/parser.c:5279,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:5281,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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5304,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5310,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5312,1
    - Dst: _loop1_32_rule
      Src: /src/cpython/Parser/parser.c:5314,1
    - Dst: kwds_rule
      Src: /src/cpython/Parser/parser.c:5316,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5319,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5319,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:5320,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5321,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:5337,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5337,1
    - Dst: kwds_rule
      Src: /src/cpython/Parser/parser.c:5340,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5343,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5343,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:5344,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5345,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5353,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5353,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 104
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5360
      start: 5202
    functionDepth: 1
    functionLinenumber: 5202
    functionLinenumberEnd: 5360
    functionName: star_etc_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - kwds_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - invalid_star_etc_rule
    - param_no_default_rule
    - param_no_default_star_annotation_rule
    - D
    - _PyPegen_star_etc
    - PyErr_Occurred
    - _loop1_32_rule
    - fprintf
    - _Pypegen_stack_overflow
    - _loop0_31_rule
    linkageType: ''
    returnType: StarEtc
    signature: 'StarEtc *

      star_etc_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5366,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5366,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5367,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5380,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5380,1
    - Dst: invalid_kwds_rule
      Src: /src/cpython/Parser/parser.c:5383,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5386,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5386,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5391,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5391,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5399,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5399,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5403,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:5405,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5408,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5408,1
    - Dst: PyErr_Occurred
      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
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5425
      start: 5363
    functionDepth: 1
    functionLinenumber: 5363
    functionLinenumberEnd: 5425
    functionName: kwds_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_kwds_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - param_no_default_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:5431,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5431,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5432,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5445,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5450,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5452,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5454,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5457,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5457,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/parser.c:5458,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5459,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5467,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5467,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5475,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5475,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5479,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5481,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5483,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5486,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5486,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/parser.c:5487,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5488,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5496,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5503
      start: 5428
    functionDepth: 1
    functionLinenumber: 5428
    functionLinenumberEnd: 5503
    functionName: param_no_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - param_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _PyPegen_add_type_comment_to_arg
    - _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:5511,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5511,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5512,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5525,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5525,1
    - Dst: param_star_annotation_rule
      Src: /src/cpython/Parser/parser.c:5530,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5532,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5534,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5537,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/parser.c:5538,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5539,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5555,1
    - Dst: param_star_annotation_rule
      Src: /src/cpython/Parser/parser.c:5559,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5561,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5563,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5566,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5566,1
    - Dst: _PyPegen_add_type_comment_to_arg
      Src: /src/cpython/Parser/parser.c:5567,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5568,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5576,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5576,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5583
      start: 5508
    functionDepth: 1
    functionLinenumber: 5508
    functionLinenumberEnd: 5583
    functionName: param_no_default_star_annotation_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - param_star_annotation_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _PyPegen_add_type_comment_to_arg
    - _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:5589,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5589,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5603,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5603,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5609,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:5611,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5613,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5615,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5618,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:5619,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5620,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5628,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5628,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5636,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5636,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5641,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:5643,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5645,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5647,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5650,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5650,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:5651,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5652,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5660,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5660,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5667
      start: 5586
    functionDepth: 1
    functionLinenumber: 5586
    functionLinenumberEnd: 5667
    functionName: param_with_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - param_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - _PyPegen_name_default_pair
    - default_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:5675,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5675,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5676,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5689,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5695,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:5697,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5699,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5701,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5704,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5704,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:5705,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5706,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5714,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5714,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5722,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5722,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:5727,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:5729,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5731,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:5733,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5736,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5736,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:5737,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5738,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5746,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5746,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5753
      start: 5672
    functionDepth: 1
    functionLinenumber: 5672
    functionLinenumberEnd: 5753
    functionName: param_maybe_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - param_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - _PyPegen_name_default_pair
    - default_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:5759,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5759,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5760,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:5768,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5774,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5776,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5782,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5782,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:5786,1
    - Dst: annotation_rule
      Src: /src/cpython/Parser/parser.c:5788,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5791,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5791,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:5792,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5798,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5800,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Parser/parser.c:5801,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5802,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5810,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5810,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5817
      start: 5756
    functionDepth: 1
    functionLinenumber: 5756
    functionLinenumberEnd: 5817
    functionName: param_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - annotation_rule
    - D
    - _PyAST_arg
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty param_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:5823,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5823,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5824,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:5832,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5838,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5846,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5846,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:5850,1
    - Dst: star_annotation_rule
      Src: /src/cpython/Parser/parser.c:5852,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5855,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5855,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:5856,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5862,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:5864,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Parser/parser.c:5865,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5866,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5874,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5874,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5881
      start: 5820
    functionDepth: 1
    functionLinenumber: 5820
    functionLinenumberEnd: 5881
    functionName: param_star_annotation_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - D
    - _PyAST_arg
    - PyErr_Occurred
    - star_annotation_rule
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:5887,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5887,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5888,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5901,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5901,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5905,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:5907,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5910,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5910,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5920,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5920,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5927
      start: 5884
    functionDepth: 1
    functionLinenumber: 5884
    functionLinenumberEnd: 5927
    functionName: annotation_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 4
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:5933,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5933,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5934,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5947,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5947,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5951,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:5953,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5956,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:5958,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5966,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5966,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5973
      start: 5930
    functionDepth: 1
    functionLinenumber: 5930
    functionLinenumberEnd: 5973
    functionName: star_annotation_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - star_expression_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:5979,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:5979,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:5980,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:5993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:5993,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:5997,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:5999,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6002,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6002,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6004,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6012,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6012,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6020,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6020,1
    - Dst: invalid_default_rule
      Src: /src/cpython/Parser/parser.c:6023,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6026,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6026,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6031,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6031,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6038
      start: 5976
    functionDepth: 1
    functionLinenumber: 5976
    functionLinenumberEnd: 6038
    functionName: default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 6
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_default_rule
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:6047,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6047,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6048,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6056,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6062,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6064,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6070,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6070,1
    - Dst: invalid_if_stmt_rule
      Src: /src/cpython/Parser/parser.c:6073,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6076,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6076,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6081,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6081,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6089,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6089,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6096,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6098,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6100,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6102,1
    - Dst: elif_stmt_rule
      Src: /src/cpython/Parser/parser.c:6104,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6107,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6108,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6114,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6116,1
    - Dst: _PyAST_If
      Src: /src/cpython/Parser/parser.c:6117,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:6117,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:6117,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6118,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6126,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6126,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6134,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6134,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6141,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6143,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6145,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6147,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6152,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6152,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6153,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6159,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6161,1
    - Dst: _PyAST_If
      Src: /src/cpython/Parser/parser.c:6162,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6163,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6171,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6171,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6178
      start: 6044
    functionDepth: 3
    functionLinenumber: 6044
    functionLinenumberEnd: 6178
    functionName: if_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_If
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - elif_stmt_rule
    - _PyPegen_singleton_seq
    - else_block_rule
    - named_expression_rule
    - D
    - CHECK
    - invalid_if_stmt_rule
    - PyErr_Occurred
    - block_rule
    - fprintf
    - _Pypegen_stack_overflow
    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:6187,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6187,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6188,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6196,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6202,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6204,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6210,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6210,1
    - Dst: invalid_elif_stmt_rule
      Src: /src/cpython/Parser/parser.c:6213,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6216,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6216,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6221,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6229,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6236,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6238,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6240,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6242,1
    - Dst: elif_stmt_rule
      Src: /src/cpython/Parser/parser.c:6244,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6247,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6247,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6248,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6254,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6256,1
    - Dst: _PyAST_If
      Src: /src/cpython/Parser/parser.c:6257,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:6257,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:6257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6258,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6266,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6266,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6274,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6274,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6281,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6283,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6285,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6287,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6289,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6292,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6292,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6293,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6299,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6301,1
    - Dst: _PyAST_If
      Src: /src/cpython/Parser/parser.c:6302,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6303,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6311,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6311,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6318
      start: 6184
    functionDepth: 3
    functionLinenumber: 6184
    functionLinenumberEnd: 6318
    functionName: elif_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_If
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - elif_stmt_rule
    - _PyPegen_singleton_seq
    - else_block_rule
    - named_expression_rule
    - D
    - invalid_elif_stmt_rule
    - CHECK
    - PyErr_Occurred
    - block_rule
    - fprintf
    - _Pypegen_stack_overflow
    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:6324,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6324,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6325,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6338,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6338,1
    - Dst: invalid_else_stmt_rule
      Src: /src/cpython/Parser/parser.c:6341,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6344,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6344,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6349,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6349,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6357,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6357,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6362,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:6364,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6366,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6369,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6369,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6371,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6379,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6321
    functionDepth: 3
    functionLinenumber: 6321
    functionLinenumberEnd: 6386
    functionName: else_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - invalid_else_stmt_rule
    - _PyPegen_expect_forced_token
    - block_rule
    - fprintf
    - PyErr_Occurred
    - _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:6392,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6392,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6393,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6401,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6407,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6409,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6415,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6415,1
    - Dst: invalid_while_stmt_rule
      Src: /src/cpython/Parser/parser.c:6418,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6421,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6421,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6426,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6426,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6434,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6434,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6441,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:6443,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6445,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6447,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6449,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6452,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6452,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6453,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6459,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6461,1
    - Dst: _PyAST_While
      Src: /src/cpython/Parser/parser.c:6462,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6463,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6471,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6471,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6478
      start: 6389
    functionDepth: 4
    functionLinenumber: 6389
    functionLinenumberEnd: 6478
    functionName: while_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_While
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - else_block_rule
    - named_expression_rule
    - D
    - invalid_while_stmt_rule
    - PyErr_Occurred
    - block_rule
    - fprintf
    - _Pypegen_stack_overflow
    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:6488,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6488,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6489,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6497,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6503,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6505,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6511,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6511,1
    - Dst: invalid_for_stmt_rule
      Src: /src/cpython/Parser/parser.c:6514,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6517,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6517,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:6530,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6530,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6541,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:6543,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6545,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:6549,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6551,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6553,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6555,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6557,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6560,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6560,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6561,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6567,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6569,1
    - Dst: _PyAST_For
      Src: /src/cpython/Parser/parser.c:6570,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6570,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6571,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6579,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6591,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6591,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6603,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6605,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:6607,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6609,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:6613,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6615,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6617,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6619,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:6621,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6624,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6624,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6625,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6631,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6633,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:6634,1
    - Dst: _PyAST_AsyncFor
      Src: /src/cpython/Parser/parser.c:6634,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6634,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6643,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6655,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6655,1
    - Dst: invalid_for_target_rule
      Src: /src/cpython/Parser/parser.c:6658,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6661,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6661,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6666,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6666,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6673
      start: 6485
    functionDepth: 4
    functionLinenumber: 6485
    functionLinenumberEnd: 6673
    functionName: for_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - star_targets_rule
    - invalid_for_stmt_rule
    - _PyPegen_fill_token
    - PyErr_Occurred
    - block_rule
    - _Pypegen_stack_overflow
    - NEW_TYPE_COMMENT
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - invalid_for_target_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyAST_AsyncFor
    - _PyAST_For
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - else_block_rule
    - D
    - fprintf
    - star_expressions_rule
    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:6685,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6685,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6686,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:6694,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6700,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6702,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6708,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6708,1
    - Dst: invalid_with_stmt_indent_rule
      Src: /src/cpython/Parser/parser.c:6711,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6714,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6714,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6719,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6719,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6727,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6727,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6733,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6738,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6740,1
    - Dst: _gather_34_rule
      Src: /src/cpython/Parser/parser.c:6742,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6744,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6746,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6748,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6750,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6755,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6756,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6762,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6764,1
    - Dst: _PyAST_With
      Src: /src/cpython/Parser/parser.c:6765,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6765,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6766,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6774,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6774,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6782,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6782,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6789,1
    - Dst: _gather_34_rule
      Src: /src/cpython/Parser/parser.c:6791,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6793,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6795,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6797,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6800,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6800,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6801,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6807,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6809,1
    - Dst: _PyAST_With
      Src: /src/cpython/Parser/parser.c:6810,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6810,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6811,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6819,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6819,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6827,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6827,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6834,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6838,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6840,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6842,1
    - Dst: _gather_34_rule
      Src: /src/cpython/Parser/parser.c:6844,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6846,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6848,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6850,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6852,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6855,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6855,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6856,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6862,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6864,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:6865,1
    - Dst: _PyAST_AsyncWith
      Src: /src/cpython/Parser/parser.c:6865,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6866,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6874,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6874,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6882,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6882,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6890,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6892,1
    - Dst: _gather_34_rule
      Src: /src/cpython/Parser/parser.c:6894,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6896,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6898,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:6900,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6903,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6903,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:6904,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6910,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:6912,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:6913,1
    - Dst: _PyAST_AsyncWith
      Src: /src/cpython/Parser/parser.c:6913,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/cpython/Parser/parser.c:6913,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6914,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6922,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6922,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6930,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6930,1
    - Dst: invalid_with_stmt_rule
      Src: /src/cpython/Parser/parser.c:6933,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6936,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6936,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6941,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6941,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 152
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6948
      start: 6682
    functionDepth: 3
    functionLinenumber: 6682
    functionLinenumberEnd: 6948
    functionName: with_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - NEW_TYPE_COMMENT
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - UNUSED
    - invalid_with_stmt_indent_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - invalid_with_stmt_rule
    - D
    - _PyAST_With
    - PyErr_Occurred
    - block_rule
    - fprintf
    - _PyAST_AsyncWith
    - _Pypegen_stack_overflow
    - _gather_34_rule
    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:6957,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:6957,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:6958,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6971,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6971,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:6976,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:6978,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:6980,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:6982,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6985,1
    - Dst: _PyAST_withitem
      Src: /src/cpython/Parser/parser.c:6986,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:6987,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:6995,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:6995,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7003,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7003,1
    - Dst: invalid_with_item_rule
      Src: /src/cpython/Parser/parser.c:7006,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7009,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7009,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7014,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7014,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7022,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7022,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7025,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7028,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7028,1
    - Dst: _PyAST_withitem
      Src: /src/cpython/Parser/parser.c:7029,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7030,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7038,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7038,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7045
      start: 6954
    functionDepth: 1
    functionLinenumber: 6954
    functionLinenumberEnd: 7045
    functionName: with_item_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyAST_withitem
    - D
    - invalid_with_item_rule
    - star_target_rule
    - PyErr_Occurred
    - fprintf
    - _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:7055,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7055,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7056,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7064,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7070,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7072,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7078,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7078,1
    - Dst: invalid_try_stmt_rule
      Src: /src/cpython/Parser/parser.c:7081,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7084,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7084,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7089,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7089,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7097,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7097,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7103,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:7105,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7107,1
    - Dst: finally_block_rule
      Src: /src/cpython/Parser/parser.c:7109,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7112,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7112,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7113,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7119,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7121,1
    - Dst: _PyAST_Try
      Src: /src/cpython/Parser/parser.c:7122,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7123,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7131,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7131,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7139,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7139,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7147,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:7149,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7151,1
    - Dst: _loop1_36_rule
      Src: /src/cpython/Parser/parser.c:7153,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:7155,1
    - Dst: finally_block_rule
      Src: /src/cpython/Parser/parser.c:7157,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7160,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7160,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7161,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7167,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7169,1
    - Dst: _PyAST_Try
      Src: /src/cpython/Parser/parser.c:7170,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7171,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7179,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7179,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7187,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7195,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:7197,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7199,1
    - Dst: _loop1_37_rule
      Src: /src/cpython/Parser/parser.c:7201,1
    - Dst: else_block_rule
      Src: /src/cpython/Parser/parser.c:7203,1
    - Dst: finally_block_rule
      Src: /src/cpython/Parser/parser.c:7205,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7208,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7208,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7209,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7215,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7217,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:7218,1
    - Dst: _PyAST_TryStar
      Src: /src/cpython/Parser/parser.c:7218,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7219,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7227,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7227,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 110
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7234
      start: 7052
    functionDepth: 4
    functionLinenumber: 7052
    functionLinenumberEnd: 7234
    functionName: try_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _loop1_36_rule
    - _PyPegen_fill_token
    - invalid_try_stmt_rule
    - _PyAST_Try
    - PyErr_Occurred
    - block_rule
    - _Pypegen_stack_overflow
    - _PyPegen_expect_forced_token
    - _PyAST_TryStar
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _Py_ReachedRecursionLimitWithMargin
    - finally_block_rule
    - UNUSED
    - else_block_rule
    - _loop1_37_rule
    - D
    - fprintf
    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:7246,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7246,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7247,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7255,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7261,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7263,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7269,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7269,1
    - Dst: invalid_except_stmt_indent_rule
      Src: /src/cpython/Parser/parser.c:7272,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7275,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7275,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7280,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7280,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7288,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7288,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7294,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7296,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7298,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7300,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7303,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7303,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7304,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7310,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7312,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7313,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7314,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7322,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7330,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7330,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7338,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7340,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7342,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:7344,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7346,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7348,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7351,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7352,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7358,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7360,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7361,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7370,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7370,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7378,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7378,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7384,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:7386,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7388,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7390,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7393,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7393,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7394,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7400,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7402,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:7403,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7403,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7404,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7412,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7412,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7420,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7425,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7427,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7432,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7433,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7439,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7441,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7442,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7443,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7451,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7451,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7459,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7459,1
    - Dst: invalid_except_stmt_rule
      Src: /src/cpython/Parser/parser.c:7462,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:7470,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7470,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 150
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7477
      start: 7243
    functionDepth: 3
    functionLinenumber: 7243
    functionLinenumberEnd: 7477
    functionName: except_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_except_stmt_rule
    - invalid_except_stmt_indent_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_ExceptHandler
    - expressions_rule
    - D
    - PyErr_Occurred
    - block_rule
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:7488,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7488,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7489,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7497,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7503,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7505,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7511,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7511,1
    - Dst: invalid_except_star_stmt_indent_rule
      Src: /src/cpython/Parser/parser.c:7514,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7517,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7517,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7522,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7522,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7530,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7530,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7537,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7539,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7541,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7543,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7545,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7548,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7548,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7549,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7555,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7557,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7558,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7559,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7567,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7567,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7575,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7575,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7584,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7586,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:7588,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7590,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:7592,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7594,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7596,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7599,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7599,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7600,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7606,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7608,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7609,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7610,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7618,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7626,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7626,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7633,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7635,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:7637,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7639,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7641,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7644,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7644,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7645,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7651,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7653,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:7654,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Parser/parser.c:7654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7655,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: invalid_except_star_stmt_rule
      Src: /src/cpython/Parser/parser.c:7674,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7677,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7677,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7682,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7682,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 125
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7689
      start: 7485
    functionDepth: 3
    functionLinenumber: 7485
    functionLinenumberEnd: 7689
    functionName: except_star_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - invalid_except_star_stmt_rule
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_ExceptHandler
    - expressions_rule
    - invalid_except_star_stmt_indent_rule
    - D
    - PyErr_Occurred
    - block_rule
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:7695,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7695,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7696,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7709,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7709,1
    - Dst: invalid_finally_stmt_rule
      Src: /src/cpython/Parser/parser.c:7712,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7715,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7720,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7720,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7728,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7728,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7733,1
    - Dst: _PyPegen_expect_forced_token
      Src: /src/cpython/Parser/parser.c:7735,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7737,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7740,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7740,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7742,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7750,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7750,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7757
      start: 7692
    functionDepth: 3
    functionLinenumber: 7692
    functionLinenumberEnd: 7757
    functionName: finally_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_finally_stmt_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - _PyPegen_expect_forced_token
    - block_rule
    - fprintf
    - PyErr_Occurred
    - _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:7765,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7765,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7766,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7774,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7780,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7782,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7788,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7788,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:7797,1
    - Dst: subject_expr_rule
      Src: /src/cpython/Parser/parser.c:7799,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7801,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7803,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7805,1
    - Dst: _loop1_38_rule
      Src: /src/cpython/Parser/parser.c:7807,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7809,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7812,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7812,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7813,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7819,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7821,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:7822,1
    - Dst: _PyAST_Match
      Src: /src/cpython/Parser/parser.c:7822,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7831,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7839,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7839,1
    - Dst: invalid_match_stmt_rule
      Src: /src/cpython/Parser/parser.c:7842,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7845,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7845,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7850,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7850,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7857
      start: 7762
    functionDepth: 1
    functionLinenumber: 7762
    functionLinenumberEnd: 7857
    functionName: match_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - _PyAST_Match
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - invalid_match_stmt_rule
    - D
    - _loop1_38_rule
    - subject_expr_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:7863,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7863,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7864,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:7872,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7878,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7880,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7886,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7886,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:7891,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7893,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:7895,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7898,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7898,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:7899,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7905,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:7907,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:7908,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:7908,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:7908,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:7909,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: named_expression_rule
      Src: /src/cpython/Parser/parser.c:7928,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7931,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7931,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7936,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7936,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7943
      start: 7860
    functionDepth: 1
    functionLinenumber: 7860
    functionLinenumberEnd: 7943
    functionName: subject_expr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Tuple
    - star_named_expression_rule
    - named_expression_rule
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - star_named_expressions_rule
    - _Pypegen_stack_overflow
    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:7949,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:7949,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:7950,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7963,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7963,1
    - Dst: invalid_case_block_rule
      Src: /src/cpython/Parser/parser.c:7966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7969,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7974,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7974,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:7982,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:7982,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:7989,1
    - Dst: patterns_rule
      Src: /src/cpython/Parser/parser.c:7991,1
    - Dst: guard_rule
      Src: /src/cpython/Parser/parser.c:7993,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:7995,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:7997,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8000,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8000,1
    - Dst: _PyAST_match_case
      Src: /src/cpython/Parser/parser.c:8001,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8002,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8010,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8010,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8017
      start: 7946
    functionDepth: 3
    functionLinenumber: 7946
    functionLinenumberEnd: 8017
    functionName: case_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_case_block_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - _PyAST_match_case
    - guard_rule
    - D
    - PyErr_Occurred
    - block_rule
    - fprintf
    - _Pypegen_stack_overflow
    - patterns_rule
    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:8023,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8023,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8037,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8037,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8041,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:8043,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8046,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8046,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8048,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8056,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8056,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8063
      start: 8020
    functionDepth: 1
    functionLinenumber: 8020
    functionLinenumberEnd: 8063
    functionName: guard_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - named_expression_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:8069,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8069,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8070,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8078,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8084,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8086,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8092,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8092,1
    - Dst: open_sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:8095,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8098,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8099,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8105,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8107,1
    - Dst: _PyAST_MatchSequence
      Src: /src/cpython/Parser/parser.c:8108,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8109,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: 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: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8143
      start: 8066
    functionDepth: 1
    functionLinenumber: 8066
    functionLinenumberEnd: 8143
    functionName: patterns_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - pattern_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyAST_MatchSequence
    - open_sequence_pattern_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty patterns_rule(Parser *p)
  - BBCount: 7
    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: D
      Src: /src/cpython/Parser/parser.c:8163,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8163,1
    - Dst: as_pattern_rule
      Src: /src/cpython/Parser/parser.c:8166,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8169,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8174,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8174,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8182,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8182,1
    - Dst: or_pattern_rule
      Src: /src/cpython/Parser/parser.c:8185,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8188,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8188,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8193,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8200
      start: 8146
    functionDepth: 1
    functionLinenumber: 8146
    functionLinenumberEnd: 8200
    functionName: pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - as_pattern_rule
    - PyThreadState_Get
    - D
    - or_pattern_rule
    - fprintf
    - _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:8206,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8206,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8207,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8215,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8221,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8223,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8229,1
    - Dst: or_pattern_rule
      Src: /src/cpython/Parser/parser.c:8234,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8236,1
    - Dst: pattern_capture_target_rule
      Src: /src/cpython/Parser/parser.c:8238,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8241,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8242,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8248,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8250,1
    - Dst: _PyAST_MatchAs
      Src: /src/cpython/Parser/parser.c:8251,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8260,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8260,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8268,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8268,1
    - Dst: invalid_as_pattern_rule
      Src: /src/cpython/Parser/parser.c:8271,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8274,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8274,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8279,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8279,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8286
      start: 8203
    functionDepth: 1
    functionLinenumber: 8203
    functionLinenumberEnd: 8286
    functionName: as_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - pattern_capture_target_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyAST_MatchAs
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - invalid_as_pattern_rule
    - D
    - PyErr_Occurred
    - or_pattern_rule
    - fprintf
    - _Pypegen_stack_overflow
    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:8292,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8292,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8293,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8301,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8307,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8309,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8315,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8315,1
    - Dst: _gather_40_rule
      Src: /src/cpython/Parser/parser.c:8318,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8321,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8321,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8322,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8328,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8330,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/parser.c:8331,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/parser.c:8331,1
    - Dst: _PyAST_MatchOr
      Src: /src/cpython/Parser/parser.c:8331,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8332,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8340,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8340,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8347
      start: 8289
    functionDepth: 1
    functionLinenumber: 8289
    functionLinenumberEnd: 8347
    functionName: or_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - asdl_seq_GET
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _gather_40_rule
    - D
    - PyErr_Occurred
    - fprintf
    - asdl_seq_LEN
    - _Pypegen_stack_overflow
    - _PyAST_MatchOr
    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:8361,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8361,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8362,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:8369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8379,1
    - Dst: literal_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: capture_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: wildcard_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: value_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: group_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: D
      Src: /src/cpython/Parser/parser.c:8474,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8474,1
    - Dst: sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:8477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8480,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8480,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8485,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8485,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8493,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8493,1
    - Dst: mapping_pattern_rule
      Src: /src/cpython/Parser/parser.c:8496,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8499,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8499,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8504,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8512,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8512,1
    - Dst: class_pattern_rule
      Src: /src/cpython/Parser/parser.c:8515,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8518,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8518,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8523,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:8528,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 130
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8531
      start: 8358
    functionDepth: 1
    functionLinenumber: 8358
    functionLinenumberEnd: 8531
    functionName: closed_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - mapping_pattern_rule
    - group_pattern_rule
    - capture_pattern_rule
    - PyThreadState_Get
    - wildcard_pattern_rule
    - value_pattern_rule
    - sequence_pattern_rule
    - class_pattern_rule
    - D
    - _PyPegen_insert_memo
    - fprintf
    - _Pypegen_stack_overflow
    - literal_pattern_rule
    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:8543,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8543,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8544,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8552,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8558,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8560,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8566,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8566,1
    - Dst: signed_number_rule
      Src: /src/cpython/Parser/parser.c:8569,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:8571,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8574,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8574,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8575,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8581,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8583,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Parser/parser.c:8584,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8585,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8593,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8593,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8601,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8601,1
    - Dst: complex_number_rule
      Src: /src/cpython/Parser/parser.c:8604,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8607,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8607,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8608,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8614,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8616,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Parser/parser.c:8617,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8618,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8626,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8626,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8634,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8634,1
    - Dst: strings_rule
      Src: /src/cpython/Parser/parser.c:8637,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8640,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8640,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8641,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8647,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8649,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Parser/parser.c:8650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8651,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8659,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8659,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8667,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8667,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8670,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8673,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8673,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8674,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8680,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8682,1
    - Dst: _PyAST_MatchSingleton
      Src: /src/cpython/Parser/parser.c:8683,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8692,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8692,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8700,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8700,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8703,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8706,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8706,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8707,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8713,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8715,1
    - Dst: _PyAST_MatchSingleton
      Src: /src/cpython/Parser/parser.c:8716,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8717,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8725,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8725,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8733,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8733,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8736,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8739,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8739,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8740,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8746,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8748,1
    - Dst: _PyAST_MatchSingleton
      Src: /src/cpython/Parser/parser.c:8749,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8750,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8758,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8758,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 170
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8765
      start: 8540
    functionDepth: 1
    functionLinenumber: 8540
    functionLinenumberEnd: 8765
    functionName: literal_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - signed_number_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - complex_number_rule
    - strings_rule
    - _PyPegen_expect_token
    - D
    - _PyAST_MatchValue
    - _PyAST_MatchSingleton
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:8777,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8777,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8778,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8786,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8792,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8794,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8800,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8800,1
    - Dst: signed_number_rule
      Src: /src/cpython/Parser/parser.c:8803,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:8805,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8808,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8808,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8813,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8821,1
    - Dst: complex_number_rule
      Src: /src/cpython/Parser/parser.c:8824,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8827,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8832,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8832,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8840,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8840,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:8843,1
    - Dst: strings_rule
      Src: /src/cpython/Parser/parser.c:8845,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8848,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8853,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8853,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8861,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8861,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8864,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8867,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8867,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8868,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8874,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8876,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:8877,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8878,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8886,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8886,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8894,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8894,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8897,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8900,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8900,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8901,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8907,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8909,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:8910,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8911,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8919,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8919,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8927,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8933,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8933,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:8934,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8940,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8942,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:8943,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:8944,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8952,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8952,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 137
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8959
      start: 8774
    functionDepth: 1
    functionLinenumber: 8774
    functionLinenumberEnd: 8959
    functionName: literal_expr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - signed_number_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - complex_number_rule
    - strings_rule
    - _PyPegen_expect_token
    - _PyAST_Constant
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:8967,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:8967,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:8968,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:8976,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8982,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:8984,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:8990,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:8990,1
    - Dst: signed_real_number_rule
      Src: /src/cpython/Parser/parser.c:8995,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:8997,1
    - Dst: imaginary_number_rule
      Src: /src/cpython/Parser/parser.c:8999,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9002,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9002,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9003,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9009,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9011,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:9012,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9013,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9021,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9021,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9029,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9029,1
    - Dst: signed_real_number_rule
      Src: /src/cpython/Parser/parser.c:9034,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9036,1
    - Dst: imaginary_number_rule
      Src: /src/cpython/Parser/parser.c:9038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9041,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9042,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9048,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9050,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:9051,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9060,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9067
      start: 8964
    functionDepth: 1
    functionLinenumber: 8964
    functionLinenumberEnd: 9067
    functionName: complex_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_BinOp
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - imaginary_number_rule
    - D
    - signed_real_number_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty complex_number_rule(Parser *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9073,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9073,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9074,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9082,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9088,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9090,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9096,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9096,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9099,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9102,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9102,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9107,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9115,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9115,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9119,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9121,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9124,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9126,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9134,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9134,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9142,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9142,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9146,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9148,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9151,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9151,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9152,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9158,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9160,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:9161,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9170,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9177
      start: 9070
    functionDepth: 1
    functionLinenumber: 9070
    functionLinenumberEnd: 9177
    functionName: signed_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - _PyAST_UnaryOp
    - fprintf
    - _PyPegen_number_token
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty signed_number_rule(Parser *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9183,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9183,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9184,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9192,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9198,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9200,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9206,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9206,1
    - Dst: real_number_rule
      Src: /src/cpython/Parser/parser.c:9209,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9212,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9212,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9217,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9217,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9225,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9225,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9229,1
    - Dst: real_number_rule
      Src: /src/cpython/Parser/parser.c:9231,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9234,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9234,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9236,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9244,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9244,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9252,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9252,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9256,1
    - Dst: real_number_rule
      Src: /src/cpython/Parser/parser.c:9258,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9261,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9261,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9262,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9268,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9270,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:9271,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9272,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9280,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9280,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9287
      start: 9180
    functionDepth: 1
    functionLinenumber: 9180
    functionLinenumberEnd: 9287
    functionName: signed_real_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - real_number_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _PyAST_UnaryOp
    - _Pypegen_stack_overflow
    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:9293,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9293,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9307,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9307,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9310,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9313,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9313,1
    - Dst: _PyPegen_ensure_real
      Src: /src/cpython/Parser/parser.c:9314,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9315,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9323,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9330
      start: 9290
    functionDepth: 1
    functionLinenumber: 9290
    functionLinenumberEnd: 9330
    functionName: real_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_ensure_real
    - D
    - PyErr_Occurred
    - fprintf
    - _PyPegen_number_token
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty real_number_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9336,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9336,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9337,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9350,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9350,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9353,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9356,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9356,1
    - Dst: _PyPegen_ensure_imaginary
      Src: /src/cpython/Parser/parser.c:9357,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9358,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9366,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9366,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9374,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9374,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9378,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:9380,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9383,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9383,1
    - Dst: _PyPegen_ensure_imaginary
      Src: /src/cpython/Parser/parser.c:9384,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9385,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9393,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9393,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9400
      start: 9333
    functionDepth: 1
    functionLinenumber: 9333
    functionLinenumberEnd: 9400
    functionName: imaginary_number_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_ensure_imaginary
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _PyPegen_number_token
    - _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:9406,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9406,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9407,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9415,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9421,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9423,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9429,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9429,1
    - Dst: pattern_capture_target_rule
      Src: /src/cpython/Parser/parser.c:9432,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9435,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9435,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9436,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9442,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9444,1
    - Dst: _PyAST_MatchAs
      Src: /src/cpython/Parser/parser.c:9445,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9446,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9454,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9461
      start: 9403
    functionDepth: 1
    functionLinenumber: 9403
    functionLinenumberEnd: 9461
    functionName: capture_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - pattern_capture_target_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyAST_MatchAs
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:9467,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9467,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9468,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9481,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9481,1
    - Dst: _PyPegen_lookahead_with_string
      Src: /src/cpython/Parser/parser.c:9484,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:9486,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:9488,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9491,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9491,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:9492,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9493,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9501,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9501,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9508
      start: 9464
    functionDepth: 1
    functionLinenumber: 9464
    functionLinenumberEnd: 9508
    functionName: pattern_capture_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    - _PyPegen_set_expr_context
    - D
    - _PyPegen_lookahead_with_string
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:9514,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9514,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9515,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9523,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9529,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9531,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9537,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:9540,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9543,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9543,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9544,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9550,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9552,1
    - Dst: _PyAST_MatchAs
      Src: /src/cpython/Parser/parser.c:9553,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9554,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9562,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9562,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9569
      start: 9511
    functionDepth: 1
    functionLinenumber: 9511
    functionLinenumberEnd: 9569
    functionName: wildcard_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyAST_MatchAs
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_soft_keyword
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:9575,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9575,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9576,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9584,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9590,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9592,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9598,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9598,1
    - Dst: attr_rule
      Src: /src/cpython/Parser/parser.c:9601,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:9603,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9606,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9606,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9607,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9613,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9615,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Parser/parser.c:9616,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9617,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9625,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9625,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9632
      start: 9572
    functionDepth: 1
    functionLinenumber: 9572
    functionLinenumberEnd: 9632
    functionName: value_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - _PyPegen_get_last_nonnwhitespace_token
    - attr_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - D
    - _PyAST_MatchValue
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:9640,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9640,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9641,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:9644,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:9651,1
    - Dst: attr_raw
      Src: /src/cpython/Parser/parser.c:9657,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9670
      start: 9637
    functionDepth: 1
    functionLinenumber: 9637
    functionLinenumberEnd: 9670
    functionName: attr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - attr_raw
    - PyThreadState_Get
    - _PyPegen_update_memo
    - _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:9674,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9674,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9675,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9683,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9689,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9691,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9697,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9697,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:9702,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9704,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:9706,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9709,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9709,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9710,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9716,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9718,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:9719,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9720,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9728,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9728,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9735
      start: 9671
    functionDepth: 1
    functionLinenumber: 9671
    functionLinenumberEnd: 9735
    functionName: attr_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Attribute
    - name_or_attr_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty attr_raw(Parser *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:9742,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9742,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9743,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9756,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9756,1
    - Dst: attr_rule
      Src: /src/cpython/Parser/parser.c:9759,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9762,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9762,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9767,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9767,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9775,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9775,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:9778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9781,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9786,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9786,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9793
      start: 9739
    functionDepth: 2
    functionLinenumber: 9739
    functionLinenumberEnd: 9793
    functionName: name_or_attr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - attr_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:9799,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9799,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9800,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9813,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9813,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9818,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:9820,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9822,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9825,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9825,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9835,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9835,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9842
      start: 9796
    functionDepth: 2
    functionLinenumber: 9796
    functionLinenumberEnd: 9842
    functionName: group_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - pattern_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:9848,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9848,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9849,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:9857,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9863,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9865,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9871,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9871,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9876,1
    - Dst: maybe_sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:9878,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9880,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9883,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9883,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9884,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9890,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9892,1
    - Dst: _PyAST_MatchSequence
      Src: /src/cpython/Parser/parser.c:9893,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9894,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9902,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9902,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9910,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9910,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9915,1
    - Dst: open_sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:9917,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9919,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9922,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9922,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:9923,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9929,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:9931,1
    - Dst: _PyAST_MatchSequence
      Src: /src/cpython/Parser/parser.c:9932,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9933,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9941,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9941,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9948
      start: 9845
    functionDepth: 1
    functionLinenumber: 9845
    functionLinenumberEnd: 9948
    functionName: sequence_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_MatchSequence
    - open_sequence_pattern_rule
    - maybe_sequence_pattern_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:9954,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:9954,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:9955,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9968,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9968,1
    - Dst: maybe_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:9973,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:9975,1
    - Dst: maybe_sequence_pattern_rule
      Src: /src/cpython/Parser/parser.c:9977,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9980,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9980,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:9981,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:9982,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:9990,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:9990,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9997
      start: 9951
    functionDepth: 1
    functionLinenumber: 9951
    functionLinenumberEnd: 9997
    functionName: open_sequence_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - maybe_star_pattern_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - maybe_sequence_pattern_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:10003,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10003,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10004,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10017,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10017,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10019,1
    - Dst: _gather_45_rule
      Src: /src/cpython/Parser/parser.c:10022,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10027,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10027,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10029,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10037,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10037,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10044
      start: 10000
    functionDepth: 1
    functionLinenumber: 10000
    functionLinenumberEnd: 10044
    functionName: maybe_sequence_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - _gather_45_rule
    - fprintf
    - _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:10050,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10050,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10051,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10064,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10064,1
    - Dst: star_pattern_rule
      Src: /src/cpython/Parser/parser.c:10067,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10070,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10070,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10075,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10075,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10083,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10083,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:10086,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10089,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10089,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10094,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10094,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10101
      start: 10047
    functionDepth: 2
    functionLinenumber: 10047
    functionLinenumberEnd: 10101
    functionName: maybe_star_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - star_pattern_rule
    - pattern_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _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:10107,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10107,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10108,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:10115,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:10120,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10126,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10128,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10134,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10134,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10138,1
    - Dst: pattern_capture_target_rule
      Src: /src/cpython/Parser/parser.c:10140,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10143,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10143,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10144,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10150,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10152,1
    - Dst: _PyAST_MatchStar
      Src: /src/cpython/Parser/parser.c:10153,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10154,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10162,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10170,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10174,1
    - Dst: wildcard_pattern_rule
      Src: /src/cpython/Parser/parser.c:10176,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10179,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10179,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10180,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10186,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10188,1
    - Dst: _PyAST_MatchStar
      Src: /src/cpython/Parser/parser.c:10189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10190,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10198,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10198,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:10203,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10206
      start: 10104
    functionDepth: 2
    functionLinenumber: 10104
    functionLinenumberEnd: 10206
    functionName: star_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - pattern_capture_target_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_MatchStar
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - wildcard_pattern_rule
    - _PyPegen_insert_memo
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: pattern_ty
    signature: pattern_ty star_pattern_rule(Parser *p)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10217,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10217,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10218,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:10226,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10232,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10234,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10240,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10244,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10246,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10249,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10249,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10250,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10256,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10258,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Parser/parser.c:10259,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10260,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10268,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10268,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10276,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10276,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10280,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10283,1
    - Dst: double_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:10285,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10287,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10289,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10292,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10292,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10293,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10299,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10301,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Parser/parser.c:10302,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10303,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10311,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10311,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10319,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10319,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10324,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10328,1
    - Dst: items_pattern_rule
      Src: /src/cpython/Parser/parser.c:10330,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10332,1
    - Dst: double_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:10334,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10336,1
    - Dst: _PyPegen_expect_token
      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_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10342,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10348,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10350,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Parser/parser.c:10351,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10351,1
    - Dst: _PyPegen_get_pattern_keys
      Src: /src/cpython/Parser/parser.c:10351,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10351,1
    - Dst: _PyPegen_get_patterns
      Src: /src/cpython/Parser/parser.c:10351,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10352,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10360,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10368,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10368,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10372,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10375,1
    - Dst: items_pattern_rule
      Src: /src/cpython/Parser/parser.c:10377,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10379,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10381,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10384,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10384,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10385,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10391,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10393,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Parser/parser.c:10394,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10394,1
    - Dst: _PyPegen_get_pattern_keys
      Src: /src/cpython/Parser/parser.c:10394,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10394,1
    - Dst: _PyPegen_get_patterns
      Src: /src/cpython/Parser/parser.c:10394,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10395,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10403,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10403,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10411,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10411,1
    - Dst: invalid_mapping_pattern_rule
      Src: /src/cpython/Parser/parser.c:10414,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10417,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10417,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10422,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10422,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 138
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10429
      start: 10214
    functionDepth: 1
    functionLinenumber: 10214
    functionLinenumberEnd: 10429
    functionName: mapping_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - items_pattern_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - invalid_mapping_pattern_rule
    - _PyAST_MatchMapping
    - D
    - CHECK
    - double_star_pattern_rule
    - _PyPegen_get_pattern_keys
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_get_patterns
    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:10435,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10435,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10436,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10449,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10449,1
    - Dst: _gather_47_rule
      Src: /src/cpython/Parser/parser.c:10452,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10460,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10467
      start: 10432
    functionDepth: 1
    functionLinenumber: 10432
    functionLinenumberEnd: 10467
    functionName: items_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - D
    - _gather_47_rule
    - fprintf
    - _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:10473,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10473,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10474,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10487,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10487,1
    - Dst: _tmp_48_rule
      Src: /src/cpython/Parser/parser.c:10492,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10494,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:10496,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10499,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10499,1
    - Dst: _PyPegen_key_pattern_pair
      Src: /src/cpython/Parser/parser.c:10500,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10509,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10516
      start: 10470
    functionDepth: 2
    functionLinenumber: 10470
    functionLinenumberEnd: 10516
    functionName: key_value_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - pattern_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - _tmp_48_rule
    - PyErr_Occurred
    - fprintf
    - _PyPegen_key_pattern_pair
    - _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:10522,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10522,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10523,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10536,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10536,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10540,1
    - Dst: pattern_capture_target_rule
      Src: /src/cpython/Parser/parser.c:10542,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10545,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10555,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10562
      start: 10519
    functionDepth: 2
    functionLinenumber: 10519
    functionLinenumberEnd: 10562
    functionName: double_star_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - pattern_capture_target_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:10573,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10573,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10574,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:10582,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10588,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10596,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10596,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:10601,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10603,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10608,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10608,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10609,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10615,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10617,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Parser/parser.c:10618,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10619,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:10635,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10635,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10639,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:10643,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10645,1
    - Dst: positional_patterns_rule
      Src: /src/cpython/Parser/parser.c:10647,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10649,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10651,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10654,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10654,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10655,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10661,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10663,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Parser/parser.c:10664,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10665,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10673,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10673,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10681,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10681,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10685,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:10689,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10691,1
    - Dst: keyword_patterns_rule
      Src: /src/cpython/Parser/parser.c:10693,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10695,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10697,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10700,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10700,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10701,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10707,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10709,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Parser/parser.c:10710,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10710,1
    - Dst: _PyPegen_map_names_to_ids
      Src: /src/cpython/Parser/parser.c:10710,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10710,1
    - Dst: _PyPegen_get_pattern_keys
      Src: /src/cpython/Parser/parser.c:10710,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10710,1
    - Dst: _PyPegen_get_patterns
      Src: /src/cpython/Parser/parser.c:10710,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10711,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10719,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10719,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10727,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10727,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10732,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:10737,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10739,1
    - Dst: positional_patterns_rule
      Src: /src/cpython/Parser/parser.c:10741,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10743,1
    - Dst: keyword_patterns_rule
      Src: /src/cpython/Parser/parser.c:10745,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10747,1
    - Dst: _PyPegen_expect_token
      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_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10753,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10759,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10761,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Parser/parser.c:10762,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10762,1
    - Dst: _PyPegen_map_names_to_ids
      Src: /src/cpython/Parser/parser.c:10762,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10762,1
    - Dst: _PyPegen_get_pattern_keys
      Src: /src/cpython/Parser/parser.c:10762,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10762,1
    - Dst: _PyPegen_get_patterns
      Src: /src/cpython/Parser/parser.c:10762,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10763,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10771,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10771,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10779,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10779,1
    - Dst: invalid_class_pattern_rule
      Src: /src/cpython/Parser/parser.c:10782,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10785,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10785,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10790,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10790,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 138
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10797
      start: 10570
    functionDepth: 3
    functionLinenumber: 10570
    functionLinenumberEnd: 10797
    functionName: class_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _PyPegen_fill_token
    - positional_patterns_rule
    - PyErr_Occurred
    - _Pypegen_stack_overflow
    - invalid_class_pattern_rule
    - name_or_attr_rule
    - _PyPegen_map_names_to_ids
    - _PyPegen_get_patterns
    - _PyPegen_get_last_nonnwhitespace_token
    - keyword_patterns_rule
    - _PyAST_MatchClass
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - D
    - CHECK
    - _PyPegen_get_pattern_keys
    - fprintf
    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:10803,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10803,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10804,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10817,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10817,1
    - Dst: _gather_50_rule
      Src: /src/cpython/Parser/parser.c:10820,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10823,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10823,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10825,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10833,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10833,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10840
      start: 10800
    functionDepth: 1
    functionLinenumber: 10800
    functionLinenumberEnd: 10840
    functionName: positional_patterns_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _gather_50_rule
    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:10846,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10846,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10847,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10860,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10860,1
    - Dst: _gather_52_rule
      Src: /src/cpython/Parser/parser.c:10863,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10866,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10866,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10871,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10871,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10878
      start: 10843
    functionDepth: 1
    functionLinenumber: 10843
    functionLinenumberEnd: 10878
    functionName: keyword_patterns_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _gather_52_rule
    - D
    - fprintf
    - _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:10884,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10884,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10885,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10898,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10898,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:10903,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10905,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:10907,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10910,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10910,1
    - Dst: _PyPegen_key_pattern_pair
      Src: /src/cpython/Parser/parser.c:10911,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10920,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10920,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10927
      start: 10881
    functionDepth: 2
    functionLinenumber: 10881
    functionLinenumberEnd: 10927
    functionName: keyword_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - pattern_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _PyPegen_key_pattern_pair
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: KeyPatternPair
    signature: 'KeyPatternPair *

      keyword_pattern_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:10933,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:10933,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:10934,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:10942,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10948,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10950,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10956,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:10963,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:10965,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:10967,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:10969,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:10971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10974,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10974,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:10975,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10981,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:10983,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:10984,1
    - Dst: _PyAST_TypeAlias
      Src: /src/cpython/Parser/parser.c:10984,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:10984,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:10984,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:10985,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:10993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:10993,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11000
      start: 10930
    functionDepth: 1
    functionLinenumber: 10930
    functionLinenumberEnd: 11000
    functionName: type_alias_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - _PyAST_TypeAlias
    - _PyPegen_set_expr_context
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - type_params_rule
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:11006,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11006,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11020,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11020,1
    - Dst: invalid_type_params_rule
      Src: /src/cpython/Parser/parser.c:11023,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11026,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11026,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11031,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11031,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11039,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11039,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11044,1
    - Dst: type_param_seq_rule
      Src: /src/cpython/Parser/parser.c:11046,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11048,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11051,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11051,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:11052,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11053,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11061,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11061,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11068
      start: 11003
    functionDepth: 1
    functionLinenumber: 11003
    functionLinenumberEnd: 11068
    functionName: type_params_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 4
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - type_param_seq_rule
    - CHECK_VERSION
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - invalid_type_params_rule
    - PyErr_Occurred
    - fprintf
    - _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:11074,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11074,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11075,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11088,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11088,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11090,1
    - Dst: _gather_54_rule
      Src: /src/cpython/Parser/parser.c:11093,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11095,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11098,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11100,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11108,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11108,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11115
      start: 11071
    functionDepth: 1
    functionLinenumber: 11071
    functionLinenumberEnd: 11115
    functionName: type_param_seq_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _gather_54_rule
    - _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:11125,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11125,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11126,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:11133,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11138,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11144,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11146,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11152,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11152,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:11157,1
    - Dst: type_param_bound_rule
      Src: /src/cpython/Parser/parser.c:11159,1
    - Dst: type_param_default_rule
      Src: /src/cpython/Parser/parser.c:11161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11164,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11164,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11165,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11171,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11173,1
    - Dst: _PyAST_TypeVar
      Src: /src/cpython/Parser/parser.c:11174,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11175,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11183,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11183,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11191,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11191,1
    - Dst: invalid_type_param_rule
      Src: /src/cpython/Parser/parser.c:11194,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11197,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11197,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11202,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11210,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11210,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11215,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:11217,1
    - Dst: type_param_starred_default_rule
      Src: /src/cpython/Parser/parser.c:11219,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11222,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11222,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11223,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11229,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11231,1
    - Dst: _PyAST_TypeVarTuple
      Src: /src/cpython/Parser/parser.c:11232,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11241,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11249,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11249,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11254,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:11256,1
    - Dst: type_param_default_rule
      Src: /src/cpython/Parser/parser.c:11258,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11261,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11261,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11262,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11268,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11270,1
    - Dst: _PyAST_ParamSpec
      Src: /src/cpython/Parser/parser.c:11271,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11272,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11280,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11280,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:11285,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 115
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11288
      start: 11122
    functionDepth: 1
    functionLinenumber: 11122
    functionLinenumberEnd: 11288
    functionName: type_param_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_is_memoized
    - _PyPegen_fill_token
    - _PyPegen_insert_memo
    - PyErr_Occurred
    - _Pypegen_stack_overflow
    - invalid_type_param_rule
    - type_param_default_rule
    - type_param_starred_default_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyAST_TypeVar
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - _PyAST_TypeVarTuple
    - D
    - fprintf
    - _PyAST_ParamSpec
    - _PyPegen_name_token
    - type_param_bound_rule
    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:11294,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11294,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11295,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11308,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11308,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11312,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11314,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11317,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11317,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11319,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11327,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11327,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11334
      start: 11291
    functionDepth: 1
    functionLinenumber: 11291
    functionLinenumberEnd: 11334
    functionName: type_param_bound_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:11340,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11340,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11341,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11354,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11354,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11358,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11360,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11363,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:11364,1
    - Dst: PyErr_Occurred
      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
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11380
      start: 11337
    functionDepth: 1
    functionLinenumber: 11337
    functionLinenumberEnd: 11380
    functionName: type_param_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - CHECK_VERSION
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:11386,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11386,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11387,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11400,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11400,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11404,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:11406,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11409,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11409,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:11410,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11411,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11419,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11419,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11426
      start: 11383
    functionDepth: 1
    functionLinenumber: 11383
    functionLinenumberEnd: 11426
    functionName: type_param_starred_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - CHECK_VERSION
    - PyThreadState_Get
    - _PyPegen_expect_token
    - star_expression_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:11432,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11432,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11433,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11441,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11447,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11449,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11455,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11457,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11461,1
    - Dst: _loop1_55_rule
      Src: /src/cpython/Parser/parser.c:11463,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11468,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11469,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11475,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11477,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:11478,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:11478,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:11478,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11479,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11487,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11487,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11495,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11495,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11499,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11504,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11505,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11511,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11513,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:11514,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:11514,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:11514,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11515,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: expression_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
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11549
      start: 11429
    functionDepth: 1
    functionLinenumber: 11429
    functionLinenumberEnd: 11549
    functionName: expressions_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 9
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _loop1_55_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Tuple
    - _PyPegen_singleton_seq
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty expressions_rule(Parser *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11561,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11561,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11562,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:11569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11579,1
    - Dst: invalid_if_expression_rule
      Src: /src/cpython/Parser/parser.c:11582,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11585,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11585,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11590,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11598,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11598,1
    - Dst: invalid_expression_rule
      Src: /src/cpython/Parser/parser.c:11601,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11604,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11604,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11609,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11609,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11617,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11617,1
    - Dst: invalid_legacy_expression_rule
      Src: /src/cpython/Parser/parser.c:11620,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11623,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11623,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11628,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11628,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11636,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11636,1
    - Dst: if_expression_rule
      Src: /src/cpython/Parser/parser.c:11639,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11642,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11642,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11647,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11647,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11655,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11655,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:11658,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11661,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11661,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11666,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11666,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11674,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11674,1
    - Dst: lambdef_rule
      Src: /src/cpython/Parser/parser.c:11677,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11680,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11680,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11685,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11685,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:11690,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 105
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11693
      start: 11558
    functionDepth: 1
    functionLinenumber: 11558
    functionLinenumberEnd: 11693
    functionName: expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 21
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - lambdef_rule
    - invalid_expression_rule
    - invalid_legacy_expression_rule
    - PyThreadState_Get
    - invalid_if_expression_rule
    - _PyPegen_insert_memo
    - disjunction_rule
    - D
    - if_expression_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty expression_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11699,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11699,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11700,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11708,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11714,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11716,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11722,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11722,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:11729,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11731,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:11733,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11735,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11737,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11740,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11740,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11741,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11747,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11749,1
    - Dst: _PyAST_IfExp
      Src: /src/cpython/Parser/parser.c:11750,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11751,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11759,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11759,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11766
      start: 11696
    functionDepth: 2
    functionLinenumber: 11696
    functionLinenumberEnd: 11766
    functionName: if_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - disjunction_rule
    - _PyAST_IfExp
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty if_expression_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:11772,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11772,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11773,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11781,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11787,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11795,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11795,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11800,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11802,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:11804,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11807,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11807,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11808,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11814,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11816,1
    - Dst: _PyAST_YieldFrom
      Src: /src/cpython/Parser/parser.c:11817,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11818,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11826,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11826,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11834,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11834,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11838,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:11840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11843,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11843,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11844,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11850,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11852,1
    - Dst: _PyAST_Yield
      Src: /src/cpython/Parser/parser.c:11853,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11862,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11862,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11869
      start: 11769
    functionDepth: 2
    functionLinenumber: 11769
    functionLinenumberEnd: 11869
    functionName: yield_expr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - star_expressions_rule
    - D
    - PyErr_Occurred
    - _PyAST_Yield
    - fprintf
    - _Pypegen_stack_overflow
    - _PyAST_YieldFrom
    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:11878,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:11878,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:11879,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:11887,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11893,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11895,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11901,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11901,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11903,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:11907,1
    - Dst: _loop1_56_rule
      Src: /src/cpython/Parser/parser.c:11909,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11911,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11914,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11914,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11915,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11921,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11923,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:11924,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:11924,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:11924,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11925,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11933,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11933,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11941,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11941,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:11945,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:11947,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11950,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11950,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:11951,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11957,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:11959,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:11960,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:11960,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:11960,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:11961,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11969,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11977,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11977,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:11980,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11983,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11983,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:11988,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:11988,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11995
      start: 11875
    functionDepth: 1
    functionLinenumber: 11875
    functionLinenumberEnd: 11995
    functionName: star_expressions_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 5
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Tuple
    - star_expression_rule
    - D
    - _loop1_56_rule
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:12001,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12001,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12002,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:12009,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12014,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12020,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12022,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12028,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12028,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12032,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12034,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12037,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12037,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12038,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12044,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12046,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/parser.c:12047,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12048,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12056,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12056,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12064,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12064,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:12067,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12070,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12070,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12075,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12075,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:12080,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12083
      start: 11998
    functionDepth: 2
    functionLinenumber: 11998
    functionLinenumberEnd: 12083
    functionName: star_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_insert_memo
    - D
    - _PyAST_Starred
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    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:12089,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12089,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12090,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12103,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12103,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12105,1
    - Dst: _gather_58_rule
      Src: /src/cpython/Parser/parser.c:12108,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12110,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12113,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12115,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12123,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12123,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12130
      start: 12086
    functionDepth: 1
    functionLinenumber: 12086
    functionLinenumberEnd: 12130
    functionName: star_named_expressions_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - _gather_58_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      star_named_expressions_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12136,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12136,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12137,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12150,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12150,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12152,1
    - Dst: _gather_60_rule
      Src: /src/cpython/Parser/parser.c:12155,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12157,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12160,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12160,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12170,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12177
      start: 12133
    functionDepth: 1
    functionLinenumber: 12133
    functionLinenumberEnd: 12177
    functionName: star_named_expressions_sequence_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - _gather_60_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_expr_seq
    signature: 'asdl_expr_seq *

      star_named_expressions_sequence_rule(Parser *p)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12183,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12183,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12184,1
    - Dst: _PyPegen_fill_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: D
      Src: /src/cpython/Parser/parser.c:12206,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12206,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12210,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12212,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12215,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12215,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12216,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12222,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12224,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/parser.c:12225,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12226,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12234,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12234,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12242,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12242,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:12245,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12248,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12248,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12253,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12260
      start: 12180
    functionDepth: 1
    functionLinenumber: 12180
    functionLinenumberEnd: 12260
    functionName: star_named_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - named_expression_rule
    - D
    - _PyAST_Starred
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_named_expression_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12268,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12268,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12269,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12282,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12282,1
    - Dst: invalid_starred_expression_unpacking_sequence_rule
      Src: /src/cpython/Parser/parser.c:12285,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12288,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12288,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12293,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12301,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12301,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:12304,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12307,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12307,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12312,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12319
      start: 12265
    functionDepth: 2
    functionLinenumber: 12265
    functionLinenumberEnd: 12319
    functionName: star_named_expression_sequence_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_starred_expression_unpacking_sequence_rule
    - PyThreadState_Get
    - star_named_expression_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty star_named_expression_sequence_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12325,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12325,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12326,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12334,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12340,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12342,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12348,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12348,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:12354,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12356,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:12360,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12363,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12364,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12370,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12372,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:12373,1
    - Dst: _PyAST_NamedExpr
      Src: /src/cpython/Parser/parser.c:12373,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12373,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:12373,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12382,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12393
      start: 12322
    functionDepth: 2
    functionLinenumber: 12322
    functionLinenumberEnd: 12393
    functionName: assignment_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_NamedExpr
    - _PyPegen_set_expr_context
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:12399,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12399,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12400,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12413,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12413,1
    - Dst: assignment_expression_rule
      Src: /src/cpython/Parser/parser.c:12416,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12419,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12419,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12424,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12424,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12432,1
    - Dst: invalid_named_expression_rule
      Src: /src/cpython/Parser/parser.c:12435,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12438,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12438,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12443,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12443,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12451,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12451,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:12454,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:12456,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12459,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12459,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12464,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12464,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12471
      start: 12396
    functionDepth: 3
    functionLinenumber: 12396
    functionLinenumberEnd: 12471
    functionName: named_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 8
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - invalid_named_expression_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - assignment_expression_rule
    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:12477,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12477,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12478,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:12485,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12490,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12496,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12498,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12504,1
    - Dst: conjunction_rule
      Src: /src/cpython/Parser/parser.c:12508,1
    - Dst: _loop1_61_rule
      Src: /src/cpython/Parser/parser.c:12510,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12513,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12513,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12514,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12520,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12522,1
    - Dst: _PyAST_BoolOp
      Src: /src/cpython/Parser/parser.c:12523,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12523,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:12523,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12524,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:12540,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12540,1
    - Dst: conjunction_rule
      Src: /src/cpython/Parser/parser.c:12543,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12546,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12546,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12551,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:12556,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12559
      start: 12474
    functionDepth: 1
    functionLinenumber: 12474
    functionLinenumberEnd: 12559
    functionName: disjunction_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _loop1_61_rule
    - _PyPegen_seq_insert_in_front
    - _PyPegen_get_last_nonnwhitespace_token
    - conjunction_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyAST_BoolOp
    - _PyPegen_insert_memo
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _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:12565,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12565,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12566,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:12573,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12578,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12584,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12586,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12592,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12592,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:12596,1
    - Dst: _loop1_62_rule
      Src: /src/cpython/Parser/parser.c:12598,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12601,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12601,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12602,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12608,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12610,1
    - Dst: _PyAST_BoolOp
      Src: /src/cpython/Parser/parser.c:12611,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12611,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:12611,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12612,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12620,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12620,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12628,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12628,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:12631,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12634,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12634,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12639,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12639,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:12644,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12647
      start: 12562
    functionDepth: 1
    functionLinenumber: 12562
    functionLinenumberEnd: 12647
    functionName: conjunction_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _PyPegen_seq_insert_in_front
    - inversion_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyAST_BoolOp
    - _PyPegen_insert_memo
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _loop1_62_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:12653,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12653,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12654,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:12661,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12666,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12672,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12674,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12680,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12680,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:12684,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:12686,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12689,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12690,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12696,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12698,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:12699,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12700,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12708,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12708,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12716,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12716,1
    - Dst: comparison_rule
      Src: /src/cpython/Parser/parser.c:12719,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12722,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12722,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12727,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12727,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:12732,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12735
      start: 12650
    functionDepth: 1
    functionLinenumber: 12650
    functionLinenumberEnd: 12735
    functionName: inversion_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - comparison_rule
    - inversion_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_insert_memo
    - D
    - PyErr_Occurred
    - fprintf
    - _PyAST_UnaryOp
    - _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:12741,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12741,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12742,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:12750,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12756,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12758,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12764,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12764,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12768,1
    - Dst: _loop1_63_rule
      Src: /src/cpython/Parser/parser.c:12770,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12773,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12773,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:12774,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12780,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:12782,1
    - Dst: _PyAST_Compare
      Src: /src/cpython/Parser/parser.c:12783,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12783,1
    - Dst: _PyPegen_get_cmpops
      Src: /src/cpython/Parser/parser.c:12783,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:12783,1
    - Dst: _PyPegen_get_exprs
      Src: /src/cpython/Parser/parser.c:12783,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:12784,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12792,1
    - Dst: fprintf
      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
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12803,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12806,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12806,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12811,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12811,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12818
      start: 12738
    functionDepth: 1
    functionLinenumber: 12738
    functionLinenumberEnd: 12818
    functionName: comparison_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_get_exprs
    - _PyAST_Compare
    - _loop1_63_rule
    - D
    - CHECK
    - _PyPegen_get_cmpops
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty comparison_rule(Parser *p)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:12834,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:12834,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:12835,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12848,1
    - Dst: eq_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12851,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12854,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12859,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12859,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12867,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12867,1
    - Dst: noteq_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12870,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12873,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12878,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12878,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12886,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12886,1
    - Dst: lte_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12889,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12892,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12892,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12897,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12897,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12905,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12905,1
    - Dst: lt_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12908,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12911,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12911,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12916,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12916,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12924,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12924,1
    - Dst: gte_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12930,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12930,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12935,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12935,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12943,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12943,1
    - Dst: gt_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12946,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12949,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12949,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12954,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12954,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12962,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12962,1
    - Dst: notin_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12965,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12968,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12968,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12973,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12973,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12981,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12981,1
    - Dst: in_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:12984,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12987,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12987,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:12992,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:12992,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13000,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13000,1
    - Dst: isnot_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13003,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13006,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13006,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13011,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13011,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13019,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13019,1
    - Dst: is_bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13022,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13025,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13025,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13030,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13030,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 153
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13037
      start: 12831
    functionDepth: 1
    functionLinenumber: 12831
    functionLinenumberEnd: 13037
    functionName: compare_op_bitwise_or_pair_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - lte_bitwise_or_rule
    - notin_bitwise_or_rule
    - gte_bitwise_or_rule
    - PyThreadState_Get
    - gt_bitwise_or_rule
    - isnot_bitwise_or_rule
    - eq_bitwise_or_rule
    - lt_bitwise_or_rule
    - is_bitwise_or_rule
    - D
    - noteq_bitwise_or_rule
    - fprintf
    - in_bitwise_or_rule
    - _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:13043,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13043,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13044,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13057,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13057,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13061,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13066,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13066,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13067,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13068,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13076,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13076,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13083
      start: 13040
    functionDepth: 1
    functionLinenumber: 13040
    functionLinenumberEnd: 13083
    functionName: eq_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      eq_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13089,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13089,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13090,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13103,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13103,1
    - Dst: _tmp_64_rule
      Src: /src/cpython/Parser/parser.c:13107,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13109,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13112,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13112,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13114,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13122,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13129
      start: 13086
    functionDepth: 1
    functionLinenumber: 13086
    functionLinenumberEnd: 13129
    functionName: noteq_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _tmp_64_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      noteq_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13135,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13135,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13149,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13149,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13153,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13155,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13158,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13158,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13159,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13160,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13168,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13168,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13175
      start: 13132
    functionDepth: 1
    functionLinenumber: 13132
    functionLinenumberEnd: 13175
    functionName: lte_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      lte_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13181,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13181,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13182,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13195,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13195,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13199,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13201,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13204,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13204,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13205,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13206,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13214,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13214,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13221
      start: 13178
    functionDepth: 1
    functionLinenumber: 13178
    functionLinenumberEnd: 13221
    functionName: lt_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      lt_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13227,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13227,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13228,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13241,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13245,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13247,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13250,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13250,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13251,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13260,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13267
      start: 13224
    functionDepth: 1
    functionLinenumber: 13224
    functionLinenumberEnd: 13267
    functionName: gte_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      gte_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13273,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13273,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13274,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13287,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13287,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13291,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13296,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13296,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13297,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13298,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13306,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13306,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13313
      start: 13270
    functionDepth: 1
    functionLinenumber: 13270
    functionLinenumberEnd: 13313
    functionName: gt_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      gt_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13319,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13319,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13320,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13333,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13333,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13338,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13340,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13342,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13345,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13345,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13346,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13355,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13355,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13362
      start: 13316
    functionDepth: 1
    functionLinenumber: 13316
    functionLinenumberEnd: 13362
    functionName: notin_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      notin_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13368,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13368,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13382,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13386,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13388,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13391,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13391,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13392,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13393,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13401,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13408
      start: 13365
    functionDepth: 1
    functionLinenumber: 13365
    functionLinenumberEnd: 13408
    functionName: in_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      in_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13414,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13414,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13415,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13428,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13428,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13433,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13435,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13437,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13440,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13440,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13441,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13442,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13450,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13457
      start: 13411
    functionDepth: 1
    functionLinenumber: 13411
    functionLinenumberEnd: 13457
    functionName: isnot_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      isnot_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13463,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13463,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13464,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13477,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13477,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13481,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13483,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13486,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13486,1
    - Dst: _PyPegen_cmpop_expr_pair
      Src: /src/cpython/Parser/parser.c:13487,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13488,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13496,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13503
      start: 13460
    functionDepth: 1
    functionLinenumber: 13460
    functionLinenumberEnd: 13503
    functionName: is_bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_cmpop_expr_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: CmpopExprPair
    signature: 'CmpopExprPair *

      is_bitwise_or_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:13511,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13511,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13512,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13515,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13522,1
    - Dst: bitwise_or_raw
      Src: /src/cpython/Parser/parser.c:13528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13541
      start: 13508
    functionDepth: 1
    functionLinenumber: 13508
    functionLinenumberEnd: 13541
    functionName: bitwise_or_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 14
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - bitwise_or_raw
    - PyThreadState_Get
    - _PyPegen_update_memo
    - _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:13545,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13545,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13546,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13554,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13560,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13562,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13568,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13568,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:13573,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13575,1
    - Dst: bitwise_xor_rule
      Src: /src/cpython/Parser/parser.c:13577,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13580,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13580,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13581,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13587,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13589,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13590,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13591,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13599,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13599,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13607,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13607,1
    - Dst: bitwise_xor_rule
      Src: /src/cpython/Parser/parser.c:13610,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13618,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13625
      start: 13542
    functionDepth: 2
    functionLinenumber: 13542
    functionLinenumberEnd: 13625
    functionName: bitwise_or_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_BinOp
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - bitwise_xor_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    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:13633,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13633,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13634,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13637,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13644,1
    - Dst: bitwise_xor_raw
      Src: /src/cpython/Parser/parser.c:13650,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13663
      start: 13630
    functionDepth: 1
    functionLinenumber: 13630
    functionLinenumberEnd: 13663
    functionName: bitwise_xor_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - PyThreadState_Get
    - bitwise_xor_raw
    - _PyPegen_update_memo
    - _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:13667,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13667,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13668,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13676,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13682,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13690,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13690,1
    - Dst: bitwise_xor_rule
      Src: /src/cpython/Parser/parser.c:13695,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13697,1
    - Dst: bitwise_and_rule
      Src: /src/cpython/Parser/parser.c:13699,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13702,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13702,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13703,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13709,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13711,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13712,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13713,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13721,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13721,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13729,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13729,1
    - Dst: bitwise_and_rule
      Src: /src/cpython/Parser/parser.c:13732,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13735,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13735,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13740,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13740,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13747
      start: 13664
    functionDepth: 2
    functionLinenumber: 13664
    functionLinenumberEnd: 13747
    functionName: bitwise_xor_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_BinOp
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - bitwise_xor_rule
    - D
    - bitwise_and_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:13755,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13755,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13756,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13759,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13766,1
    - Dst: bitwise_and_raw
      Src: /src/cpython/Parser/parser.c:13772,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13785
      start: 13752
    functionDepth: 1
    functionLinenumber: 13752
    functionLinenumberEnd: 13785
    functionName: bitwise_and_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - PyThreadState_Get
    - bitwise_and_raw
    - _PyPegen_update_memo
    - _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:13789,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13789,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13790,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13798,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13804,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13806,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13812,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13812,1
    - Dst: bitwise_and_rule
      Src: /src/cpython/Parser/parser.c:13817,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13819,1
    - Dst: shift_expr_rule
      Src: /src/cpython/Parser/parser.c:13821,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13824,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13824,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13825,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13831,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13833,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13834,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13835,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13843,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13843,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13851,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13851,1
    - Dst: shift_expr_rule
      Src: /src/cpython/Parser/parser.c:13854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13857,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13862,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13862,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13869
      start: 13786
    functionDepth: 2
    functionLinenumber: 13786
    functionLinenumberEnd: 13869
    functionName: bitwise_and_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_BinOp
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - bitwise_and_rule
    - shift_expr_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:13877,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13877,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13878,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:13881,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:13888,1
    - Dst: shift_expr_raw
      Src: /src/cpython/Parser/parser.c:13894,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13907
      start: 13874
    functionDepth: 1
    functionLinenumber: 13874
    functionLinenumberEnd: 13907
    functionName: shift_expr_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - PyThreadState_Get
    - _PyPegen_update_memo
    - shift_expr_raw
    - _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:13911,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:13911,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:13912,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:13920,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13926,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13928,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13934,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13934,1
    - Dst: shift_expr_rule
      Src: /src/cpython/Parser/parser.c:13939,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13941,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:13943,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13946,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13946,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13947,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13953,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13955,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13956,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13957,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13965,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13965,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13973,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13973,1
    - Dst: shift_expr_rule
      Src: /src/cpython/Parser/parser.c:13978,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:13980,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:13982,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:13985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:13985,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:13986,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13992,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:13994,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:13995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:13996,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14004,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14012,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14012,1
    - Dst: invalid_arithmetic_rule
      Src: /src/cpython/Parser/parser.c:14015,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14018,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14018,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14023,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14023,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14031,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14031,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:14034,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14037,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14037,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14042,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14042,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 99
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14049
      start: 13908
    functionDepth: 2
    functionLinenumber: 13908
    functionLinenumberEnd: 14049
    functionName: shift_expr_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - sum_rule
    - UNUSED
    - _PyAST_BinOp
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - invalid_arithmetic_rule
    - shift_expr_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:14057,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14057,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14058,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:14061,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:14068,1
    - Dst: sum_raw
      Src: /src/cpython/Parser/parser.c:14074,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14087
      start: 14054
    functionDepth: 1
    functionLinenumber: 14054
    functionLinenumberEnd: 14087
    functionName: sum_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - sum_raw
    - PyThreadState_Get
    - _PyPegen_update_memo
    - _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:14091,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14091,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14092,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14100,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14106,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14108,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14114,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14114,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:14119,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14121,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14123,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14126,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14126,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14127,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14133,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14135,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14136,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14137,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14145,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14145,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14153,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14153,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:14158,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14160,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14165,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14165,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14166,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14172,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14174,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14175,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14176,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14184,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14192,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14192,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14195,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14198,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14198,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14203,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14203,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14210
      start: 14088
    functionDepth: 2
    functionLinenumber: 14088
    functionLinenumberEnd: 14210
    functionName: sum_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - sum_rule
    - UNUSED
    - _PyAST_BinOp
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - term_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty sum_raw(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14225,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14225,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14226,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:14229,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:14236,1
    - Dst: term_raw
      Src: /src/cpython/Parser/parser.c:14242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14255
      start: 14222
    functionDepth: 1
    functionLinenumber: 14222
    functionLinenumberEnd: 14255
    functionName: term_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - PyThreadState_Get
    - _PyPegen_update_memo
    - term_raw
    - _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:14259,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14259,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14260,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14268,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14274,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14276,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14282,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14282,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14287,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14289,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14294,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14294,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14295,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14301,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14303,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14304,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14305,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14313,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14313,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14321,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14321,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14326,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14328,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14330,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14333,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14333,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14334,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14340,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14342,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14343,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14344,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14352,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14352,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14360,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14365,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14367,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14372,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14372,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14373,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14379,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14381,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14382,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14383,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14391,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14391,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14399,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14399,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14404,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14406,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14408,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14411,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14411,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14412,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14418,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14420,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14421,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14422,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14430,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14430,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14438,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14438,1
    - Dst: term_rule
      Src: /src/cpython/Parser/parser.c:14443,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14445,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14450,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14451,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14457,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14459,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:14460,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14460,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14461,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14469,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14469,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14477,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14477,1
    - Dst: invalid_factor_rule
      Src: /src/cpython/Parser/parser.c:14480,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14483,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14483,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14488,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14488,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14496,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14499,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14502,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14502,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14507,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14507,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 174
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14514
      start: 14256
    functionDepth: 2
    functionLinenumber: 14256
    functionLinenumberEnd: 14514
    functionName: term_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - CHECK_VERSION
    - UNUSED
    - _PyAST_BinOp
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - factor_rule
    - invalid_factor_rule
    - D
    - term_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty term_raw(Parser *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14520,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14520,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14521,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:14528,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14533,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14539,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14541,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14547,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14551,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14553,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14556,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14556,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14557,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14563,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14565,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:14566,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14567,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14575,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14575,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14583,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14583,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14587,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14589,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14592,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14592,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14593,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14599,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14601,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:14602,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14603,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14611,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14611,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14619,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14619,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14623,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14625,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14628,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14628,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14629,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14635,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14637,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Parser/parser.c:14638,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14639,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14647,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14647,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14655,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14655,1
    - Dst: power_rule
      Src: /src/cpython/Parser/parser.c:14658,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14661,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14661,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14666,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14666,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:14671,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 114
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14674
      start: 14517
    functionDepth: 1
    functionLinenumber: 14517
    functionLinenumberEnd: 14674
    functionName: factor_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - factor_rule
    - _PyPegen_insert_memo
    - D
    - PyErr_Occurred
    - fprintf
    - power_rule
    - _PyAST_UnaryOp
    - _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:14680,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14680,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14681,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14689,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14695,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14697,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14703,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14703,1
    - Dst: await_primary_rule
      Src: /src/cpython/Parser/parser.c:14708,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14710,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:14712,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14715,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14716,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14722,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14724,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Parser/parser.c:14725,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14726,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14734,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14734,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14742,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14742,1
    - Dst: await_primary_rule
      Src: /src/cpython/Parser/parser.c:14745,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14748,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14748,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14753,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14753,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14760
      start: 14677
    functionDepth: 2
    functionLinenumber: 14677
    functionLinenumberEnd: 14760
    functionName: power_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - await_primary_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - _PyAST_BinOp
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - factor_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty power_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14766,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14766,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14767,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:14774,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14779,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14785,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14787,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14793,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14793,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14797,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14802,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14803,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14809,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14811,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:14812,1
    - Dst: _PyAST_Await
      Src: /src/cpython/Parser/parser.c:14812,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14821,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14829,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14829,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14832,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14835,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14835,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14840,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14840,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:14845,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14848
      start: 14763
    functionDepth: 1
    functionLinenumber: 14763
    functionLinenumberEnd: 14848
    functionName: await_primary_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - primary_rule
    - CHECK_VERSION
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_insert_memo
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyAST_Await
    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:14861,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14861,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14862,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:14865,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:14872,1
    - Dst: primary_raw
      Src: /src/cpython/Parser/parser.c:14878,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14891
      start: 14858
    functionDepth: 1
    functionLinenumber: 14858
    functionLinenumberEnd: 14891
    functionName: primary_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - PyThreadState_Get
    - _PyPegen_update_memo
    - _Pypegen_stack_overflow
    - primary_raw
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty primary_rule(Parser *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:14895,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:14895,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:14896,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:14904,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14910,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14912,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14918,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14918,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14923,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:14925,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:14927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14930,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14930,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14931,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14937,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14939,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:14940,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14941,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14949,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14949,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14957,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14957,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14961,1
    - Dst: genexp_rule
      Src: /src/cpython/Parser/parser.c:14963,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14966,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14966,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:14967,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14973,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:14975,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:14976,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:14976,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:14976,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:14977,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14985,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:14993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:14993,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:14999,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15001,1
    - Dst: arguments_rule
      Src: /src/cpython/Parser/parser.c:15003,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15005,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15008,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15008,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15009,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15015,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15017,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:15018,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15019,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15027,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15027,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15035,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15035,1
    - Dst: primary_rule
      Src: /src/cpython/Parser/parser.c:15041,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15043,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:15045,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15047,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15050,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15051,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15057,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15059,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:15060,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15061,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15069,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15069,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15077,1
    - Dst: atom_rule
      Src: /src/cpython/Parser/parser.c:15080,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15083,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15083,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15088,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15088,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 134
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15095
      start: 14892
    functionDepth: 2
    functionLinenumber: 14892
    functionLinenumberEnd: 15095
    functionName: primary_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyAST_Subscript
    - _PyPegen_fill_token
    - fprintf
    - PyErr_Occurred
    - _PyAST_Attribute
    - _Pypegen_stack_overflow
    - atom_rule
    - genexp_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyAST_Call
    - arguments_rule
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - _PyPegen_singleton_seq
    - slices_rule
    - D
    - CHECK
    - primary_rule
    - _PyPegen_name_token
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty primary_raw(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15101,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15101,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15102,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:15110,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15116,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15118,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15124,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15124,1
    - Dst: slice_rule
      Src: /src/cpython/Parser/parser.c:15127,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15129,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15132,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15132,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15134,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:15150,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15150,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15152,1
    - Dst: _gather_66_rule
      Src: /src/cpython/Parser/parser.c:15155,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15157,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15160,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15160,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15161,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15167,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15169,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:15170,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15171,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15179,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15179,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15186
      start: 15098
    functionDepth: 1
    functionLinenumber: 15098
    functionLinenumberEnd: 15186
    functionName: slices_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - _PyAST_Tuple
    - D
    - _gather_66_rule
    - PyErr_Occurred
    - fprintf
    - slice_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty slices_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15192,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15192,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15193,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:15201,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15207,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15209,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15215,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15215,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:15221,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15223,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:15225,1
    - Dst: _tmp_67_rule
      Src: /src/cpython/Parser/parser.c:15227,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15230,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15230,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15231,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15237,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15239,1
    - Dst: _PyAST_Slice
      Src: /src/cpython/Parser/parser.c:15240,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15241,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15249,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15249,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15257,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15257,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:15260,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15263,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15263,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15265,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15273,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15273,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15280
      start: 15189
    functionDepth: 4
    functionLinenumber: 15189
    functionLinenumberEnd: 15280
    functionName: slice_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _tmp_67_rule
    - named_expression_rule
    - D
    - _PyAST_Slice
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty slice_rule(Parser *p)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15296,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15296,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15297,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:15305,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15311,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15313,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15319,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15319,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:15322,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15325,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15325,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15330,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15330,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15338,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15338,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15341,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15344,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15344,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15345,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15351,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15353,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:15354,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15355,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15363,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15371,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15371,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15377,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15377,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15378,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15384,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15386,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:15387,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15388,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15396,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15396,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15404,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15404,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15407,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15410,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15410,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15411,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15417,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15419,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:15420,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15421,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15429,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15437,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15437,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:15440,1
    - Dst: strings_rule
      Src: /src/cpython/Parser/parser.c:15442,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15445,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15450,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15458,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15458,1
    - Dst: _PyPegen_number_token
      Src: /src/cpython/Parser/parser.c:15461,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15464,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15464,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15469,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15469,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15477,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15477,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15480,1
    - Dst: _tmp_68_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: D
      Src: /src/cpython/Parser/parser.c:15490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15490,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15498,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15498,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15501,1
    - Dst: _tmp_69_rule
      Src: /src/cpython/Parser/parser.c:15503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15506,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15506,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15511,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15511,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15519,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15519,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15522,1
    - Dst: _tmp_70_rule
      Src: /src/cpython/Parser/parser.c:15524,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15527,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15527,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15532,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15532,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15540,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15540,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15543,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15546,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15546,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15547,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15553,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15555,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/parser.c:15556,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15557,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15565,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15565,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 204
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15572
      start: 15293
    functionDepth: 1
    functionLinenumber: 15293
    functionLinenumberEnd: 15572
    functionName: atom_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead
    - _tmp_70_rule
    - _PyPegen_fill_token
    - strings_rule
    - _PyAST_Constant
    - PyErr_Occurred
    - _tmp_68_rule
    - _PyPegen_number_token
    - _Pypegen_stack_overflow
    - _PyPegen_lookahead_with_int
    - _PyPegen_get_last_nonnwhitespace_token
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_69_rule
    - UNUSED
    - D
    - fprintf
    - _PyPegen_name_token
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty atom_rule(Parser *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15578,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15578,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15579,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15592,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15592,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15597,1
    - Dst: _tmp_71_rule
      Src: /src/cpython/Parser/parser.c:15599,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15601,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15604,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15614,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15614,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15622,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15622,1
    - Dst: invalid_group_rule
      Src: /src/cpython/Parser/parser.c:15625,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15628,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15628,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15633,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15633,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15640
      start: 15575
    functionDepth: 1
    functionLinenumber: 15575
    functionLinenumberEnd: 15640
    functionName: group_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_71_rule
    - PyThreadState_Get
    - invalid_group_rule
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:15646,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15646,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15647,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:15655,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15661,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15663,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15669,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15669,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15675,1
    - Dst: lambda_params_rule
      Src: /src/cpython/Parser/parser.c:15677,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15679,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:15681,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15684,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15684,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:15685,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15691,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:15693,1
    - Dst: _PyAST_Lambda
      Src: /src/cpython/Parser/parser.c:15694,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:15694,1
    - Dst: _PyPegen_empty_arguments
      Src: /src/cpython/Parser/parser.c:15694,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15695,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15703,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15703,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15710
      start: 15643
    functionDepth: 2
    functionLinenumber: 15643
    functionLinenumberEnd: 15710
    functionName: lambdef_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_empty_arguments
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Lambda
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - lambda_params_rule
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty lambdef_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:15716,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15716,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15717,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15730,1
    - Dst: invalid_lambda_parameters_rule
      Src: /src/cpython/Parser/parser.c:15733,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15736,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15736,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15741,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15741,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15749,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15749,1
    - Dst: lambda_parameters_rule
      Src: /src/cpython/Parser/parser.c:15752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15755,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15760,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15760,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15767
      start: 15713
    functionDepth: 1
    functionLinenumber: 15713
    functionLinenumberEnd: 15767
    functionName: lambda_params_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_lambda_parameters_rule
    - lambda_parameters_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _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:15778,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15778,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15779,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15792,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15792,1
    - Dst: lambda_slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:15798,1
    - Dst: _loop0_72_rule
      Src: /src/cpython/Parser/parser.c:15800,1
    - Dst: _loop0_73_rule
      Src: /src/cpython/Parser/parser.c:15802,1
    - Dst: lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15804,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15807,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15807,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:15808,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:15808,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15809,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15817,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15825,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15825,1
    - Dst: lambda_slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:15830,1
    - Dst: _loop0_73_rule
      Src: /src/cpython/Parser/parser.c:15832,1
    - Dst: lambda_star_etc_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: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:15838,1
    - Dst: _PyPegen_make_arguments
      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: _loop1_74_rule
      Src: /src/cpython/Parser/parser.c:15860,1
    - Dst: _loop0_73_rule
      Src: /src/cpython/Parser/parser.c:15862,1
    - Dst: lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15864,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15867,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15867,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:15868,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15869,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15877,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15885,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15885,1
    - Dst: _loop1_75_rule
      Src: /src/cpython/Parser/parser.c:15889,1
    - Dst: lambda_star_etc_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_make_arguments
      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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15912,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15912,1
    - Dst: lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:15915,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15918,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15918,1
    - Dst: _PyPegen_make_arguments
      Src: /src/cpython/Parser/parser.c:15919,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15920,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15928,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15928,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15935
      start: 15775
    functionDepth: 1
    functionLinenumber: 15775
    functionLinenumberEnd: 15935
    functionName: lambda_parameters_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - lambda_star_etc_rule
    - _loop1_75_rule
    - CHECK_VERSION
    - lambda_slash_with_default_rule
    - _loop0_72_rule
    - _loop0_73_rule
    - PyThreadState_Get
    - _loop1_74_rule
    - _PyPegen_make_arguments
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - lambda_slash_no_default_rule
    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:15943,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:15943,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:15944,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15957,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15957,1
    - Dst: _loop1_74_rule
      Src: /src/cpython/Parser/parser.c:15962,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15964,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15969,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:15971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15979,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15979,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15987,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15987,1
    - Dst: _loop1_74_rule
      Src: /src/cpython/Parser/parser.c:15991,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:15993,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:15995,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:15998,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:15998,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16000,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16008,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16008,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16015
      start: 15940
    functionDepth: 1
    functionLinenumber: 15940
    functionLinenumberEnd: 16015
    functionName: lambda_slash_no_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _loop1_74_rule
    - _PyPegen_expect_token
    - _PyPegen_lookahead_with_int
    - D
    - PyErr_Occurred
    - fprintf
    - _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:16023,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16023,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16037,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16037,1
    - Dst: _loop0_72_rule
      Src: /src/cpython/Parser/parser.c:16043,1
    - Dst: _loop1_75_rule
      Src: /src/cpython/Parser/parser.c:16045,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16047,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16049,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16052,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16052,1
    - Dst: _PyPegen_slash_with_default
      Src: /src/cpython/Parser/parser.c:16053,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16054,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16062,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16062,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16070,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16070,1
    - Dst: _loop0_72_rule
      Src: /src/cpython/Parser/parser.c:16075,1
    - Dst: _loop1_75_rule
      Src: /src/cpython/Parser/parser.c:16077,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16079,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:16081,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16084,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16084,1
    - Dst: _PyPegen_slash_with_default
      Src: /src/cpython/Parser/parser.c:16085,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16086,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16094,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16094,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16101
      start: 16020
    functionDepth: 1
    functionLinenumber: 16020
    functionLinenumberEnd: 16101
    functionName: lambda_slash_with_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_75_rule
    - _loop0_72_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_slash_with_default
    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:16111,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16111,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16125,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16125,1
    - Dst: invalid_lambda_star_etc_rule
      Src: /src/cpython/Parser/parser.c:16128,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16131,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16131,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16136,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16144,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16144,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16150,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:16152,1
    - Dst: _loop0_76_rule
      Src: /src/cpython/Parser/parser.c:16154,1
    - Dst: lambda_kwds_rule
      Src: /src/cpython/Parser/parser.c:16156,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16159,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16159,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:16160,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16169,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16177,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16177,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16183,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16185,1
    - Dst: _loop1_77_rule
      Src: /src/cpython/Parser/parser.c:16187,1
    - Dst: lambda_kwds_rule
      Src: /src/cpython/Parser/parser.c:16189,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16192,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16192,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:16193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16194,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16202,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16210,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16210,1
    - Dst: lambda_kwds_rule
      Src: /src/cpython/Parser/parser.c:16213,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16216,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16216,1
    - Dst: _PyPegen_star_etc
      Src: /src/cpython/Parser/parser.c:16217,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16218,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16226,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16226,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16233
      start: 16108
    functionDepth: 1
    functionLinenumber: 16108
    functionLinenumberEnd: 16233
    functionName: lambda_star_etc_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_76_rule
    - lambda_param_no_default_rule
    - lambda_kwds_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _loop1_77_rule
    - D
    - _PyPegen_star_etc
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - invalid_lambda_star_etc_rule
    linkageType: ''
    returnType: StarEtc
    signature: 'StarEtc *

      lambda_star_etc_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16239,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16239,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16240,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16253,1
    - Dst: invalid_lambda_kwds_rule
      Src: /src/cpython/Parser/parser.c:16256,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16259,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16259,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16264,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16264,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16272,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16272,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16276,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:16278,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16281,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16281,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16283,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16291,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16298
      start: 16236
    functionDepth: 1
    functionLinenumber: 16236
    functionLinenumberEnd: 16298
    functionName: lambda_kwds_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - lambda_param_no_default_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - invalid_lambda_kwds_rule
    - PyErr_Occurred
    - fprintf
    - _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:16304,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16304,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16305,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16318,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16318,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16322,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16324,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16327,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16327,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16329,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16337,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16337,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16345,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16345,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16348,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:16350,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16353,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16353,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16355,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16363,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16370
      start: 16301
    functionDepth: 1
    functionLinenumber: 16301
    functionLinenumberEnd: 16370
    functionName: lambda_param_no_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - lambda_param_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:16376,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16376,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16377,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16390,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16390,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16395,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:16397,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16399,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16402,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16402,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:16403,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16404,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:16420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16420,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16424,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:16426,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:16428,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16431,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16431,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:16432,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16433,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16441,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16441,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16448
      start: 16373
    functionDepth: 2
    functionLinenumber: 16373
    functionLinenumberEnd: 16448
    functionName: lambda_param_with_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - lambda_param_rule
    - _PyPegen_name_default_pair
    - default_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:16454,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16454,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16468,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16473,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:16475,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16480,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16480,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:16481,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16490,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16498,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16498,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:16502,1
    - Dst: default_rule
      Src: /src/cpython/Parser/parser.c:16504,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:16506,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16509,1
    - Dst: _PyPegen_name_default_pair
      Src: /src/cpython/Parser/parser.c:16510,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16511,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16519,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16519,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16526
      start: 16451
    functionDepth: 2
    functionLinenumber: 16451
    functionLinenumberEnd: 16526
    functionName: lambda_param_maybe_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - lambda_param_rule
    - _PyPegen_name_default_pair
    - default_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:16532,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16532,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16533,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16541,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16547,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16549,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16555,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:16558,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16561,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16561,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16562,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16568,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16570,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Parser/parser.c:16571,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16572,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16580,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16580,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16587
      start: 16529
    functionDepth: 1
    functionLinenumber: 16529
    functionLinenumberEnd: 16587
    functionName: lambda_param_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - D
    - _PyAST_arg
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:16593,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16593,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16594,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16607,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16607,1
    - Dst: fstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16610,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16618,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16626,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16626,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16629,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16632,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16632,1
    - Dst: _PyPegen_constant_from_token
      Src: /src/cpython/Parser/parser.c:16633,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16634,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16642,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16642,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16649
      start: 16590
    functionDepth: 1
    functionLinenumber: 16590
    functionLinenumberEnd: 16649
    functionName: fstring_middle_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - fstring_replacement_field_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_constant_from_token
    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:16657,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16657,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16658,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16666,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16672,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16674,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16680,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16680,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16688,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:16690,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16692,1
    - Dst: fstring_conversion_rule
      Src: /src/cpython/Parser/parser.c:16694,1
    - Dst: fstring_full_format_spec_rule
      Src: /src/cpython/Parser/parser.c:16696,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16698,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16701,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16701,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16702,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16708,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16710,1
    - Dst: _PyPegen_formatted_value
      Src: /src/cpython/Parser/parser.c:16711,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16712,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16720,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16720,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16728,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16728,1
    - Dst: invalid_fstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16731,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16734,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16734,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16739,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16739,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16746
      start: 16654
    functionDepth: 2
    functionLinenumber: 16654
    functionLinenumberEnd: 16746
    functionName: fstring_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - annotated_rhs_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - fstring_full_format_spec_rule
    - _PyPegen_formatted_value
    - D
    - invalid_fstring_replacement_field_rule
    - fstring_conversion_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:16752,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16752,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16753,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16766,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16766,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16770,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:16772,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16775,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16775,1
    - Dst: _PyPegen_check_fstring_conversion
      Src: /src/cpython/Parser/parser.c:16776,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16777,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16785,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16785,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16792
      start: 16749
    functionDepth: 1
    functionLinenumber: 16749
    functionLinenumberEnd: 16792
    functionName: fstring_conversion_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_check_fstring_conversion
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: ResultTokenWithMetadata
    signature: 'ResultTokenWithMetadata *

      fstring_conversion_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:16798,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16798,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16799,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16807,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16813,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16815,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16821,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16825,1
    - Dst: _loop0_78_rule
      Src: /src/cpython/Parser/parser.c:16827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16830,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16830,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:16831,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16837,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16839,1
    - Dst: _PyPegen_setup_full_format_spec
      Src: /src/cpython/Parser/parser.c:16840,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16841,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16849,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16849,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16856
      start: 16795
    functionDepth: 1
    functionLinenumber: 16795
    functionLinenumberEnd: 16856
    functionName: fstring_full_format_spec_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _loop0_78_rule
    - D
    - _PyPegen_setup_full_format_spec
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:16862,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16862,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16863,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16876,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16876,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16879,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16882,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16882,1
    - Dst: _PyPegen_decoded_constant_from_token
      Src: /src/cpython/Parser/parser.c:16883,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16884,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16892,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16892,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16900,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16900,1
    - Dst: fstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:16903,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16906,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16906,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16911,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16911,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16918
      start: 16859
    functionDepth: 3
    functionLinenumber: 16859
    functionLinenumberEnd: 16918
    functionName: fstring_format_spec_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - fstring_replacement_field_rule
    - _PyPegen_decoded_constant_from_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:16924,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16924,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16925,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16938,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16938,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16943,1
    - Dst: _loop0_79_rule
      Src: /src/cpython/Parser/parser.c:16945,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:16947,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16950,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16950,1
    - Dst: _PyPegen_joined_str
      Src: /src/cpython/Parser/parser.c:16951,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:16952,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16960,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16960,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16967
      start: 16921
    functionDepth: 1
    functionLinenumber: 16921
    functionLinenumberEnd: 16967
    functionName: fstring_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_joined_str
    - _loop0_79_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:16975,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:16975,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:16976,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:16984,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16990,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:16992,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:16998,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:16998,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17006,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:17008,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17010,1
    - Dst: fstring_conversion_rule
      Src: /src/cpython/Parser/parser.c:17012,1
    - Dst: tstring_full_format_spec_rule
      Src: /src/cpython/Parser/parser.c:17014,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17016,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17019,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17019,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17020,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17026,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17028,1
    - Dst: _PyPegen_formatted_value
      Src: /src/cpython/Parser/parser.c:17029,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17030,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17038,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17046,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17046,1
    - Dst: invalid_tstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:17049,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17052,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17057,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17057,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17064
      start: 16972
    functionDepth: 2
    functionLinenumber: 16972
    functionLinenumberEnd: 17064
    functionName: tstring_format_spec_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - annotated_rhs_rule
    - tstring_full_format_spec_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyPegen_formatted_value
    - invalid_tstring_replacement_field_rule
    - D
    - fstring_conversion_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:17070,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17070,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17071,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17084,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17084,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17087,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17090,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17090,1
    - Dst: _PyPegen_decoded_constant_from_token
      Src: /src/cpython/Parser/parser.c:17091,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17092,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17100,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17100,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17108,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17108,1
    - Dst: tstring_format_spec_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:17111,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17114,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17114,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17119,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17119,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17126
      start: 17067
    functionDepth: 3
    functionLinenumber: 17067
    functionLinenumberEnd: 17126
    functionName: tstring_format_spec_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - tstring_format_spec_replacement_field_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyPegen_decoded_constant_from_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:17132,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17132,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17133,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17141,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17147,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17155,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17155,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17159,1
    - Dst: _loop0_80_rule
      Src: /src/cpython/Parser/parser.c:17161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17164,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17164,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17165,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17171,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17173,1
    - Dst: _PyPegen_setup_full_format_spec
      Src: /src/cpython/Parser/parser.c:17174,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17175,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17183,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17183,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17190
      start: 17129
    functionDepth: 1
    functionLinenumber: 17129
    functionLinenumberEnd: 17190
    functionName: tstring_full_format_spec_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _loop0_80_rule
    - D
    - _PyPegen_setup_full_format_spec
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:17198,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17198,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17199,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17207,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17213,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17215,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17221,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17229,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:17231,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17233,1
    - Dst: fstring_conversion_rule
      Src: /src/cpython/Parser/parser.c:17235,1
    - Dst: tstring_full_format_spec_rule
      Src: /src/cpython/Parser/parser.c:17237,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17239,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17242,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17242,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17243,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17249,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17251,1
    - Dst: _PyPegen_interpolation
      Src: /src/cpython/Parser/parser.c:17252,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17253,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17261,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17261,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17269,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17269,1
    - Dst: invalid_tstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:17272,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17275,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17275,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17280,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17280,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17287
      start: 17195
    functionDepth: 2
    functionLinenumber: 17195
    functionLinenumberEnd: 17287
    functionName: tstring_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - annotated_rhs_rule
    - tstring_full_format_spec_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - invalid_tstring_replacement_field_rule
    - _PyPegen_interpolation
    - D
    - fstring_conversion_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:17293,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17293,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17307,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17307,1
    - Dst: tstring_replacement_field_rule
      Src: /src/cpython/Parser/parser.c:17310,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17313,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17313,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17318,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17318,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17326,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17326,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17329,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17332,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17332,1
    - Dst: _PyPegen_constant_from_token
      Src: /src/cpython/Parser/parser.c:17333,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17334,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17342,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17342,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17349
      start: 17290
    functionDepth: 3
    functionLinenumber: 17290
    functionLinenumberEnd: 17349
    functionName: tstring_middle_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - tstring_replacement_field_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_constant_from_token
    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:17355,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17355,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17356,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:17363,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17373,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17373,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17378,1
    - Dst: _loop0_81_rule
      Src: /src/cpython/Parser/parser.c:17380,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17382,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17385,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17385,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:17386,1
    - Dst: _PyPegen_template_str
      Src: /src/cpython/Parser/parser.c:17386,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17387,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17395,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17395,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:17400,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17403
      start: 17352
    functionDepth: 1
    functionLinenumber: 17352
    functionLinenumberEnd: 17403
    functionName: tstring_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _loop0_81_rule
    - CHECK_VERSION
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyPegen_insert_memo
    - D
    - _PyPegen_template_str
    - PyErr_Occurred
    - fprintf
    - _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:17409,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17409,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17410,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17423,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17423,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:17426,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17429,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17429,1
    - Dst: _PyPegen_constant_from_string
      Src: /src/cpython/Parser/parser.c:17430,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17431,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17439,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17446
      start: 17406
    functionDepth: 1
    functionLinenumber: 17406
    functionLinenumberEnd: 17446
    functionName: string_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_string_token
    - PyThreadState_Get
    - D
    - PyErr_Occurred
    - fprintf
    - _PyPegen_constant_from_string
    - _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:17452,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17452,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17453,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:17460,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17465,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17471,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17473,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17479,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17479,1
    - Dst: invalid_string_tstring_concat_rule
      Src: /src/cpython/Parser/parser.c:17482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17485,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17485,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17490,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17498,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17498,1
    - Dst: _loop1_82_rule
      Src: /src/cpython/Parser/parser.c:17501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17504,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17505,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17511,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17513,1
    - Dst: _PyPegen_concatenate_strings
      Src: /src/cpython/Parser/parser.c:17514,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17515,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17523,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17531,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17531,1
    - Dst: _loop1_83_rule
      Src: /src/cpython/Parser/parser.c:17534,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17537,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17538,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17544,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17546,1
    - Dst: _PyPegen_concatenate_tstrings
      Src: /src/cpython/Parser/parser.c:17547,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17548,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17556,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17556,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:17561,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 90
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17564
      start: 17449
    functionDepth: 1
    functionLinenumber: 17449
    functionLinenumberEnd: 17564
    functionName: strings_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _loop1_83_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _loop1_82_rule
    - UNUSED
    - _PyPegen_concatenate_strings
    - PyThreadState_Get
    - _PyPegen_fill_token
    - invalid_string_tstring_concat_rule
    - _PyPegen_insert_memo
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_concatenate_tstrings
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty strings_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17570,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17570,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17571,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17579,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17585,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17587,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17593,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17593,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17598,1
    - Dst: star_named_expressions_sequence_rule
      Src: /src/cpython/Parser/parser.c:17600,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17602,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17605,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17605,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17606,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17612,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17614,1
    - Dst: _PyAST_List
      Src: /src/cpython/Parser/parser.c:17615,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17616,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17624,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17624,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17631
      start: 17567
    functionDepth: 2
    functionLinenumber: 17567
    functionLinenumberEnd: 17631
    functionName: list_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - _PyAST_List
    - PyErr_Occurred
    - star_named_expressions_sequence_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty list_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17637,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17637,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17638,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17646,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17652,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17654,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17660,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17660,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17665,1
    - Dst: _tmp_84_rule
      Src: /src/cpython/Parser/parser.c:17667,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17669,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17672,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17672,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17673,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17679,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17681,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:17682,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17683,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17691,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17691,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17698
      start: 17634
    functionDepth: 1
    functionLinenumber: 17634
    functionLinenumberEnd: 17698
    functionName: tuple_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Tuple
    - _tmp_84_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty tuple_rule(Parser *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17704,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17704,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17705,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17713,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17719,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17721,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17727,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17727,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17732,1
    - Dst: star_named_expressions_sequence_rule
      Src: /src/cpython/Parser/parser.c:17734,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17736,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17739,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17739,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17740,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17746,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17748,1
    - Dst: _PyAST_Set
      Src: /src/cpython/Parser/parser.c:17749,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17750,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17758,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17758,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17765
      start: 17701
    functionDepth: 2
    functionLinenumber: 17701
    functionLinenumberEnd: 17765
    functionName: set_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - _PyAST_Set
    - PyErr_Occurred
    - star_named_expressions_sequence_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty set_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17771,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17771,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17772,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:17780,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17786,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17788,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17794,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17794,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17799,1
    - Dst: double_starred_kvpairs_rule
      Src: /src/cpython/Parser/parser.c:17801,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17803,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17806,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17806,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:17807,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17813,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17815,1
    - Dst: _PyAST_Dict
      Src: /src/cpython/Parser/parser.c:17816,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:17816,1
    - Dst: _PyPegen_get_keys
      Src: /src/cpython/Parser/parser.c:17816,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:17816,1
    - Dst: _PyPegen_get_values
      Src: /src/cpython/Parser/parser.c:17816,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17825,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17825,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17833,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17833,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17838,1
    - Dst: invalid_double_starred_kvpairs_rule
      Src: /src/cpython/Parser/parser.c:17840,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17842,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17845,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17845,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:17846,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17850,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17850,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17857
      start: 17768
    functionDepth: 1
    functionLinenumber: 17768
    functionLinenumberEnd: 17857
    functionName: dict_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_dummy_name
    - UNUSED
    - _PyAST_Dict
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - invalid_double_starred_kvpairs_rule
    - D
    - CHECK
    - _PyPegen_get_keys
    - _PyPegen_get_values
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - double_starred_kvpairs_rule
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty dict_rule(Parser *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17863,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17863,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17864,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17877,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17877,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:17879,1
    - Dst: _gather_86_rule
      Src: /src/cpython/Parser/parser.c:17882,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17884,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17887,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17887,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17889,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17897,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17897,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17904
      start: 17860
    functionDepth: 1
    functionLinenumber: 17860
    functionLinenumberEnd: 17904
    functionName: double_starred_kvpairs_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - _gather_86_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:17910,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17910,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17911,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17924,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17924,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17928,1
    - Dst: bitwise_or_rule
      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_key_value_pair
      Src: /src/cpython/Parser/parser.c:17934,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:17935,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17943,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17943,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17951,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17951,1
    - Dst: kvpair_rule
      Src: /src/cpython/Parser/parser.c:17954,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17957,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17957,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17962,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17962,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17969
      start: 17907
    functionDepth: 2
    functionLinenumber: 17907
    functionLinenumberEnd: 17969
    functionName: double_starred_kvpair_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - kvpair_rule
    - _PyPegen_key_value_pair
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: KeyValuePair
    signature: 'KeyValuePair *

      double_starred_kvpair_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:17975,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:17975,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:17976,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:17989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:17989,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:17994,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:17996,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:17998,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18001,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18001,1
    - Dst: _PyPegen_key_value_pair
      Src: /src/cpython/Parser/parser.c:18002,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18003,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18011,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18011,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18018
      start: 17972
    functionDepth: 2
    functionLinenumber: 17972
    functionLinenumberEnd: 18018
    functionName: kvpair_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_key_value_pair
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:18024,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18024,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18025,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18038,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18038,1
    - Dst: _loop1_87_rule
      Src: /src/cpython/Parser/parser.c:18041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18044,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18044,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18046,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18054,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18054,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18061
      start: 18021
    functionDepth: 1
    functionLinenumber: 18021
    functionLinenumberEnd: 18061
    functionName: for_if_clauses_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _loop1_87_rule
    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:18071,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18071,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18072,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18085,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18085,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18094,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18096,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:18098,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18100,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:18104,1
    - Dst: _loop0_88_rule
      Src: /src/cpython/Parser/parser.c:18106,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18109,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18109,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:18110,1
    - Dst: _PyAST_comprehension
      Src: /src/cpython/Parser/parser.c:18110,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18111,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18119,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18119,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18131,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18131,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18139,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:18141,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18143,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:18147,1
    - Dst: _loop0_88_rule
      Src: /src/cpython/Parser/parser.c:18149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18152,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18152,1
    - Dst: _PyAST_comprehension
      Src: /src/cpython/Parser/parser.c:18153,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18154,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18162,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18174,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18174,1
    - Dst: invalid_for_if_clause_rule
      Src: /src/cpython/Parser/parser.c:18177,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18180,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18180,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18185,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18185,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18193,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18193,1
    - Dst: invalid_for_target_rule
      Src: /src/cpython/Parser/parser.c:18196,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18199,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18199,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18204,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18204,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18211
      start: 18068
    functionDepth: 2
    functionLinenumber: 18068
    functionLinenumberEnd: 18211
    functionName: for_if_clause_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - star_targets_rule
    - CHECK_VERSION
    - invalid_for_target_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyAST_comprehension
    - invalid_for_if_clause_rule
    - disjunction_rule
    - D
    - PyErr_Occurred
    - _loop0_88_rule
    - fprintf
    - _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:18217,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18217,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18218,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18226,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18232,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18234,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18240,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18246,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:18248,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:18250,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18255,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18255,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18256,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18262,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18264,1
    - Dst: _PyAST_ListComp
      Src: /src/cpython/Parser/parser.c:18265,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18266,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18274,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18274,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18282,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18282,1
    - Dst: invalid_comprehension_rule
      Src: /src/cpython/Parser/parser.c:18285,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18288,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18288,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18293,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18293,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18300
      start: 18214
    functionDepth: 2
    functionLinenumber: 18214
    functionLinenumberEnd: 18300
    functionName: listcomp_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - for_if_clauses_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_ListComp
    - star_named_expression_rule
    - D
    - PyErr_Occurred
    - invalid_comprehension_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty listcomp_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18306,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18306,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18307,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18315,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18321,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18323,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18329,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18329,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18335,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:18337,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:18339,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18341,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18344,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18344,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18345,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18351,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18353,1
    - Dst: _PyAST_SetComp
      Src: /src/cpython/Parser/parser.c:18354,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18355,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18363,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18371,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18371,1
    - Dst: invalid_comprehension_rule
      Src: /src/cpython/Parser/parser.c:18374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18377,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18377,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18382,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18389
      start: 18303
    functionDepth: 2
    functionLinenumber: 18303
    functionLinenumberEnd: 18389
    functionName: setcomp_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyAST_SetComp
    - _PyPegen_get_last_nonnwhitespace_token
    - for_if_clauses_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - star_named_expression_rule
    - D
    - PyErr_Occurred
    - invalid_comprehension_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty setcomp_rule(Parser *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18397,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18397,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18398,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18406,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18412,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18414,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18420,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18426,1
    - Dst: _tmp_89_rule
      Src: /src/cpython/Parser/parser.c:18428,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:18430,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18432,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18435,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18435,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18436,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18442,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18444,1
    - Dst: _PyAST_GeneratorExp
      Src: /src/cpython/Parser/parser.c:18445,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18446,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18454,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18462,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18462,1
    - Dst: invalid_comprehension_rule
      Src: /src/cpython/Parser/parser.c:18465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18468,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18473,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18473,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18480
      start: 18394
    functionDepth: 2
    functionLinenumber: 18394
    functionLinenumberEnd: 18480
    functionName: genexp_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - for_if_clauses_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - _tmp_89_rule
    - PyErr_Occurred
    - fprintf
    - invalid_comprehension_rule
    - _Pypegen_stack_overflow
    - _PyAST_GeneratorExp
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty genexp_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18486,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18486,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18487,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18495,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18501,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18509,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18515,1
    - Dst: kvpair_rule
      Src: /src/cpython/Parser/parser.c:18517,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:18519,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18521,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18524,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18524,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18525,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18531,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18533,1
    - Dst: _PyAST_DictComp
      Src: /src/cpython/Parser/parser.c:18534,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18535,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18543,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18543,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18551,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18558,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18560,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:18562,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:18564,1
    - Dst: _PyPegen_expect_token
      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_DictComp
      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
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18595
      start: 18483
    functionDepth: 3
    functionLinenumber: 18483
    functionLinenumberEnd: 18595
    functionName: dictcomp_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - kvpair_rule
    - _PyAST_DictComp
    - _PyPegen_get_last_nonnwhitespace_token
    - for_if_clauses_rule
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty dictcomp_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18601,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18601,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18602,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:18609,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18619,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18619,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18621,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:18624,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18626,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:18628,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18631,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18631,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18633,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18641,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18641,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18649,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18649,1
    - Dst: invalid_arguments_rule
      Src: /src/cpython/Parser/parser.c:18652,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18655,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18655,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18660,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18660,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:18665,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18668
      start: 18598
    functionDepth: 1
    functionLinenumber: 18598
    functionLinenumberEnd: 18668
    functionName: arguments_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - _PyPegen_insert_memo
    - D
    - invalid_arguments_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - args_rule
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty arguments_rule(Parser *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18676,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18676,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18677,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18685,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18691,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18693,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18699,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18699,1
    - Dst: _gather_91_rule
      Src: /src/cpython/Parser/parser.c:18703,1
    - Dst: _tmp_92_rule
      Src: /src/cpython/Parser/parser.c:18705,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18708,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18708,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18709,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18715,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18717,1
    - Dst: _PyPegen_collect_call_seqs
      Src: /src/cpython/Parser/parser.c:18718,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18719,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18727,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18735,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18735,1
    - Dst: kwargs_rule
      Src: /src/cpython/Parser/parser.c:18738,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18741,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18741,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18742,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18748,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18750,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:18751,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:18751,1
    - Dst: CHECK_NULL_ALLOWED
      Src: /src/cpython/Parser/parser.c:18751,1
    - Dst: _PyPegen_seq_extract_starred_exprs
      Src: /src/cpython/Parser/parser.c:18751,1
    - Dst: CHECK_NULL_ALLOWED
      Src: /src/cpython/Parser/parser.c:18751,1
    - Dst: _PyPegen_seq_delete_starred_exprs
      Src: /src/cpython/Parser/parser.c:18751,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18760,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18760,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18767
      start: 18673
    functionDepth: 1
    functionLinenumber: 18673
    functionLinenumberEnd: 18767
    functionName: args_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_dummy_name
    - UNUSED
    - kwargs_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyAST_Call
    - _tmp_92_rule
    - D
    - PyErr_Occurred
    - _PyPegen_collect_call_seqs
    - fprintf
    - _PyPegen_seq_delete_starred_exprs
    - _PyPegen_seq_extract_starred_exprs
    - _Pypegen_stack_overflow
    - _gather_91_rule
    - CHECK_NULL_ALLOWED
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty args_rule(Parser *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:18776,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18776,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18777,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18790,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18790,1
    - Dst: _gather_94_rule
      Src: /src/cpython/Parser/parser.c:18795,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18797,1
    - Dst: _gather_96_rule
      Src: /src/cpython/Parser/parser.c:18799,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18802,1
    - Dst: _PyPegen_join_sequences
      Src: /src/cpython/Parser/parser.c:18803,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18804,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18812,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18812,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18820,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18820,1
    - Dst: _gather_94_rule
      Src: /src/cpython/Parser/parser.c:18823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18826,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18826,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18831,1
    - Dst: fprintf
      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
    - Dst: _gather_96_rule
      Src: /src/cpython/Parser/parser.c:18842,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18845,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18845,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18850,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18850,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18857
      start: 18773
    functionDepth: 1
    functionLinenumber: 18773
    functionLinenumberEnd: 18857
    functionName: kwargs_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_96_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - _PyPegen_join_sequences
    - _gather_94_rule
    - PyErr_Occurred
    - fprintf
    - _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:18866,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18866,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18867,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18875,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18881,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18883,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18889,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18889,1
    - Dst: invalid_starred_expression_unpacking_rule
      Src: /src/cpython/Parser/parser.c:18892,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18895,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18895,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18900,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18900,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18908,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18908,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:18912,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:18914,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18917,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18917,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:18918,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18924,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18926,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/parser.c:18927,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:18928,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18936,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18936,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18944,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18944,1
    - Dst: invalid_starred_expression_rule
      Src: /src/cpython/Parser/parser.c:18947,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18950,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18950,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18955,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18955,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18962
      start: 18863
    functionDepth: 2
    functionLinenumber: 18863
    functionLinenumberEnd: 18962
    functionName: starred_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - invalid_starred_expression_rule
    - D
    - _PyAST_Starred
    - PyErr_Occurred
    - fprintf
    - invalid_starred_expression_unpacking_rule
    - _Pypegen_stack_overflow
    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:18968,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:18968,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:18969,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:18977,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18983,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:18985,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18991,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18991,1
    - Dst: invalid_kwarg_rule
      Src: /src/cpython/Parser/parser.c:18994,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:18997,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:18997,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19002,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19002,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19010,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19010,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19015,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19017,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:19019,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19022,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19022,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19023,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19029,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19031,1
    - Dst: _PyPegen_keyword_or_starred
      Src: /src/cpython/Parser/parser.c:19032,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:19032,1
    - Dst: _PyAST_keyword
      Src: /src/cpython/Parser/parser.c:19032,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19033,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19041,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19049,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19049,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:19052,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19055,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19055,1
    - Dst: _PyPegen_keyword_or_starred
      Src: /src/cpython/Parser/parser.c:19056,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19057,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19065,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19065,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19072
      start: 18965
    functionDepth: 3
    functionLinenumber: 18965
    functionLinenumberEnd: 19072
    functionName: kwarg_or_starred_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - starred_expression_rule
    - invalid_kwarg_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_keyword_or_starred
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_keyword
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: KeywordOrStarred
    signature: 'KeywordOrStarred *

      kwarg_or_starred_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:19078,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19078,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19079,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19087,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19093,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19095,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19101,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19101,1
    - Dst: invalid_kwarg_rule
      Src: /src/cpython/Parser/parser.c:19104,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19107,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19112,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19120,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19120,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19125,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19127,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:19129,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19132,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19132,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19133,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19139,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19141,1
    - Dst: _PyPegen_keyword_or_starred
      Src: /src/cpython/Parser/parser.c:19142,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:19142,1
    - Dst: _PyAST_keyword
      Src: /src/cpython/Parser/parser.c:19142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19143,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19151,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19151,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19159,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19159,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19163,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:19165,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19168,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19168,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19169,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19175,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19177,1
    - Dst: _PyPegen_keyword_or_starred
      Src: /src/cpython/Parser/parser.c:19178,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:19178,1
    - Dst: _PyAST_keyword
      Src: /src/cpython/Parser/parser.c:19178,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19179,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19187,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 85
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19194
      start: 19075
    functionDepth: 2
    functionLinenumber: 19075
    functionLinenumberEnd: 19194
    functionName: kwarg_or_double_starred_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_kwarg_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - _PyPegen_keyword_or_starred
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_keyword
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:19200,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19200,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19201,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19209,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19215,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19217,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19223,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19223,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:19226,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:19228,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19231,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19231,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19241,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19249,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19249,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19251,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:19255,1
    - Dst: _loop0_97_rule
      Src: /src/cpython/Parser/parser.c:19257,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19259,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19262,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19262,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19263,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19269,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19271,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:19272,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:19272,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:19272,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19273,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19281,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19281,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19288
      start: 19197
    functionDepth: 1
    functionLinenumber: 19197
    functionLinenumberEnd: 19288
    functionName: star_targets_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - _PyAST_Tuple
    - _loop0_97_rule
    - D
    - CHECK
    - star_target_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:19294,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19294,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19295,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19308,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19308,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19310,1
    - Dst: _gather_99_rule
      Src: /src/cpython/Parser/parser.c:19313,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19315,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19318,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19318,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19320,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19328,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19328,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19335
      start: 19291
    functionDepth: 1
    functionLinenumber: 19291
    functionLinenumberEnd: 19335
    functionName: star_targets_list_seq_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - _gather_99_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:19341,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19341,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19342,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19355,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19355,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19357,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:19361,1
    - Dst: _loop1_100_rule
      Src: /src/cpython/Parser/parser.c:19363,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19365,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19368,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19368,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:19369,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19370,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19378,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19378,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19386,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19386,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:19390,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19392,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19395,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19395,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:19396,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19397,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19405,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19405,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19412
      start: 19338
    functionDepth: 1
    functionLinenumber: 19338
    functionLinenumberEnd: 19412
    functionName: star_targets_tuple_seq_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _loop1_100_rule
    - UNUSED
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - star_target_rule
    - PyErr_Occurred
    - fprintf
    - _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:19418,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19418,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19419,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:19426,1
    - Dst: _PyPegen_fill_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: D
      Src: /src/cpython/Parser/parser.c:19445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19445,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19449,1
    - Dst: _tmp_101_rule
      Src: /src/cpython/Parser/parser.c:19451,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19454,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19454,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19455,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19461,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19463,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Parser/parser.c:19464,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:19464,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:19464,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19473,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19473,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19481,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19481,1
    - Dst: target_with_star_atom_rule
      Src: /src/cpython/Parser/parser.c:19484,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:19492,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19492,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:19497,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19500
      start: 19415
    functionDepth: 1
    functionLinenumber: 19415
    functionLinenumberEnd: 19500
    functionName: star_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _PyPegen_get_last_nonnwhitespace_token
    - target_with_star_atom_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _tmp_101_rule
    - _PyPegen_insert_memo
    - _PyPegen_set_expr_context
    - D
    - CHECK
    - _PyAST_Starred
    - PyErr_Occurred
    - fprintf
    - _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:19509,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19509,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19510,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:19517,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19522,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19528,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19530,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19536,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19536,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19541,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19543,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19545,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19550,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19550,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19551,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19557,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19559,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:19560,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19561,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19569,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19577,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19577,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19583,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19585,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:19587,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19589,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19591,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19594,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19594,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19595,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19601,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19603,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:19604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19621,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19621,1
    - Dst: star_atom_rule
      Src: /src/cpython/Parser/parser.c:19624,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19627,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19632,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19632,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:19637,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19640
      start: 19506
    functionDepth: 2
    functionLinenumber: 19506
    functionLinenumberEnd: 19640
    functionName: target_with_star_atom_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead
    - _PyPegen_is_memoized
    - _PyAST_Subscript
    - star_atom_rule
    - _PyPegen_fill_token
    - _PyPegen_insert_memo
    - PyErr_Occurred
    - _PyAST_Attribute
    - _Pypegen_stack_overflow
    - t_primary_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - slices_rule
    - D
    - fprintf
    - _PyPegen_name_token
    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:19650,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19650,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19651,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19659,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19665,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19667,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19673,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19673,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19676,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19679,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19679,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:19680,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19681,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19689,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19697,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19697,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19702,1
    - Dst: target_with_star_atom_rule
      Src: /src/cpython/Parser/parser.c:19704,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19706,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19709,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19709,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:19710,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19711,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19719,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19719,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19727,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19727,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19732,1
    - Dst: star_targets_tuple_seq_rule
      Src: /src/cpython/Parser/parser.c:19734,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19736,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19739,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19739,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19740,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19746,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19748,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:19749,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19750,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19758,1
    - Dst: fprintf
      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: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19771,1
    - Dst: star_targets_list_seq_rule
      Src: /src/cpython/Parser/parser.c:19773,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19775,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19778,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19778,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19779,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19785,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19787,1
    - Dst: _PyAST_List
      Src: /src/cpython/Parser/parser.c:19788,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19797,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19797,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19804
      start: 19647
    functionDepth: 3
    functionLinenumber: 19647
    functionLinenumberEnd: 19804
    functionName: star_atom_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_get_last_nonnwhitespace_token
    - target_with_star_atom_rule
    - UNUSED
    - star_targets_tuple_seq_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Tuple
    - star_targets_list_seq_rule
    - _PyPegen_set_expr_context
    - D
    - _PyAST_List
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:19810,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19810,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19811,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19824,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19824,1
    - Dst: single_subscript_attribute_target_rule
      Src: /src/cpython/Parser/parser.c:19827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19830,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19830,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19835,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19835,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19843,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19843,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19846,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19849,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19849,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:19850,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19851,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19859,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19859,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19867,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19867,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19872,1
    - Dst: single_target_rule
      Src: /src/cpython/Parser/parser.c:19874,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19876,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19879,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19879,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19881,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19889,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19889,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19896
      start: 19807
    functionDepth: 1
    functionLinenumber: 19807
    functionLinenumberEnd: 19896
    functionName: single_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - single_subscript_attribute_target_rule
    - _PyPegen_expect_token
    - single_target_rule
    - _PyPegen_set_expr_context
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:19904,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:19904,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:19905,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:19913,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19919,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19921,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19927,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19932,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19934,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:19936,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19938,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19941,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19941,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19942,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19948,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19950,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:19951,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19952,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19960,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19960,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19968,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19968,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:19974,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19976,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:19978,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:19980,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:19982,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:19985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:19985,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:19986,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19992,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:19994,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:19995,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:19996,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20004,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20011
      start: 19901
    functionDepth: 2
    functionLinenumber: 19901
    functionLinenumberEnd: 20011
    functionName: single_subscript_attribute_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - _PyAST_Subscript
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - t_primary_rule
    - _PyPegen_expect_token
    - _PyAST_Attribute
    - slices_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:20024,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20024,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20025,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:20028,1
    - Dst: _PyPegen_update_memo
      Src: /src/cpython/Parser/parser.c:20035,1
    - Dst: t_primary_raw
      Src: /src/cpython/Parser/parser.c:20041,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20054
      start: 20021
    functionDepth: 1
    functionLinenumber: 20021
    functionLinenumberEnd: 20054
    functionName: t_primary_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - PyThreadState_Get
    - _PyPegen_update_memo
    - t_primary_raw
    - _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:20058,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20058,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20059,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:20067,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20073,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20075,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20081,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20081,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:20086,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20088,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:20090,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20092,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20095,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20095,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20096,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20102,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20104,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:20105,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20106,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20114,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20114,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20122,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20122,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:20128,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20130,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:20132,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20134,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20139,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20139,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20140,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20146,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20148,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:20149,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20150,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20158,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20158,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20166,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20166,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:20170,1
    - Dst: genexp_rule
      Src: /src/cpython/Parser/parser.c:20172,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20174,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20177,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20177,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20178,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20184,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20186,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:20187,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:20187,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:20187,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20188,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20196,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20196,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20204,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20204,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:20210,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20212,1
    - Dst: arguments_rule
      Src: /src/cpython/Parser/parser.c:20214,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20216,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20218,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20221,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20222,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20228,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20230,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/parser.c:20231,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20232,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20240,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20248,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20248,1
    - Dst: atom_rule
      Src: /src/cpython/Parser/parser.c:20251,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20253,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20256,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20258,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20266,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20266,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 139
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20273
      start: 20055
    functionDepth: 3
    functionLinenumber: 20055
    functionLinenumberEnd: 20273
    functionName: t_primary_raw
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead
    - _PyAST_Subscript
    - _PyPegen_fill_token
    - PyErr_Occurred
    - _PyAST_Attribute
    - _Pypegen_stack_overflow
    - t_primary_rule
    - atom_rule
    - genexp_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyAST_Call
    - arguments_rule
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - _PyPegen_singleton_seq
    - slices_rule
    - D
    - CHECK
    - fprintf
    - _PyPegen_name_token
    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:20279,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20279,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20280,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20293,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20293,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20296,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20299,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20299,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20304,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20312,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20315,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20318,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20318,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20323,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20323,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20331,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20331,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20334,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20337,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20337,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20342,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20342,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20349
      start: 20276
    functionDepth: 1
    functionLinenumber: 20276
    functionLinenumberEnd: 20349
    functionName: t_lookahead_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:20355,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20355,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20356,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20369,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20369,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20371,1
    - Dst: _gather_103_rule
      Src: /src/cpython/Parser/parser.c:20374,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20379,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20381,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20389,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20389,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20396
      start: 20352
    functionDepth: 1
    functionLinenumber: 20352
    functionLinenumberEnd: 20396
    functionName: del_targets_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _gather_103_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:20405,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20405,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20406,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:20413,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:20418,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20424,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20426,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20432,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:20437,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20439,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:20441,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20443,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20446,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20446,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20447,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20453,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20455,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Parser/parser.c:20456,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20457,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20465,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20465,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20473,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20473,1
    - Dst: t_primary_rule
      Src: /src/cpython/Parser/parser.c:20479,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20481,1
    - Dst: slices_rule
      Src: /src/cpython/Parser/parser.c:20483,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20485,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20487,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20490,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20491,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20497,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20499,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Parser/parser.c:20500,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20509,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20517,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20517,1
    - Dst: del_t_atom_rule
      Src: /src/cpython/Parser/parser.c:20520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20523,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20528,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20528,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:20533,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20536
      start: 20402
    functionDepth: 2
    functionLinenumber: 20402
    functionLinenumberEnd: 20536
    functionName: del_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _PyPegen_lookahead
    - _PyPegen_is_memoized
    - _PyAST_Subscript
    - _PyPegen_fill_token
    - _PyPegen_insert_memo
    - PyErr_Occurred
    - _PyAST_Attribute
    - _Pypegen_stack_overflow
    - del_t_atom_rule
    - t_primary_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - slices_rule
    - D
    - fprintf
    - _PyPegen_name_token
    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:20542,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20542,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20543,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:20551,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20557,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20559,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20565,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20565,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:20568,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20571,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20571,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:20572,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20573,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20581,1
    - Dst: fprintf
      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
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20594,1
    - Dst: del_target_rule
      Src: /src/cpython/Parser/parser.c:20596,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20598,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20601,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20601,1
    - Dst: _PyPegen_set_expr_context
      Src: /src/cpython/Parser/parser.c:20602,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20603,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20611,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20611,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:20624,1
    - Dst: del_targets_rule
      Src: /src/cpython/Parser/parser.c:20626,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20628,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20631,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20631,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20632,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20638,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20640,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Parser/parser.c:20641,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20642,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20650,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20650,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20658,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20658,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20663,1
    - Dst: del_targets_rule
      Src: /src/cpython/Parser/parser.c:20665,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20667,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20670,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20670,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:20671,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20677,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:20679,1
    - Dst: _PyAST_List
      Src: /src/cpython/Parser/parser.c:20680,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20681,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20689,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20696
      start: 20539
    functionDepth: 3
    functionLinenumber: 20539
    functionLinenumberEnd: 20696
    functionName: del_t_atom_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - del_target_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - _PyAST_Tuple
    - del_targets_rule
    - _PyPegen_set_expr_context
    - D
    - _PyAST_List
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:20709,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20709,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20710,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20723,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20723,1
    - Dst: _gather_105_rule
      Src: /src/cpython/Parser/parser.c:20732,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20734,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20736,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20738,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20740,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20742,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20744,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20747,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20747,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20748,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:20748,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20748,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20749,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20757,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20757,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20765,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20765,1
    - Dst: _gather_105_rule
      Src: /src/cpython/Parser/parser.c:20771,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20773,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20775,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20777,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20780,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20780,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20781,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20782,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20790,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20790,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20798,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20798,1
    - Dst: _gather_105_rule
      Src: /src/cpython/Parser/parser.c:20804,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20806,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20808,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20810,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20813,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20813,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20814,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20815,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20823,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20823,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20831,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20831,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20838,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20840,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20842,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20844,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20846,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20849,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20849,1
    - Dst: _PyPegen_seq_append_to_end
      Src: /src/cpython/Parser/parser.c:20850,1
    - Dst: CHECK
      Src: /src/cpython/Parser/parser.c:20850,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:20850,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20851,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20859,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20859,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20867,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20867,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20871,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20873,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20876,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20876,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:20877,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20878,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20886,1
    - Dst: fprintf
      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: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20898,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:20900,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20903,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20903,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:20904,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20905,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20913,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20913,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20921,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20921,1
    - Dst: _gather_105_rule
      Src: /src/cpython/Parser/parser.c:20924,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20927,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20929,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20937,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 146
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20944
      start: 20706
    functionDepth: 2
    functionLinenumber: 20706
    functionLinenumberEnd: 20944
    functionName: type_expressions_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_105_rule
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_singleton_seq
    - _PyPegen_expect_token
    - _PyPegen_seq_append_to_end
    - D
    - CHECK
    - PyErr_Occurred
    - fprintf
    - _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:20953,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:20953,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:20954,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20967,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20967,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20971,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:20973,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:20975,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20978,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20978,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:20980,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20988,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20988,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:20996,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:20996,1
    - Dst: invalid_double_type_comments_rule
      Src: /src/cpython/Parser/parser.c:20999,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21002,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21002,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_expect_token
      Src: /src/cpython/Parser/parser.c:21018,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21021,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21021,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21026,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21026,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21033
      start: 20950
    functionDepth: 1
    functionLinenumber: 20950
    functionLinenumberEnd: 21033
    functionName: func_type_comment_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - invalid_double_type_comments_rule
    - _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:21046,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21046,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21047,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21060,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21060,1
    - Dst: _tmp_107_rule
      Src: /src/cpython/Parser/parser.c:21065,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21067,1
    - Dst: _gather_109_rule
      Src: /src/cpython/Parser/parser.c:21069,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21072,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21072,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:21073,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21082,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21082,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21090,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21090,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21093,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21097,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:21099,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21101,1
    - Dst: _tmp_110_rule
      Src: /src/cpython/Parser/parser.c:21103,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21106,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21106,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21107,1
    - Dst: _PyPegen_get_last_comprehension_item
      Src: /src/cpython/Parser/parser.c:21107,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:21107,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21108,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21116,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21116,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21124,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21124,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21130,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21132,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21134,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:21136,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21139,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21139,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21140,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21141,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21149,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21157,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21157,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21159,1
    - Dst: _tmp_111_rule
      Src: /src/cpython/Parser/parser.c:21163,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21165,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21167,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21169,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21172,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21172,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21173,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21174,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21182,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21182,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21190,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21190,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:21194,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:21196,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21199,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21199,1
    - Dst: _PyPegen_nonparen_genexp_in_call
      Src: /src/cpython/Parser/parser.c:21200,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21201,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21209,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21209,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21217,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21217,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:21223,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21225,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21227,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:21229,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21232,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21232,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21233,1
    - Dst: _PyPegen_get_last_comprehension_item
      Src: /src/cpython/Parser/parser.c:21233,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:21233,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21234,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21242,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21242,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21250,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21250,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:21255,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21257,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:21259,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21262,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21262,1
    - Dst: _PyPegen_arguments_parsing_error
      Src: /src/cpython/Parser/parser.c:21263,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21264,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21272,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21272,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 148
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21279
      start: 21043
    functionDepth: 2
    functionLinenumber: 21043
    functionLinenumberEnd: 21279
    functionName: invalid_arguments_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _tmp_110_rule
    - _PyPegen_lookahead
    - expression_rule
    - PyErr_Occurred
    - PyPegen_last_item
    - _Pypegen_stack_overflow
    - _gather_109_rule
    - _PyPegen_nonparen_genexp_in_call
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - _PyPegen_get_last_comprehension_item
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _tmp_111_rule
    - _PyPegen_arguments_parsing_error
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - args_rule
    - _Py_ReachedRecursionLimitWithMargin
    - for_if_clauses_rule
    - UNUSED
    - _tmp_107_rule
    - D
    - fprintf
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_arguments_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21289,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21289,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21290,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21303,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21303,1
    - Dst: _tmp_113_rule
      Src: /src/cpython/Parser/parser.c:21307,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21309,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21312,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21313,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/parser.c:21313,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21314,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21322,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21330,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21330,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21336,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21338,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21340,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:21342,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21345,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21345,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21346,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21355,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21355,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21363,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21367,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21369,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21371,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21374,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21374,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21375,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21384,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21384,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21392,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21392,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21398,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21400,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21402,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21404,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21407,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21407,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21408,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21409,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21417,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21417,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21424
      start: 21286
    functionDepth: 2
    functionLinenumber: 21286
    functionLinenumberEnd: 21424
    functionName: invalid_kwarg_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - _tmp_113_rule
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - for_if_clauses_rule
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - PyBytes_AS_STRING
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_kwarg_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21435,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21435,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21436,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/parser.c:21445,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21452,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21454,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21461,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21461,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21468,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21470,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21472,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21474,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21476,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21479,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21479,1
    - Dst: _PyPegen_get_last_nonnwhitespace_token
      Src: /src/cpython/Parser/parser.c:21480,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21487,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21489,1
    - Dst: _PyAST_IfExp
      Src: /src/cpython/Parser/parser.c:21490,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21491,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21500,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21500,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21509,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21512,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21515,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21515,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21520,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21529,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21529,1
    - Dst: lambdef_rule
      Src: /src/cpython/Parser/parser.c:21532,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21535,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21535,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21540,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21540,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21548
      start: 21430
    functionDepth: 3
    functionLinenumber: 21430
    functionLinenumberEnd: 21548
    functionName: expression_without_invalid_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - lambdef_rule
    - _PyPegen_get_last_nonnwhitespace_token
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_fill_token
    - _PyPegen_expect_token
    - disjunction_rule
    - _PyAST_IfExp
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    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:21554,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21554,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21555,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21568,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21568,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21572,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:21574,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:21576,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21579,1
    - Dst: _PyPegen_check_legacy_stmt
      Src: /src/cpython/Parser/parser.c:21580,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21580,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21589,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21596
      start: 21551
    functionDepth: 2
    functionLinenumber: 21551
    functionLinenumberEnd: 21596
    functionName: invalid_legacy_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - star_expressions_rule
    - _PyPegen_check_legacy_stmt
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_legacy_expression_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21602,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21602,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21603,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21616,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21616,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21622,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21624,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21626,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21628,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21631,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21631,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:21632,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21633,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21641,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21641,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21649,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21649,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21655,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:21657,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21659,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:21661,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21664,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21664,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:21665,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21666,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21674,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21674,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21681
      start: 21599
    functionDepth: 2
    functionLinenumber: 21599
    functionLinenumberEnd: 21681
    functionName: invalid_type_param_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_type_param_rule(Parser *p)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21694,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21694,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21695,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21708,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21708,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:21713,1
    - Dst: _loop1_115_rule
      Src: /src/cpython/Parser/parser.c:21715,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:21717,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21720,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21720,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21721,1
    - Dst: PyPegen_first_item
      Src: /src/cpython/Parser/parser.c:21721,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:21721,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21722,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21730,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21738,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21738,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21742,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21744,1
    - Dst: expression_without_invalid_rule
      Src: /src/cpython/Parser/parser.c:21746,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21749,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21749,1
    - Dst: _PyPegen_raise_error_for_missing_comma
      Src: /src/cpython/Parser/parser.c:21750,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21751,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21759,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21759,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21767,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21767,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21772,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21774,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21776,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:21778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21781,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21781,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21782,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21783,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21791,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21791,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21799,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21799,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21805,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21807,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21809,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21811,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:21813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21816,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21816,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:21817,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21818,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21826,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21826,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21834,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21834,1
    - Dst: _tmp_118_rule
      Src: /src/cpython/Parser/parser.c:21841,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21843,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21845,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21847,1
    - Dst: simple_stmt_rule
      Src: /src/cpython/Parser/parser.c:21849,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21852,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21853,1
    - Dst: PyErr_Occurred
      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: D
      Src: /src/cpython/Parser/parser.c:21870,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21870,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21872,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21876,1
    - Dst: lambda_params_rule
      Src: /src/cpython/Parser/parser.c:21878,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21880,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:21882,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21885,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21885,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21886,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21887,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21895,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21895,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21903,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21903,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:21905,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21909,1
    - Dst: lambda_params_rule
      Src: /src/cpython/Parser/parser.c:21911,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21913,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:21915,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21918,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21918,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:21919,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21920,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21928,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21928,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 148
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21935
      start: 21691
    functionDepth: 4
    functionLinenumber: 21691
    functionLinenumberEnd: 21935
    functionName: invalid_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - expression_without_invalid_rule
    - simple_stmt_rule
    - _tmp_118_rule
    - fprintf
    - PyPegen_last_item
    - PyErr_Occurred
    - PyPegen_first_item
    - _Pypegen_stack_overflow
    - _loop1_115_rule
    - _PyPegen_lookahead_with_int
    - _PyPegen_raise_error_for_missing_comma
    - lambda_params_rule
    - _PyPegen_string_token
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - disjunction_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - _PyPegen_lookahead_for_expr
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_expression_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:21943,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:21943,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:21944,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21957,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21957,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21964,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21966,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:21968,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21970,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:21972,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21975,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21975,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:21976,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:21977,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21985,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:21993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:21993,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:22000,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22002,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:22004,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22006,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22011,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22011,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22012,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22013,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22021,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22021,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22028
      start: 21940
    functionDepth: 2
    functionLinenumber: 21940
    functionLinenumberEnd: 22028
    functionName: invalid_if_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - disjunction_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_if_expression_rule(Parser *p)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22037,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22037,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22038,1
    - Dst: _PyPegen_is_memoized
      Src: /src/cpython/Parser/parser.c:22045,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22055,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22055,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22060,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22062,1
    - Dst: expression_rule
      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: _PyPegen_get_expr_name
      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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22085,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22085,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:22090,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22092,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:22094,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:22096,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22099,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22099,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22100,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22101,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22109,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22109,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22117,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22117,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:22122,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:22124,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22126,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:22128,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:22130,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22133,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22133,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22134,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:22134,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22135,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22143,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22143,1
    - Dst: _PyPegen_insert_memo
      Src: /src/cpython/Parser/parser.c:22148,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 75
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22151
      start: 22034
    functionDepth: 2
    functionLinenumber: 22034
    functionLinenumberEnd: 22151
    functionName: invalid_named_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_is_memoized
    - _PyPegen_lookahead
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyPegen_insert_memo
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - _PyPegen_get_expr_name
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    - bitwise_or_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_named_expression_rule(Parser *p)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22163,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22163,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22164,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22177,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22177,1
    - Dst: invalid_ann_assign_target_rule
      Src: /src/cpython/Parser/parser.c:22182,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22184,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22186,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22189,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22189,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22190,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:22190,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22191,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22199,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22199,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22207,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22207,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:22214,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22216,1
    - Dst: _loop0_121_rule
      Src: /src/cpython/Parser/parser.c:22218,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22220,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22222,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22225,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22225,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22226,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22227,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22235,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22235,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22243,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22243,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22248,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22250,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22255,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22255,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22256,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22257,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22265,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22265,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22273,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22273,1
    - Dst: _loop0_122_rule
      Src: /src/cpython/Parser/parser.c:22278,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:22280,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22282,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22285,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22285,1
    - Dst: RAISE_SYNTAX_ERROR_INVALID_TARGET
      Src: /src/cpython/Parser/parser.c:22286,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22287,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22295,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22295,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22303,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22303,1
    - Dst: _loop0_122_rule
      Src: /src/cpython/Parser/parser.c:22308,1
    - Dst: yield_expr_rule
      Src: /src/cpython/Parser/parser.c:22310,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22315,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22315,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22316,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22317,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22325,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22325,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22333,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22333,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:22338,1
    - Dst: augassign_rule
      Src: /src/cpython/Parser/parser.c:22340,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:22342,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22345,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22345,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22346,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:22346,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22355,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22355,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 127
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22362
      start: 22160
    functionDepth: 3
    functionLinenumber: 22160
    functionLinenumberEnd: 22362
    functionName: invalid_assignment_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - expression_rule
    - yield_expr_rule
    - PyErr_Occurred
    - _PyPegen_get_expr_name
    - _Pypegen_stack_overflow
    - star_named_expression_rule
    - _loop0_122_rule
    - augassign_rule
    - invalid_ann_assign_target_rule
    - RAISE_SYNTAX_ERROR_INVALID_TARGET
    - annotated_rhs_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _loop0_121_rule
    - _Py_ReachedRecursionLimitWithMargin
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - fprintf
    - star_expressions_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_assignment_rule(Parser *p)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22368,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22368,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22382,1
    - Dst: list_rule
      Src: /src/cpython/Parser/parser.c:22385,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22388,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22388,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22393,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22393,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22401,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22401,1
    - Dst: tuple_rule
      Src: /src/cpython/Parser/parser.c:22404,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22407,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22407,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22412,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22412,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22420,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22425,1
    - Dst: invalid_ann_assign_target_rule
      Src: /src/cpython/Parser/parser.c:22427,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22432,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22432,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22434,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22442,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22442,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22449
      start: 22365
    functionDepth: 3
    functionLinenumber: 22365
    functionLinenumberEnd: 22449
    functionName: invalid_ann_assign_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - list_rule
    - PyThreadState_Get
    - tuple_rule
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - invalid_ann_assign_target_rule
    - _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:22455,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22455,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22456,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22469,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22469,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22473,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22475,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22478,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22479,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22480,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22488,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22488,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22496,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22501,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22503,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22505,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22508,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22508,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22509,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22510,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22518,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22518,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22525
      start: 22452
    functionDepth: 2
    functionLinenumber: 22452
    functionLinenumberEnd: 22525
    functionName: invalid_raise_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - _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:22531,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22531,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22532,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22545,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22549,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:22551,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22554,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22554,1
    - Dst: RAISE_SYNTAX_ERROR_INVALID_TARGET
      Src: /src/cpython/Parser/parser.c:22555,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22556,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22564,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22564,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22571
      start: 22528
    functionDepth: 2
    functionLinenumber: 22528
    functionLinenumberEnd: 22571
    functionName: invalid_del_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - star_expressions_rule
    - D
    - RAISE_SYNTAX_ERROR_INVALID_TARGET
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_del_stmt_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22581,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22581,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22582,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22595,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22595,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22601,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22603,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22605,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22607,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22610,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22610,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22611,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:22611,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22612,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22620,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22620,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22628,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22628,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22636,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22638,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22640,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22642,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22644,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22646,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22649,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22649,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22650,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:22650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22651,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22659,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22659,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22667,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22667,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22673,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22675,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22677,1
    - Dst: expression_rule
      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_KNOWN_RANGE
      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:22708,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22710,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22712,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22714,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22716,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22718,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22721,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22721,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22723,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22731,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22731,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22738
      start: 22578
    functionDepth: 2
    functionLinenumber: 22578
    functionLinenumberEnd: 22738
    functionName: invalid_assert_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - _PyPegen_get_expr_name
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_assert_stmt_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22744,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22744,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22745,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22758,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22758,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22761,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:22763,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22766,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22766,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:22767,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22768,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22776,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22776,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22783
      start: 22741
    functionDepth: 1
    functionLinenumber: 22741
    functionLinenumberEnd: 22783
    functionName: invalid_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_block_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22793,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22793,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22794,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22807,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22807,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22813,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22815,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22817,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:22819,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22822,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22822,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22823,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22824,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22832,1
    - Dst: fprintf
      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: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22846,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22848,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:22850,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:22852,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22855,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22855,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22856,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22865,1
    - Dst: fprintf
      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
    - Dst: _tmp_123_rule
      Src: /src/cpython/Parser/parser.c:22880,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:22882,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22884,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:22886,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:22888,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22891,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22891,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22892,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:22892,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22893,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22901,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22901,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22909,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22909,1
    - Dst: _tmp_123_rule
      Src: /src/cpython/Parser/parser.c:22915,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:22917,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22919,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:22921,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22924,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22924,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:22925,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22926,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22934,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22934,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22941
      start: 22790
    functionDepth: 2
    functionLinenumber: 22790
    functionLinenumberEnd: 22941
    functionName: invalid_comprehension_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - for_if_clauses_rule
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _tmp_123_rule
    - star_named_expression_rule
    - D
    - PyErr_Occurred
    - PyPegen_last_item
    - fprintf
    - star_named_expressions_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_comprehension_rule(Parser *p)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:22953,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:22953,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:22954,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22967,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22967,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22971,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:22973,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22976,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22976,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:22977,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:22978,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22986,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:22994,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:22994,1
    - Dst: _tmp_124_rule
      Src: /src/cpython/Parser/parser.c:22999,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:23001,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23003,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23006,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23006,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23007,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23008,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23016,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23016,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23024,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23024,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23027,1
    - Dst: slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:23031,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:23033,1
    - Dst: invalid_parameters_helper_rule
      Src: /src/cpython/Parser/parser.c:23035,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:23037,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23040,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23040,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23041,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23042,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23050,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23058,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23058,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23062,1
    - Dst: _loop0_27_rule
      Src: /src/cpython/Parser/parser.c:23066,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23068,1
    - Dst: _loop1_29_rule
      Src: /src/cpython/Parser/parser.c:23070,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23072,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23074,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23077,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:23078,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23079,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23087,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23087,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23095,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23095,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23100,1
    - Dst: _tmp_124_rule
      Src: /src/cpython/Parser/parser.c:23104,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:23106,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23108,1
    - Dst: _tmp_125_rule
      Src: /src/cpython/Parser/parser.c:23110,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:23112,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23114,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23118,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23119,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23127,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23127,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 105
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23129
      start: 22950
    functionDepth: 2
    functionLinenumber: 22950
    functionLinenumberEnd: 23129
    functionName: invalid_parameters_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_124_rule
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - UNUSED
    - invalid_parameters_helper_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _loop1_29_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - param_no_default_rule
    - D
    - PyErr_Occurred
    - slash_no_default_rule
    - fprintf
    - _tmp_125_rule
    - _Pypegen_stack_overflow
    - _loop0_31_rule
    - _loop0_27_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_parameters_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23170,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23170,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23171,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23184,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23184,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23187,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:23189,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23192,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23192,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23194,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23209
      start: 23167
    functionDepth: 1
    functionLinenumber: 23167
    functionLinenumberEnd: 23209
    functionName: invalid_default_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - _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:23219,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23219,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23220,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23233,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23233,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23237,1
    - Dst: _tmp_127_rule
      Src: /src/cpython/Parser/parser.c:23239,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23242,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23242,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23243,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23244,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23252,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23260,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23260,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23265,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23267,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23269,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23272,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23272,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:23273,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23274,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23282,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23282,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23290,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23290,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23295,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:23297,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23299,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23302,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23302,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23303,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23304,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23320,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23320,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23327,1
    - Dst: _tmp_128_rule
      Src: /src/cpython/Parser/parser.c:23329,1
    - Dst: _loop0_31_rule
      Src: /src/cpython/Parser/parser.c:23331,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23333,1
    - Dst: _tmp_128_rule
      Src: /src/cpython/Parser/parser.c:23335,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23338,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23338,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23339,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23340,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23348,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23348,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23355
      start: 23216
    functionDepth: 2
    functionLinenumber: 23216
    functionLinenumberEnd: 23355
    functionName: invalid_star_etc_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - param_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _tmp_127_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - _tmp_128_rule
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _Pypegen_stack_overflow
    - _loop0_31_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_star_etc_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23361,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23361,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23375,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23375,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23380,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:23382,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23384,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23387,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23388,1
    - Dst: PyErr_Occurred
      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: D
      Src: /src/cpython/Parser/parser.c:23405,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23405,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23411,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:23413,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23415,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:23417,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23420,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23421,1
    - Dst: PyErr_Occurred
      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: D
      Src: /src/cpython/Parser/parser.c:23438,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23438,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23444,1
    - Dst: param_rule
      Src: /src/cpython/Parser/parser.c:23446,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23448,1
    - Dst: _tmp_129_rule
      Src: /src/cpython/Parser/parser.c:23450,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23453,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23453,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23454,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23463,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23463,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23470
      start: 23358
    functionDepth: 2
    functionLinenumber: 23358
    functionLinenumberEnd: 23470
    functionName: invalid_kwds_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - param_rule
    - _tmp_129_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - _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:23476,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23476,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23490,1
    - Dst: slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:23493,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23496,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:23497,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23498,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23506,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23506,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23514,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23514,1
    - Dst: _loop1_30_rule
      Src: /src/cpython/Parser/parser.c:23517,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23520,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23525,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23525,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23532
      start: 23473
    functionDepth: 2
    functionLinenumber: 23473
    functionLinenumberEnd: 23532
    functionName: invalid_parameters_helper_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - slash_with_default_rule
    - _loop1_30_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:23544,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23544,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23545,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23558,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23558,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23562,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23564,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23567,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23567,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23568,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23577,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23577,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23585,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23585,1
    - Dst: _tmp_130_rule
      Src: /src/cpython/Parser/parser.c:23590,1
    - Dst: _loop0_76_rule
      Src: /src/cpython/Parser/parser.c:23592,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23594,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23597,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23597,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23598,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23599,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23607,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23607,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23615,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23615,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23618,1
    - Dst: lambda_slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:23622,1
    - Dst: _loop0_72_rule
      Src: /src/cpython/Parser/parser.c:23624,1
    - Dst: invalid_lambda_parameters_helper_rule
      Src: /src/cpython/Parser/parser.c:23626,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:23628,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23631,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23631,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23632,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23633,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23641,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23641,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23649,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23649,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23653,1
    - Dst: _loop0_72_rule
      Src: /src/cpython/Parser/parser.c:23657,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23659,1
    - Dst: _gather_132_rule
      Src: /src/cpython/Parser/parser.c:23661,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23663,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23665,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23668,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23668,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:23669,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23670,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23678,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23678,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23686,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23686,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:23691,1
    - Dst: _tmp_130_rule
      Src: /src/cpython/Parser/parser.c:23695,1
    - Dst: _loop0_76_rule
      Src: /src/cpython/Parser/parser.c:23697,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23699,1
    - Dst: _tmp_133_rule
      Src: /src/cpython/Parser/parser.c:23701,1
    - Dst: _loop0_76_rule
      Src: /src/cpython/Parser/parser.c:23703,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23705,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23709,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23710,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23718,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23718,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 105
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23720
      start: 23541
    functionDepth: 2
    functionLinenumber: 23541
    functionLinenumberEnd: 23720
    functionName: invalid_lambda_parameters_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_76_rule
    - lambda_param_no_default_rule
    - UNUSED
    - _loop0_72_rule
    - PyThreadState_Get
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _tmp_130_rule
    - invalid_lambda_parameters_helper_rule
    - D
    - _gather_132_rule
    - PyErr_Occurred
    - fprintf
    - _tmp_133_rule
    - _Pypegen_stack_overflow
    - lambda_slash_no_default_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_lambda_parameters_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:23763,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23763,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23764,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23777,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23777,1
    - Dst: lambda_slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:23780,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23783,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23783,1
    - Dst: _PyPegen_singleton_seq
      Src: /src/cpython/Parser/parser.c:23784,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23785,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23793,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23793,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23801,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23801,1
    - Dst: _loop1_75_rule
      Src: /src/cpython/Parser/parser.c:23804,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23807,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23807,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23812,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23812,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23819
      start: 23760
    functionDepth: 2
    functionLinenumber: 23760
    functionLinenumberEnd: 23819
    functionName: invalid_lambda_parameters_helper_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_75_rule
    - lambda_slash_with_default_rule
    - _PyPegen_singleton_seq
    - PyThreadState_Get
    - D
    - PyErr_Occurred
    - fprintf
    - _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:23828,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23828,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23829,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23842,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23842,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23846,1
    - Dst: _tmp_134_rule
      Src: /src/cpython/Parser/parser.c:23848,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23851,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23851,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:23852,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23853,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23861,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23861,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23869,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23869,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23874,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23876,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23878,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23881,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23881,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23882,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23883,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23891,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23891,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23899,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23899,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23906,1
    - Dst: _tmp_135_rule
      Src: /src/cpython/Parser/parser.c:23908,1
    - Dst: _loop0_76_rule
      Src: /src/cpython/Parser/parser.c:23910,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23912,1
    - Dst: _tmp_135_rule
      Src: /src/cpython/Parser/parser.c:23914,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23917,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23917,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23918,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23919,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23927,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23934
      start: 23825
    functionDepth: 2
    functionLinenumber: 23825
    functionLinenumberEnd: 23934
    functionName: invalid_lambda_star_etc_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_76_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - lambda_param_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - _tmp_134_rule
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _tmp_135_rule
    - _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:23943,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:23943,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:23944,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23957,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23957,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23962,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23964,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23969,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:23970,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:23971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23979,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23979,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:23987,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:23987,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23993,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23995,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:23997,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:23999,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24002,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24002,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24003,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24004,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24012,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24012,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24020,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24020,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24026,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:24028,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24030,1
    - Dst: _tmp_129_rule
      Src: /src/cpython/Parser/parser.c:24032,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24035,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24035,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24036,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24037,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24045,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24052
      start: 23940
    functionDepth: 2
    functionLinenumber: 23940
    functionLinenumberEnd: 24052
    functionName: invalid_lambda_kwds_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_129_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - lambda_param_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - _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:24058,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24058,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24059,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24072,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24072,1
    - Dst: _PyPegen_expect_token
      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: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24087,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24090,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24090,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24091,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24092,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24100,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24100,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24107
      start: 24055
    functionDepth: 1
    functionLinenumber: 24055
    functionLinenumberEnd: 24107
    functionName: invalid_double_type_comments_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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: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: expression_rule
      Src: /src/cpython/Parser/parser.c:24132,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24134,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24136,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:24138,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24141,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24141,1
    - Dst: RAISE_SYNTAX_ERROR_INVALID_TARGET
      Src: /src/cpython/Parser/parser.c:24142,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24143,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24151,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24151,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24158
      start: 24110
    functionDepth: 2
    functionLinenumber: 24110
    functionLinenumberEnd: 24158
    functionName: invalid_with_item_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - RAISE_SYNTAX_ERROR_INVALID_TARGET
    - PyErr_Occurred
    - fprintf
    - _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:24164,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24164,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24165,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24178,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24178,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24181,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24184,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24186,1
    - Dst: _tmp_136_rule
      Src: /src/cpython/Parser/parser.c:24188,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24190,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24193,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24193,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24194,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24195,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24203,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24210
      start: 24161
    functionDepth: 1
    functionLinenumber: 24161
    functionLinenumberEnd: 24210
    functionName: invalid_for_if_clause_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - _tmp_136_rule
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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:24216,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24216,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24217,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24230,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24230,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24233,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24236,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24238,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:24240,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24243,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24243,1
    - Dst: RAISE_SYNTAX_ERROR_INVALID_TARGET
      Src: /src/cpython/Parser/parser.c:24244,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24245,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24253,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24253,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24260
      start: 24213
    functionDepth: 2
    functionLinenumber: 24213
    functionLinenumberEnd: 24260
    functionName: invalid_for_target_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_expect_token
    - star_expressions_rule
    - D
    - RAISE_SYNTAX_ERROR_INVALID_TARGET
    - PyErr_Occurred
    - fprintf
    - _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:24266,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24266,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24267,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24280,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24280,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24285,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:24287,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24289,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24292,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24292,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24293,1
    - Dst: PyErr_Occurred
      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: D
      Src: /src/cpython/Parser/parser.c:24310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24310,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24316,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24318,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24320,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24322,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24325,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24325,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24326,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24327,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24335,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24335,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24342
      start: 24263
    functionDepth: 3
    functionLinenumber: 24263
    functionLinenumberEnd: 24342
    functionName: invalid_group_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - starred_expression_rule
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - _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:24348,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24348,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24349,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24362,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24362,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24368,1
    - Dst: _gather_138_rule
      Src: /src/cpython/Parser/parser.c:24370,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24372,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:24374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24377,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24377,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:24378,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24379,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24387,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24395,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24395,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24399,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24401,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24404,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24404,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:24405,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24406,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24414,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24414,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24421
      start: 24345
    functionDepth: 2
    functionLinenumber: 24345
    functionLinenumberEnd: 24421
    functionName: invalid_import_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_138_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - dotted_name_rule
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - _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:24427,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24427,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24428,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24441,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24441,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:24446,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24448,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:24450,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24452,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24455,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24455,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24456,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:24456,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24457,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24465,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24465,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24472
      start: 24424
    functionDepth: 2
    functionLinenumber: 24424
    functionLinenumberEnd: 24472
    functionName: invalid_dotted_as_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - dotted_name_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - _PyPegen_get_expr_name
    - PyErr_Occurred
    - fprintf
    - _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:24478,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24478,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24479,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24492,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24492,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:24497,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24499,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:24501,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24503,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24506,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24506,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24507,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:24507,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24508,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24516,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24516,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24523
      start: 24475
    functionDepth: 2
    functionLinenumber: 24475
    functionLinenumberEnd: 24523
    functionName: invalid_import_from_as_name_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - _PyPegen_get_expr_name
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:24529,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24529,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24530,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24543,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24543,1
    - Dst: import_from_as_names_rule
      Src: /src/cpython/Parser/parser.c:24548,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24550,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24552,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24555,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24556,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24557,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24565,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24565,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24573,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24573,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24576,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24579,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:24580,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24581,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24589,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24589,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24596
      start: 24526
    functionDepth: 2
    functionLinenumber: 24526
    functionLinenumberEnd: 24596
    functionName: invalid_import_from_targets_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - import_from_as_names_rule
    - RAISE_SYNTAX_ERROR
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_import_from_targets_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:24605,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24605,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24619,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24619,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24624,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24627,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24629,1
    - Dst: _gather_141_rule
      Src: /src/cpython/Parser/parser.c:24631,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24633,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24638,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24638,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:24639,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24640,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24648,1
    - Dst: fprintf
      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: UNUSED
      Src: /src/cpython/Parser/parser.c:24660,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24663,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24665,1
    - Dst: _gather_141_rule
      Src: /src/cpython/Parser/parser.c:24667,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24669,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24672,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24672,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24673,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24674,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24682,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24682,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24690,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24690,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24696,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24698,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24701,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: _gather_143_rule
      Src: /src/cpython/Parser/parser.c:24707,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24709,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24711,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24713,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24717,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24718,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24726,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24726,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 68
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24728
      start: 24602
    functionDepth: 1
    functionLinenumber: 24602
    functionLinenumberEnd: 24728
    functionName: invalid_with_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_141_rule
    - UNUSED
    - _gather_143_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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: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: UNUSED
      Src: /src/cpython/Parser/parser.c:24759,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24763,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24765,1
    - Dst: _gather_141_rule
      Src: /src/cpython/Parser/parser.c:24767,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24769,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24771,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24773,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:24777,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24786,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24786,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24788
      start: 24738
    functionDepth: 1
    functionLinenumber: 24738
    functionLinenumberEnd: 24788
    functionName: invalid_with_stmt_indent_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _gather_141_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - _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:24852,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:24852,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:24853,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24866,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24866,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24871,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24873,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24875,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:24877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24880,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24880,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:24881,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24882,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24890,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24890,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24898,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24898,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24903,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24905,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:24907,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:24909,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24912,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24912,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:24913,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24914,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24922,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24922,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24930,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24930,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24937,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24942,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24944,1
    - Dst: _loop0_145_rule
      Src: /src/cpython/Parser/parser.c:24946,1
    - Dst: _loop1_36_rule
      Src: /src/cpython/Parser/parser.c:24948,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24950,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24952,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:24954,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:24956,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24958,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24961,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24961,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:24962,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:24963,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24971,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:24979,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:24979,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:24986,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24989,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24991,1
    - Dst: _loop0_145_rule
      Src: /src/cpython/Parser/parser.c:24993,1
    - Dst: _loop1_37_rule
      Src: /src/cpython/Parser/parser.c:24995,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:24997,1
    - Dst: _tmp_146_rule
      Src: /src/cpython/Parser/parser.c:24999,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25001,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25004,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:25005,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25006,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25014,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25014,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 91
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25021
      start: 24849
    functionDepth: 3
    functionLinenumber: 24849
    functionLinenumberEnd: 25021
    functionName: invalid_try_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _PyPegen_lookahead
    - _loop1_36_rule
    - expression_rule
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - block_rule
    - _tmp_146_rule
    - _Pypegen_stack_overflow
    - _PyPegen_lookahead_with_int
    - RAISE_SYNTAX_ERROR
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_145_rule
    - _tmp_21_rule
    - UNUSED
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _loop1_37_rule
    - D
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_try_stmt_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25031,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25031,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25032,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25045,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25054,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25056,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25058,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:25060,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25062,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:25064,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25066,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25069,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25069,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:25070,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25071,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25079,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25079,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25087,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25087,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25089,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25094,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25096,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:25098,1
    - Dst: _PyPegen_expect_token
      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_SYNTAX_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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25121,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25121,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25125,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25127,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25130,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25130,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25131,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25132,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25140,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25140,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25148,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25148,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25156,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25158,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25160,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25162,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25164,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:25166,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25169,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:25170,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:25170,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25171,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25179,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25179,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 90
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25186
      start: 25028
    functionDepth: 3
    functionLinenumber: 25028
    functionLinenumberEnd: 25186
    functionName: invalid_except_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_21_rule
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - expressions_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - _PyPegen_get_expr_name
    - PyErr_Occurred
    - block_rule
    - fprintf
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - RAISE_SYNTAX_ERROR
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_except_stmt_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25196,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25196,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25197,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25210,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25210,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25220,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25222,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25224,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25226,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:25228,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25230,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:25232,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25234,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25237,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25237,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:25238,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25239,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25247,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25247,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25255,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25255,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25258,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25263,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25265,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25267,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:25269,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25271,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25274,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25274,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25275,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25276,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25284,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25284,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25292,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25292,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25297,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25299,1
    - Dst: _tmp_147_rule
      Src: /src/cpython/Parser/parser.c:25301,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25304,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25305,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25306,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25314,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25314,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25322,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25331,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25333,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25335,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25337,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25339,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25341,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:25343,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25346,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25346,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:25347,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:25347,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25348,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25356,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25356,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 90
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25363
      start: 25193
    functionDepth: 3
    functionLinenumber: 25193
    functionLinenumberEnd: 25363
    functionName: invalid_except_star_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_21_rule
    - _tmp_147_rule
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - expressions_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - _PyPegen_get_expr_name
    - PyErr_Occurred
    - block_rule
    - fprintf
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - RAISE_SYNTAX_ERROR
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:25369,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25369,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25370,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25383,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25383,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25388,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25390,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25392,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25394,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25397,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25397,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25398,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25399,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25407,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25407,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25414
      start: 25366
    functionDepth: 1
    functionLinenumber: 25366
    functionLinenumberEnd: 25414
    functionName: invalid_finally_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - _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:25422,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25422,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25423,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25436,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25436,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25439,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25444,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25446,1
    - Dst: _tmp_21_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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25475,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25475,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25480,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25482,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25484,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25486,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25489,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25489,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25490,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25491,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25499,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25499,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25506
      start: 25419
    functionDepth: 2
    functionLinenumber: 25419
    functionLinenumberEnd: 25506
    functionName: invalid_except_stmt_indent_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_21_rule
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - _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:25513,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25513,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25514,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25527,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25527,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25531,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25536,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25538,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25540,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:25542,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25544,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25546,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25548,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25551,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25552,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25553,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25561,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25561,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25568
      start: 25510
    functionDepth: 2
    functionLinenumber: 25510
    functionLinenumberEnd: 25568
    functionName: invalid_except_star_stmt_indent_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_21_rule
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_except_star_stmt_indent_rule(Parser *p)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25577,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25577,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25578,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25591,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25591,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25596,1
    - Dst: subject_expr_rule
      Src: /src/cpython/Parser/parser.c:25598,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25600,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25603,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25603,1
    - Dst: CHECK_VERSION
      Src: /src/cpython/Parser/parser.c:25604,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25621,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25621,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25627,1
    - Dst: subject_expr_rule
      Src: /src/cpython/Parser/parser.c:25629,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25631,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25633,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25638,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25638,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25639,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25640,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25648,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25648,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25656,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25656,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25658,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25664,1
    - Dst: patterns_rule
      Src: /src/cpython/Parser/parser.c:25666,1
    - Dst: guard_rule
      Src: /src/cpython/Parser/parser.c:25668,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25670,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:25672,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25675,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25675,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:25676,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25677,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25685,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25685,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25692
      start: 25574
    functionDepth: 3
    functionLinenumber: 25574
    functionLinenumberEnd: 25692
    functionName: invalid_match_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - CHECK_VERSION
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - guard_rule
    - D
    - RAISE_INDENTATION_ERROR
    - subject_expr_rule
    - PyErr_Occurred
    - block_rule
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _Pypegen_stack_overflow
    - patterns_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_match_stmt_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25700,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25700,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25701,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25714,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25714,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25717,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25721,1
    - Dst: patterns_rule
      Src: /src/cpython/Parser/parser.c:25723,1
    - Dst: guard_rule
      Src: /src/cpython/Parser/parser.c:25725,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25730,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:25731,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25732,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25740,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25740,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25748,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25748,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25751,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25756,1
    - Dst: patterns_rule
      Src: /src/cpython/Parser/parser.c:25758,1
    - Dst: guard_rule
      Src: /src/cpython/Parser/parser.c:25760,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25762,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25764,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:25766,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25769,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25769,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:25770,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25771,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25779,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25779,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25786
      start: 25697
    functionDepth: 2
    functionLinenumber: 25697
    functionLinenumberEnd: 25786
    functionName: invalid_case_block_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - guard_rule
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _Pypegen_stack_overflow
    - patterns_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_case_block_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25792,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25792,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25793,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25806,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25806,1
    - Dst: or_pattern_rule
      Src: /src/cpython/Parser/parser.c:25811,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25813,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:25815,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25818,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25818,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:25819,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25820,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25828,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25828,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25836,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25836,1
    - Dst: or_pattern_rule
      Src: /src/cpython/Parser/parser.c:25841,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25843,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:25845,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25848,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:25849,1
    - Dst: _PyPegen_get_expr_name
      Src: /src/cpython/Parser/parser.c:25849,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25850,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25858,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25858,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25865
      start: 25789
    functionDepth: 2
    functionLinenumber: 25789
    functionLinenumberEnd: 25865
    functionName: invalid_as_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - _PyPegen_get_expr_name
    - PyErr_Occurred
    - or_pattern_rule
    - fprintf
    - _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:25871,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25871,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25872,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25885,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25885,1
    - Dst: name_or_attr_rule
      Src: /src/cpython/Parser/parser.c:25890,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25892,1
    - Dst: invalid_class_argument_pattern_rule
      Src: /src/cpython/Parser/parser.c:25894,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25897,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25897,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:25898,1
    - Dst: PyPegen_first_item
      Src: /src/cpython/Parser/parser.c:25898,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:25898,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25899,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25907,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25907,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25914
      start: 25868
    functionDepth: 3
    functionLinenumber: 25868
    functionLinenumberEnd: 25914
    functionName: invalid_class_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyPegen_first_item
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _PyPegen_expect_token
    - name_or_attr_rule
    - D
    - PyPegen_last_item
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - invalid_class_argument_pattern_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_class_pattern_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25921,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25921,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25922,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25935,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25935,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25940,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:25942,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25946,1
    - Dst: _tmp_148_rule
      Src: /src/cpython/Parser/parser.c:25948,1
    - Dst: double_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:25950,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25952,1
    - Dst: items_pattern_rule
      Src: /src/cpython/Parser/parser.c:25954,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25956,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:25958,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:25962,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:25963,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25971,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25971,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25973
      start: 25918
    functionDepth: 3
    functionLinenumber: 25918
    functionLinenumberEnd: 25973
    functionName: invalid_mapping_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_148_rule
    - items_pattern_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - double_star_pattern_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_mapping_pattern_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:25985,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:25985,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:25986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:25999,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:25999,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26002,1
    - Dst: _tmp_149_rule
      Src: /src/cpython/Parser/parser.c:26006,1
    - Dst: keyword_patterns_rule
      Src: /src/cpython/Parser/parser.c:26008,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26010,1
    - Dst: positional_patterns_rule
      Src: /src/cpython/Parser/parser.c:26012,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26015,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26015,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26017,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26025,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26025,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26032
      start: 25982
    functionDepth: 2
    functionLinenumber: 25982
    functionLinenumberEnd: 26032
    functionName: invalid_class_argument_pattern_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - keyword_patterns_rule
    - UNUSED
    - _tmp_149_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - positional_patterns_rule
    - PyErr_Occurred
    - fprintf
    - _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:26040,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26040,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26041,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26054,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26054,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26059,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:26061,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26066,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26066,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:26067,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26068,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26076,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26076,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26084,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26084,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26090,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:26092,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26094,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26096,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:26098,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26101,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26101,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:26102,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26103,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26111,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26111,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26118
      start: 26037
    functionDepth: 4
    functionLinenumber: 26037
    functionLinenumberEnd: 26118
    functionName: invalid_if_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - named_expression_rule
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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:26126,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26126,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26127,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26140,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26140,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26145,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:26147,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26152,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26152,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:26153,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26154,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26162,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26162,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26170,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26176,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:26178,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26180,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26182,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:26184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26187,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:26188,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26189,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26197,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26197,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26204
      start: 26123
    functionDepth: 4
    functionLinenumber: 26123
    functionLinenumberEnd: 26204
    functionName: invalid_elif_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - named_expression_rule
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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:26210,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26210,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26211,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26224,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26224,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26229,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26231,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26233,1
    - Dst: _PyPegen_lookahead_with_int
      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_INDENTATION_ERROR
      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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26256,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26256,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26262,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26264,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:26266,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26268,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26271,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26271,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:26272,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26273,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26281,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26281,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26288
      start: 26207
    functionDepth: 3
    functionLinenumber: 26207
    functionLinenumberEnd: 26288
    functionName: invalid_else_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - block_rule
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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:26296,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26296,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26297,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26310,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26315,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:26317,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26319,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26322,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:26323,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26324,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26332,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26332,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26340,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26340,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26346,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:26348,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26350,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26352,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:26354,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26357,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26357,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:26358,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26359,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26367,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26367,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26374
      start: 26293
    functionDepth: 4
    functionLinenumber: 26293
    functionLinenumberEnd: 26374
    functionName: invalid_while_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - named_expression_rule
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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:26382,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26382,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26383,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26396,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26396,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26400,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26405,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26407,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:26409,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26411,1
    - Dst: star_expressions_rule
      Src: /src/cpython/Parser/parser.c:26413,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26415,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:26419,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26420,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26428,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26428,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26430
      start: 26379
    functionDepth: 2
    functionLinenumber: 26379
    functionLinenumberEnd: 26430
    functionName: invalid_for_stmt_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - star_targets_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_expect_token
    - star_expressions_rule
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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:26488,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26488,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26489,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26502,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26502,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26507,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26509,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26511,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26513,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26518,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26520,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:26522,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:26524,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26526,1
    - Dst: params_rule
      Src: /src/cpython/Parser/parser.c:26528,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26530,1
    - Dst: _tmp_26_rule
      Src: /src/cpython/Parser/parser.c:26532,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26534,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26536,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:26538,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/parser.c:26542,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26543,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26551,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26551,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26553
      start: 26485
    functionDepth: 2
    functionLinenumber: 26485
    functionLinenumberEnd: 26553
    functionName: invalid_def_raw_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - params_rule
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - type_params_rule
    - _tmp_26_rule
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_def_raw_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26620,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26620,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26621,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26634,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26634,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26637,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26639,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26643,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:26645,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:26647,1
    - Dst: _tmp_25_rule
      Src: /src/cpython/Parser/parser.c:26649,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26651,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26654,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26654,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:26655,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26656,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26664,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26664,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26672,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26672,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26675,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26677,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26682,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:26684,1
    - Dst: type_params_rule
      Src: /src/cpython/Parser/parser.c:26686,1
    - Dst: _tmp_25_rule
      Src: /src/cpython/Parser/parser.c:26688,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26690,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26692,1
    - Dst: _PyPegen_lookahead_with_int
      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_INDENTATION_ERROR
      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
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26714
      start: 26617
    functionDepth: 2
    functionLinenumber: 26617
    functionLinenumberEnd: 26714
    functionName: invalid_class_def_raw_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - D
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - fprintf
    - type_params_rule
    - RAISE_SYNTAX_ERROR
    - _tmp_25_rule
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_class_def_raw_rule(Parser *p)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26723,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26723,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26724,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26737,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26737,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:26739,1
    - Dst: invalid_kvpair_unpacking_rule
      Src: /src/cpython/Parser/parser.c:26742,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26744,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26747,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26747,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:26748,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26752,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26760,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26760,1
    - Dst: _gather_86_rule
      Src: /src/cpython/Parser/parser.c:26765,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26767,1
    - Dst: _tmp_150_rule
      Src: /src/cpython/Parser/parser.c:26769,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26772,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26772,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:26773,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26777,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26777,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26785,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26785,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26789,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26791,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:26793,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26796,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26796,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:26797,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26798,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26806,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26806,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26813
      start: 26720
    functionDepth: 2
    functionLinenumber: 26720
    functionLinenumberEnd: 26813
    functionName: invalid_double_starred_kvpairs_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - _PyPegen_dummy_name
    - UNUSED
    - _gather_86_rule
    - PyThreadState_Get
    - expression_rule
    - _PyPegen_expect_token
    - invalid_kvpair_unpacking_rule
    - _tmp_150_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_double_starred_kvpairs_rule(Parser *p)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:26824,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:26824,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:26825,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26838,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26838,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26842,1
    - Dst: if_expression_rule
      Src: /src/cpython/Parser/parser.c:26844,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26847,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26847,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:26848,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26849,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26857,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26865,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26865,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26871,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:26873,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26875,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26877,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26880,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26880,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:26881,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26882,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26890,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26890,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26898,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26898,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26904,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:26906,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26908,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26910,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26913,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26913,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:26914,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26915,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26923,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26923,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26931,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26931,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26937,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26939,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26941,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:26943,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26946,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26946,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:26947,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26948,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26956,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26956,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26964,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26964,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:26970,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26972,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:26974,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:26976,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26979,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26979,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:26980,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:26981,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:26989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:26989,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 108
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26996
      start: 26821
    functionDepth: 3
    functionLinenumber: 26821
    functionLinenumberEnd: 26996
    functionName: invalid_kvpair_unpacking_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - if_expression_rule
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_kvpair_unpacking_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27006,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27006,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27020,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27020,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:27023,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:27025,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27028,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27028,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27029,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27030,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27038,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27038,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27046,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27046,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:27052,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27054,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27056,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:27058,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27061,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27061,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:27062,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27071,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27071,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27079,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27079,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:27085,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27087,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27089,1
    - Dst: bitwise_or_rule
      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: RAISE_SYNTAX_ERROR_STARTING_FROM
      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
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27112,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27112,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:27116,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27118,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27120,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27123,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27123,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27124,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27125,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27133,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27133,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27140
      start: 27003
    functionDepth: 2
    functionLinenumber: 27003
    functionLinenumberEnd: 27140
    functionName: invalid_kvpair_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _PyPegen_expect_token
    - bitwise_or_rule
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - _Pypegen_stack_overflow
    - RAISE_ERROR_KNOWN_LOCATION
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_kvpair_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27146,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27146,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27147,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27160,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27160,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27164,1
    - Dst: if_expression_rule
      Src: /src/cpython/Parser/parser.c:27166,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27169,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:27170,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27171,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27179,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27179,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27187,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27193,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:27195,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27197,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:27199,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27202,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:27203,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27204,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27212,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27212,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27219
      start: 27143
    functionDepth: 3
    functionLinenumber: 27143
    functionLinenumberEnd: 27219
    functionName: invalid_starred_expression_unpacking_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - if_expression_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_starred_expression_unpacking_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27227,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27227,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27228,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27241,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27245,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:27247,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27250,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27250,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27251,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27252,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27260,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27260,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27268,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27268,1
    - Dst: invalid_starred_expression_unpacking_rule
      Src: /src/cpython/Parser/parser.c:27271,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27274,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27274,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27279,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27279,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27286
      start: 27224
    functionDepth: 4
    functionLinenumber: 27224
    functionLinenumberEnd: 27286
    functionName: invalid_starred_expression_unpacking_sequence_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - D
    - PyErr_Occurred
    - fprintf
    - invalid_starred_expression_unpacking_rule
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      invalid_starred_expression_unpacking_sequence_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:27292,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27292,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27306,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27306,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27309,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27312,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27312,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/parser.c:27313,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27314,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27322,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27329
      start: 27289
    functionDepth: 1
    functionLinenumber: 27289
    functionLinenumberEnd: 27329
    functionName: invalid_starred_expression_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR
    - _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:27346,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27346,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27360,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27364,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27366,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27369,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27369,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27370,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27371,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27379,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27379,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27387,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27391,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27393,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27396,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27396,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27397,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27398,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27406,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27406,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27414,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27414,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27418,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27420,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27423,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27423,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27424,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27425,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27433,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27433,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27441,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27441,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27445,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27447,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27450,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27451,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27452,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27460,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27460,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27468,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27468,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27471,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:27473,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27476,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27476,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27477,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27478,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27486,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27486,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27494,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27494,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27498,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27500,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27502,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27505,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27505,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27506,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27506,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27507,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27515,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27515,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27523,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27528,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27530,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27532,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27534,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27537,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27537,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27538,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27538,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27539,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27555,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27558,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27562,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27564,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27566,1
    - Dst: invalid_fstring_conversion_character_rule
      Src: /src/cpython/Parser/parser.c:27568,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27571,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27571,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:27572,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27576,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27576,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27584,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27584,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27587,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27589,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27592,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27594,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27596,1
    - Dst: _tmp_154_rule
      Src: /src/cpython/Parser/parser.c:27598,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27600,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27603,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27603,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27604,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27605,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27621,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27621,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27626,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27628,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27631,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27633,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27635,1
    - Dst: _tmp_154_rule
      Src: /src/cpython/Parser/parser.c:27637,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27639,1
    - Dst: _loop0_78_rule
      Src: /src/cpython/Parser/parser.c:27641,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:27643,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27646,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27646,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27647,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27647,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27648,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27656,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27656,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27664,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27664,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27667,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:27669,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27672,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27674,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27676,1
    - Dst: _tmp_154_rule
      Src: /src/cpython/Parser/parser.c:27678,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:27680,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27683,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27683,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27684,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27684,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27685,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27693,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27693,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 224
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27700
      start: 27343
    functionDepth: 2
    functionLinenumber: 27343
    functionLinenumberEnd: 27700
    functionName: invalid_fstring_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - annotated_rhs_rule
    - _PyPegen_lookahead
    - invalid_fstring_conversion_character_rule
    - UNUSED
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - _PyPegen_expect_token
    - _tmp_154_rule
    - _PyPegen_lookahead_with_int
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - _loop0_78_rule
    - D
    - _PyPegen_lookahead_for_expr
    - PyErr_Occurred
    - fprintf
    - _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:27706,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27706,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27707,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27720,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27720,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27723,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27725,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27728,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27728,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27729,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27730,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27738,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27738,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27746,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27746,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27749,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:27751,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27754,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27754,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27755,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27756,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27764,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27764,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27771
      start: 27703
    functionDepth: 1
    functionLinenumber: 27703
    functionLinenumberEnd: 27771
    functionName: invalid_fstring_conversion_character_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - _PyPegen_expect_token
    - D
    - _PyPegen_lookahead_for_expr
    - PyErr_Occurred
    - fprintf
    - _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:27788,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:27788,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:27789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27802,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27806,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27808,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27811,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27811,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27812,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27821,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27829,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27829,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27833,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: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27839,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27840,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27848,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27856,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27856,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27860,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27862,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27865,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27865,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27866,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27867,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27875,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27875,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27883,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27883,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27887,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27889,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27892,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27892,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/parser.c:27893,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27894,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27902,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27902,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27910,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27910,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27913,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:27915,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27918,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27918,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27919,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27920,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27928,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27928,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27936,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27936,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27940,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27942,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27944,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27947,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27947,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27948,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27948,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27949,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27957,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27957,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27965,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27965,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27970,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:27972,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:27974,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:27976,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27979,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27979,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27980,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:27980,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:27981,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27989,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:27997,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:27997,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:28000,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28004,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:28006,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28008,1
    - Dst: invalid_tstring_conversion_character_rule
      Src: /src/cpython/Parser/parser.c:28010,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28013,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28013,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:28014,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28018,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28018,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28026,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28026,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:28029,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:28031,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28034,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:28036,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28038,1
    - Dst: _tmp_154_rule
      Src: /src/cpython/Parser/parser.c:28040,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:28042,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28045,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28046,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:28046,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28047,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28055,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28055,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28063,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28063,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:28068,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:28070,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28073,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:28075,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28077,1
    - Dst: _tmp_154_rule
      Src: /src/cpython/Parser/parser.c:28079,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28081,1
    - Dst: _loop0_78_rule
      Src: /src/cpython/Parser/parser.c:28083,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:28085,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28088,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28088,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28089,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:28089,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28090,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28098,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28098,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28106,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28106,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:28109,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:28111,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28114,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:28116,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28118,1
    - Dst: _tmp_154_rule
      Src: /src/cpython/Parser/parser.c:28120,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:28122,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28125,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28125,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28126,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:28126,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28127,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28135,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28135,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 224
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28142
      start: 27785
    functionDepth: 2
    functionLinenumber: 27785
    functionLinenumberEnd: 28142
    functionName: invalid_tstring_replacement_field_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - annotated_rhs_rule
    - _PyPegen_lookahead
    - _PyPegen_dummy_name
    - UNUSED
    - PyThreadState_Get
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - _PyPegen_expect_token
    - _tmp_154_rule
    - _PyPegen_lookahead_with_int
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - invalid_tstring_conversion_character_rule
    - _loop0_78_rule
    - D
    - _PyPegen_lookahead_for_expr
    - PyErr_Occurred
    - fprintf
    - _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:28148,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28148,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28149,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28162,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28162,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28165,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:28167,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28170,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28170,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:28171,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28172,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28180,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28180,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28188,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28188,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28191,1
    - Dst: _PyPegen_lookahead_for_expr
      Src: /src/cpython/Parser/parser.c:28193,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28196,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28196,1
    - Dst: RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
      Src: /src/cpython/Parser/parser.c:28197,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28198,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28206,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28206,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28213
      start: 28145
    functionDepth: 1
    functionLinenumber: 28145
    functionLinenumberEnd: 28213
    functionName: invalid_tstring_conversion_character_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    - RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN
    - _PyPegen_expect_token
    - D
    - _PyPegen_lookahead_for_expr
    - PyErr_Occurred
    - fprintf
    - _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:28221,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28221,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28222,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28235,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28235,1
    - Dst: _loop1_82_rule
      Src: /src/cpython/Parser/parser.c:28239,1
    - Dst: tstring_rule
      Src: /src/cpython/Parser/parser.c:28241,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28244,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28244,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:28245,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:28245,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28246,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28254,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28254,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28262,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28262,1
    - Dst: _loop1_83_rule
      Src: /src/cpython/Parser/parser.c:28266,1
    - Dst: _tmp_156_rule
      Src: /src/cpython/Parser/parser.c:28268,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28271,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28271,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:28272,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/parser.c:28272,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28273,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28281,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28281,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28288
      start: 28218
    functionDepth: 2
    functionLinenumber: 28218
    functionLinenumberEnd: 28288
    functionName: invalid_string_tstring_concat_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop1_83_rule
    - _tmp_156_rule
    - _loop1_82_rule
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - D
    - tstring_rule
    - PyPegen_last_item
    - PyErr_Occurred
    - fprintf
    - _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:28294,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28294,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28295,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28308,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28308,1
    - Dst: sum_rule
      Src: /src/cpython/Parser/parser.c:28314,1
    - Dst: _tmp_157_rule
      Src: /src/cpython/Parser/parser.c:28316,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28318,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:28320,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28323,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28323,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:28324,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28325,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28333,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28333,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28340
      start: 28291
    functionDepth: 2
    functionLinenumber: 28291
    functionLinenumberEnd: 28340
    functionName: invalid_arithmetic_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - inversion_rule
    - sum_rule
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - _tmp_157_rule
    - PyErr_Occurred
    - fprintf
    - _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:28346,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28346,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28347,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28360,1
    - Dst: _tmp_158_rule
      Src: /src/cpython/Parser/parser.c:28365,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28367,1
    - Dst: factor_rule
      Src: /src/cpython/Parser/parser.c:28369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28372,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28372,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/parser.c:28373,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28382,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28389
      start: 28343
    functionDepth: 2
    functionLinenumber: 28343
    functionLinenumberEnd: 28389
    functionName: invalid_factor_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - PyThreadState_Get
    - _PyPegen_expect_token
    - factor_rule
    - D
    - _tmp_158_rule
    - PyErr_Occurred
    - fprintf
    - _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:28395,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28395,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28396,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28409,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28409,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28413,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28415,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28418,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28418,1
    - Dst: RAISE_SYNTAX_ERROR_STARTING_FROM
      Src: /src/cpython/Parser/parser.c:28419,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28420,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28428,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28428,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28435
      start: 28392
    functionDepth: 1
    functionLinenumber: 28392
    functionLinenumberEnd: 28435
    functionName: invalid_type_params_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - RAISE_SYNTAX_ERROR_STARTING_FROM
    - _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:28441,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28441,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28442,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28450,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28453,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28464,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28464,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28467,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28473,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28475,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28487,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28487,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28490,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28492,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28494,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28498,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28499,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28502
      start: 28438
    functionDepth: 2
    functionLinenumber: 28438
    functionLinenumberEnd: 28502
    functionName: _loop0_1_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:28508,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28508,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28509,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28517,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28531,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28531,1
    - Dst: statement_rule
      Src: /src/cpython/Parser/parser.c:28534,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28540,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28542,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28544,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28554,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28554,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28558,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28562,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28564,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28566,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28570,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28571,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28574
      start: 28505
    functionDepth: 2
    functionLinenumber: 28505
    functionLinenumberEnd: 28574
    functionName: _loop1_2_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - statement_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:28580,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28580,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28581,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:28589,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28592,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28603,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28603,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28607,1
    - Dst: simple_stmt_rule
      Src: /src/cpython/Parser/parser.c:28609,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:28613,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28615,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:28621,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28623,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28625,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28635,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28635,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:28638,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28640,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:28642,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:28646,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:28647,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28650
      start: 28577
    functionDepth: 2
    functionLinenumber: 28577
    functionLinenumberEnd: 28650
    functionName: _loop0_3_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - simple_stmt_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:28656,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28656,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28657,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28670,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28670,1
    - Dst: simple_stmt_rule
      Src: /src/cpython/Parser/parser.c:28674,1
    - Dst: _loop0_3_rule
      Src: /src/cpython/Parser/parser.c:28676,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28679,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28679,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:28680,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28684,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28684,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28691
      start: 28653
    functionDepth: 3
    functionLinenumber: 28653
    functionLinenumberEnd: 28691
    functionName: _gather_4_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _loop0_3_rule
    - PyThreadState_Get
    - simple_stmt_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_4_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:28697,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28697,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28698,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28711,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28711,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28714,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28717,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28717,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28722,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28722,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28730,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28733,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28736,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28736,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28741,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28741,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28749,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28749,1
    - Dst: _PyPegen_expect_soft_keyword
      Src: /src/cpython/Parser/parser.c:28752,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28755,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28755,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28760,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28760,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28767
      start: 28694
    functionDepth: 1
    functionLinenumber: 28694
    functionLinenumberEnd: 28767
    functionName: _tmp_5_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _PyPegen_expect_soft_keyword
    - D
    - fprintf
    - _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:28773,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28773,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28774,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28787,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28787,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28790,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28793,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28793,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28798,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28798,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28806,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28806,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28809,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28812,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28812,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28817,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28825,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28825,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28828,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28831,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28831,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28836,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28836,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28843
      start: 28770
    functionDepth: 1
    functionLinenumber: 28770
    functionLinenumberEnd: 28843
    functionName: _tmp_6_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:28849,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28849,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28850,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28863,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28863,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28866,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28869,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28869,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28874,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28874,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28882,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28882,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28885,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28888,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28888,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28893,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28893,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28900
      start: 28846
    functionDepth: 1
    functionLinenumber: 28846
    functionLinenumberEnd: 28900
    functionName: _tmp_7_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:28906,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28906,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28907,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28920,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28920,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28923,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28926,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28926,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28931,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28931,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28939,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28939,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28942,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28945,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28945,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28950,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28950,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28957
      start: 28903
    functionDepth: 1
    functionLinenumber: 28903
    functionLinenumberEnd: 28957
    functionName: _tmp_8_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:28963,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:28963,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:28964,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28977,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28977,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28980,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28983,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28983,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28988,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28988,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:28996,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:28996,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:28999,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29002,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29002,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29007,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29007,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29014
      start: 28960
    functionDepth: 1
    functionLinenumber: 28960
    functionLinenumberEnd: 29014
    functionName: _tmp_9_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:29020,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29020,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29021,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29034,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29034,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29038,1
    - Dst: annotated_rhs_rule
      Src: /src/cpython/Parser/parser.c:29040,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29043,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29043,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29045,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29053,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29053,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29060
      start: 29017
    functionDepth: 2
    functionLinenumber: 29017
    functionLinenumberEnd: 29060
    functionName: _tmp_10_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - annotated_rhs_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:29066,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29066,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29067,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29080,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29080,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29085,1
    - Dst: single_target_rule
      Src: /src/cpython/Parser/parser.c:29087,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29089,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29092,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29092,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29094,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29102,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29102,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29110,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29110,1
    - Dst: single_subscript_attribute_target_rule
      Src: /src/cpython/Parser/parser.c:29113,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29116,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29116,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29121,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29121,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29128
      start: 29063
    functionDepth: 3
    functionLinenumber: 29063
    functionLinenumberEnd: 29128
    functionName: _tmp_11_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - single_subscript_attribute_target_rule
    - _PyPegen_expect_token
    - single_target_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:29134,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29134,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29135,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29143,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29146,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29157,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29157,1
    - Dst: _tmp_159_rule
      Src: /src/cpython/Parser/parser.c:29160,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29166,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29168,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29170,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29180,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29180,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29184,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29188,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29190,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29192,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29196,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29197,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29200
      start: 29131
    functionDepth: 2
    functionLinenumber: 29131
    functionLinenumberEnd: 29200
    functionName: _loop1_12_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _tmp_159_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:29206,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29206,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29207,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29215,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29218,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29229,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29233,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:29235,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29239,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29241,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29247,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29249,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29251,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29261,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29261,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29264,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29266,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29268,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29272,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29273,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29276
      start: 29203
    functionDepth: 2
    functionLinenumber: 29203
    functionLinenumberEnd: 29276
    functionName: _loop0_13_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:29282,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29282,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29283,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29296,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29296,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:29300,1
    - Dst: _loop0_13_rule
      Src: /src/cpython/Parser/parser.c:29302,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29305,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29305,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:29306,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29310,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29317
      start: 29279
    functionDepth: 3
    functionLinenumber: 29279
    functionLinenumberEnd: 29317
    functionName: _gather_14_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - D
    - fprintf
    - _loop0_13_rule
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    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:29323,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29323,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29324,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29337,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29337,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29340,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29343,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29343,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29348,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29348,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29356,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29356,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29359,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29362,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29367,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29367,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29374
      start: 29320
    functionDepth: 1
    functionLinenumber: 29320
    functionLinenumberEnd: 29374
    functionName: _tmp_15_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:29380,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29380,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29381,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29394,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29394,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29398,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:29400,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29403,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29403,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29405,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29413,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29413,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29420
      start: 29377
    functionDepth: 2
    functionLinenumber: 29377
    functionLinenumberEnd: 29420
    functionName: _tmp_16_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:29426,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29426,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29427,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29435,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29438,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29449,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29449,1
    - Dst: _tmp_160_rule
      Src: /src/cpython/Parser/parser.c:29452,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29458,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29460,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29462,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29472,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29472,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29475,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29477,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29479,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29483,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29484,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29487
      start: 29423
    functionDepth: 2
    functionLinenumber: 29423
    functionLinenumberEnd: 29487
    functionName: _loop0_17_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - _tmp_160_rule
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:29493,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29493,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29494,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29502,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29505,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29516,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29516,1
    - Dst: _tmp_160_rule
      Src: /src/cpython/Parser/parser.c:29519,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29525,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29527,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29529,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29539,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29539,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29543,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29547,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29549,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29551,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29555,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29556,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29559
      start: 29490
    functionDepth: 2
    functionLinenumber: 29490
    functionLinenumberEnd: 29559
    functionName: _loop1_18_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - _tmp_160_rule
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:29565,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29565,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29566,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29574,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29577,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29588,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29588,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29592,1
    - Dst: import_from_as_name_rule
      Src: /src/cpython/Parser/parser.c:29594,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29598,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29600,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29606,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29608,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29610,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29620,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29620,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29623,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29625,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29627,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29631,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29632,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29635
      start: 29562
    functionDepth: 2
    functionLinenumber: 29562
    functionLinenumberEnd: 29635
    functionName: _loop0_19_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - import_from_as_name_rule
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:29641,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29641,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29642,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29655,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29655,1
    - Dst: import_from_as_name_rule
      Src: /src/cpython/Parser/parser.c:29659,1
    - Dst: _loop0_19_rule
      Src: /src/cpython/Parser/parser.c:29661,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29664,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29664,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:29665,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29669,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29669,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29676
      start: 29638
    functionDepth: 3
    functionLinenumber: 29638
    functionLinenumberEnd: 29676
    functionName: _gather_20_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - import_from_as_name_rule
    - PyThreadState_Get
    - _loop0_19_rule
    - D
    - fprintf
    - _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:29682,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29682,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29683,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29696,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29696,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29700,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:29702,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29705,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29705,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29707,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29715,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29722
      start: 29679
    functionDepth: 1
    functionLinenumber: 29679
    functionLinenumberEnd: 29722
    functionName: _tmp_21_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 7
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_21_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:29728,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29728,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29729,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29737,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29740,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29751,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29751,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29755,1
    - Dst: dotted_as_name_rule
      Src: /src/cpython/Parser/parser.c:29757,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29761,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29763,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29769,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29771,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29773,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29783,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29783,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29786,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29788,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29790,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29794,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29795,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29798
      start: 29725
    functionDepth: 2
    functionLinenumber: 29725
    functionLinenumberEnd: 29798
    functionName: _loop0_22_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - dotted_as_name_rule
    - _PyPegen_expect_token
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:29804,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29804,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29805,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29818,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29818,1
    - Dst: dotted_as_name_rule
      Src: /src/cpython/Parser/parser.c:29822,1
    - Dst: _loop0_22_rule
      Src: /src/cpython/Parser/parser.c:29824,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29827,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29827,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:29828,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29832,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29832,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29839
      start: 29801
    functionDepth: 3
    functionLinenumber: 29801
    functionLinenumberEnd: 29839
    functionName: _gather_23_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _loop0_22_rule
    - PyThreadState_Get
    - dotted_as_name_rule
    - D
    - fprintf
    - _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:29845,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29845,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29846,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:29854,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29868,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29868,1
    - Dst: _tmp_161_rule
      Src: /src/cpython/Parser/parser.c:29871,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:29877,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29879,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29881,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29891,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29891,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29895,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:29899,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29901,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:29903,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:29907,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:29908,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29911
      start: 29842
    functionDepth: 2
    functionLinenumber: 29842
    functionLinenumberEnd: 29911
    functionName: _loop1_24_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _tmp_161_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:29917,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29917,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29918,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29931,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29931,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29936,1
    - Dst: arguments_rule
      Src: /src/cpython/Parser/parser.c:29938,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29940,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29943,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29943,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29945,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29953,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29953,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29960
      start: 29914
    functionDepth: 2
    functionLinenumber: 29914
    functionLinenumberEnd: 29960
    functionName: _tmp_25_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - arguments_rule
    - fprintf
    - _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:29966,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:29966,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:29967,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29980,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29980,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:29984,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:29986,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29989,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29989,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:29991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:29999,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:29999,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30006
      start: 29963
    functionDepth: 2
    functionLinenumber: 29963
    functionLinenumberEnd: 30006
    functionName: _tmp_26_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _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:30012,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30012,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30013,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30021,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30024,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30035,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30035,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:30038,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30044,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30046,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30048,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30058,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30058,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30061,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30063,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30065,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30069,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30070,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30073
      start: 30009
    functionDepth: 2
    functionLinenumber: 30009
    functionLinenumberEnd: 30073
    functionName: _loop0_27_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - param_no_default_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:30079,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30079,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30080,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30088,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30091,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30102,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30102,1
    - Dst: param_with_default_rule
      Src: /src/cpython/Parser/parser.c:30105,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30111,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30113,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30115,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30125,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30125,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30128,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30130,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30132,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30136,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30140
      start: 30076
    functionDepth: 2
    functionLinenumber: 30076
    functionLinenumberEnd: 30140
    functionName: _loop0_28_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - param_with_default_rule
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:30146,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30146,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30147,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30155,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30158,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30169,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30169,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:30172,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30178,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30180,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30182,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30192,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30192,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30196,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30200,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30202,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30204,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30208,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30209,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30212
      start: 30143
    functionDepth: 2
    functionLinenumber: 30143
    functionLinenumberEnd: 30212
    functionName: _loop1_29_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - param_no_default_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:30218,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30218,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30219,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30227,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30230,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30241,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30241,1
    - Dst: param_with_default_rule
      Src: /src/cpython/Parser/parser.c:30244,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30250,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30252,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30254,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30264,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30264,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30268,1
    - Dst: _Py_asdl_generic_seq_new
      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: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30280,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30281,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30284
      start: 30215
    functionDepth: 2
    functionLinenumber: 30215
    functionLinenumberEnd: 30284
    functionName: _loop1_30_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - param_with_default_rule
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:30290,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30290,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30291,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30299,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30302,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30313,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30313,1
    - Dst: param_maybe_default_rule
      Src: /src/cpython/Parser/parser.c:30316,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30322,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30324,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30326,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30336,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30336,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30339,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30341,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30343,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30347,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30348,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30351
      start: 30287
    functionDepth: 2
    functionLinenumber: 30287
    functionLinenumberEnd: 30351
    functionName: _loop0_31_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - param_maybe_default_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:30357,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30357,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30358,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30366,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30380,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30380,1
    - Dst: param_maybe_default_rule
      Src: /src/cpython/Parser/parser.c:30383,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30389,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30391,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30393,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30403,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30403,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30407,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30411,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30413,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30415,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30419,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30420,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30423
      start: 30354
    functionDepth: 2
    functionLinenumber: 30354
    functionLinenumberEnd: 30423
    functionName: _loop1_32_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - param_maybe_default_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:30429,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30429,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30430,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30438,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30441,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30452,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30452,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30456,1
    - Dst: with_item_rule
      Src: /src/cpython/Parser/parser.c:30458,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:30462,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30464,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30470,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30472,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30474,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30484,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30484,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30487,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30489,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30491,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30495,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30496,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30499
      start: 30426
    functionDepth: 2
    functionLinenumber: 30426
    functionLinenumberEnd: 30499
    functionName: _loop0_33_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - with_item_rule
    - _PyPegen_expect_token
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:30505,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30505,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30506,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30519,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30519,1
    - Dst: with_item_rule
      Src: /src/cpython/Parser/parser.c:30523,1
    - Dst: _loop0_33_rule
      Src: /src/cpython/Parser/parser.c:30525,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30528,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30528,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:30529,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30533,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30533,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30540
      start: 30502
    functionDepth: 3
    functionLinenumber: 30502
    functionLinenumberEnd: 30540
    functionName: _gather_34_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - with_item_rule
    - D
    - fprintf
    - _loop0_33_rule
    - _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:30546,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30546,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30547,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30560,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30560,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30563,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30566,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30566,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30571,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30571,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30579,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30579,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30582,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30585,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30585,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30590,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30590,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30598,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30598,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30601,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30604,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30604,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30609,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30609,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30616
      start: 30543
    functionDepth: 1
    functionLinenumber: 30543
    functionLinenumberEnd: 30616
    functionName: _tmp_35_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:30622,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30622,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30623,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30631,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30634,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30645,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30645,1
    - Dst: except_block_rule
      Src: /src/cpython/Parser/parser.c:30648,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30654,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30656,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30658,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30668,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30668,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30672,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30676,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30678,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30680,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30684,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30685,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30688
      start: 30619
    functionDepth: 4
    functionLinenumber: 30619
    functionLinenumberEnd: 30688
    functionName: _loop1_36_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - except_block_rule
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:30694,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30694,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30695,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30703,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30706,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30717,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30717,1
    - Dst: except_star_block_rule
      Src: /src/cpython/Parser/parser.c:30720,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30726,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30728,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30730,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30740,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30740,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30744,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30748,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30750,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30752,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30756,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30757,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30760
      start: 30691
    functionDepth: 4
    functionLinenumber: 30691
    functionLinenumberEnd: 30760
    functionName: _loop1_37_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    - except_star_block_rule
    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:30766,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30766,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30767,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30775,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30789,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30789,1
    - Dst: case_block_rule
      Src: /src/cpython/Parser/parser.c:30792,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30798,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30800,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30802,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30812,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30812,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30816,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30820,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30822,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30824,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30828,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30829,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30832
      start: 30763
    functionDepth: 4
    functionLinenumber: 30763
    functionLinenumberEnd: 30832
    functionName: _loop1_38_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - case_block_rule
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:30838,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30838,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30839,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:30847,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30850,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30861,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30861,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30865,1
    - Dst: closed_pattern_rule
      Src: /src/cpython/Parser/parser.c:30867,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:30871,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30873,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:30879,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30881,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30883,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30893,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30893,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:30896,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30898,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:30900,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:30904,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:30905,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30908
      start: 30835
    functionDepth: 2
    functionLinenumber: 30835
    functionLinenumberEnd: 30908
    functionName: _loop0_39_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - closed_pattern_rule
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:30914,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30914,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30915,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30928,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30928,1
    - Dst: closed_pattern_rule
      Src: /src/cpython/Parser/parser.c:30932,1
    - Dst: _loop0_39_rule
      Src: /src/cpython/Parser/parser.c:30934,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30937,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:30938,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30942,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30942,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30949
      start: 30911
    functionDepth: 3
    functionLinenumber: 30911
    functionLinenumberEnd: 30949
    functionName: _gather_40_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - closed_pattern_rule
    - PyThreadState_Get
    - _loop0_39_rule
    - D
    - fprintf
    - _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:30955,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:30955,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:30956,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30969,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30972,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30975,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30975,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30980,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30980,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30988,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30988,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:30991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30994,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30994,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:30999,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:30999,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31006
      start: 30952
    functionDepth: 1
    functionLinenumber: 30952
    functionLinenumberEnd: 31006
    functionName: _tmp_41_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:31012,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31012,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31013,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31026,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31026,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:31029,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31032,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31032,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31037,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31037,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31045,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31048,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31051,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31051,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31056,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31056,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31064,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31064,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31067,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31070,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31070,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31075,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31075,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31082
      start: 31009
    functionDepth: 1
    functionLinenumber: 31009
    functionLinenumberEnd: 31082
    functionName: _tmp_42_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_string_token
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:31088,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31088,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31089,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31102,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31102,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31105,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31108,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31108,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31113,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31113,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31121,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31121,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31124,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31127,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31127,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31132,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31132,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31140,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31140,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31143,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31146,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31146,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31151,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31151,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31158
      start: 31085
    functionDepth: 1
    functionLinenumber: 31085
    functionLinenumberEnd: 31158
    functionName: _tmp_43_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:31164,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31164,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31165,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31173,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31176,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31187,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31187,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31191,1
    - Dst: maybe_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:31193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31197,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31199,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31205,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31207,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31209,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31219,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31219,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31222,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31224,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31226,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31230,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31231,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31234
      start: 31161
    functionDepth: 3
    functionLinenumber: 31161
    functionLinenumberEnd: 31234
    functionName: _loop0_44_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - maybe_star_pattern_rule
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:31240,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31240,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31241,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31254,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31254,1
    - Dst: maybe_star_pattern_rule
      Src: /src/cpython/Parser/parser.c:31258,1
    - Dst: _loop0_44_rule
      Src: /src/cpython/Parser/parser.c:31260,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31263,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31263,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:31264,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31268,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31275
      start: 31237
    functionDepth: 4
    functionLinenumber: 31237
    functionLinenumberEnd: 31275
    functionName: _gather_45_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - maybe_star_pattern_rule
    - PyThreadState_Get
    - _loop0_44_rule
    - D
    - fprintf
    - _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:31281,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31281,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31282,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31290,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31293,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31304,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31304,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31308,1
    - Dst: key_value_pattern_rule
      Src: /src/cpython/Parser/parser.c:31310,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31314,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31316,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31322,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31324,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31326,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31336,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31336,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31339,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31341,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31343,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31347,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31348,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31351
      start: 31278
    functionDepth: 3
    functionLinenumber: 31278
    functionLinenumberEnd: 31351
    functionName: _loop0_46_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - key_value_pattern_rule
    - PyMem_Malloc
    - fprintf
    - PyErr_Occurred
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:31357,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31357,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31358,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31371,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31371,1
    - Dst: key_value_pattern_rule
      Src: /src/cpython/Parser/parser.c:31375,1
    - Dst: _loop0_46_rule
      Src: /src/cpython/Parser/parser.c:31377,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31380,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31380,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:31381,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31385,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31392
      start: 31354
    functionDepth: 4
    functionLinenumber: 31354
    functionLinenumberEnd: 31392
    functionName: _gather_47_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - D
    - key_value_pattern_rule
    - fprintf
    - _Pypegen_stack_overflow
    - _loop0_46_rule
    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:31398,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31398,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31399,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31412,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31412,1
    - Dst: literal_expr_rule
      Src: /src/cpython/Parser/parser.c:31415,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31418,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31418,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31423,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31423,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31431,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31431,1
    - Dst: attr_rule
      Src: /src/cpython/Parser/parser.c:31434,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31437,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31437,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31442,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31442,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31449
      start: 31395
    functionDepth: 2
    functionLinenumber: 31395
    functionLinenumberEnd: 31449
    functionName: _tmp_48_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - attr_rule
    - PyThreadState_Get
    - D
    - literal_expr_rule
    - fprintf
    - _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:31455,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31455,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31456,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31464,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31467,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31478,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31478,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31482,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:31484,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31488,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31490,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31496,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31498,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31500,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31510,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31510,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31513,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31515,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31517,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31521,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31522,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31525
      start: 31452
    functionDepth: 2
    functionLinenumber: 31452
    functionLinenumberEnd: 31525
    functionName: _loop0_49_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - pattern_rule
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:31531,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31531,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31532,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31545,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31545,1
    - Dst: pattern_rule
      Src: /src/cpython/Parser/parser.c:31549,1
    - Dst: _loop0_49_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: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:31555,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31559,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31566
      start: 31528
    functionDepth: 3
    functionLinenumber: 31528
    functionLinenumberEnd: 31566
    functionName: _gather_50_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - pattern_rule
    - _loop0_49_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _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: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: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31581,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31584,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31595,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31595,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31599,1
    - Dst: keyword_pattern_rule
      Src: /src/cpython/Parser/parser.c:31601,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31605,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31607,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31613,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31615,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31617,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31627,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31627,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31630,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31632,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31634,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31638,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31639,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31642
      start: 31569
    functionDepth: 3
    functionLinenumber: 31569
    functionLinenumberEnd: 31642
    functionName: _loop0_51_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - keyword_pattern_rule
    - _PyPegen_expect_token
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:31648,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31648,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31649,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31662,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31662,1
    - Dst: keyword_pattern_rule
      Src: /src/cpython/Parser/parser.c:31666,1
    - Dst: _loop0_51_rule
      Src: /src/cpython/Parser/parser.c:31668,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31671,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31671,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:31672,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31676,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31676,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31683
      start: 31645
    functionDepth: 4
    functionLinenumber: 31645
    functionLinenumberEnd: 31683
    functionName: _gather_52_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _loop0_51_rule
    - PyThreadState_Get
    - keyword_pattern_rule
    - D
    - fprintf
    - _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:31689,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31689,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31690,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31698,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31701,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31712,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31712,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31716,1
    - Dst: type_param_rule
      Src: /src/cpython/Parser/parser.c:31718,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31722,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31724,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31730,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31732,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31734,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31744,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31744,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31747,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31749,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31751,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31755,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31756,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31759
      start: 31686
    functionDepth: 2
    functionLinenumber: 31686
    functionLinenumberEnd: 31759
    functionName: _loop0_53_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - type_param_rule
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:31765,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31765,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31766,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31779,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31779,1
    - Dst: type_param_rule
      Src: /src/cpython/Parser/parser.c:31783,1
    - Dst: _loop0_53_rule
      Src: /src/cpython/Parser/parser.c:31785,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31788,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31788,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:31789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31793,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31800
      start: 31762
    functionDepth: 3
    functionLinenumber: 31762
    functionLinenumberEnd: 31800
    functionName: _gather_54_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - type_param_rule
    - PyThreadState_Get
    - D
    - _loop0_53_rule
    - fprintf
    - _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:31806,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31806,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31807,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31815,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31818,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31829,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31829,1
    - Dst: _tmp_16_rule
      Src: /src/cpython/Parser/parser.c:31832,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31838,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31840,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31842,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31852,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31856,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31860,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31862,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31864,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31868,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31869,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31872
      start: 31803
    functionDepth: 3
    functionLinenumber: 31803
    functionLinenumberEnd: 31872
    functionName: _loop1_55_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - _tmp_16_rule
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:31878,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31878,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31879,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31887,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31890,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31901,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31901,1
    - Dst: _tmp_162_rule
      Src: /src/cpython/Parser/parser.c:31904,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31910,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31912,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31914,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31924,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31924,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31928,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:31932,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31934,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31936,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:31940,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31941,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31944
      start: 31875
    functionDepth: 2
    functionLinenumber: 31875
    functionLinenumberEnd: 31944
    functionName: _loop1_56_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - _tmp_162_rule
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    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:31950,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:31950,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:31951,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:31959,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31962,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:31973,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:31973,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:31977,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:31979,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:31983,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31985,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:31991,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:31993,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:31995,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32005,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32005,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32008,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32010,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32012,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32016,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32017,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32020
      start: 31947
    functionDepth: 2
    functionLinenumber: 31947
    functionLinenumberEnd: 32020
    functionName: _loop0_57_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - star_named_expression_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:32026,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32026,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32027,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32040,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32040,1
    - Dst: star_named_expression_rule
      Src: /src/cpython/Parser/parser.c:32044,1
    - Dst: _loop0_57_rule
      Src: /src/cpython/Parser/parser.c:32046,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32049,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32049,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:32050,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32054,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32054,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32061
      start: 32023
    functionDepth: 3
    functionLinenumber: 32023
    functionLinenumberEnd: 32061
    functionName: _gather_58_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - star_named_expression_rule
    - D
    - _loop0_57_rule
    - fprintf
    - _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:32067,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32067,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32068,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32076,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32079,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32090,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32090,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:32094,1
    - Dst: star_named_expression_sequence_rule
      Src: /src/cpython/Parser/parser.c:32096,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:32100,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32102,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32108,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32110,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32122,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32122,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32125,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32127,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32129,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32133,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32134,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32137
      start: 32064
    functionDepth: 3
    functionLinenumber: 32064
    functionLinenumberEnd: 32137
    functionName: _loop0_59_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - star_named_expression_sequence_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_59_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32143,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32143,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32144,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32157,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32157,1
    - Dst: star_named_expression_sequence_rule
      Src: /src/cpython/Parser/parser.c:32161,1
    - Dst: _loop0_59_rule
      Src: /src/cpython/Parser/parser.c:32163,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32166,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32166,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:32167,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32171,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32178
      start: 32140
    functionDepth: 4
    functionLinenumber: 32140
    functionLinenumberEnd: 32178
    functionName: _gather_60_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - _loop0_59_rule
    - star_named_expression_sequence_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_60_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32184,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32184,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32185,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32193,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32196,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32207,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32207,1
    - Dst: _tmp_163_rule
      Src: /src/cpython/Parser/parser.c:32210,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32216,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32218,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32220,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32230,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32230,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32234,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32238,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32240,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32242,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32246,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32247,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32250
      start: 32181
    functionDepth: 2
    functionLinenumber: 32181
    functionLinenumberEnd: 32250
    functionName: _loop1_61_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _tmp_163_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_61_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32256,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32256,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32257,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32265,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32268,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32279,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32279,1
    - Dst: _tmp_164_rule
      Src: /src/cpython/Parser/parser.c:32282,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32288,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32290,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32292,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32302,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32302,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32306,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32310,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32312,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32314,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32318,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32319,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32322
      start: 32253
    functionDepth: 2
    functionLinenumber: 32253
    functionLinenumberEnd: 32322
    functionName: _loop1_62_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - _tmp_164_rule
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_62_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32328,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32328,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32329,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32337,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32340,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32351,1
    - Dst: compare_op_bitwise_or_pair_rule
      Src: /src/cpython/Parser/parser.c:32354,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32360,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32362,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32364,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32374,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32374,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32378,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32382,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32384,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32386,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32390,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32391,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32394
      start: 32325
    functionDepth: 2
    functionLinenumber: 32325
    functionLinenumberEnd: 32394
    functionName: _loop1_63_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    - compare_op_bitwise_or_pair_rule
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_63_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32400,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32400,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32401,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32414,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32414,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:32417,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32420,1
    - Dst: _PyPegen_check_barry_as_flufl
      Src: /src/cpython/Parser/parser.c:32421,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:32422,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32430,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32430,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32437
      start: 32397
    functionDepth: 1
    functionLinenumber: 32397
    functionLinenumberEnd: 32437
    functionName: _tmp_64_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _PyPegen_check_barry_as_flufl
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_64_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32443,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32443,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32444,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32452,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32455,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32466,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32466,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:32470,1
    - Dst: _tmp_165_rule
      Src: /src/cpython/Parser/parser.c:32472,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:32476,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32478,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32484,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32486,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32488,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32498,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32498,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32501,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32503,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32505,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32509,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32510,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32513
      start: 32440
    functionDepth: 2
    functionLinenumber: 32440
    functionLinenumberEnd: 32513
    functionName: _loop0_65_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - _tmp_165_rule
    - _PyPegen_expect_token
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_65_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32519,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32519,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32533,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32533,1
    - Dst: _tmp_165_rule
      Src: /src/cpython/Parser/parser.c:32537,1
    - Dst: _loop0_65_rule
      Src: /src/cpython/Parser/parser.c:32539,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32542,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32542,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:32543,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32547,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32554
      start: 32516
    functionDepth: 3
    functionLinenumber: 32516
    functionLinenumberEnd: 32554
    functionName: _gather_66_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - _tmp_165_rule
    - _loop0_65_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_66_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32560,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32560,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32561,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32574,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32574,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:32578,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:32580,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32583,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32583,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:32585,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32593,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32593,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32600
      start: 32557
    functionDepth: 2
    functionLinenumber: 32557
    functionLinenumberEnd: 32600
    functionName: _tmp_67_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_67_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32606,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32606,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32607,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32620,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32620,1
    - Dst: genexp_rule
      Src: /src/cpython/Parser/parser.c:32623,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32626,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32626,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32631,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32631,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32639,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32639,1
    - Dst: tuple_rule
      Src: /src/cpython/Parser/parser.c:32642,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32645,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32645,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32650,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32650,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32658,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32658,1
    - Dst: group_rule
      Src: /src/cpython/Parser/parser.c:32661,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32664,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32664,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32669,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32669,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32676
      start: 32603
    functionDepth: 3
    functionLinenumber: 32603
    functionLinenumberEnd: 32676
    functionName: _tmp_68_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - group_rule
    - PyThreadState_Get
    - tuple_rule
    - D
    - genexp_rule
    - fprintf
    - _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:32682,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32682,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32683,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32696,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32696,1
    - Dst: listcomp_rule
      Src: /src/cpython/Parser/parser.c:32699,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32702,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32702,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32707,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32707,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32715,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32715,1
    - Dst: list_rule
      Src: /src/cpython/Parser/parser.c:32718,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32721,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32721,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32726,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32726,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32733
      start: 32679
    functionDepth: 3
    functionLinenumber: 32679
    functionLinenumberEnd: 32733
    functionName: _tmp_69_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - list_rule
    - PyThreadState_Get
    - D
    - listcomp_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_69_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32739,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32739,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32740,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32753,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32753,1
    - Dst: dictcomp_rule
      Src: /src/cpython/Parser/parser.c:32756,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32759,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32759,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32764,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32764,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32772,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32772,1
    - Dst: setcomp_rule
      Src: /src/cpython/Parser/parser.c:32775,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32778,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32778,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32783,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32783,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32791,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32791,1
    - Dst: dict_rule
      Src: /src/cpython/Parser/parser.c:32794,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32797,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32797,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32802,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32810,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32810,1
    - Dst: set_rule
      Src: /src/cpython/Parser/parser.c:32813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32816,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32816,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32821,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32828
      start: 32736
    functionDepth: 4
    functionLinenumber: 32736
    functionLinenumberEnd: 32828
    functionName: _tmp_70_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - set_rule
    - dictcomp_rule
    - D
    - setcomp_rule
    - fprintf
    - _Pypegen_stack_overflow
    - dict_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_70_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32834,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32834,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32835,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32848,1
    - Dst: yield_expr_rule
      Src: /src/cpython/Parser/parser.c:32851,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32854,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32854,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32859,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32859,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32867,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32867,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:32870,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32873,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32873,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32878,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32878,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32885
      start: 32831
    functionDepth: 4
    functionLinenumber: 32831
    functionLinenumberEnd: 32885
    functionName: _tmp_71_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - named_expression_rule
    - D
    - yield_expr_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_71_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32891,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32891,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32892,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32900,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32903,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32914,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32914,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:32917,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32923,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32925,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32937,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:32940,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32942,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32944,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:32948,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32949,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32952
      start: 32888
    functionDepth: 2
    functionLinenumber: 32888
    functionLinenumberEnd: 32952
    functionName: _loop0_72_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - lambda_param_no_default_rule
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_72_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:32958,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:32958,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:32959,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:32967,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32970,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:32981,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:32981,1
    - Dst: lambda_param_with_default_rule
      Src: /src/cpython/Parser/parser.c:32984,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:32990,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:32992,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:32994,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33004,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33007,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33009,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33011,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33015,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33016,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33019
      start: 32955
    functionDepth: 3
    functionLinenumber: 32955
    functionLinenumberEnd: 33019
    functionName: _loop0_73_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    - lambda_param_with_default_rule
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_73_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33025,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33025,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33026,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33034,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33037,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33048,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33048,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:33051,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33057,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33059,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33061,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33071,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33071,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33075,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33079,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33081,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33083,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33087,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33088,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33091
      start: 33022
    functionDepth: 2
    functionLinenumber: 33022
    functionLinenumberEnd: 33091
    functionName: _loop1_74_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - lambda_param_no_default_rule
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_74_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33097,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33097,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33098,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33106,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33109,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33120,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33120,1
    - Dst: lambda_param_with_default_rule
      Src: /src/cpython/Parser/parser.c:33123,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33129,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33131,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33133,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33143,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33143,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33147,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33151,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33153,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33155,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33159,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33163
      start: 33094
    functionDepth: 3
    functionLinenumber: 33094
    functionLinenumberEnd: 33163
    functionName: _loop1_75_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    - lambda_param_with_default_rule
    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:33169,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33169,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33170,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33178,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33181,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33192,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33192,1
    - Dst: lambda_param_maybe_default_rule
      Src: /src/cpython/Parser/parser.c:33195,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33201,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33203,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33205,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33215,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33215,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33218,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33220,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33222,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33226,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33227,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33230
      start: 33166
    functionDepth: 3
    functionLinenumber: 33166
    functionLinenumberEnd: 33230
    functionName: _loop0_76_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - lambda_param_maybe_default_rule
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_76_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33236,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33236,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33237,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33245,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33248,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33259,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33259,1
    - Dst: lambda_param_maybe_default_rule
      Src: /src/cpython/Parser/parser.c:33262,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33268,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33270,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33272,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33282,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33282,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33286,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33290,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33292,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33294,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33298,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33299,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33302
      start: 33233
    functionDepth: 3
    functionLinenumber: 33233
    functionLinenumberEnd: 33302
    functionName: _loop1_77_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - lambda_param_maybe_default_rule
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_77_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33308,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33308,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33309,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33317,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33320,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33331,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33331,1
    - Dst: fstring_format_spec_rule
      Src: /src/cpython/Parser/parser.c:33334,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33340,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33342,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33344,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33354,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33354,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33357,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33359,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33361,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33365,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33366,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33369
      start: 33305
    functionDepth: 4
    functionLinenumber: 33305
    functionLinenumberEnd: 33369
    functionName: _loop0_78_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 3
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    - fstring_format_spec_rule
    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:33375,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33375,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33376,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33384,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33387,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33398,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33398,1
    - Dst: fstring_middle_rule
      Src: /src/cpython/Parser/parser.c:33401,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33407,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33409,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33411,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33421,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33421,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33424,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33426,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33428,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33432,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33433,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33436
      start: 33372
    functionDepth: 2
    functionLinenumber: 33372
    functionLinenumberEnd: 33436
    functionName: _loop0_79_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - fstring_middle_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_79_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33442,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33442,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33443,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33451,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33454,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33465,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33465,1
    - Dst: tstring_format_spec_rule
      Src: /src/cpython/Parser/parser.c:33468,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33474,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33476,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33478,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33488,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33488,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33491,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33493,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33495,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33499,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33500,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33503
      start: 33439
    functionDepth: 4
    functionLinenumber: 33439
    functionLinenumberEnd: 33503
    functionName: _loop0_80_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    - tstring_format_spec_rule
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_80_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33509,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33509,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33510,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33518,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33521,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33532,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33532,1
    - Dst: tstring_middle_rule
      Src: /src/cpython/Parser/parser.c:33535,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33541,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33543,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33545,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33555,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33558,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33560,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33562,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33566,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33567,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33570
      start: 33506
    functionDepth: 4
    functionLinenumber: 33506
    functionLinenumberEnd: 33570
    functionName: _loop0_81_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - tstring_middle_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_81_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33576,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33576,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33577,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33585,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33588,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33599,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33599,1
    - Dst: _tmp_156_rule
      Src: /src/cpython/Parser/parser.c:33602,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33608,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33610,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33612,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33622,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33622,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33626,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33630,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33632,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33634,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33638,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33639,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33642
      start: 33573
    functionDepth: 2
    functionLinenumber: 33573
    functionLinenumberEnd: 33642
    functionName: _loop1_82_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_156_rule
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_82_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33648,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33648,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33649,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33657,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33660,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33671,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33671,1
    - Dst: tstring_rule
      Src: /src/cpython/Parser/parser.c:33674,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33680,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33682,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33684,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33694,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33694,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33698,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33702,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33704,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33706,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33710,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33711,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33714
      start: 33645
    functionDepth: 2
    functionLinenumber: 33645
    functionLinenumberEnd: 33714
    functionName: _loop1_83_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - tstring_rule
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_83_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33720,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33720,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33721,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33734,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33734,1
    - Dst: star_named_expression_sequence_rule
      Src: /src/cpython/Parser/parser.c:33739,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33741,1
    - Dst: star_named_expressions_sequence_rule
      Src: /src/cpython/Parser/parser.c:33743,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33746,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33746,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:33747,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33748,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33756,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33756,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33763
      start: 33717
    functionDepth: 3
    functionLinenumber: 33717
    functionLinenumberEnd: 33763
    functionName: _tmp_84_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - _PyPegen_expect_token
    - star_named_expression_sequence_rule
    - D
    - PyErr_Occurred
    - star_named_expressions_sequence_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_84_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33769,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33769,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33770,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33778,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33792,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33792,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:33796,1
    - Dst: double_starred_kvpair_rule
      Src: /src/cpython/Parser/parser.c:33798,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:33802,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33804,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33810,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33812,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33814,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33824,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33824,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33827,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33829,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33831,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33835,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33836,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33839
      start: 33766
    functionDepth: 3
    functionLinenumber: 33766
    functionLinenumberEnd: 33839
    functionName: _loop0_85_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - double_starred_kvpair_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_85_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: double_starred_kvpair_rule
      Src: /src/cpython/Parser/parser.c:33863,1
    - Dst: _loop0_85_rule
      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_seq_insert_in_front
      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: 4
    functionLinenumber: 33842
    functionLinenumberEnd: 33880
    functionName: _gather_86_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - double_starred_kvpair_rule
    - _loop0_85_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_86_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33886,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33886,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33887,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33895,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33898,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33909,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33909,1
    - Dst: for_if_clause_rule
      Src: /src/cpython/Parser/parser.c:33912,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33918,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33920,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33922,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33932,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33932,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33936,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:33940,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33942,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33944,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:33948,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33949,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33952
      start: 33883
    functionDepth: 3
    functionLinenumber: 33883
    functionLinenumberEnd: 33952
    functionName: _loop1_87_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - for_if_clause_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_87_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:33958,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:33958,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:33959,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:33967,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33970,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:33981,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:33981,1
    - Dst: _tmp_166_rule
      Src: /src/cpython/Parser/parser.c:33984,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:33990,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:33992,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:33994,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34004,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34007,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34009,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34011,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34015,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34016,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34019
      start: 33955
    functionDepth: 2
    functionLinenumber: 33955
    functionLinenumberEnd: 34019
    functionName: _loop0_88_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _tmp_166_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_88_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34025,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34025,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34026,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34039,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34039,1
    - Dst: assignment_expression_rule
      Src: /src/cpython/Parser/parser.c:34042,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34045,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34050,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34058,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34058,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:34061,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:34063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34066,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34066,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34071,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34071,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34079,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34079,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:34082,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34085,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34085,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34090,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34090,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34097
      start: 34022
    functionDepth: 3
    functionLinenumber: 34022
    functionLinenumberEnd: 34097
    functionName: _tmp_89_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - starred_expression_rule
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - assignment_expression_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_89_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34103,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34103,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34104,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34112,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34115,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34126,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34126,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34130,1
    - Dst: _tmp_167_rule
      Src: /src/cpython/Parser/parser.c:34132,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:34136,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34138,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34144,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34146,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34148,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34158,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34158,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34161,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34163,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34165,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34169,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34170,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34173
      start: 34100
    functionDepth: 2
    functionLinenumber: 34100
    functionLinenumberEnd: 34173
    functionName: _loop0_90_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - _tmp_167_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_90_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34180,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34180,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34181,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34194,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34194,1
    - Dst: _tmp_167_rule
      Src: /src/cpython/Parser/parser.c:34198,1
    - Dst: _loop0_90_rule
      Src: /src/cpython/Parser/parser.c:34200,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34203,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34203,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:34204,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34208,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34215
      start: 34177
    functionDepth: 3
    functionLinenumber: 34177
    functionLinenumberEnd: 34215
    functionName: _gather_91_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _loop0_90_rule
    - PyThreadState_Get
    - _tmp_167_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_91_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34221,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34221,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34222,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34235,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34235,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34239,1
    - Dst: kwargs_rule
      Src: /src/cpython/Parser/parser.c:34241,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34244,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34244,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:34246,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34254,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34254,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34261
      start: 34218
    functionDepth: 2
    functionLinenumber: 34218
    functionLinenumberEnd: 34261
    functionName: _tmp_92_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - kwargs_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_92_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34267,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34267,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34268,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34276,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34279,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34290,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34290,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34294,1
    - Dst: kwarg_or_starred_rule
      Src: /src/cpython/Parser/parser.c:34296,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:34300,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34302,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34308,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34310,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34322,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34325,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34327,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34329,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34333,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34334,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34337
      start: 34264
    functionDepth: 4
    functionLinenumber: 34264
    functionLinenumberEnd: 34337
    functionName: _loop0_93_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - kwarg_or_starred_rule
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:34343,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34343,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34344,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34357,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34357,1
    - Dst: kwarg_or_starred_rule
      Src: /src/cpython/Parser/parser.c:34361,1
    - Dst: _loop0_93_rule
      Src: /src/cpython/Parser/parser.c:34363,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34366,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34366,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:34367,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34371,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34371,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34378
      start: 34340
    functionDepth: 5
    functionLinenumber: 34340
    functionLinenumberEnd: 34378
    functionName: _gather_94_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - _loop0_93_rule
    - D
    - kwarg_or_starred_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_94_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34384,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34384,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34385,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34393,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34396,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34407,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34407,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34411,1
    - Dst: kwarg_or_double_starred_rule
      Src: /src/cpython/Parser/parser.c:34413,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:34417,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34419,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34425,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34427,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34429,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34439,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34439,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34442,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34444,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34446,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34450,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34451,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34454
      start: 34381
    functionDepth: 3
    functionLinenumber: 34381
    functionLinenumberEnd: 34454
    functionName: _loop0_95_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - kwarg_or_double_starred_rule
    - _PyPegen_expect_token
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_95_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34460,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34460,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34461,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34474,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34474,1
    - Dst: kwarg_or_double_starred_rule
      Src: /src/cpython/Parser/parser.c:34478,1
    - Dst: _loop0_95_rule
      Src: /src/cpython/Parser/parser.c:34480,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34483,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34483,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:34484,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34488,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34488,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34495
      start: 34457
    functionDepth: 4
    functionLinenumber: 34457
    functionLinenumberEnd: 34495
    functionName: _gather_96_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_95_rule
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - kwarg_or_double_starred_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_96_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34501,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34501,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34502,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34510,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34513,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34524,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34524,1
    - Dst: _tmp_168_rule
      Src: /src/cpython/Parser/parser.c:34527,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34533,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34535,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34537,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34547,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34550,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34552,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34554,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34558,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34559,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34562
      start: 34498
    functionDepth: 2
    functionLinenumber: 34498
    functionLinenumberEnd: 34562
    functionName: _loop0_97_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _tmp_168_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_97_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34568,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34568,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34569,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34577,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34580,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34591,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34591,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34595,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:34597,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:34601,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34603,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34609,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34611,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34613,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34623,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34623,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34626,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34628,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34630,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34634,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34635,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34638
      start: 34565
    functionDepth: 2
    functionLinenumber: 34565
    functionLinenumberEnd: 34638
    functionName: _loop0_98_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - star_target_rule
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_98_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34644,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34644,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34645,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34658,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34658,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:34662,1
    - Dst: _loop0_98_rule
      Src: /src/cpython/Parser/parser.c:34664,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34667,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34667,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:34668,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34672,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34672,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34679
      start: 34641
    functionDepth: 3
    functionLinenumber: 34641
    functionLinenumberEnd: 34679
    functionName: _gather_99_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - D
    - star_target_rule
    - fprintf
    - _Pypegen_stack_overflow
    - _loop0_98_rule
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_99_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34685,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34685,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34686,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34694,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34697,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34708,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34708,1
    - Dst: _tmp_168_rule
      Src: /src/cpython/Parser/parser.c:34711,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34717,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34719,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34721,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34731,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34731,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34735,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34739,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34741,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34743,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34747,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34748,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34751
      start: 34682
    functionDepth: 2
    functionLinenumber: 34682
    functionLinenumberEnd: 34751
    functionName: _loop1_100_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _tmp_168_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_100_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34757,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34757,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34758,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34771,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34771,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:34774,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:34776,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34779,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34779,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34784,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34784,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34791
      start: 34754
    functionDepth: 2
    functionLinenumber: 34754
    functionLinenumberEnd: 34791
    functionName: _tmp_101_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - D
    - star_target_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_101_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34797,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34797,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34798,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34806,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34809,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34820,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34820,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34824,1
    - Dst: del_target_rule
      Src: /src/cpython/Parser/parser.c:34826,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:34830,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34832,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34838,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34840,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34842,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34852,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34855,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34857,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34859,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34863,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34864,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34867
      start: 34794
    functionDepth: 3
    functionLinenumber: 34794
    functionLinenumberEnd: 34867
    functionName: _loop0_102_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - del_target_rule
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    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:34873,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34873,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34874,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34887,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34887,1
    - Dst: del_target_rule
      Src: /src/cpython/Parser/parser.c:34891,1
    - Dst: _loop0_102_rule
      Src: /src/cpython/Parser/parser.c:34893,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34896,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34896,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:34897,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34901,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34901,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34908
      start: 34870
    functionDepth: 4
    functionLinenumber: 34870
    functionLinenumberEnd: 34908
    functionName: _gather_103_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - del_target_rule
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - _loop0_102_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_103_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34914,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34914,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34915,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:34923,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34926,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34937,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34937,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:34941,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:34943,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:34947,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34949,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:34955,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34957,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34959,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:34969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:34969,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:34972,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34974,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:34976,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:34980,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:34981,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34984
      start: 34911
    functionDepth: 2
    functionLinenumber: 34911
    functionLinenumberEnd: 34984
    functionName: _loop0_104_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - expression_rule
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_104_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:34990,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:34990,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:34991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35004,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:35008,1
    - Dst: _loop0_104_rule
      Src: /src/cpython/Parser/parser.c:35010,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35013,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35013,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:35014,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35018,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35018,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35025
      start: 34987
    functionDepth: 3
    functionLinenumber: 34987
    functionLinenumberEnd: 35025
    functionName: _gather_105_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_104_rule
    - _PyPegen_seq_insert_in_front
    - expression_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_105_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35031,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35031,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35032,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35045,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35049,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35051,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35054,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35054,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35055,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35059,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35059,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35066
      start: 35028
    functionDepth: 1
    functionLinenumber: 35028
    functionLinenumberEnd: 35066
    functionName: _tmp_106_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_106_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35074,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35074,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35075,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35088,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35088,1
    - Dst: _tmp_169_rule
      Src: /src/cpython/Parser/parser.c:35091,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35094,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35094,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35099,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35099,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35107,1
    - Dst: kwargs_rule
      Src: /src/cpython/Parser/parser.c:35110,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35113,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35113,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35118,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35125
      start: 35071
    functionDepth: 2
    functionLinenumber: 35071
    functionLinenumberEnd: 35125
    functionName: _tmp_107_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - kwargs_rule
    - PyThreadState_Get
    - _tmp_169_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_107_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35131,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35131,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35132,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:35140,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35143,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35154,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35154,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35158,1
    - Dst: _tmp_170_rule
      Src: /src/cpython/Parser/parser.c:35160,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:35164,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35166,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:35172,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35174,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35176,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35186,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35186,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:35189,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35191,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35193,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:35197,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35198,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35201
      start: 35128
    functionDepth: 2
    functionLinenumber: 35128
    functionLinenumberEnd: 35201
    functionName: _loop0_108_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - _tmp_170_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_108_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35207,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35207,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35208,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35221,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35221,1
    - Dst: _tmp_170_rule
      Src: /src/cpython/Parser/parser.c:35225,1
    - Dst: _loop0_108_rule
      Src: /src/cpython/Parser/parser.c:35227,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35230,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35230,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:35231,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35235,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35242
      start: 35204
    functionDepth: 3
    functionLinenumber: 35204
    functionLinenumberEnd: 35242
    functionName: _gather_109_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _loop0_108_rule
    - PyThreadState_Get
    - _tmp_170_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_109_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35248,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35248,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35249,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35262,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35262,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:35265,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35268,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35268,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35273,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35273,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35281,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35281,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:35285,1
    - Dst: for_if_clauses_rule
      Src: /src/cpython/Parser/parser.c:35287,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35290,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35290,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35295,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35295,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35302
      start: 35245
    functionDepth: 2
    functionLinenumber: 35245
    functionLinenumberEnd: 35302
    functionName: _tmp_110_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - for_if_clauses_rule
    - _PyPegen_dummy_name
    - expression_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - args_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_110_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35308,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35308,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35309,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35322,1
    - Dst: args_rule
      Src: /src/cpython/Parser/parser.c:35326,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35328,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35331,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35331,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35332,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35336,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35336,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35343
      start: 35305
    functionDepth: 2
    functionLinenumber: 35305
    functionLinenumberEnd: 35343
    functionName: _tmp_111_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - args_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_111_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35349,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35349,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35350,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35363,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35363,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35366,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35369,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35369,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35374,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35374,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35382,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35385,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35388,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35388,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35393,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35393,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35400
      start: 35346
    functionDepth: 1
    functionLinenumber: 35346
    functionLinenumberEnd: 35400
    functionName: _tmp_112_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:35406,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35406,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35407,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35420,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35423,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35426,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35426,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35431,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35431,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35439,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35439,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35442,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35445,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35445,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35450,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35450,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35458,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35458,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35461,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35464,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35464,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35469,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35469,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35476
      start: 35403
    functionDepth: 1
    functionLinenumber: 35403
    functionLinenumberEnd: 35476
    functionName: _tmp_113_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_113_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35482,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35482,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35483,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35496,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:35500,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35502,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35505,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35505,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35506,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35510,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35517
      start: 35479
    functionDepth: 1
    functionLinenumber: 35479
    functionLinenumberEnd: 35517
    functionName: _tmp_114_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_114_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35523,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35523,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35524,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:35532,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35535,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35546,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35546,1
    - Dst: _tmp_171_rule
      Src: /src/cpython/Parser/parser.c:35549,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:35555,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35557,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35559,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35569,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35569,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35573,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:35577,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35579,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35581,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:35585,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:35586,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35589
      start: 35520
    functionDepth: 2
    functionLinenumber: 35520
    functionLinenumberEnd: 35589
    functionName: _loop1_115_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _tmp_171_rule
    - D
    - asdl_seq_SET_UNTYPED
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop1_115_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35595,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35595,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35596,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35609,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35609,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:35613,1
    - Dst: _PyPegen_string_token
      Src: /src/cpython/Parser/parser.c:35615,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35618,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35618,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:35619,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35623,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35623,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35631,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35631,1
    - Dst: _PyPegen_soft_keyword_token
      Src: /src/cpython/Parser/parser.c:35634,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35637,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35637,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35642,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35642,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35649
      start: 35592
    functionDepth: 1
    functionLinenumber: 35592
    functionLinenumberEnd: 35649
    functionName: _tmp_116_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_string_token
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_soft_keyword_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_116_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35655,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35655,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35656,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35669,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35669,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35672,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35675,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35675,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35680,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35680,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35688,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35688,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35691,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35694,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35694,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35699,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35699,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35706
      start: 35652
    functionDepth: 1
    functionLinenumber: 35652
    functionLinenumberEnd: 35706
    functionName: _tmp_117_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_117_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35712,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35712,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35713,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35726,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35726,1
    - Dst: pass_stmt_rule
      Src: /src/cpython/Parser/parser.c:35729,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35732,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35732,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35737,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35737,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35745,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35745,1
    - Dst: break_stmt_rule
      Src: /src/cpython/Parser/parser.c:35748,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35751,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35751,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35756,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35756,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35764,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35764,1
    - Dst: continue_stmt_rule
      Src: /src/cpython/Parser/parser.c:35767,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35770,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35770,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35775,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35775,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35782
      start: 35709
    functionDepth: 2
    functionLinenumber: 35709
    functionLinenumberEnd: 35782
    functionName: _tmp_118_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - break_stmt_rule
    - continue_stmt_rule
    - PyThreadState_Get
    - D
    - pass_stmt_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_118_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35788,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35788,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35802,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35802,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35805,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35808,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35808,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35813,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35821,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35824,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35827,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35827,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35832,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35832,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35839
      start: 35785
    functionDepth: 1
    functionLinenumber: 35785
    functionLinenumberEnd: 35839
    functionName: _tmp_119_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_119_rule(Parser *p)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35845,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35845,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35846,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35859,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35859,1
    - Dst: list_rule
      Src: /src/cpython/Parser/parser.c:35862,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35865,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35865,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35870,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35870,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35878,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35878,1
    - Dst: tuple_rule
      Src: /src/cpython/Parser/parser.c:35881,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35884,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35884,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35889,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35889,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35897,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35897,1
    - Dst: genexp_rule
      Src: /src/cpython/Parser/parser.c:35900,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35903,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35903,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35908,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35908,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35916,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35916,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35919,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35922,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35922,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35927,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35927,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35935,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35935,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35938,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35941,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35941,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35946,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35946,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35954,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35954,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:35957,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35960,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35960,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:35965,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:35965,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 97
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35972
      start: 35842
    functionDepth: 3
    functionLinenumber: 35842
    functionLinenumberEnd: 35972
    functionName: _tmp_120_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - list_rule
    - PyThreadState_Get
    - tuple_rule
    - _PyPegen_expect_token
    - D
    - genexp_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_120_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:35978,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:35978,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:35979,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:35987,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:35990,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36001,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36001,1
    - Dst: star_named_expressions_rule
      Src: /src/cpython/Parser/parser.c:36004,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:36010,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36012,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36014,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36024,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36024,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:36027,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36029,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36031,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:36035,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36036,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36039
      start: 35975
    functionDepth: 2
    functionLinenumber: 35975
    functionLinenumberEnd: 36039
    functionName: _loop0_121_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - star_named_expressions_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_121_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36045,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36045,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36046,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:36054,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36057,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36068,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36068,1
    - Dst: _tmp_159_rule
      Src: /src/cpython/Parser/parser.c:36071,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:36077,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36079,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36081,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36091,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36091,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:36094,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36096,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36098,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:36102,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36106
      start: 36042
    functionDepth: 2
    functionLinenumber: 36042
    functionLinenumberEnd: 36106
    functionName: _loop0_122_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _tmp_159_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_122_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36112,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36112,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36113,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36126,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36126,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36129,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36132,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36132,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36137,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36137,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36145,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36145,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36148,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36151,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36151,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36156,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36163
      start: 36109
    functionDepth: 1
    functionLinenumber: 36109
    functionLinenumberEnd: 36163
    functionName: _tmp_123_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:36169,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36169,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36170,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36183,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36183,1
    - Dst: slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:36186,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36189,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36189,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36194,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36194,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36202,1
    - Dst: slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:36205,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36208,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36208,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36213,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36213,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36220
      start: 36166
    functionDepth: 2
    functionLinenumber: 36166
    functionLinenumberEnd: 36220
    functionName: _tmp_124_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - slash_with_default_rule
    - D
    - slash_no_default_rule
    - fprintf
    - _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:36226,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36226,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36227,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36240,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36243,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36246,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36246,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36251,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36251,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36259,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36259,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:36262,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36265,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36265,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36270,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36277
      start: 36223
    functionDepth: 2
    functionLinenumber: 36223
    functionLinenumberEnd: 36277
    functionName: _tmp_125_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - param_no_default_rule
    - D
    - fprintf
    - _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:36283,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36283,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36284,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36297,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36297,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36300,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36303,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36303,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36308,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36308,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36316,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36316,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36319,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36322,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36322,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36327,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36334
      start: 36280
    functionDepth: 1
    functionLinenumber: 36280
    functionLinenumberEnd: 36334
    functionName: _tmp_126_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:36340,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36340,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36341,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36354,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36354,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36357,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36360,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36360,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36365,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36365,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36373,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36373,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36377,1
    - Dst: _tmp_172_rule
      Src: /src/cpython/Parser/parser.c:36379,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36382,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36382,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:36383,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36387,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36387,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36394
      start: 36337
    functionDepth: 1
    functionLinenumber: 36337
    functionLinenumberEnd: 36394
    functionName: _tmp_127_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _tmp_172_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_127_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36400,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36400,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36401,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36414,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36414,1
    - Dst: param_no_default_rule
      Src: /src/cpython/Parser/parser.c:36417,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36420,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36425,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36425,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36433,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36433,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36436,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36439,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36439,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36444,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36444,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36451
      start: 36397
    functionDepth: 2
    functionLinenumber: 36397
    functionLinenumberEnd: 36451
    functionName: _tmp_128_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - param_no_default_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_128_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36457,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36457,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36458,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36471,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36471,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36474,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36477,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36477,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36482,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36482,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36490,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36490,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36493,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36496,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36496,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36501,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36509,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36512,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36515,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36515,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36520,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36520,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36527
      start: 36454
    functionDepth: 1
    functionLinenumber: 36454
    functionLinenumberEnd: 36527
    functionName: _tmp_129_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_129_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36533,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36533,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36534,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36547,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36547,1
    - Dst: lambda_slash_no_default_rule
      Src: /src/cpython/Parser/parser.c:36550,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36553,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36553,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36558,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36558,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36566,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36566,1
    - Dst: lambda_slash_with_default_rule
      Src: /src/cpython/Parser/parser.c:36569,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36572,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36572,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36577,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36577,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36584
      start: 36530
    functionDepth: 2
    functionLinenumber: 36530
    functionLinenumberEnd: 36584
    functionName: _tmp_130_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - lambda_slash_with_default_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - lambda_slash_no_default_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_130_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36590,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36590,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36591,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:36599,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36602,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36613,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36613,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36617,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:36619,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:36623,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36625,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:36631,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36633,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36635,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36645,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36645,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:36648,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36650,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36652,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:36656,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36657,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36660
      start: 36587
    functionDepth: 2
    functionLinenumber: 36587
    functionLinenumberEnd: 36660
    functionName: _loop0_131_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - lambda_param_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_131_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36666,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36666,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36667,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36680,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36680,1
    - Dst: lambda_param_rule
      Src: /src/cpython/Parser/parser.c:36684,1
    - Dst: _loop0_131_rule
      Src: /src/cpython/Parser/parser.c:36686,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36689,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36689,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:36690,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36694,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36694,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36701
      start: 36663
    functionDepth: 3
    functionLinenumber: 36663
    functionLinenumberEnd: 36701
    functionName: _gather_132_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - lambda_param_rule
    - _loop0_131_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_132_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36707,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36707,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36708,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36721,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36721,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36724,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36727,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36727,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36732,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36732,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36740,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36740,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:36743,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36746,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36746,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36751,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36751,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36758
      start: 36704
    functionDepth: 2
    functionLinenumber: 36704
    functionLinenumberEnd: 36758
    functionName: _tmp_133_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - lambda_param_no_default_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:36764,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36764,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36765,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36778,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36778,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36784,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36784,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36789,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36789,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36797,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36797,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36801,1
    - Dst: _tmp_173_rule
      Src: /src/cpython/Parser/parser.c:36803,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36806,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36806,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:36807,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36811,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36811,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36818
      start: 36761
    functionDepth: 1
    functionLinenumber: 36761
    functionLinenumberEnd: 36818
    functionName: _tmp_134_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - _tmp_173_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_134_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36824,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36824,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36825,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36838,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36838,1
    - Dst: lambda_param_no_default_rule
      Src: /src/cpython/Parser/parser.c:36841,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36844,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36844,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36849,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36849,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36857,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36857,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36860,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36863,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36863,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36868,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36868,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36875
      start: 36821
    functionDepth: 2
    functionLinenumber: 36821
    functionLinenumberEnd: 36875
    functionName: _tmp_135_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - lambda_param_no_default_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_135_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36881,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36881,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36882,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36895,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36895,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:36898,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:36901,1
    - Dst: _loop0_174_rule
      Src: /src/cpython/Parser/parser.c:36903,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36905,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36908,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36908,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:36909,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36913,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36913,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36920
      start: 36878
    functionDepth: 2
    functionLinenumber: 36878
    functionLinenumberEnd: 36920
    functionName: _tmp_136_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - UNUSED
    - PyThreadState_Get
    - _PyPegen_expect_token
    - _loop0_174_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_136_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:36926,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:36926,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:36927,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:36935,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36938,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36949,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36949,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:36953,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:36955,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:36959,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36961,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:36967,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36969,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36971,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:36981,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:36981,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:36984,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36986,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:36988,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:36992,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:36993,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36996
      start: 36923
    functionDepth: 2
    functionLinenumber: 36923
    functionLinenumberEnd: 36996
    functionName: _loop0_137_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - dotted_name_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_137_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37002,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37002,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37003,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37016,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37016,1
    - Dst: dotted_name_rule
      Src: /src/cpython/Parser/parser.c:37020,1
    - Dst: _loop0_137_rule
      Src: /src/cpython/Parser/parser.c:37022,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37025,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37025,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:37026,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37030,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37030,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37037
      start: 36999
    functionDepth: 3
    functionLinenumber: 36999
    functionLinenumberEnd: 37037
    functionName: _gather_138_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - _loop0_137_rule
    - PyThreadState_Get
    - dotted_name_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_138_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37043,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37043,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37044,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37057,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37057,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:37061,1
    - Dst: _tmp_175_rule
      Src: /src/cpython/Parser/parser.c:37063,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37066,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37066,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:37067,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37071,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37071,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37078
      start: 37040
    functionDepth: 1
    functionLinenumber: 37040
    functionLinenumberEnd: 37078
    functionName: _tmp_139_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - D
    - _tmp_175_rule
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_139_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37084,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37084,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37085,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:37093,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37096,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37107,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37111,1
    - Dst: _tmp_176_rule
      Src: /src/cpython/Parser/parser.c:37113,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37117,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37119,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:37125,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37127,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37129,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37139,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37139,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:37142,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37144,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37146,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:37150,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37151,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37154
      start: 37081
    functionDepth: 2
    functionLinenumber: 37081
    functionLinenumberEnd: 37154
    functionName: _loop0_140_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - _tmp_176_rule
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_140_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37160,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37160,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37161,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37174,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37174,1
    - Dst: _tmp_176_rule
      Src: /src/cpython/Parser/parser.c:37178,1
    - Dst: _loop0_140_rule
      Src: /src/cpython/Parser/parser.c:37180,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37183,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37183,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:37184,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37188,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37195
      start: 37157
    functionDepth: 3
    functionLinenumber: 37157
    functionLinenumberEnd: 37195
    functionName: _gather_141_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _loop0_140_rule
    - _PyPegen_seq_insert_in_front
    - _tmp_176_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_141_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37201,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37201,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37202,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:37210,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37213,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37224,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37224,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37228,1
    - Dst: _tmp_177_rule
      Src: /src/cpython/Parser/parser.c:37230,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:37234,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37236,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:37242,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37244,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37246,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37256,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37256,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:37259,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37261,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37263,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:37267,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37268,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37271
      start: 37198
    functionDepth: 2
    functionLinenumber: 37198
    functionLinenumberEnd: 37271
    functionName: _loop0_142_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - _PyPegen_expect_token
    - asdl_seq_SET_UNTYPED
    - D
    - PyErr_Occurred
    - PyMem_Malloc
    - fprintf
    - PyMem_Free
    - _Pypegen_stack_overflow
    - _tmp_177_rule
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_142_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37277,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37277,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37278,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37291,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37291,1
    - Dst: _tmp_177_rule
      Src: /src/cpython/Parser/parser.c:37295,1
    - Dst: _loop0_142_rule
      Src: /src/cpython/Parser/parser.c:37297,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37300,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37300,1
    - Dst: _PyPegen_seq_insert_in_front
      Src: /src/cpython/Parser/parser.c:37301,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37305,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37312
      start: 37274
    functionDepth: 3
    functionLinenumber: 37274
    functionLinenumberEnd: 37312
    functionName: _gather_143_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_seq_insert_in_front
    - PyThreadState_Get
    - _loop0_142_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - _tmp_177_rule
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _gather_143_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37318,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37318,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37319,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37332,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37332,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37335,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37338,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37338,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37343,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37343,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37351,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37354,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37357,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37357,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37362,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37362,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37369
      start: 37315
    functionDepth: 1
    functionLinenumber: 37315
    functionLinenumberEnd: 37369
    functionName: _tmp_144_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_144_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37375,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37375,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37376,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:37384,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37387,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37398,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37398,1
    - Dst: block_rule
      Src: /src/cpython/Parser/parser.c:37401,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:37407,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37409,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37411,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37421,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37421,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:37424,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37426,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:37428,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:37432,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:37433,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37436
      start: 37372
    functionDepth: 3
    functionLinenumber: 37372
    functionLinenumberEnd: 37436
    functionName: _loop0_145_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - block_rule
    - asdl_seq_SET_UNTYPED
    - D
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_145_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37442,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37442,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37443,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37456,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37456,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:37458,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:37461,1
    - Dst: _tmp_21_rule
      Src: /src/cpython/Parser/parser.c:37463,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37466,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37466,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:37467,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37471,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37471,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37478
      start: 37439
    functionDepth: 2
    functionLinenumber: 37439
    functionLinenumberEnd: 37478
    functionName: _tmp_146_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _tmp_21_rule
    - _PyPegen_dummy_name
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_146_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37484,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37484,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37485,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37498,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37498,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37501,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37504,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37504,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37509,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37509,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37517,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37517,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37520,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37523,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37523,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37528,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37535
      start: 37481
    functionDepth: 1
    functionLinenumber: 37481
    functionLinenumberEnd: 37535
    functionName: _tmp_147_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_147_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37541,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37541,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37542,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37555,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37555,1
    - Dst: items_pattern_rule
      Src: /src/cpython/Parser/parser.c:37559,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37561,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37564,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37564,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:37565,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37569,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37576
      start: 37538
    functionDepth: 2
    functionLinenumber: 37538
    functionLinenumberEnd: 37576
    functionName: _tmp_148_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - items_pattern_rule
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_148_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: positional_patterns_rule
      Src: /src/cpython/Parser/parser.c:37600,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37602,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37605,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37605,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:37606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37610,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37610,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37617
      start: 37579
    functionDepth: 2
    functionLinenumber: 37579
    functionLinenumberEnd: 37617
    functionName: _tmp_149_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - positional_patterns_rule
    - fprintf
    - _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:37623,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37623,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37624,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37637,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37637,1
    - Dst: invalid_kvpair_rule
      Src: /src/cpython/Parser/parser.c:37640,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37643,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37643,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:37656,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37656,1
    - Dst: invalid_kvpair_unpacking_rule
      Src: /src/cpython/Parser/parser.c:37659,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37662,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37662,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37667,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37667,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37674
      start: 37620
    functionDepth: 4
    functionLinenumber: 37620
    functionLinenumberEnd: 37674
    functionName: _tmp_150_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - invalid_kvpair_rule
    - PyThreadState_Get
    - invalid_kvpair_unpacking_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_150_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37680,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37680,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37681,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37694,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37694,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37697,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37700,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37700,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37705,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37705,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37713,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37713,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37716,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37719,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37719,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37724,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37724,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37731
      start: 37677
    functionDepth: 1
    functionLinenumber: 37677
    functionLinenumberEnd: 37731
    functionName: _tmp_151_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_151_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37737,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37737,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37738,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37751,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37751,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37754,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37757,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37757,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37762,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37762,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37770,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37770,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37773,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37776,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37776,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37781,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37781,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37789,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37789,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37792,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37795,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37795,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37800,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37800,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37808,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37808,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37811,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37814,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37814,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37819,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37819,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37826
      start: 37734
    functionDepth: 1
    functionLinenumber: 37734
    functionLinenumberEnd: 37826
    functionName: _tmp_152_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_152_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37832,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37832,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37833,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37846,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37846,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37849,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37852,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37852,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37857,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37857,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37865,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37865,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37868,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37871,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37871,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37876,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37876,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37884,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37884,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37887,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37890,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37890,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37895,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37895,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37902
      start: 37829
    functionDepth: 1
    functionLinenumber: 37829
    functionLinenumberEnd: 37902
    functionName: _tmp_153_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_153_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37908,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37908,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37909,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37922,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37922,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37926,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/parser.c:37928,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37931,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37931,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:37932,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37936,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37936,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37943
      start: 37905
    functionDepth: 1
    functionLinenumber: 37905
    functionLinenumberEnd: 37943
    functionName: _tmp_154_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - _PyPegen_name_token
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_154_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:37949,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:37949,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:37950,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37963,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37963,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37966,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37969,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37969,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37974,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37974,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37982,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37982,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:37985,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37988,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37988,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:37993,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:37993,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38000
      start: 37946
    functionDepth: 1
    functionLinenumber: 37946
    functionLinenumberEnd: 38000
    functionName: _tmp_155_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_155_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38006,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38006,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38020,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38020,1
    - Dst: fstring_rule
      Src: /src/cpython/Parser/parser.c:38023,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38026,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38026,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38031,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38031,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38039,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38039,1
    - Dst: string_rule
      Src: /src/cpython/Parser/parser.c:38042,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38045,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38045,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38050,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38050,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38057
      start: 38003
    functionDepth: 2
    functionLinenumber: 38003
    functionLinenumberEnd: 38057
    functionName: _tmp_156_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - string_rule
    - fstring_rule
    - PyThreadState_Get
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_156_rule(Parser *p)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38063,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38063,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38064,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38077,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38077,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38080,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38083,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38083,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38088,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38088,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38096,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38096,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38099,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38102,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38102,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38107,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38107,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38115,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38115,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38118,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38121,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38121,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38126,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38126,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38134,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38134,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38137,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38140,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38140,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38145,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38145,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38153,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38153,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38156,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38159,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38159,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38164,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38164,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38172,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38172,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38175,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38178,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38178,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38183,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38183,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38191,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38191,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38194,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38197,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38197,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38202,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38202,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 111
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38209
      start: 38060
    functionDepth: 1
    functionLinenumber: 38060
    functionLinenumberEnd: 38209
    functionName: _tmp_157_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_157_rule(Parser *p)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38215,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38215,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38216,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38229,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38229,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38232,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38235,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38235,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38240,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38240,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38248,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38248,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38251,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38254,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38254,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38259,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38259,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38267,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38267,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38270,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38273,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38273,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38278,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38278,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38285
      start: 38212
    functionDepth: 1
    functionLinenumber: 38212
    functionLinenumberEnd: 38285
    functionName: _tmp_158_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:38291,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38291,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38292,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38305,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38305,1
    - Dst: star_targets_rule
      Src: /src/cpython/Parser/parser.c:38309,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38311,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38314,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38314,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:38316,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38324,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38324,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38331
      start: 38288
    functionDepth: 2
    functionLinenumber: 38288
    functionLinenumberEnd: 38331
    functionName: _tmp_159_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - star_targets_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_159_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38337,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38337,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38338,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38351,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38351,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38354,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38357,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38357,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38362,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38362,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38370,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38370,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38373,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38376,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38376,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38381,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38381,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38388
      start: 38334
    functionDepth: 1
    functionLinenumber: 38334
    functionLinenumberEnd: 38388
    functionName: _tmp_160_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:38394,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38394,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38395,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38408,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38408,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38413,1
    - Dst: named_expression_rule
      Src: /src/cpython/Parser/parser.c:38415,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38417,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38420,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38420,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:38422,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38430,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38430,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38437
      start: 38391
    functionDepth: 4
    functionLinenumber: 38391
    functionLinenumberEnd: 38437
    functionName: _tmp_161_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - named_expression_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_161_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38443,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38443,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38444,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38457,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38457,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38461,1
    - Dst: star_expression_rule
      Src: /src/cpython/Parser/parser.c:38463,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38466,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38466,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:38468,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38476,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38476,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38483
      start: 38440
    functionDepth: 3
    functionLinenumber: 38440
    functionLinenumberEnd: 38483
    functionName: _tmp_162_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - star_expression_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _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:38489,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38489,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38490,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38503,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38503,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38507,1
    - Dst: conjunction_rule
      Src: /src/cpython/Parser/parser.c:38509,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38512,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38512,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:38514,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38522,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38522,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38529
      start: 38486
    functionDepth: 2
    functionLinenumber: 38486
    functionLinenumberEnd: 38529
    functionName: _tmp_163_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - conjunction_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_163_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38535,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38535,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38536,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38549,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38549,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38553,1
    - Dst: inversion_rule
      Src: /src/cpython/Parser/parser.c:38555,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38558,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38558,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:38560,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38568,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38568,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38575
      start: 38532
    functionDepth: 2
    functionLinenumber: 38532
    functionLinenumberEnd: 38575
    functionName: _tmp_164_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - inversion_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_164_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38581,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38581,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38582,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38595,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38595,1
    - Dst: slice_rule
      Src: /src/cpython/Parser/parser.c:38598,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38601,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38601,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38606,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38606,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38614,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38614,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:38617,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38620,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38620,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38625,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38625,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38632
      start: 38578
    functionDepth: 5
    functionLinenumber: 38578
    functionLinenumberEnd: 38632
    functionName: _tmp_165_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - starred_expression_rule
    - PyThreadState_Get
    - D
    - fprintf
    - slice_rule
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_165_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38638,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38638,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38639,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38652,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38652,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38656,1
    - Dst: disjunction_rule
      Src: /src/cpython/Parser/parser.c:38658,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38661,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38661,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:38663,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38671,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38671,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38678
      start: 38635
    functionDepth: 2
    functionLinenumber: 38635
    functionLinenumberEnd: 38678
    functionName: _tmp_166_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - disjunction_rule
    - D
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_166_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38684,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38684,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38685,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38698,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38698,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:38701,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38704,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38704,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38709,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38709,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38717,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38717,1
    - Dst: _tmp_178_rule
      Src: /src/cpython/Parser/parser.c:38720,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:38722,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38725,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38725,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38730,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38730,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38737
      start: 38681
    functionDepth: 3
    functionLinenumber: 38681
    functionLinenumberEnd: 38737
    functionName: _tmp_167_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - starred_expression_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - _tmp_178_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_167_rule(Parser *p)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38743,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38743,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38744,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38757,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38757,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38761,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:38763,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38766,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38766,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/parser.c:38768,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38776,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38776,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38783
      start: 38740
    functionDepth: 2
    functionLinenumber: 38740
    functionLinenumberEnd: 38783
    functionName: _tmp_168_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - star_target_rule
    - PyErr_Occurred
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_168_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38790,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38790,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38791,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38804,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38804,1
    - Dst: _gather_91_rule
      Src: /src/cpython/Parser/parser.c:38809,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38811,1
    - Dst: kwargs_rule
      Src: /src/cpython/Parser/parser.c:38813,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38816,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38816,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:38817,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38821,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38828
      start: 38787
    functionDepth: 4
    functionLinenumber: 38787
    functionLinenumberEnd: 38828
    functionName: _tmp_169_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - kwargs_rule
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - _gather_91_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_169_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38834,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38834,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38835,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38848,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38848,1
    - Dst: starred_expression_rule
      Src: /src/cpython/Parser/parser.c:38851,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:38853,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38856,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38856,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38861,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38868
      start: 38831
    functionDepth: 3
    functionLinenumber: 38831
    functionLinenumberEnd: 38868
    functionName: _tmp_170_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - starred_expression_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_170_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38874,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38874,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38875,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38888,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38888,1
    - Dst: _PyPegen_lookahead
      Src: /src/cpython/Parser/parser.c:38891,1
    - Dst: expression_without_invalid_rule
      Src: /src/cpython/Parser/parser.c:38893,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38896,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38896,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38901,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38901,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38908
      start: 38871
    functionDepth: 4
    functionLinenumber: 38871
    functionLinenumberEnd: 38908
    functionName: _tmp_171_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_lookahead
    - PyThreadState_Get
    - expression_without_invalid_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_171_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38914,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38914,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38915,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38928,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38928,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38931,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38934,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38934,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38939,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38939,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38947,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38947,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38950,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38953,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38953,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38958,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38958,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38965
      start: 38911
    functionDepth: 1
    functionLinenumber: 38911
    functionLinenumberEnd: 38965
    functionName: _tmp_172_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_172_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:38971,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:38971,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:38972,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38985,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38985,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:38988,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38991,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38991,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:38996,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:38996,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39004,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39004,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:39007,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39010,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39010,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39015,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39015,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39022
      start: 38968
    functionDepth: 1
    functionLinenumber: 38968
    functionLinenumberEnd: 39022
    functionName: _tmp_173_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_173_rule(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:39028,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:39028,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:39029,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/parser.c:39037,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:39040,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39051,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39051,1
    - Dst: _tmp_179_rule
      Src: /src/cpython/Parser/parser.c:39054,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/parser.c:39060,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:39062,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:39064,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39074,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39074,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/parser.c:39077,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:39079,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/parser.c:39081,1
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/parser.c:39085,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/parser.c:39086,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39089
      start: 39025
    functionDepth: 2
    functionLinenumber: 39025
    functionLinenumberEnd: 39089
    functionName: _loop0_174_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _Py_asdl_generic_seq_new
    - PyErr_NoMemory
    - PyThreadState_Get
    - PyMem_Realloc
    - asdl_seq_SET_UNTYPED
    - D
    - _tmp_179_rule
    - PyMem_Free
    - PyMem_Malloc
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _loop0_174_rule(Parser *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:39095,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:39095,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:39096,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39109,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39109,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:39112,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39115,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39115,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39120,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39120,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39128,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39128,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:39131,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39134,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39134,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39139,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39139,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39147,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39147,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:39150,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39153,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39153,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39158,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39158,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39166,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39166,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:39169,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39172,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39172,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39177,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39177,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39184
      start: 39092
    functionDepth: 1
    functionLinenumber: 39092
    functionLinenumberEnd: 39184
    functionName: _tmp_175_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _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:39190,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:39190,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:39191,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39204,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39204,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:39206,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:39209,1
    - Dst: _tmp_180_rule
      Src: /src/cpython/Parser/parser.c:39211,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39214,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39214,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:39215,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39219,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39226
      start: 39187
    functionDepth: 2
    functionLinenumber: 39187
    functionLinenumberEnd: 39226
    functionName: _tmp_176_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - UNUSED
    - expression_rule
    - PyThreadState_Get
    - _tmp_180_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_176_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:39232,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:39232,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:39233,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39246,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39246,1
    - Dst: UNUSED
      Src: /src/cpython/Parser/parser.c:39248,1
    - Dst: expressions_rule
      Src: /src/cpython/Parser/parser.c:39251,1
    - Dst: _tmp_180_rule
      Src: /src/cpython/Parser/parser.c:39253,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39256,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39256,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:39257,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39261,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39268
      start: 39229
    functionDepth: 2
    functionLinenumber: 39229
    functionLinenumberEnd: 39268
    functionName: _tmp_177_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - UNUSED
    - PyThreadState_Get
    - expressions_rule
    - _tmp_180_rule
    - D
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_177_rule(Parser *p)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:39274,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:39274,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:39275,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39288,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39288,1
    - Dst: assignment_expression_rule
      Src: /src/cpython/Parser/parser.c:39291,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39294,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39294,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39299,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39299,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39307,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39307,1
    - Dst: expression_rule
      Src: /src/cpython/Parser/parser.c:39310,1
    - Dst: _PyPegen_lookahead_with_int
      Src: /src/cpython/Parser/parser.c:39312,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39315,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39315,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39320,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39320,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39327
      start: 39271
    functionDepth: 3
    functionLinenumber: 39271
    functionLinenumberEnd: 39327
    functionName: _tmp_178_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - expression_rule
    - PyThreadState_Get
    - _PyPegen_lookahead_with_int
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - assignment_expression_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_178_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:39333,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:39333,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:39334,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39347,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39347,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:39351,1
    - Dst: bitwise_or_rule
      Src: /src/cpython/Parser/parser.c:39353,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39356,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39356,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:39357,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39361,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39368
      start: 39330
    functionDepth: 2
    functionLinenumber: 39330
    functionLinenumberEnd: 39368
    functionName: _tmp_179_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 1
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - fprintf
    - _Pypegen_stack_overflow
    - bitwise_or_rule
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_179_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ReachedRecursionLimitWithMargin
      Src: /src/cpython/Parser/parser.c:39374,1
    - Dst: PyThreadState_Get
      Src: /src/cpython/Parser/parser.c:39374,1
    - Dst: _Pypegen_stack_overflow
      Src: /src/cpython/Parser/parser.c:39375,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39388,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39388,1
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/parser.c:39392,1
    - Dst: star_target_rule
      Src: /src/cpython/Parser/parser.c:39394,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39397,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39397,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/parser.c:39398,1
    - Dst: D
      Src: /src/cpython/Parser/parser.c:39402,1
    - Dst: fprintf
      Src: /src/cpython/Parser/parser.c:39402,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39409
      start: 39371
    functionDepth: 2
    functionLinenumber: 39371
    functionLinenumberEnd: 39409
    functionName: _tmp_180_rule
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 2
    functionsReached:
    - _Py_ReachedRecursionLimitWithMargin
    - _PyPegen_dummy_name
    - PyThreadState_Get
    - _PyPegen_expect_token
    - D
    - star_target_rule
    - fprintf
    - _Pypegen_stack_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      _tmp_180_rule(Parser *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: file_rule
      Src: /src/cpython/Parser/parser.c:39422,1
    - Dst: interactive_rule
      Src: /src/cpython/Parser/parser.c:39424,1
    - Dst: eval_rule
      Src: /src/cpython/Parser/parser.c:39426,1
    - Dst: func_type_rule
      Src: /src/cpython/Parser/parser.c:39428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39432
      start: 39411
    functionDepth: 2
    functionLinenumber: 39411
    functionLinenumberEnd: 39432
    functionName: _PyPegen_parse
    functionSourceFile: /src/cpython/Parser/parser.c
    functionUses: 0
    functionsReached:
    - eval_rule
    - file_rule
    - interactive_rule
    - func_type_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: 23
    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:
    - asdl_seq_SET_UNTYPED
    - _Py_asdl_generic_seq_new
    - assert
    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: 35
    functionsReached:
    - _Py_asdl_generic_seq_new
    - asdl_seq_GET_UNTYPED
    - asdl_seq_SET_UNTYPED
    - assert
    - _PyPegen_singleton_seq
    - asdl_seq_LEN
    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:
    - _Py_asdl_generic_seq_new
    - asdl_seq_GET_UNTYPED
    - asdl_seq_SET_UNTYPED
    - assert
    - _PyPegen_singleton_seq
    - asdl_seq_LEN
    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_LEN
    - asdl_seq_GET_UNTYPED
    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:
    - _Py_asdl_generic_seq_new
    - asdl_seq_GET_UNTYPED
    - _get_flattened_seq_size
    - asdl_seq_SET_UNTYPED
    - assert
    - asdl_seq_LEN
    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_LEN
    - asdl_seq_GET_UNTYPED
    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:
    - PyUnicode_FromFormat
    - _PyArena_AddPyObject
    - _PyInterpreterState_GET
    - _PyAST_Name
    - assert
    - Py_DECREF
    - _PyUnicode_InternImmortal
    - EXTRA_EXPR
    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:
    - Py_UNREACHABLE
    - asdl_seq_LEN
    - asdl_seq_GET_UNTYPED
    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: 11
    functionLinenumber: 162
    functionLinenumberEnd: 174
    functionName: _PyPegen_alias_for_star
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyArena_AddPyObject
    - _PyAST_alias
    - PyUnicode_InternFromString
    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_GET
    - asdl_seq_SET
    - assert
    - _Py_asdl_identifier_seq_new
    - asdl_seq_LEN
    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:
    - _PyArena_Malloc
    - assert
    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_GET_UNTYPED
    - asdl_seq_SET
    - _Py_asdl_int_seq_new
    - assert
    - asdl_seq_LEN
    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_GET_UNTYPED
    - asdl_seq_SET
    - _Py_asdl_expr_seq_new
    - assert
    - asdl_seq_LEN
    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_GET
    - asdl_seq_SET
    - _PyPegen_set_expr_context
    - _Py_asdl_expr_seq_new
    - asdl_seq_LEN
    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:
    - EXTRA_EXPR
    - _PyAST_Tuple
    - _set_seq_context
    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:
    - EXTRA_EXPR
    - _set_seq_context
    - _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:
    - _PyAST_Attribute
    - EXTRA_EXPR
    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:
    - _PyPegen_set_expr_context
    - EXTRA_EXPR
    - _PyAST_Starred
    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_subscript_context::_set_subscript_context
    - expr::expr
    - assert
    - _set_attribute_context::_set_attribute_context
    - _set_starred_context::_set_starred_context
    - _set_list_context::_set_list_context
    - _set_name_context::_set_name_context
    - _set_tuple_context::_set_tuple_context
    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_LEN
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - asdl_seq_GET_UNTYPED
    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_LEN
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - asdl_seq_GET_UNTYPED
    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_LEN
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - asdl_seq_GET_UNTYPED
    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_LEN
    - asdl_seq_SET
    - _Py_asdl_pattern_seq_new
    - asdl_seq_GET_UNTYPED
    linkageType: ''
    returnType: asdl_pattern_seq
    signature: 'asdl_pattern_seq *

      _PyPegen_get_patterns(Parser *p, asdl_seq *seq)'
  - BBCount: 3
    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: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - arg
    - value
    - tc
    argTypes:
    - Parser*
    - arg_ty
    - expr_ty
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 443
    functionName: _PyPegen_name_default_pair
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 4
    functionsReached:
    - _PyArena_Malloc
    - _PyPegen_add_type_comment_to_arg
    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:449,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: 456
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 456
    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:462,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: 470
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 470
    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:475,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:476,1
    - Dst: _Py_asdl_generic_seq_new
      Src: /src/cpython/Parser/action_helpers.c:477,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
    - Dst: asdl_seq_SET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:487,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - Parser*
    - asdl_seq*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 491
    functionName: _PyPegen_join_sequences
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_SET_UNTYPED
    - asdl_seq_LEN
    - _Py_asdl_generic_seq_new
    - asdl_seq_GET_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:496,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:497,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:502,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - names_with_defaults
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 506
    functionName: _get_names
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - _Py_asdl_arg_seq_new
    - asdl_seq_SET
    - asdl_seq_GET_UNTYPED
    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:511,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:512,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:517,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - names_with_defaults
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 521
    functionName: _get_defaults
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 5
    functionsReached:
    - asdl_seq_LEN
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - asdl_seq_GET_UNTYPED
    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:533,1
    - Dst: _PyPegen_join_sequences
      Src: /src/cpython/Parser/action_helpers.c:537,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:543,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: 546
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 546
    functionName: _make_posonlyargs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _get_names
    - _Py_asdl_arg_seq_new
    - _PyPegen_join_sequences
    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:556,1
    - Dst: _PyPegen_join_sequences
      Src: /src/cpython/Parser/action_helpers.c:560,1
    - Dst: _get_names
      Src: /src/cpython/Parser/action_helpers.c:564,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:571,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:575,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: 570
        line_start: 570
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 579
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 579
    functionName: _make_posargs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _get_names
    - _Py_asdl_arg_seq_new
    - _PyPegen_join_sequences
    - assert
    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:588,1
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:592,1
    - Dst: _PyPegen_join_sequences
      Src: /src/cpython/Parser/action_helpers.c:596,1
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:602,1
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:605,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:608,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: 611
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 611
    functionName: _make_posdefaults
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _get_defaults
    - _PyPegen_join_sequences
    - _Py_asdl_expr_seq_new
    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:618,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:621,1
    - Dst: _get_defaults
      Src: /src/cpython/Parser/action_helpers.c:629,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:632,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: 640
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 640
    functionName: _make_kwargs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _get_names
    - _get_defaults
    - _Py_asdl_arg_seq_new
    - _Py_asdl_expr_seq_new
    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:649,1
    - Dst: _make_posargs
      Src: /src/cpython/Parser/action_helpers.c:654,1
    - Dst: _make_posdefaults
      Src: /src/cpython/Parser/action_helpers.c:659,1
    - Dst: _make_kwargs
      Src: /src/cpython/Parser/action_helpers.c:670,1
    - Dst: _PyAST_arguments
      Src: /src/cpython/Parser/action_helpers.c:679,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: 681
      start: 643
    functionDepth: 3
    functionLinenumber: 643
    functionLinenumberEnd: 681
    functionName: _PyPegen_make_arguments
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyAST_arguments
    - _make_posargs
    - _make_kwargs
    - _make_posonlyargs
    - _make_posdefaults
    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:689,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:693,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:697,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Parser/action_helpers.c:701,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:705,1
    - Dst: _PyAST_arguments
      Src: /src/cpython/Parser/action_helpers.c:710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 712
    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:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - kind
    argTypes:
    - Parser*
    - operator_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 724
    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:730,1
    - Dst: _PyAST_AsyncFunctionDef
      Src: /src/cpython/Parser/action_helpers.c:732,1
    - Dst: _PyAST_FunctionDef
      Src: /src/cpython/Parser/action_helpers.c:743,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: 729
        line_start: 729
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 752
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 752
    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:758,1
    - Dst: _PyAST_ClassDef
      Src: /src/cpython/Parser/action_helpers.c:759,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: 757
        line_start: 757
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 766
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 766
    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:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - element
    - is_keyword
    argTypes:
    - Parser*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 779
    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:786,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - seq
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 793
    functionName: _seq_number_of_starred_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET_UNTYPED
    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:799,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:803,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:809,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:810,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p
    - kwargs
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 816
    functionName: _PyPegen_seq_extract_starred_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - asdl_seq_SET
    - _seq_number_of_starred_exprs
    - _Py_asdl_expr_seq_new
    - asdl_seq_LEN
    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:822,1
    - Dst: _seq_number_of_starred_exprs
      Src: /src/cpython/Parser/action_helpers.c:823,1
    - Dst: _Py_asdl_keyword_seq_new
      Src: /src/cpython/Parser/action_helpers.c:827,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Parser/action_helpers.c:834,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p
    - kwargs
    argTypes:
    - Parser*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 840
    functionName: _PyPegen_seq_delete_starred_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET_UNTYPED
    - _Py_asdl_keyword_seq_new
    - asdl_seq_SET
    - _seq_number_of_starred_exprs
    - asdl_seq_LEN
    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:845,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - exp
    argTypes:
    - Parser*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 850
    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:855,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - exp
    argTypes:
    - Parser*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 860
    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:868,1
    - Dst: _PyPegen_new_type_comment
      Src: /src/cpython/Parser/action_helpers.c:873,1
    - Dst: _PyAST_TypeIgnore
      Src: /src/cpython/Parser/action_helpers.c:877,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:882,1
    - Dst: _PyAST_Module
      Src: /src/cpython/Parser/action_helpers.c:885,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - Parser*
    - asdl_stmt_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 886
    functionName: _PyPegen_make_module
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyAST_TypeIgnore
    - _PyPegen_new_type_comment
    - asdl_seq_SET
    - _PyAST_Module
    - _Py_asdl_type_ignore_seq_new
    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:891,1
    - Dst: strlen
      Src: /src/cpython/Parser/action_helpers.c:891,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:896,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - Parser*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 900
    functionName: _PyPegen_new_type_comment
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyUnicode_DecodeUTF8
    - strlen
    - _PyArena_AddPyObject
    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:908,1
    - Dst: _PyPegen_new_type_comment
      Src: /src/cpython/Parser/action_helpers.c:912,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Parser/action_helpers.c:916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - a
    - tc
    argTypes:
    - Parser*
    - arg_ty
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 902
    functionDepth: 3
    functionLinenumber: 902
    functionLinenumberEnd: 919
    functionName: _PyPegen_add_type_comment_to_arg
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 3
    functionsReached:
    - _PyAST_arg
    - _PyPegen_new_type_comment
    - PyBytes_AsString
    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:925,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:926,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/action_helpers.c:928,1
    - Dst: strcmp
      Src: /src/cpython/Parser/action_helpers.c:929,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/action_helpers.c:930,1
    - Dst: strcmp
      Src: /src/cpython/Parser/action_helpers.c:934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - Parser*
    - Token*
    assertStmts:
    - condition: (t->bytes != NULL)
      pos:
        line_end: 924
        line_start: 924
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (t->type == NOTEQUAL)
      pos:
        line_end: 925
        line_start: 925
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 937
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 937
    functionName: _PyPegen_check_barry_as_flufl
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - RAISE_SYNTAX_ERROR
    - strcmp
    - 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:946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - p
    - name
    argTypes:
    - Parser*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 939
    functionDepth: 2
    functionLinenumber: 939
    functionLinenumberEnd: 951
    functionName: _PyPegen_check_legacy_stmt
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    linkageType: ''
    returnType: int
    signature: int _PyPegen_check_legacy_stmt(Parser *p, expr_ty name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_check_legacy_stmt
      Src: /src/cpython/Parser/action_helpers.c:957,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:969,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - a
    - b
    argTypes:
    - Parser*
    - expr_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 980
    functionName: _PyPegen_raise_error_for_missing_comma
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyPegen_check_legacy_stmt
    - RAISE_ERROR_KNOWN_LOCATION
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_raise_error_for_missing_comma(Parser *p, expr_ty a, expr_ty b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Parser/action_helpers.c:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - result
    - metadata
    argTypes:
    - Parser*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 992
    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:998,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/action_helpers.c:1001,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Parser/action_helpers.c:1005,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1006,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:1008,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/action_helpers.c:1010,1
    - Dst: result_token_with_metadata
      Src: /src/cpython/Parser/action_helpers.c:1015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - p
    - conv_token
    - conv
    argTypes:
    - Parser*
    - Token*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1016
    functionName: _PyPegen_check_fstring_conversion
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READ_CHAR
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - result_token_with_metadata
    - PyUnicode_GET_LENGTH
    - TOK_GET_STRING_PREFIX
    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:1029,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1032,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1034,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1035,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1039,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1045,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1047,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1048,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1051,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1053,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1057,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1058,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1059,1
    - Dst: _PyPegen_concatenate_strings
      Src: /src/cpython/Parser/action_helpers.c:1062,1
    - Dst: result_token_with_metadata
      Src: /src/cpython/Parser/action_helpers.c:1069,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: 1052
        line_start: 1052
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1070
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1070
    functionName: _PyPegen_setup_full_format_spec
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - asdl_seq_GET
    - _PyPegen_concatenate_strings
    - PyUnicode_CheckExact
    - asdl_seq_SET
    - _Py_asdl_expr_seq_new
    - result_token_with_metadata
    - PyUnicode_GET_LENGTH
    - assert
    - asdl_seq_LEN
    - _PyAST_JoinedStr
    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:1075,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/action_helpers.c:1143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts:
    - condition: (e != NULL)
      pos:
        line_end: 1074
        line_start: 1074
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1148
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1148
    functionName: _PyPegen_get_expr_name
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 9
    functionsReached:
    - PyErr_Format
    - assert
    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:1152,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/action_helpers.c:1155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - comprehension
    argTypes:
    - comprehension_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1156
    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:1161,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/action_helpers.c:1165,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/action_helpers.c:1165,1
    - Dst: _PyPegen_seq_extract_starred_exprs
      Src: /src/cpython/Parser/action_helpers.c:1170,1
    - Dst: _PyPegen_seq_delete_starred_exprs
      Src: /src/cpython/Parser/action_helpers.c:1171,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1174,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1177,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1184,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1184,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1187,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1187,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Parser/action_helpers.c:1190,1
    - Dst: _PyPegen_dummy_name
      Src: /src/cpython/Parser/action_helpers.c:1190,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: 1192
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1192
    functionName: _PyPegen_collect_call_seqs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - _PyPegen_dummy_name
    - asdl_seq_SET
    - _PyAST_Call
    - _PyPegen_seq_extract_starred_exprs
    - _Py_asdl_expr_seq_new
    - _PyPegen_seq_delete_starred_exprs
    - asdl_seq_LEN
    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:1222,1
    - Dst: VISIT_CONTAINER
      Src: /src/cpython/Parser/action_helpers.c:1225,1
    - Dst: _PyPegen_get_invalid_target
      Src: /src/cpython/Parser/action_helpers.c:1231,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1237,1
    - Dst: _PyPegen_get_invalid_target
      Src: /src/cpython/Parser/action_helpers.c:1239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - e
    - targets_type
    argTypes:
    - expr_ty
    - TARGETS_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1251
    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: 1213
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1213
    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:1255,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1256,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/action_helpers.c:1269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - e
    argTypes:
    - Parser*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1270
    functionName: _PyPegen_arguments_parsing_error
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_LEN
    - RAISE_SYNTAX_ERROR
    - 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:1282,1
    - Dst: PyPegen_last_item
      Src: /src/cpython/Parser/action_helpers.c:1287,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_RANGE
      Src: /src/cpython/Parser/action_helpers.c:1289,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1290,1
    - Dst: _PyPegen_get_last_comprehension_item
      Src: /src/cpython/Parser/action_helpers.c:1291,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: 1294
      start: 1272
    functionDepth: 2
    functionLinenumber: 1272
    functionLinenumberEnd: 1294
    functionName: _PyPegen_nonparen_genexp_in_call
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - RAISE_SYNTAX_ERROR_KNOWN_RANGE
    - _PyPegen_get_last_comprehension_item
    - PyPegen_last_item
    - asdl_seq_LEN
    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:1300,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1300,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Parser/action_helpers.c:1302,1
    - Dst: strcmp
      Src: /src/cpython/Parser/action_helpers.c:1308,1
    - Dst: strcmp
      Src: /src/cpython/Parser/action_helpers.c:1308,1
    - Dst: strlen
      Src: /src/cpython/Parser/action_helpers.c:1311,1
    - Dst: strchr
      Src: /src/cpython/Parser/action_helpers.c:1314,1
    - Dst: _PyPegen_decode_string
      Src: /src/cpython/Parser/action_helpers.c:1315,1
    - Dst: _Pypegen_raise_decode_error
      Src: /src/cpython/Parser/action_helpers.c:1317,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1321,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1324,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: 1299
        line_start: 1299
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1327
      start: 1298
    functionDepth: 6
    functionLinenumber: 1298
    functionLinenumberEnd: 1327
    functionName: _PyPegen_decode_fstring_part
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - _PyPegen_decode_string
    - strcmp
    - _Pypegen_raise_decode_error
    - PyUnicode_CheckExact
    - strchr
    - PyUnicode_AsUTF8
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - strlen
    - assert
    - Py_DECREF
    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:1332,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1335,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1337,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/action_helpers.c:1341,1
    - Dst: strpbrk
      Src: /src/cpython/Parser/action_helpers.c:1345,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1347,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1354,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1362,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/action_helpers.c:1363,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1371,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1372,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1373,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1375,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1376,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1377,1
    - Dst: _PyPegen_decode_fstring_part
      Src: /src/cpython/Parser/action_helpers.c:1383,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1391,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1392,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1396,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1401,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1406,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1406,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: (first->kind == Constant_kind)
      pos:
        line_end: 1371
        line_start: 1371
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: ((string_kind == TSTRING && second->kind == Interpolation_kind) ||
        second->kind == FormattedValue_kind)
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1413
      start: 1329
    functionDepth: 7
    functionLinenumber: 1329
    functionLinenumberEnd: 1413
    functionName: _get_resized_exprs
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - assert
    - strpbrk
    - PyUnicode_CheckExact
    - asdl_seq_SET
    - _PyPegen_decode_fstring_part
    - _Py_asdl_expr_seq_new
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyBytes_AsString
    - asdl_seq_LEN
    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:1418,1
    - Dst: _PyAST_TemplateStr
      Src: /src/cpython/Parser/action_helpers.c:1419,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: 1422
      start: 1415
    functionDepth: 8
    functionLinenumber: 1415
    functionLinenumberEnd: 1422
    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:1427,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1428,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: 1431
      start: 1424
    functionDepth: 8
    functionLinenumber: 1424
    functionLinenumberEnd: 1431
    functionName: _PyPegen_joined_str
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _get_resized_exprs
    - _PyAST_JoinedStr
    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:1436,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/action_helpers.c:1442,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/action_helpers.c:1443,1
    - Dst: _PyPegen_decode_string
      Src: /src/cpython/Parser/action_helpers.c:1447,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1452,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - p
    - tok
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1433
    functionDepth: 2
    functionLinenumber: 1433
    functionLinenumberEnd: 1458
    functionName: _PyPegen_decoded_constant_from_token
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyPegen_decode_string
    - TOK_GET_MODE
    - _PyArena_AddPyObject
    - INSIDE_FSTRING
    - _PyAST_Constant
    - Py_DECREF
    - PyBytes_AsStringAndSize
    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:1461,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/action_helpers.c:1465,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1470,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - tok
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1460
    functionDepth: 2
    functionLinenumber: 1460
    functionLinenumberEnd: 1476
    functionName: _PyPegen_constant_from_token
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - PyBytes_AsString
    - Py_DECREF
    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:1479,1
    - Dst: _PyPegen_parse_string
      Src: /src/cpython/Parser/action_helpers.c:1483,1
    - Dst: _Pypegen_raise_decode_error
      Src: /src/cpython/Parser/action_helpers.c:1485,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1489,1
    - Dst: _PyPegen_new_identifier
      Src: /src/cpython/Parser/action_helpers.c:1494,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - p
    - tok
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1500
    functionName: _PyPegen_constant_from_string
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyPegen_new_identifier
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - PyBytes_AsString
    - _Pypegen_raise_decode_error
    - Py_DECREF
    - _PyPegen_parse_string
    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:1508,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Parser/action_helpers.c:1509,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Parser/action_helpers.c:1510,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: 1507
        line_start: 1507
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1517
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1517
    functionName: _get_interpolation_conversion
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyUnicode_READ_CHAR
    - 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:1522,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Parser/action_helpers.c:1525,1
    - Dst: _PyUnicode_IsWhitespace
      Src: /src/cpython/Parser/action_helpers.c:1526,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Parser/action_helpers.c:1534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - exprstr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1519
    functionDepth: 8
    functionLinenumber: 1519
    functionLinenumberEnd: 1535
    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:1541,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1564,1
    - Dst: _strip_interpolation_expr
      Src: /src/cpython/Parser/action_helpers.c:1565,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1566,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/action_helpers.c:1567,1
    - Dst: _PyAST_Interpolation
      Src: /src/cpython/Parser/action_helpers.c:1571,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1581,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1587,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1588,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1589,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1590,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: 1563
        line_start: 1563
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1591
      start: 1537
    functionDepth: 9
    functionLinenumber: 1537
    functionLinenumberEnd: 1591
    functionName: _PyPegen_interpolation
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - _PyAST_Interpolation
    - _strip_interpolation_expr
    - _PyArena_AddPyObject
    - _get_interpolation_conversion
    - _PyAST_Constant
    - _Py_asdl_expr_seq_new
    - Py_XDECREF
    - assert
    - asdl_seq_SET
    - _PyAST_JoinedStr
    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:1596,1
    - Dst: _PyAST_FormattedValue
      Src: /src/cpython/Parser/action_helpers.c:1598,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1627,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1633,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1634,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1635,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1636,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: 1637
      start: 1593
    functionDepth: 2
    functionLinenumber: 1593
    functionLinenumberEnd: 1637
    functionName: _PyPegen_formatted_value
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _PyAST_FormattedValue
    - _get_interpolation_conversion
    - _PyAST_Constant
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - _PyAST_JoinedStr
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1644,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1645,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1651,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1655,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Parser/action_helpers.c:1657,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/action_helpers.c:1659,1
    - Dst: PyBytesWriter_Create
      Src: /src/cpython/Parser/action_helpers.c:1665,1
    - Dst: PyBytesWriter_GetData
      Src: /src/cpython/Parser/action_helpers.c:1669,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1672,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Parser/action_helpers.c:1674,1
    - Dst: memcpy
      Src: /src/cpython/Parser/action_helpers.c:1676,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/action_helpers.c:1676,1
    - Dst: PyBytesWriter_Finish
      Src: /src/cpython/Parser/action_helpers.c:1681,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1686,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1689,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    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: 1644
        line_start: 1644
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1690
      start: 1639
    functionDepth: 8
    functionLinenumber: 1639
    functionLinenumberEnd: 1690
    functionName: _build_concatenated_bytes
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - PyErr_NoMemory
    - PyBytes_AS_STRING
    - PyBytesWriter_Create
    - _PyArena_AddPyObject
    - PyBytesWriter_Finish
    - _PyAST_Constant
    - memcpy
    - assert
    - PyBytesWriter_GetData
    - asdl_seq_LEN
    - Py_DECREF
    - PyBytes_GET_SIZE
    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:1697,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1698,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1700,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Parser/action_helpers.c:1710,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1716,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1717,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Parser/action_helpers.c:1719,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Parser/action_helpers.c:1721,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Parser/action_helpers.c:1726,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1731,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1734,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: 1697
        line_start: 1697
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (current_elem->kind == Constant_kind)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1736
      start: 1692
    functionDepth: 5
    functionLinenumber: 1692
    functionLinenumberEnd: 1736
    functionName: _build_concatenated_unicode
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - asdl_seq_GET
    - PyUnicodeWriter_Discard
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - PyUnicodeWriter_Finish
    - assert
    - Py_DECREF
    - asdl_seq_LEN
    - PyUnicodeWriter_WriteStr
    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:1743,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1744,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1748,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1751,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1754,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1763,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1771,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1774,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1775,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1779,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1783,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1784,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1788,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1792,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1801,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1807,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1808,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Parser/action_helpers.c:1817,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1825,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1831,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Parser/action_helpers.c:1842,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1849,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Parser/action_helpers.c:1851,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Parser/action_helpers.c:1853,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Parser/action_helpers.c:1863,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/action_helpers.c:1867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/action_helpers.c:1868,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/action_helpers.c:1871,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1881,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/action_helpers.c:1882,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Parser/action_helpers.c:1887,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1890,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: 1889
        line_start: 1889
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (len > 0)
      pos:
        line_end: 1743
        line_start: 1743
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1892
      start: 1738
    functionDepth: 5
    functionLinenumber: 1738
    functionLinenumberEnd: 1892
    functionName: _build_concatenated_str
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - asdl_seq_GET
    - PyUnicodeWriter_Discard
    - PyUnicode_CheckExact
    - asdl_seq_SET
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - PyUnicodeWriter_Finish
    - _Py_asdl_expr_seq_new
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    - asdl_seq_LEN
    - PyUnicodeWriter_WriteStr
    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:1899,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Parser/action_helpers.c:1901,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: 1902
      start: 1894
    functionDepth: 6
    functionLinenumber: 1894
    functionLinenumberEnd: 1902
    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:1909,1
    - Dst: _PyAST_TemplateStr
      Src: /src/cpython/Parser/action_helpers.c:1911,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: 1913
      start: 1904
    functionDepth: 6
    functionLinenumber: 1904
    functionLinenumberEnd: 1913
    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:1920,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1921,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1929,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Parser/action_helpers.c:1932,1
    - Dst: assert
      Src: /src/cpython/Parser/action_helpers.c:1943,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/action_helpers.c:1953,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1960,1
    - Dst: _build_concatenated_bytes
      Src: /src/cpython/Parser/action_helpers.c:1963,1
    - Dst: _build_concatenated_unicode
      Src: /src/cpython/Parser/action_helpers.c:1967,1
    - Dst: _build_concatenated_joined_str
      Src: /src/cpython/Parser/action_helpers.c:1972,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: 1942
        line_start: 1942
        source_file: /src/cpython/Parser/action_helpers.c
    - condition: (len > 0)
      pos:
        line_end: 1920
        line_start: 1920
        source_file: /src/cpython/Parser/action_helpers.c
    constantsTouched: []
    func_position:
      end: 1974
      start: 1915
    functionDepth: 9
    functionLinenumber: 1915
    functionLinenumberEnd: 1974
    functionName: _PyPegen_concatenate_strings
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 2
    functionsReached:
    - _build_concatenated_joined_str
    - _build_concatenated_unicode
    - asdl_seq_GET
    - PyBytes_CheckExact
    - _build_concatenated_bytes
    - assert
    - asdl_seq_LEN
    - RAISE_SYNTAX_ERROR
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Parser/action_helpers.c:1981,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/action_helpers.c:1983,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:1987,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:1988,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Parser/action_helpers.c:1989,1
    - Dst: _PyAST_ImportFrom
      Src: /src/cpython/Parser/action_helpers.c:1994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 10
    argNames:
    - p
    - module
    - names
    - level
    - lazy_token
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - Parser*
    - identifier
    - asdl_alias_seq*
    - int
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1976
    functionDepth: 2
    functionLinenumber: 1976
    functionLinenumberEnd: 1996
    functionName: _PyPegen_checked_future_import
    functionSourceFile: /src/cpython/Parser/action_helpers.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - PyUnicode_CompareWithASCIIString
    - asdl_seq_LEN
    - _PyAST_ImportFrom
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyPegen_checked_future_import(Parser *p, identifier module,
      asdl_alias_seq * names,\n                               int level, expr_ty lazy_token,
      int lineno,\n                               int col_offset, int end_lineno,
      int end_col_offset,\n                               PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Parser/action_helpers.c:2003,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Parser/action_helpers.c:2007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - p
    - stmts
    argTypes:
    - Parser*
    - asdl_stmt_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1998
    functionDepth: 1
    functionLinenumber: 1998
    functionLinenumberEnd: 2016
    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:
    - PyBytes_Size
    - PyErr_WarnExplicitObject
    - PyUnicode_FromFormat
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyBytes_AsString
    - Py_DECREF
    - RAISE_ERROR_KNOWN_LOCATION
    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
    - decode_utf8
    - PyBytes_FromStringAndSize
    - strcpy
    - PyUnicode_DATA
    - PyUnicode_READ
    - assert
    - warn_invalid_escape_sequence
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyBytes_AsString
    - Py_DECREF
    - _PyUnicode_DecodeUnicodeEscapeInternal2
    - PyBytes_GET_SIZE
    - sprintf
    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:
    - _PyBytes_DecodeEscape2
    - warn_invalid_escape_sequence
    - 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:
    - PyUnicode_DecodeUTF8Stateful
    - decode_unicode_with_escapes
    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:
    - Py_ISALPHA
    - _PyPegen_decode_string
    - assert
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - decode_bytes_with_escapes
    - Py_CHARMASK
    - PyErr_BadInternalCall
    - strchr
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - strlen
    - PyBytes_AsString
    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:
    - fileno
    - _PyOS_SigintEvent
    - _Py_IsMainInterpreter
    - _get_osfhandle
    - WaitForSingleObjectEx
    - PyErr_CheckSignals
    - _PyOS_InterruptOccurred
    - ResetEvent
    - fgets
    - feof
    - clearerr
    - PyEval_SaveThread
    - GetLastError
    - 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:
    - _PyOS_SigintEvent
    - PyErr_SetFromWindowsErr
    - _Py_IsMainInterpreter
    - PyErr_NoMemory
    - PyMem_RawRealloc
    - PyErr_CheckSignals
    - WaitForSingleObjectEx
    - wcscpy_s
    - ResetEvent
    - WideCharToMultiByte
    - PyEval_SaveThread
    - PyMem_RawFree
    - PyMem_RawMalloc
    - GetLastError
    - PyEval_RestoreThread
    - ReadConsoleW
    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: 17
    EdgeCount: 17
    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:
    - PyMem_RawRealloc
    - my_fgets
    - assert
    - fflush
    - fileno
    - _PyInterpreterState_GetConfig
    - PyErr_NoMemory
    - MultiByteToWideChar
    - _Py_get_osfhandle_noraise
    - _get_console_type
    - PyMem_RawFree
    - clearerr
    - strlen
    - WriteConsoleW
    - _PyOS_WindowsConsoleReadline
    - PyEval_RestoreThread
    - PyErr_SetString
    - PyMem_RawMalloc
    - fprintf
    - PyEval_SaveThread
    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:
    - fileno
    - PyOS_StdioReadline
    - PyMutex_Unlock
    - _Py_atomic_store_ptr_relaxed
    - _Py_IsMainInterpreter
    - PyErr_NoMemory
    - PyErr_SetString
    - isatty
    - PyMem_RawFree
    - _PyThreadState_GET
    - _Py_atomic_load_ptr_relaxed
    - memcpy
    - strlen
    - 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: 23
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 23
    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:28,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Parser/pegen.c:42,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: 48
      start: 25
    functionDepth: 6
    functionLinenumber: 25
    functionLinenumberEnd: 48
    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:53,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:57,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/pegen.c:58,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Parser/pegen.c:62,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:63,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: 56
        line_start: 56
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: _PyPegen_byte_offset_to_character_offset_raw
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    - PyUnicode_GET_LENGTH
    - strlen
    - assert
    - Py_DECREF
    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:70,1
    - Dst: _PyPegen_byte_offset_to_character_offset_raw
      Src: /src/cpython/Parser/pegen.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - line
    - col_offset
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 75
    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:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - p
    - mark
    - type
    - node
    argTypes:
    - Parser*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: _PyPegen_insert_memo
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 20
    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:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - p
    - mark
    - type
    - node
    argTypes:
    - Parser*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 109
    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:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    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:127,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:128,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: 126
        line_start: 126
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: growable_comment_array_init
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - assert
    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:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arr
    - lineno
    - comment
    argTypes:
    - growable_comment_array*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 151
    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:156,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arr
    argTypes:
    - growable_comment_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 159
    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:165,1
    - Dst: strncmp
      Src: /src/cpython/Parser/pegen.c:173,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: 164
        line_start: 164
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 178
    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:182,1
    - Dst: _get_keyword_or_name_type
      Src: /src/cpython/Parser/pegen.c:184,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Parser/pegen.c:185,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:189,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:190,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:197,1
    - Dst: _Pypegen_raise_decode_error
      Src: /src/cpython/Parser/pegen.c:215,1
    - Dst: _Pypegen_tokenizer_error
      Src: /src/cpython/Parser/pegen.c:218,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: 181
        line_start: 181
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 219
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 219
    functionName: initialize_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - _Pypegen_raise_decode_error
    - PyBytes_FromStringAndSize
    - _get_keyword_or_name_type
    - _Pypegen_tokenizer_error
    - _PyArena_AddPyObject
    - assert
    - Py_DECREF
    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:224,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:226,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Parser/pegen.c:232,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 241
    functionName: _resize_tokens_array
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyMem_Realloc
    - 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:247,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Parser/pegen.c:248,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:253,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:255,1
    - Dst: strncpy
      Src: /src/cpython/Parser/pegen.c:258,1
    - Dst: growable_comment_array_add
      Src: /src/cpython/Parser/pegen.c:261,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:262,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Parser/pegen.c:265,1
    - Dst: _resize_tokens_array
      Src: /src/cpython/Parser/pegen.c:283,1
    - Dst: initialize_token
      Src: /src/cpython/Parser/pegen.c:288,1
    - Dst: _PyToken_Free
      Src: /src/cpython/Parser/pegen.c:290,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 292
    functionName: _PyPegen_fill_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 103
    functionsReached:
    - _PyToken_Init
    - _PyToken_Free
    - PyErr_NoMemory
    - _PyTokenizer_Get
    - _resize_tokens_array
    - strncpy
    - initialize_token
    - PyMem_Malloc
    - growable_comment_array_add
    linkageType: ''
    returnType: int
    signature: int _PyPegen_fill_token(Parser *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Parser/pegen.c:305,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Parser/pegen.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: _PyPegen_clear_memo_statistics
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - PyMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void _PyPegen_clear_memo_statistics(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Parser/pegen.c:315,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Parser/pegen.c:320,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Parser/pegen.c:322,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Parser/pegen.c:324,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:325,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Parser/pegen.c:329,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Parser/pegen.c:330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:331,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Parser/pegen.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 337
    functionName: _PyPegen_get_memo_statistics
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - PyMutex_Unlock
    - PyLong_FromLong
    - PyList_New
    - Py_DECREF
    - PyMutex_Lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPegen_get_memo_statistics(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/pegen.c:344,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Parser/pegen.c:361,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Parser/pegen.c:363,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - p
    - type
    - pres
    argTypes:
    - Parser*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 372
    functionName: _PyPegen_is_memoized
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 30
    functionsReached:
    - PyMutex_Lock
    - _PyPegen_fill_token
    - PyMutex_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: 383
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 383
    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: 398
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 398
    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:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - type
    argTypes:
    - Parser*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 403
    functionDepth: 6
    functionLinenumber: 403
    functionLinenumberEnd: 418
    functionName: _PyPegen_expect_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 313
    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:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - p
    - result
    - expected
    argTypes:
    - Parser*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 431
    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:441,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen.c:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - p
    - type
    - expected
    argTypes:
    - Parser*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 433
    functionDepth: 6
    functionLinenumber: 433
    functionLinenumberEnd: 453
    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:459,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/pegen.c:468,1
    - Dst: strcmp
      Src: /src/cpython/Parser/pegen.c:473,1
    - Dst: _PyPegen_name_token
      Src: /src/cpython/Parser/pegen.c:476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - p
    - keyword
    argTypes:
    - Parser*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 455
    functionDepth: 6
    functionLinenumber: 455
    functionLinenumberEnd: 477
    functionName: _PyPegen_expect_soft_keyword
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 10
    functionsReached:
    - _PyPegen_fill_token
    - strcmp
    - _PyPegen_name_token
    - PyBytes_AsString
    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:482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts:
    - condition: (p->mark >= 0)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 491
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 491
    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:496,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:496,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Parser/pegen.c:502,1
    - Dst: init_normalization
      Src: /src/cpython/Parser/pegen.c:504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:506,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Parser/pegen.c:509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:512,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Parser/pegen.c:516,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:518,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Parser/pegen.c:523,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/pegen.c:525,1
    - Dst: _PyType_Name
      Src: /src/cpython/Parser/pegen.c:528,1
    - Dst: Py_TYPE
      Src: /src/cpython/Parser/pegen.c:528,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:529,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Parser/pegen.c:541,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/pegen.c:542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:545,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Parser/pegen.c:549,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Parser/pegen.c:550,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:553,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - Parser*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 493
    functionDepth: 11
    functionLinenumber: 493
    functionLinenumberEnd: 561
    functionName: _PyPegen_new_identifier
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 1
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_InternFromString
    - PyObject_Vectorcall
    - PyUnicode_DecodeUTF8
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    - _PyInterpreterState_GET
    - _PyArena_AddPyObject
    - strlen
    - PyErr_Format
    - Py_DECREF
    - _PyType_Name
    - _PyUnicode_InternImmortal
    - init_normalization
    - 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:569,1
    - Dst: _PyPegen_new_identifier
      Src: /src/cpython/Parser/pegen.c:574,1
    - Dst: _PyAST_Name
      Src: /src/cpython/Parser/pegen.c:579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 563
    functionDepth: 12
    functionLinenumber: 563
    functionLinenumberEnd: 581
    functionName: _PyPegen_name_from_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - _PyPegen_new_identifier
    - _PyAST_Name
    - PyBytes_AsString
    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:586,1
    - Dst: _PyPegen_name_from_token
      Src: /src/cpython/Parser/pegen.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 583
    functionDepth: 13
    functionLinenumber: 583
    functionLinenumberEnd: 588
    functionName: _PyPegen_name_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 47
    functionsReached:
    - _PyPegen_expect_token
    - _PyPegen_name_from_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:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 7
    functionLinenumber: 590
    functionLinenumberEnd: 594
    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:597,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Parser/pegen.c:603,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:605,1
    - Dst: strncmp
      Src: /src/cpython/Parser/pegen.c:606,1
    - Dst: _PyPegen_name_from_token
      Src: /src/cpython/Parser/pegen.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 596
    functionDepth: 13
    functionLinenumber: 596
    functionLinenumberEnd: 611
    functionName: _PyPegen_soft_keyword_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 1
    functionsReached:
    - strncmp
    - _PyPegen_expect_token
    - _PyPegen_name_from_token
    - strlen
    - PyBytes_AsStringAndSize
    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:622,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:624,1
    - Dst: PyOS_strtoul
      Src: /src/cpython/Parser/pegen.c:627,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Parser/pegen.c:629,1
    - Dst: PyOS_strtol
      Src: /src/cpython/Parser/pegen.c:633,1
    - Dst: PyLong_FromString
      Src: /src/cpython/Parser/pegen.c:637,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Parser/pegen.c:639,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Parser/pegen.c:644,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:645,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Parser/pegen.c:648,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Parser/pegen.c:650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:651,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Parser/pegen.c:654,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 655
      start: 613
    functionDepth: 8
    functionLinenumber: 613
    functionLinenumberEnd: 655
    functionName: parsenumber_raw
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    - PyFloat_FromDouble
    - PyOS_strtol
    - PyComplex_FromCComplex
    - PyOS_string_to_double
    - strlen
    - PyOS_strtoul
    - PyErr_Occurred
    - PyLong_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parsenumber_raw(const char *s)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:664,1
    - Dst: strchr
      Src: /src/cpython/Parser/pegen.c:666,1
    - Dst: parsenumber_raw
      Src: /src/cpython/Parser/pegen.c:667,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:670,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:670,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:672,1
    - Dst: parsenumber_raw
      Src: /src/cpython/Parser/pegen.c:681,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 684
      start: 657
    functionDepth: 9
    functionLinenumber: 657
    functionLinenumberEnd: 684
    functionName: parsenumber
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - parsenumber_raw
    - PyErr_NoMemory
    - assert
    - strchr
    - strlen
    - PyMem_Malloc
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parsenumber(const char *s)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyPegen_expect_token
      Src: /src/cpython/Parser/pegen.c:689,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Parser/pegen.c:694,1
    - Dst: strchr
      Src: /src/cpython/Parser/pegen.c:700,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen.c:702,1
    - Dst: parsenumber
      Src: /src/cpython/Parser/pegen.c:706,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Parser/pegen.c:710,1
    - Dst: Py_TYPE
      Src: /src/cpython/Parser/pegen.c:714,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Parser/pegen.c:716,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen.c:720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:727,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen.c:733,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Parser/pegen.c:738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 686
    functionDepth: 10
    functionLinenumber: 686
    functionLinenumberEnd: 740
    functionName: _PyPegen_number_token
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 4
    functionsReached:
    - _PyPegen_expect_token
    - parsenumber
    - strchr
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - _PyThreadState_GET
    - PyBytes_AsString
    - Py_DECREF
    - PyErr_GetRaisedException
    - RAISE_SYNTAX_ERROR
    - Py_TYPE
    - RAISE_ERROR_KNOWN_LOCATION
    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: 769
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 769
    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: 794
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 794
    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:802,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:804,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:806,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/pegen.c:812,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:814,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:815,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Parser/pegen.c:817,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:819,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:820,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:821,1
    - Dst: growable_comment_array_init
      Src: /src/cpython/Parser/pegen.c:823,1
    - Dst: PyMem_Free
      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: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen.c:827,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Parser/pegen.c:853,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: 805
        line_start: 805
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 856
      start: 798
    functionDepth: 3
    functionLinenumber: 798
    functionLinenumberEnd: 856
    functionName: _PyPegen_Parser_New
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - growable_comment_array_init
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyMem_Free
    - assert
    - _Py_GetConfig
    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:861,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:863,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:865,1
    - Dst: growable_comment_array_deallocate
      Src: /src/cpython/Parser/pegen.c:866,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/pegen.c:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 868
    functionName: _PyPegen_Parser_Free
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    - growable_comment_array_deallocate
    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: 885
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 885
    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: 891
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 891
    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:895,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Parser/pegen.c:896,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Parser/pegen.c:897,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/pegen.c:910,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Parser/pegen.c:912,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen.c:912,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/pegen.c:916,1
    - Dst: Py_INCREF
      Src: /src/cpython/Parser/pegen.c:918,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Parser/pegen.c:920,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/pegen.c:927,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen.c:932,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Parser/pegen.c:934,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 893
    functionDepth: 3
    functionLinenumber: 893
    functionLinenumberEnd: 935
    functionName: _PyPegen_set_syntax_error_metadata
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyUnicode_FromString
    - Py_INCREF
    - Py_BuildValue
    - PyErr_Clear
    - PyErr_SetRaisedException
    - strlen
    - Py_XDECREF
    - PyErr_GetRaisedException
    - PyUnicode_Decode
    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:940,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen.c:941,1
    - Dst: _is_end_of_source
      Src: /src/cpython/Parser/pegen.c:943,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/pegen.c:944,1
    - Dst: _PyPegen_raise_error
      Src: /src/cpython/Parser/pegen.c:945,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:947,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen.c:947,1
    - Dst: reset_parser_state_for_error_pass
      Src: /src/cpython/Parser/pegen.c:954,1
    - Dst: _PyPegen_parse
      Src: /src/cpython/Parser/pegen.c:955,1
    - Dst: _Pypegen_set_syntax_error
      Src: /src/cpython/Parser/pegen.c:959,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen.c:962,1
    - Dst: _PyPegen_set_syntax_error_metadata
      Src: /src/cpython/Parser/pegen.c:963,1
    - Dst: bad_single_statement
      Src: /src/cpython/Parser/pegen.c:968,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen.c:970,1
    - Dst: _PyAST_Validate
      Src: /src/cpython/Parser/pegen.c:979,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts:
    - condition: (p->level == 0)
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/cpython/Parser/pegen.c
    constantsTouched: []
    func_position:
      end: 985
      start: 937
    functionDepth: 4
    functionLinenumber: 937
    functionLinenumberEnd: 985
    functionName: _PyPegen_run_parser
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - _PyAST_Validate
    - _PyPegen_parse
    - _PyPegen_set_syntax_error_metadata
    - reset_parser_state_for_error_pass
    - PyErr_Clear
    - _is_end_of_source
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - _PyPegen_raise_error
    - RAISE_SYNTAX_ERROR
    - _Pypegen_set_syntax_error
    - bad_single_statement
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyPegen_run_parser(Parser *p)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_FromFile
      Src: /src/cpython/Parser/pegen.c:993,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:995,1
    - Dst: _PyPegen_raise_tokenizer_init_error
      Src: /src/cpython/Parser/pegen.c:996,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Parser/pegen.c:1002,1
    - Dst: Py_NewRef
      Src: /src/cpython/Parser/pegen.c:1006,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/pegen.c:1011,1
    - Dst: compute_parser_flags
      Src: /src/cpython/Parser/pegen.c:1016,1
    - Dst: _PyPegen_Parser_New
      Src: /src/cpython/Parser/pegen.c:1017,1
    - Dst: _PyPegen_run_parser
      Src: /src/cpython/Parser/pegen.c:1023,1
    - Dst: _PyPegen_Parser_Free
      Src: /src/cpython/Parser/pegen.c:1024,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/pegen.c:1027,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Parser/pegen.c:1028,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen.c:1029,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/pegen.c:1036,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    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: 1038
      start: 987
    functionDepth: 5
    functionLinenumber: 987
    functionLinenumberEnd: 1038
    functionName: _PyPegen_run_parser_from_file_pointer
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - _PyPegen_run_parser
    - _PyPegen_Parser_Free
    - PyUnicode_FromString
    - compute_parser_flags
    - _PyPegen_raise_tokenizer_init_error
    - _PyTokenizer_FromFile
    - _PyArena_AddPyObject
    - PyUnicode_CompareWithASCIIString
    - PyErr_Occurred
    - Py_XDECREF
    - _PyTokenizer_Free
    - _PyPegen_Parser_New
    - Py_NewRef
    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:1048,1
    - Dst: _PyTokenizer_FromString
      Src: /src/cpython/Parser/pegen.c:1050,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen.c:1053,1
    - Dst: _PyPegen_raise_tokenizer_init_error
      Src: /src/cpython/Parser/pegen.c:1054,1
    - Dst: Py_NewRef
      Src: /src/cpython/Parser/pegen.c:1059,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Parser/pegen.c:1060,1
    - Dst: compute_parser_flags
      Src: /src/cpython/Parser/pegen.c:1065,1
    - Dst: _PyPegen_Parser_New
      Src: /src/cpython/Parser/pegen.c:1068,1
    - Dst: _PyPegen_run_parser
      Src: /src/cpython/Parser/pegen.c:1074,1
    - Dst: _PyPegen_Parser_Free
      Src: /src/cpython/Parser/pegen.c:1075,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/pegen.c:1078,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - str
    - start_rule
    - filename_ob
    - flags
    - arena
    - module
    argTypes:
    - char*
    - int
    - PyObject*
    - PyCompilerFlags*
    - PyArena*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1040
    functionDepth: 5
    functionLinenumber: 1040
    functionLinenumberEnd: 1080
    functionName: _PyPegen_run_parser_from_string
    functionSourceFile: /src/cpython/Parser/pegen.c
    functionUses: 0
    functionsReached:
    - _PyPegen_run_parser
    - _PyPegen_Parser_Free
    - compute_parser_flags
    - _PyTokenizer_FromUTF8
    - _PyPegen_raise_tokenizer_init_error
    - _PyTokenizer_FromString
    - _PyPegen_Parser_New
    - PyErr_Occurred
    - _PyTokenizer_Free
    - Py_XNewRef
    - Py_NewRef
    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, PyObject *module)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - 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_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:18,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:19,1
    - Dst: PyErr_Fetch
      Src: /src/cpython/Parser/pegen_errors.c:27,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:28,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Parser/pegen_errors.c:29,1
    - Dst: _Py_ID
      Src: /src/cpython/Parser/pegen_errors.c:29,1
    - Dst: PyErr_Restore
      Src: /src/cpython/Parser/pegen_errors.c:32,1
    - Dst: PyObject_Str
      Src: /src/cpython/Parser/pegen_errors.c:35,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Parser/pegen_errors.c:40,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Parser/pegen_errors.c:45,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:46,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Parser/pegen_errors.c:50,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:53,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:54,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:55,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:56,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:57,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - filename
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 58
    functionName: _PyPegen_raise_tokenizer_init_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 2
    functionsReached:
    - PyObject_SetAttr
    - PyErr_SetObject
    - PyObject_Str
    - PyErr_Restore
    - _PyTuple_FromPair
    - Py_BuildValue
    - PyErr_Fetch
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - _Py_ID
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 68
    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:73,1
    - Dst: raise_unclosed_parentheses_error
      Src: /src/cpython/Parser/pegen_errors.c:87,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:89,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:93,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:96,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Parser/pegen_errors.c:97,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Parser/pegen_errors.c:101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Parser/pegen_errors.c:117,1
    - Dst: RAISE_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen_errors.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 128
    functionName: _Pypegen_tokenizer_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - raise_unclosed_parentheses_error
    - PyErr_SetString
    - RAISE_INDENTATION_ERROR
    - PyErr_Occurred
    - PyErr_SetNone
    - RAISE_SYNTAX_ERROR
    - RAISE_ERROR_KNOWN_LOCATION
    linkageType: ''
    returnType: int
    signature: int _Pypegen_tokenizer_error(Parser *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:133,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:133,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:135,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:138,1
    - Dst: PyErr_Fetch
      Src: /src/cpython/Parser/pegen_errors.c:146,1
    - Dst: PyObject_Str
      Src: /src/cpython/Parser/pegen_errors.c:147,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:150,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/pegen_errors.c:153,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:154,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:156,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:157,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/cpython/Parser/pegen_errors.c
    constantsTouched: []
    func_position:
      end: 162
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 162
    functionName: _Pypegen_raise_decode_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 3
    functionsReached:
    - PyObject_Str
    - PyErr_Fetch
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - Py_XDECREF
    - RAISE_SYNTAX_ERROR
    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:177,1
    - Dst: _PyToken_Init
      Src: /src/cpython/Parser/pegen_errors.c:184,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Parser/pegen_errors.c:187,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:189,1
    - Dst: raise_unclosed_parentheses_error
      Src: /src/cpython/Parser/pegen_errors.c:196,1
    - Dst: _PyToken_Free
      Src: /src/cpython/Parser/pegen_errors.c:212,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Parser/pegen_errors.c:216,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:217,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:218,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:219,1
    - Dst: PyErr_Restore
      Src: /src/cpython/Parser/pegen_errors.c:221,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 224
    functionName: _PyPegen_tokenize_full_source_to_check_for_errors
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 0
    functionsReached:
    - _PyToken_Init
    - _PyToken_Free
    - _PyTokenizer_Get
    - raise_unclosed_parentheses_error
    - PyErr_Restore
    - PyErr_Fetch
    - PyErr_Occurred
    - Py_XDECREF
    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:232,1
    - Dst: va_start
      Src: /src/cpython/Parser/pegen_errors.c:237,1
    - Dst: _PyPegen_raise_error_known_location
      Src: /src/cpython/Parser/pegen_errors.c:238,1
    - Dst: va_end
      Src: /src/cpython/Parser/pegen_errors.c:239,1
    - Dst: _PyPegen_fill_token
      Src: /src/cpython/Parser/pegen_errors.c:242,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Parser/pegen_errors.c:256,1
    - Dst: va_start
      Src: /src/cpython/Parser/pegen_errors.c:267,1
    - Dst: _PyPegen_raise_error_known_location
      Src: /src/cpython/Parser/pegen_errors.c:268,1
    - Dst: va_end
      Src: /src/cpython/Parser/pegen_errors.c:269,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: 272
      start: 228
    functionDepth: 6
    functionLinenumber: 228
    functionLinenumberEnd: 272
    functionName: _PyPegen_raise_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 1
    functionsReached:
    - Py_SAFE_DOWNCAST
    - _PyPegen_fill_token
    - va_start
    - _PyPegen_raise_error_known_location
    - va_end
    - PyErr_Occurred
    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:281,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:285,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Parser/pegen_errors.c:288,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen_errors.c:295,1
    - Dst: strchr
      Src: /src/cpython/Parser/pegen_errors.c:299,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:303,1
    - Dst: strchr
      Src: /src/cpython/Parser/pegen_errors.c:311,1
    - Dst: strlen
      Src: /src/cpython/Parser/pegen_errors.c:312,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/pegen_errors.c:314,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: 280
        line_start: 280
        source_file: /src/cpython/Parser/pegen_errors.c
    - condition: (p->tok->fp_interactive)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Parser/pegen_errors.c
    - condition: (new_line != NULL && new_line + 1 < buf_end)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Parser/pegen_errors.c
    constantsTouched: []
    func_position:
      end: 315
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 315
    functionName: get_error_line_from_tokenizer_buffers
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - PyUnicode_DecodeUTF8
    - strchr
    - strlen
    - assert
    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:324,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Parser/pegen_errors.c:340,1
    - Dst: get_error_line_from_tokenizer_buffers
      Src: /src/cpython/Parser/pegen_errors.c:346,1
    - Dst: _PyErr_ProgramDecodedTextObject
      Src: /src/cpython/Parser/pegen_errors.c:349,1
    - Dst: assert
      Src: /src/cpython/Parser/pegen_errors.c:361,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Parser/pegen_errors.c:365,1
    - Dst: get_error_line_from_tokenizer_buffers
      Src: /src/cpython/Parser/pegen_errors.c:368,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Parser/pegen_errors.c:371,1
    - Dst: _PyPegen_byte_offset_to_character_offset
      Src: /src/cpython/Parser/pegen_errors.c:381,1
    - Dst: _PyPegen_byte_offset_to_character_offset
      Src: /src/cpython/Parser/pegen_errors.c:387,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Parser/pegen_errors.c:393,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Parser/pegen_errors.c:397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:398,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Parser/pegen_errors.c:402,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:404,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/pegen_errors.c:405,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:409,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/pegen_errors.c:410,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: 360
        line_start: 360
        source_file: /src/cpython/Parser/pegen_errors.c
    constantsTouched: []
    func_position:
      end: 412
      start: 317
    functionDepth: 9
    functionLinenumber: 317
    functionLinenumberEnd: 412
    functionName: _PyPegen_raise_error_known_location
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 2
    functionsReached:
    - Py_GetConstant
    - PyErr_SetObject
    - PyUnicode_FromFormatV
    - get_error_line_from_tokenizer_buffers
    - PyUnicode_DecodeUTF8
    - _PyTuple_FromPair
    - Py_BuildValue
    - PyErr_Occurred
    - assert
    - _PyErr_ProgramDecodedTextObject
    - _PyPegen_byte_offset_to_character_offset
    - Py_XDECREF
    - Py_DECREF
    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:417,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/pegen_errors.c:421,1
    - Dst: _PyPegen_tokenize_full_source_to_check_for_errors
      Src: /src/cpython/Parser/pegen_errors.c:422,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:429,1
    - Dst: raise_unclosed_parentheses_error
      Src: /src/cpython/Parser/pegen_errors.c:434,1
    - Dst: RAISE_SYNTAX_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:436,1
    - Dst: RAISE_INDENTATION_ERROR
      Src: /src/cpython/Parser/pegen_errors.c:442,1
    - Dst: RAISE_SYNTAX_ERROR_KNOWN_LOCATION
      Src: /src/cpython/Parser/pegen_errors.c:451,1
    - Dst: _PyPegen_tokenize_full_source_to_check_for_errors
      Src: /src/cpython/Parser/pegen_errors.c:454,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - p
    - last_token
    argTypes:
    - Parser*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 455
    functionName: _Pypegen_set_syntax_error
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 1
    functionsReached:
    - _PyPegen_tokenize_full_source_to_check_for_errors
    - raise_unclosed_parentheses_error
    - RAISE_SYNTAX_ERROR_KNOWN_LOCATION
    - RAISE_INDENTATION_ERROR
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - 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:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: _Pypegen_stack_overflow
    functionSourceFile: /src/cpython/Parser/pegen_errors.c
    functionUses: 466
    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:10,1
    - Dst: _PyPegen_run_parser_from_string
      Src: /src/cpython/Parser/peg_api.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - str
    - filename
    - mode
    - flags
    - arena
    - module
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    - PyArena*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 5
    functionDepth: 6
    functionLinenumber: 5
    functionLinenumberEnd: 17
    functionName: _PyParser_ASTFromString
    functionSourceFile: /src/cpython/Parser/peg_api.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - _PyPegen_run_parser_from_string
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty _PyParser_ASTFromString(const char *str, PyObject* filename,
      int mode,\n                        PyCompilerFlags *flags, PyArena *arena,\n
      \                       PyObject *module)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/cpython/Parser/peg_api.c:24,1
    - Dst: _PyPegen_run_parser_from_file_pointer
      Src: /src/cpython/Parser/peg_api.c:27,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: 29
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 29
    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:37,1
    - Dst: _PyPegen_run_parser_from_file_pointer
      Src: /src/cpython/Parser/peg_api.c:40,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: 42
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 42
    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_tok_new
    - _PyTokenizer_translate_newlines
    - _PyTokenizer_new_string
    - _PyTokenizer_Free
    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:
    - strcpy
    - assert
    - PyMem_Realloc
    - PyMem_Free
    - strlen
    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:
    - tok_concatenate_interactive_new_line
    - _PyLexer_tok_reserve_buf
    - _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:
    - _PyTokenizer_error_ret
    - _PyLexer_tok_reserve_buf
    - PyUnicode_AsUTF8AndSize
    - memcpy
    - PyObject_CallNoArgs
    - Py_XDECREF
    - Py_DECREF
    - 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:
    - fileno
    - ftell
    - Py_XSETREF
    - PyErr_SetFromErrnoWithFilename
    - PyObject_GetAttr
    - PyObject_CallFunction
    - lseek
    - Py_DECREF
    - _PyObject_CallNoArgs
    - PyImport_ImportModuleAttrString
    - _Py_ID
    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:
    - ADVANCE_LINENO
    - memcpy
    - strchr
    - _PyLexer_update_ftstring_expr
    - PyMem_Free
    - PyMem_Malloc
    - PyBytes_AS_STRING
    - _PyLexer_remember_fstring_buffers
    - strlen
    - tok_concatenate_interactive_new_line
    - _PyTokenizer_translate_into_utf8
    - PySys_WriteStderr
    - strcpy
    - _PyTokenizer_translate_newlines
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _PyLexer_tok_reserve_buf
    - PyOS_Readline
    - _PyLexer_restore_fstring_buffers
    linkageType: ''
    returnType: int
    signature: int tok_underflow_interactive(struct tok_state *tok)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _PyTokenizer_check_bom
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:291,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:292,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:295,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:302,1
    - Dst: tok_readline_recode
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:308,1
    - Dst: tok_readline_raw
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:314,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:324,1
    - Dst: _PyLexer_update_ftstring_expr
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:331,1
    - Dst: ADVANCE_LINENO
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:335,1
    - Dst: _PyTokenizer_check_coding_spec
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:337,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:337,1
    - Dst: _PyTokenizer_ensure_utf8
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:352,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:353,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:358,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:358,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:364,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:367,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts:
    - condition: (tok->decoding_state != STATE_INIT)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Parser/tokenizer/file_tokenizer.c
    - condition: (tok->inp + 1 < tok->end)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/cpython/Parser/tokenizer/file_tokenizer.c
    - condition: (tok->done == E_OK)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/cpython/Parser/tokenizer/file_tokenizer.c
    constantsTouched: []
    func_position:
      end: 369
      start: 284
    functionDepth: 6
    functionLinenumber: 284
    functionLinenumberEnd: 369
    functionName: tok_underflow_file
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - ADVANCE_LINENO
    - Py_DECREF
    - _PyTokenizer_check_coding_spec
    - _PyTokenizer_error_ret
    - _PyTokenizer_ensure_utf8
    - INSIDE_FSTRING
    - tok_readline_raw
    - _PyLexer_update_ftstring_expr
    - strlen
    - assert
    - tok_readline_recode
    - _PyTokenizer_check_bom
    - PyUnicode_Decode
    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:376,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:379,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:380,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:396,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:396,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - fp
    - enc
    - ps1
    - ps2
    argTypes:
    - FILE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 404
    functionName: _PyTokenizer_FromFile
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 1
    functionsReached:
    - PyMem_Malloc
    - _PyTokenizer_tok_new
    - _PyTokenizer_new_string
    - strlen
    - _PyTokenizer_Free
    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:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cookie
    - buf
    - size
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 419
    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:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 427
    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:431,1
    - Dst: fdopen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: fdopen_borrow
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - _Py_dup
    - fdopen
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      fdopen_borrow(int fd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdopen_borrow
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:455,1
    - Dst: _PyTokenizer_FromFile
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:459,1
    - Dst: fclose
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:461,1
    - Dst: Py_NewRef
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:465,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:468,1
    - Dst: fclose
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:470,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:471,1
    - Dst: _PyToken_Init
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:480,1
    - Dst: _PyTokenizer_Get
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:481,1
    - Dst: _PyToken_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:482,1
    - Dst: fclose
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:484,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:486,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:486,1
    - Dst: strcpy
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:488,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/file_tokenizer.c:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - fd
    - filename
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 493
    functionName: _PyTokenizer_FindEncodingFilename
    functionSourceFile: /src/cpython/Parser/tokenizer/file_tokenizer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyToken_Init
    - _PyToken_Free
    - fclose
    - _PyTokenizer_Get
    - strcpy
    - fdopen_borrow
    - _PyTokenizer_FromFile
    - _PyTokenizer_Free
    - PyMem_Malloc
    - strlen
    - Py_NewRef
    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: 17
    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:90,1
    - Dst: _PyTokenizer_check_coding_spec
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:95,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:102,1
    - Dst: _PyTokenizer_translate_into_utf8
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:103,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:105,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:106,1
    - Dst: _PyTokenizer_ensure_utf8
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:108,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:109,1
    - Dst: _PyTokenizer_translate_newlines
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:115,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:116,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:118,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:121,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:124,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 4
    argNames:
    - input
    - single
    - tok
    - preserve_crlf
    argTypes:
    - char*
    - int
    - struct tok_state*
    - int
    assertStmts:
    - condition: (tok->decoding_buffer == NULL)
      pos:
        line_end: 123
        line_start: 123
        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: (utf8 == NULL)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Parser/tokenizer/string_tokenizer.c
    - condition: (str)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/cpython/Parser/tokenizer/string_tokenizer.c
    constantsTouched: []
    func_position:
      end: 127
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 127
    functionName: decode_str
    functionSourceFile: /src/cpython/Parser/tokenizer/string_tokenizer.c
    functionUses: 0
    functionsReached:
    - _PyTokenizer_translate_into_utf8
    - PyBytes_AS_STRING
    - _PyTokenizer_check_coding_spec
    - _PyTokenizer_error_ret
    - _PyTokenizer_ensure_utf8
    - Py_CLEAR
    - PyBytes_AsString
    - _PyTokenizer_translate_newlines
    - PyMem_Free
    - assert
    - Py_DECREF
    - _PyTokenizer_check_bom
    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:133,1
    - Dst: decode_str
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:138,1
    - Dst: _PyTokenizer_Free
      Src: /src/cpython/Parser/tokenizer/string_tokenizer.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - str
    - exec_input
    - preserve_crlf
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: _PyTokenizer_FromString
    functionSourceFile: /src/cpython/Parser/tokenizer/string_tokenizer.c
    functionUses: 1
    functionsReached:
    - _PyTokenizer_tok_new
    - decode_str
    - _PyTokenizer_Free
    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:55,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:56,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:60,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: 63
      start: 10
    functionDepth: 9
    functionLinenumber: 10
    functionLinenumberEnd: 63
    functionName: _syntaxerror_range
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - strcspn
    - PyErr_SetObject
    - PyUnicode_FromFormatV
    - PyUnicode_DecodeUTF8
    - Py_BuildValue
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - assert
    - Py_DECREF
    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:70,1
    - Dst: _syntaxerror_range
      Src: /src/cpython/Parser/tokenizer/helpers.c:71,1
    - Dst: va_end
      Src: /src/cpython/Parser/tokenizer/helpers.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tok
    - format
    argTypes:
    - struct tok_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 10
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: _PyTokenizer_syntaxerror
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - va_end
    - _syntaxerror_range
    - va_start
    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:82,1
    - Dst: _syntaxerror_range
      Src: /src/cpython/Parser/tokenizer/helpers.c:83,1
    - Dst: va_end
      Src: /src/cpython/Parser/tokenizer/helpers.c:84,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: 86
      start: 76
    functionDepth: 10
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: _PyTokenizer_syntaxerror_known_range
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - va_end
    - _syntaxerror_range
    - va_start
    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: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    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:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 108
    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:117,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/cpython/Parser/tokenizer/helpers.c:129,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:131,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/tokenizer/helpers.c:133,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/tokenizer/helpers.c:136,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/tokenizer/helpers.c:138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:148,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: 150
      start: 110
    functionDepth: 11
    functionLinenumber: 110
    functionLinenumberEnd: 150
    functionName: _PyTokenizer_warn_invalid_escape_sequence
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnExplicitObject
    - PyUnicode_FromFormat
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_DECREF
    - _PyTokenizer_syntaxerror
    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:161,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Parser/tokenizer/helpers.c:162,1
    - Dst: va_end
      Src: /src/cpython/Parser/tokenizer/helpers.c:163,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/cpython/Parser/tokenizer/helpers.c:168,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Parser/tokenizer/helpers.c:170,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Parser/tokenizer/helpers.c:173,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/tokenizer/helpers.c:174,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:178,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - tok
    - category
    - format
    argTypes:
    - struct tok_state*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 152
    functionDepth: 11
    functionLinenumber: 152
    functionLinenumberEnd: 185
    functionName: _PyTokenizer_parser_warn
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnExplicitObject
    - PyUnicode_FromFormatV
    - va_start
    - va_end
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - Py_DECREF
    - _PyTokenizer_syntaxerror
    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:193,1
    - Dst: memcpy
      Src: /src/cpython/Parser/tokenizer/helpers.c:198,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: 201
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 201
    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:206,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/helpers.c:206,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/cpython/Parser/tokenizer/helpers.c:209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Parser/tokenizer/helpers.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - enc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 11
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: _PyTokenizer_translate_into_utf8
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyUnicode_Decode
    - 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:218,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Parser/tokenizer/helpers.c:221,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Parser/tokenizer/helpers.c:252,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:254,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: 259
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 259
    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:274,1
    - Dst: get_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:279,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:281,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:282,1
    - Dst: get_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:285,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:287,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:288,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:289,1
    - Dst: unget_char
      Src: /src/cpython/Parser/tokenizer/helpers.c:293,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:297,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/helpers.c:298,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: 303
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 303
    functionName: _PyTokenizer_check_bom
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 2
    functionsReached:
    - _PyTokenizer_new_string
    - unget_char
    - get_char
    - PyMem_Free
    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:317,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:320,1
    - Dst: strncmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:321,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:323,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:324,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:325,1
    - Dst: strncmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:326,1
    - Dst: strncmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:327,1
    - Dst: strncmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 332
    functionName: get_normal_name
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    - Py_TOLOWER
    linkageType: ''
    returnType: char
    signature: 'char *

      get_normal_name(const char *s)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:350,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/Parser/tokenizer/helpers.c:360,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/helpers.c:365,1
    - Dst: get_normal_name
      Src: /src/cpython/Parser/tokenizer/helpers.c:369,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:371,1
    - Dst: _PyTokenizer_new_string
      Src: /src/cpython/Parser/tokenizer/helpers.c:372,1
    - Dst: strlen
      Src: /src/cpython/Parser/tokenizer/helpers.c:372,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: 382
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 382
    functionName: get_coding_spec
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - memcmp
    - _PyTokenizer_new_string
    - PyMem_Free
    - strlen
    - get_normal_name
    - Py_ISALNUM
    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:398,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/helpers.c:417,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:418,1
    - Dst: set_readline
      Src: /src/cpython/Parser/tokenizer/helpers.c:418,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/helpers.c:419,1
    - Dst: PyErr_Format
      Src: /src/cpython/Parser/tokenizer/helpers.c:420,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:421,1
    - Dst: strcmp
      Src: /src/cpython/Parser/tokenizer/helpers.c:426,1
    - Dst: assert
      Src: /src/cpython/Parser/tokenizer/helpers.c:429,1
    - Dst: _PyTokenizer_syntaxerror_known_range
      Src: /src/cpython/Parser/tokenizer/helpers.c:430,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:432,1
    - Dst: _PyTokenizer_error_ret
      Src: /src/cpython/Parser/tokenizer/helpers.c:433,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/tokenizer/helpers.c:436,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    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: 416
        line_start: 416
        source_file: /src/cpython/Parser/tokenizer/helpers.c
    - condition: (size <= INT_MAX)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/cpython/Parser/tokenizer/helpers.c
    constantsTouched: []
    func_position:
      end: 439
      start: 388
    functionDepth: 11
    functionLinenumber: 388
    functionLinenumberEnd: 439
    functionName: _PyTokenizer_check_coding_spec
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 2
    functionsReached:
    - strcmp
    - _PyTokenizer_error_ret
    - set_readline
    - PyErr_Format
    - assert
    - PyMem_Free
    - get_coding_spec
    - _PyTokenizer_syntaxerror_known_range
    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: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 503
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: valid_utf8
      Src: /src/cpython/Parser/tokenizer/helpers.c:514,1
    - Dst: _PyTokenizer_syntaxerror_known_range
      Src: /src/cpython/Parser/tokenizer/helpers.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - line
    - tok
    - lineno
    argTypes:
    - char*
    - struct tok_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 505
    functionDepth: 11
    functionLinenumber: 505
    functionLinenumberEnd: 541
    functionName: _PyTokenizer_ensure_utf8
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 2
    functionsReached:
    - valid_utf8
    - _PyTokenizer_syntaxerror_known_range
    linkageType: ''
    returnType: int
    signature: int _PyTokenizer_ensure_utf8(const char *line, struct tok_state *tok,
      int lineno)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:551,1
    - Dst: putc
      Src: /src/cpython/Parser/tokenizer/helpers.c:554,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:558,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:559,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:560,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:561,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:562,1
    - Dst: fputs
      Src: /src/cpython/Parser/tokenizer/helpers.c:563,1
    - Dst: putc
      Src: /src/cpython/Parser/tokenizer/helpers.c:566,1
    - Dst: fprintf
      Src: /src/cpython/Parser/tokenizer/helpers.c:568,1
    - Dst: putc
      Src: /src/cpython/Parser/tokenizer/helpers.c:571,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - f
    - s
    - size
    argTypes:
    - FILE*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 572
    functionName: _PyTokenizer_print_escape
    functionSourceFile: /src/cpython/Parser/tokenizer/helpers.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fputs
    - putc
    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:577,1
    - Dst: fprintf
      Src: /src/cpython/Parser/tokenizer/helpers.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - type
    - start
    - end
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 580
    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_DECREF
    - PyBytes_AS_STRING
    - PyBytes_Check
    - _PyTokenizer_error_ret
    - _PyLexer_tok_reserve_buf
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - Py_CLEAR
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyObject_CallNoArgs
    - PyErr_Format
    - memcpy
    - Py_XDECREF
    - PyUnicode_Decode
    - PyBytes_GET_SIZE
    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->inp + 1 < tok->end)
      pos:
        line_end: 85
        line_start: 85
        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->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: 12
    functionLinenumber: 70
    functionLinenumberEnd: 106
    functionName: tok_underflow_readline
    functionSourceFile: /src/cpython/Parser/tokenizer/readline_tokenizer.c
    functionUses: 0
    functionsReached:
    - ADVANCE_LINENO
    - tok_readline_string
    - _PyTokenizer_ensure_utf8
    - _PyTokenizer_error_ret
    - INSIDE_FSTRING
    - _PyLexer_update_ftstring_expr
    - 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
    - PyMem_Malloc
    - _PyTokenizer_tok_new
    - _PyTokenizer_new_string
    - strlen
    - _PyTokenizer_Free
    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:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 64
    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:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 82
    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:89,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: Py_XDECREF
      Src: /src/cpython/Parser/lexer/state.c:94,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Parser/lexer/state.c:95,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:97,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:100,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:103,1
    - Dst: free_fstring_expressions
      Src: /src/cpython/Parser/lexer/state.c:105,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/state.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: _PyTokenizer_Free
    functionSourceFile: /src/cpython/Parser/lexer/state.c
    functionUses: 7
    functionsReached:
    - Py_XDECREF
    - free_fstring_expressions
    - PyMem_Free
    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:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - struct token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    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: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    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: 130
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 130
    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:135,1
    - Dst: ISSTRINGLIT
      Src: /src/cpython/Parser/lexer/state.c:137,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: 134
        line_start: 134
        source_file: /src/cpython/Parser/lexer/state.c
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 153
    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:
    - _PyLexer_remember_fstring_buffers
    - PyMem_Realloc
    - _PyLexer_restore_fstring_buffers
    - Py_MAX
    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:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: INSIDE_FSTRING_EXPR_AT_TOP
    functionSourceFile: /src/cpython/Parser/lexer/state.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSIDE_FSTRING_EXPR_AT_TOP(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:
    - contains_null_bytes
    - struct tok_state*::underflow
    - Py_CHARMASK
    - Py_UNREACHABLE
    - fprintf
    - _PyTokenizer_syntaxerror
    - _PyTokenizer_print_escape
    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_FatalError
    - Py_CHARMASK
    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
    - assert
    - PyUnicode_DecodeUTF8
    - PyMem_Free
    - 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:
    - TOK_GET_MODE
    - PyMem_Malloc
    - assert
    - PyMem_Realloc
    - strncpy
    - Py_UNREACHABLE
    - PyMem_Free
    - strlen
    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:
    - tok_nextc
    - tok_backup
    - is_potential_identifier_char
    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:
    - tok_backup
    - is_potential_identifier_char
    - lookahead
    - _PyTokenizer_parser_warn
    - tok_nextc
    - _PyTokenizer_syntaxerror
    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: (PyUnicode_GET_LENGTH(s) > 0)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Parser/lexer/lexer.c
    - condition: (invalid >= 0)
      pos:
        line_end: 382
        line_start: 382
        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:
    - PyUnicode_READ_CHAR
    - PyUnicode_DecodeUTF8
    - Py_SETREF
    - PyUnicode_AsUTF8String
    - _PyUnicode_ScanIdentifier
    - Py_UNICODE_ISPRINTABLE
    - PyUnicode_Substring
    - PyErr_ExceptionMatches
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _PyTokenizer_syntaxerror
    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:
    - tok_nextc
    - tok_backup
    - Py_ISDIGIT
    - _PyTokenizer_syntaxerror
    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_nextc
    - tok_backup
    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: 156
    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: PyErr_Occurred
      Src: /src/cpython/Parser/lexer/lexer.c:542,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:543,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:549,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:577,1
    - Dst: _PyTokenizer_indenterror
      Src: /src/cpython/Parser/lexer/lexer.c:577,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:585,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:588,1
    - Dst: _PyTokenizer_indenterror
      Src: /src/cpython/Parser/lexer/lexer.c:588,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:604,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:607,1
    - Dst: _PyTokenizer_indenterror
      Src: /src/cpython/Parser/lexer/lexer.c:607,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:624,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:632,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:637,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:638,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:644,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:659,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:692,1
    - Dst: memcmp
      Src: /src/cpython/Parser/lexer/lexer.c:699,1
    - Dst: Py_ISALNUM
      Src: /src/cpython/Parser/lexer/lexer.c:701,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:709,1
    - Dst: MAKE_TYPE_COMMENT_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:712,1
    - Dst: MAKE_TYPE_COMMENT_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:716,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:721,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:725,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:730,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:736,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:738,1
    - Dst: is_potential_identifier_start
      Src: /src/cpython/Parser/lexer/lexer.c:743,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:768,1
    - Dst: maybe_raise_syntax_error_for_string_prefixes
      Src: /src/cpython/Parser/lexer/lexer.c:771,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:774,1
    - Dst: is_potential_identifier_char
      Src: /src/cpython/Parser/lexer/lexer.c:784,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:788,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:790,1
    - Dst: verify_identifier
      Src: /src/cpython/Parser/lexer/lexer.c:791,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:792,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:798,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:802,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:815,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:823,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:828,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:833,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:834,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:837,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:841,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:844,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:846,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:849,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:853,1
    - Dst: Py_ISDIGIT
      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: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:866,1
    - Dst: Py_ISXDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:868,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:869,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:870,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:870,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:873,1
    - Dst: Py_ISXDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:874,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:876,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:877,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:882,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:885,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:888,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:889,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:889,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:893,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:894,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:894,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:898,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:901,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:902,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:902,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:905,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:906,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:911,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:914,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:917,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:918,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:918,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:921,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:922,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:922,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:926,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:929,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:930,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:930,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:932,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:933,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:942,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:943,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:944,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:945,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:945,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:951,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:954,1
    - Dst: tok_decimal_tail
      Src: /src/cpython/Parser/lexer/lexer.c:956,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:958,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:962,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:973,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:974,1
    - Dst: _PyTokenizer_syntaxerror_known_range
      Src: /src/cpython/Parser/lexer/lexer.c:974,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:981,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:982,1
    - Dst: tok_decimal_tail
      Src: /src/cpython/Parser/lexer/lexer.c:988,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:990,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:995,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:998,1
    - Dst: tok_decimal_tail
      Src: /src/cpython/Parser/lexer/lexer.c:999,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1001,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1010,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1012,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:1013,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1014,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1015,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1015,1
    - Dst: Py_ISDIGIT
      Src: /src/cpython/Parser/lexer/lexer.c:1017,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1018,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:1019,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1020,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1022,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1025,1
    - Dst: tok_decimal_tail
      Src: /src/cpython/Parser/lexer/lexer.c:1027,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1029,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1035,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:1036,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1037,1
    - Dst: verify_end_of_number
      Src: /src/cpython/Parser/lexer/lexer.c:1040,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1041,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1045,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1048,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1052,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1052,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1052,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1066,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1068,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1074,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1075,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1079,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1086,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1086,1
    - Dst: TOK_NEXT_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1088,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1107,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1112,1
    - Dst: Py_TOLOWER
      Src: /src/cpython/Parser/lexer/lexer.c:1117,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Parser/lexer/lexer.c:1122,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1128,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1128,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1147,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1149,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1158,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1163,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1165,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:1171,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1181,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1187,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1190,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1190,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1191,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1196,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1201,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1205,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1212,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1219,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1228,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1233,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1241,1
    - Dst: tok_continuation_line
      Src: /src/cpython/Parser/lexer/lexer.c:1246,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1247,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1255,1
    - Dst: INSIDE_FSTRING_EXPR
      Src: /src/cpython/Parser/lexer/lexer.c:1255,1
    - Dst: _PyLexer_update_ftstring_expr
      Src: /src/cpython/Parser/lexer/lexer.c:1264,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1265,1
    - Dst: set_ftstring_expr
      Src: /src/cpython/Parser/lexer/lexer.c:1267,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1268,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1276,1
    - Dst: _PyToken_OneChar
      Src: /src/cpython/Parser/lexer/lexer.c:1276,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1282,1
    - Dst: _PyToken_TwoChars
      Src: /src/cpython/Parser/lexer/lexer.c:1283,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1285,1
    - Dst: _PyToken_ThreeChars
      Src: /src/cpython/Parser/lexer/lexer.c:1286,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1291,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1295,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1297,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1306,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1306,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1312,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1319,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1320,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1320,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1321,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1324,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1324,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1337,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:1338,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1341,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1341,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1342,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1346,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1346,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1352,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1352,1
    - Dst: INSIDE_FSTRING
      Src: /src/cpython/Parser/lexer/lexer.c:1360,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1363,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1363,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1364,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/cpython/Parser/lexer/lexer.c:1378,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1379,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1379,1
    - Dst: INSIDE_FSTRING_EXPR_AT_TOP
      Src: /src/cpython/Parser/lexer/lexer.c:1382,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1389,1
    - Dst: _PyToken_OneChar
      Src: /src/cpython/Parser/lexer/lexer.c:1389,1
    CyclomaticComplexity: 255
    EdgeCount: 255
    ICount: 674
    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: 1170
        line_start: 1170
        source_file: /src/cpython/Parser/lexer/lexer.c
    - condition: (current_tok->curly_bracket_depth >= 0)
      pos:
        line_end: 1337
        line_start: 1337
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 1390
      start: 500
    functionDepth: 14
    functionLinenumber: 500
    functionLinenumberEnd: 1390
    functionName: tok_get_normal_mode
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - MAKE_TOKEN
    - Py_ISXDIGIT
    - Py_ISDIGIT
    - PyErr_Occurred
    - maybe_raise_syntax_error_for_string_prefixes
    - tok_decimal_tail
    - assert
    - TOK_GET_STRING_PREFIX
    - tok_backup
    - verify_identifier
    - TOK_GET_MODE
    - _PyToken_TwoChars
    - Py_UNREACHABLE
    - TOK_NEXT_MODE
    - _PyLexer_update_ftstring_expr
    - INSIDE_FSTRING_EXPR_AT_TOP
    - Py_ISALNUM
    - _PyToken_ThreeChars
    - memcmp
    - tok_continuation_line
    - _PyTokenizer_indenterror
    - INSIDE_FSTRING
    - MAKE_TYPE_COMMENT_TOKEN
    - is_potential_identifier_start
    - tok_nextc
    - _PyToken_OneChar
    - _PyTokenizer_syntaxerror
    - Py_TOLOWER
    - is_potential_identifier_char
    - set_ftstring_expr
    - Py_UNICODE_ISPRINTABLE
    - verify_end_of_number
    - INSIDE_FSTRING_EXPR
    - _PyTokenizer_syntaxerror_known_range
    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:1406,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1408,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1409,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1410,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1414,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1414,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1415,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1417,1
    - Dst: tok_get_normal_mode
      Src: /src/cpython/Parser/lexer/lexer.c:1418,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1422,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1427,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1429,1
    - Dst: PyMem_Free
      Src: /src/cpython/Parser/lexer/lexer.c:1435,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1444,1
    - Dst: FTSTRING_END
      Src: /src/cpython/Parser/lexer/lexer.c:1444,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1452,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1454,1
    - Dst: INSIDE_FSTRING_EXPR
      Src: /src/cpython/Parser/lexer/lexer.c:1459,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1464,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1472,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1473,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1476,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1476,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1480,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1481,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1485,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1485,1
    - Dst: assert
      Src: /src/cpython/Parser/lexer/lexer.c:1488,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1497,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1501,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1504,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1508,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1511,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1511,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1513,1
    - Dst: _PyLexer_update_ftstring_expr
      Src: /src/cpython/Parser/lexer/lexer.c:1525,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1526,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1528,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1530,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1531,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1534,1
    - Dst: _PyTokenizer_syntaxerror
      Src: /src/cpython/Parser/lexer/lexer.c:1534,1
    - Dst: TOK_GET_STRING_PREFIX
      Src: /src/cpython/Parser/lexer/lexer.c:1535,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1537,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1545,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1545,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1550,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1550,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1552,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1563,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1564,1
    - Dst: TOK_GET_MODE
      Src: /src/cpython/Parser/lexer/lexer.c:1565,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1570,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1570,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1572,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1574,1
    - Dst: _PyTokenizer_warn_invalid_escape_sequence
      Src: /src/cpython/Parser/lexer/lexer.c:1581,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1582,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1585,1
    - Dst: tok_nextc
      Src: /src/cpython/Parser/lexer/lexer.c:1592,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1596,1
    - Dst: tok_backup
      Src: /src/cpython/Parser/lexer/lexer.c:1608,1
    - Dst: MAKE_TOKEN
      Src: /src/cpython/Parser/lexer/lexer.c:1612,1
    - Dst: FTSTRING_MIDDLE
      Src: /src/cpython/Parser/lexer/lexer.c:1612,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: 1487
        line_start: 1487
        source_file: /src/cpython/Parser/lexer/lexer.c
    constantsTouched: []
    func_position:
      end: 1613
      start: 1392
    functionDepth: 15
    functionLinenumber: 1392
    functionLinenumberEnd: 1613
    functionName: tok_get_fstring_mode
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - _PyTokenizer_warn_invalid_escape_sequence
    - tok_backup
    - FTSTRING_END
    - tok_get_normal_mode
    - TOK_GET_MODE
    - MAKE_TOKEN
    - FTSTRING_MIDDLE
    - TOK_GET_STRING_PREFIX
    - _PyLexer_update_ftstring_expr
    - PyMem_Free
    - assert
    - tok_nextc
    - INSIDE_FSTRING_EXPR
    - _PyTokenizer_syntaxerror
    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:1618,1
    - Dst: tok_get_normal_mode
      Src: /src/cpython/Parser/lexer/lexer.c:1620,1
    - Dst: tok_get_fstring_mode
      Src: /src/cpython/Parser/lexer/lexer.c:1622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tok
    - token
    argTypes:
    - struct tok_state*
    - struct token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1615
    functionDepth: 16
    functionLinenumber: 1615
    functionLinenumberEnd: 1624
    functionName: tok_get
    functionSourceFile: /src/cpython/Parser/lexer/lexer.c
    functionUses: 0
    functionsReached:
    - tok_get_normal_mode
    - TOK_GET_MODE
    - tok_get_fstring_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:1629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tok
    - token
    argTypes:
    - struct tok_state*
    - struct token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1626
    functionDepth: 17
    functionLinenumber: 1626
    functionLinenumberEnd: 1635
    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: 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:
    - _PyArg_CheckPositional
    - test_object_converter_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_FSConverter
    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:
    - _PyArg_CheckPositional
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_FSConverter
    - cloned_impl
    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:
    - _PyArg_CheckPositional
    - test_objects_converter_impl
    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:
    - PyObject_TypeCheck
    - _PyArg_CheckPositional
    - PyBytes_Check
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyLong_Check
    - PyList_Check
    - PyDict_Check
    - PySet_Check
    - PyTuple_Check
    - PyFrozenSet_Check
    - PyByteArray_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
    - test_PyBytesObject_converter_impl
    - _PyArg_BadArgument
    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:
    - test_PyByteArrayObject_converter_impl
    - PyByteArray_Check
    - _PyArg_BadArgument
    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:
    - test_unicode_converter_impl
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:
    - _PyArg_CheckPositional
    - PyLong_AsInt
    - PyObject_IsTrue
    - test_bool_converter_impl
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyBytes_Check
    - _PyArg_BadArgument
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - test_char_converter_impl
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_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:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - PyErr_SetString
    - PyLong_AsNativeBytes
    - test_unsigned_char_converter_impl
    - PyLong_AsLong
    - PyErr_Occurred
    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:
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyLong_AsLong
    - PyErr_Occurred
    - 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:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - PyLong_AsNativeBytes
    - _PyLong_UnsignedShort_Converter
    - test_unsigned_short_converter_impl
    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:
    - _PyArg_CheckPositional
    - PyUnicode_READ_CHAR
    - PyLong_AsInt
    - PyUnicode_Check
    - _PyArg_BadArgument
    - test_int_converter_impl
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - PyErr_Format
    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:
    - _PyArg_CheckPositional
    - test_unsigned_int_converter_impl
    - PyErr_WarnEx
    - PyLong_AsNativeBytes
    - _PyLong_UnsignedInt_Converter
    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:
    - _PyArg_CheckPositional
    - PyLong_AsLong
    - PyErr_Occurred
    - test_long_converter_impl
    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:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - test_unsigned_long_converter_impl
    - _PyLong_UnsignedLong_Converter
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    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:
    - test_long_long_converter_impl
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - PyLong_AsLongLong
    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:
    - _PyArg_CheckPositional
    - PyErr_WarnEx
    - test_unsigned_long_long_converter_impl
    - _PyLong_UnsignedLongLong_Converter
    - _PyArg_BadArgument
    - PyLong_AsNativeBytes
    - PyIndex_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unsigned_long_long_converter(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Lib/test/clinic.test.c:1649,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Lib/test/clinic.test.c:1657,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1659,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/clinic.test.c:1660,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1662,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Lib/test/clinic.test.c:1672,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1674,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/clinic.test.c:1675,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1677,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1685,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Lib/test/clinic.test.c:1693,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1695,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/clinic.test.c:1696,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1698,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:1703,1
    - Dst: _Py_convert_optional_to_non_negative_ssize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1711,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Lib/test/clinic.test.c:1719,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1721,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/clinic.test.c:1722,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1724,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Lib/test/clinic.test.c:1732,1
    - Dst: test_Py_ssize_t_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1736,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 96
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1637
    functionDepth: 2
    functionLinenumber: 1637
    functionLinenumberEnd: 1740
    functionName: test_Py_ssize_t_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - test_Py_ssize_t_converter_impl
    - _Py_convert_optional_to_ssize_t
    - _Py_convert_optional_to_non_negative_ssize_t
    - PyErr_SetString
    - PyErr_Occurred
    - _PyNumber_Index
    - Py_DECREF
    - 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:1779,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Lib/test/clinic.test.c:1785,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Lib/test/clinic.test.c:1791,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Lib/test/clinic.test.c:1797,1
    - Dst: test_slice_index_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1801,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1805
    functionName: test_slice_index_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndex
    - test_slice_index_converter_impl
    - _PyEval_SliceIndexNotNone
    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:1838,1
    - Dst: _PyLong_Size_t_Converter
      Src: /src/cpython/Lib/test/clinic.test.c:1844,1
    - Dst: test_size_t_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1848,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1852
    functionName: test_size_t_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyLong_Size_t_Converter
    - test_size_t_converter_impl
    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:1884,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Lib/test/clinic.test.c:1890,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Lib/test/clinic.test.c:1891,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Lib/test/clinic.test.c:1895,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1896,1
    - Dst: test_float_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1901,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1878
    functionDepth: 3
    functionLinenumber: 1878
    functionLinenumberEnd: 1905
    functionName: test_float_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - test_float_converter_impl
    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:1937,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Lib/test/clinic.test.c:1943,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Lib/test/clinic.test.c:1944,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Lib/test/clinic.test.c:1948,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1949,1
    - Dst: test_double_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1954,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1931
    functionDepth: 3
    functionLinenumber: 1931
    functionLinenumberEnd: 1958
    functionName: test_double_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyFloat_AsDouble
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    - PyErr_Occurred
    - test_double_converter_impl
    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:1990,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:1991,1
    - Dst: test_Py_complex_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:1994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1984
    functionDepth: 4
    functionLinenumber: 1984
    functionLinenumberEnd: 1998
    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:2052,1
    - Dst: test_str_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2036
    functionDepth: 1
    functionLinenumber: 2036
    functionLinenumberEnd: 2060
    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:2108,1
    - Dst: test_str_converter_encoding_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2112,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2114,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2116,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2118,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2120,1
    - Dst: PyMem_FREE
      Src: /src/cpython/Lib/test/clinic.test.c:2122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2126
    functionName: test_str_converter_encoding
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - _PyArg_ParseStack
    - test_str_converter_encoding_impl
    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:2173,1
    - Dst: test_Py_UNICODE_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2177,1
    - Dst: PyMem_Free
      Src: /src/cpython/Lib/test/clinic.test.c:2181,1
    - Dst: PyMem_Free
      Src: /src/cpython/Lib/test/clinic.test.c:2183,1
    - Dst: PyMem_Free
      Src: /src/cpython/Lib/test/clinic.test.c:2185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2161
    functionDepth: 2
    functionLinenumber: 2161
    functionLinenumberEnd: 2188
    functionName: test_Py_UNICODE_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - test_Py_UNICODE_converter_impl
    - PyMem_Free
    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:2232,1
    - Dst: test_Py_buffer_converter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2236,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2241,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2245,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2249,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2253,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Lib/test/clinic.test.c:2257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2222
    functionDepth: 1
    functionLinenumber: 2222
    functionLinenumberEnd: 2261
    functionName: test_Py_buffer_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyBuffer_Release
    - test_Py_buffer_converter_impl
    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:2301,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2303,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2303,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2323,1
    - Dst: test_keywords_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2330,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: 2334
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2334
    functionName: test_keywords
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_keywords_impl
    - PyVarObject_HEAD_INIT
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2374,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2376,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2376,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2396,1
    - Dst: test_keywords_kwonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2403,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: 2407
      start: 2361
    functionDepth: 1
    functionLinenumber: 2361
    functionLinenumberEnd: 2407
    functionName: test_keywords_kwonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_keywords_kwonly_impl
    - PyVarObject_HEAD_INIT
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2448,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2450,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2450,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2450,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:2467,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2472,1
    - Dst: test_keywords_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2489,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: 2493
      start: 2435
    functionDepth: 1
    functionLinenumber: 2435
    functionLinenumberEnd: 2493
    functionName: test_keywords_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_keywords_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:2537,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2539,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2539,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2539,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2539,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:2556,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2562,1
    - Dst: test_keywords_opt_kwonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2589,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: 2593
      start: 2524
    functionDepth: 1
    functionLinenumber: 2524
    functionLinenumberEnd: 2593
    functionName: test_keywords_opt_kwonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - test_keywords_opt_kwonly_impl
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:2636,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2638,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2638,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2638,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:2655,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2660,1
    - Dst: test_keywords_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2677,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: 2681
      start: 2623
    functionDepth: 1
    functionLinenumber: 2623
    functionLinenumberEnd: 2681
    functionName: test_keywords_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - test_keywords_kwonly_opt_impl
    - PyTuple_GET_SIZE
    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:2722,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2724,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2744,1
    - Dst: test_posonly_keywords_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2751,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: 2755
      start: 2709
    functionDepth: 1
    functionLinenumber: 2709
    functionLinenumberEnd: 2755
    functionName: test_posonly_keywords
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - test_posonly_keywords_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2796,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2798,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2818,1
    - Dst: test_posonly_kwonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2825,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: 2829
      start: 2783
    functionDepth: 1
    functionLinenumber: 2783
    functionLinenumberEnd: 2829
    functionName: test_posonly_kwonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - test_posonly_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2872,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2874,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2874,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2895,1
    - Dst: test_posonly_keywords_kwonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2903,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: 2907
      start: 2859
    functionDepth: 1
    functionLinenumber: 2859
    functionLinenumberEnd: 2907
    functionName: test_posonly_keywords_kwonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - test_posonly_keywords_kwonly_impl
    - _Py_LATIN1_CHR
    - _PyArg_UnpackKeywords
    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:2951,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2953,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2953,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:2953,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:2970,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:2976,1
    - Dst: test_posonly_keywords_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:2994,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: 2998
      start: 2938
    functionDepth: 1
    functionLinenumber: 2938
    functionLinenumberEnd: 2998
    functionName: test_posonly_keywords_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_posonly_keywords_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:3041,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3043,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3043,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3060,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3065,1
    - Dst: test_posonly_keywords_opt2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3082,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: 3086
      start: 3028
    functionDepth: 1
    functionLinenumber: 3028
    functionLinenumberEnd: 3086
    functionName: test_posonly_keywords_opt2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    - test_posonly_keywords_opt2_impl
    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:3130,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3132,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3132,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3149,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3155,1
    - Dst: test_posonly_opt_keywords_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3178,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: 3182
      start: 3117
    functionDepth: 1
    functionLinenumber: 3117
    functionLinenumberEnd: 3182
    functionName: test_posonly_opt_keywords_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_posonly_opt_keywords_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:3227,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3229,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3229,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3229,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3246,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3252,1
    - Dst: test_posonly_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3270,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: 3274
      start: 3214
    functionDepth: 1
    functionLinenumber: 3214
    functionLinenumberEnd: 3274
    functionName: test_posonly_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_posonly_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:3318,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3320,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3320,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3337,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3342,1
    - Dst: test_posonly_kwonly_opt2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3359,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: 3363
      start: 3305
    functionDepth: 1
    functionLinenumber: 3305
    functionLinenumberEnd: 3363
    functionName: test_posonly_kwonly_opt2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_posonly_kwonly_opt2_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:3408,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3410,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3410,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3427,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3433,1
    - Dst: test_posonly_opt_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3456,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: 3460
      start: 3395
    functionDepth: 1
    functionLinenumber: 3395
    functionLinenumberEnd: 3460
    functionName: test_posonly_opt_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_posonly_opt_kwonly_opt_impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:3507,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3509,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3509,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3509,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3509,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3526,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3533,1
    - Dst: test_posonly_keywords_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3552,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: 3556
      start: 3494
    functionDepth: 1
    functionLinenumber: 3494
    functionLinenumberEnd: 3556
    functionName: test_posonly_keywords_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    - test_posonly_keywords_kwonly_opt_impl
    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:3602,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3604,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3604,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3604,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3621,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3627,1
    - Dst: test_posonly_keywords_kwonly_opt2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3645,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: 3649
      start: 3589
    functionDepth: 1
    functionLinenumber: 3589
    functionLinenumberEnd: 3649
    functionName: test_posonly_keywords_kwonly_opt2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - test_posonly_keywords_kwonly_opt2_impl
    - PyTuple_GET_SIZE
    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:3697,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3699,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3699,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3699,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3699,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3716,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3723,1
    - Dst: test_posonly_keywords_opt_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3751,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: 3755
      start: 3684
    functionDepth: 1
    functionLinenumber: 3684
    functionLinenumberEnd: 3755
    functionName: test_posonly_keywords_opt_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    - 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:3804,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3806,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3806,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3806,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3806,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3823,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3830,1
    - Dst: test_posonly_keywords_opt2_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3863,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: 3867
      start: 3791
    functionDepth: 1
    functionLinenumber: 3791
    functionLinenumberEnd: 3867
    functionName: test_posonly_keywords_opt2_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - test_posonly_keywords_opt2_kwonly_opt_impl
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:3918,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3920,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3920,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3920,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:3920,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:3937,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:3945,1
    - Dst: test_posonly_opt_keywords_opt_kwonly_opt_impl
      Src: /src/cpython/Lib/test/clinic.test.c:3984,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: 3988
      start: 3905
    functionDepth: 1
    functionLinenumber: 3905
    functionLinenumberEnd: 3988
    functionName: test_posonly_opt_keywords_opt_kwonly_opt
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - test_posonly_opt_keywords_opt_kwonly_opt_impl
    - _Py_LATIN1_CHR
    - PyTuple_GET_SIZE
    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:4030,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4032,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:4049,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4052,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Lib/test/clinic.test.c:4060,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:4061,1
    - Dst: test_keyword_only_parameter_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4066,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: 4070
      start: 4017
    functionDepth: 1
    functionLinenumber: 4017
    functionLinenumberEnd: 4070
    functionName: test_keyword_only_parameter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_keyword_only_parameter_impl
    - PyVarObject_HEAD_INIT
    - PyBytes_Check
    - _PyArg_UnpackKeywords
    - _PyArg_BadArgument
    - PyTuple_GET_SIZE
    - _Py_ID
    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:4169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4170
      start: 4166
    functionDepth: 0
    functionLinenumber: 4166
    functionLinenumberEnd: 4170
    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:4187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4184
    functionDepth: 0
    functionLinenumber: 4184
    functionLinenumberEnd: 4188
    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:4205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4202
    functionDepth: 0
    functionLinenumber: 4202
    functionLinenumberEnd: 4206
    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:4223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4224
      start: 4220
    functionDepth: 0
    functionLinenumber: 4220
    functionLinenumberEnd: 4224
    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:4241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4242
      start: 4238
    functionDepth: 0
    functionLinenumber: 4238
    functionLinenumberEnd: 4242
    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:4259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4260
      start: 4256
    functionDepth: 0
    functionLinenumber: 4256
    functionLinenumberEnd: 4260
    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:4278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4279
      start: 4275
    functionDepth: 0
    functionLinenumber: 4275
    functionLinenumberEnd: 4279
    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:4340,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Lib/test/clinic.test.c:4344,1
    - Dst: test_vararg_and_posonly_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4348,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:4352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4333
    functionDepth: 3
    functionLinenumber: 4333
    functionLinenumberEnd: 4355
    functionName: test_vararg_and_posonly
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - _PyArg_CheckPositional
    - test_vararg_and_posonly_impl
    - Py_XDECREF
    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:4394,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4396,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4417,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Lib/test/clinic.test.c:4424,1
    - Dst: PyTuple_New
      Src: /src/cpython/Lib/test/clinic.test.c:4425,1
    - Dst: test_vararg_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4429,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:4433,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: 4436
      start: 4381
    functionDepth: 3
    functionLinenumber: 4381
    functionLinenumberEnd: 4436
    functionName: test_vararg
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - test_vararg_impl
    - _Py_LATIN1_CHR
    - Py_XDECREF
    - PyTuple_New
    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:4477,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4479,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4479,1
    - Dst: Py_MIN
      Src: /src/cpython/Lib/test/clinic.test.c:4497,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:4497,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4502,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Lib/test/clinic.test.c:4511,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Lib/test/clinic.test.c:4517,1
    - Dst: PyTuple_New
      Src: /src/cpython/Lib/test/clinic.test.c:4518,1
    - Dst: test_vararg_with_default_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4522,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:4526,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: 4529
      start: 4464
    functionDepth: 3
    functionLinenumber: 4464
    functionLinenumberEnd: 4529
    functionName: test_vararg_with_default
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - test_vararg_with_default_impl
    - PyObject_IsTrue
    - _Py_LATIN1_CHR
    - Py_MIN
    - Py_XDECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    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:4571,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4573,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4573,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:4591,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4596,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Lib/test/clinic.test.c:4605,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Lib/test/clinic.test.c:4615,1
    - Dst: test_vararg_with_only_defaults_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4619,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:4623,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: 4626
      start: 4558
    functionDepth: 3
    functionLinenumber: 4558
    functionLinenumberEnd: 4626
    functionName: test_vararg_with_only_defaults
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_FromArray
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _Py_LATIN1_CHR
    - test_vararg_with_only_defaults_impl
    - Py_XDECREF
    - PyTuple_GET_SIZE
    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:4663,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4665,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4684,1
    - Dst: test_paramname_module_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4690,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: 4694
      start: 4650
    functionDepth: 1
    functionLinenumber: 4650
    functionLinenumberEnd: 4694
    functionName: test_paramname_module
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - test_paramname_module_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:4743,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4745,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4772,1
    - Dst: mangle1_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4786,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: 4790
      start: 4730
    functionDepth: 1
    functionLinenumber: 4730
    functionLinenumberEnd: 4790
    functionName: mangle1
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - mangle1_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:4833,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4835,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4835,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:4835,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4856,1
    - Dst: mangle2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4864,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: 4868
      start: 4820
    functionDepth: 1
    functionLinenumber: 4820
    functionLinenumberEnd: 4868
    functionName: mangle2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - mangle2_impl
    - _PyArg_UnpackKeywords
    - _Py_ID
    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:4907,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:4909,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4928,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:4933,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:4934,1
    - Dst: Test_cls_with_param_impl
      Src: /src/cpython/Lib/test/clinic.test.c:4937,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: 4941
      start: 4894
    functionDepth: 4
    functionLinenumber: 4894
    functionLinenumberEnd: 4941
    functionName: Test_cls_with_param
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test_cls_with_param_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    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:4968,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:4969,1
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Lib/test/clinic.test.c:4970,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:4973,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:4974,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:4975,1
    - Dst: Test___init___impl
      Src: /src/cpython/Lib/test/clinic.test.c:4978,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4982
      start: 4962
    functionDepth: 0
    functionLinenumber: 4962
    functionLinenumberEnd: 4982
    functionName: Test___init__
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test___init___impl
    - Py_IS_TYPE
    - _PyArg_NoPositional
    - _PyArg_NoKeywords
    - 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:5011,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5015,1
    - Dst: Test_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5018,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5022
      start: 5004
    functionDepth: 0
    functionLinenumber: 5004
    functionLinenumberEnd: 5022
    functionName: Test
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoPositional
    - _PyArg_NoKeywords
    - Test_impl
    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:5049,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:5050,1
    - Dst: Test_cls_no_params_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5053,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: 5054
      start: 5046
    functionDepth: 1
    functionLinenumber: 5046
    functionLinenumberEnd: 5054
    functionName: Test_cls_no_params
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - Test_cls_no_params_impl
    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:5084,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5085,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Lib/test/clinic.test.c:5088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5092
      start: 5078
    functionDepth: 0
    functionLinenumber: 5078
    functionLinenumberEnd: 5092
    functionName: Test_metho_not_default_return_converter
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Test_metho_not_default_return_converter_impl
    - PyErr_Occurred
    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:5127,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5128,1
    - Dst: Test_an_metho_arg_named_arg_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg_
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5135
      start: 5121
    functionDepth: 4
    functionLinenumber: 5121
    functionLinenumberEnd: 5135
    functionName: Test_an_metho_arg_named_arg
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - Test_an_metho_arg_named_arg_impl
    - PyErr_Occurred
    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:5169,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:5170,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5171,1
    - Dst: Py_NewRef
      Src: /src/cpython/Lib/test/clinic.test.c:5174,1
    - Dst: Test___init___impl
      Src: /src/cpython/Lib/test/clinic.test.c:5175,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:5179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5182
      start: 5162
    functionDepth: 0
    functionLinenumber: 5162
    functionLinenumberEnd: 5182
    functionName: Test___init__
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test___init___impl
    - Py_IS_TYPE
    - Py_XDECREF
    - _PyArg_NoKeywords
    - Py_NewRef
    - 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:5217,1
    - Dst: Py_NewRef
      Src: /src/cpython/Lib/test/clinic.test.c:5220,1
    - Dst: Test_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5221,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/clinic.test.c:5225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5228
      start: 5209
    functionDepth: 0
    functionLinenumber: 5209
    functionLinenumberEnd: 5228
    functionName: Test
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Py_NewRef
    - Py_XDECREF
    - 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:5263,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:5265,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:5283,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5286,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Lib/test/clinic.test.c:5286,1
    - Dst: Test___init___impl
      Src: /src/cpython/Lib/test/clinic.test.c:5292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5296
      start: 5250
    functionDepth: 1
    functionLinenumber: 5250
    functionLinenumberEnd: 5296
    functionName: Test___init__
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test___init___impl
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    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:5322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5323
      start: 5319
    functionDepth: 0
    functionLinenumber: 5319
    functionLinenumberEnd: 5323
    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:5349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - 'null'
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5350
      start: 5346
    functionDepth: 0
    functionLinenumber: 5346
    functionLinenumberEnd: 5350
    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:5376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5373
    functionDepth: 0
    functionLinenumber: 5373
    functionLinenumberEnd: 5377
    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:5404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5401
    functionDepth: 0
    functionLinenumber: 5401
    functionLinenumberEnd: 5405
    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:5434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5437
      start: 5429
    functionDepth: 0
    functionLinenumber: 5429
    functionLinenumberEnd: 5437
    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:5466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5469
      start: 5461
    functionDepth: 0
    functionLinenumber: 5461
    functionLinenumberEnd: 5469
    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:5505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5502
    functionDepth: 0
    functionLinenumber: 5502
    functionLinenumberEnd: 5506
    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:5599,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:5601,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5620,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Lib/test/clinic.test.c:5625,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5626,1
    - Dst: mangled_c_keyword_identifier_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5629,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: 5633
      start: 5586
    functionDepth: 4
    functionLinenumber: 5586
    functionLinenumberEnd: 5633
    functionName: mangled_c_keyword_identifier
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - mangled_c_keyword_identifier_impl
    - PyLong_AsInt
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - _Py_LATIN1_CHR
    - PyErr_Occurred
    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:5661,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5662,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Lib/test/clinic.test.c:5665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5669
      start: 5655
    functionDepth: 1
    functionLinenumber: 5655
    functionLinenumberEnd: 5669
    functionName: bool_return
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - bool_return_impl
    - PyErr_Occurred
    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:5697,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/clinic.test.c:5698,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Lib/test/clinic.test.c:5701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5705
      start: 5691
    functionDepth: 3
    functionLinenumber: 5691
    functionLinenumberEnd: 5705
    functionName: double_return
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - double_return_impl
    - PyFloat_FromDouble
    - PyErr_Occurred
    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:5739,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/clinic.test.c:5740,1
    - Dst: _PyArg_NoKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5741,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:5744,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Lib/test/clinic.test.c:5746,1
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Lib/test/clinic.test.c:5751,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/clinic.test.c:5757,1
    - Dst: Test___init___impl
      Src: /src/cpython/Lib/test/clinic.test.c:5760,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5764
      start: 5730
    functionDepth: 1
    functionLinenumber: 5730
    functionLinenumberEnd: 5764
    functionName: Test___init__
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Test___init___impl
    - Py_IS_TYPE
    - PyErr_SetString
    - _PyArg_NoKeywords
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - 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:5814,1
    - Dst: Test__pyarg_parsestackandkeywords_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5818,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: 5822
      start: 5794
    functionDepth: 1
    functionLinenumber: 5794
    functionLinenumberEnd: 5822
    functionName: Test__pyarg_parsestackandkeywords
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - Test__pyarg_parsestackandkeywords_impl
    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:5860,1
    - Dst: _Py_ID
      Src: /src/cpython/Lib/test/clinic.test.c:5862,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/clinic.test.c:5879,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5882,1
    - Dst: fn_with_default_binop_expr_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5892,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: 5896
      start: 5847
    functionDepth: 1
    functionLinenumber: 5847
    functionLinenumberEnd: 5896
    functionName: fn_with_default_binop_expr
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - fn_with_default_binop_expr_impl
    - PyTuple_GET_SIZE
    - _Py_ID
    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:5952,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Lib/test/clinic.test.c:5954,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/cpython/Lib/test/clinic.test.c:5973,1
    - Dst: c_converter_func
      Src: /src/cpython/Lib/test/clinic.test.c:5978,1
    - Dst: docstr_fallback_to_converter_default_impl
      Src: /src/cpython/Lib/test/clinic.test.c:5981,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: 5985
      start: 5939
    functionDepth: 1
    functionLinenumber: 5939
    functionLinenumberEnd: 5985
    functionName: docstr_fallback_to_converter_default
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - PyVarObject_HEAD_INIT
    - _PyArg_UnpackKeywords
    - c_converter_func
    - _Py_LATIN1_CHR
    - docstr_fallback_to_converter_default_impl
    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:6013,1
    - Dst: test_critical_section_impl
      Src: /src/cpython/Lib/test/clinic.test.c:6014,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:6015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6018
      start: 6008
    functionDepth: 0
    functionLinenumber: 6008
    functionLinenumberEnd: 6018
    functionName: test_critical_section
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - test_critical_section_impl
    - Py_END_CRITICAL_SECTION
    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:6049,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:6050,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:6054,1
    - Dst: test_critical_section_meth_o_impl
      Src: /src/cpython/Lib/test/clinic.test.c:6055,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:6056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6060
      start: 6043
    functionDepth: 1
    functionLinenumber: 6043
    functionLinenumberEnd: 6060
    functionName: test_critical_section_meth_o
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    - test_critical_section_meth_o_impl
    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:6092,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:6093,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:6097,1
    - Dst: test_critical_section_object_impl
      Src: /src/cpython/Lib/test/clinic.test.c:6098,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/clinic.test.c:6099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6103
      start: 6086
    functionDepth: 1
    functionLinenumber: 6086
    functionLinenumberEnd: 6103
    functionName: test_critical_section_object
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - test_critical_section_object_impl
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_Check
    - _PyArg_BadArgument
    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:6138,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:6141,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:6142,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/clinic.test.c:6146,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Lib/test/clinic.test.c:6147,1
    - Dst: Py_BEGIN_CRITICAL_SECTION2
      Src: /src/cpython/Lib/test/clinic.test.c:6151,1
    - Dst: test_critical_section_object2_impl
      Src: /src/cpython/Lib/test/clinic.test.c:6152,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Lib/test/clinic.test.c:6153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6157
      start: 6131
    functionDepth: 1
    functionLinenumber: 6131
    functionLinenumberEnd: 6157
    functionName: test_critical_section_object2
    functionSourceFile: /src/cpython/Lib/test/clinic.test.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_BEGIN_CRITICAL_SECTION2
    - PyUnicode_Check
    - test_critical_section_object2_impl
    - _PyArg_BadArgument
    - Py_END_CRITICAL_SECTION2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_critical_section_object2(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: _STR
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 47
    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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: STR
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Lib/test/test_cext/extension.c:49,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Lib/test/test_cext/extension.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: _testcext_add
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testcext_add(PyObject *Py_UNUSED(module), PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/test_cext/extension.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: test_datetime
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_datetime(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Lib/test/test_cext/extension.c:85,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Lib/test/test_cext/extension.c:90,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cext/extension.c:92,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Lib/test/test_cext/extension.c:95,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cext/extension.c:96,1
    - Dst: Py_BUILD_ASSERT_EXPR
      Src: /src/cpython/Lib/test/test_cext/extension.c:96,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Lib/test/test_cext/extension.c:100,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/test_cext/extension.c:103,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Lib/test/test_cext/extension.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_BUILD_ASSERT_EXPR(sizeof(int) == sizeof(unsigned int)) == 0)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/cpython/Lib/test/test_cext/extension.c
    constantsTouched: []
    func_position:
      end: 107
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 107
    functionName: _testcext_exec
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - PyModule_AddIntMacro
    - Py_BEGIN_CRITICAL_SECTION
    - Py_CLEAR
    - Py_BUILD_ASSERT
    - assert
    - Py_DECREF
    - PyObject_CallMethod
    - Py_BUILD_ASSERT_EXPR
    linkageType: ''
    returnType: int
    signature: int _testcext_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: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    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: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    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: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: PyMODEXPORT_FUNC::FUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _Py_COMP_DIAG_POP
    signature: '_Py_COMP_DIAG_POP PyMODEXPORT_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: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: _INITFUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _INITFUNC_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: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: INITFUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITFUNC_NAME(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Lib/test/test_cext/extension.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: INITFUNC_NAME
    functionSourceFile: /src/cpython/Lib/test/test_cext/extension.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC INITFUNC_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: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: _STR
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 47
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: STR
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:51,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: _testcppext_add
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLong
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:82,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:86,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:87,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_TYPE
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:96,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:97,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:97,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:98,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:99,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:99,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:100,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:101,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:101,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:107,1
    - Dst: Py_TYPE
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:107,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:108,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:108,1
    - Dst: Py_INCREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:110,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:113,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:114,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:117,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_GET_SIZE(const_obj) == 2)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (Py_TYPE(strong_ref) == &PyTuple_Type)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyLong_AsLong(one) == 1)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (Py_REFCNT(const_obj) == refcnt)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (type == &PyTuple_Type)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (refcnt >= 1)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (Py_REFCNT(strong_ref) == (refcnt + 1))
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    constantsTouched: []
    func_position:
      end: 123
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 123
    functionName: test_api_casts
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - Py_BuildValue
    - Py_REFCNT
    - PyLong_AsLong
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_TYPE
    - Py_XINCREF
    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:129,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:134,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:134,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:136,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:136,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:137,1
    - Dst: PyUnicode_ReadChar
      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_ReadChar
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:138,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:141,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:141,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:144,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:145,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:146,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:147,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:148,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:148,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:151,1
    - Dst: static_cast<unsigned int>
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:152,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:153,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:153,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:155,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_ReadChar(str, 0) == 'a')
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_READ(ukind, const_data, 2) == 'c')
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_Check(str))
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_ReadChar(str, 1) == 'b')
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_GET_LENGTH(str) == 3)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_GetLength(str) == 3)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (kind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_READ(kind, data, 0) == 'a')
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (data != _Py_NULL)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (PyUnicode_READ_CHAR(str, 1) == 'b')
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    constantsTouched: []
    func_position:
      end: 160
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 160
    functionName: test_unicode
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_ReadChar
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_READ_CHAR
    - PyUnicode_READ
    - PyUnicode_GetLength
    - PyUnicode_Check
    - static_cast<unsigned int>
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    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: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    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: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    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:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    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:216,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:219,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:220,1
    - Dst: PyObject_Init
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:221,1
    - Dst: int::int
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyObject_Init(this, (PyTypeObject *)type))
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    - condition: (type)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 12
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: VirtualPyObject::VirtualPyObject
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - PyObject_Init
    - int::int
    - assert
    - Py_DECREF
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void VirtualPyObject::VirtualPyObject()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VirtualPyObject::VirtualPyObject
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:229,1
    - Dst: VirtualPyObject*::set_internal_data
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:231,1
    - Dst: PyErr_Format
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 13
    functionLinenumber: 226
    functionLinenumberEnd: 239
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: test_datetime
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_datetime(PyObject *Py_UNUSED(module), PyObject *Py_UNUSED(args))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:271,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:279,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:283,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:287,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:291,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:294,1
    - Dst: assert
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:295,1
    - Dst: Py_BUILD_ASSERT_EXPR
      Src: /src/cpython/Lib/test/test_cppext/extension.cpp:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_BUILD_ASSERT_EXPR(sizeof(int) == sizeof(unsigned int)) == 0)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Lib/test/test_cppext/extension.cpp
    constantsTouched: []
    func_position:
      end: 298
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 298
    functionName: _testcppext_exec
    functionSourceFile: /src/cpython/Lib/test/test_cppext/extension.cpp
    functionUses: 0
    functionsReached:
    - PyModule_AddIntMacro
    - Py_BUILD_ASSERT
    - assert
    - Py_DECREF
    - PyObject_CallMethod
    - Py_BUILD_ASSERT_EXPR
    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: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    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: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    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:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 336
    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:
    - Dst: jitted
      Src: /src/cpython/Tools/jit/shim.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: 17
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: _PyJIT_Entry
    functionSourceFile: /src/cpython/Tools/jit/shim.c
    functionUses: 0
    functionsReached:
    - jitted
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: "_Py_CODEUNIT *\n_PyJIT_Entry(\n    _PyExecutorObject *exec, _PyInterpreterFrame
      *frame, _PyStackRef *stack_pointer, PyThreadState *tstate\n)"
  - 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_64
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND0_64()
  - 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_64
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND1_64()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CURRENT_OPERAND0_32
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND0_32()
  - 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: CURRENT_OPERAND0_16
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND0_16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: CURRENT_OPERAND1_32
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND1_32()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: CURRENT_OPERAND1_16
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND1_16()
  - 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: 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: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: CURRENT_OPERAND0_32
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND0_32()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: CURRENT_OPERAND0_16
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND0_16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: CURRENT_OPERAND1_32
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND1_32()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: CURRENT_OPERAND1_16
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_OPERAND1_16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    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: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    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:
    - (
    - UNUSED
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: LOAD_IP
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 18
    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: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: LLTRACE_RESUME_FRAME
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 19
    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: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: LLTRACE_RESUME_FRAME
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 19
    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: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    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: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    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: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    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: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - F
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: ASSERT_WITHIN_STACK_BOUNDS
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 191
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WITHIN_STACK_BOUNDS(F, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - F
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: ASSERT_WITHIN_STACK_BOUNDS
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 191
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WITHIN_STACK_BOUNDS(F, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Tools/jit/template.c:138,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Tools/jit/template.c:156,1
    - Dst: UOP_STAT_INC
      Src: /src/cpython/Tools/jit/template.c:157,1
    - Dst: PATCH_JUMP
      Src: /src/cpython/Tools/jit/template.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - executor
    - frame
    - stack_pointer
    - tstate
    - _tos_cache0
    - _tos_cache1
    - _tos_cache2
    argTypes:
    - _PyExecutorObject*
    - _PyInterpreterFrame*
    - _PyStackRef*
    - PyThreadState*
    - _PyStackRef
    - _PyStackRef
    - _PyStackRef
    assertStmts:
    - condition: (SIZEOF_VOID_P == 4)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/cpython/Tools/jit/template.c
    constantsTouched: []
    func_position:
      end: 165
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 165
    functionName: _JIT_ENTRY
    functionSourceFile: /src/cpython/Tools/jit/template.c
    functionUses: 0
    functionsReached:
    - UOP_STAT_INC
    - OPT_STAT_INC
    - PATCH_JUMP
    - assert
    linkageType: ''
    returnType: _Py_CODEUNIT
    signature: "_Py_CODEUNIT *\n_JIT_ENTRY(\n    _PyExecutorObject *executor, _PyInterpreterFrame
      *frame, _PyStackRef *stack_pointer, PyThreadState *tstate,\n    _PyStackRef
      _tos_cache0, _PyStackRef _tos_cache1, _PyStackRef _tos_cache2\n)"
  - 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: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: DECLARE_TARGET
    functionSourceFile: /src/cpython/Tools/jit/jit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_TARGET(NAME)
  - 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:
    - PyAST_mod2obj
    - Py_NewRef
    - _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: 6
    functionLinenumber: 21
    functionLinenumberEnd: 67
    functionName: parse_file
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - fopen
    - _build_return_object
    - fclose
    - PyErr_SetFromErrnoWithFilename
    - _PyArena_Free
    - _PyPegen_run_parser_from_file_pointer
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - _PyArena_New
    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: 6
    functionLinenumber: 69
    functionLinenumberEnd: 106
    functionName: parse_string
    functionSourceFile: /src/cpython/Tools/peg_generator/peg_extension/peg_extension.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - _PyPegen_run_parser_from_string
    - _build_return_object
    - _PyArena_Free
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - _PyArena_New
    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:
    - _PyPegen_get_memo_statistics
    - PyList_Size
    - PyLong_AsLong
    - PyList_GetItem
    - printf
    - Py_DECREF
    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:
    - BalExitOnFailure
    - CreateBootstrapperApplication
    - BalInitialize
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT BootstrapperApplicationCreate(\n    __in IBootstrapperEngine*
      pEngine,\n    __in const BOOTSTRAPPER_COMMAND* pCommand,\n    __out IBootstrapperApplication**
      ppApplication\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BalUninitialize
      Src: /src/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:
    - PythonBootstrapperApplication::ProcessPageControls
    - PythonBootstrapperApplication::FailurePage_Show
    - ThemeSetFocus
    - InvalidateRect
    - PythonBootstrapperApplication::ModifyPage_Show
    - PythonBootstrapperApplication::InstallPage_Show
    - PythonBootstrapperApplication::Custom1Page_Show
    - ThemeShowPage
    - ThemeGetPage
    - PythonBootstrapperApplication::SuccessPage_Show
    - PythonBootstrapperApplication::Custom2Page_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::EnableMaxPathSupport
    - BalGetStringVariable
    - ThemeControlElevates
    - PythonBootstrapperApplication::WillElevate
    - PythonBootstrapperApplication::OnPlan
    - ::SHBrowseForFolderW
    - ThemeGetTextControl
    - ReleaseStr
    - ThemeControlEnable
    - SUCCEEDED
    - ExitOnFailure
    - PythonBootstrapperApplication::EnsureTargetDir
    - ThemeSetTextControl
    - PythonBootstrapperApplication::GoToPage
    - BalFormatString
    - ThemeIsControlChecked
    - ::CoTaskMemFree
    - ThemeSendControlMessage
    - BalGetNumericVariable
    - ::SHGetPathFromIDListW
    - PythonBootstrapperApplication::OnClickCloseButton
    - SetVariableNumeric
    - SetVariableString
    - PythonBootstrapperApplication::SavePageSettings
    - wcscmp
    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:
    - ThemeSetTextControl
    - ThemeControlElevates
    - PythonBootstrapperApplication::WillElevate
    - SUCCEEDED
    - LocGetString
    - 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:
    - FAILED
    - ThemeSetTextControl
    - SUCCEEDED
    - ThemeSendControlMessage
    - LocGetString
    - 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:
    - StrFree
    - FAILED
    - ThemeControlElevates
    - BalGetStringVariable
    - ThemeSetTextControl
    - ThemeShowControl
    - PythonBootstrapperApplication::WillElevate
    - ThemeControlEnable
    - BalFormatString
    - SUCCEEDED
    - ThemeSendControlMessage
    - 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:
    - BalLog
    - StrFree
    - ThemeSetTextControl
    - RegOpenKeyExW
    - ThemeControlElevates
    - RegQueryValueExW
    - IsWindowsVersionOrGreater
    - ThemeControlEnable
    - BalFormatString
    - LocGetString
    - RegCloseKey
    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:
    - ThemeSetTextControl
    - FAILED
    - ReleaseStr
    - ThemeControlEnable
    - StrAllocFromError
    - StrAllocFormatted
    - StrAllocString
    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:
    - FAILED
    - BalGetStringVariable
    - ShellExecuteW
    - StrAllocFormatted
    - BalLog
    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:
    - CheckCanceled
    - FAILED
    - SetVariableNumeric
    - ::CompareStringW
    - BalLog
    - 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:
    - PythonBootstrapperApplication::SetState
    - CheckCanceled
    - PythonBootstrapperApplication::LoadOptionalFeatureStates
    - BalInfoAddRelatedBundleAsPackage
    - BalFormatString
    - SUCCEEDED
    - LocGetString
    - BalLog
    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:
    - ::PostMessageW
    - PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
    - PythonBootstrapperApplication::SetState
    - PythonBootstrapperApplication::EnsureTargetDir
    - FAILED
    - SetVariableNumeric
    - PythonBootstrapperApplication::OnDetectComplete
    - SUCCEEDED
    - SetVariableString
    - BalLog
    - BalGetNumericVariable
    - PythonBootstrapperApplication::EvaluateConditions
    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:
    - CheckCanceled
    - ReleaseNullStr
    - EvaluateCondition
    - BalInfoFindPackageById
    - SUCCEEDED
    - ::CompareStringW
    - BalLog
    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:
    - CheckCanceled
    - SUCCEEDED
    - GetVariableNumeric
    - wcscmp
    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:
    - ::PostMessageW
    - PythonBootstrapperApplication::SetState
    - PythonBootstrapperApplication::OnPlanComplete
    - SUCCEEDED
    - BalLog
    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:
    - SUCCEEDED
    - PythonBootstrapperApplication::OnCachePackageBegin
    - ThemeSetTextControl
    - BalInfoFindPackageById
    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
    - ThemeSetTextControl
    - ::StringCchPrintfW
    - countof
    - ThemeSetProgressControl
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - BalLog
    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::OnCacheAcquireComplete
    - PythonBootstrapperApplication::SetProgressState
    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:
    - SendEmbeddedError
    - FAILED
    - PythonBootstrapperApplication::SetProgressState
    - ReleaseStr
    - StrAllocFromError
    - StrAllocFormatted
    - HRESULT_FROM_WIN32
    - BalRetryErrorOccurred
    - ::MessageBoxW
    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
    - BalLog
    - ::MessageBoxW
    - 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:
    - ThemeSetTextControl
    - ::StringCchPrintfW
    - countof
    - PythonBootstrapperApplication::OnProgress
    - ThemeSetProgressControl
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - BalLog
    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:
    - ThemeSetTextControl
    - ReleaseStr
    - BalInfoFindPackageById
    - BalFormatString
    - LocGetString
    - PythonBootstrapperApplication::OnExecutePackageBegin
    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:
    - ThemeSetTextControl
    - ::StringCchPrintfW
    - countof
    - PythonBootstrapperApplication::OnExecuteProgress
    - ThemeSetProgressControl
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - BalLog
    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
    - PythonBootstrapperApplication::OnExecutePackageComplete
    - PythonBootstrapperApplication::SetProgressState
    - SUCCEEDED
    - 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:
    - CheckCanceled
    - countof
    - ::GetOpenFileNameW
    - ::StringCchCopyW
    - SUCCEEDED
    - SetLocalSource
    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
    - Sleep
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    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:
    - ReleaseTheme
    - ::TranslateMessage
    - BalExitOnFailure
    - HRESULT_CODE
    - PythonBootstrapperApplication*::ValidateOperatingSystem
    - PythonBootstrapperApplication*::CreateMainWindow
    - PythonBootstrapperApplication*::InitializeData
    - FAILED
    - ::DispatchMessageW
    - PythonBootstrapperApplication*::SetState
    - ThemeUninitialize
    - ::PostMessageW
    - PythonBootstrapperApplication*::CheckCanceled
    - PythonBootstrapperApplication*::_engine::Quit
    - PythonBootstrapperApplication*::InitializeTaskbarButton
    - ::CoInitialize
    - ::GetMessageW
    - ThemeInitialize
    - ::CoUninitialize
    - ThemeHandleKeyboardMessage
    - HRESULT_FROM_WIN32
    - PythonBootstrapperApplication*::DestroyMainWindow
    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:
    - XmlGetAttributeEx
    - BalExitOnFailure
    - ReleaseNullObject
    - ::CompareStringW
    - BalExitOnFailure1
    - XmlGetAttribute
    - ReleaseNullBSTR
    - IXMLDOMNodeList*::get_length
    - FAILED
    - ReleaseStr
    - XmlSelectNodes
    - ReleaseObject
    - XmlNextElement
    - ReleaseNullStr
    - ::StrToIntExW
    - BalFormatString
    - BalLog
    - ExitFunction1
    - XmlGetText
    - XmlLoadDocumentFromFile
    - SetVariableNumeric
    - SetVariableString
    - FileExistsEx
    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:
    - BalConditionsParseFromXml
    - PathRelativeToModule
    - PythonBootstrapperApplication::LoadBootstrapperBAFunctions
    - PythonBootstrapperApplication::GetBundleFileVersion
    - PythonBootstrapperApplication::ParseOverridableVariablesFromXml
    - PythonBootstrapperApplication::LoadOptionalFeatureStates
    - BalManifestLoad
    - ReleaseStr
    - BalInfoParseFromXml
    - BalExitOnFailure
    - PythonBootstrapperApplication::LoadTheme
    - PythonBootstrapperApplication::LoadLocalization
    - ReleaseObject
    - PythonBootstrapperApplication::ProcessCommandLine
    - ExitOnFailure
    - PythonBootstrapperApplication::UpdateUIStrings
    - PythonBootstrapperApplication::ParseVariablesFromUnattendXml
    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:
    - BalLog
    - wcschr
    - ::StrToIntEx
    - ExitOnNullWithLastError
    - ::LocalFree
    - ReleaseStr
    - SetVariableNumeric
    - BalExitOnFailure
    - ::CompareStringW
    - SetVariableString
    - ::CommandLineToArgvW
    - DictKeyExists
    - ExitOnFailure
    - StrAllocString
    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:
    - LocLocalizeString
    - ReleaseStr
    - BalExitOnFailure2
    - LocLoadFromFile
    - ::SetThreadLocale
    - ExitOnFailure
    - LocProbeForFile
    - BalExitOnFailure1
    - StrAllocString
    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:
    - ThemeLocalize
    - ReleaseStr
    - BalExitOnFailure2
    - BalFormatString
    - SUCCEEDED
    - ThemeUpdateCaption
    - ThemeLoadFromFile
    - LocProbeForFile
    - BalExitOnFailure1
    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:
    - XmlGetAttributeEx
    - ExitFunction1
    - IXMLDOMNodeList*::get_length
    - XmlGetYesNoAttribute
    - DictCreateStringList
    - ExitOnFailure1
    - ReleaseStr
    - XmlSelectNodes
    - ReleaseObject
    - ReleaseNullObject
    - XmlNextElement
    - ExitOnFailure
    - DictAddKey
    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
    - BalExitOnFailure
    - SetVariableVersion
    - 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:
    - ::MonitorFromPoint
    - ::GetMonitorInfoW
    - ::CreateWindowExW
    - ExitOnNullWithLastError
    - ::GetModuleHandleW
    - ::RegisterClassW
    - RGB
    - reinterpret_cast<HICON>
    - ::LoadCursorW
    - PythonBootstrapperApplication::RemapColor
    - ::IsWindow
    - ::LoadIconW
    - ::GetCursorPos
    - MAKEINTRESOURCEW
    - ExitWithLastError
    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:
    - ExitFunction1
    - ::RegisterWindowMessageW
    - __uuidof
    - BalExitOnFailure
    - BalExitOnNullWithLastError
    - reinterpret_cast<LPVOID*>
    - ::CoCreateInstance
    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:
    - ::DestroyWindow
    - ::UnregisterClassW
    - ::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:
    - auto::OnClickLogFileLink
    - auto::OnPlan
    - ThemeDefWindowProc
    - reinterpret_cast<LPNMHDR>
    - auto::OnCreate
    - ::PostQuitMessage
    - static_cast<PYBA_STATE>
    - auto::SetControlColor
    - LOWORD
    - auto::OnChangeState
    - reinterpret_cast<LPCREATESTRUCT>
    - auto::OnClose
    - auto::OnShowHelp
    - reinterpret_cast<PythonBootstrapperApplication*>
    - auto::OnShowFailure
    - ::SetWindowLongPtrW
    - ::GetWindowLongPtrW
    - auto::OnCommand
    - reinterpret_cast<LONG_PTR>
    - static_cast<BOOTSTRAPPER_ACTION>
    - auto::OnApply
    - auto::OnClickRestartButton
    - auto::OnSystemShutdown
    - auto::OnDetect
    - static_cast<DWORD>
    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:
    - ThemeSetTextControl
    - countof
    - C_ASSERT
    - ThemeGetPageIds
    - ReleaseStr
    - BalFormatString
    - BalExitOnFailure
    - SUCCEEDED
    - 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
    - GetSysColorBrush
    - GetSysColor
    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:
    - ::SetBkColor
    - PythonBootstrapperApplication::RemapColor
    - ::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:
    - ::ShowWindow
    - PythonBootstrapperApplication::SetState
    - 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:
    - ::ShowWindow
    - PythonBootstrapperApplication::SetState
    - 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:
    - ::ShowWindow
    - PythonBootstrapperApplication::SetState
    - FAILED
    - PythonBootstrapperApplication::OnDetect
    - Detect
    - BalExitOnFailure
    - BalLog
    - 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:
    - ReleaseStr
    - SUCCEEDED
    - StrAllocFormatted
    - SetVariableString
    - LocGetString
    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
    - FAILED
    - Plan
    - PythonBootstrapperApplication::OnPlan
    - BalExitOnFailure
    - HRESULT_FROM_WIN32
    - BalLog
    - PythonBootstrapperApplication::UpdateUIStrings
    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::SetTaskbarButtonProgress
    - FAILED
    - PythonBootstrapperApplication::SetProgressState
    - ThemeControlEnable
    - BalExitOnFailure
    - Apply
    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:
    - ::PostMessageW
    - ReleaseStr
    - PythonBootstrapperApplication::DeterminePageId
    - StrAllocFromError
    - HRESULT_FROM_WIN32
    - PythonBootstrapperApplication::ShowPage
    - ::MessageBoxW
    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:
    - StrFree
    - ThemeSetTextControl
    - BalGetStringVariable
    - PythonBootstrapperApplication::IsCheckable
    - ThemeShowControl
    - ReleaseStr
    - ThemeControlEnable
    - BalFormatString
    - SUCCEEDED
    - StrAllocFormatted
    - ::CompareStringW
    - ThemeSendControlMessage
    - LocGetString
    - BalLog
    - 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:
    - ShelExec
    - BalExitOnFailure1
    - BalGetStringVariable
    - ReleaseStr
    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:
    - ::PostMessageW
    - FAILED
    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:
    - BalConditionEvaluate
    - SUCCEEDED
    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:
    - malloc
    - free
    - GetFileVersionInfoW
    - VerQueryValueW
    - GetFileVersionInfoSizeW
    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:
    - BalConditionEvaluate
    - BalExitOnFailure
    - BalLog
    - ReleaseNullStrSecure
    - BalExitOnFailure1
    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:
    - SetProgressValue
    - BalExitOnFailure1
    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:
    - PythonBootstrapperApplication::SetProgressState
    - BalExitOnFailure1
    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:
    - FAILED
    - IsRollingBack
    - IsCanceled
    - HRESULT_FROM_WIN32
    - PythonBootstrapperApplication::SetTaskbarButtonState
    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:
    - BalLogError
    - _winapi_GetLastError
    - PathRelativeToModule
    - ::GetProcAddress
    - ::FreeLibrary
    - ::LoadLibraryW
    - reinterpret_cast<PFN_BOOTSTRAPPER_BA_FUNCTION_CREATE>
    - ReleaseStr
    - pfnBAFunctionCreate
    - BalExitOnFailure
    - HRESULT_FROM_WIN32
    - BalExitOnNullWithLastError1
    - BalLog
    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:
    - ThemeGetTextControl
    - ThemeControlEnabled
    - PythonBootstrapperApplication::IsCheckable
    - PythonBootstrapperApplication::DeterminePageId
    - SetVariableNumeric
    - ThemeIsControlChecked
    - SetVariableString
    - ThemeGetPage
    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:
    - GetVariableString
    - ::CompareStringW
    - FAILED
    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:
    - GetVariableString
    - ::CompareStringW
    - FAILED
    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:
    - RegOpenKeyExW
    - RegQueryValueExW
    - SetVariableNumeric
    - PythonBootstrapperApplication::IsTargetPlatformx64
    - HRESULT_FROM_WIN32
    - RegCloseKey
    - PythonBootstrapperApplication::IsTargetPlatformARM64
    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:
    - RegOpenKeyExW
    - reinterpret_cast<wchar_t*>
    - RegQueryValueExW
    - PythonBootstrapperApplication::IsTargetPlatformx64
    - HRESULT_FROM_WIN32
    - SetVariableString
    - RegCloseKey
    - PythonBootstrapperApplication::IsTargetPlatformARM64
    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:
    - RegQueryValueExW
    - HRESULT_FROM_WIN32
    - RegCloseKey
    - RegOpenKeyExW
    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:
    - PythonBootstrapperApplication::LoadTargetDirFromKey
    - PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
    - SetVariableNumeric
    - BalExitOnFailure
    - SetVariableString
    - GetVariableString
    - FormatString
    - BalLog
    - BalExitOnFailure1
    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:
    - BalLogError
    - FAILED
    - BalGetStringVariable
    - ReleaseStr
    - BalFormatString
    - BalExitOnFailure
    - SetVariableString
    - BalGetNumericVariable
    - ExitOnFailure
    - BalExitOnFailure1
    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:
    - IsWindows10OrGreater
    - IsWindows8Point1OrGreater
    - IsWindowsServer
    - IsWindowsVistaOrGreater
    - IsWindowsVersionOrGreater
    - IsWindows8OrGreater
    - BalFormatString
    - LocGetString
    - IsWindows7OrGreater
    - BalLog
    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
    - FAILED
    - BalGetStringVariable
    - ReleaseNullStr
    - memcpy_s
    - SetVariableNumeric
    - AddRef
    - SUCCEEDED
    - memset
    - 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:
    - AssertSz
    - ::FreeLibrary
    - ReleaseDict
    - BalConditionsUninitialize
    - ReleaseStr
    - ReleaseNullObject
    - ReleaseObject
    - ::IsWindow
    - BalInfoUninitialize
    - LocFree
    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:
    - PythonBootstrapperApplication::PythonBootstrapperApplication
    - ExitOnNull
    - ExitWithLastError
    - ReleaseObject
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT CreateBootstrapperApplication(\n    __in HMODULE hModule,\n
      \   __in BOOL fPrereq,\n    __in HRESULT hrHostInitialization,\n    __in IBootstrapperEngine*
      pEngine,\n    __in const BOOTSTRAPPER_COMMAND* pCommand,\n    __out IBootstrapperApplication**
      ppApplication\n    )"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/importdl.c:36,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/importdl.c:40,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/importdl.c:44,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/importdl.c:50,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/importdl.c:54,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/importdl.c:58,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/importdl.c:59,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/importdl.c:60,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/importdl.c:71,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/importdl.c:71,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:75,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:79,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/importdl.c:80,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - name
    - hook_prefixes
    argTypes:
    - PyObject*
    - struct hook_prefixes**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: get_encoded_name
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsEncodedString
    - Py_INCREF
    - PyUnicode_GetLength
    - PyUnicode_FindChar
    - PyErr_Clear
    - PyUnicode_Substring
    - PyErr_ExceptionMatches
    - _PyObject_CallMethod
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_encoded_name(PyObject *name, const struct hook_prefixes **hook_prefixes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:87,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:89,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:91,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct _Py_ext_module_loader_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    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:104,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/importdl.c:105,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/importdl.c:106,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:108,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:111,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/importdl.c:111,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/importdl.c:112,1
    - Dst: get_encoded_name
      Src: /src/cpython/Python/importdl.c:114,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:116,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/importdl.c:120,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:122,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/importdl.c:127,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/importdl.c:128,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:130,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/importdl.c:133,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/importdl.c:136,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/importdl.c:138,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: 103
        line_start: 103
        source_file: /src/cpython/Python/importdl.c
    - condition: (PyUnicode_GetLength(name) > 0)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 151
      start: 95
    functionDepth: 9
    functionLinenumber: 95
    functionLinenumberEnd: 151
    functionName: _Py_ext_module_loader_info_init
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - PyErr_SetString
    - PyUnicode_GetLength
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - get_encoded_name
    - assert
    - _Py_ext_module_loader_info_clear
    - Py_NewRef
    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:158,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/importdl.c:158,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:159,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/importdl.c:159,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/importdl.c:161,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/importdl.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - info
    - name
    argTypes:
    - struct _Py_ext_module_loader_info*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Python/importdl.c
    - condition: (PyUnicode_GetLength(name) > 0)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: _Py_ext_module_loader_info_init_for_builtin
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsEncodedString
    - PyUnicode_GetLength
    - PyUnicode_Check
    - assert
    - Py_NewRef
    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:183,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: 188
      start: 178
    functionDepth: 6
    functionLinenumber: 178
    functionLinenumberEnd: 188
    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:196,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/importdl.c:200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:202,1
    - Dst: _Py_ext_module_loader_info_init
      Src: /src/cpython/Python/importdl.c:207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:209,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: 211
      start: 191
    functionDepth: 10
    functionLinenumber: 191
    functionLinenumberEnd: 211
    functionName: _Py_ext_module_loader_info_init_from_spec
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ext_module_loader_info_init
    - PyObject_GetAttrString
    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:224,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: 223
        line_start: 223
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 226
    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:237,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:237,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:244,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:244,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:248,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:252,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/importdl.c:256,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:262,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:275,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: 236
        line_start: 236
        source_file: /src/cpython/Python/importdl.c
    - condition: (0)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/cpython/Python/importdl.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Python/importdl.c
    - condition: (res->err == NULL && res->_err.exc == NULL)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/cpython/Python/importdl.c
    - condition: (res->kind == _Py_ext_module_kind_UNKNOWN)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/cpython/Python/importdl.c
    - condition: (0)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 277
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 277
    functionName: _Py_ext_module_loader_result_set_error
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyErr_GetRaisedException
    - PyErr_Occurred
    - 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:284,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:284,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:285,1
    - Dst: _Py_ext_module_loader_result_clear
      Src: /src/cpython/Python/importdl.c:290,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:296,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:303,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:307,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/importdl.c:336,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/importdl.c:342,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Python/importdl.c:345,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:349,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/importdl.c:350,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: 283
        line_start: 283
        source_file: /src/cpython/Python/importdl.c
    - condition: (res->err != NULL && res->err == &res->_err)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Python/importdl.c
    - condition: (err.exc != NULL)
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/cpython/Python/importdl.c
    - condition: (err.exc == NULL)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Python/importdl.c
    - condition: (0)
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/cpython/Python/importdl.c
    - condition: (0)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/cpython/Python/importdl.c
    - condition: (msg != NULL)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 352
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 352
    functionName: _Py_ext_module_loader_result_apply_error
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_SetRaisedException
    - PyErr_Format
    - PyErr_Occurred
    - _Py_ext_module_loader_result_clear
    - _PyErr_FormatFromCause
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_FindSharedFuncptrWindows
      Src: /src/cpython/Python/importdl.c:366,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/importdl.c:369,1
    - Dst: _PyImport_FindSharedFuncptr
      Src: /src/cpython/Python/importdl.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - prefix
    - name_buf
    - info
    - fp
    argTypes:
    - char*
    - char*
    - struct _Py_ext_module_loader_info*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 373
    functionName: findfuncptr
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - _PyImport_FindSharedFuncptr
    - _PyImport_FindSharedFuncptrWindows
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: dl_funcptr
    signature: "dl_funcptr findfuncptr(const char *prefix, const char *name_buf,\n
      \           struct _Py_ext_module_loader_info *info,\n            FILE *fp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/importdl.c:385,1
    - Dst: findfuncptr
      Src: /src/cpython/Python/importdl.c:388,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:395,1
    - Dst: findfuncptr
      Src: /src/cpython/Python/importdl.c:399,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:407,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/importdl.c:409,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/importdl.c:415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/importdl.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - info
    - fp
    - modinit
    - modexport
    argTypes:
    - struct _Py_ext_module_loader_info*
    - FILE*
    - PyModInitFunction*
    - PyModExportFunction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 375
    functionDepth: 10
    functionLinenumber: 375
    functionLinenumberEnd: 420
    functionName: _PyImport_GetModuleExportHooks
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyErr_SetImportError
    - PyUnicode_FromFormat
    - PyErr_Occurred
    - PyBytes_AS_STRING
    - Py_DECREF
    - findfuncptr
    linkageType: ''
    returnType: int
    signature: "int _PyImport_GetModuleExportHooks(\n    struct _Py_ext_module_loader_info
      *info,\n    FILE *fp,\n    PyModInitFunction *modinit,\n    PyModExportFunction
      *modexport)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_SwapPackageContext
      Src: /src/cpython/Python/importdl.c:435,1
    - Dst: p0
      Src: /src/cpython/Python/importdl.c:436,1
    - Dst: _PyImport_SwapPackageContext
      Src: /src/cpython/Python/importdl.c:437,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:447,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:448,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:452,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:456,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:459,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/importdl.c:468,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:472,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/importdl.c:481,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:491,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/importdl.c:500,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:501,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/importdl.c:506,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/importdl.c:508,1
    - Dst: _Py_ext_module_loader_result_set_error
      Src: /src/cpython/Python/importdl.c:509,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:515,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:515,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:516,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:521,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/importdl.c:521,1
    - Dst: assert
      Src: /src/cpython/Python/importdl.c:522,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/importdl.c:523,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: 514
        line_start: 514
        source_file: /src/cpython/Python/importdl.c
    - condition: (res.err == NULL)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/cpython/Python/importdl.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/cpython/Python/importdl.c
    - condition: (res.err != NULL)
      pos:
        line_end: 521
        line_start: 521
        source_file: /src/cpython/Python/importdl.c
    constantsTouched: []
    func_position:
      end: 528
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 528
    functionName: _PyImport_RunModInitFunc
    functionSourceFile: /src/cpython/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - _PyImport_SwapPackageContext
    - _Py_ext_module_loader_result_set_error
    - Py_IS_TYPE
    - p0
    - PyModule_Check
    - Py_CLEAR
    - _PyModule_GetDefOrNull
    - PyErr_Clear
    - PyErr_Occurred
    - 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: 3
    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: 2
    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: 7
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: append_repr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyFloat_AS_DOUBLE
    - _Py_STR
    - PyUnicodeWriter_WriteStr
    - _Py_DECLARE_STR
    - isinf
    - PyObject_Repr
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - Py_DECREF
    - PyUnicode_Replace
    - _Py_ID
    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
    - asdl_seq_LEN
    - APPEND_EXPR
    - 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:
    - APPEND_STR_IF
    - PyErr_SetString
    - 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:
    - APPEND_STR_IF
    - PyErr_SetString
    - 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: 5
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: append_ast_arg
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: int append_ast_arg(PyUnicodeWriter *writer, arg_ty arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/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:
    - asdl_seq_GET
    - APPEND_EXPR
    - APPEND_CHAR
    - APPEND_STR
    - APPEND
    - APPEND_STR_IF_NOT_FIRST
    - asdl_seq_LEN
    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:
    - APPEND_EXPR
    - APPEND_STR_IF
    - APPEND_STR
    - APPEND
    - asdl_seq_LEN
    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_EXPR
    - asdl_seq_GET
    - APPEND_CHAR
    - APPEND_STR_IF
    - APPEND_CHAR_FINISH
    - APPEND_STR
    - asdl_seq_LEN
    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:
    - asdl_seq_GET
    - APPEND_EXPR
    - APPEND_CHAR
    - APPEND_STR_IF
    - APPEND_CHAR_FINISH
    - asdl_seq_LEN
    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:
    - asdl_seq_GET
    - APPEND_EXPR
    - APPEND_CHAR
    - APPEND_STR_IF
    - APPEND_CHAR_FINISH
    - asdl_seq_LEN
    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:
    - APPEND_EXPR
    - asdl_seq_GET
    - APPEND_STR_IF
    - APPEND_STR_FINISH
    - asdl_seq_LEN
    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_LEN
    - APPEND_STR
    - APPEND_EXPR
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_comprehension(PyUnicodeWriter *writer, comprehension_ty
      gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/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:
    - asdl_seq_LEN
    - APPEND
    - 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_EXPR
    - APPEND
    - APPEND_CHAR
    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_EXPR
    - APPEND
    - APPEND_CHAR
    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_EXPR
    - APPEND
    - APPEND_CHAR
    linkageType: ''
    returnType: int
    signature: int append_ast_setcomp(PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:466,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:468,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:469,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:470,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:473,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:474,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:476,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 478
    functionName: append_ast_dictcomp
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND_EXPR
    - APPEND_CHAR
    - APPEND_STR
    - APPEND
    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:488,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:492,1
    - Dst: assert
      Src: /src/cpython/Python/ast_unparse.c:493,1
    - Dst: assert
      Src: /src/cpython/Python/ast_unparse.c:494,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:494,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:496,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:499,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:531,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:536,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:537,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:537,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:540,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts:
    - condition: (comparator_count > 0)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/cpython/Python/ast_unparse.c
    - condition: (comparator_count == asdl_seq_LEN(ops))
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/cpython/Python/ast_unparse.c
    constantsTouched: []
    func_position:
      end: 542
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 542
    functionName: append_ast_compare
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - APPEND_EXPR
    - APPEND_STR_IF
    - PyErr_SetString
    - APPEND_STR
    - assert
    - asdl_seq_LEN
    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:548,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:551,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:555,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - kw
    argTypes:
    - PyUnicodeWriter*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 544
    functionDepth: 5
    functionLinenumber: 544
    functionLinenumberEnd: 560
    functionName: append_ast_keyword
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR
    - APPEND_STR
    - APPEND_EXPR
    - PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: int append_ast_keyword(PyUnicodeWriter *writer, keyword_ty kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:569,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:571,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:572,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:574,1
    - Dst: append_ast_genexp
      Src: /src/cpython/Python/ast_unparse.c:577,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:581,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/cpython/Python/ast_unparse.c:585,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:586,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:586,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/cpython/Python/ast_unparse.c:590,1
    - Dst: APPEND
      Src: /src/cpython/Python/ast_unparse.c:591,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:591,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 595
    functionName: append_ast_call
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_EXPR
    - asdl_seq_GET
    - APPEND_CHAR
    - APPEND_CHAR_FINISH
    - append_ast_genexp
    - APPEND
    - APPEND_STR_IF_NOT_FIRST
    - asdl_seq_LEN
    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:602,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/ast_unparse.c:602,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/ast_unparse.c:603,1
    - Dst: PyUnicode_Replace
      Src: /src/cpython/Python/ast_unparse.c:607,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/ast_unparse.c:607,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/ast_unparse.c:608,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - orig
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 597
    functionDepth: 7
    functionLinenumber: 597
    functionLinenumberEnd: 611
    functionName: escape_braces
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - _Py_LATIN1_CHR
    - Py_DECREF
    - PyUnicode_Replace
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      escape_braces(PyObject *orig)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: escape_braces
      Src: /src/cpython/Python/ast_unparse.c:618,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:620,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - unicode
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 613
    functionDepth: 8
    functionLinenumber: 613
    functionLinenumberEnd: 624
    functionName: append_fstring_unicode
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - escape_braces
    - PyUnicodeWriter_WriteStr
    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:631,1
    - Dst: append_joinedstr
      Src: /src/cpython/Python/ast_unparse.c:633,1
    - Dst: append_templatestr
      Src: /src/cpython/Python/ast_unparse.c:635,1
    - Dst: append_formattedvalue
      Src: /src/cpython/Python/ast_unparse.c:637,1
    - Dst: append_interpolation
      Src: /src/cpython/Python/ast_unparse.c:639,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:641,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: 645
      start: 626
    functionDepth: 9
    functionLinenumber: 626
    functionLinenumberEnd: 645
    functionName: append_fstring_element
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - append_fstring_unicode
    - append_formattedvalue
    - append_templatestr
    - append_interpolation
    - 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:652,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_unparse.c:657,1
    - Dst: append_fstring_element
      Src: /src/cpython/Python/ast_unparse.c:659,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_unparse.c:660,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/ast_unparse.c:663,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/ast_unparse.c:668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - values
    - is_format_spec
    argTypes:
    - asdl_expr_seq*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 649
    functionDepth: 10
    functionLinenumber: 649
    functionLinenumberEnd: 669
    functionName: build_ftstring_body
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - asdl_seq_GET
    - PyUnicodeWriter_Discard
    - append_fstring_element
    - PyUnicodeWriter_Finish
    - asdl_seq_LEN
    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:675,1
    - Dst: append_charp
      Src: /src/cpython/Python/ast_unparse.c:680,1
    - Dst: append_repr
      Src: /src/cpython/Python/ast_unparse.c:681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 671
    functionDepth: 11
    functionLinenumber: 671
    functionLinenumberEnd: 687
    functionName: append_templatestr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - append_repr
    - append_charp
    - build_ftstring_body
    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:693,1
    - Dst: append_charp
      Src: /src/cpython/Python/ast_unparse.c:699,1
    - Dst: append_repr
      Src: /src/cpython/Python/ast_unparse.c:700,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:708,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: 710
      start: 689
    functionDepth: 11
    functionLinenumber: 689
    functionLinenumberEnd: 710
    functionName: append_joinedstr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - append_charp
    - build_ftstring_body
    - append_repr
    - Py_DECREF
    - 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:716,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/ast_unparse.c:716,1
    - Dst: append_charp
      Src: /src/cpython/Python/ast_unparse.c:721,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 712
    functionDepth: 5
    functionLinenumber: 712
    functionLinenumberEnd: 728
    functionName: append_interpolation_str
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - _Py_LATIN1_CHR
    - PyUnicode_Find
    - append_charp
    - PyUnicodeWriter_WriteStr
    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:735,1
    - Dst: append_interpolation_str
      Src: /src/cpython/Python/ast_unparse.c:739,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_unparse.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 730
    functionDepth: 6
    functionLinenumber: 730
    functionLinenumberEnd: 742
    functionName: append_interpolation_value
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - expr_as_unicode
    - Py_DECREF
    - append_interpolation_str
    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:763,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - writer
    - conversion
    argTypes:
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 769
    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:775,1
    - Dst: append_fstring_element
      Src: /src/cpython/Python/ast_unparse.c:776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 771
    functionDepth: 10
    functionLinenumber: 771
    functionLinenumberEnd: 782
    functionName: append_interpolation_format_spec
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_fstring_element
    - PyUnicodeWriter_WriteChar
    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:787,1
    - Dst: append_interpolation_conversion
      Src: /src/cpython/Python/ast_unparse.c:791,1
    - Dst: append_interpolation_format_spec
      Src: /src/cpython/Python/ast_unparse.c:795,1
    - Dst: APPEND_STR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 784
    functionDepth: 11
    functionLinenumber: 784
    functionLinenumberEnd: 800
    functionName: append_interpolation
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - append_interpolation_str
    - append_interpolation_conversion
    - APPEND_STR_FINISH
    - append_interpolation_format_spec
    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:805,1
    - Dst: append_interpolation_conversion
      Src: /src/cpython/Python/ast_unparse.c:809,1
    - Dst: append_interpolation_format_spec
      Src: /src/cpython/Python/ast_unparse.c:813,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 802
    functionDepth: 11
    functionLinenumber: 802
    functionLinenumberEnd: 818
    functionName: append_formattedvalue
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - append_interpolation_value
    - append_interpolation_conversion
    - APPEND_CHAR_FINISH
    - append_interpolation_format_spec
    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:823,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ast_unparse.c:826,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:827,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:829,1
    - Dst: append_ast_constant
      Src: /src/cpython/Python/ast_unparse.c:830,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ast_unparse.c:830,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:835,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:836,1
    - Dst: append_repr
      Src: /src/cpython/Python/ast_unparse.c:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - writer
    - constant
    argTypes:
    - PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 820
    functionDepth: 8
    functionLinenumber: 820
    functionLinenumberEnd: 839
    functionName: append_ast_constant
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - APPEND_CHAR_FINISH
    - append_ast_constant
    - APPEND_CHAR
    - APPEND_STR_IF
    - append_repr
    - PyTuple_GET_SIZE
    - 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:846,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/ast_unparse.c:850,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:856,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 841
    functionDepth: 5
    functionLinenumber: 841
    functionLinenumberEnd: 859
    functionName: append_ast_attribute
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - APPEND_STR
    - APPEND_EXPR
    - PyUnicodeWriter_WriteStr
    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:865,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:868,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:871,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:875,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 879
    functionName: append_ast_slice
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_EXPR
    - APPEND_CHAR
    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:884,1
    - Dst: APPEND_CHAR
      Src: /src/cpython/Python/ast_unparse.c:885,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:886,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 888
    functionName: append_ast_subscript
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_CHAR_FINISH
    - APPEND_EXPR
    - APPEND_CHAR
    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:893,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 896
    functionName: append_ast_starred
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_EXPR
    - APPEND_CHAR
    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:902,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:905,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:906,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 908
    functionName: append_ast_yield
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR_FINISH
    - APPEND_CHAR_FINISH
    - APPEND_STR
    - APPEND_EXPR
    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:913,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:914,1
    - Dst: APPEND_CHAR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 916
    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:921,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:922,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:923,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 926
    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:931,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:932,1
    - Dst: APPEND_STR
      Src: /src/cpython/Python/ast_unparse.c:933,1
    - Dst: APPEND_EXPR
      Src: /src/cpython/Python/ast_unparse.c:934,1
    - Dst: APPEND_STR_IF
      Src: /src/cpython/Python/ast_unparse.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 937
    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:944,1
    - Dst: append_ast_binop
      Src: /src/cpython/Python/ast_unparse.c:946,1
    - Dst: append_ast_unaryop
      Src: /src/cpython/Python/ast_unparse.c:948,1
    - Dst: append_ast_lambda
      Src: /src/cpython/Python/ast_unparse.c:950,1
    - Dst: append_ast_ifexp
      Src: /src/cpython/Python/ast_unparse.c:952,1
    - Dst: append_ast_dict
      Src: /src/cpython/Python/ast_unparse.c:954,1
    - Dst: append_ast_set
      Src: /src/cpython/Python/ast_unparse.c:956,1
    - Dst: append_ast_genexp
      Src: /src/cpython/Python/ast_unparse.c:958,1
    - Dst: append_ast_listcomp
      Src: /src/cpython/Python/ast_unparse.c:960,1
    - Dst: append_ast_setcomp
      Src: /src/cpython/Python/ast_unparse.c:962,1
    - Dst: append_ast_dictcomp
      Src: /src/cpython/Python/ast_unparse.c:964,1
    - Dst: append_ast_yield
      Src: /src/cpython/Python/ast_unparse.c:966,1
    - Dst: append_ast_yield_from
      Src: /src/cpython/Python/ast_unparse.c:968,1
    - Dst: append_ast_await
      Src: /src/cpython/Python/ast_unparse.c:970,1
    - Dst: append_ast_compare
      Src: /src/cpython/Python/ast_unparse.c:972,1
    - Dst: append_ast_call
      Src: /src/cpython/Python/ast_unparse.c:974,1
    - Dst: APPEND_STR_FINISH
      Src: /src/cpython/Python/ast_unparse.c:977,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:980,1
    - Dst: append_ast_constant
      Src: /src/cpython/Python/ast_unparse.c:983,1
    - Dst: append_joinedstr
      Src: /src/cpython/Python/ast_unparse.c:985,1
    - Dst: append_templatestr
      Src: /src/cpython/Python/ast_unparse.c:987,1
    - Dst: append_formattedvalue
      Src: /src/cpython/Python/ast_unparse.c:989,1
    - Dst: append_interpolation
      Src: /src/cpython/Python/ast_unparse.c:991,1
    - Dst: append_ast_attribute
      Src: /src/cpython/Python/ast_unparse.c:994,1
    - Dst: append_ast_subscript
      Src: /src/cpython/Python/ast_unparse.c:996,1
    - Dst: append_ast_starred
      Src: /src/cpython/Python/ast_unparse.c:998,1
    - Dst: append_ast_slice
      Src: /src/cpython/Python/ast_unparse.c:1000,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/ast_unparse.c:1002,1
    - Dst: append_ast_list
      Src: /src/cpython/Python/ast_unparse.c:1004,1
    - Dst: append_ast_tuple
      Src: /src/cpython/Python/ast_unparse.c:1006,1
    - Dst: append_named_expr
      Src: /src/cpython/Python/ast_unparse.c:1008,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast_unparse.c:1011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 69
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 939
    functionDepth: 12
    functionLinenumber: 939
    functionLinenumberEnd: 1014
    functionName: append_ast_expr
    functionSourceFile: /src/cpython/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_ast_subscript
    - append_ast_list
    - append_ast_dictcomp
    - append_ast_await
    - append_ast_yield
    - append_ast_tuple
    - append_named_expr
    - append_ast_binop
    - APPEND_STR_FINISH
    - append_ast_compare
    - append_ast_set
    - append_ast_listcomp
    - append_templatestr
    - PyUnicodeWriter_WriteStr
    - append_ast_dict
    - append_ast_attribute
    - append_ast_slice
    - append_ast_lambda
    - append_joinedstr
    - append_ast_constant
    - append_ast_setcomp
    - PyErr_SetString
    - append_ast_genexp
    - append_formattedvalue
    - append_ast_yield_from
    - append_ast_ifexp
    - append_interpolation
    - append_ast_call
    - append_ast_starred
    - append_ast_unaryop
    - append_ast_boolop
    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:1019,1
    - Dst: append_ast_expr
      Src: /src/cpython/Python/ast_unparse.c:1024,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/ast_unparse.c:1025,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/ast_unparse.c:1028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - e
    - level
    argTypes:
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1016
    functionDepth: 13
    functionLinenumber: 1016
    functionLinenumberEnd: 1029
    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:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1031
    functionDepth: 14
    functionLinenumber: 1031
    functionLinenumberEnd: 1035
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: _PyCode_Deinstrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t _PyCode_Deinstrument(uint8_t opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:197,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - int
    assertStmts:
    - condition: (opcode != 0)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode != RESERVED)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    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: 212
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 212
    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: 223
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 223
    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: 234
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 234
    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: 250
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 250
    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: 261
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 261
    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:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - _Py_LocalMonitors*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    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: 284
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 284
    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: 296
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 296
    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:312,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - code
    - line
    argTypes:
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (line == -1)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (delta > NO_LINE)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 318
    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:326,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: 325
        line_start: 325
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 328
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 328
    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:333,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - code
    - offset
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 337
    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: 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: (adjusted < (1ULL << ((line_data->bytes_per_entry-1)*8)))
      pos:
        line_end: 373
        line_start: 373
        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
    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: _PyCode_GetOriginalOpcode
      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
    - _PyCode_GetOriginalOpcode
    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:
    - _PyInstruction_GetLength
    - dump_instrumentation_data_lines
    - dump_global_monitors
    - dump_instrumentation_data_per_instruction
    - _PyCode_CODE
    - _PyCode_CheckLineNumber
    - Py_SIZE
    - _PyInterpreterState_GET
    - dump_instrumentation_data_tools
    - dump_instrumentation_data_line_tools
    - dump_local_monitors
    - fprintf
    - _PyCode_InitAddressRange
    - PyObject_Print
    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: 60
    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: _PyCode_GetOriginalOpcode
      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: CHECK
      Src: /src/cpython/Python/instrumentation.c:580,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:581,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:582,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:584,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:591,1
    - Dst: _PyCode_GetOriginalOpcode
      Src: /src/cpython/Python/instrumentation.c:591,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:594,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:597,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:598,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:604,1
    - Dst: _PyCode_GetOriginalOpcode
      Src: /src/cpython/Python/instrumentation.c:606,1
    - Dst: compute_line
      Src: /src/cpython/Python/instrumentation.c:607,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:607,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Python/instrumentation.c:608,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:609,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:611,1
    - Dst: valid_opcode
      Src: /src/cpython/Python/instrumentation.c:611,1
    - Dst: opcode_has_event
      Src: /src/cpython/Python/instrumentation.c:614,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:618,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:620,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:623,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:626,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:627,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    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: 626
        line_start: 626
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 629
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 629
    functionName: sanity_check_instrumentation
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - monitors_equals
    - _PyInstruction_GetLength
    - opcode_has_event
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - get_line_delta
    - _PyCode_CODE
    - _Py_GetBaseCodeUnit
    - Py_SIZE
    - _PyInterpreterState_GET
    - _PyCode_GetOriginalOpcode
    - compute_line
    - CHECK
    - _PyCode_CheckLineNumber
    - valid_opcode
    - assert
    - _PyCode_InitAddressRange
    - is_instrumented
    - local_union
    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: 633
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 633
    functionName: CHECK
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(test)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:640,1
    - Dst: FT_ATOMIC_LOAD_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:642,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:646,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:654,1
    - Dst: _PyCode_GetOriginalOpcode
      Src: /src/cpython/Python/instrumentation.c:658,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:663,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:664,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:672,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: 645
        line_start: 645
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (inst.op.code < MIN_SPECIALIZED_OPCODE)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (inst.op.code < MIN_SPECIALIZED_OPCODE)
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 674
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 674
    functionName: _Py_GetBaseCodeUnit
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 10
    functionsReached:
    - _PyCode_GetOriginalOpcode
    - _PyCode_CODE
    - CHECK
    - assert
    - FT_ATOMIC_LOAD_UINT16_RELAXED
    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:680,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:681,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:686,1
    - Dst: get_original_opcode_ptr
      Src: /src/cpython/Python/instrumentation.c:688,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:699,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:700,1
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:702,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/instrumentation.c:703,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: 679
        line_start: 679
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_LINE)
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode != ENTER_EXECUTOR)
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 705
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 705
    functionName: de_instrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_UINT16_RELAXED
    - CHECK
    - adaptive_counter_warmup
    - assert
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - get_original_opcode_ptr
    linkageType: ''
    returnType: void
    signature: "void de_instrument(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData
      *monitoring, int i,\n              int event)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_GetOriginalOpcode
      Src: /src/cpython/Python/instrumentation.c:717,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:719,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:721,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:722,1
    - Dst: FT_ATOMIC_STORE_UINT8
      Src: /src/cpython/Python/instrumentation.c:723,1
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:725,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/instrumentation.c:726,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:728,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: 727
        line_start: 727
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 729
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 729
    functionName: de_instrument_line
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - set_original_opcode
    - FT_ATOMIC_STORE_UINT16_RELAXED
    - _PyCode_GetOriginalOpcode
    - FT_ATOMIC_STORE_UINT8
    - CHECK
    - adaptive_counter_warmup
    - assert
    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:739,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:746,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:747,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:748,1
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:750,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/instrumentation.c:751,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:753,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:754,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: 752
        line_start: 752
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (instr->op.code != INSTRUMENTED_INSTRUCTION)
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 755
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 755
    functionName: de_instrument_per_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_UINT16_RELAXED
    - CHECK
    - adaptive_counter_warmup
    - assert
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - get_original_opcode_ptr
    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:764,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:770,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:771,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:773,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:774,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:777,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:778,1
    - Dst: FT_ATOMIC_STORE_UINT16_RELAXED
      Src: /src/cpython/Python/instrumentation.c:780,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/instrumentation.c:781,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: 776
        line_start: 776
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 784
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 784
    functionName: instrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_UINT16_RELAXED
    - CHECK
    - adaptive_counter_warmup
    - assert
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - is_instrumented
    - get_original_opcode_ptr
    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:794,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:795,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:795,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:796,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: 797
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 797
    functionName: instrument_line
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - get_line_delta
    - CHECK
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - set_original_opcode
    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:807,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:811,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:814,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:815,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:821,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:824,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/instrumentation.c:825,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: 818
        line_start: 818
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring->per_instruction_opcodes[i] > 0)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyOpcode_Deopt[opcode] != 0)
      pos:
        line_end: 819
        line_start: 819
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyOpcode_Deopt[opcode] != RESUME)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring->per_instruction_opcodes[i] > 0)
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 826
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 826
    functionName: instrument_per_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - CHECK
    - assert
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - is_instrumented
    - get_original_opcode_ptr
    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:831,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:832,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:833,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:834,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:834,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:835,1
    - Dst: opcode_has_event
      Src: /src/cpython/Python/instrumentation.c:835,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:835,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:837,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:846,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:846,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:850,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: 833
        line_start: 833
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_LINE)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_INSTRUCTION)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode_has_event(_Py_GetBaseCodeUnit(code, offset).op.code))
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring)
      pos:
        line_end: 836
        line_start: 836
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_popcount32(single_tool) <= 1)
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 852
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 852
    functionName: remove_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - opcode_has_event
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - _Py_GetBaseCodeUnit
    - assert
    - _Py_popcount32
    - MODIFY_BYTECODE
    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:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - code
    - event
    - tools
    argTypes:
    - PyCodeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 861
    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:867,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:870,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:881,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:881,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:885,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: 880
        line_start: 880
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (monitoring)
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 887
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 887
    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:892,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:893,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:894,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:895,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:895,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:896,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:904,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:904,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:905,1
    - Dst: tools_is_subset_for_event
      Src: /src/cpython/Python/instrumentation.c:905,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:907,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: 893
        line_start: 893
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_LINE)
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (PY_MONITORING_IS_INSTRUMENTED_EVENT(event))
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (code->_co_monitoring)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_popcount32(tools) == 1)
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools_is_subset_for_event(code, event, tools))
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 908
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 908
    functionName: add_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - tools_is_subset_for_event
    - assert
    - _Py_popcount32
    - MODIFY_BYTECODE
    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:913,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:915,1
    - Dst: tools_is_subset_for_event
      Src: /src/cpython/Python/instrumentation.c:915,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:916,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:922,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:922,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:924,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: 921
        line_start: 921
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (code->_co_monitoring)
      pos:
        line_end: 915
        line_start: 915
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools_is_subset_for_event(code, PY_MONITORING_EVENT_LINE, tools))
      pos:
        line_end: 914
        line_start: 914
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 925
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 925
    functionName: add_line_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - tools_is_subset_for_event
    - assert
    - _Py_popcount32
    - MODIFY_BYTECODE
    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:931,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:933,1
    - Dst: tools_is_subset_for_event
      Src: /src/cpython/Python/instrumentation.c:933,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:934,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:940,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:940,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:942,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: 932
        line_start: 932
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_popcount32(tools) == 1)
      pos:
        line_end: 939
        line_start: 939
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (code->_co_monitoring)
      pos:
        line_end: 933
        line_start: 933
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 943
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 943
    functionName: add_per_instruction_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - tools_is_subset_for_event
    - assert
    - _Py_popcount32
    - MODIFY_BYTECODE
    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:949,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:952,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:962,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:962,1
    - Dst: MODIFY_BYTECODE
      Src: /src/cpython/Python/instrumentation.c:966,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: 961
        line_start: 961
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (code->_co_monitoring)
      pos:
        line_end: 951
        line_start: 951
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 968
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 968
    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:977,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:978,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Python/instrumentation.c:986,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:992,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: 976
        line_start: 976
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tstate->tracing == 0)
      pos:
        line_end: 977
        line_start: 977
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 994
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 994
    functionName: call_one_instrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_VectorcallTstate
    - 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:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint8_t
    assertStmts:
    - condition: (bits != 0)
      pos:
        line_end: 1006
        line_start: 1006
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1012
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1012
    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:1017,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:1020,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/instrumentation.c:1022,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (thread_version == version)
      pos:
        line_end: 1023
        line_start: 1023
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1027
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1027
    functionName: global_version
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyThreadState_GET
    - _Py_atomic_load_uintptr_relaxed
    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:1034,1
    - Dst: version::version
      Src: /src/cpython/Python/instrumentation.c:1037,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/instrumentation.c:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - version
    argTypes:
    - uintptr_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1039
    functionName: set_version_raw
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uintptr
    - version::version
    - _Py_atomic_load_uintptr_relaxed
    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:1044,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1046,1
    - Dst: set_version_raw
      Src: /src/cpython/Python/instrumentation.c:1048,1
    - Dst: set_version_raw
      Src: /src/cpython/Python/instrumentation.c:1053,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/instrumentation.c:1055,1
    - Dst: set_version_raw
      Src: /src/cpython/Python/instrumentation.c:1059,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: 1045
        line_start: 1045
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1061
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1061
    functionName: set_global_version
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - assert
    - set_version_raw
    - _Py_FOR_EACH_TSTATE_END
    - ASSERT_WORLD_STOPPED
    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:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1054
    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:1066,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1063
    functionDepth: 2
    functionLinenumber: 1063
    functionLinenumberEnd: 1068
    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:1074,1
    - Dst: local_union
      Src: /src/cpython/Python/instrumentation.c:1075,1
    - Dst: monitors_equals
      Src: /src/cpython/Python/instrumentation.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - interp
    - code
    argTypes:
    - PyInterpreterState*
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1079
    functionName: instrumentation_cross_checks
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - monitors_equals
    - local_union
    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:1085,1
    - Dst: is_version_up_to_date
      Src: /src/cpython/Python/instrumentation.c:1086,1
    - Dst: instrumentation_cross_checks
      Src: /src/cpython/Python/instrumentation.c:1087,1
    - Dst: UNLOCK_CODE
      Src: /src/cpython/Python/instrumentation.c:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - interp
    - code
    argTypes:
    - PyInterpreterState*
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1081
    functionDepth: 3
    functionLinenumber: 1081
    functionLinenumberEnd: 1090
    functionName: debug_check_sanity
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - UNLOCK_CODE
    - is_version_up_to_date
    - LOCK_CODE
    - 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:1098,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1099,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1101,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1105,1
    - Dst: _PY_MONITORING_IS_UNGROUPED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1105,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:1106,1
    - Dst: debug_check_sanity
      Src: /src/cpython/Python/instrumentation.c:1106,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - code
    - interp
    - i
    - event
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    - int
    - int
    assertStmts:
    - condition: (event != PY_MONITORING_EVENT_LINE)
      pos:
        line_end: 1097
        line_start: 1097
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event != PY_MONITORING_EVENT_INSTRUCTION)
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/cpython/Python/instrumentation.c
    - condition: "(event == PY_MONITORING_EVENT_C_RAISE ||\n                event
        == PY_MONITORING_EVENT_C_RETURN)"
      pos:
        line_end: 1101
        line_start: 1100
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PY_MONITORING_IS_UNGROUPED_EVENT(event))
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1122
      start: 1094
    functionDepth: 4
    functionLinenumber: 1094
    functionLinenumberEnd: 1122
    functionName: get_tools_for_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - debug_check_sanity
    - CHECK
    - assert
    - _PY_MONITORING_IS_UNGROUPED_EVENT
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_tools_for_instruction(PyCodeObject *code, PyInterpreterState
      *interp, int i, int event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1153,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1154,1
    - Dst: _PY_MONITORING_IS_UNGROUPED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1154,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1155,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1155,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - code
    - interp
    - event
    - tool
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    - int
    - int
    assertStmts:
    - condition: (_PY_MONITORING_IS_UNGROUPED_EVENT(event))
      pos:
        line_end: 1153
        line_start: 1153
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (!PY_MONITORING_IS_INSTRUMENTED_EVENT(event))
      pos:
        line_end: 1154
        line_start: 1154
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (code->_co_monitoring)
      pos:
        line_end: 1155
        line_start: 1155
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1163
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1163
    functionName: remove_local_tool
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - _PY_MONITORING_IS_UNGROUPED_EVENT
    - assert
    linkageType: ''
    returnType: void
    signature: "void remove_local_tool(PyCodeObject *code, PyInterpreterState *interp,\n
      \                 int event, int tool)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1173,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:1173,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1174,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1175,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1176,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1178,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1181,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:1182,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1186,1
    - Dst: get_tools_for_instruction
      Src: /src/cpython/Python/instrumentation.c:1189,1
    - Dst: most_significant_bit
      Src: /src/cpython/Python/instrumentation.c:1194,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1195,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1196,1
    - Dst: call_one_instrument
      Src: /src/cpython/Python/instrumentation.c:1198,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1209,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:1210,1
    - Dst: remove_tools
      Src: /src/cpython/Python/instrumentation.c:1211,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:1212,1
    - Dst: _PY_MONITORING_IS_UNGROUPED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1214,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:1216,1
    - Dst: remove_local_tool
      Src: /src/cpython/Python/instrumentation.c:1217,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:1218,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:1221,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instrumentation.c:1225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1231,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 7
    argNames:
    - instr
    - tstate
    - event
    - frame
    - arg2
    - nargs
    - args
    argTypes:
    - _Py_CODEUNIT*
    - PyThreadState*
    - int
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - Py_ssize_t
    - PyObject*[]
    assertStmts:
    - condition: (args[0] == NULL)
      pos:
        line_end: 1173
        line_start: 1173
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (args[1] == NULL)
      pos:
        line_end: 1175
        line_start: 1175
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (args[2] == NULL)
      pos:
        line_end: 1185
        line_start: 1185
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tool >= 0 && tool < 8)
      pos:
        line_end: 1194
        line_start: 1194
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools & (1 << tool))
      pos:
        line_end: 1195
        line_start: 1195
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1233
      start: 1165
    functionDepth: 5
    functionLinenumber: 1165
    functionLinenumberEnd: 1233
    functionName: call_instrumentation_vector
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - PyLong_FromLong
    - remove_tools
    - remove_local_tool
    - _PyFrame_GetCode
    - _PyEval_StartTheWorld
    - _PyFrame_GetBytecode
    - get_tools_for_instruction
    - _PyErr_Occurred
    - most_significant_bit
    - _PyEval_StopTheWorld
    - Py_CLEAR
    - PyErr_Format
    - assert
    - Py_DECREF
    - call_one_instrument
    - _PY_MONITORING_IS_UNGROUPED_EVENT
    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:1241,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: 1242
      start: 1235
    functionDepth: 6
    functionLinenumber: 1235
    functionLinenumberEnd: 1242
    functionName: _Py_call_instrumentation
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    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:1250,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: 1251
      start: 1244
    functionDepth: 6
    functionLinenumber: 1244
    functionLinenumberEnd: 1251
    functionName: _Py_call_instrumentation_arg
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 2
    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:1259,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: 1260
      start: 1253
    functionDepth: 6
    functionLinenumber: 1253
    functionLinenumberEnd: 1260
    functionName: _Py_call_instrumentation_2args
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 6
    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:1267,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1270,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:1271,1
    - Dst: call_instrumentation_vector
      Src: /src/cpython/Python/instrumentation.c:1277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1278,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: 1268
        line_start: 1266
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1287
      start: 1262
    functionDepth: 6
    functionLinenumber: 1262
    functionLinenumberEnd: 1287
    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:
    - PyLong_FromLong
    - _PyFrame_GetBytecode
    - call_instrumentation_vector
    - assert
    - Py_DECREF
    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:1294,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:1294,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/instrumentation.c:1295,1
    - Dst: call_instrumentation_vector
      Src: /src/cpython/Python/instrumentation.c:1296,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:1298,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/instrumentation.c:1301,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1303,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:1303,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: 1293
        line_start: 1293
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 1302
        line_start: 1302
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1304
      start: 1289
    functionDepth: 6
    functionLinenumber: 1289
    functionLinenumberEnd: 1304
    functionName: call_instrumentation_vector_protected
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyErr_Occurred
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - call_instrumentation_vector
    - Py_XDECREF
    - assert
    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:1311,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:1311,1
    - Dst: call_instrumentation_vector_protected
      Src: /src/cpython/Python/instrumentation.c:1313,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: 1310
        line_start: 1310
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1314
      start: 1306
    functionDepth: 7
    functionLinenumber: 1306
    functionLinenumberEnd: 1314
    functionName: _Py_call_instrumentation_exc2
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 4
    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:1319,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1320,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1320,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:1321,1
    - Dst: compute_line
      Src: /src/cpython/Python/instrumentation.c:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - code
    - line_data
    - index
    argTypes:
    - PyCodeObject*
    - _PyCoLineInstrumentationData*
    - int
    assertStmts:
    - condition: (line_data != NULL)
      pos:
        line_end: 1318
        line_start: 1318
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (index < Py_SIZE(code))
      pos:
        line_end: 1319
        line_start: 1319
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1324
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1324
    functionName: _Py_Instrumentation_GetLine
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 2
    functionsReached:
    - compute_line
    - get_line_delta
    - Py_SIZE
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_Instrumentation_GetLine(PyCodeObject *code, _PyCoLineInstrumentationData
      *line_data, int index)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1329,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1330,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1331,1
    - Dst: debug_check_sanity
      Src: /src/cpython/Python/instrumentation.c:1331,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1332,1
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Python/instrumentation.c:1338,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1339,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1340,1
    - Dst: _Py_Instrumentation_GetLine
      Src: /src/cpython/Python/instrumentation.c:1342,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/instrumentation.c:1362,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/instrumentation.c:1373,1
    - Dst: PyThreadState*::c_tracefunc
      Src: /src/cpython/Python/instrumentation.c:1375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1379,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:1390,1
    - Dst: most_significant_bit
      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: call_one_instrument
      Src: /src/cpython/Python/instrumentation.c:1400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1408,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:1414,1
    - Dst: remove_line_tools
      Src: /src/cpython/Python/instrumentation.c:1415,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:1416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1419,1
    - Dst: _PyCode_GetOriginalOpcode
      Src: /src/cpython/Python/instrumentation.c:1422,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1423,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1424,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1425,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 4
    argNames:
    - tstate
    - frame
    - instr
    - prev
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (tstate->tracing == 0)
      pos:
        line_end: 1329
        line_start: 1329
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (original_opcode != INSTRUMENTED_LINE)
      pos:
        line_end: 1423
        line_start: 1423
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (original_opcode != 0)
      pos:
        line_end: 1422
        line_start: 1422
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (debug_check_sanity(tstate->interp, code))
      pos:
        line_end: 1330
        line_start: 1330
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (line >= 0)
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (prev != NULL)
      pos:
        line_end: 1339
        line_start: 1339
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyOpcode_Deopt[original_opcode] == original_opcode)
      pos:
        line_end: 1424
        line_start: 1424
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tool >= 0 && tool < PY_MONITORING_SYS_PROFILE_ID)
      pos:
        line_end: 1396
        line_start: 1396
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools & (1 << tool))
      pos:
        line_end: 1397
        line_start: 1397
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1427
      start: 1326
    functionDepth: 4
    functionLinenumber: 1326
    functionLinenumberEnd: 1427
    functionName: _Py_call_instrumentation_line
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - PyLong_FromLong
    - _PyFrame_GetCode
    - _Py_Instrumentation_GetLine
    - _PyEval_StartTheWorld
    - PyThreadState*::c_tracefunc
    - remove_line_tools
    - _PyFrame_GetBytecode
    - most_significant_bit
    - debug_check_sanity
    - _PyCode_GetOriginalOpcode
    - _PyEval_StopTheWorld
    - assert
    - Py_DECREF
    - _PyFrame_GetFrameObject
    - call_one_instrument
    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:1432,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/instrumentation.c:1433,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1435,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1440,1
    - Dst: debug_check_sanity
      Src: /src/cpython/Python/instrumentation.c:1440,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:1448,1
    - Dst: most_significant_bit
      Src: /src/cpython/Python/instrumentation.c:1454,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1455,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1456,1
    - Dst: call_one_instrument
      Src: /src/cpython/Python/instrumentation.c:1458,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1466,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:1472,1
    - Dst: remove_per_instruction_tools
      Src: /src/cpython/Python/instrumentation.c:1473,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:1474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:1477,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1478,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: 1439
        line_start: 1439
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (instrumentation_data->per_instruction_opcodes)
      pos:
        line_end: 1434
        line_start: 1434
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tool >= 0 && tool < 8)
      pos:
        line_end: 1454
        line_start: 1454
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools & (1 << tool))
      pos:
        line_end: 1455
        line_start: 1455
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (next_opcode != 0)
      pos:
        line_end: 1477
        line_start: 1477
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1480
      start: 1429
    functionDepth: 4
    functionLinenumber: 1429
    functionLinenumberEnd: 1480
    functionName: _Py_call_instrumentation_instruction
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - _PyFrame_GetCode
    - _PyEval_StartTheWorld
    - _PyFrame_GetBytecode
    - most_significant_bit
    - debug_check_sanity
    - remove_per_instruction_tools
    - _PyEval_StopTheWorld
    - assert
    - Py_DECREF
    - call_one_instrument
    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:1485,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1488,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1489,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:1491,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1493,1
    - Dst: _PyCode_GetOriginalOpcode
      Src: /src/cpython/Python/instrumentation.c:1495,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:1500,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1503,1
    - Dst: opcode_has_event
      Src: /src/cpython/Python/instrumentation.c:1506,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1514,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1516,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1517,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:1517,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:1519,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts:
    - condition: (opcode != ENTER_EXECUTOR)
      pos:
        line_end: 1492
        line_start: 1492
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools != NULL)
      pos:
        line_end: 1487
        line_start: 1487
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (opcode != 0)
      pos:
        line_end: 1502
        line_start: 1502
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event > 0)
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (PY_MONITORING_IS_INSTRUMENTED_EVENT(event))
      pos:
        line_end: 1516
        line_start: 1516
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event >= 0)
      pos:
        line_end: 1515
        line_start: 1515
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1536
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1536
    functionName: initialize_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - opcode_has_event
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - _PyCode_GetOriginalOpcode
    - _PyCode_CODE
    - Py_SIZE
    - CHECK
    - assert
    - is_instrumented
    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:1541,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1542,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1544,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Python/instrumentation.c:1546,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1549,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Python/instrumentation.c:1550,1
    - Dst: set_line_delta
      Src: /src/cpython/Python/instrumentation.c:1551,1
    - Dst: compute_line_delta
      Src: /src/cpython/Python/instrumentation.c:1551,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1552,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1554,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1566,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1576,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:1577,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:1577,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1580,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1586,1
    - Dst: set_line_delta
      Src: /src/cpython/Python/instrumentation.c:1587,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1592,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1598,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1602,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1630,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:1631,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1632,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1634,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/instrumentation.c:1639,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/instrumentation.c:1640,1
    - Dst: parse_varint
      Src: /src/cpython/Python/instrumentation.c:1644,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1645,1
    - Dst: parse_varint
      Src: /src/cpython/Python/instrumentation.c:1646,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1647,1
    - Dst: parse_varint
      Src: /src/cpython/Python/instrumentation.c:1648,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1649,1
    - Dst: parse_varint
      Src: /src/cpython/Python/instrumentation.c:1651,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1652,1
    - Dst: get_line_delta
      Src: /src/cpython/Python/instrumentation.c:1657,1
    - Dst: set_original_opcode
      Src: /src/cpython/Python/instrumentation.c:1658,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 84
    argCount: 3
    argNames:
    - line_data
    - code
    - bytes_per_entry
    argTypes:
    - _PyCoLineInstrumentationData*
    - PyCodeObject*
    - int
    assertStmts:
    - condition: (start_offset >= 0 && start_offset < code_len)
      pos:
        line_end: 1644
        line_start: 1644
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (handler >= 0 && handler < code_len)
      pos:
        line_end: 1648
        line_start: 1648
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (size >= 0 && start_offset+size <= code_len)
      pos:
        line_end: 1646
        line_start: 1646
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (target >= 0)
      pos:
        line_end: 1629
        line_start: 1629
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (line_data != NULL)
      pos:
        line_end: 1541
        line_start: 1541
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1661
      start: 1538
    functionDepth: 2
    functionLinenumber: 1538
    functionLinenumberEnd: 1661
    functionName: initialize_lines
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyInstruction_GetLength
    - set_line_delta
    - compute_line_delta
    - set_original_opcode
    - PyBytes_AS_STRING
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - get_line_delta
    - _Py_GetBaseCodeUnit
    - _PyCode_CheckLineNumber
    - Py_SIZE
    - CHECK
    - parse_varint
    - assert
    - _PyCode_InitAddressRange
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: void
    signature: void initialize_lines(_PyCoLineInstrumentationData *line_data, PyCodeObject
      *code, int bytes_per_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_WORLD_STOPPED_OR_LOCKED
      Src: /src/cpython/Python/instrumentation.c:1666,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1669,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1670,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: 1668
        line_start: 1668
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1674
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1674
    functionName: initialize_line_tools
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - Py_SIZE
    - 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:1679,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1682,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1684,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Python/instrumentation.c:1694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1697
    functionName: allocate_instrumentation_data
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - _Py_atomic_store_ptr_release
    - 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:1702,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1704,1
    - Dst: allocate_instrumentation_data
      Src: /src/cpython/Python/instrumentation.c:1705,1
    - Dst: local_union
      Src: /src/cpython/Python/instrumentation.c:1718,1
    - Dst: multiple_tools
      Src: /src/cpython/Python/instrumentation.c:1721,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1723,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1725,1
    - Dst: initialize_tools
      Src: /src/cpython/Python/instrumentation.c:1728,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Python/instrumentation.c:1733,1
    - Dst: _PyCode_InitAddressRange
      Src: /src/cpython/Python/instrumentation.c:1735,1
    - Dst: _PyCode_CheckLineNumber
      Src: /src/cpython/Python/instrumentation.c:1737,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1741,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1759,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1761,1
    - Dst: initialize_lines
      Src: /src/cpython/Python/instrumentation.c:1764,1
    - Dst: _Py_atomic_store_ptr_release
      Src: /src/cpython/Python/instrumentation.c:1765,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1768,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1770,1
    - Dst: initialize_line_tools
      Src: /src/cpython/Python/instrumentation.c:1773,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1778,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1780,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:1786,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/instrumentation.c:1791,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/instrumentation.c:1793,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1699
    functionDepth: 3
    functionLinenumber: 1699
    functionLinenumberEnd: 1802
    functionName: update_instrumentation_data
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyInstruction_GetLength
    - _Py_atomic_store_ptr_release
    - PyErr_NoMemory
    - initialize_lines
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - initialize_line_tools
    - _PyCode_CheckLineNumber
    - _PyCode_CODE
    - allocate_instrumentation_data
    - Py_SIZE
    - initialize_tools
    - PyMem_Malloc
    - _PyCode_InitAddressRange
    - local_union
    - multiple_tools
    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:1807,1
    - Dst: _PyCode_Clear_Executors
      Src: /src/cpython/Python/instrumentation.c:1811,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Python/instrumentation.c:1813,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:1815,1
    - Dst: update_instrumentation_data
      Src: /src/cpython/Python/instrumentation.c:1823,1
    - Dst: local_union
      Src: /src/cpython/Python/instrumentation.c:1826,1
    - Dst: monitors_sub
      Src: /src/cpython/Python/instrumentation.c:1838,1
    - Dst: monitors_sub
      Src: /src/cpython/Python/instrumentation.c:1839,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1840,1
    - Dst: monitors_are_empty
      Src: /src/cpython/Python/instrumentation.c:1840,1
    - Dst: monitors_and
      Src: /src/cpython/Python/instrumentation.c:1840,1
    - Dst: monitors_are_empty
      Src: /src/cpython/Python/instrumentation.c:1843,1
    - Dst: monitors_are_empty
      Src: /src/cpython/Python/instrumentation.c:1843,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1847,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1848,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:1848,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1849,1
    - Dst: CHECK
      Src: /src/cpython/Python/instrumentation.c:1850,1
    - Dst: opcode_has_event
      Src: /src/cpython/Python/instrumentation.c:1852,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1859,1
    - Dst: remove_tools
      Src: /src/cpython/Python/instrumentation.c:1863,1
    - Dst: add_tools
      Src: /src/cpython/Python/instrumentation.c:1867,1
    - Dst: _PyCode_GetOriginalOpcode
      Src: /src/cpython/Python/instrumentation.c:1880,1
    - Dst: remove_line_tools
      Src: /src/cpython/Python/instrumentation.c:1881,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1883,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1888,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1890,1
    - Dst: remove_per_instruction_tools
      Src: /src/cpython/Python/instrumentation.c:1893,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1894,1
    - Dst: sanity_check_instrumentation
      Src: /src/cpython/Python/instrumentation.c:1898,1
    - Dst: _PyCode_GetOriginalOpcode
      Src: /src/cpython/Python/instrumentation.c:1907,1
    - Dst: add_line_tools
      Src: /src/cpython/Python/instrumentation.c:1908,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1910,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:1915,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1917,1
    - Dst: add_per_instruction_tools
      Src: /src/cpython/Python/instrumentation.c:1920,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/instrumentation.c:1921,1
    - Dst: FT_ATOMIC_STORE_UINTPTR_RELEASE
      Src: /src/cpython/Python/instrumentation.c:1926,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:1927,1
    - Dst: sanity_check_instrumentation
      Src: /src/cpython/Python/instrumentation.c:1930,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts:
    - condition: (monitors_are_empty(monitors_and(new_events, removed_events)))
      pos:
        line_end: 1839
        line_start: 1839
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_PyCode_CODE(code)[i].op.code != ENTER_EXECUTOR)
      pos:
        line_end: 1847
        line_start: 1847
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (event > 0)
      pos:
        line_end: 1858
        line_start: 1858
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1933
      start: 1804
    functionDepth: 4
    functionLinenumber: 1804
    functionLinenumberEnd: 1933
    functionName: force_instrument_lock_held
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - monitors_are_empty
    - remove_tools
    - opcode_has_event
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - FT_ATOMIC_STORE_UINTPTR_RELEASE
    - assert
    - monitors_sub
    - local_union
    - monitors_and
    - _PyInstruction_GetLength
    - _Py_Executors_InvalidateDependency
    - _PyCode_Clear_Executors
    - add_per_instruction_tools
    - global_version
    - add_tools
    - _PyCode_GetOriginalOpcode
    - Py_SIZE
    - sanity_check_instrumentation
    - remove_per_instruction_tools
    - update_instrumentation_data
    - remove_line_tools
    - _PyCode_CODE
    - _Py_GetBaseCodeUnit
    - CHECK
    - add_line_tools
    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:1938,1
    - Dst: is_version_up_to_date
      Src: /src/cpython/Python/instrumentation.c:1940,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1941,1
    - Dst: instrumentation_cross_checks
      Src: /src/cpython/Python/instrumentation.c:1943,1
    - Dst: force_instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:1948,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: 1943
        line_start: 1940
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 1949
      start: 1935
    functionDepth: 5
    functionLinenumber: 1935
    functionLinenumberEnd: 1949
    functionName: instrument_lock_held
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - is_version_up_to_date
    - force_instrument_lock_held
    - ASSERT_WORLD_STOPPED_OR_LOCKED
    - assert
    - instrumentation_cross_checks
    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:1955,1
    - Dst: instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:1956,1
    - Dst: UNLOCK_CODE
      Src: /src/cpython/Python/instrumentation.c:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - code
    - interp
    argTypes:
    - PyCodeObject*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1951
    functionDepth: 6
    functionLinenumber: 1951
    functionLinenumberEnd: 1959
    functionName: _Py_Instrument
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 2
    functionsReached:
    - UNLOCK_CODE
    - instrument_lock_held
    - LOCK_CODE
    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:1972,1
    - Dst: instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:1979,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1979,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/instrumentation.c:1988,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1969
    functionDepth: 6
    functionLinenumber: 1969
    functionLinenumberEnd: 1990
    functionName: instrument_all_executing_code_objects
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _Py_FOR_EACH_TSTATE_END
    - instrument_lock_held
    - _PyFrame_GetCode
    - ASSERT_WORLD_STOPPED
    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:1979,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/instrumentation.c:1979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1975
    functionDepth: 6
    functionLinenumber: 1975
    functionLinenumberEnd: 1986
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - instrument_lock_held
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_BEGIN(interp, ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:1995,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: 1994
        line_start: 1994
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2002
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 2002
    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:2007,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: 2006
        line_start: 2006
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2014
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2014
    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:2022,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - tool_id
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2026
    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:2035,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2036,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:2037,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2039,1
    - Dst: check_tool
      Src: /src/cpython/Python/instrumentation.c:2040,1
    - Dst: get_events
      Src: /src/cpython/Python/instrumentation.c:2044,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2048,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2050,1
    - Dst: set_events
      Src: /src/cpython/Python/instrumentation.c:2053,1
    - Dst: set_global_version
      Src: /src/cpython/Python/instrumentation.c:2054,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/instrumentation.c:2056,1
    - Dst: instrument_all_executing_code_objects
      Src: /src/cpython/Python/instrumentation.c:2058,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: 2035
        line_start: 2035
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (events < (1 << _PY_MONITORING_UNGROUPED_EVENTS))
      pos:
        line_end: 2038
        line_start: 2038
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2059
      start: 2032
    functionDepth: 7
    functionLinenumber: 2032
    functionLinenumberEnd: 2059
    functionName: _PyMonitoring_SetEvents
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - check_tool
    - get_events
    - _PyThreadState_GET
    - PyErr_Format
    - assert
    - _Py_Executors_InvalidateAll
    - ASSERT_WORLD_STOPPED
    - instrument_all_executing_code_objects
    - global_version
    - set_global_version
    - set_events
    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:2064,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2066,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2067,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2068,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:2069,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2070,1
    - Dst: check_tool
      Src: /src/cpython/Python/instrumentation.c:2073,1
    - Dst: allocate_instrumentation_data
      Src: /src/cpython/Python/instrumentation.c:2077,1
    - Dst: get_local_events
      Src: /src/cpython/Python/instrumentation.c:2084,1
    - Dst: set_local_events
      Src: /src/cpython/Python/instrumentation.c:2088,1
    - Dst: force_instrument_lock_held
      Src: /src/cpython/Python/instrumentation.c:2090,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    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: 2065
        line_start: 2065
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (events < (1 << _PY_MONITORING_UNGROUPED_EVENTS))
      pos:
        line_end: 2067
        line_start: 2067
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2091
      start: 2061
    functionDepth: 5
    functionLinenumber: 2061
    functionLinenumberEnd: 2091
    functionName: _PyMonitoring_SetLocalEvents
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - check_tool
    - force_instrument_lock_held
    - Py_SIZE
    - _PyInterpreterState_GET
    - allocate_instrumentation_data
    - get_local_events
    - PyErr_Format
    - assert
    - ASSERT_WORLD_STOPPED
    - set_local_events
    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:2096,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2097,1
    - Dst: check_tool
      Src: /src/cpython/Python/instrumentation.c:2098,1
    - Dst: get_local_events
      Src: /src/cpython/Python/instrumentation.c:2106,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: 2095
        line_start: 2095
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2108
      start: 2093
    functionDepth: 2
    functionLinenumber: 2093
    functionLinenumberEnd: 2108
    functionName: _PyMonitoring_GetLocalEvents
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - check_tool
    - _PyInterpreterState_GET
    - get_local_events
    - 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:2112,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2113,1
    - Dst: _PyMonitoring_RegisterCallback
      Src: /src/cpython/Python/instrumentation.c:2116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2118,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2122,1
    - Dst: _PyMonitoring_SetEvents
      Src: /src/cpython/Python/instrumentation.c:2123,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2124,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2128,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2130,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2131,1
    - Dst: set_global_version
      Src: /src/cpython/Python/instrumentation.c:2142,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:2142,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/instrumentation.c:2144,1
    - Dst: instrument_all_executing_code_objects
      Src: /src/cpython/Python/instrumentation.c:2146,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - tool_id
    argTypes:
    - int
    assertStmts:
    - condition: (0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS)
      pos:
        line_end: 2111
        line_start: 2111
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2149
      start: 2110
    functionDepth: 8
    functionLinenumber: 2110
    functionLinenumberEnd: 2149
    functionName: _PyMonitoring_ClearToolId
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyMonitoring_SetEvents
    - _PyEval_StartTheWorld
    - _PyMonitoring_RegisterCallback
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - PyErr_Format
    - assert
    - Py_DECREF
    - _Py_Executors_InvalidateAll
    - instrument_all_executing_code_objects
    - global_version
    - set_global_version
    linkageType: ''
    returnType: int
    signature: int _PyMonitoring_ClearToolId(int tool_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tool_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2167
    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:2182,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/instrumentation.c:2185,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/instrumentation.c:2186,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2189,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2191,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:2194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - module
    - tool_id
    - name
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2178
    functionDepth: 2
    functionLinenumber: 2178
    functionLinenumberEnd: 2196
    functionName: monitoring_use_tool_id_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - check_valid_tool
    - PyErr_SetString
    - PyUnicode_Check
    - _PyInterpreterState_GET
    - PyErr_Format
    - Py_NewRef
    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:2210,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2214,1
    - Dst: _PyMonitoring_ClearToolId
      Src: /src/cpython/Python/instrumentation.c:2217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - tool_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2206
    functionDepth: 9
    functionLinenumber: 2206
    functionLinenumberEnd: 2223
    functionName: monitoring_clear_tool_id_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - _PyMonitoring_ClearToolId
    - 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:2237,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2240,1
    - Dst: _PyMonitoring_ClearToolId
      Src: /src/cpython/Python/instrumentation.c:2243,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instrumentation.c:2248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - tool_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2233
    functionDepth: 9
    functionLinenumber: 2233
    functionLinenumberEnd: 2250
    functionName: monitoring_free_tool_id_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyInterpreterState_GET
    - _PyMonitoring_ClearToolId
    - 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:2266,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2269,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:2274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - tool_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2260
    functionDepth: 2
    functionLinenumber: 2260
    functionLinenumberEnd: 2275
    functionName: monitoring_get_tool_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - Py_NewRef
    - 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:2293,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/instrumentation.c:2296,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/instrumentation.c:2297,1
    - Dst: _Py_bit_length
      Src: /src/cpython/Python/instrumentation.c:2300,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2302,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/instrumentation.c:2305,1
    - Dst: _PyMonitoring_RegisterCallback
      Src: /src/cpython/Python/instrumentation.c:2311,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: 2316
      start: 2288
    functionDepth: 2
    functionLinenumber: 2288
    functionLinenumberEnd: 2316
    functionName: monitoring_register_callback_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - check_valid_tool
    - PySys_Audit
    - PyErr_SetString
    - _Py_bit_length
    - _PyMonitoring_RegisterCallback
    - PyErr_Format
    - _Py_popcount32
    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:2330,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2333,1
    - Dst: get_events
      Src: /src/cpython/Python/instrumentation.c:2334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - tool_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2326
    functionDepth: 2
    functionLinenumber: 2326
    functionLinenumberEnd: 2336
    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:2351,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2355,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2359,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2367,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2368,1
    - Dst: _PyMonitoring_SetEvents
      Src: /src/cpython/Python/instrumentation.c:2369,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - module
    - tool_id
    - event_set
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2347
    functionDepth: 8
    functionLinenumber: 2347
    functionLinenumberEnd: 2375
    functionName: monitoring_set_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyMonitoring_SetEvents
    - _PyEval_StartTheWorld
    - check_valid_tool
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - PyErr_Format
    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:2391,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2392,1
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - tool_id
    - code
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2386
    functionDepth: 2
    functionLinenumber: 2386
    functionLinenumberEnd: 2411
    functionName: monitoring_get_local_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyErr_Format
    - check_valid_tool
    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:2428,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2429,1
    - Dst: check_valid_tool
      Src: /src/cpython/Python/instrumentation.c:2435,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2439,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2448,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:2452,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2453,1
    - Dst: _PyMonitoring_SetLocalEvents
      Src: /src/cpython/Python/instrumentation.c:2454,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2455,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: 2460
      start: 2423
    functionDepth: 6
    functionLinenumber: 2423
    functionLinenumberEnd: 2460
    functionName: monitoring_set_local_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - _PyEval_StartTheWorld
    - check_valid_tool
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - _PyMonitoring_SetLocalEvents
    - PyErr_Format
    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:2475,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:2478,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2479,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2482,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2483,1
    - Dst: set_global_version
      Src: /src/cpython/Python/instrumentation.c:2487,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/instrumentation.c:2489,1
    - Dst: instrument_all_executing_code_objects
      Src: /src/cpython/Python/instrumentation.c:2491,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:2492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2467
    functionDepth: 7
    functionLinenumber: 2467
    functionLinenumberEnd: 2498
    functionName: monitoring_restart_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - PyErr_Format
    - _Py_Executors_InvalidateAll
    - instrument_all_executing_code_objects
    - global_version
    - set_global_version
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring_restart_events_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2503,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - name
    - i
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2500
    functionDepth: 2
    functionLinenumber: 2500
    functionLinenumberEnd: 2510
    functionName: add_power2_constant
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromLong
    - PyObject_SetAttrString
    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:2520,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/instrumentation.c:2521,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2530,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2531,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/instrumentation.c:2532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (tools_obj != NULL)
      pos:
        line_end: 2530
        line_start: 2530
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2540
      start: 2516
    functionDepth: 11
    functionLinenumber: 2516
    functionLinenumberEnd: 2540
    functionName: monitoring__all_events_impl
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyInterpreterState_GET
    - PyDict_SetItemString
    - assert
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      monitoring__all_events_impl(PyObject *module)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_CreateInitialized
      Src: /src/cpython/Python/instrumentation.c:2566,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2570,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2573,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Python/instrumentation.c:2576,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2581,1
    - Dst: add_power2_constant
      Src: /src/cpython/Python/instrumentation.c:2586,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2590,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/instrumentation.c:2590,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2592,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2593,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2595,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2597,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2598,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2599,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2600,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2602,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2603,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2605,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2607,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2608,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/instrumentation.c:2609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2610,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2614,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (val != NULL)
      pos:
        line_end: 2597
        line_start: 2597
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (val != NULL)
      pos:
        line_end: 2607
        line_start: 2607
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (val != NULL)
      pos:
        line_end: 2592
        line_start: 2592
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (val != NULL)
      pos:
        line_end: 2602
        line_start: 2602
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2616
      start: 2564
    functionDepth: 15
    functionLinenumber: 2564
    functionLinenumberEnd: 2616
    functionName: _Py_CreateMonitoringObject
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyModule_CreateInitialized
    - assert
    - add_power2_constant
    - PyObject_SetAttrString
    - _PyNamespace_New
    - Py_DECREF
    - _PyLong_GetZero
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_Py_CreateMonitoringObject(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/instrumentation.c:2623,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2627,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/instrumentation.c:2630,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2635,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2639,1
    - Dst: most_significant_bit
      Src: /src/cpython/Python/instrumentation.c:2647,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2648,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2649,1
    - Dst: call_one_instrument
      Src: /src/cpython/Python/instrumentation.c:2651,1
    - Dst: PY_MONITORING_IS_INSTRUMENTED_EVENT
      Src: /src/cpython/Python/instrumentation.c:2662,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2663,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instrumentation.c:2667,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:2676,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    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: 2626
        line_start: 2626
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (args[2] == NULL)
      pos:
        line_end: 2638
        line_start: 2638
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tool >= 0 && tool < 8)
      pos:
        line_end: 2647
        line_start: 2647
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (tools & (1 << tool))
      pos:
        line_end: 2648
        line_start: 2648
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2678
      start: 2619
    functionDepth: 2
    functionLinenumber: 2619
    functionLinenumberEnd: 2678
    functionName: capi_call_instrumentation
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - PY_MONITORING_IS_INSTRUMENTED_EVENT
    - PyLong_FromLong
    - PyErr_SetString
    - most_significant_bit
    - Py_CLEAR
    - _PyThreadState_GET
    - PyErr_Format
    - assert
    - Py_XDECREF
    - call_one_instrument
    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:2684,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2685,1
    - Dst: global_version
      Src: /src/cpython/Python/instrumentation.c:2694,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: 2696
      start: 2680
    functionDepth: 2
    functionLinenumber: 2680
    functionLinenumberEnd: 2696
    functionName: PyMonitoring_EnterScope
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - global_version
    - _PyInterpreterState_GET
    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: 2702
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2702
    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:2707,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2709,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: 2706
        line_start: 2706
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2711
      start: 2704
    functionDepth: 3
    functionLinenumber: 2704
    functionLinenumberEnd: 2711
    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:2716,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2718,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: 2715
        line_start: 2715
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2720
      start: 2713
    functionDepth: 3
    functionLinenumber: 2713
    functionLinenumberEnd: 2720
    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:2728,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2730,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: 2727
        line_start: 2727
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2732
      start: 2724
    functionDepth: 3
    functionLinenumber: 2724
    functionLinenumberEnd: 2732
    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:2738,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2740,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: 2737
        line_start: 2737
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2742
      start: 2734
    functionDepth: 3
    functionLinenumber: 2734
    functionLinenumberEnd: 2742
    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:2748,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2750,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: 2747
        line_start: 2747
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2752
      start: 2744
    functionDepth: 3
    functionLinenumber: 2744
    functionLinenumberEnd: 2752
    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:2758,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:2759,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2766,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: 2757
        line_start: 2757
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2768
      start: 2754
    functionDepth: 3
    functionLinenumber: 2754
    functionLinenumberEnd: 2768
    functionName: _PyMonitoring_FireLineEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromLong
    - capi_call_instrumentation
    - assert
    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:2774,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2776,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: 2773
        line_start: 2773
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2778
      start: 2770
    functionDepth: 3
    functionLinenumber: 2770
    functionLinenumberEnd: 2778
    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:2784,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2786,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: 2783
        line_start: 2783
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2788
      start: 2780
    functionDepth: 3
    functionLinenumber: 2780
    functionLinenumberEnd: 2788
    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:2794,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2796,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: 2793
        line_start: 2793
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2798
      start: 2790
    functionDepth: 3
    functionLinenumber: 2790
    functionLinenumberEnd: 2798
    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:2804,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2806,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: 2803
        line_start: 2803
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2808
      start: 2800
    functionDepth: 3
    functionLinenumber: 2800
    functionLinenumberEnd: 2808
    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:2814,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2816,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: 2813
        line_start: 2813
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2818
      start: 2810
    functionDepth: 3
    functionLinenumber: 2810
    functionLinenumberEnd: 2818
    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:2822,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instrumentation.c:2824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - exc
    - event
    argTypes:
    - PyObject**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2830
    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:2836,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2839,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:2839,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:2840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - err
    - exc
    argTypes:
    - int
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2838
        line_start: 2838
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2843
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2843
    functionName: exception_event_teardown
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: int
    signature: int exception_event_teardown(int err, PyObject *exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2849,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2851,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2855,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2856,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: 2848
        line_start: 2848
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2857
      start: 2845
    functionDepth: 3
    functionLinenumber: 2845
    functionLinenumberEnd: 2857
    functionName: _PyMonitoring_FirePyThrowEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_setup
    - exception_event_teardown
    - capi_call_instrumentation
    - 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:2863,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2865,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2869,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2870,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: 2862
        line_start: 2862
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2871
      start: 2859
    functionDepth: 3
    functionLinenumber: 2859
    functionLinenumberEnd: 2871
    functionName: _PyMonitoring_FireRaiseEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_setup
    - exception_event_teardown
    - capi_call_instrumentation
    - 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:2877,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2879,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2883,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2884,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: 2876
        line_start: 2876
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2885
      start: 2873
    functionDepth: 3
    functionLinenumber: 2873
    functionLinenumberEnd: 2885
    functionName: _PyMonitoring_FireCRaiseEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_setup
    - exception_event_teardown
    - capi_call_instrumentation
    - 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:2891,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2893,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2897,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2898,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: 2890
        line_start: 2890
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2899
      start: 2887
    functionDepth: 3
    functionLinenumber: 2887
    functionLinenumberEnd: 2899
    functionName: _PyMonitoring_FireReraiseEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_setup
    - exception_event_teardown
    - capi_call_instrumentation
    - 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:2905,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2907,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2911,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2912,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: 2904
        line_start: 2904
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2913
      start: 2901
    functionDepth: 3
    functionLinenumber: 2901
    functionLinenumberEnd: 2913
    functionName: _PyMonitoring_FireExceptionHandledEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_setup
    - exception_event_teardown
    - capi_call_instrumentation
    - 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:2919,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2921,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2925,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2926,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: 2918
        line_start: 2918
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2927
      start: 2915
    functionDepth: 3
    functionLinenumber: 2915
    functionLinenumberEnd: 2927
    functionName: _PyMonitoring_FirePyUnwindEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_setup
    - exception_event_teardown
    - capi_call_instrumentation
    - 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:2933,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2934,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:2934,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/instrumentation.c:2935,1
    - Dst: exception_event_setup
      Src: /src/cpython/Python/instrumentation.c:2937,1
    - Dst: capi_call_instrumentation
      Src: /src/cpython/Python/instrumentation.c:2941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:2942,1
    - Dst: exception_event_teardown
      Src: /src/cpython/Python/instrumentation.c:2943,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: 2932
        line_start: 2932
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2933
        line_start: 2933
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 2944
      start: 2929
    functionDepth: 3
    functionLinenumber: 2929
    functionLinenumberEnd: 2944
    functionName: _PyMonitoring_FireStopIterationEvent
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - exception_event_setup
    - exception_event_teardown
    - PyErr_SetObject
    - capi_call_instrumentation
    - PyErr_Occurred
    - assert
    - Py_DECREF
    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: 2959
      start: 2958
    functionDepth: 0
    functionLinenumber: 2958
    functionLinenumberEnd: 2959
    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:2963,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instrumentation.c:2964,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/instrumentation.c:2965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2960
    functionDepth: 2
    functionLinenumber: 2960
    functionLinenumberEnd: 2966
    functionName: dealloc_branch_handler
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyLegacyBranchEventHandler_CAST
    - PyObject_Free
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void dealloc_branch_handler(PyObject *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyLegacyBranchEventHandler_CAST
      Src: /src/cpython/Python/instrumentation.c:2985,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:2989,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/instrumentation.c:2989,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/instrumentation.c:2991,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/instrumentation.c:2992,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/instrumentation.c:2995,1
    - Dst: is_instrumented
      Src: /src/cpython/Python/instrumentation.c:2996,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/instrumentation.c:3000,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3003,1
    - Dst: IS_CONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/instrumentation.c:3017,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3021,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:3021,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:3032,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:3033,1
    - Dst: remove_tools
      Src: /src/cpython/Python/instrumentation.c:3034,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:3035,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: 2988
        line_start: 2988
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (INLINE_CACHE_ENTRIES_FOR_ITER == 1)
      pos:
        line_end: 3002
        line_start: 3002
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_GetBaseCodeUnit(code, offset).op.code == NOT_TAKEN)
      pos:
        line_end: 3020
        line_start: 3020
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 3038
      start: 2980
    functionDepth: 4
    functionLinenumber: 2980
    functionLinenumberEnd: 3038
    functionName: branch_handler_vectorcall
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - _PyLegacyBranchEventHandler_CAST
    - remove_tools
    - _PyEval_StartTheWorld
    - PyObject_Vectorcall
    - is_instrumented
    - _PyCode_CODE
    - _Py_GetBaseCodeUnit
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - PyLong_AsLong
    - PyErr_Occurred
    - assert
    - IS_CONDITIONAL_JUMP_OPCODE
    - PyVectorcall_NARGS
    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:3043,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:3048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - tool_id
    - handler
    - right
    argTypes:
    - int
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 3040
    functionDepth: 1
    functionLinenumber: 3040
    functionLinenumberEnd: 3052
    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:3057,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3058,1
    - Dst: make_branch_handler
      Src: /src/cpython/Python/instrumentation.c:3067,1
    - Dst: make_branch_handler
      Src: /src/cpython/Python/instrumentation.c:3071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:3073,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:3077,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:3078,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:3083,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:3084,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/instrumentation.c:3087,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/instrumentation.c:3088,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/instrumentation.c:3090,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/instrumentation.c:3091,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/instrumentation.c:3093,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:3095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:3096,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: 3056
        line_start: 3056
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (0 <= event_id && event_id < _PY_MONITORING_EVENTS)
      pos:
        line_end: 3057
        line_start: 3057
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 3099
      start: 3054
    functionDepth: 2
    functionLinenumber: 3054
    functionLinenumberEnd: 3099
    functionName: _PyMonitoring_RegisterCallback
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 2
    functionsReached:
    - _PyEval_StartTheWorld
    - make_branch_handler
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - Py_XDECREF
    - assert
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    - Py_TYPE
    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: 3110
      start: 3109
    functionDepth: 0
    functionLinenumber: 3109
    functionLinenumberEnd: 3110
    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:3113,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:3119,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/instrumentation.c:3123,1
    - Dst: _PyTuple_FromArraySteal
      Src: /src/cpython/Python/instrumentation.c:3128,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:3130,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:3131,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instrumentation.c:3132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3111
    functionDepth: 3
    functionLinenumber: 3111
    functionLinenumberEnd: 3134
    functionName: int_triple
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyLong_FromLong
    - _PyTuple_FromArraySteal
    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:3139,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/instrumentation.c:3142,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:3143,1
    - Dst: int_triple
      Src: /src/cpython/Python/instrumentation.c:3153,1
    - Dst: int_triple
      Src: /src/cpython/Python/instrumentation.c:3162,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3167,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:3167,1
    - Dst: assert
      Src: /src/cpython/Python/instrumentation.c:3168,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/instrumentation.c:3168,1
    - Dst: int_triple
      Src: /src/cpython/Python/instrumentation.c:3170,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: 3166
        line_start: 3166
        source_file: /src/cpython/Python/instrumentation.c
    - condition: (_Py_GetBaseCodeUnit(bi->bi_code, src_offset+1).op.code == NOT_TAKEN)
      pos:
        line_end: 3167
        line_start: 3167
        source_file: /src/cpython/Python/instrumentation.c
    constantsTouched: []
    func_position:
      end: 3177
      start: 3136
    functionDepth: 4
    functionLinenumber: 3136
    functionLinenumberEnd: 3177
    functionName: branchesiter_next
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 0
    functionsReached:
    - int_triple
    - _Py_GetBaseCodeUnit
    - 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:3182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instrumentation.c:3183,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/instrumentation.c:3184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3179
    functionDepth: 2
    functionLinenumber: 3179
    functionLinenumberEnd: 3185
    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:3204,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instrumentation.c:3208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3200
    functionDepth: 4
    functionLinenumber: 3200
    functionLinenumberEnd: 3211
    functionName: _PyInstrumentation_BranchesIterator
    functionSourceFile: /src/cpython/Python/instrumentation.c
    functionUses: 1
    functionsReached:
    - PyType_GenericAlloc
    - Py_NewRef
    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_next)
      pos:
        line_end: 112
        line_start: 112
        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
    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
    - _Py_SIZE_ROUND_UP
    - assert
    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:
    - PyErr_NoMemory
    - block_new
    - block_free
    - PyList_New
    - 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:
    - Py_DECREF
    - block_free
    - PyMem_Free
    - assert
    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:
    - block_alloc
    - PyErr_NoMemory
    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:
    - Py_DECREF
    - PyList_Append
    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:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 54
    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: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: DPRINTF
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(level, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:61,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:64,1
    - Dst: _PyUOpSymPrint
      Src: /src/cpython/Python/optimizer_analysis.c:66,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:68,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:70,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:73,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:76,1
    - Dst: _PyUOpSymPrint
      Src: /src/cpython/Python/optimizer_analysis.c:78,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:80,1
    - Dst: fflush
      Src: /src/cpython/Python/optimizer_analysis.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - frame
    - stack_pointer
    argTypes:
    - _Py_UOpsAbstractFrame*
    - JitOptRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 83
    functionName: dump_abstract_stack
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - fflush
    - _PyUOpSymPrint
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_abstract_stack(_Py_UOpsAbstractFrame *frame, JitOptRef *stack_pointer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_lltrace
      Src: /src/cpython/Python/optimizer_analysis.c:89,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:90,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/optimizer_analysis.c:91,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:92,1
    - Dst: get_lltrace
      Src: /src/cpython/Python/optimizer_analysis.c:93,1
    - Dst: dump_abstract_stack
      Src: /src/cpython/Python/optimizer_analysis.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - label
    - index
    - instr
    - stack_pointer
    argTypes:
    - JitOptContext*
    - char*
    - int
    - _PyUOpInstruction*
    - JitOptRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: dump_uop
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - dump_abstract_stack
    - _PyUOpPrint
    - printf
    - get_lltrace
    linkageType: ''
    returnType: void
    signature: "void dump_uop(JitOptContext *ctx, const char *label, int index,\n
      \             const _PyUOpInstruction *instr, JitOptRef *stack_pointer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uop_buffer_length
      Src: /src/cpython/Python/optimizer_analysis.c:103,1
    - Dst: dump_uop
      Src: /src/cpython/Python/optimizer_analysis.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - label
    - start
    - stack_pointer
    argTypes:
    - JitOptContext*
    - char*
    - _PyUOpInstruction*
    - JitOptRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: dump_uops
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - dump_uop
    - uop_buffer_length
    linkageType: ''
    returnType: void
    signature: "void dump_uops(JitOptContext *ctx, const char *label,\n          _PyUOpInstruction
      *start, JitOptRef *stack_pointer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:121,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:121,1
    - Dst: FT_ATOMIC_LOAD_UINT64_RELAXED
      Src: /src/cpython/Python/optimizer_analysis.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: get_mutations
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_UINT64_RELAXED
    - assert
    linkageType: ''
    returnType: int
    signature: int get_mutations(PyObject* dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:129,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:129,1
    - Dst: FT_ATOMIC_ADD_UINT64
      Src: /src/cpython/Python/optimizer_analysis.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: increment_mutations
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - FT_ATOMIC_ADD_UINT64
    - 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:144,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:145,1
    - Dst: get_mutations
      Src: /src/cpython/Python/optimizer_analysis.c:145,1
    - Dst: _Py_Executors_InvalidateDependency
      Src: /src/cpython/Python/optimizer_analysis.c:146,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_analysis.c:146,1
    - Dst: increment_mutations
      Src: /src/cpython/Python/optimizer_analysis.c:147,1
    - Dst: PyDict_Unwatch
      Src: /src/cpython/Python/optimizer_analysis.c:148,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: 144
        line_start: 144
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: globals_watcher_callback
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyDict_Unwatch
    - RARE_EVENT_STAT_INC
    - _Py_Executors_InvalidateDependency
    - get_mutations
    - _PyInterpreterState_GET
    - increment_mutations
    - 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:155,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_analysis.c:155,1
    - Dst: PyType_Unwatch
      Src: /src/cpython/Python/optimizer_analysis.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: type_watcher_callback
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyType_Unwatch
    - _Py_Executors_InvalidateDependency
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int type_watcher_callback(PyTypeObject* type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_analysis.c:163,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/optimizer_analysis.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - Py_UNUSED(arg)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 169
    functionName: _setup_optimizer_watchers
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int _setup_optimizer_watchers(void *Py_UNUSED(arg))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_analysis.c:174,1
    - Dst: PyType_Watch
      Src: /src/cpython/Python/optimizer_analysis.c:177,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_analysis.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - type
    - filter
    argTypes:
    - PyTypeObject*
    - _PyBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: watch_type
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - _Py_BloomFilter_Add
    - PyType_Watch
    - _Py_IsImmortal
    linkageType: ''
    returnType: void
    signature: void watch_type(PyTypeObject *type, _PyBloomFilter *filter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:184,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:185,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:185,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:187,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/optimizer_analysis.c:188,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:190,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_analysis.c:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - inst
    - obj
    argTypes:
    - _PyUOpInstruction*
    - PyObject*
    assertStmts:
    - condition: (inst->opcode == _LOAD_GLOBAL_MODULE || inst->opcode == _LOAD_GLOBAL_BUILTINS
        || inst->opcode == _LOAD_ATTR_MODULE)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (PyDict_CheckExact(obj))
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (dict->ma_keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (index <= UINT16_MAX)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 209
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 209
    functionName: convert_global_to_const
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    - DK_UNICODE_ENTRIES
    - _Py_IsImmortal
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      convert_global_to_const(_PyUOpInstruction *inst, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - version
    argTypes:
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: incorrect_keys
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - PyDict_CheckExact
    linkageType: ''
    returnType: bool
    signature: bool incorrect_keys(PyObject *obj, uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: STACK_LEVEL
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 5
    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: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: STACK_SIZE
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_SIZE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - uop
    argTypes:
    - _PyUOpInstruction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: is_terminator_uop
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_terminator_uop(const _PyUOpInstruction *uop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: CURRENT_FRAME_IS_INIT_SHIM
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_FRAME_IS_INIT_SHIM()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: GETLOCAL
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 16
    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: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    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: 7
    argNames:
    - (
    - OP
    - ','
    - ARG
    - ','
    - OPERAND
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: ADD_OP
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_OP(OP, ARG, OPERAND)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - this_instr
    - opcode
    - oparg
    - operand0
    argTypes:
    - JitOptContext*
    - _PyUOpInstruction*
    - uint16_t
    - uint16_t
    - uintptr_t
    assertStmts:
    - condition: (out < ctx->out_buffer.end)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: add_op
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void add_op(JitOptContext *ctx, _PyUOpInstruction *this_instr,\n       uint16_t
      opcode, uint16_t oparg, uintptr_t operand0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SYM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    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: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    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: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    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: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    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: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    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: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    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: 5
    argNames:
    - (
    - SYM
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: sym_set_recorded_type
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_recorded_type(SYM, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: sym_set_recorded_value
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_recorded_value(SYM, VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: sym_set_recorded_gen_func
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_recorded_gen_func(SYM, VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DEPTH
    - ','
    - SP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: sym_set_stack_depth
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_stack_depth(DEPTH, SP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: JUMP_TO_LABEL
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 145
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_TO_LABEL(label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_FRAME_IS_INIT_SHIM
      Src: /src/cpython/Python/optimizer_analysis.c:324,1
    - Dst: STACK_SIZE
      Src: /src/cpython/Python/optimizer_analysis.c:328,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - stack_pointer
    - offset
    - opcode
    argTypes:
    - JitOptContext*
    - JitOptRef*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: check_stack_bounds
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME_IS_INIT_SHIM
    - STACK_SIZE
    linkageType: ''
    returnType: int
    signature: int check_stack_bounds(JitOptContext *ctx, JitOptRef *stack_pointer,
      int offset, int opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: CHECK_STACK_BOUNDS
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_STACK_BOUNDS(offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_analysis.c:349,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:350,1
    - Dst: sym_truthiness
      Src: /src/cpython/Python/optimizer_analysis.c:354,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:358,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:360,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:362,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_analysis.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - this_instr
    - ctx
    - value
    - result_ptr
    - prefix
    - suffix
    argTypes:
    - _PyUOpInstruction*
    - JitOptContext*
    - JitOptRef
    - JitOptRef*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 368
    functionName: optimize_to_bool
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - ADD_OP
    - sym_matches_type
    - sym_truthiness
    - sym_new_const
    linkageType: ''
    returnType: int
    signature: "int optimize_to_bool(\n    _PyUOpInstruction *this_instr,\n    JitOptContext
      *ctx,\n    JitOptRef value,\n    JitOptRef *result_ptr,\n    uint16_t prefix,
      uint16_t suffix)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:375,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:375,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:375,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:376,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:376,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:378,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Python/optimizer_analysis.c:378,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/optimizer_analysis.c:380,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:385,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_analysis.c:388,1
    - Dst: PyObject_Hash
      Src: /src/cpython/Python/optimizer_analysis.c:390,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:391,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_analysis.c:392,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_analysis.c:392,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - dependencies
    - this_instr
    - sub
    - opcode
    argTypes:
    - JitOptContext*
    - _PyBloomFilter*
    - _PyUOpInstruction*
    - PyObject*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 394
    functionName: optimize_dict_known_hash
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - ADD_OP
    - PyObject_Hash
    - PyUnicode_CheckExact
    - PyBytes_CheckExact
    - PyLong_CheckExact
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - PyTuple_CheckExact
    - watch_type
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: "void optimize_dict_known_hash(\n    JitOptContext *ctx, _PyBloomFilter
      *dependencies, _PyUOpInstruction *this_instr,\n    PyObject *sub, uint16_t opcode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:399,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_analysis.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - this_instr
    - ctx
    - exit
    argTypes:
    - _PyUOpInstruction*
    - JitOptContext*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: eliminate_pop_guard
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - ADD_OP
    - REPLACE_OP
    linkageType: ''
    returnType: void
    signature: void eliminate_pop_guard(_PyUOpInstruction *this_instr, JitOptContext
      *ctx, bool exit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Python/optimizer_analysis.c:412,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/optimizer_analysis.c:413,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_analysis.c:415,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:417,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:419,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:422,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_analysis.c:425,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_analysis.c:427,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_analysis.c:430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 7
    argNames:
    - ctx
    - dependencies
    - this_instr
    - type
    - name
    - prefix
    - suffix
    argTypes:
    - JitOptContext*
    - _PyBloomFilter*
    - _PyUOpInstruction*
    - PyTypeObject*
    - PyObject*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 431
    functionName: lookup_attr
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - ADD_OP
    - sym_new_not_null
    - _PyType_Lookup
    - PyType_Check
    - _Py_IsImmortal
    - sym_new_const
    - watch_type
    linkageType: ''
    returnType: JitOptRef
    signature: "JitOptRef lookup_attr(JitOptContext *ctx, _PyBloomFilter *dependencies,
      _PyUOpInstruction *this_instr,\n            PyTypeObject *type, PyObject *name,\n
      \           uint16_t prefix, uint16_t suffix)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_analysis.c:436,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_analysis.c:437,1
    - Dst: sym_is_immortal
      Src: /src/cpython/Python/optimizer_analysis.c:438,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_analysis.c:438,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_analysis.c:439,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:440,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:443,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:446,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:449,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - this_instr
    - value
    argTypes:
    - JitOptContext*
    - _PyUOpInstruction*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 454
    functionName: optimize_pop_top
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - ADD_OP
    - sym_is_immortal
    - sym_is_null
    - PyJitRef_IsBorrowed
    - PyJitRef_Unwrap
    - sym_get_type
    linkageType: ''
    returnType: void
    signature: void optimize_pop_top(JitOptContext *ctx, _PyUOpInstruction *this_instr,
      JitOptRef value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_analysis.c:466,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/optimizer_analysis.c:469,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_analysis.c:470,1
    - Dst: _PySuper_LookupDescr
      Src: /src/cpython/Python/optimizer_analysis.c:472,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/optimizer_analysis.c:474,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/optimizer_analysis.c:475,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_analysis.c:477,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_analysis.c:479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_analysis.c:480,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_analysis.c:481,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_analysis.c:484,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:487,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:488,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:489,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:490,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_analysis.c:492,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_analysis.c:496,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_analysis.c:497,1
    - Dst: sym_new_const_steal
      Src: /src/cpython/Python/optimizer_analysis.c:499,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 9
    argNames:
    - ctx
    - dependencies
    - this_instr
    - su_type
    - obj_type
    - name
    - immortal
    - mortal
    - suffix
    argTypes:
    - JitOptContext*
    - _PyBloomFilter*
    - _PyUOpInstruction*
    - PyTypeObject*
    - PyTypeObject*
    - PyObject*
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 458
    functionDepth: 9
    functionLinenumber: 458
    functionLinenumberEnd: 500
    functionName: lookup_super_attr
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - sym_new_not_null
    - PyType_IsSubtype
    - ADD_OP
    - sym_new_const_steal
    - _PySuper_LookupDescr
    - PyErr_Clear
    - _Py_IsImmortal
    - PyErr_Occurred
    - Py_DECREF
    - watch_type
    - Py_TYPE
    linkageType: ''
    returnType: JitOptRef
    signature: "JitOptRef lookup_super_attr(JitOptContext *ctx, _PyBloomFilter *dependencies,\n
      \                 _PyUOpInstruction *this_instr,\n                  PyTypeObject
      *su_type, PyTypeObject *obj_type,\n                  PyObject *name,\n                  uint16_t
      immortal, uint16_t mortal, uint16_t suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 507
    functionName: get_current_code_object
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      get_current_code_object(JitOptContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_analysis.c:512,1
    - Dst: get_current_code_object
      Src: /src/cpython/Python/optimizer_analysis.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - index
    argTypes:
    - JitOptContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: get_co_name
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - get_current_code_object
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_co_name(JitOptContext *ctx, int index)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 530
    functionName: get_test_bit_for_bools
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_test_bit_for_bools(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bit
    argTypes:
    - int
    assertStmts:
    - condition: ((true_bits ^ ((uintptr_t)&_Py_FalseStruct)) & (uintptr_t)(1 << bit))
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: test_bit_set_in_true
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int test_bit_set_in_true(int bit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:554,1
    - Dst: fflush
      Src: /src/cpython/Python/optimizer_analysis.c:555,1
    - Dst: abort
      Src: /src/cpython/Python/optimizer_analysis.c:556,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_analysis.c:560,1
    - Dst: fflush
      Src: /src/cpython/Python/optimizer_analysis.c:561,1
    - Dst: abort
      Src: /src/cpython/Python/optimizer_analysis.c:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - filename
    - lineno
    argTypes:
    - _Py_UOpsAbstractFrame*
    - JitOptRef*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 564
    functionName: _Py_opt_assert_within_stack_bounds
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - fflush
    - printf
    - abort
    linkageType: ''
    returnType: void
    signature: "void _Py_opt_assert_within_stack_bounds(\n    _Py_UOpsAbstractFrame
      *frame, JitOptRef *stack_pointer,\n    const char *filename, int lineno\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - F
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 569
    functionName: ASSERT_WITHIN_STACK_BOUNDS
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 191
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WITHIN_STACK_BOUNDS(F, L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - F
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: ASSERT_WITHIN_STACK_BOUNDS
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 191
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_WITHIN_STACK_BOUNDS(F, L)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:584,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/optimizer_analysis.c:584,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:585,1
    - Dst: uop_buffer_init
      Src: /src/cpython/Python/optimizer_analysis.c:591,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_analysis.c:594,1
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Python/optimizer_analysis.c:595,1
    - Dst: _Py_uop_abstractcontext_init
      Src: /src/cpython/Python/optimizer_analysis.c:598,1
    - Dst: _Py_uop_frame_new
      Src: /src/cpython/Python/optimizer_analysis.c:599,1
    - Dst: _Py_uop_sym_set_stack_depth
      Src: /src/cpython/Python/optimizer_analysis.c:606,1
    - Dst: is_terminator_uop
      Src: /src/cpython/Python/optimizer_analysis.c:617,1
    - Dst: CURRENT_FRAME_IS_INIT_SHIM
      Src: /src/cpython/Python/optimizer_analysis.c:626,1
    - Dst: DUMP_UOP
      Src: /src/cpython/Python/optimizer_analysis.c:630,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:639,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_analysis.c:640,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:646,1
    - Dst: DUMP_UOPS
      Src: /src/cpython/Python/optimizer_analysis.c:647,1
    - Dst: CURRENT_FRAME_IS_INIT_SHIM
      Src: /src/cpython/Python/optimizer_analysis.c:648,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:649,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/optimizer_analysis.c:649,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:651,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/optimizer_analysis.c:651,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:655,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:656,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:665,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:666,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_analysis.c:667,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:668,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_analysis.c:674,1
    - Dst: uop_buffer_length
      Src: /src/cpython/Python/optimizer_analysis.c:676,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:677,1
    - Dst: is_terminator_uop
      Src: /src/cpython/Python/optimizer_analysis.c:677,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer_analysis.c:677,1
    - Dst: uop_buffer_length
      Src: /src/cpython/Python/optimizer_analysis.c:680,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:683,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_analysis.c:684,1
    - Dst: OPT_ERROR_IN_OPCODE
      Src: /src/cpython/Python/optimizer_analysis.c:686,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_analysis.c:688,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:690,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/optimizer_analysis.c:690,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/optimizer_analysis.c:691,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 70
    argCount: 6
    argNames:
    - tstate
    - trace
    - trace_len
    - curr_stacklen
    - output
    - dependencies
    argTypes:
    - _PyThreadStateImpl*
    - _PyUOpInstruction*
    - int
    - int
    - _PyUOpInstruction*
    - _PyBloomFilter*
    assertStmts:
    - condition: (STACK_LEVEL() >= 0)
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (tstate->jit_tracer_state != NULL)
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (ctx->frame != NULL)
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (is_terminator_uop(uop_buffer_last(&ctx->out_buffer)))
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 695
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 695
    functionName: optimize_uops
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - OPT_STAT_INC
    - CURRENT_FRAME_IS_INIT_SHIM
    - PyErr_Occurred
    - assert
    - OPT_ERROR_IN_OPCODE
    - DPRINTF
    - Py_UNREACHABLE
    - _Py_uop_sym_set_stack_depth
    - _Py_uop_frame_new
    - is_terminator_uop
    - _PyOnceFlag_CallOnce
    - PyErr_Clear
    - DUMP_UOPS
    - _Py_uop_abstractcontext_init
    - uop_buffer_length
    - uop_buffer_last
    - _PyInterpreterState_GET
    - DUMP_UOP
    - uop_buffer_init
    - _Py_uop_abstractcontext_fini
    - STACK_LEVEL
    linkageType: ''
    returnType: int
    signature: "int optimize_uops(\n    _PyThreadStateImpl *tstate,\n    _PyUOpInstruction
      *trace,\n    int trace_len,\n    int curr_stacklen,\n    _PyUOpInstruction *output,\n
      \   _PyBloomFilter *dependencies\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:782,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_analysis.c:797,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 2
    argNames:
    - buffer
    - buffer_size
    argTypes:
    - _PyUOpInstruction*
    - int
    assertStmts:
    - condition: (buffer[last_set_ip].opcode == _NOP)
      pos:
        line_end: 781
        line_start: 781
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 798
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 798
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:813,1
    - Dst: optimize_uops
      Src: /src/cpython/Python/optimizer_analysis.c:815,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:822,1
    - Dst: remove_unneeded_uops
      Src: /src/cpython/Python/optimizer_analysis.c:824,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_analysis.c:825,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_analysis.c:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - tstate
    - buffer
    - length
    - curr_stacklen
    - output
    - dependencies
    argTypes:
    - _PyThreadStateImpl*
    - _PyUOpInstruction*
    - int
    - int
    - _PyUOpInstruction*
    - _PyBloomFilter*
    assertStmts:
    - condition: (length > 0)
      pos:
        line_end: 824
        line_start: 824
        source_file: /src/cpython/Python/optimizer_analysis.c
    - condition: (length > 0)
      pos:
        line_end: 821
        line_start: 821
        source_file: /src/cpython/Python/optimizer_analysis.c
    constantsTouched: []
    func_position:
      end: 829
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 829
    functionName: _Py_uop_analyze_and_optimize
    functionSourceFile: /src/cpython/Python/optimizer_analysis.c
    functionUses: 0
    functionsReached:
    - remove_unneeded_uops
    - OPT_STAT_INC
    - optimize_uops
    - assert
    linkageType: ''
    returnType: int
    signature: "int _Py_uop_analyze_and_optimize(\n    _PyThreadStateImpl *tstate,\n
      \   _PyUOpInstruction *buffer,\n    int length,\n    int curr_stacklen,\n    _PyUOpInstruction
      *output,\n    _PyBloomFilter *dependencies\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 11
    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:16,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/ceval.c:17,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/ceval.c:24,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/ceval.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - new_limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: Py_SetRecursionLimit
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyEval_StopTheWorld
    - _Py_FOR_EACH_TSTATE_END
    - _PyEval_StartTheWorld
    - _PyInterpreterState_GET
    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: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: emscripten_stack_get_base
      Src: /src/cpython/Python/ceval.c:90,1
    - Dst: emscripten_stack_get_base
      Src: /src/cpython/Python/ceval.c:91,1
    - Dst: emscripten_stack_get_end
      Src: /src/cpython/Python/ceval.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - thread
    - attr
    argTypes:
    - pthread_t
    - pthread_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: pthread_getattr_np
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - emscripten_stack_get_end
    - emscripten_stack_get_base
    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: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    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: 115
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 115
    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: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    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:129,1
    - Dst: SetThreadStackGuarantee
      Src: /src/cpython/Python/ceval.c:132,1
    - Dst: pthread_self
      Src: /src/cpython/Python/ceval.c:135,1
    - Dst: pthread_get_stackaddr_np
      Src: /src/cpython/Python/ceval.c:136,1
    - Dst: pthread_get_stacksize_np
      Src: /src/cpython/Python/ceval.c:137,1
    - Dst: pthread_getattr_np
      Src: /src/cpython/Python/ceval.c:149,1
    - Dst: pthread_self
      Src: /src/cpython/Python/ceval.c:149,1
    - Dst: pthread_attr_getguardsize
      Src: /src/cpython/Python/ceval.c:151,1
    - Dst: pthread_attr_getstack
      Src: /src/cpython/Python/ceval.c:152,1
    - Dst: pthread_attr_destroy
      Src: /src/cpython/Python/ceval.c:153,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/ceval.c:166,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/cpython/Python/ceval.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - base
    - top
    - sp
    argTypes:
    - uintptr_t*
    - uintptr_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 175
    functionName: hardware_stack_limits
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - pthread_get_stacksize_np
    - pthread_attr_destroy
    - _Py_SIZE_ROUND_DOWN
    - _Py_SIZE_ROUND_UP
    - pthread_self
    - pthread_attr_getguardsize
    - pthread_get_stackaddr_np
    - pthread_getattr_np
    - SetThreadStackGuarantee
    - pthread_attr_getstack
    - GetCurrentThreadStackLimits
    linkageType: ''
    returnType: void
    signature: void hardware_stack_limits(uintptr_t *base, uintptr_t *top, uintptr_t
      sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:181,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:182,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:201,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:202,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:211,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - tstate
    - base
    - top
    argTypes:
    - PyThreadState*
    - uintptr_t
    - uintptr_t
    assertStmts:
    - condition: (base < top)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/cpython/Python/ceval.c
    - condition: (ts->c_stack_hard_limit <= ts->c_stack_soft_limit)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/cpython/Python/ceval.c
    - condition: ((top - base) >= _PyOS_MIN_STACK_SIZE)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/cpython/Python/ceval.c
    - condition: (ts->c_stack_soft_limit < ts->c_stack_top)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/cpython/Python/ceval.c
    - condition: (ts->c_stack_hard_limit >= ts->c_stack_soft_limit)
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/cpython/Python/ceval.c
    - condition: (ts->c_stack_soft_limit > ts->c_stack_top)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 215
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 215
    functionName: tstate_set_stack
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void tstate_set_stack(PyThreadState *tstate,\n                 uintptr_t
      base, uintptr_t top)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_machine_stack_pointer
      Src: /src/cpython/Python/ceval.c:222,1
    - Dst: hardware_stack_limits
      Src: /src/cpython/Python/ceval.c:223,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:224,1
    - Dst: tstate_set_stack
      Src: /src/cpython/Python/ceval.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (top != 0)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: _Py_InitializeRecursionLimits
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - tstate_set_stack
    - _Py_get_machine_stack_pointer
    - hardware_stack_limits
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_InitializeRecursionLimits(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ceval.c:238,1
    - Dst: tstate_set_stack
      Src: /src/cpython/Python/ceval.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - tstate
    - stack_start_addr
    - stack_size
    argTypes:
    - PyThreadState*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: PyUnstable_ThreadState_SetStackProtection
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PyErr_Format
    - tstate_set_stack
    linkageType: ''
    returnType: int
    signature: "int PyUnstable_ThreadState_SetStackProtection(PyThreadState *tstate,\n
      \                               void *stack_start_addr, size_t stack_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tstate_set_stack
      Src: /src/cpython/Python/ceval.c:256,1
    - Dst: _Py_InitializeRecursionLimits
      Src: /src/cpython/Python/ceval.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: PyUnstable_ThreadState_ResetStackProtection
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _Py_InitializeRecursionLimits
    - tstate_set_stack
    linkageType: ''
    returnType: void
    signature: void PyUnstable_ThreadState_ResetStackProtection(PyThreadState *tstate)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:418,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:418,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:419,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:422,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Python/ceval.c:432,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Python/ceval.c:433,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:434,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Python/ceval.c:435,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:435,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:439,1
    - Dst: PySet_New
      Src: /src/cpython/Python/ceval.c:440,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/ceval.c:445,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:449,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:454,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/ceval.c:455,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/ceval.c:455,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:456,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:458,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:463,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:466,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:467,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:477,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:478,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:480,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/ceval.c:483,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Python/ceval.c:487,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Python/ceval.c:488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:490,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Python/ceval.c:493,1
    - Dst: _PyThreadState_PopCStackRef
      Src: /src/cpython/Python/ceval.c:494,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:495,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:496,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:497,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 3
    argNames:
    - tstate
    - map
    - keys
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(keys))
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 499
      start: 415
    functionDepth: 13
    functionLinenumber: 415
    functionLinenumberEnd: 499
    functionName: _PyEval_MatchKeys
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - assert
    - PyTuple_GET_SIZE
    - PyStackRef_FromPyObjectBorrow
    - _PyThreadState_PopCStackRef
    - _PyThreadState_PushCStackRef
    - Py_XDECREF
    - _PyObject_CallNoArgs
    - PyTuple_CheckExact
    - _PyObject_GetMethodStackRef
    - PySet_New
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - PyStackRef_IsNull
    - PyTuple_New
    - _PyErr_Format
    - PySet_Add
    - PyObject_Vectorcall
    - _PyErr_Occurred
    - PySet_Contains
    - PyStackRef_AsPyObjectBorrow
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_MatchKeys(PyThreadState *tstate, PyObject *map, PyObject *keys)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:508,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ceval.c:508,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:511,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Python/ceval.c:511,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/ceval.c:512,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/ceval.c:512,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:513,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:515,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - tstate
    - subject
    - type
    - name
    - seen
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/cpython/Python/ceval.c
    - condition: (PySet_CheckExact(seen))
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 525
      start: 504
    functionDepth: 8
    functionLinenumber: 504
    functionLinenumberEnd: 525
    functionName: match_class_attr
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PySet_Add
    - PyUnicode_CheckExact
    - _PyErr_Occurred
    - PyObject_GetOptionalAttr
    - PySet_Contains
    - assert
    - PySet_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmatch_class_attr(PyThreadState *tstate, PyObject *subject,
      PyObject *type,\n                 PyObject *name, PyObject *seen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/cpython/Python/ceval.c:533,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:535,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:538,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:538,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/ceval.c:540,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:544,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:547,1
    - Dst: PySet_New
      Src: /src/cpython/Python/ceval.c:555,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:560,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:562,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:570,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:570,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:574,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:576,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:578,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:587,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/ceval.c:588,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:591,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:591,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:592,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:595,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:603,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:603,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/ceval.c:604,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:604,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:608,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ceval.c:609,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:610,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:612,1
    - Dst: match_class_attr
      Src: /src/cpython/Python/ceval.c:615,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:620,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:620,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/ceval.c:621,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/ceval.c:624,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:628,1
    - Dst: match_class_attr
      Src: /src/cpython/Python/ceval.c:629,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:633,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:633,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/ceval.c:634,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:636,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:641,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:643,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    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: 590
        line_start: 590
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyTuple_GET_ITEM(attrs, nargs + i) == NULL)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyTuple_CheckExact(kwargs))
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyTuple_GET_ITEM(attrs, i) == NULL)
      pos:
        line_end: 619
        line_start: 619
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyTuple_GET_ITEM(attrs, 0) == NULL)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 645
      start: 529
    functionDepth: 13
    functionLinenumber: 529
    functionLinenumberEnd: 645
    functionName: _PyEval_MatchClass
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - PyType_Check
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyObject_GetOptionalAttr
    - PyObject_IsInstance
    - Py_XDECREF
    - PyTuple_CheckExact
    - PyType_HasFeature
    - PySet_New
    - PyTuple_SET_ITEM
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    - _PyErr_Format
    - match_class_attr
    - PyUnicode_CheckExact
    - Py_CLEAR
    - _Py_ID
    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:653,1
    - Dst: _PyDict_LoadBuiltinsFromGlobals
      Src: /src/cpython/Python/ceval.c:657,1
    - Dst: _PyFunction_FromConstructor
      Src: /src/cpython/Python/ceval.c:671,1
    - Dst: _Py_DECREF_BUILTINS
      Src: /src/cpython/Python/ceval.c:672,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Python/ceval.c:676,1
    - Dst: _PyEval_Vector
      Src: /src/cpython/Python/ceval.c:677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - co
    - globals
    - locals
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 650
    functionDepth: 9
    functionLinenumber: 650
    functionLinenumberEnd: 680
    functionName: PyEval_EvalCode
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - _PyDict_LoadBuiltinsFromGlobals
    - _PyFunction_FromConstructor
    - _PyThreadState_GET
    - _Py_DECREF_BUILTINS
    - Py_DECREF
    - EVAL_CALL_STAT_INC
    - _PyEval_Vector
    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:689,1
    - Dst: _PyEval_EvalFrame
      Src: /src/cpython/Python/ceval.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 691
    functionName: PyEval_EvalFrame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - _PyEval_EvalFrame
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_EvalFrame(PyFrameObject *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:696,1
    - Dst: _PyEval_EvalFrame
      Src: /src/cpython/Python/ceval.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - throwflag
    argTypes:
    - PyFrameObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 698
    functionName: PyEval_EvalFrameEx
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyEval_EvalFrame
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:713,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:714,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:718,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:719,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:722,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:724,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:728,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:729,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:729,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/ceval.c:731,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:737,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - callable
    - arguments
    - total_args
    - kwnames
    argTypes:
    - _PyStackRef
    - _PyStackRef*
    - int
    - _PyStackRef
    assertStmts:
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 741
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 741
    functionName: _Py_VectorCall_StackRefSteal
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PyStackRef_CLOSE
    - PyObject_Vectorcall
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - STACKREFS_TO_PYOBJECTS
    - PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_VectorCall_StackRefSteal(\n    _PyStackRef callable,\n
      \   _PyStackRef *arguments,\n    int total_args,\n    _PyStackRef kwnames)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:755,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:756,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:760,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:761,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:764,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:766,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:770,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:773,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/ceval.c:775,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/ceval.c:780,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/ceval.c:784,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:788,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:788,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/ceval.c:790,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:796,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 8
    argNames:
    - callable
    - arguments
    - total_args
    - kwnames
    - call_instrumentation
    - frame
    - this_instr
    - tstate
    argTypes:
    - _PyStackRef
    - _PyStackRef*
    - int
    - _PyStackRef
    - bool
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - PyThreadState*
    assertStmts:
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 787
        line_start: 787
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 800
      start: 743
    functionDepth: 8
    functionLinenumber: 743
    functionLinenumberEnd: 800
    functionName: _Py_VectorCallInstrumentation_StackRefSteal
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 4
    functionsReached:
    - PyStackRef_CLOSE
    - PyObject_Vectorcall
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - _Py_call_instrumentation_2args
    - Py_CLEAR
    - STACKREFS_TO_PYOBJECTS
    - PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - PyStackRef_XCLOSE
    - _Py_call_instrumentation_exc2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_VectorCallInstrumentation_StackRefSteal(\n    _PyStackRef
      callable,\n    _PyStackRef* arguments,\n    int total_args,\n    _PyStackRef
      kwnames,\n    bool call_instrumentation,\n    _PyInterpreterFrame* frame,\n
      \   _Py_CODEUNIT* this_instr,\n    PyThreadState* tstate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:809,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:810,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:813,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Python/ceval.c:814,1
    - Dst: _PyCFunctionFast_CAST
      Src: /src/cpython/Python/ceval.c:815,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Python/ceval.c:816,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:820,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:821,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - callable
    - arguments
    - total_args
    argTypes:
    - _PyStackRef
    - _PyStackRef*
    - int
    assertStmts:
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 823
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 823
    functionName: _Py_BuiltinCallFast_StackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyCFunction_GET_FUNCTION
    - _PyCFunctionFast_CAST
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - STACKREFS_TO_PYOBJECTS
    - PyCFunction_GET_SELF
    - PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_BuiltinCallFast_StackRef(\n    _PyStackRef callable,\n
      \   _PyStackRef *arguments,\n    int total_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:832,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:833,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:836,1
    - Dst: _PyCFunctionFastWithKeywords_CAST
      Src: /src/cpython/Python/ceval.c:838,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Python/ceval.c:838,1
    - Dst: cfunc
      Src: /src/cpython/Python/ceval.c:839,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Python/ceval.c:839,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:840,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:841,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - callable
    - arguments
    - total_args
    argTypes:
    - _PyStackRef
    - _PyStackRef*
    - int
    assertStmts:
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 843
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 843
    functionName: _Py_BuiltinCallFastWithKeywords_StackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyCFunction_GET_FUNCTION
    - assert
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyCFunction_GET_SELF
    - PyErr_Occurred
    - _PyCFunctionFastWithKeywords_CAST
    - PyStackRef_AsPyObjectBorrow
    - cfunc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_BuiltinCallFastWithKeywords_StackRef(\n    _PyStackRef
      callable,\n    _PyStackRef *arguments,\n    int total_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:854,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:855,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:858,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:858,1
    - Dst: cfunc
      Src: /src/cpython/Python/ceval.c:860,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:861,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:862,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - callable
    - cfunc
    - self
    - arguments
    - total_args
    argTypes:
    - _PyStackRef
    - PyCFunctionFast
    - PyObject*
    - _PyStackRef*
    - int
    assertStmts:
    - condition: (self == PyStackRef_AsPyObjectBorrow(arguments[0]))
      pos:
        line_end: 857
        line_start: 857
        source_file: /src/cpython/Python/ceval.c
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 864
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 864
    functionName: _PyCallMethodDescriptorFast_StackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    - cfunc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyCallMethodDescriptorFast_StackRef(\n    _PyStackRef
      callable,\n    PyCFunctionFast cfunc,\n    PyObject *self,\n    _PyStackRef
      *arguments,\n    int total_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:875,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:876,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:879,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:879,1
    - Dst: cfunc
      Src: /src/cpython/Python/ceval.c:881,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:882,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:883,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - callable
    - cfunc
    - self
    - arguments
    - total_args
    argTypes:
    - _PyStackRef
    - PyCFunctionFastWithKeywords
    - PyObject*
    - _PyStackRef*
    - int
    assertStmts:
    - condition: (self == PyStackRef_AsPyObjectBorrow(arguments[0]))
      pos:
        line_end: 878
        line_start: 878
        source_file: /src/cpython/Python/ceval.c
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 885
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 885
    functionName: _PyCallMethodDescriptorFastWithKeywords_StackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    - cfunc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyCallMethodDescriptorFastWithKeywords_StackRef(\n    _PyStackRef
      callable,\n    PyCFunctionFastWithKeywords cfunc,\n    PyObject *self,\n    _PyStackRef
      *arguments,\n    int total_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:894,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:895,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:898,1
    - Dst: PyTypeObject*::tp_vectorcall
      Src: /src/cpython/Python/ceval.c:899,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:900,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:901,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - callable
    - arguments
    - total_args
    argTypes:
    - _PyStackRef
    - _PyStackRef*
    - int
    assertStmts:
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 903
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 903
    functionName: _Py_CallBuiltinClass_StackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTypeObject*::tp_vectorcall
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_CallBuiltinClass_StackRef(\n    _PyStackRef callable,\n
      \   _PyStackRef *arguments,\n    int total_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:911,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:912,1
    - Dst: _PyUnicode_JoinArray
      Src: /src/cpython/Python/ceval.c:916,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/ceval.c:916,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:917,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:918,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:918,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - arguments
    - total_args
    argTypes:
    - _PyStackRef*
    - int
    assertStmts:
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 917
        line_start: 917
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 928
      start: 905
    functionDepth: 7
    functionLinenumber: 905
    functionLinenumberEnd: 928
    functionName: _Py_BuildString_StackRefSteal
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyStackRef_CLOSE
    - _Py_STR
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - CONVERSION_FAILED
    - STACKREFS_TO_PYOBJECTS
    - PyErr_Occurred
    - assert
    - _PyUnicode_JoinArray
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_BuildString_StackRefSteal(\n    _PyStackRef *arguments,\n
      \   int total_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACKREFS_TO_PYOBJECTS
      Src: /src/cpython/Python/ceval.c:936,1
    - Dst: CONVERSION_FAILED
      Src: /src/cpython/Python/ceval.c:937,1
    - Dst: _PyDict_FromItems
      Src: /src/cpython/Python/ceval.c:941,1
    - Dst: STACKREFS_TO_PYOBJECTS_CLEANUP
      Src: /src/cpython/Python/ceval.c:946,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:947,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:947,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - arguments
    - half_args
    argTypes:
    - _PyStackRef*
    - int
    assertStmts:
    - condition: ((res != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 946
        line_start: 946
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 957
      start: 930
    functionDepth: 13
    functionLinenumber: 930
    functionLinenumberEnd: 957
    functionName: _Py_BuildMap_StackRefSteal
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyStackRef_CLOSE
    - STACKREFS_TO_PYOBJECTS_CLEANUP
    - CONVERSION_FAILED
    - _PyDict_FromItems
    - STACKREFS_TO_PYOBJECTS
    - PyErr_Occurred
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_BuildMap_StackRefSteal(\n    _PyStackRef *arguments,\n
      \   int half_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Python/ceval.c:968,1
    - Dst: _PyThreadState_PushCStackRef
      Src: /src/cpython/Python/ceval.c:969,1
    - Dst: _PyObject_GetMethodStackRef
      Src: /src/cpython/Python/ceval.c:973,1
    - Dst: _PyThreadState_PopCStackRefSteal
      Src: /src/cpython/Python/ceval.c:974,1
    - Dst: _PyThreadState_PopCStackRefSteal
      Src: /src/cpython/Python/ceval.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - tstate
    - owner
    - name
    - self_or_null
    argTypes:
    - PyThreadState*
    - _PyStackRef
    - PyObject*
    - _PyStackRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 959
    functionDepth: 4
    functionLinenumber: 959
    functionLinenumberEnd: 976
    functionName: _Py_LoadAttr_StackRefSteal
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_PopCStackRefSteal
    - _PyThreadState_PushCStackRef
    - _PyObject_GetMethodStackRef
    linkageType: ''
    returnType: _PyStackRef
    signature: "_PyStackRef _Py_LoadAttr_StackRefSteal(\n    PyThreadState *tstate,
      _PyStackRef owner,\n    PyObject *name, _PyStackRef *self_or_null)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/ceval.c:987,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:989,1
    - Dst: fflush
      Src: /src/cpython/Python/ceval.c:990,1
    - Dst: abort
      Src: /src/cpython/Python/ceval.c:991,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:993,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:995,1
    - Dst: fflush
      Src: /src/cpython/Python/ceval.c:996,1
    - Dst: abort
      Src: /src/cpython/Python/ceval.c:997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - filename
    - lineno
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 999
    functionName: _Py_assert_within_stack_bounds
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - fflush
    - _PyFrame_GetCode
    - abort
    - _PyFrame_Stackbase
    - printf
    linkageType: ''
    returnType: void
    signature: "void _Py_assert_within_stack_bounds(\n    _PyInterpreterFrame *frame,
      _PyStackRef *stack_pointer,\n    const char *filename, int lineno\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval.c:1008,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1021
    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:1047,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1061
    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:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - array
    - scratch
    argTypes:
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1063
    functionDepth: 2
    functionLinenumber: 1063
    functionLinenumberEnd: 1069
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:1078,1
    - Dst: _PyOptimizer_Optimize
      Src: /src/cpython/Python/ceval.c:1079,1
    - Dst: _PyJit_FinalizeTracing
      Src: /src/cpython/Python/ceval.c:1081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1083
    functionName: stop_tracing_and_jit
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - _PyJit_FinalizeTracing
    - _PyErr_Occurred
    - _PyOptimizer_Optimize
    linkageType: ''
    returnType: int
    signature: int stop_tracing_and_jit(PyThreadState *tstate, _PyInterpreterFrame
      *frame)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/ceval.c:1108,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/ceval.c:1111,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ceval.c:1123,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1126,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/ceval.c:1132,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1132,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1133,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:1137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - iterable
    - index_or_null
    - yield_from
    argTypes:
    - _PyStackRef
    - _PyStackRef*
    - int
    assertStmts:
    - condition: (yield_from != GET_ITER_YIELD_FROM)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1138
      start: 1105
    functionDepth: 3
    functionLinenumber: 1105
    functionLinenumberEnd: 1138
    functionName: _PyEval_GetIter
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_CLOSE
    - PyErr_SetString
    - PyStackRef_TagInt
    - PyObject_GetIter
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_TYPE
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _PyEval_GetIter(_PyStackRef iterable, _PyStackRef *index_or_null,
      int yield_from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:1163,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/ceval.c:1164,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/ceval.c:1165,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Python/ceval.c:1166,1
    - Dst: PyDTrace_FUNCTION_ENTRY
      Src: /src/cpython/Python/ceval.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1156
    functionDepth: 6
    functionLinenumber: 1156
    functionLinenumberEnd: 1169
    functionName: dtrace_function_entry
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyDTrace_FUNCTION_ENTRY
    - PyUnstable_InterpreterFrame_GetLine
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void dtrace_function_entry(_PyInterpreterFrame *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:1178,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/ceval.c:1179,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/ceval.c:1180,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Python/ceval.c:1181,1
    - Dst: PyDTrace_FUNCTION_RETURN
      Src: /src/cpython/Python/ceval.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1171
    functionDepth: 6
    functionLinenumber: 1171
    functionLinenumberEnd: 1184
    functionName: dtrace_function_return
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyDTrace_FUNCTION_RETURN
    - PyUnstable_InterpreterFrame_GetLine
    - _PyFrame_GetCode
    linkageType: ''
    returnType: void
    signature: void dtrace_function_return(_PyInterpreterFrame *frame)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1344,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1368,1
    - Dst: dump_stack
      Src: /src/cpython/Python/ceval.c:1376,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1377,1
    - Dst: dump_cache_item
      Src: /src/cpython/Python/ceval.c:1378,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1379,1
    - Dst: dump_cache_item
      Src: /src/cpython/Python/ceval.c:1380,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1381,1
    - Dst: dump_cache_item
      Src: /src/cpython/Python/ceval.c:1382,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1383,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1385,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1388,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/ceval.c:1390,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1391,1
    - Dst: fflush
      Src: /src/cpython/Python/ceval.c:1392,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/ceval.c:1396,1
    - Dst: UOP_STAT_INC
      Src: /src/cpython/Python/ceval.c:1397,1
    - Dst: UOP_PAIR_INC
      Src: /src/cpython/Python/ceval.c:1398,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1411,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/ceval.c:1412,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1413,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval.c:1414,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/ceval.c:1417,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1426,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/ceval.c:1427,1
    - Dst: printf
      Src: /src/cpython/Python/ceval.c:1428,1
    - Dst: fflush
      Src: /src/cpython/Python/ceval.c:1431,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1434,1
    - Dst: uop_get_error_target
      Src: /src/cpython/Python/ceval.c:1435,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1440,1
    - Dst: uop_get_jump_target
      Src: /src/cpython/Python/ceval.c:1441,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 4
    argNames:
    - current_executor
    - frame
    - stack_pointer
    - tstate
    argTypes:
    - _PyExecutorObject*
    - _PyInterpreterFrame*
    - _PyStackRef*
    - PyThreadState*
    assertStmts:
    - condition: "(next_uop->opcode == _START_EXECUTOR_r00 + current_cached_values
        ||\n        next_uop->opcode == _COLD_EXIT_r00 + current_cached_values ||\n
        \       next_uop->opcode == _COLD_DYNAMIC_EXIT_r00 + current_cached_values)"
      pos:
        line_end: 1345
        line_start: 1343
        source_file: /src/cpython/Python/ceval.c
    - condition: (next_uop[-1].format == UOP_FORMAT_JUMP)
      pos:
        line_end: 1439
        line_start: 1439
        source_file: /src/cpython/Python/ceval.c
    - condition: "(next_uop->opcode == _START_EXECUTOR_r00 ||\n        next_uop->opcode
        == _COLD_EXIT_r00 ||\n        next_uop->opcode == _COLD_DYNAMIC_EXIT_r00)"
      pos:
        line_end: 1369
        line_start: 1367
        source_file: /src/cpython/Python/ceval.c
    - condition: (next_uop[-1].format == UOP_FORMAT_JUMP)
      pos:
        line_end: 1433
        line_start: 1433
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1445
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1445
    functionName: _PyTier2Interpreter
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - fflush
    - Py_FatalError
    - dump_cache_item
    - UOP_PAIR_INC
    - uop_get_jump_target
    - dump_stack
    - OPT_STAT_INC
    - uop_get_error_target
    - Py_UNREACHABLE
    - UOP_STAT_INC
    - assert
    - printf
    - _PyUOpPrint
    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: 1350
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1350
    functionName: LOAD_IP
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 18
    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: 1355
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1355
    functionName: STAT_INC
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 99
    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: 1357
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1357
    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:1464,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1467,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/ceval.c:1467,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1468,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1472,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/ceval.c:1473,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1476,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1477,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1478,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1481,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1482,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1483,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/ceval.c:1488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1490,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/ceval.c:1494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1496,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Python/ceval.c:1499,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1500,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1502,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/ceval.c:1505,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1507,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1519,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - tstate
    - kind
    - co
    - names
    - qualname
    argTypes:
    - PyThreadState*
    - char*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (len >= 1)
      pos:
        line_end: 1467
        line_start: 1467
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyList_CheckExact(names))
      pos:
        line_end: 1466
        line_start: 1466
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1520
      start: 1459
    functionDepth: 12
    functionLinenumber: 1459
    functionLinenumberEnd: 1520
    functionName: format_missing
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - Py_INCREF
    - PyUnicode_FromString
    - PyList_GET_ITEM
    - PyUnicode_FromFormat
    - PyUnicode_Join
    - assert
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GET_SIZE
    - PyUnicode_Concat
    - PyList_SetSlice
    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:1534,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:1546,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1547,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/ceval.c:1548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1550,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/ceval.c:1553,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1556,1
    - Dst: format_missing
      Src: /src/cpython/Python/ceval.c:1557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1558,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: 1555
        line_start: 1555
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1559
      start: 1522
    functionDepth: 4
    functionLinenumber: 1522
    functionLinenumberEnd: 1559
    functionName: missing_arguments
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyTuple_GET_ITEM
    - PyObject_Repr
    - format_missing
    - PyList_New
    - assert
    - Py_DECREF
    - PyStackRef_IsNull
    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:1572,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1575,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1579,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1583,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1587,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:1593,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1598,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/ceval.c:1604,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1605,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1616,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: 1571
        line_start: 1571
        source_file: /src/cpython/Python/ceval.c
    - condition: (kwonly_sig != NULL)
      pos:
        line_end: 1604
        line_start: 1604
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1617
      start: 1561
    functionDepth: 10
    functionLinenumber: 1561
    functionLinenumberEnd: 1617
    functionName: too_many_positional
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_GetConstant
    - _PyErr_Format
    - PyUnicode_FromFormat
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - Py_DECREF
    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:1625,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1630,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1634,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/ceval.c:1636,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/ceval.c:1643,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/ceval.c:1646,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/ceval.c:1657,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Python/ceval.c:1661,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1662,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1674,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:1678,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: 1681
      start: 1619
    functionDepth: 4
    functionLinenumber: 1619
    functionLinenumberEnd: 1681
    functionName: positional_only_passed_as_keyword
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PyUnicode_FromString
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    - PyUnicode_Join
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    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: 36
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/ceval.c:1694,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1702,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:1702,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:1703,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1718,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:1718,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/ceval.c:1726,1
    - Dst: _PyTuple_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/ceval.c:1729,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1732,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1739,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1739,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:1740,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1745,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1751,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1754,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ceval.c:1758,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1759,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/ceval.c:1778,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1787,1
    - Dst: positional_only_passed_as_keyword
      Src: /src/cpython/Python/ceval.c:1791,1
    - Dst: PyList_New
      Src: /src/cpython/Python/ceval.c:1800,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ceval.c:1803,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/ceval.c:1806,1
    - Dst: _Py_CalculateSuggestions
      Src: /src/cpython/Python/ceval.c:1809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1810,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1815,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:1818,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1820,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/ceval.c:1828,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1828,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1831,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1836,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1841,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:1842,1
    - Dst: too_many_positional
      Src: /src/cpython/Python/ceval.c:1853,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1860,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:1864,1
    - Dst: missing_arguments
      Src: /src/cpython/Python/ceval.c:1869,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1878,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1880,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:1882,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:1892,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:1894,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/ceval.c:1897,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:1901,1
    - Dst: missing_arguments
      Src: /src/cpython/Python/ceval.c:1908,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1917,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:1922,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:1924,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[i]))
      pos:
        line_end: 1701
        line_start: 1701
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyStackRef_IsNull(localsplus[j]))
      pos:
        line_end: 1717
        line_start: 1717
        source_file: /src/cpython/Python/ceval.c
    - condition: (j >= total_args)
      pos:
        line_end: 1786
        line_start: 1786
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyStackRef_AsPyObjectBorrow(localsplus[total_args]) == NULL)
      pos:
        line_end: 1738
        line_start: 1738
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1930
      start: 1683
    functionDepth: 11
    functionLinenumber: 1683
    functionLinenumberEnd: 1930
    functionName: initialize_locals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _Py_CalculateSuggestions
    - assert
    - PyTuple_GET_SIZE
    - PyStackRef_FromPyObjectNew
    - too_many_positional
    - positional_only_passed_as_keyword
    - PyUnicode_Check
    - missing_arguments
    - PyList_New
    - PyStackRef_FromPyObjectSteal
    - PyErr_Clear
    - _Py_SINGLETON
    - Py_DECREF
    - PyDict_GetItemRef
    - PyStackRef_IsNull
    - _PyTuple_FromStackRefStealOnSuccess
    - _PyErr_Format
    - PyList_SET_ITEM
    - PyDict_New
    - PyObject_RichCompareBool
    - PyStackRef_CLOSE
    - PyDict_SetItem
    - PyStackRef_AsPyObjectBorrow
    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:1935,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1938,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:1938,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1940,1
    - Dst: _PyFrame_ClearExceptCode
      Src: /src/cpython/Python/ceval.c:1941,1
    - Dst: PyStackRef_CLEAR
      Src: /src/cpython/Python/ceval.c:1942,1
    - Dst: _PyThreadState_PopFrame
      Src: /src/cpython/Python/ceval.c:1943,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: 1934
        line_start: 1934
        source_file: /src/cpython/Python/ceval.c
    - condition: (frame->frame_obj == NULL || frame->frame_obj->f_frame == frame)
      pos:
        line_end: 1939
        line_start: 1939
        source_file: /src/cpython/Python/ceval.c
    - condition: "((PyObject **)frame + _PyFrame_GetCode(frame)->co_framesize ==\n
        \       tstate->datastack_top)"
      pos:
        line_end: 1938
        line_start: 1937
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1944
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1944
    functionName: clear_thread_frame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyFrame_ClearExceptCode
    - PyStackRef_CLEAR
    - _PyFrame_GetCode
    - _PyThreadState_PopFrame
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_thread_frame(PyThreadState *tstate, _PyInterpreterFrame
      * frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1949,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/ceval.c:1950,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Python/ceval.c:1951,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1952,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:1955,1
    - Dst: _PyFrame_ClearExceptCode
      Src: /src/cpython/Python/ceval.c:1957,1
    - Dst: _PyErr_ClearExcState
      Src: /src/cpython/Python/ceval.c:1958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->owner == FRAME_OWNED_BY_GENERATOR)
      pos:
        line_end: 1948
        line_start: 1948
        source_file: /src/cpython/Python/ceval.c
    - condition: (frame->frame_obj == NULL || frame->frame_obj->f_frame == frame)
      pos:
        line_end: 1954
        line_start: 1954
        source_file: /src/cpython/Python/ceval.c
    - condition: (tstate->exc_info == &gen->gi_exc_state)
      pos:
        line_end: 1951
        line_start: 1951
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 1962
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1962
    functionName: clear_gen_frame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyFrame_ClearExceptCode
    - _PyGen_GetGeneratorFromFrame
    - _PyErr_ClearExcState
    - FT_ATOMIC_STORE_INT8_RELEASE
    - assert
    linkageType: ''
    returnType: void
    signature: void clear_gen_frame(PyThreadState *tstate, _PyInterpreterFrame * frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_thread_frame
      Src: /src/cpython/Python/ceval.c:1978,1
    - Dst: clear_gen_frame
      Src: /src/cpython/Python/ceval.c:1981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1964
    functionDepth: 2
    functionLinenumber: 1964
    functionLinenumberEnd: 1983
    functionName: _PyEval_FrameClearAndPop
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 4
    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:1991,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/ceval.c:1993,1
    - Dst: _PyThreadState_PushFrame
      Src: /src/cpython/Python/ceval.c:1994,1
    - Dst: _PyFrame_Initialize
      Src: /src/cpython/Python/ceval.c:1998,1
    - Dst: initialize_locals
      Src: /src/cpython/Python/ceval.c:1999,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2000,1
    - Dst: clear_thread_frame
      Src: /src/cpython/Python/ceval.c:2001,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:2007,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2008,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:2010,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2013,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:2015,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/ceval.c:2018,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: 1999
        line_start: 1999
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2020
      start: 1986
    functionDepth: 12
    functionLinenumber: 1986
    functionLinenumberEnd: 2020
    functionName: _PyEvalFramePushAndInit
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 9
    functionsReached:
    - CALL_STAT_INC
    - PyErr_NoMemory
    - PyStackRef_CLOSE
    - initialize_locals
    - _PyFrame_Initialize
    - _PyThreadState_PushFrame
    - Py_XDECREF
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - clear_thread_frame
    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:2029,1
    - Dst: _PyStack_UnpackDict
      Src: /src/cpython/Python/ceval.c:2035,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/ceval.c:2035,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:2037,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2040,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2041,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:2045,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:2049,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval.c:2057,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/ceval.c:2059,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:2060,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:2066,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:2066,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/ceval.c:2069,1
    - Dst: _PyStack_UnpackDict_FreeNoDecRef
      Src: /src/cpython/Python/ceval.c:2074,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval.c:2077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2082,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2083,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2086,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2087,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    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: 2040
        line_start: 2040
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2089
      start: 2025
    functionDepth: 13
    functionLinenumber: 2025
    functionLinenumberEnd: 2089
    functionName: _PyEvalFramePushAndInit_Ex
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyStack_UnpackDict_FreeNoDecRef
    - PyStackRef_FromPyObjectNew
    - PyStackRef_FromPyObjectSteal
    - PyTuple_GET_ITEM
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyStackRef_CLOSE
    - _PyStack_UnpackDict
    - _PyEvalFramePushAndInit
    - _PyTuple_ITEMS
    - PyMem_Free
    - assert
    - Py_DECREF
    - PyDict_GET_SIZE
    - Py_XDECREF
    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:2099,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval.c:2107,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/ceval.c:2109,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/ceval.c:2114,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:2116,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2119,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:2121,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/ceval.c:2124,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/ceval.c:2125,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval.c:2128,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Python/ceval.c:2133,1
    - Dst: _PyEval_EvalFrame
      Src: /src/cpython/Python/ceval.c:2134,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: 2135
      start: 2091
    functionDepth: 13
    functionLinenumber: 2091
    functionLinenumberEnd: 2135
    functionName: _PyEval_Vector
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PyStackRef_FromPyObjectNew
    - PyErr_NoMemory
    - _PyEvalFramePushAndInit
    - _PyEval_EvalFrame
    - PyMem_Free
    - PyMem_Malloc
    - PyTuple_GET_SIZE
    - EVAL_CALL_STAT_INC
    - Py_XINCREF
    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:2145,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Python/ceval.c:2147,1
    - Dst: _PyDict_LoadBuiltinsFromGlobals
      Src: /src/cpython/Python/ceval.c:2151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2153,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/ceval.c:2167,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval.c:2171,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/ceval.c:2179,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2179,1
    - Dst: _PyFunction_FromConstructor
      Src: /src/cpython/Python/ceval.c:2194,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Python/ceval.c:2198,1
    - Dst: _PyEval_Vector
      Src: /src/cpython/Python/ceval.c:2199,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2203,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2204,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval.c:2205,1
    - Dst: _Py_DECREF_BUILTINS
      Src: /src/cpython/Python/ceval.c:2206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2207,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: 2209
      start: 2138
    functionDepth: 14
    functionLinenumber: 2138
    functionLinenumberEnd: 2209
    functionName: PyEval_EvalCodeEx
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyTuple_FromArray
    - _PyDict_LoadBuiltinsFromGlobals
    - _PyFunction_FromConstructor
    - EVAL_CALL_STAT_INC
    - _PyThreadState_GET
    - PyTuple_SET_ITEM
    - _Py_DECREF_BUILTINS
    - Py_XDECREF
    - PyMem_Malloc
    - Py_DECREF
    - PyMem_Free
    - Py_NewRef
    - PyTuple_New
    - _PyEval_Vector
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Python/ceval.c:2219,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2220,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2221,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2224,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/ceval.c:2224,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/ceval.c:2226,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Python/ceval.c:2228,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2230,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/ceval.c:2234,1
    - Dst: _PyExc_CreateExceptionGroup
      Src: /src/cpython/Python/ceval.c:2238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2239,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/ceval.c:2243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2245,1
    - Dst: _PyTraceBack_FromFrame
      Src: /src/cpython/Python/ceval.c:2249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2251,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/ceval.c:2254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2255,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2259,1
    - Dst: _PyBaseExceptionGroup_Check
      Src: /src/cpython/Python/ceval.c:2266,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/ceval.c:2267,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:2273,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ceval.c:2274,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2276,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2277,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2282,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ceval.c:2283,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2286,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2287,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2291,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:2291,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2292,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:2292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2293,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2297,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/ceval.c:2298,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    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: 2223
        line_start: 2223
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2300
      start: 2215
    functionDepth: 5
    functionLinenumber: 2215
    functionLinenumberEnd: 2300
    functionName: _PyEval_ExceptionGroupMatch
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    - _PyTraceBack_FromFrame
    - _PyBaseExceptionGroup_Check
    - PyObject_CallMethod
    - PyException_SetTraceback
    - _PyExc_CreateExceptionGroup
    - Py_IsNone
    - PyTuple_Pack
    - PyErr_Format
    - assert
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - _PyFrame_GetFrameObject
    - Py_NewRef
    - Py_TYPE
    - PyTuple_GET_SIZE
    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:2318,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/ceval.c:2320,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:2322,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2323,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/ceval.c:2323,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2325,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2327,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/ceval.c:2333,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2336,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2338,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2344,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:2352,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/ceval.c:2357,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2364,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/ceval.c:2366,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/ceval.c:2366,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/ceval.c:2367,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/ceval.c:2368,1
    - Dst: PyDict_Size
      Src: /src/cpython/Python/ceval.c:2368,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/ceval.c:2368,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2370,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2376,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/ceval.c:2382,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:2385,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/ceval.c:2388,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:2390,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:2398,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/ceval.c:2398,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/ceval.c:2401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2402,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:2407,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2409,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: 2317
        line_start: 2317
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2411
      start: 2309
    functionDepth: 3
    functionLinenumber: 2309
    functionLinenumberEnd: 2411
    functionName: _PyEval_UnpackIterableStackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PySequence_List
    - _PyErr_ExceptionMatches
    - PyList_GET_ITEM
    - PyObject_GetIter
    - assert
    - PyIter_Next
    - Py_TYPE
    - PyDict_Size
    - Py_XDECREF
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - PySequence_Check
    - Py_SET_SIZE
    - Py_SIZE
    - Py_DECREF
    - PyDict_CheckExact
    - _PyErr_Format
    - PyStackRef_CLOSE
    - _PyErr_Occurred
    - PyList_CheckExact
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int _PyEval_UnpackIterableStackRef(PyThreadState *tstate, PyObject
      *v,\n                       int argcnt, int argcntafter, _PyStackRef *sp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: no_tools_for_local_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: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2423
    functionName: _PyEval_MonitorRaise
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - no_tools_for_local_event
    - do_monitor_exc
    linkageType: ''
    returnType: void
    signature: "void _PyEval_MonitorRaise(PyThreadState *tstate, _PyInterpreterFrame
      *frame,\n              _Py_CODEUNIT *instr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: no_tools_for_local_event
      Src: /src/cpython/Python/ceval.c:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2425
    functionDepth: 1
    functionLinenumber: 2425
    functionLinenumberEnd: 2429
    functionName: _PyEval_NoToolsForUnwind
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - no_tools_for_local_event
    linkageType: ''
    returnType: bool
    signature: bool _PyEval_NoToolsForUnwind(PyThreadState *tstate, _PyInterpreterFrame
      *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->tracing >= 0)
      pos:
        line_end: 2434
        line_start: 2434
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2437
      start: 2432
    functionDepth: 0
    functionLinenumber: 2432
    functionLinenumberEnd: 2437
    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:2442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->tracing > 0)
      pos:
        line_end: 2441
        line_start: 2441
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2444
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2444
    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:2451,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/ceval.c:2456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2447
    functionDepth: 5
    functionLinenumber: 2447
    functionLinenumberEnd: 2461
    functionName: _PyEval_CallTracing
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_CallTracing(PyObject *func, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2466,1
    - Dst: _PyEval_SetProfile
      Src: /src/cpython/Python/ceval.c:2467,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval.c:2469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2471
    functionName: PyEval_SetProfile
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - PyErr_FormatUnraisable
    - _PyEval_SetProfile
    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:2476,1
    - Dst: _PyEval_SetProfileAllThreads
      Src: /src/cpython/Python/ceval.c:2477,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval.c:2479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2473
    functionDepth: 1
    functionLinenumber: 2473
    functionLinenumberEnd: 2481
    functionName: PyEval_SetProfileAllThreads
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyEval_SetProfileAllThreads
    - PyErr_FormatUnraisable
    - _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:2486,1
    - Dst: _PyEval_SetTrace
      Src: /src/cpython/Python/ceval.c:2487,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval.c:2489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2483
    functionDepth: 1
    functionLinenumber: 2483
    functionLinenumberEnd: 2491
    functionName: PyEval_SetTrace
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyEval_SetTrace
    - _PyThreadState_GET
    - 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:2496,1
    - Dst: _PyEval_SetTraceAllThreads
      Src: /src/cpython/Python/ceval.c:2497,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval.c:2499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2493
    functionDepth: 1
    functionLinenumber: 2493
    functionLinenumberEnd: 2501
    functionName: PyEval_SetTraceAllThreads
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyEval_SetTraceAllThreads
    - PyErr_FormatUnraisable
    - _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:2506,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2503
    functionDepth: 1
    functionLinenumber: 2503
    functionLinenumberEnd: 2513
    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:2519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2516
    functionDepth: 1
    functionLinenumber: 2516
    functionLinenumberEnd: 2521
    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:2526,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/ceval.c:2528,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/ceval.c:2532,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/ceval.c:2532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - firstiter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2523
    functionDepth: 1
    functionLinenumber: 2523
    functionLinenumberEnd: 2534
    functionName: _PyEval_SetAsyncGenFirstiter
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PySys_Audit
    - Py_XSETREF
    - _PyThreadState_GET
    - Py_XNewRef
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetAsyncGenFirstiter(PyObject *firstiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2536
    functionDepth: 1
    functionLinenumber: 2536
    functionLinenumberEnd: 2541
    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:2546,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/ceval.c:2548,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/ceval.c:2552,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/ceval.c:2552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - finalizer
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2543
    functionDepth: 1
    functionLinenumber: 2543
    functionLinenumberEnd: 2554
    functionName: _PyEval_SetAsyncGenFinalizer
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PySys_Audit
    - Py_XSETREF
    - _PyThreadState_GET
    - Py_XNewRef
    linkageType: ''
    returnType: int
    signature: int _PyEval_SetAsyncGenFinalizer(PyObject *finalizer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2561
    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:2566,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2563
    functionDepth: 1
    functionLinenumber: 2563
    functionLinenumberEnd: 2568
    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:2573,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/ceval.c:2577,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ceval.c:2579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2570
    functionDepth: 2
    functionLinenumber: 2570
    functionLinenumberEnd: 2582
    functionName: PyEval_GetFrame
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 5
    functionsReached:
    - _PyEval_GetFrame
    - PyErr_Clear
    - _PyFrame_GetFrameObject
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyEval_GetFrame(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2584
    functionDepth: 1
    functionLinenumber: 2584
    functionLinenumberEnd: 2592
    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:2597,1
    - Dst: _PyEval_GetBuiltins
      Src: /src/cpython/Python/ceval.c:2598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2594
    functionDepth: 2
    functionLinenumber: 2594
    functionLinenumberEnd: 2599
    functionName: PyEval_GetBuiltins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 5
    functionsReached:
    - _PyEval_GetBuiltins
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetBuiltins(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:2606,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Python/ceval.c:2606,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/ceval.c:2607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2602
    functionDepth: 9
    functionLinenumber: 2602
    functionLinenumberEnd: 2610
    functionName: _PyEval_GetBuiltin
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 20
    functionsReached:
    - PyErr_SetObject
    - PyMapping_GetOptionalItem
    - PyEval_GetBuiltins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetBuiltin(PyObject *name)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2616,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2617,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2619,1
    - Dst: _PyFrame_GetLocals
      Src: /src/cpython/Python/ceval.c:2624,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Python/ceval.c:2630,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/ceval.c:2631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2633,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/ceval.c:2639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2641,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/ceval.c:2646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2651,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2655,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/ceval.c:2655,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2656,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/ceval.c:2656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2657,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyMapping_Check(locals))
      pos:
        line_end: 2654
        line_start: 2654
        source_file: /src/cpython/Python/ceval.c
    - condition: (Py_REFCNT(locals) > 1)
      pos:
        line_end: 2655
        line_start: 2655
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2660
      start: 2612
    functionDepth: 12
    functionLinenumber: 2612
    functionLinenumberEnd: 2660
    functionName: PyEval_GetLocals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyDict_Update
    - assert
    - _PyErr_SetString
    - PyMapping_Check
    - Py_REFCNT
    - _PyThreadState_GET
    - PyFrameLocalsProxy_Check
    - _PyFrame_GetLocals
    - Py_DECREF
    - _PyFrame_GetFrameObject
    - _PyThreadState_GetFrame
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetLocals(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2665,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2666,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2668,1
    - Dst: _PyFrame_GetLocals
      Src: /src/cpython/Python/ceval.c:2672,1
    - Dst: PyFrameLocalsProxy_Check
      Src: /src/cpython/Python/ceval.c:2677,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/ceval.c:2678,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2680,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/ceval.c:2683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2684,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2688,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2692,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/ceval.c:2692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyMapping_Check(locals))
      pos:
        line_end: 2691
        line_start: 2691
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2694
      start: 2662
    functionDepth: 12
    functionLinenumber: 2662
    functionLinenumberEnd: 2694
    functionName: _PyEval_GetFrameLocals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyDict_Update
    - assert
    - _PyErr_SetString
    - PyMapping_Check
    - _PyThreadState_GET
    - PyFrameLocalsProxy_Check
    - _PyFrame_GetLocals
    - Py_DECREF
    - _PyThreadState_GetFrame
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetFrameLocals(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2696
    functionDepth: 1
    functionLinenumber: 2696
    functionLinenumberEnd: 2704
    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:2709,1
    - Dst: _PyEval_GetGlobals
      Src: /src/cpython/Python/ceval.c:2710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2706
    functionDepth: 2
    functionLinenumber: 2706
    functionLinenumberEnd: 2711
    functionName: PyEval_GetGlobals
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyEval_GetGlobals
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetGlobals(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_IsRunningMain
      Src: /src/cpython/Python/ceval.c:2716,1
    - Dst: _Py_GetMainModule
      Src: /src/cpython/Python/ceval.c:2719,1
    - Dst: _Py_CheckMainModule
      Src: /src/cpython/Python/ceval.c:2720,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:2721,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/ceval.c:2724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2713
    functionDepth: 2
    functionLinenumber: 2713
    functionLinenumberEnd: 2727
    functionName: _PyEval_GetGlobalsFromRunningMain
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _Py_GetMainModule
    - _PyInterpreterState_IsRunningMain
    - PyModule_GetDict
    - Py_XDECREF
    - _Py_CheckMainModule
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetGlobalsFromRunningMain(PyThreadState *tstate)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Python/ceval.c:2733,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/ceval.c:2734,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2734,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:2739,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - globals
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2729
    functionDepth: 9
    functionLinenumber: 2729
    functionLinenumberEnd: 2746
    functionName: get_globals_builtins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemRef
    - PyAnyDict_Check
    - PyMapping_GetOptionalItem
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_globals_builtins(PyObject *globals)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/ceval.c:2751,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/ceval.c:2752,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2752,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/ceval.c:2757,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2757,1
    - Dst: PyFrozenDict_Check
      Src: /src/cpython/Python/ceval.c:2758,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2759,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - globals
    - builtins
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2748
    functionDepth: 10
    functionLinenumber: 2748
    functionLinenumberEnd: 2766
    functionName: set_globals_builtins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_Check
    - PyErr_SetString
    - PyDict_SetItem
    - PyDict_Check
    - PyObject_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:2772,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2774,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Python/ceval.c:2777,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:2779,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2779,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/ceval.c:2782,1
    - Dst: set_globals_builtins
      Src: /src/cpython/Python/ceval.c:2783,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2792,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: 2778
        line_start: 2778
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 2795
      start: 2768
    functionDepth: 11
    functionLinenumber: 2768
    functionLinenumberEnd: 2795
    functionName: _PyEval_EnsureBuiltins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - set_globals_builtins
    - get_globals_builtins
    - _PyErr_Occurred
    - PyEval_GetBuiltins
    - assert
    - Py_DECREF
    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:2801,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2803,1
    - Dst: PyImport_ImportModuleLevel
      Src: /src/cpython/Python/ceval.c:2806,1
    - Dst: set_globals_builtins
      Src: /src/cpython/Python/ceval.c:2810,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - tstate
    - globals
    - p_builtins
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2797
    functionDepth: 11
    functionLinenumber: 2797
    functionLinenumberEnd: 2822
    functionName: _PyEval_EnsureBuiltinsWithModule
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - set_globals_builtins
    - get_globals_builtins
    - _PyErr_Occurred
    - Py_DECREF
    - PyImport_ImportModuleLevel
    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:2827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2824
    functionDepth: 13
    functionLinenumber: 2824
    functionLinenumberEnd: 2828
    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:2832,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/ceval.c:2833,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/ceval.c:2837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2838
      start: 2830
    functionDepth: 1
    functionLinenumber: 2830
    functionLinenumberEnd: 2838
    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:2842,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/ceval.c:2843,1
    - Dst: _PyEval_GetBuiltins
      Src: /src/cpython/Python/ceval.c:2843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2840
    functionDepth: 2
    functionLinenumber: 2840
    functionLinenumberEnd: 2844
    functionName: PyEval_GetFrameBuiltins
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyEval_GetBuiltins
    - _PyThreadState_GET
    - Py_XNewRef
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyEval_GetFrameBuiltins(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2849,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/ceval.c:2857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cf
    argTypes:
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2846
    functionDepth: 1
    functionLinenumber: 2846
    functionLinenumberEnd: 2865
    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:2871,1
    - Dst: PyEval_GetFuncName
      Src: /src/cpython/Python/ceval.c:2872,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/cpython/Python/ceval.c:2872,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/ceval.c:2873,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/ceval.c:2874,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Python/ceval.c:2875,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:2878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2868
    functionDepth: 6
    functionLinenumber: 2868
    functionLinenumberEnd: 2879
    functionName: PyEval_GetFuncName
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PyFunction_Check
    - PyEval_GetFuncName
    - PyUnicode_AsUTF8
    - PyMethod_Check
    - PyCFunction_Check
    - 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:2884,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/ceval.c:2886,1
    - Dst: PyCFunction_Check
      Src: /src/cpython/Python/ceval.c:2888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2881
    functionDepth: 1
    functionLinenumber: 2881
    functionLinenumberEnd: 2892
    functionName: PyEval_GetFuncDesc
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyCFunction_Check
    - PyFunction_Check
    - PyMethod_Check
    linkageType: ''
    returnType: char
    signature: 'char *

      PyEval_GetFuncDesc(PyObject *func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsNone
      Src: /src/cpython/Python/ceval.c:2903,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/cpython/Python/ceval.c:2906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - pi
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2900
    functionDepth: 1
    functionLinenumber: 2900
    functionLinenumberEnd: 2907
    functionName: _PyEval_SliceIndex
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 25
    functionsReached:
    - Py_IsNone
    - _PyEval_SliceIndexNotNone
    linkageType: ''
    returnType: int
    signature: int _PyEval_SliceIndex(PyObject *v, Py_ssize_t *pi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:2912,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/ceval.c:2914,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/ceval.c:2914,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/ceval.c:2915,1
    - Dst: _PyIndex_Check
      Src: /src/cpython/Python/ceval.c:2918,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Python/ceval.c:2919,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2920,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - v
    - pi
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2909
    functionDepth: 3
    functionLinenumber: 2909
    functionLinenumberEnd: 2931
    functionName: _PyEval_SliceIndexNotNone
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 8
    functionsReached:
    - _PyLong_CompactValue
    - _PyLong_IsCompact
    - _PyErr_SetString
    - PyNumber_AsSsize_t
    - _PyErr_Occurred
    - _PyIndex_Check
    - PyLong_CheckExact
    - _PyThreadState_GET
    linkageType: ''
    returnType: int
    signature: int _PyEval_SliceIndexNotNone(PyObject *v, Py_ssize_t *pi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Python/ceval.c:2943,1
    - Dst: _PyEval_SliceIndex
      Src: /src/cpython/Python/ceval.c:2946,1
    - Dst: PySlice_AdjustIndices
      Src: /src/cpython/Python/ceval.c:2949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - start
    - stop
    - len
    - istart
    - istop
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2933
    functionDepth: 2
    functionLinenumber: 2933
    functionLinenumberEnd: 2951
    functionName: _PyEval_UnpackIndices
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PySlice_AdjustIndices
    - _PyEval_SliceIndex
    linkageType: ''
    returnType: int
    signature: "int _PyEval_UnpackIndices(PyObject *start, PyObject *stop,\n                      Py_ssize_t
      len,\n                      Py_ssize_t *istart, Py_ssize_t *istop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:2959,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:2959,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:2964,1
    - Dst: _PyEval_ImportNameWithImport
      Src: /src/cpython/Python/ceval.c:2968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:2970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - tstate
    - builtins
    - globals
    - locals
    - name
    - fromlist
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2972
      start: 2953
    functionDepth: 9
    functionLinenumber: 2953
    functionLinenumberEnd: 2972
    functionName: _PyEval_ImportName
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyErr_SetString
    - Py_DECREF
    - _PyEval_ImportNameWithImport
    - PyMapping_GetOptionalItem
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyEval_ImportName(PyThreadState *tstate, PyObject *builtins,\n
      \           PyObject *globals, PyObject *locals, PyObject *name,\n            PyObject
      *fromlist, PyObject *level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_IsDefaultImportFunc
      Src: /src/cpython/Python/ceval.c:2984,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/ceval.c:2985,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:2986,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Python/ceval.c:2989,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:2998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 7
    argNames:
    - tstate
    - import_func
    - globals
    - locals
    - name
    - fromlist
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2974
    functionDepth: 4
    functionLinenumber: 2974
    functionLinenumberEnd: 3000
    functionName: _PyEval_ImportNameWithImport
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyLong_AsInt
    - PyObject_Vectorcall
    - _PyImport_IsDefaultImportFunc
    - _PyErr_Occurred
    - PyImport_ImportModuleLevelObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyEval_ImportNameWithImport(PyThreadState *tstate, PyObject
      *import_func,\n                             PyObject *globals, PyObject *locals,\n
      \                            PyObject *name, PyObject *fromlist, PyObject *level)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3013,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3013,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3019,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3019,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/ceval.c:3023,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3024,1
    - Dst: _PyImport_GetAbsName
      Src: /src/cpython/Python/ceval.c:3028,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/ceval.c:3033,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3035,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3036,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - tstate
    - globals
    - name
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3018
        line_start: 3018
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3038
      start: 3002
    functionDepth: 9
    functionLinenumber: 3002
    functionLinenumberEnd: 3038
    functionName: check_lazy_import_compatibility
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    - PyLong_AsInt
    - _PyErr_Occurred
    - PyErr_Occurred
    - assert
    - _PyImport_GetAbsName
    - Py_XDECREF
    - PyMapping_GetOptionalItem
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: "int check_lazy_import_compatibility(PyThreadState *tstate, PyObject
      *globals,\n                               PyObject *name, PyObject *level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/ceval.c:3043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3045
      start: 3040
    functionDepth: 2
    functionLinenumber: 3040
    functionLinenumberEnd: 3045
    functionName: is_lazy_import_module_level
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetFrame
    linkageType: ''
    returnType: int
    signature: int is_lazy_import_module_level(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetLazyImportsMode
      Src: /src/cpython/Python/ceval.c:3054,1
    - Dst: is_lazy_import_module_level
      Src: /src/cpython/Python/ceval.c:3057,1
    - Dst: is_lazy_import_module_level
      Src: /src/cpython/Python/ceval.c:3068,1
    - Dst: check_lazy_import_compatibility
      Src: /src/cpython/Python/ceval.c:3069,1
    - Dst: _PyEval_ImportName
      Src: /src/cpython/Python/ceval.c:3079,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3084,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3084,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3089,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3089,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3090,1
    - Dst: _PyImport_IsDefaultLazyImportFunc
      Src: /src/cpython/Python/ceval.c:3099,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/ceval.c:3100,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3101,1
    - Dst: _PyImport_LazyImportModuleLevelObject
      Src: /src/cpython/Python/ceval.c:3105,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/ceval.c:3112,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3114,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 8
    argNames:
    - tstate
    - builtins
    - globals
    - locals
    - name
    - fromlist
    - level
    - lazy
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3088
        line_start: 3088
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3116
      start: 3047
    functionDepth: 10
    functionLinenumber: 3047
    functionLinenumberEnd: 3116
    functionName: _PyEval_LazyImportName
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyImport_IsDefaultLazyImportFunc
    - _PyEval_ImportName
    - _PyImport_LazyImportModuleLevelObject
    - check_lazy_import_compatibility
    - PyLong_AsInt
    - PyObject_Vectorcall
    - _PyErr_SetString
    - PyMapping_GetOptionalItem
    - PyImport_GetLazyImportsMode
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - is_lazy_import_module_level
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyEval_LazyImportName(PyThreadState *tstate, PyObject
      *builtins,\n                       PyObject *globals, PyObject *locals, PyObject
      *name,\n                       PyObject *fromlist, PyObject *level, int lazy)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:3124,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:3130,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3130,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ceval.c:3133,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/ceval.c:3134,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3139,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/ceval.c:3142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3143,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3147,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/ceval.c:3152,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3160,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3161,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/ceval.c:3164,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3165,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3169,1
    - Dst: _PyModuleSpec_GetFileOrigin
      Src: /src/cpython/Python/ceval.c:3175,1
    - Dst: _PyModule_IsPossiblyShadowing
      Src: /src/cpython/Python/ceval.c:3179,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/ceval.c:3186,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Python/ceval.c:3189,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/ceval.c:3190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3192,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3196,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/ceval.c:3199,1
    - Dst: PyModule_GetFilenameObject
      Src: /src/cpython/Python/ceval.c:3202,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:3204,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/ceval.c:3208,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3210,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ceval.c:3210,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3214,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3215,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/cpython/Python/ceval.c:3224,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3230,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3233,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3241,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3248,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3256,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3258,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3264,1
    - Dst: _PyErr_SetImportErrorWithNameFrom
      Src: /src/cpython/Python/ceval.c:3275,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3276,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3280,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3282,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 120
    argCount: 3
    argNames:
    - tstate
    - v
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (origin)
      pos:
        line_end: 3229
        line_start: 3229
        source_file: /src/cpython/Python/ceval.c
    - condition: (origin == NULL || PyUnicode_Check(origin))
      pos:
        line_end: 3209
        line_start: 3209
        source_file: /src/cpython/Python/ceval.c
    - condition: (rc == 0)
      pos:
        line_end: 3255
        line_start: 3255
        source_file: /src/cpython/Python/ceval.c
    - condition: (mod_name_or_unknown)
      pos:
        line_end: 3159
        line_start: 3159
        source_file: /src/cpython/Python/ceval.c
    - condition: (mod_name == NULL || mod_name == mod_name_or_unknown)
      pos:
        line_end: 3160
        line_start: 3160
        source_file: /src/cpython/Python/ceval.c
    - condition: (origin)
      pos:
        line_end: 3213
        line_start: 3213
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3284
      start: 3118
    functionDepth: 10
    functionLinenumber: 3118
    functionLinenumberEnd: 3284
    functionName: _PyEval_ImportFrom
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyModule_GetFilenameObject
    - assert
    - _PyModuleSpec_GetFileOrigin
    - PyUnicode_FromString
    - PySys_GetOptionalAttrString
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - Py_XDECREF
    - _PyErr_SetImportErrorWithNameFrom
    - PyModule_Check
    - PyAnySet_Check
    - _PyModuleSpec_IsInitializing
    - Py_DECREF
    - _PyModule_IsPossiblyShadowing
    - _PyErr_Occurred
    - PyUnicode_FromFormat
    - Py_CLEAR
    - PyImport_GetModule
    - PySet_Contains
    - _PyErr_Clear
    - PyErr_ExceptionMatches
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_ImportFrom(PyThreadState *tstate, PyObject *v, PyObject *name)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3289,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/ceval.c:3289,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3290,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3291,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ceval.c:3291,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/ceval.c:3294,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/ceval.c:3298,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/ceval.c:3299,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/ceval.c:3301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3311,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/ceval.c:3315,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/ceval.c:3316,1
    - Dst: _PyLazyImport_New
      Src: /src/cpython/Python/ceval.c:3321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3322,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/ceval.c:3327,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/ceval.c:3328,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/ceval.c:3331,1
    - Dst: _PyLazyImport_New
      Src: /src/cpython/Python/ceval.c:3335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3336,1
    - Dst: _PyLazyImport_New
      Src: /src/cpython/Python/ceval.c:3340,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - tstate
    - frame
    - v
    - name
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (name)
      pos:
        line_end: 3289
        line_start: 3289
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyLazyImport_CheckExact(v))
      pos:
        line_end: 3288
        line_start: 3288
        source_file: /src/cpython/Python/ceval.c
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 3290
        line_start: 3290
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3342
      start: 3286
    functionDepth: 10
    functionLinenumber: 3286
    functionLinenumberEnd: 3342
    functionName: _PyEval_LazyImportFrom
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyUnicode_Check
    - PyModule_Check
    - PyModule_GetDict
    - PyUnicode_FromFormat
    - PyImport_GetModule
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - PyLazyImport_CheckExact
    - PyUnicode_GET_LENGTH
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - _PyLazyImport_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_LazyImportFrom(PyThreadState *tstate, _PyInterpreterFrame *frame, PyObject
      *v, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/ceval.c:3353,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:3355,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:3357,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/ceval.c:3358,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3359,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/ceval.c:3366,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - tstate
    - right
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3350
    functionDepth: 1
    functionLinenumber: 3350
    functionLinenumberEnd: 3373
    functionName: _PyEval_CheckExceptTypeValid
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - PyExceptionClass_Check
    - _PyErr_SetString
    - PyTuple_Check
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int _PyEval_CheckExceptTypeValid(PyThreadState *tstate, PyObject* right)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_CheckExceptTypeValid
      Src: /src/cpython/Python/ceval.c:3378,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/ceval.c:3385,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/ceval.c:3386,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:3388,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/ceval.c:3389,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/ceval.c:3399,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - tstate
    - right
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3410
      start: 3375
    functionDepth: 7
    functionLinenumber: 3375
    functionLinenumberEnd: 3410
    functionName: _PyEval_CheckExceptStarTypeValid
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyErr_SetString
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - _PyEval_CheckExceptTypeValid
    - PyObject_IsSubclass
    linkageType: ''
    returnType: int
    signature: int _PyEval_CheckExceptStarTypeValid(PyThreadState *tstate, PyObject*
      right)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3415,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/ceval.c:3415,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3416,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - func
    - args
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3412
    functionDepth: 2
    functionLinenumber: 3412
    functionLinenumberEnd: 3422
    functionName: _Py_Check_ArgsIterable
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 4
    functionsReached:
    - PySequence_Check
    - _PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_Check_ArgsIterable(PyThreadState *tstate, PyObject *func, PyObject
      *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_FunctionStr
      Src: /src/cpython/Python/ceval.c:3428,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3429,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/ceval.c:3433,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:3442,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval.c:3443,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/ceval.c:3444,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3444,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3450,1
    - Dst: _PyErr_ChainExceptions1Tstate
      Src: /src/cpython/Python/ceval.c:3453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - tstate
    - func
    - kwargs
    - dupkey
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3424
    functionDepth: 5
    functionLinenumber: 3424
    functionLinenumberEnd: 3456
    functionName: _PyEval_FormatKwargsError
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyErr_Format
    - PyObject_HasAttrWithError
    - _PyErr_ExceptionMatches
    - _PyErr_GetRaisedException
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_FunctionStr
    - _PyErr_ChainExceptions1Tstate
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void _PyEval_FormatKwargsError(PyThreadState *tstate, PyObject *func,
      PyObject *kwargs, PyObject *dupkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/ceval.c:3467,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3471,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval.c:3475,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/ceval.c:3476,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/ceval.c:3480,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3480,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/ceval.c:3483,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: 3485
      start: 3458
    functionDepth: 6
    functionLinenumber: 3458
    functionLinenumberEnd: 3485
    functionName: _PyEval_FormatExcCheckArg
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 5
    functionsReached:
    - _PyErr_Format
    - PyErr_GivenExceptionMatches
    - PyObject_SetAttr
    - PyUnicode_AsUTF8
    - PyErr_SetRaisedException
    - PyErr_GetRaisedException
    - _Py_ID
    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:3492,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/ceval.c:3494,1
    - Dst: PyUnstable_Code_GetFirstFree
      Src: /src/cpython/Python/ceval.c:3495,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3496,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tstate
    - co
    - oparg
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3487
    functionDepth: 7
    functionLinenumber: 3487
    functionLinenumberEnd: 3502
    functionName: _PyEval_FormatExcUnbound
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    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:3509,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/ceval.c:3515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - tstate
    - type
    - oparg
    argTypes:
    - PyThreadState*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3504
    functionDepth: 1
    functionLinenumber: 3504
    functionLinenumberEnd: 3521
    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:3527,1
    - Dst: FT_MUTEX_LOCK
      Src: /src/cpython/Python/ceval.c:3532,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval.c:3537,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELEASE
      Src: /src/cpython/Python/ceval.c:3546,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval.c:3549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - free
    argTypes:
    - freefunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3552
      start: 3524
    functionDepth: 1
    functionLinenumber: 3524
    functionLinenumberEnd: 3552
    functionName: PyUnstable_Eval_RequestCodeExtraIndex
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - FT_MUTEX_UNLOCK
    - FT_MUTEX_LOCK
    - FT_ATOMIC_STORE_SSIZE_RELEASE
    - _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:3559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - where
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3557
    functionDepth: 1
    functionLinenumber: 3557
    functionLinenumberEnd: 3560
    functionName: Py_EnterRecursiveCall
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 19
    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:3564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3565
      start: 3562
    functionDepth: 1
    functionLinenumber: 3562
    functionLinenumberEnd: 3565
    functionName: Py_LeaveRecursiveCall
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 20
    functionsReached:
    - _Py_LeaveRecursiveCall
    linkageType: ''
    returnType: void
    signature: void Py_LeaveRecursiveCall(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3572,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Python/ceval.c:3573,1
    - Dst: PyTypeObject*::tp_as_async::am_anext
      Src: /src/cpython/Python/ceval.c:3574,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ceval.c:3587,1
    - Dst: _PyCoro_GetAwaitableIter
      Src: /src/cpython/Python/ceval.c:3594,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/cpython/Python/ceval.c:3596,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3602,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - aiter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3567
    functionDepth: 4
    functionLinenumber: 3567
    functionLinenumberEnd: 3604
    functionName: _PyEval_GetANext
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyAsyncGen_CheckExact
    - _PyCoro_GetAwaitableIter
    - PyErr_Format
    - Py_DECREF
    - PyTypeObject*::tp_as_async::am_anext
    - Py_TYPE
    - _PyErr_FormatFromCause
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetANext(PyObject *aiter)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Python/ceval.c:3609,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Python/ceval.c:3609,1
    - Dst: _PyDict_LoadGlobalStackRef
      Src: /src/cpython/Python/ceval.c:3610,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/ceval.c:3613,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3613,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3616,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3616,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3624,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3630,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3635,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3636,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:3642,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:3645,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/ceval.c:3646,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Python/ceval.c:3647,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3647,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/ceval.c:3648,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3650,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3650,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/ceval.c:3654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval.c:3656,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:3660,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - globals
    - builtins
    - name
    - writeto
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - _PyStackRef*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 3649
        line_start: 3649
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3662
      start: 3606
    functionDepth: 10
    functionLinenumber: 3606
    functionLinenumberEnd: 3662
    functionName: _PyEval_LoadGlobalStackRef
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyImport_LoadLazyImportTstate
    - _PyEval_FormatExcCheckArg
    - PyAnyDict_CheckExact
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_CLOSE
    - PyThreadState_GET
    - PyDict_SetItem
    - PyLazyImport_CheckExact
    - PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyDict_LoadGlobalStackRef
    - Py_DECREF
    - PyMapping_GetOptionalItem
    - PyStackRef_IsNull
    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:3667,1
    - Dst: _PyEval_FormatAwaitableError
      Src: /src/cpython/Python/ceval.c:3670,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3670,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3671,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/ceval.c:3673,1
    - Dst: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Python/ceval.c:3675,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/ceval.c:3680,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/ceval.c:3681,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/ceval.c:3681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - iterable
    - oparg
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3664
    functionDepth: 4
    functionLinenumber: 3664
    functionLinenumberEnd: 3686
    functionName: _PyEval_GetAwaitable
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyCoro_CheckExact
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - _PyCoro_GetAwaitableIter
    - _PyErr_SetString
    - PyThreadState_GET
    - _PyEval_FormatAwaitableError
    - Py_CLEAR
    - 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:3694,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3698,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/ceval.c:3704,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/ceval.c:3710,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/ceval.c:3714,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - tstate
    - frame
    - name
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3688
    functionDepth: 9
    functionLinenumber: 3688
    functionLinenumberEnd: 3719
    functionName: _PyEval_LoadName
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyDict_GetItemRef
    - _PyEval_FormatExcCheckArg
    - _PyErr_SetString
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_LoadName(PyThreadState *tstate, _PyInterpreterFrame *frame, PyObject
      *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/ceval.c:3723,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/ceval.c:3725,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/ceval.c:3726,1
    - Dst: assert
      Src: /src/cpython/Python/ceval.c:3727,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3728,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/ceval.c:3734,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:3735,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3737,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3739,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/ceval.c:3740,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/ceval.c:3741,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/ceval.c:3742,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/ceval.c:3750,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - tstate
    - frame
    - iter
    - index_ptr
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _PyStackRef
    - _PyStackRef*
    assertStmts:
    - condition: (i >= 0)
      pos:
        line_end: 3726
        line_start: 3726
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3751
      start: 3721
    functionDepth: 2
    functionLinenumber: 3721
    functionLinenumberEnd: 3751
    functionName: _PyForIter_VirtualIteratorNext
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyEval_MonitorRaise
    - PyStackRef_IsTaggedInt
    - _PyErr_Occurred
    - _PyErr_ExceptionMatches
    - PyStackRef_TagInt
    - _PyErr_Clear
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - Py_TYPE
    - PyStackRef_UntagInt
    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:3758,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ceval.c:3758,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/ceval.c:3759,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/ceval.c:3760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cls
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3757
        line_start: 3757
        source_file: /src/cpython/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3761
      start: 3754
    functionDepth: 3
    functionLinenumber: 3754
    functionLinenumberEnd: 3761
    functionName: type_has_special_method
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyType_Lookup
    - PyErr_Occurred
    - 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:3766,1
    - Dst: type_has_special_method
      Src: /src/cpython/Python/ceval.c:3770,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3770,1
    - Dst: type_has_special_method
      Src: /src/cpython/Python/ceval.c:3771,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3771,1
    - Dst: type_has_special_method
      Src: /src/cpython/Python/ceval.c:3775,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3775,1
    - Dst: type_has_special_method
      Src: /src/cpython/Python/ceval.c:3776,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval.c:3776,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval.c:3779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - oparg
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3781
      start: 3763
    functionDepth: 4
    functionLinenumber: 3763
    functionLinenumberEnd: 3781
    functionName: _PyEval_SpecialMethodCanSuggest
    functionSourceFile: /src/cpython/Python/ceval.c
    functionUses: 1
    functionsReached:
    - Py_FatalError
    - type_has_special_method
    - Py_TYPE
    - _Py_ID
    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: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    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: 77
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 77
    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:93,1
    - Dst: _Py_ALIGN_UP
      Src: /src/cpython/Python/qsbr.c:97,1
    - Dst: memcpy
      Src: /src/cpython/Python/qsbr.c:101,1
    - Dst: initialize_new_array
      Src: /src/cpython/Python/qsbr.c:108,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/qsbr.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: grow_thread_array
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - _Py_ALIGN_UP
    - PyMem_RawCalloc
    - initialize_new_array
    - PyMem_RawFree
    - memcpy
    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:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    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:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    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:135,1
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Python/qsbr.c:138,1
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Python/qsbr.c:143,1
    - Dst: QSBR_LT
      Src: /src/cpython/Python/qsbr.c:144,1
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Python/qsbr.c:150,1
    - Dst: QSBR_LT
      Src: /src/cpython/Python/qsbr.c:151,1
    - Dst: _Py_atomic_compare_exchange_uint64
      Src: /src/cpython/Python/qsbr.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - shared
    argTypes:
    - struct _qsbr_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: qsbr_poll_scan
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - QSBR_LT
    - _Py_atomic_compare_exchange_uint64
    - _Py_atomic_fence_seq_cst
    - _Py_atomic_load_uint64
    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:163,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/qsbr.c:163,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/qsbr.c:163,1
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:164,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/qsbr.c:164,1
    - Dst: _Py_qbsr_goal_reached
      Src: /src/cpython/Python/qsbr.c:166,1
    - Dst: FT_STAT_QSBR_POLL_INC
      Src: /src/cpython/Python/qsbr.c:169,1
    - Dst: qsbr_poll_scan
      Src: /src/cpython/Python/qsbr.c:170,1
    - Dst: QSBR_LEQ
      Src: /src/cpython/Python/qsbr.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    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: 162
        line_start: 162
        source_file: /src/cpython/Python/qsbr.c
    - condition: (((_PyThreadStateImpl *)_PyThreadState_GET())->qsbr == qsbr)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: _Py_qsbr_poll
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 3
    functionsReached:
    - QSBR_LEQ
    - FT_STAT_QSBR_POLL_INC
    - _Py_qbsr_goal_reached
    - _PyThreadState_GET
    - qsbr_poll_scan
    - assert
    - _Py_atomic_load_int_relaxed
    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:177,1
    - Dst: _Py_qsbr_shared_current
      Src: /src/cpython/Python/qsbr.c:179,1
    - Dst: _Py_atomic_store_uint64
      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 attached")
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 181
    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:186,1
    - Dst: _Py_atomic_store_uint64_release
      Src: /src/cpython/Python/qsbr.c:188,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: 185
        line_start: 185
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: _Py_qsbr_detach
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uint64_release
    - assert
    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:196,1
    - Dst: qsbr_allocate
      Src: /src/cpython/Python/qsbr.c:198,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/qsbr.c:203,1
    - Dst: grow_thread_array
      Src: /src/cpython/Python/qsbr.c:204,1
    - Dst: qsbr_allocate
      Src: /src/cpython/Python/qsbr.c:205,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/qsbr.c:207,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/qsbr.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 218
    functionName: _Py_qsbr_reserve
    functionSourceFile: /src/cpython/Python/qsbr.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - _PyEval_StartTheWorld
    - qsbr_allocate
    - grow_thread_array
    - _PyEval_StopTheWorld
    - PyMutex_Lock
    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:227,1
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:229,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/qsbr.c:232,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: 228
        line_start: 228
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 233
    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:244,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/qsbr.c:246,1
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:252,1
    - Dst: assert
      Src: /src/cpython/Python/qsbr.c:253,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/qsbr.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!tstate->holds_gil)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Python/qsbr.c
    - condition: (qsbr->seq == 0 && "thread state must be detached")
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/cpython/Python/qsbr.c
    - condition: (qsbr->allocated && qsbr->tstate == tstate)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/cpython/Python/qsbr.c
    constantsTouched: []
    func_position:
      end: 261
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 261
    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:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    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:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 291
    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:84,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Python/traceback.c:85,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/traceback.c:86,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/traceback.c:89,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/traceback.c:91,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/traceback.c:92,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/traceback.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - next
    - frame
    - lasti
    - lineno
    argTypes:
    - PyTracebackObject*
    - PyFrameObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: tb_create_raw
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyFrame_Check
    - PyErr_BadInternalCall
    - PyTraceBack_Check
    - Py_XNewRef
    - PyObject_GC_Track
    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:119,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/traceback.c:120,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/traceback.c:122,1
    - Dst: tb_create_raw
      Src: /src/cpython/Python/traceback.c:125,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: 127
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: tb_new_impl
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyTraceBack_Check
    - tb_create_raw
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntb_new_impl(PyTypeObject *type, PyObject *tb_next, PyFrameObject
      *tb_frame,\n            int tb_lasti, int tb_lineno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/traceback.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    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:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTracebackObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 151
    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:156,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:158,1
    - Dst: PyCode_Addr2Line
      Src: /src/cpython/Python/traceback.c:159,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/traceback.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: tb_get_lineno
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - assert
    - PyCode_Addr2Line
    - _PyFrame_GetCode
    - _PyTracebackObject_CAST
    linkageType: ''
    returnType: int
    signature: int tb_get_lineno(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTracebackObject_CAST
      Src: /src/cpython/Python/traceback.c:165,1
    - Dst: tb_get_lineno
      Src: /src/cpython/Python/traceback.c:168,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/traceback.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(_)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 174
    functionName: tb_lineno_get
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - tb_get_lineno
    - PyLong_FromLong
    - _PyTracebackObject_CAST
    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:187,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/traceback.c:195,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/traceback.c:196,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/traceback.c:198,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/traceback.c:204,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/traceback.c:207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:208,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/traceback.c:211,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/traceback.c:212,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/traceback.c:213,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/traceback.c:214,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/traceback.c:217,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/traceback.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyTracebackObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 220
    functionName: traceback_tb_next_set_impl
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - Py_XSETREF
    - Py_XNewRef
    - Py_SETREF
    - PyErr_Format
    - Py_DECREF
    - PyTraceBack_Check
    - Py_TYPE
    - Py_XINCREF
    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:243,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/traceback.c:244,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:245,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:246,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Python/traceback.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: tb_dealloc
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_XDECREF
    - _PyTracebackObject_CAST
    linkageType: ''
    returnType: void
    signature: void tb_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTracebackObject_CAST
      Src: /src/cpython/Python/traceback.c:253,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/traceback.c:254,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/traceback.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: tb_traverse
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _PyTracebackObject_CAST
    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:262,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/traceback.c:263,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/traceback.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: tb_clear
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyTracebackObject_CAST
    linkageType: ''
    returnType: int
    signature: int tb_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:313,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/traceback.c:313,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:314,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Python/traceback.c:315,1
    - Dst: tb_create_raw
      Src: /src/cpython/Python/traceback.c:316,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: 312
        line_start: 312
        source_file: /src/cpython/Python/traceback.c
    - condition: (frame != NULL)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 317
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 317
    functionName: _PyTraceBack_FromFrame
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterFrame_LASTI
    - PyTraceBack_Check
    - tb_create_raw
    - 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:323,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:324,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/traceback.c:324,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/traceback.c:325,1
    - Dst: _PyTraceBack_FromFrame
      Src: /src/cpython/Python/traceback.c:326,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:327,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/traceback.c:329,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/traceback.c:332,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:333,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/traceback.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: PyTraceBack_Here
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 1
    functionsReached:
    - _PyTraceBack_FromFrame
    - PyException_SetTraceback
    - _PyErr_ChainExceptions1
    - PyException_GetTraceback
    - PyErr_SetRaisedException
    - Py_XDECREF
    - assert
    - PyErr_GetRaisedException
    - PyExceptionInstance_Check
    linkageType: ''
    returnType: int
    signature: int PyTraceBack_Here(PyFrameObject *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/traceback.c:344,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/traceback.c:349,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/traceback.c:351,1
    - Dst: PyCode_NewEmpty
      Src: /src/cpython/Python/traceback.c:354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:356,1
    - Dst: PyFrame_New
      Src: /src/cpython/Python/traceback.c:359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:361,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/traceback.c:366,1
    - Dst: PyTraceBack_Here
      Src: /src/cpython/Python/traceback.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:368,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/traceback.c:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - funcname
    - filename
    - lineno
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 339
    functionDepth: 17
    functionLinenumber: 339
    functionLinenumberEnd: 373
    functionName: _PyTraceback_Add
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached:
    - PyFrame_New
    - PyCode_NewEmpty
    - _PyErr_ChainExceptions1
    - _PyErr_SetRaisedException
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - Py_DECREF
    - PyTraceBack_Here
    - PyDict_New
    linkageType: ''
    returnType: void
    signature: void _PyTraceback_Add(const char *funcname, const char *filename, int
      lineno)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/traceback.c:392,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:394,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/traceback.c:397,1
    - Dst: strrchr
      Src: /src/cpython/Python/traceback.c:400,1
    - Dst: strlen
      Src: /src/cpython/Python/traceback.c:405,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/traceback.c:407,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/traceback.c:408,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:408,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:409,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/traceback.c:412,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/traceback.c:415,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/traceback.c:417,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:417,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/traceback.c:422,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:424,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:427,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/traceback.c:429,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:431,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/traceback.c:434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:436,1
    - Dst: strcpy
      Src: /src/cpython/Python/traceback.c:439,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/traceback.c:439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:440,1
    - Dst: strlen
      Src: /src/cpython/Python/traceback.c:441,1
    - Dst: strcpy
      Src: /src/cpython/Python/traceback.c:445,1
    - Dst: _PyObject_CallMethodFormat
      Src: /src/cpython/Python/traceback.c:447,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:452,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:459,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:461,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 4
    argNames:
    - filename
    - namebuf
    - namelen
    - io
    argTypes:
    - PyObject*
    - char*
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 375
    functionDepth: 5
    functionLinenumber: 375
    functionLinenumberEnd: 463
    functionName: _Py_FindSourceFile
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - strrchr
    - PyList_GetItem
    - strcpy
    - PyUnicode_EncodeFSDefault
    - _PyObject_CallMethodFormat
    - PySys_GetOptionalAttr
    - PyObject_GetAttr
    - PyUnicode_Check
    - _PyThreadState_GET
    - PyErr_Clear
    - PyList_Check
    - strlen
    - PyBytes_AS_STRING
    - PyList_Size
    - Py_XDECREF
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _Py_ID
    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:471,1
    - Dst: strlen
      Src: /src/cpython/Python/traceback.c:471,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/traceback.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - indent
    - f
    argTypes:
    - int
    - PyObject*
    assertStmts:
    - condition: (strlen(buf) == 10)
      pos:
        line_end: 470
        line_start: 470
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 6
    functionLinenumber: 467
    functionLinenumberEnd: 482
    functionName: _Py_WriteIndent
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteString
    - strlen
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_WriteIndent(int indent, PyObject *f)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:506,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:506,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/traceback.c:507,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/traceback.c:508,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/traceback.c:509,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/traceback.c:514,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/traceback.c:519,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:519,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:521,1
    - Dst: _Py_FindSourceFile
      Src: /src/cpython/Python/traceback.c:523,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:525,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/cpython/Python/traceback.c:531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:534,1
    - Dst: _PyTokenizer_FindEncodingFilename
      Src: /src/cpython/Python/traceback.c:537,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:539,1
    - Dst: lseek
      Src: /src/cpython/Python/traceback.c:542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:544,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/traceback.c:545,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/traceback.c:548,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:550,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/traceback.c:551,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:554,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/traceback.c:556,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:559,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:564,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:568,1
    - Dst: PyFile_GetLine
      Src: /src/cpython/Python/traceback.c:569,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:571,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/traceback.c:575,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/traceback.c:575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:577,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:582,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:583,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:584,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/traceback.c:589,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/traceback.c:593,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/traceback.c:594,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/traceback.c:595,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/traceback.c:596,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/traceback.c:602,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/traceback.c:602,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/traceback.c:604,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:606,1
    - Dst: _Py_WriteIndent
      Src: /src/cpython/Python/traceback.c:615,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/traceback.c:620,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/traceback.c:624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:628,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:631,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: 505
        line_start: 505
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 633
      start: 484
    functionDepth: 8
    functionLinenumber: 484
    functionLinenumberEnd: 633
    functionName: display_source_line
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - _PyTokenizer_FindEncodingFilename
    - assert
    - PyUnicode_READ_CHAR
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_Check
    - _Py_FindSourceFile
    - _Py_WriteIndent
    - PyObject_AsFileDescriptor
    - _PyObject_CallMethod
    - PyMem_Free
    - Py_XDECREF
    - PyUnicode_Substring
    - PyUnicode_READ
    - PyErr_Clear
    - lseek
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyFile_WriteString
    - PyFile_GetLine
    - Py_NewRef
    - PyFile_WriteObject
    - Py_SETREF
    - PyUnicode_GET_LENGTH
    - _Py_ID
    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:639,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: 640
      start: 635
    functionDepth: 9
    functionLinenumber: 635
    functionLinenumberEnd: 640
    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: 644
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 644
    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:648,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/traceback.c:649,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/traceback.c:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 655
    functionName: ignore_source_errors
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int ignore_source_errors(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/traceback.c:665,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/traceback.c:671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:672,1
    - Dst: display_source_line
      Src: /src/cpython/Python/traceback.c:681,1
    - Dst: ignore_source_errors
      Src: /src/cpython/Python/traceback.c:686,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:688,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: 690
      start: 657
    functionDepth: 10
    functionLinenumber: 657
    functionLinenumberEnd: 690
    functionName: tb_displayline
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - display_source_line
    - PyUnicode_FromFormat
    - ignore_source_errors
    - Py_XDECREF
    - Py_DECREF
    - 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:698,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/traceback.c:706,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - f
    - cnt
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 694
    functionDepth: 10
    functionLinenumber: 694
    functionLinenumberEnd: 709
    functionName: tb_print_line_repeated
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyFile_WriteObject
    - PyUnicode_FromFormat
    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:730,1
    - Dst: tb_get_lineno
      Src: /src/cpython/Python/traceback.c:733,1
    - Dst: tb_print_line_repeated
      Src: /src/cpython/Python/traceback.c:740,1
    - Dst: tb_displayline
      Src: /src/cpython/Python/traceback.c:751,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/traceback.c:756,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/traceback.c:760,1
    - Dst: tb_print_line_repeated
      Src: /src/cpython/Python/traceback.c:764,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:770,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 3
    argNames:
    - tb
    - f
    - limit
    argTypes:
    - PyTracebackObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 711
    functionDepth: 11
    functionLinenumber: 711
    functionLinenumberEnd: 772
    functionName: tb_printinternal
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - tb_get_lineno
    - PyFrame_GetCode
    - PyErr_CheckSignals
    - Py_CLEAR
    - tb_displayline
    - Py_XDECREF
    - tb_print_line_repeated
    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:785,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/traceback.c:786,1
    - Dst: PySys_GetOptionalAttrString
      Src: /src/cpython/Python/traceback.c:789,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/traceback.c:792,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/traceback.c:794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/traceback.c:799,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/traceback.c:803,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/traceback.c:805,1
    - Dst: tb_printinternal
      Src: /src/cpython/Python/traceback.c:809,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - v
    - header
    - f
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 776
    functionDepth: 12
    functionLinenumber: 776
    functionLinenumberEnd: 814
    functionName: _PyTraceBack_Print
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PySys_GetOptionalAttrString
    - PyFile_WriteString
    - PyErr_BadInternalCall
    - PyLong_Check
    - Py_XDECREF
    - Py_DECREF
    - PyTraceBack_Check
    - tb_printinternal
    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:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - f
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 816
    functionDepth: 13
    functionLinenumber: 816
    functionLinenumberEnd: 821
    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:837,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:842,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - value
    argTypes:
    - int
    - size_t
    assertStmts:
    - condition: (ptr >= buffer)
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 848
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 848
    functionName: _Py_DumpDecimal
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _Py_write_noraise
    - Py_ARRAY_LENGTH
    - 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:856,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:867,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:880,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: 866
        line_start: 866
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 881
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 881
    functionName: dump_hexadecimal
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _Py_write_noraise
    - Py_ARRAY_LENGTH
    - 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:886,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: 887
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 887
    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:893,1
    - Dst: dump_hexadecimal
      Src: /src/cpython/Python/traceback.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - ptr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 895
    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:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - ch
    argTypes:
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 903
    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:908,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:915,1
    - Dst: _PyCompactUnicodeObject_CAST
      Src: /src/cpython/Python/traceback.c:924,1
    - Dst: _PyUnicodeObject_CAST
      Src: /src/cpython/Python/traceback.c:927,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:942,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:955,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/traceback.c:961,1
    - Dst: dump_char
      Src: /src/cpython/Python/traceback.c:964,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:967,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:968,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:971,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:972,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:975,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:976,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:982,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - fd
    - text
    argTypes:
    - int
    - PyObject*
    assertStmts:
    - condition: (kind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 941
        line_start: 941
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 984
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 984
    functionName: _Py_DumpASCII
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeObject_CAST
    - _Py_write_noraise
    - PyUnicode_READ
    - _PyCompactUnicodeObject_CAST
    - PyUnicode_Check
    - _Py_DumpHexadecimal
    - dump_char
    - assert
    - _PyASCIIObject_CAST
    - PUTS
    linkageType: ''
    returnType: void
    signature: void _Py_DumpASCII(int fd, PyObject *text)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/cpython/Python/traceback.c:991,1
    - Dst: dump_char
      Src: /src/cpython/Python/traceback.c:1005,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1008,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:1009,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/cpython/Python/traceback.c:1011,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/cpython/Python/traceback.c:1012,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/cpython/Python/traceback.c:1013,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1015,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:1016,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/cpython/Python/traceback.c:1019,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1020,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:1021,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1026,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fd
    - str
    argTypes:
    - int
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 988
    functionDepth: 3
    functionLinenumber: 988
    functionLinenumberEnd: 1028
    functionName: _Py_DumpWideString
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - Py_UNICODE_IS_LOW_SURROGATE
    - Py_BUILD_ASSERT
    - _Py_DumpHexadecimal
    - dump_char
    - PUTS
    - wcslen
    linkageType: ''
    returnType: void
    signature: void _Py_DumpWideString(int fd, wchar_t *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_SANITIZE_THREAD::_PyFrame_SafeGetCode
      Src: /src/cpython/Python/traceback.c:1046,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1052,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:1054,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1056,1
    - Dst: _Py_DumpASCII
      Src: /src/cpython/Python/traceback.c:1057,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1058,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1061,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1065,1
    - Dst: _Py_NO_SANITIZE_THREAD::_PyFrame_SafeGetLasti
      Src: /src/cpython/Python/traceback.c:1066,1
    - Dst: _PyCode_SafeAddr2Line
      Src: /src/cpython/Python/traceback.c:1069,1
    - Dst: _Py_DumpDecimal
      Src: /src/cpython/Python/traceback.c:1072,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1075,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1079,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/traceback.c:1080,1
    - Dst: _Py_DumpASCII
      Src: /src/cpython/Python/traceback.c:1081,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1084,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1087,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - fd
    - frame
    argTypes:
    - int
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1038
    functionDepth: 4
    functionLinenumber: 1038
    functionLinenumberEnd: 1089
    functionName: _Py_NO_SANITIZE_THREAD::dump_frame
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _Py_NO_SANITIZE_THREAD::_PyFrame_SafeGetLasti
    - _Py_DumpDecimal
    - PyUnicode_Check
    - _PyCode_SafeAddr2Line
    - _Py_DumpASCII
    - _Py_NO_SANITIZE_THREAD::_PyFrame_SafeGetCode
    - PUTS
    linkageType: ''
    returnType: int
    signature: 'int _Py_NO_SANITIZE_THREAD

      dump_frame(int fd, _PyInterpreterFrame *frame)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/traceback.c:1094,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/traceback.c:1097,1
    - Dst: _PyMem_IsULongFreed
      Src: /src/cpython/Python/traceback.c:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1104
    functionName: _Py_NO_SANITIZE_THREAD::tstate_is_freed
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyMem_IsULongFreed
    - _PyMem_IsPtrFreed
    linkageType: ''
    returnType: int
    signature: 'int _Py_NO_SANITIZE_THREAD

      tstate_is_freed(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/traceback.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1111
    functionName: _Py_NO_SANITIZE_THREAD::interp_is_freed
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyMem_IsPtrFreed
    linkageType: ''
    returnType: int
    signature: 'int _Py_NO_SANITIZE_THREAD

      interp_is_freed(PyInterpreterState *interp)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1118,1
    - Dst: _Py_NO_SANITIZE_THREAD::tstate_is_freed
      Src: /src/cpython/Python/traceback.c:1121,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1122,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1128,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1136,1
    - Dst: _Py_DumpDecimal
      Src: /src/cpython/Python/traceback.c:1137,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1138,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/traceback.c:1143,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1144,1
    - Dst: _Py_NO_SANITIZE_THREAD::dump_frame
      Src: /src/cpython/Python/traceback.c:1151,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1152,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - fd
    - tstate
    - write_header
    argTypes:
    - int
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1114
    functionDepth: 5
    functionLinenumber: 1114
    functionLinenumberEnd: 1162
    functionName: _Py_NO_SANITIZE_THREAD::dump_traceback
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _Py_DumpDecimal
    - _PyMem_IsPtrFreed
    - _Py_NO_SANITIZE_THREAD::tstate_is_freed
    - _Py_NO_SANITIZE_THREAD::dump_frame
    - PUTS
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_SANITIZE_THREAD

      dump_traceback(int fd, PyThreadState *tstate, int write_header)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_traceback
      Src: /src/cpython/Python/traceback.c:1173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - tstate
    argTypes:
    - int
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1175
    functionName: PyUnstable_DumpTraceback
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached:
    - dump_traceback
    linkageType: ''
    returnType: char
    signature: 'char *

      PyUnstable_DumpTraceback(int fd, PyThreadState *tstate)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getname_np
      Src: /src/cpython/Python/traceback.c:1198,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/traceback.c:1198,1
    - Dst: pthread_get_name_np
      Src: /src/cpython/Python/traceback.c:1201,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/traceback.c:1201,1
    - Dst: strlen
      Src: /src/cpython/Python/traceback.c:1204,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1206,1
    - Dst: _Py_write_noraise
      Src: /src/cpython/Python/traceback.c:1207,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1208,1
    - Dst: OpenThread
      Src: /src/cpython/Python/traceback.c:1218,1
    - Dst: pGetThreadDescription
      Src: /src/cpython/Python/traceback.c:1224,1
    - Dst: FAILED
      Src: /src/cpython/Python/traceback.c:1225,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1227,1
    - Dst: _Py_DumpWideString
      Src: /src/cpython/Python/traceback.c:1228,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1229,1
    - Dst: LocalFree
      Src: /src/cpython/Python/traceback.c:1231,1
    - Dst: CloseHandle
      Src: /src/cpython/Python/traceback.c:1233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - fd
    - tstate
    argTypes:
    - int
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1190
    functionDepth: 4
    functionLinenumber: 1190
    functionLinenumberEnd: 1235
    functionName: _Py_NO_SANITIZE_THREAD::write_thread_name
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - pthread_getname_np
    - _Py_write_noraise
    - FAILED
    - Py_ARRAY_LENGTH
    - pGetThreadDescription
    - _Py_DumpWideString
    - CloseHandle
    - pthread_get_name_np
    - strlen
    - OpenThread
    - LocalFree
    - PUTS
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_SANITIZE_THREAD

      write_thread_name(int fd, PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1247,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1249,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/cpython/Python/traceback.c:1250,1
    - Dst: _PyMem_IsULongFreed
      Src: /src/cpython/Python/traceback.c:1254,1
    - Dst: _Py_NO_SANITIZE_THREAD::write_thread_name
      Src: /src/cpython/Python/traceback.c:1255,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - tstate
    - is_current
    argTypes:
    - int
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1243
    functionDepth: 5
    functionLinenumber: 1243
    functionLinenumberEnd: 1259
    functionName: _Py_NO_SANITIZE_THREAD::write_thread_id
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyMem_IsULongFreed
    - _Py_DumpHexadecimal
    - PUTS
    - _Py_NO_SANITIZE_THREAD::write_thread_name
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_SANITIZE_THREAD

      write_thread_id(int fd, PyThreadState *tstate, int is_current)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_GetThisThreadState
      Src: /src/cpython/Python/traceback.c:1288,1
    - Dst: _Py_NO_SANITIZE_THREAD::tstate_is_freed
      Src: /src/cpython/Python/traceback.c:1291,1
    - Dst: _PyGILState_GetInterpreterStateUnsafe
      Src: /src/cpython/Python/traceback.c:1297,1
    - Dst: assert
      Src: /src/cpython/Python/traceback.c:1307,1
    - Dst: _Py_NO_SANITIZE_THREAD::interp_is_freed
      Src: /src/cpython/Python/traceback.c:1309,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/cpython/Python/traceback.c:1314,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1324,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1326,1
    - Dst: _Py_NO_SANITIZE_THREAD::tstate_is_freed
      Src: /src/cpython/Python/traceback.c:1330,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1331,1
    - Dst: _Py_NO_SANITIZE_THREAD::write_thread_id
      Src: /src/cpython/Python/traceback.c:1335,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1337,1
    - Dst: _Py_NO_SANITIZE_THREAD::dump_traceback
      Src: /src/cpython/Python/traceback.c:1339,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - fd
    - interp
    - current_tstate
    - max_threads
    argTypes:
    - int
    - PyInterpreterState*
    - PyThreadState*
    - Py_ssize_t
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 1306
        line_start: 1306
        source_file: /src/cpython/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 1347
      start: 1267
    functionDepth: 6
    functionLinenumber: 1267
    functionLinenumberEnd: 1347
    functionName: _Py_NO_SANITIZE_THREAD::PyUnstable_DumpTracebackThreads
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_ThreadHead
    - _Py_NO_SANITIZE_THREAD::write_thread_id
    - _Py_NO_SANITIZE_THREAD::interp_is_freed
    - _Py_NO_SANITIZE_THREAD::tstate_is_freed
    - _PyGILState_GetInterpreterStateUnsafe
    - assert
    - PyGILState_GetThisThreadState
    - _Py_NO_SANITIZE_THREAD::dump_traceback
    - PUTS
    linkageType: ''
    returnType: char
    signature: "char * _Py_NO_SANITIZE_THREAD\nPyUnstable_DumpTracebackThreads(int
      fd, PyInterpreterState *interp,\n                                PyThreadState
      *current_tstate,\n                                Py_ssize_t max_threads)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1324,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1326,1
    - Dst: tstate_is_freed
      Src: /src/cpython/Python/traceback.c:1330,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1331,1
    - Dst: write_thread_id
      Src: /src/cpython/Python/traceback.c:1335,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1337,1
    - Dst: dump_traceback
      Src: /src/cpython/Python/traceback.c:1339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1343
    functionName: do
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - dump_traceback
    - tstate_is_freed
    - PUTS
    - write_thread_id
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VLA
      Src: /src/cpython/Python/traceback.c:1354,1
    - Dst: dladdr
      Src: /src/cpython/Python/traceback.c:1359,1
    - Dst: dladdr1
      Src: /src/cpython/Python/traceback.c:1362,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1379,1
    - Dst: dump_pointer
      Src: /src/cpython/Python/traceback.c:1380,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1381,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1392,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1393,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1394,1
    - Dst: dump_pointer
      Src: /src/cpython/Python/traceback.c:1395,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1396,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1410,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1411,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1412,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1413,1
    - Dst: dump_char
      Src: /src/cpython/Python/traceback.c:1414,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1415,1
    - Dst: dump_hexadecimal
      Src: /src/cpython/Python/traceback.c:1416,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1417,1
    - Dst: dump_pointer
      Src: /src/cpython/Python/traceback.c:1418,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1419,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - fd
    - array
    - size
    argTypes:
    - int
    - void**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1351
    functionDepth: 3
    functionLinenumber: 1351
    functionLinenumberEnd: 1422
    functionName: _Py_backtrace_symbols_fd
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - dump_pointer
    - dladdr1
    - dump_hexadecimal
    - dump_char
    - VLA
    - PUTS
    - dladdr
    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:1428,1
    - Dst: backtrace
      Src: /src/cpython/Python/traceback.c:1430,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1433,1
    - Dst: _Py_backtrace_symbols_fd
      Src: /src/cpython/Python/traceback.c:1437,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1424
    functionDepth: 4
    functionLinenumber: 1424
    functionLinenumberEnd: 1443
    functionName: _Py_DumpStack
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 2
    functionsReached:
    - backtrace
    - _Py_backtrace_symbols_fd
    - PUTS
    linkageType: ''
    returnType: void
    signature: void _Py_DumpStack(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1448,1
    - Dst: PUTS
      Src: /src/cpython/Python/traceback.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1450
    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:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1461
    functionName: _Py_InitDumpStack
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 1
    functionsReached:
    - backtrace
    linkageType: ''
    returnType: void
    signature: void _Py_InitDumpStack(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/cpython/Python/traceback.c:1472,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/traceback.c:1474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1478
    functionName: _Py_DumpTraceback_Init
    functionSourceFile: /src/cpython/Python/traceback.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - GetModuleHandleW
    linkageType: ''
    returnType: void
    signature: void _Py_DumpTraceback_Init(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:
    - PyMutex_Unlock
    - get_bucket
    - _PyEval_StartTheWorld
    - find_thread_state
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - _Py_set_eval_breaker_bit
    - _Py_Dealloc
    - _PyObjectStack_Push
    - Py_DECREF
    - _Py_atomic_load_uintptr
    - PyMutex_Lock
    - _Py_ExplicitMergeRefcount
    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_Dealloc
    - _Py_ExplicitMergeRefcount
    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:
    - _PyObjectStack_Merge
    - PyMutex_Unlock
    - get_bucket
    - _Py_ThreadId
    - merge_queued_objects
    - assert
    - PyMutex_Lock
    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:
    - PyMutex_Unlock
    - get_bucket
    - llist_insert_tail
    - _Py_ThreadId
    - PyMutex_Lock
    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:
    - _PyObjectStack_Merge
    - PyMutex_Unlock
    - get_bucket
    - llist_remove
    - merge_queued_objects
    - assert
    - PyMutex_Lock
    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:
    - _Py_VISIT_STACKREF
    - _PyGC_VisitFrameStack
    - 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:
    - _PyFrame_New_NoTrack
    - _PyFrame_GetCode
    - PyErr_SetRaisedException
    - Py_XDECREF
    - assert
    - PyErr_GetRaisedException
    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: (!_PyFrame_IsIncomplete(new_frame))
      pos:
        line_end: 66
        line_start: 66
        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: (f->f_back == NULL)
      pos:
        line_end: 67
        line_start: 67
        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
    - condition: (frame->owner != FRAME_OWNED_BY_FRAME_OBJECT)
      pos:
        line_end: 51
        line_start: 51
        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
    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:
    - PyStackRef_DUP
    - _PyFrame_GetCode
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyObject_GC_TRACK
    - _PyFrame_GetBytecode
    - _PyFrame_GetFirstComplete
    - _PyFrame_IsIncomplete
    - PyErr_Clear
    - PyErr_GetRaisedException
    - PyErr_ExceptionMatches
    - PyErr_SetRaisedException
    - assert
    - _PyFrame_Copy
    - _PyObject_GC_IS_TRACKED
    - _PyFrame_GetFrameObject
    - Py_NewRef
    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:
    - Py_CLEAR
    - PyStackRef_XCLOSE
    - 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: FT_ATOMIC_LOAD_INT8_RELAXED
      Src: /src/cpython/Python/frame.c:112,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           FT_ATOMIC_LOAD_INT8_RELAXED(_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:
    - take_ownership
    - _PyGen_GetGeneratorFromFrame
    - FT_ATOMIC_LOAD_INT8_RELAXED
    - PyStackRef_CLEAR
    - _PyThreadState_GET
    - assert
    - Py_DECREF
    - _PyFrame_ClearLocals
    - _PyObject_IsUniquelyReferenced
    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:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - struct _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: _Py_NO_SANITIZE_THREAD::PyUnstable_InterpreterFrame_GetLasti
    functionSourceFile: /src/cpython/Python/frame.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterFrame_LASTI
    linkageType: ''
    returnType: int
    signature: 'int _Py_NO_SANITIZE_THREAD

      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:
    - _PyInterpreterFrame_LASTI
    - PyCode_Addr2Line
    - _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: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    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: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    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: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    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: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    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: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    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: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    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: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    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: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    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: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    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: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: LOCATION
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 39
    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: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    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: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    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: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    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:111,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: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    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:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - _Py_c_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 124
    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:136,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codegen.c:138,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codegen.c:152,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:156,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/codegen.c:157,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codegen.c:159,1
    - Dst: memset
      Src: /src/cpython/Python/codegen.c:164,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: 155
        line_start: 155
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 170
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 170
    functionName: _Py_CArray_EnsureCapacity
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - PyMem_Realloc
    - memset
    - 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:270,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:271,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/codegen.c:271,1
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/codegen.c:272,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: 270
        line_start: 270
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: codegen_addop_i
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - _PyInstructionSequence_Addop
    - IS_ASSEMBLER_OPCODE
    - assert
    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: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    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: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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:284,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/codegen.c:284,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:285,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/codegen.c:285,1
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/codegen.c:286,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: 283
        line_start: 283
        source_file: /src/cpython/Python/codegen.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: codegen_addop_noarg
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - IS_ASSEMBLER_OPCODE
    - OPCODE_HAS_ARG
    - _PyInstructionSequence_Addop
    - assert
    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: 291
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 291
    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: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    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:298,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - loc
    - o
    argTypes:
    - compiler*
    - location
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 304
    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: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    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: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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: 325
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 325
    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:330,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:331,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:332,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: 334
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: codegen_addop_o
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - RETURN_IF_ERROR
    - _PyCompile_DictAddObj
    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: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    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: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:363,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/codegen.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:368,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - c
    - loc
    - opcode
    - dict
    - o
    - shift
    - low
    argTypes:
    - compiler*
    - location
    - int
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 374
    functionName: codegen_addop_name_custom
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - ADDOP_I
    - _PyCompile_MaybeMangle
    - _PyCompile_DictAddObj
    linkageType: ''
    returnType: int
    signature: "int codegen_addop_name_custom(compiler *c, location loc, int opcode,\n
      \                         PyObject *dict, PyObject *o, int shift, int low)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: codegen_addop_name_custom
      Src: /src/cpython/Python/codegen.c:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - c
    - loc
    - opcode
    - dict
    - o
    argTypes:
    - compiler*
    - location
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 408
    functionName: codegen_addop_name
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_addop_name_custom
    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: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    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: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - C
    - ','
    - LOC
    - ','
    - OP
    - ','
    - O
    - ','
    - TYPE
    - ','
    - SHIFT
    - ','
    - LOW
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: ADDOP_NAME_CUSTOM
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_NAME_CUSTOM(C, LOC, OP, O, TYPE, SHIFT, LOW)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:420,1
    - Dst: IS_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:420,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:421,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/codegen.c:421,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:422,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/codegen.c:422,1
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/codegen.c:423,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: 419
        line_start: 419
        source_file: /src/cpython/Python/codegen.c
    - condition: (HAS_TARGET(opcode))
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/cpython/Python/codegen.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 424
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 424
    functionName: codegen_addop_j
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - HAS_TARGET
    - IS_ASSEMBLER_OPCODE
    - IS_JUMP_TARGET_LABEL
    - assert
    - _PyInstructionSequence_Addop
    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: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    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: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    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: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    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: 437
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 437
    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: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    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: 443
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 443
    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: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    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: 453
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: VISIT
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 267
    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: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    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: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    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: 468
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 468
    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:481,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:482,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:483,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 486
    functionName: codegen_call_exit_with_nones
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - ADDOP_LOAD_CONST
    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:491,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:492,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:493,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:495,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:496,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:499,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:500,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:501,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:502,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:503,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:505,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:506,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:508,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - c
    - loc
    - await
    argTypes:
    - compiler*
    - location
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 511
    functionName: codegen_add_yield_from
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - ADDOP_JUMP
    - 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:523,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:524,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 527
    functionName: codegen_pop_except_and_reraise
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - ADDOP
    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:549,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:551,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:552,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:558,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:560,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:564,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:569,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:571,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:572,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:576,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:578,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:588,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:590,1
    - Dst: ADDOP_I
      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:595,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:601,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:603,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:604,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:606,1
    - Dst: codegen_call_exit_with_nones
      Src: /src/cpython/Python/codegen.c:606,1
    - Dst: ADDOP_I
      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:610,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:611,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:613,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:622,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:625,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:627,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:628,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:630,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:631,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:631,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:632,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:632,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:638,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:640,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/codegen.c:644,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 89
    argCount: 4
    argNames:
    - c
    - ploc
    - info
    - preserve_tos
    argTypes:
    - compiler*
    - location*
    - fblockinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 645
    functionName: codegen_unwind_fblock
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - _PyCompile_PushFBlock
    - ADDOP_I
    - Py_UNREACHABLE
    - _PyCompile_PopFBlock
    - codegen_nameop
    - ADDOP
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    - ADD_YIELD_FROM
    - codegen_call_exit_with_nones
    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:652,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:657,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:667,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:668,1
    - Dst: codegen_unwind_fblock
      Src: /src/cpython/Python/codegen.c:668,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:669,1
    - Dst: codegen_unwind_fblock_stack
      Src: /src/cpython/Python/codegen.c:669,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:670,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:670,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: 673
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 673
    functionName: codegen_unwind_fblock_stack
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - codegen_unwind_fblock_stack
    - _PyCompile_PushFBlock
    - codegen_unwind_fblock
    - _PyCompile_Error
    - _PyCompile_PopFBlock
    - _PyCompile_TopFBlock
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: "int codegen_unwind_fblock_stack(compiler *c, location *ploc,\n                            int
      preserve_tos, fblockinfo **loop)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:680,1
    - Dst: _PyCompile_EnterScope
      Src: /src/cpython/Python/codegen.c:681,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:682,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:688,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:693,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:694,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:695,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:698,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    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: 703
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 703
    functionName: codegen_enter_scope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - SYMTABLE_ENTRY
    - ADDOP_I
    - _PyCompile_EnterScope
    - RETURN_IF_ERROR
    - ADDOP
    - LOCATION
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:712,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:713,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/codegen.c:717,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:722,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:722,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:723,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:724,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:725,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:726,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:727,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:728,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:729,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:730,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - c
    - loc
    - key
    - name
    argTypes:
    - compiler*
    - location
    - void*
    - PyObject*
    assertStmts:
    - condition: (!SYMTABLE_ENTRY(c)->ste_has_docstring)
      pos:
        line_end: 721
        line_start: 721
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 733
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 733
    functionName: codegen_setup_annotations_scope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - PyLong_FromLong
    - SYMTABLE_ENTRY
    - codegen_enter_scope
    - _Py_DECLARE_STR
    - ADDOP_I
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_JUMP
    - assert
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST_NEW
    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:738,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:739,1
    - Dst: PyObject_Size
      Src: /src/cpython/Python/codegen.c:750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:752,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/codegen.c:755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:757,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:760,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:760,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:760,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/codegen.c:762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:765,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/codegen.c:768,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:769,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/codegen.c:771,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:773,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:775,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 778
    functionName: codegen_leave_annotations_scope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyCompile_ExitScope
    - Py_SETREF
    - PyTuple_GetItem
    - _PyCompile_OptimizeAndAssemble
    - PyObject_Size
    - PyTuple_SET_ITEM
    - _Py_ID
    - Py_DECREF
    - RETURN_IF_ERROR
    - codegen_make_closure
    - Py_NewRef
    - PyTuple_New
    - ADDOP_IN_SCOPE
    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:784,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:786,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/codegen.c:786,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:787,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/codegen.c:787,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:789,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:792,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/cpython/Python/codegen.c:793,1
    - Dst: _PyCompile_Mangle
      Src: /src/cpython/Python/codegen.c:797,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:804,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:805,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/codegen.c:805,1
    - Dst: PyLong_AS_LONG
      Src: /src/cpython/Python/codegen.c:806,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:807,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:810,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:810,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:812,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:813,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:813,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:816,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:817,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:817,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:820,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:820,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:821,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:821,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:824,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:825,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:825,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:826,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:826,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:828,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:831,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: 804
        line_start: 804
        source_file: /src/cpython/Python/codegen.c
    - condition: (PyList_CheckExact(conditional_annotation_indices))
      pos:
        line_end: 785
        line_start: 785
        source_file: /src/cpython/Python/codegen.c
    - condition: (annotations_len == PyList_Size(conditional_annotation_indices))
      pos:
        line_end: 786
        line_start: 786
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 834
      start: 780
    functionDepth: 5
    functionLinenumber: 780
    functionLinenumberEnd: 834
    functionName: codegen_deferred_annotations_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyLong_AS_LONG
    - PyList_Size
    - PyList_GET_ITEM
    - ADDOP_JUMP
    - VISIT
    - assert
    - ADDOP_LOAD_CONST
    - PyLong_AsVoidPtr
    - USE_LABEL
    - ADDOP_NAME
    - ADDOP_I
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_LOAD_CONST_NEW
    - PyLong_CheckExact
    - LOC
    - _PyCompile_Mangle
    - ADDOP
    - PyList_CheckExact
    - PyList_GET_SIZE
    - _Py_ID
    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:841,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:843,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:847,1
    - Dst: _PyCompile_StartAnnotationSetup
      Src: /src/cpython/Python/codegen.c:850,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:860,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:861,1
    - Dst: codegen_setup_annotations_scope
      Src: /src/cpython/Python/codegen.c:863,1
    - Dst: codegen_deferred_annotations_body
      Src: /src/cpython/Python/codegen.c:867,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:874,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:876,1
    - Dst: codegen_leave_annotations_scope
      Src: /src/cpython/Python/codegen.c:876,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:877,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:877,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:879,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:879,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:883,1
    - Dst: _PyCompile_EndAnnotationSetup
      Src: /src/cpython/Python/codegen.c:883,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:888,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:889,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: 860
        line_start: 860
        source_file: /src/cpython/Python/codegen.c
    - condition: (conditional_annotation_indices == NULL)
      pos:
        line_end: 842
        line_start: 842
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 891
      start: 836
    functionDepth: 6
    functionLinenumber: 836
    functionLinenumberEnd: 891
    functionName: codegen_process_deferred_annotations
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_setup_annotations_scope
    - _PyCompile_ExitScope
    - _PyCompile_EndAnnotationSetup
    - _PyCompile_DeferredAnnotations
    - _PyCompile_StartAnnotationSetup
    - codegen_deferred_annotations_body
    - SCOPE_TYPE
    - RETURN_IF_ERROR
    - codegen_leave_annotations_scope
    - codegen_nameop
    - Py_XDECREF
    - assert
    - Py_DECREF
    - SYMTABLE_ENTRY
    - _Py_ID
    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:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 899
    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:907,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:908,1
    - Dst: ADDOP_N
      Src: /src/cpython/Python/codegen.c:909,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:909,1
    - Dst: codegen_body
      Src: /src/cpython/Python/codegen.c:911,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: 912
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 912
    functionName: _PyCodegen_Module
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_N
    - codegen_body
    - ADDOP_I
    - SYMTABLE_ENTRY
    - _Py_ID
    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:920,1
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:921,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:922,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:924,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/codegen.c:930,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:931,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:934,1
    - Dst: OPTIMIZATION_LEVEL
      Src: /src/cpython/Python/codegen.c:934,1
    - Dst: _PyCompile_CleanDoc
      Src: /src/cpython/Python/codegen.c:935,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:939,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:940,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:941,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:943,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:944,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:944,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:944,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:947,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:948,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:948,1
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:953,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:954,1
    - Dst: codegen_process_deferred_annotations
      Src: /src/cpython/Python/codegen.c:954,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: 933
        line_start: 933
        source_file: /src/cpython/Python/codegen.c
    - condition: (docstring)
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/cpython/Python/codegen.c
    - condition: (st->kind == Expr_kind)
      pos:
        line_end: 939
        line_start: 939
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 957
      start: 914
    functionDepth: 7
    functionLinenumber: 914
    functionLinenumberEnd: 957
    functionName: codegen_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - OPTIMIZATION_LEVEL
    - FUTURE_FEATURES
    - asdl_seq_GET
    - codegen_process_deferred_annotations
    - VISIT
    - _PyCompile_CleanDoc
    - LOC
    - _PyAST_GetDocString
    - ADDOP_LOAD_CONST
    - RETURN_IF_ERROR
    - codegen_nameop
    - assert
    - ADDOP
    - SYMTABLE_ENTRY
    - asdl_seq_LEN
    - Py_DECREF
    - _Py_ID
    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:962,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:963,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:964,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - mod
    argTypes:
    - compiler*
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 967
    functionName: _PyCodegen_EnterAnonymousScope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_enter_scope
    - RETURN_IF_ERROR
    - _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:974,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/codegen.c:979,1
    - Dst: _PyCompile_LookupArg
      Src: /src/cpython/Python/codegen.c:980,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:981,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:982,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:985,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:987,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:989,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:992,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:995,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:998,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1001,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1004,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: 1007
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 1007
    functionName: codegen_make_closure
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - PyUnstable_Code_GetFirstFree
    - PyTuple_GET_ITEM
    - ADDOP_I
    - ADDOP
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    - _PyCompile_LookupArg
    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:1016,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1017,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - decos
    argTypes:
    - compiler*
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1020
    functionName: codegen_decorators
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - VISIT
    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:1029,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1030,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1030,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - decos
    argTypes:
    - compiler*
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1034
    functionName: codegen_apply_decorators
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - asdl_seq_LEN
    - LOC
    - 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:1045,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1046,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1047,1
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:1050,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1054,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1055,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1059,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: 1065
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1065
    functionName: codegen_kwonlydefaults
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - ADDOP_I
    - VISIT
    - asdl_seq_LEN
    - _PyCompile_MaybeMangle
    - 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:1070,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1071,1
    - Dst: _PyAST_ExprAsUnicode
      Src: /src/cpython/Python/codegen.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - annotation
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1067
    functionDepth: 15
    functionLinenumber: 1067
    functionLinenumberEnd: 1073
    functionName: codegen_visit_annexpr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - LOC
    - _PyAST_ExprAsUnicode
    - ADDOP_LOAD_CONST_NEW
    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:1082,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1087,1
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:1089,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1090,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1098,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1099,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1102,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: 1107
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1107
    functionName: codegen_argannotation
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - FUTURE_FEATURES
    - ADDOP_I
    - VISIT
    - Py_DECREF
    - ADDOP_LOAD_CONST
    - _PyCompile_MaybeMangle
    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:1114,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1115,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1116,1
    - Dst: codegen_argannotation
      Src: /src/cpython/Python/codegen.c:1117,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: 1125
      start: 1109
    functionDepth: 2
    functionLinenumber: 1109
    functionLinenumberEnd: 1125
    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:1132,1
    - Dst: codegen_argannotations
      Src: /src/cpython/Python/codegen.c:1133,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1135,1
    - Dst: codegen_argannotations
      Src: /src/cpython/Python/codegen.c:1136,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1139,1
    - Dst: codegen_argannotation
      Src: /src/cpython/Python/codegen.c:1140,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1144,1
    - Dst: codegen_argannotations
      Src: /src/cpython/Python/codegen.c:1145,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1148,1
    - Dst: codegen_argannotation
      Src: /src/cpython/Python/codegen.c:1149,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1153,1
    - Dst: codegen_argannotation
      Src: /src/cpython/Python/codegen.c:1154,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1154,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: 1157
      start: 1127
    functionDepth: 3
    functionLinenumber: 1127
    functionLinenumberEnd: 1157
    functionName: codegen_annotations_in_scope
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_argannotations
    - RETURN_IF_ERROR
    - codegen_argannotation
    - _Py_ID
    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:1171,1
    - Dst: _PySymtable_LookupOptional
      Src: /src/cpython/Python/codegen.c:1171,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:1171,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1172,1
    - Dst: codegen_setup_annotations_scope
      Src: /src/cpython/Python/codegen.c:1175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1176,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1177,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1178,1
    - Dst: codegen_annotations_in_scope
      Src: /src/cpython/Python/codegen.c:1179,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1181,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1182,1
    - Dst: codegen_leave_annotations_scope
      Src: /src/cpython/Python/codegen.c:1182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1186,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: 1171
        line_start: 1171
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1190
      start: 1159
    functionDepth: 4
    functionLinenumber: 1159
    functionLinenumberEnd: 1190
    functionName: codegen_function_annotations
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_setup_annotations_scope
    - RETURN_IF_ERROR_IN_SCOPE
    - codegen_annotations_in_scope
    - ADDOP_I
    - codegen_leave_annotations_scope
    - SYMTABLE
    - assert
    - Py_DECREF
    - RETURN_IF_ERROR
    - _PySymtable_LookupOptional
    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:1196,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1197,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - c
    - args
    - loc
    argTypes:
    - compiler*
    - arguments_ty
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1199
    functionName: codegen_defaults
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - VISIT_SEQ
    - asdl_seq_LEN
    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:1206,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1207,1
    - Dst: codegen_defaults
      Src: /src/cpython/Python/codegen.c:1207,1
    - Dst: codegen_kwonlydefaults
      Src: /src/cpython/Python/codegen.c:1211,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - c
    - loc
    - args
    argTypes:
    - compiler*
    - location
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1201
    functionDepth: 2
    functionLinenumber: 1201
    functionLinenumberEnd: 1220
    functionName: codegen_default_arguments
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_defaults
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - codegen_kwonlydefaults
    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:1225,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:1228,1
    - Dst: _PyInstructionSequence_GetInstruction
      Src: /src/cpython/Python/codegen.c:1230,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1232,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1235,1
    - Dst: _PyInstructionSequence_GetInstruction
      Src: /src/cpython/Python/codegen.c:1235,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1237,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1238,1
    - Dst: _PyInstructionSequence_InsertInstruction
      Src: /src/cpython/Python/codegen.c:1239,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1243,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1244,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1245,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1246,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (_PyInstructionSequence_GetInstruction(seq, resume).i_opcode == POP_TOP)
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/cpython/Python/codegen.c
    - condition: (resume < seq->s_used)
      pos:
        line_end: 1231
        line_start: 1231
        source_file: /src/cpython/Python/codegen.c
    - condition: (resume < seq->s_used)
      pos:
        line_end: 1236
        line_start: 1236
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1249
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1249
    functionName: codegen_wrap_in_stopiteration_handler
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - _PyInstructionSequence_GetInstruction
    - NEW_JUMP_TARGET_LABEL
    - _PyInstructionSequence_InsertInstruction
    - ADDOP_I
    - ADDOP_LOAD_CONST
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - INSTR_SEQUENCE
    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:1256,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Python/codegen.c:1256,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1257,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1257,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1258,1
    - Dst: codegen_setup_annotations_scope
      Src: /src/cpython/Python/codegen.c:1258,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1258,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1260,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1261,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1261,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1264,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1266,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1266,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1267,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1268,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1272,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1273,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1274,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: 1276
      start: 1251
    functionDepth: 3
    functionLinenumber: 1251
    functionLinenumberEnd: 1276
    functionName: codegen_type_param_bound_or_default
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_setup_annotations_scope
    - _PyCompile_ExitScope
    - _PyLong_GetOne
    - ADDOP_I_IN_SCOPE
    - LOC
    - VISIT_IN_SCOPE
    - _PyCompile_OptimizeAndAssemble
    - PyTuple_Pack
    - Py_DECREF
    - RETURN_IF_ERROR
    - codegen_make_closure
    - ADDOP_LOAD_CONST_NEW
    - ADDOP_IN_SCOPE
    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:1284,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1288,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1289,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1292,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1295,1
    - Dst: codegen_type_param_bound_or_default
      Src: /src/cpython/Python/codegen.c:1296,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1302,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1305,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1310,1
    - Dst: codegen_type_param_bound_or_default
      Src: /src/cpython/Python/codegen.c:1311,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1313,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:1316,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1320,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1321,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1321,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1324,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1325,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1328,1
    - Dst: codegen_type_param_bound_or_default
      Src: /src/cpython/Python/codegen.c:1329,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1331,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:1335,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1339,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1340,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1340,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1343,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1344,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1347,1
    - Dst: codegen_type_param_bound_or_default
      Src: /src/cpython/Python/codegen.c:1348,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1350,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:1354,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1358,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1359,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1359,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1363,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1363,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1363,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - c
    - type_params
    argTypes:
    - compiler*
    - asdl_type_param_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1278
    functionDepth: 4
    functionLinenumber: 1278
    functionLinenumberEnd: 1365
    functionName: codegen_type_params
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - _PyCompile_Error
    - ADDOP_I
    - LOC
    - ADDOP_LOAD_CONST
    - codegen_nameop
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - codegen_type_param_bound_or_default
    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:1377,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1385,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1395,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1396,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1397,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1399,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1400,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1402,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/codegen.c:1405,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1406,1
    - Dst: _PyCompile_CleanDoc
      Src: /src/cpython/Python/codegen.c:1408,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1410,1
    - Dst: _PyCompile_AddConst
      Src: /src/cpython/Python/codegen.c:1413,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1414,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1415,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1418,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1419,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1423,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:1424,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1428,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1429,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1429,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1432,1
    - Dst: codegen_wrap_in_stopiteration_handler
      Src: /src/cpython/Python/codegen.c:1432,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:1433,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1435,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1436,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1440,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1440,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 5
    argNames:
    - c
    - s
    - is_async
    - funcflags
    - firstlineno
    argTypes:
    - compiler*
    - stmt_ty
    - int
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (docstring)
      pos:
        line_end: 1405
        line_start: 1405
        source_file: /src/cpython/Python/codegen.c
    - condition: (s->kind == AsyncFunctionDef_kind)
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/cpython/Python/codegen.c
    - condition: (s->kind == FunctionDef_kind)
      pos:
        line_end: 1384
        line_start: 1384
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1443
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1443
    functionName: codegen_function_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_wrap_in_stopiteration_handler
    - _PyCompile_ExitScope
    - _PyCompile_PushFBlock
    - _PyAST_GetDocString
    - assert
    - RETURN_IF_ERROR
    - codegen_make_closure
    - USE_LABEL
    - asdl_seq_GET
    - NEW_JUMP_TARGET_LABEL
    - codegen_enter_scope
    - VISIT_IN_SCOPE
    - _PyCompile_PopFBlock
    - _PyCompile_OptimizeAndAssemble
    - LOC
    - Py_DECREF
    - RETURN_IF_ERROR_IN_SCOPE
    - _PyCompile_CleanDoc
    - _PyCompile_AddConst
    - SYMTABLE_ENTRY
    - asdl_seq_LEN
    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:1457,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1465,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1474,1
    - Dst: codegen_decorators
      Src: /src/cpython/Python/codegen.c:1474,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1477,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1478,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1481,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1483,1
    - Dst: codegen_default_arguments
      Src: /src/cpython/Python/codegen.c:1485,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1486,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1498,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/codegen.c:1500,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1509,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1510,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1511,1
    - Dst: codegen_type_params
      Src: /src/cpython/Python/codegen.c:1511,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1513,1
    - Dst: codegen_function_annotations
      Src: /src/cpython/Python/codegen.c:1517,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1520,1
    - Dst: codegen_function_body
      Src: /src/cpython/Python/codegen.c:1526,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1528,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1531,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1535,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1536,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1538,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1539,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1544,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1545,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1547,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1548,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1551,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1552,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1556,1
    - Dst: codegen_apply_decorators
      Src: /src/cpython/Python/codegen.c:1556,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1557,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 74
    argCount: 3
    argNames:
    - c
    - s
    - is_async
    argTypes:
    - compiler*
    - stmt_ty
    - int
    assertStmts:
    - condition: (s->kind == AsyncFunctionDef_kind)
      pos:
        line_end: 1456
        line_start: 1456
        source_file: /src/cpython/Python/codegen.c
    - condition: (s->kind == FunctionDef_kind)
      pos:
        line_end: 1464
        line_start: 1464
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1558
      start: 1445
    functionDepth: 10
    functionLinenumber: 1445
    functionLinenumberEnd: 1558
    functionName: codegen_function
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ExitScope
    - assert
    - RETURN_IF_ERROR
    - codegen_make_closure
    - codegen_type_params
    - asdl_seq_GET
    - codegen_function_body
    - ADDOP_I
    - codegen_default_arguments
    - codegen_nameop
    - codegen_decorators
    - codegen_enter_scope
    - codegen_apply_decorators
    - LOC
    - _PyCompile_OptimizeAndAssemble
    - Py_DECREF
    - codegen_function_annotations
    - RETURN_IF_ERROR_IN_SCOPE
    - ADDOP_I_IN_SCOPE
    - PyUnicode_FromFormat
    - ADDOP
    - asdl_seq_LEN
    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:1563,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1564,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1564,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1564,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1565,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1565,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1567
    functionName: codegen_set_type_params_in_class
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _Py_STR
    - _Py_DECLARE_STR
    - codegen_nameop
    - RETURN_IF_ERROR
    - _Py_ID
    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:1585,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1586,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:1589,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1591,1
    - Dst: codegen_nameop
      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:1593,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1593,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1593,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1594,1
    - Dst: QUALNAME
      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:1595,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1595,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1596,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/codegen.c:1596,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:1596,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1597,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1597,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1597,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1599,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1600,1
    - Dst: codegen_set_type_params_in_class
      Src: /src/cpython/Python/codegen.c:1600,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1602,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1603,1
    - Dst: ADDOP_N_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1608,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1608,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1610,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1611,1
    - Dst: ADDOP_N_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1612,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1612,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1615,1
    - Dst: codegen_body
      Src: /src/cpython/Python/codegen.c:1615,1
    - Dst: _PyCompile_StaticAttributesAsTuple
      Src: /src/cpython/Python/codegen.c:1616,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1618,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1621,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codegen.c:1622,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1623,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1624,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1624,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1627,1
    - Dst: _PyCompile_LookupCellvar
      Src: /src/cpython/Python/codegen.c:1629,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1629,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1630,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1631,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1632,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1633,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1633,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1636,1
    - Dst: _PyCompile_LookupCellvar
      Src: /src/cpython/Python/codegen.c:1638,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1638,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1639,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1640,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1641,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1642,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1643,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:1643,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1647,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1649,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1651,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1654,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1663,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1664,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1665,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1668,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1669,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1670,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1673,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 3
    argNames:
    - c
    - s
    - firstlineno
    argTypes:
    - compiler*
    - stmt_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1570
    functionDepth: 8
    functionLinenumber: 1570
    functionLinenumberEnd: 1676
    functionName: codegen_class_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyCompile_ExitScope
    - QUALNAME
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    - codegen_make_closure
    - codegen_body
    - codegen_set_type_params_in_class
    - ADDOP_I
    - codegen_nameop
    - _PyCompile_LookupCellvar
    - ADDOP_LOAD_CONST_NEW
    - codegen_enter_scope
    - LOC
    - _PyCompile_OptimizeAndAssemble
    - Py_DECREF
    - LOCATION
    - ADDOP_IN_SCOPE
    - ADDOP_N_IN_SCOPE
    - METADATA
    - RETURN_IF_ERROR_IN_SCOPE
    - Py_CLEAR
    - _PyCompile_StaticAttributesAsTuple
    - ADDOP
    - SYMTABLE_ENTRY
    - asdl_seq_LEN
    - _Py_ID
    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:1683,1
    - Dst: codegen_decorators
      Src: /src/cpython/Python/codegen.c:1683,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1686,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1687,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1689,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1692,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/codegen.c:1694,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1699,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1701,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1702,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1703,1
    - Dst: codegen_type_params
      Src: /src/cpython/Python/codegen.c:1703,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:1704,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1705,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1705,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1705,1
    - Dst: codegen_class_body
      Src: /src/cpython/Python/codegen.c:1708,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1710,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1713,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:1719,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:1720,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1721,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1721,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1721,1
    - Dst: ADDOP_I_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1722,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1723,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1723,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1723,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1725,1
    - Dst: codegen_call_helper_impl
      Src: /src/cpython/Python/codegen.c:1725,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:1727,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1730,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1732,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1737,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1738,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1739,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1740,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1742,1
    - Dst: codegen_call_helper
      Src: /src/cpython/Python/codegen.c:1742,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1748,1
    - Dst: codegen_apply_decorators
      Src: /src/cpython/Python/codegen.c:1748,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1751,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1678
    functionDepth: 10
    functionLinenumber: 1678
    functionLinenumberEnd: 1753
    functionName: codegen_class
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ExitScope
    - _Py_DECLARE_STR
    - RETURN_IF_ERROR
    - codegen_make_closure
    - codegen_type_params
    - codegen_class_body
    - asdl_seq_GET
    - ADDOP_I
    - codegen_call_helper
    - codegen_nameop
    - codegen_decorators
    - _Py_STR
    - codegen_enter_scope
    - codegen_apply_decorators
    - LOC
    - _PyCompile_OptimizeAndAssemble
    - Py_DECREF
    - codegen_call_helper_impl
    - RETURN_IF_ERROR_IN_SCOPE
    - ADDOP_I_IN_SCOPE
    - PyUnicode_FromFormat
    - ADDOP
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int codegen_class(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1758,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/codegen.c:1760,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Python/codegen.c:1760,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:1761,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1762,1
    - Dst: codegen_setup_annotations_scope
      Src: /src/cpython/Python/codegen.c:1763,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1763,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1765,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:1765,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1766,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1767,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1768,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1769,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1774,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1775,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1777,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1778,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: 1764
        line_start: 1764
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 1780
      start: 1755
    functionDepth: 3
    functionLinenumber: 1755
    functionLinenumberEnd: 1780
    functionName: codegen_typealias_body
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_setup_annotations_scope
    - _PyCompile_ExitScope
    - SYMTABLE_ENTRY
    - _PyLong_GetOne
    - ADDOP_I
    - LOC
    - VISIT_IN_SCOPE
    - _PyCompile_OptimizeAndAssemble
    - PyTuple_Pack
    - assert
    - Py_DECREF
    - RETURN_IF_ERROR
    - codegen_make_closure
    - ADDOP_LOAD_CONST_NEW
    - ADDOP_IN_SCOPE
    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:1785,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1787,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/codegen.c:1790,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:1795,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1797,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1798,1
    - Dst: ADDOP_LOAD_CONST_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1799,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1800,1
    - Dst: codegen_type_params
      Src: /src/cpython/Python/codegen.c:1800,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1803,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:1804,1
    - Dst: codegen_typealias_body
      Src: /src/cpython/Python/codegen.c:1807,1
    - Dst: RETURN_IF_ERROR_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:1809,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1812,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:1816,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:1817,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:1821,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:1822,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1823,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:1824,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1825,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1827,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:1827,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1782
    functionDepth: 10
    functionLinenumber: 1782
    functionLinenumberEnd: 1829
    functionName: codegen_typealias
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ExitScope
    - codegen_typealias_body
    - ADDOP
    - codegen_enter_scope
    - RETURN_IF_ERROR_IN_SCOPE
    - PyUnicode_FromFormat
    - ADDOP_I
    - LOC
    - ADDOP_LOAD_CONST
    - _PyCompile_OptimizeAndAssemble
    - codegen_nameop
    - Py_DECREF
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - codegen_make_closure
    - ADDOP_LOAD_CONST_IN_SCOPE
    - codegen_type_params
    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:1834,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - elts
    argTypes:
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1841
    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:1849,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1845
    functionDepth: 2
    functionLinenumber: 1845
    functionLinenumberEnd: 1859
    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:1870,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1872,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1874,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1875,1
    - Dst: check_is_arg
      Src: /src/cpython/Python/codegen.c:1876,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:1883,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1884,1
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:1884,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1866
    functionDepth: 3
    functionLinenumber: 1866
    functionLinenumberEnd: 1892
    functionName: codegen_check_compare
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - _PyCompile_Warn
    - check_is_arg
    - infer_type
    - LOC
    - asdl_seq_LEN
    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:1918,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1921,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1924,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1927,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/codegen.c:1930,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1936,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - c
    - loc
    - op
    argTypes:
    - compiler*
    - location
    - cmpop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1894
    functionDepth: 1
    functionLinenumber: 1894
    functionLinenumberEnd: 1938
    functionName: codegen_addcompare
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - Py_UNREACHABLE
    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:1947,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1953,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:1954,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1958,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1962,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1963,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1963,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1965,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1966,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1966,1
    - Dst: SAME_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1967,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1968,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1973,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1974,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1975,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1976,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1977,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1978,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:1979,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1981,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1982,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:1983,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:1985,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:1989,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:1991,1
    - Dst: codegen_check_compare
      Src: /src/cpython/Python/codegen.c:1991,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:1992,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1993,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:1995,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1996,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1997,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1997,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:1998,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1998,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:1999,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:1999,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:1999,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2000,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2000,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2001,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2001,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2003,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2003,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:2004,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2004,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2004,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2005,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2005,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2006,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2006,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2007,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2008,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2010,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2011,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2011,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2013,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2016,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2028,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2029,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2029,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2030,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2030,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: 1953
        line_start: 1953
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 2032
      start: 1940
    functionDepth: 4
    functionLinenumber: 1940
    functionLinenumberEnd: 2032
    functionName: codegen_jump_if
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - USE_LABEL
    - codegen_jump_if
    - asdl_seq_GET
    - SAME_JUMP_TARGET_LABEL
    - VISIT
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - ADDOP_JUMP
    - codegen_check_compare
    - LOC
    - ADDOP_COMPARE
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:2037,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2038,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2039,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2041,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:2042,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2042,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2044,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2045,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2047,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2048,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2050,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: 2036
        line_start: 2036
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 2052
      start: 2034
    functionDepth: 5
    functionLinenumber: 2034
    functionLinenumberEnd: 2052
    functionName: codegen_ifexp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - codegen_jump_if
    - VISIT
    - NEW_JUMP_TARGET_LABEL
    - LOC
    - ADDOP_JUMP
    - assert
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int codegen_ifexp(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:2060,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2062,1
    - Dst: codegen_default_arguments
      Src: /src/cpython/Python/codegen.c:2063,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2064,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2067,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2068,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2069,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:2071,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2072,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:2073,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:2073,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:2076,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:2076,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:2078,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:2079,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:2080,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2083,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/cpython/Python/codegen.c:2084,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:2085,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:2087,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:2092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:2093,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (!SYMTABLE_ENTRY(c)->ste_has_docstring)
      pos:
        line_end: 2075
        line_start: 2075
        source_file: /src/cpython/Python/codegen.c
    - condition: (e->kind == Lambda_kind)
      pos:
        line_end: 2059
        line_start: 2059
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 2096
      start: 2054
    functionDepth: 3
    functionLinenumber: 2054
    functionLinenumberEnd: 2096
    functionName: codegen_lambda
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ExitScope
    - SYMTABLE_ENTRY
    - _Py_STR
    - _Py_DECLARE_STR
    - codegen_enter_scope
    - LOC
    - codegen_default_arguments
    - VISIT_IN_SCOPE
    - _PyCompile_OptimizeAndAssemble
    - assert
    - Py_DECREF
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - codegen_make_closure
    - ADDOP_IN_SCOPE
    linkageType: ''
    returnType: int
    signature: int codegen_lambda(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:2102,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2103,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2104,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2105,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2111,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:2112,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2112,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2114,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2115,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2116,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2118,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2119,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2122,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: 2101
        line_start: 2101
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 2124
      start: 2098
    functionDepth: 5
    functionLinenumber: 2098
    functionLinenumberEnd: 2124
    functionName: codegen_if
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - codegen_jump_if
    - VISIT_SEQ
    - NEW_JUMP_TARGET_LABEL
    - LOC
    - ADDOP_JUMP
    - assert
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int codegen_if(compiler *c, stmt_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2129,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: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2135,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2135,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2137,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2139,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2140,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2142,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2143,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2148,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2148,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2150,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: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2156,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2161,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2162,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2164,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2166,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2126
    functionDepth: 1
    functionLinenumber: 2126
    functionLinenumberEnd: 2170
    functionName: codegen_for
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - VISIT_SEQ
    - _PyCompile_PushFBlock
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - ADDOP_JUMP
    - _PyCompile_PopFBlock
    - VISIT
    - ADDOP
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int codegen_for(compiler *c, stmt_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2175,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: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2179,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2180,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2182,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2183,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2183,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2185,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2186,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2186,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2189,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2190,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2191,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2192,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2193,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:2194,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2195,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2196,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2199,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2200,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2202,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2204,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2207,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2211,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2212,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2215,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2172
    functionDepth: 1
    functionLinenumber: 2172
    functionLinenumberEnd: 2219
    functionName: codegen_async_for
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - VISIT_SEQ
    - _PyCompile_PushFBlock
    - NEW_JUMP_TARGET_LABEL
    - LOC
    - ADDOP_JUMP
    - _PyCompile_PopFBlock
    - VISIT
    - ADDOP
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    - ADD_YIELD_FROM
    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:2224,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2225,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2226,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2228,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2230,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2230,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2230,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2231,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:2231,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2231,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2233,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2234,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2236,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2238,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2240,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2221
    functionDepth: 5
    functionLinenumber: 2221
    functionLinenumberEnd: 2245
    functionName: codegen_while
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - codegen_jump_if
    - VISIT_SEQ
    - _PyCompile_PushFBlock
    - NEW_JUMP_TARGET_LABEL
    - LOC
    - ADDOP_JUMP
    - _PyCompile_PopFBlock
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int codegen_while(compiler *c, stmt_ty s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2250,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:2254,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/codegen.c:2255,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2256,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2259,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2263,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2267,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2268,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2272,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2273,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2276,1
    - Dst: codegen_unwind_fblock_stack
      Src: /src/cpython/Python/codegen.c:2276,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2278,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2281,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2283,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2247
    functionDepth: 4
    functionLinenumber: 2247
    functionLinenumberEnd: 2286
    functionName: codegen_return
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_unwind_fblock_stack
    - _PyCompile_Error
    - LOC
    - RETURN_IF_ERROR
    - VISIT
    - ADDOP
    - SYMTABLE_ENTRY
    - ADDOP_LOAD_CONST
    - _PyST_IsFunctionLike
    linkageType: ''
    returnType: int
    signature: int codegen_return(compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2294,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2295,1
    - Dst: codegen_unwind_fblock_stack
      Src: /src/cpython/Python/codegen.c:2295,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2297,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2299,1
    - Dst: codegen_unwind_fblock
      Src: /src/cpython/Python/codegen.c:2299,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2288
    functionDepth: 4
    functionLinenumber: 2288
    functionLinenumberEnd: 2302
    functionName: codegen_break
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_unwind_fblock_stack
    - codegen_unwind_fblock
    - _PyCompile_Error
    - ADDOP_JUMP
    - ADDOP
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int codegen_break(compiler *c, location loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2310,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2311,1
    - Dst: codegen_unwind_fblock_stack
      Src: /src/cpython/Python/codegen.c:2311,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2313,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2304
    functionDepth: 4
    functionLinenumber: 2304
    functionLinenumberEnd: 2317
    functionName: codegen_continue
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_unwind_fblock_stack
    - _PyCompile_Error
    - ADDOP_JUMP
    - ADDOP
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int codegen_continue(compiler *c, location loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2352,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2354,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2355,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2356,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2357,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2360,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2362,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2363,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2364,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2367,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2368,1
    - Dst: codegen_try_except
      Src: /src/cpython/Python/codegen.c:2368,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2371,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2373,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2374,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2375,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2377,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2380,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2383,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2384,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2385,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2386,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2387,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2388,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2391,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2393,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:2394,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2349
    functionDepth: 1
    functionLinenumber: 2349
    functionLinenumberEnd: 2398
    functionName: codegen_try_finally
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - VISIT_SEQ
    - _PyCompile_PushFBlock
    - POP_EXCEPT_AND_RERAISE
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - ADDOP_JUMP
    - codegen_try_except
    - _PyCompile_PopFBlock
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:2403,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2405,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2406,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2407,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2408,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2410,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2412,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2413,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2414,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2417,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2418,1
    - Dst: codegen_try_star_except
      Src: /src/cpython/Python/codegen.c:2418,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2421,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2423,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2424,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2425,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2427,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2430,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2433,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2434,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2435,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2436,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2438,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2440,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2442,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2444,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:2445,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2400
    functionDepth: 1
    functionLinenumber: 2400
    functionLinenumberEnd: 2449
    functionName: codegen_try_star_finally
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - VISIT_SEQ
    - _PyCompile_PushFBlock
    - POP_EXCEPT_AND_RERAISE
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - ADDOP_JUMP
    - codegen_try_star_except
    - _PyCompile_PopFBlock
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:2483,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2486,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2487,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2488,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2489,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2491,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2493,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2494,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2495,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2496,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2497,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2498,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2499,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2500,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2502,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2503,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2505,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2507,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2508,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2511,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2512,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2516,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2518,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2520,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2522,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2525,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2526,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2527,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2530,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2531,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2533,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2534,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2548,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2550,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2551,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2552,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2556,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2557,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2559,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2560,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2561,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2562,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2563,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2564,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2565,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2566,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2567,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2570,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2573,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2574,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2575,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2576,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2577,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2579,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2582,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2584,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2586,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2587,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2588,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2591,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2592,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2593,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2594,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2595,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2598,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2601,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2602,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2604,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:2605,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2607,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 71
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2480
    functionDepth: 1
    functionLinenumber: 2480
    functionLinenumberEnd: 2609
    functionName: codegen_try_except
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - USE_LABEL
    - VISIT_SEQ
    - asdl_seq_GET
    - _PyCompile_PushFBlock
    - POP_EXCEPT_AND_RERAISE
    - _PyCompile_Error
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - ADDOP_JUMP
    - _PyCompile_PopFBlock
    - codegen_nameop
    - ADDOP_LOAD_CONST
    - VISIT
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:2666,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2668,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2669,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2670,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2671,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2672,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2673,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2675,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2677,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2678,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2679,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2680,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2681,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2682,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2683,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2684,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2686,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2688,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2689,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2692,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2693,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2697,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2699,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2700,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2702,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2703,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2714,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2715,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:2718,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2719,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2720,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2721,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2724,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2725,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2728,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2729,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2732,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2746,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2748,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2749,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:2750,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2754,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2755,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2757,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2759,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2760,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2761,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2762,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2763,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2765,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2768,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2772,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2773,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2774,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2775,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2776,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2780,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2781,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2782,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2784,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2785,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2786,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2788,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2789,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2791,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2795,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2796,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:2800,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:2801,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2803,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2804,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2805,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2806,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2809,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2810,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2811,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:2812,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2814,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2815,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2816,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2817,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2818,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2820,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:2821,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2823,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:2824,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:2826,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 93
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2663
    functionDepth: 1
    functionLinenumber: 2663
    functionLinenumberEnd: 2828
    functionName: codegen_try_star_except
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - USE_LABEL
    - VISIT_SEQ
    - asdl_seq_GET
    - _PyCompile_PushFBlock
    - POP_EXCEPT_AND_RERAISE
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - ADDOP_JUMP
    - _PyCompile_PopFBlock
    - codegen_nameop
    - ADDOP_LOAD_CONST
    - VISIT
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:2832,1
    - Dst: codegen_try_finally
      Src: /src/cpython/Python/codegen.c:2833,1
    - Dst: codegen_try_except
      Src: /src/cpython/Python/codegen.c:2835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2830
    functionDepth: 2
    functionLinenumber: 2830
    functionLinenumberEnd: 2836
    functionName: codegen_try
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - codegen_try_except
    - codegen_try_finally
    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:2841,1
    - Dst: codegen_try_star_finally
      Src: /src/cpython/Python/codegen.c:2842,1
    - Dst: codegen_try_star_except
      Src: /src/cpython/Python/codegen.c:2845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2838
    functionDepth: 2
    functionLinenumber: 2838
    functionLinenumberEnd: 2847
    functionName: codegen_try_star
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - codegen_try_star_finally
    - codegen_try_star_except
    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:2859,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/codegen.c:2860,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/codegen.c:2869,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/codegen.c:2873,1
    - Dst: ADDOP_N
      Src: /src/cpython/Python/codegen.c:2877,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:2881,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2882,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2884,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2884,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:2885,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2888,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - c
    - loc
    - name
    - asname
    argTypes:
    - compiler*
    - location
    - identifier
    - identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2849
    functionDepth: 8
    functionLinenumber: 2849
    functionLinenumberEnd: 2889
    functionName: codegen_import_as
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_N
    - PyUnicode_FindChar
    - ADDOP_I
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - codegen_nameop
    - ADDOP
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: "int codegen_import_as(compiler *c, location loc,\n                  identifier
      name, identifier asname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_ScopeType
      Src: /src/cpython/Python/codegen.c:2894,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2891
    functionDepth: 1
    functionLinenumber: 2891
    functionLinenumberEnd: 2900
    functionName: codegen_validate_lazy_import
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ScopeType
    - _PyCompile_Error
    linkageType: ''
    returnType: int
    signature: int codegen_validate_lazy_import(compiler *c, location loc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2905,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2913,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/codegen.c:2915,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2917,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2920,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:2921,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2923,1
    - Dst: codegen_validate_lazy_import
      Src: /src/cpython/Python/codegen.c:2923,1
    - Dst: ADDOP_NAME_CUSTOM
      Src: /src/cpython/Python/codegen.c:2924,1
    - Dst: _PyCompile_InExceptionHandler
      Src: /src/cpython/Python/codegen.c:2926,1
    - Dst: _PyCompile_ScopeType
      Src: /src/cpython/Python/codegen.c:2927,1
    - Dst: ADDOP_NAME_CUSTOM
      Src: /src/cpython/Python/codegen.c:2929,1
    - Dst: ADDOP_NAME_CUSTOM
      Src: /src/cpython/Python/codegen.c:2931,1
    - Dst: codegen_import_as
      Src: /src/cpython/Python/codegen.c:2936,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2937,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/codegen.c:2941,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/codegen.c:2942,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/codegen.c:2944,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:2949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:2951,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2953,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2902
    functionDepth: 9
    functionLinenumber: 2902
    functionLinenumberEnd: 2957
    functionName: codegen_import
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_validate_lazy_import
    - asdl_seq_GET
    - _PyCompile_ScopeType
    - _PyCompile_InExceptionHandler
    - PyUnicode_FindChar
    - ADDOP_NAME_CUSTOM
    - LOC
    - ADDOP_LOAD_CONST
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - _PyLong_GetZero
    - codegen_nameop
    - Py_DECREF
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - codegen_import_as
    linkageType: ''
    returnType: int
    signature: int codegen_import(compiler *c, stmt_ty s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:2962,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:2964,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2964,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/codegen.c:2964,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/codegen.c:2966,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2973,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:2974,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:2974,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:2977,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2977,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:2979,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2984,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codegen.c:2985,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:2986,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2986,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:2988,1
    - Dst: codegen_validate_lazy_import
      Src: /src/cpython/Python/codegen.c:2988,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2988,1
    - Dst: ADDOP_NAME_CUSTOM
      Src: /src/cpython/Python/codegen.c:2989,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2989,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:2991,1
    - Dst: _PyCompile_InExceptionHandler
      Src: /src/cpython/Python/codegen.c:2992,1
    - Dst: _PyCompile_ScopeType
      Src: /src/cpython/Python/codegen.c:2993,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codegen.c:2994,1
    - Dst: ADDOP_NAME_CUSTOM
      Src: /src/cpython/Python/codegen.c:2996,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2996,1
    - Dst: ADDOP_NAME_CUSTOM
      Src: /src/cpython/Python/codegen.c:2998,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:2998,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3003,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codegen.c:3006,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3007,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3008,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3008,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3009,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:3013,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3013,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3019,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3019,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3019,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3022,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3022,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts:
    - condition: (n == 1)
      pos:
        line_end: 3006
        line_start: 3006
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3024
      start: 2959
    functionDepth: 3
    functionLinenumber: 2959
    functionLinenumberEnd: 3024
    functionName: codegen_from_import
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyCompile_ScopeType
    - _PyCompile_InExceptionHandler
    - assert
    - RETURN_IF_ERROR
    - codegen_validate_lazy_import
    - asdl_seq_GET
    - PyUnicode_READ_CHAR
    - _PyCompile_Error
    - ADDOP_NAME
    - ADDOP_I
    - ADDOP_NAME_CUSTOM
    - codegen_nameop
    - ADDOP_LOAD_CONST_NEW
    - _Py_STR
    - LOC
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_New
    - ADDOP
    - asdl_seq_LEN
    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:3031,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/codegen.c:3033,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Python/codegen.c:3034,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3036,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:3037,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3037,1
    - Dst: OPTIMIZATION_LEVEL
      Src: /src/cpython/Python/codegen.c:3040,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3043,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3044,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:3044,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3044,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3045,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3045,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3047,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3048,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3048,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3050,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3050,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3052,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3026
    functionDepth: 5
    functionLinenumber: 3026
    functionLinenumberEnd: 3054
    functionName: codegen_assert
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - OPTIMIZATION_LEVEL
    - PyTuple_Size
    - codegen_jump_if
    - _PyCompile_Warn
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - PyTuple_Check
    - VISIT
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:3059,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3060,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3061,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3062,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3068,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3072,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - c
    - loc
    - value
    argTypes:
    - compiler*
    - location
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3056
    functionDepth: 1
    functionLinenumber: 3056
    functionLinenumberEnd: 3075
    functionName: codegen_stmt_expr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - ADDOP
    - IS_INTERACTIVE_TOP_LEVEL
    - VISIT
    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: 3084
      start: 3077
    functionDepth: 0
    functionLinenumber: 3077
    functionLinenumberEnd: 3084
    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:3091,1
    - Dst: codegen_class
      Src: /src/cpython/Python/codegen.c:3093,1
    - Dst: codegen_typealias
      Src: /src/cpython/Python/codegen.c:3095,1
    - Dst: codegen_return
      Src: /src/cpython/Python/codegen.c:3097,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:3099,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3103,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3104,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3107,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3107,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3109,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3110,1
    - Dst: codegen_augassign
      Src: /src/cpython/Python/codegen.c:3115,1
    - Dst: codegen_annassign
      Src: /src/cpython/Python/codegen.c:3117,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3119,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3122,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3125,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3128,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3134,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3137,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3141,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3141,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3145,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3148,1
    - Dst: codegen_assert
      Src: /src/cpython/Python/codegen.c:3151,1
    - Dst: codegen_import
      Src: /src/cpython/Python/codegen.c:3153,1
    - Dst: codegen_from_import
      Src: /src/cpython/Python/codegen.c:3155,1
    - Dst: codegen_stmt_expr
      Src: /src/cpython/Python/codegen.c:3161,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3161,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3165,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3165,1
    - Dst: codegen_break
      Src: /src/cpython/Python/codegen.c:3170,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3170,1
    - Dst: codegen_continue
      Src: /src/cpython/Python/codegen.c:3174,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3174,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3177,1
    - Dst: codegen_function
      Src: /src/cpython/Python/codegen.c:3180,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3182,1
    - Dst: CODEGEN_COND_BLOCK
      Src: /src/cpython/Python/codegen.c:3185,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 92
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3190
      start: 3085
    functionDepth: 11
    functionLinenumber: 3085
    functionLinenumberEnd: 3190
    functionName: codegen_visit_stmt
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_typealias
    - codegen_import
    - VISIT
    - codegen_annassign
    - asdl_seq_GET
    - codegen_assert
    - ADDOP_I
    - codegen_stmt_expr
    - codegen_continue
    - VISIT_SEQ
    - codegen_function
    - codegen_augassign
    - LOC
    - codegen_break
    - codegen_return
    - codegen_class
    - codegen_from_import
    - CODEGEN_COND_BLOCK
    - ADDOP
    - asdl_seq_LEN
    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:3201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - unaryop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3192
    functionDepth: 1
    functionLinenumber: 3192
    functionLinenumberEnd: 3205
    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:3253,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3257,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: 3259
      start: 3207
    functionDepth: 1
    functionLinenumber: 3207
    functionLinenumberEnd: 3259
    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:3264,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3266,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3268,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3271
      start: 3262
    functionDepth: 1
    functionLinenumber: 3262
    functionLinenumberEnd: 3271
    functionName: codegen_addop_yield
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - SYMTABLE_ENTRY
    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:3276,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:3276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - loc
    argTypes:
    - compiler*
    - location
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3278
      start: 3273
    functionDepth: 1
    functionLinenumber: 3273
    functionLinenumberEnd: 3278
    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: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3284,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3284,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3285,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3286,1
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:3288,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/codegen.c:3293,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3293,1
    - Dst: _PyCompile_ResolveNameop
      Src: /src/cpython/Python/codegen.c:3300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:3301,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3306,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/codegen.c:3306,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3313,1
    - Dst: _PyCompile_IsInInlinedComp
      Src: /src/cpython/Python/codegen.c:3313,1
    - Dst: codegen_addop_noarg
      Src: /src/cpython/Python/codegen.c:3316,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:3316,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3320,1
    - Dst: codegen_load_classdict_freevar
      Src: /src/cpython/Python/codegen.c:3323,1
    - Dst: ADDOP_N
      Src: /src/cpython/Python/codegen.c:3341,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3346,1
    - Dst: codegen_load_classdict_freevar
      Src: /src/cpython/Python/codegen.c:3349,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3363,1
    - Dst: _PyCompile_IsInInlinedComp
      Src: /src/cpython/Python/codegen.c:3364,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:3375,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:3383,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 103
    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: 3305
        line_start: 3305
        source_file: /src/cpython/Python/codegen.c
    - condition: (op)
      pos:
        line_end: 3373
        line_start: 3373
        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: 3285
        line_start: 3283
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3385
      start: 3280
    functionDepth: 2
    functionLinenumber: 3280
    functionLinenumberEnd: 3385
    functionName: codegen_nameop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 14
    functionsReached:
    - ADDOP_N
    - codegen_addop_noarg
    - PyUnicode_READ_CHAR
    - _PyCompile_IsInInlinedComp
    - assert
    - _PyUnicode_EqualToASCIIString
    - ADDOP_I
    - _PyST_GetScope
    - _PyCompile_ResolveNameop
    - SYMTABLE_ENTRY
    - INSTR_SEQUENCE
    - Py_DECREF
    - _PyCompile_MaybeMangle
    - codegen_load_classdict_freevar
    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:3394,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3395,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3400,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3402,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3403,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3405,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3405,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3406,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3407,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3409,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3409,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 3402
        line_start: 3402
        source_file: /src/cpython/Python/codegen.c
    - condition: (e->kind == BoolOp_kind)
      pos:
        line_end: 3394
        line_start: 3394
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3413
      start: 3387
    functionDepth: 1
    functionLinenumber: 3387
    functionLinenumberEnd: 3413
    functionName: codegen_boolop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - asdl_seq_GET
    - assert
    - NEW_JUMP_TARGET_LABEL
    - LOC
    - ADDOP_JUMP
    - VISIT
    - ADDOP
    - asdl_seq_LEN
    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:3420,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3424,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3432,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3433,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3436,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3436,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3440,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3442,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3448,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3452,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3455,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3458,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3459,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3462,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3464,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3468,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3470,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3470,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3471,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3474,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: 3467
        line_start: 3467
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3477
      start: 3415
    functionDepth: 3
    functionLinenumber: 3415
    functionLinenumberEnd: 3477
    functionName: starunpack_helper_impl
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - assert
    - ADDOP_I
    - codegen_nameop
    - VISIT
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:3484,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: 3486
      start: 3479
    functionDepth: 4
    functionLinenumber: 3479
    functionLinenumberEnd: 3486
    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:3491,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3494,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:3498,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3502,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:3506,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - c
    - loc
    - elts
    argTypes:
    - compiler*
    - location
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3488
    functionDepth: 1
    functionLinenumber: 3488
    functionLinenumberEnd: 3514
    functionName: unpack_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - asdl_seq_LEN
    - _PyCompile_Error
    - 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:3519,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3520,1
    - Dst: unpack_helper
      Src: /src/cpython/Python/codegen.c:3520,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3522,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - loc
    - elts
    argTypes:
    - compiler*
    - location
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3516
    functionDepth: 2
    functionLinenumber: 3516
    functionLinenumberEnd: 3526
    functionName: assignment_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - VISIT
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - unpack_helper
    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:3531,1
    - Dst: assignment_helper
      Src: /src/cpython/Python/codegen.c:3534,1
    - Dst: starunpack_helper
      Src: /src/cpython/Python/codegen.c:3537,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:3541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3528
    functionDepth: 5
    functionLinenumber: 3528
    functionLinenumberEnd: 3544
    functionName: codegen_list
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - starunpack_helper
    - LOC
    - assignment_helper
    - VISIT_SEQ
    linkageType: ''
    returnType: int
    signature: int codegen_list(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3549,1
    - Dst: assignment_helper
      Src: /src/cpython/Python/codegen.c:3552,1
    - Dst: starunpack_helper
      Src: /src/cpython/Python/codegen.c:3555,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:3559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3562
      start: 3546
    functionDepth: 5
    functionLinenumber: 3546
    functionLinenumberEnd: 3562
    functionName: codegen_tuple
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - starunpack_helper
    - LOC
    - assignment_helper
    - VISIT_SEQ
    linkageType: ''
    returnType: int
    signature: int codegen_tuple(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3567,1
    - Dst: starunpack_helper
      Src: /src/cpython/Python/codegen.c:3568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3570
      start: 3564
    functionDepth: 5
    functionLinenumber: 3564
    functionLinenumberEnd: 3570
    functionName: codegen_set
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - starunpack_helper
    - LOC
    linkageType: ''
    returnType: int
    signature: int codegen_set(compiler *c, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3577,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3579,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3582,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3582,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3583,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3583,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3585,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3589,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: 3592
      start: 3572
    functionDepth: 1
    functionLinenumber: 3572
    functionLinenumberEnd: 3592
    functionName: codegen_subdict
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - LOC
    - asdl_seq_GET
    - VISIT
    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:3597,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3601,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3605,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3608,1
    - Dst: codegen_subdict
      Src: /src/cpython/Python/codegen.c:3608,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3610,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3616,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3619,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3619,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3620,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3624,1
    - Dst: codegen_subdict
      Src: /src/cpython/Python/codegen.c:3624,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3626,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3637,1
    - Dst: codegen_subdict
      Src: /src/cpython/Python/codegen.c:3637,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3639,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3644,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3647
      start: 3594
    functionDepth: 2
    functionLinenumber: 3594
    functionLinenumberEnd: 3647
    functionName: codegen_dict
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - codegen_subdict
    - ADDOP_I
    - LOC
    - VISIT
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int codegen_dict(compiler *c, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3652,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3655,1
    - Dst: codegen_check_compare
      Src: /src/cpython/Python/codegen.c:3655,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3656,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3657,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3657,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3658,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3660,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3660,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:3661,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3661,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3664,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3666,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3667,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3668,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3669,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:3670,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3670,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3671,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3672,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3673,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3674,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3676,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3676,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:3677,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3677,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3678,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3679,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3681,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3682,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3683,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3685,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: 3656
        line_start: 3656
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3688
      start: 3649
    functionDepth: 4
    functionLinenumber: 3649
    functionLinenumberEnd: 3688
    functionName: codegen_compare
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - asdl_seq_GET
    - VISIT
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_COMPARE
    - LOC
    - codegen_check_compare
    - ADDOP_I
    - ADDOP_JUMP
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:3716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3720
      start: 3690
    functionDepth: 0
    functionLinenumber: 3690
    functionLinenumberEnd: 3720
    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:3739,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:3740,1
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:3742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3722
    functionDepth: 1
    functionLinenumber: 3722
    functionLinenumberEnd: 3747
    functionName: check_caller
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - infer_type
    - LOC
    - _PyCompile_Warn
    linkageType: ''
    returnType: int
    signature: int check_caller(compiler *c, expr_ty e)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/cpython/Python/codegen.c:3758,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Python/codegen.c:3758,1
    - Dst: PyComplex_Check
      Src: /src/cpython/Python/codegen.c:3758,1
    - Dst: PyAnySet_Check
      Src: /src/cpython/Python/codegen.c:3759,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3770,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:3771,1
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:3773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3749
    functionDepth: 1
    functionLinenumber: 3749
    functionLinenumberEnd: 3778
    functionName: check_subscripter
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyCompile_Warn
    - PyFloat_Check
    - PyLong_Check
    - PyAnySet_Check
    - PyComplex_Check
    - LOC
    - infer_type
    linkageType: ''
    returnType: int
    signature: int check_subscripter(compiler *c, expr_ty e)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:3785,1
    - Dst: PyType_FastSubclass
      Src: /src/cpython/Python/codegen.c:3787,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/codegen.c:3795,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/codegen.c:3795,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/codegen.c:3795,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3804,1
    - Dst: _PyCompile_Warn
      Src: /src/cpython/Python/codegen.c:3805,1
    - Dst: infer_type
      Src: /src/cpython/Python/codegen.c:3808,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - c
    - e
    - s
    argTypes:
    - compiler*
    - expr_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3814
      start: 3780
    functionDepth: 1
    functionLinenumber: 3780
    functionLinenumberEnd: 3814
    functionName: check_index
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyType_FastSubclass
    - PyBytes_Check
    - _PyCompile_Warn
    - PyUnicode_Check
    - infer_type
    - LOC
    - PyTuple_Check
    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:3829,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:3829,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3832
      start: 3816
    functionDepth: 1
    functionLinenumber: 3816
    functionLinenumberEnd: 3832
    functionName: is_import_originated
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyST_GetSymbol
    - RETURN_IF_ERROR
    - SYMTABLE
    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:3840,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3841,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3842,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3845,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/codegen.c:3849,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:3849,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3850,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/codegen.c:3854,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:3854,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3855,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3862,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:3878,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:3879,1
    - Dst: _PyCompile_GetRefType
      Src: /src/cpython/Python/codegen.c:3883,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:3883,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - c
    - attr
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3887
      start: 3834
    functionDepth: 2
    functionLinenumber: 3834
    functionLinenumberEnd: 3887
    functionName: can_optimize_super_call
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - METADATA
    - _PyUnicode_EqualToASCIIString
    - RETURN_IF_ERROR
    - SYMTABLE
    - _PyST_GetScope
    - SYMTABLE_ENTRY
    - asdl_seq_LEN
    - _PyCompile_GetRefType
    - _Py_ID
    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:3891,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3895,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3895,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3895,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3897,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3898,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3898,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3899,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3899,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:3904,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:3905,1
    - Dst: _PyCompile_GetRefType
      Src: /src/cpython/Python/codegen.c:3905,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3906,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3906,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/codegen.c:3911,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:3911,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:3914,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:3914,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: 3904
        line_start: 3904
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3917
      start: 3889
    functionDepth: 4
    functionLinenumber: 3889
    functionLinenumberEnd: 3917
    functionName: load_args_for_super
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - METADATA
    - assert
    - PyDict_Next
    - LOC
    - codegen_nameop
    - VISIT
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - _PyCompile_GetRefType
    - _Py_ID
    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:3925,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/codegen.c:3928,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/codegen.c:3939,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/codegen.c:3941,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: 3924
        line_start: 3924
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 3945
      start: 3921
    functionDepth: 1
    functionLinenumber: 3921
    functionLinenumberEnd: 3945
    functionName: update_start_location_to_match_attr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - Py_MAX
    - assert
    linkageType: ''
    returnType: location
    signature: "location update_start_location_to_match_attr(compiler *c, location
      loc,\n                                    expr_ty attr)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3955,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:3956,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:3961,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:3963,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:3965,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3967,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3969,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3970,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:3971,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3972,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:3973,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:3975,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:3976,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:3978,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:3980,1
    - Dst: _PySymtable_Lookup
      Src: /src/cpython/Python/codegen.c:3988,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:3988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:3990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:3993,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:3996,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:4001,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:4006,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:4011,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:4014,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:4017,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/codegen.c:4020,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4024,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4025,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:4026,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4027,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4028,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4031,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4033,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4035,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4037,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4038,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4040,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4041,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4042,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4044,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4045,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4047,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4048,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4051,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4052,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4055,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4060,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4062,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4064,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4065,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4066,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4068,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4075,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4078,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4082,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4084,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 3
    argNames:
    - c
    - e
    - end
    argTypes:
    - compiler*
    - expr_ty
    - jump_target_label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4086
      start: 3947
    functionDepth: 2
    functionLinenumber: 3947
    functionLinenumberEnd: 4086
    functionName: maybe_optimize_function_call
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - asdl_seq_GET
    - _PySymtable_Lookup
    - _PyUnicode_EqualToASCIIString
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - ADDOP_COMPARE
    - ADDOP_JUMP
    - SYMTABLE
    - ADDOP_LOAD_CONST
    - VISIT
    - ADDOP
    - asdl_seq_LEN
    - Py_DECREF
    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:4103,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4104,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4110,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4111,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4117,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4124,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4131,1
    - Dst: can_optimize_super_call
      Src: /src/cpython/Python/codegen.c:4133,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4134,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4136,1
    - Dst: load_args_for_super
      Src: /src/cpython/Python/codegen.c:4136,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4137,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4139,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:4140,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4141,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4143,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:4144,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4145,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:4148,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:4151,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4152,1
    - Dst: codegen_call_simple_kw_helper
      Src: /src/cpython/Python/codegen.c:4153,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:4154,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4154,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4155,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:4158,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4158,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4159,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4089
    functionDepth: 5
    functionLinenumber: 4089
    functionLinenumberEnd: 4162
    functionName: maybe_optimize_method_call
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - asdl_seq_GET
    - is_import_originated
    - update_start_location_to_match_attr
    - ADDOP
    - ADDOP_NAME
    - codegen_call_simple_kw_helper
    - ADDOP_I
    - LOC
    - VISIT
    - load_args_for_super
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - can_optimize_super_call
    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:4167,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4169,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4174,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/codegen.c:4175,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:4176,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - c
    - keywords
    argTypes:
    - compiler*
    - asdl_keyword_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4181
      start: 4164
    functionDepth: 2
    functionLinenumber: 4164
    functionLinenumberEnd: 4181
    functionName: codegen_validate_keywords
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - _PyCompile_Error
    - PyUnicode_Compare
    - LOC
    - asdl_seq_LEN
    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:4186,1
    - Dst: codegen_validate_keywords
      Src: /src/cpython/Python/codegen.c:4186,1
    - Dst: maybe_optimize_method_call
      Src: /src/cpython/Python/codegen.c:4187,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4194,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4195,1
    - Dst: check_caller
      Src: /src/cpython/Python/codegen.c:4195,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4196,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4197,1
    - Dst: maybe_optimize_function_call
      Src: /src/cpython/Python/codegen.c:4197,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4198,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4199,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4200,1
    - Dst: codegen_call_helper
      Src: /src/cpython/Python/codegen.c:4201,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4183
    functionDepth: 6
    functionLinenumber: 4183
    functionLinenumberEnd: 4206
    functionName: codegen_call
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - maybe_optimize_function_call
    - USE_LABEL
    - maybe_optimize_method_call
    - codegen_validate_keywords
    - NEW_JUMP_TARGET_LABEL
    - check_caller
    - LOC
    - codegen_call_helper
    - VISIT
    - ADDOP
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: int
    signature: int codegen_call(compiler *c, expr_ty e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4211,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4214,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4218,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4221,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4221,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4221,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4227,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4233,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4233,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4233,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4236,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4240,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4242,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4246,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4247,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4249
      start: 4208
    functionDepth: 1
    functionLinenumber: 4208
    functionLinenumberEnd: 4249
    functionName: codegen_template_str
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - _Py_STR
    - ADDOP_I
    - LOC
    - ADDOP_LOAD_CONST
    - VISIT
    - ADDOP
    - asdl_seq_LEN
    - Py_NewRef
    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:4254,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4255,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:4257,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:4258,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4258,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4258,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4259,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:4259,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4260,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4261,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4262,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4262,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4263,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4265,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:4268,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4270,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:4273,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:4274,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4274,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:4274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4251
    functionDepth: 1
    functionLinenumber: 4251
    functionLinenumberEnd: 4278
    functionName: codegen_joined_str
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - asdl_seq_GET
    - _Py_STR
    - _Py_DECLARE_STR
    - ADDOP_NAME
    - ADDOP_LOAD_CONST_NEW
    - ADDOP_I
    - LOC
    - VISIT
    - asdl_seq_LEN
    - Py_NewRef
    - _Py_ID
    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:4283,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4285,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4286,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4291,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:4301,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4309
      start: 4280
    functionDepth: 1
    functionLinenumber: 4280
    functionLinenumberEnd: 4309
    functionName: codegen_interpolation
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - LOC
    - PyErr_Format
    - VISIT
    - ADDOP_LOAD_CONST
    linkageType: ''
    returnType: int
    signature: int codegen_interpolation(compiler *c, expr_ty e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4319,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4321,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:4328,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4332,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4336,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4337,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4342
      start: 4312
    functionDepth: 1
    functionLinenumber: 4312
    functionLinenumberEnd: 4342
    functionName: codegen_formatted_value
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - LOC
    - PyErr_Format
    - VISIT
    - 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:4351,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4354,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4357,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4358,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4359,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4361,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4365,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: 4350
        line_start: 4350
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4368
      start: 4344
    functionDepth: 1
    functionLinenumber: 4344
    functionLinenumberEnd: 4368
    functionName: codegen_subkwargs
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - assert
    - ADDOP_I
    - VISIT
    - ADDOP_LOAD_CONST
    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:4378,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4383,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:4384,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:4384,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:4386,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: 4388
      start: 4373
    functionDepth: 3
    functionLinenumber: 4373
    functionLinenumberEnd: 4388
    functionName: codegen_call_simple_kw_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - ADDOP_LOAD_CONST_NEW
    - PyTuple_SET_ITEM
    - Py_NewRef
    - PyTuple_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:4400,1
    - Dst: codegen_validate_keywords
      Src: /src/cpython/Python/codegen.c:4400,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4402,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4403,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4409,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4415,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4423,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4424,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4425,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4428,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:4428,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:4432,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4433,1
    - Dst: codegen_call_simple_kw_helper
      Src: /src/cpython/Python/codegen.c:4434,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4435,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4438,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4445,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4446,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4446,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4449,1
    - Dst: starunpack_helper_impl
      Src: /src/cpython/Python/codegen.c:4449,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4459,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4463,1
    - Dst: codegen_subkwargs
      Src: /src/cpython/Python/codegen.c:4463,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4465,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4471,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4474,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4475,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4483,1
    - Dst: codegen_subkwargs
      Src: /src/cpython/Python/codegen.c:4483,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4485,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4489,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4492,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4494,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: 4488
        line_start: 4488
        source_file: /src/cpython/Python/codegen.c
    - condition: (elt->kind != Starred_kind)
      pos:
        line_end: 4423
        line_start: 4423
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4496
      start: 4391
    functionDepth: 4
    functionLinenumber: 4391
    functionLinenumberEnd: 4496
    functionName: codegen_call_helper_impl
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - VISIT_SEQ
    - asdl_seq_GET
    - VISIT
    - codegen_validate_keywords
    - codegen_subkwargs
    - codegen_call_simple_kw_helper
    - ADDOP_I
    - codegen_nameop
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - starunpack_helper_impl
    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:4504,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: 4505
      start: 4498
    functionDepth: 5
    functionLinenumber: 4498
    functionLinenumberEnd: 4505
    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:4532,1
    - Dst: codegen_async_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4534,1
    - Dst: codegen_sync_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - c
    - loc
    - generators
    - gen_index
    - depth
    - elt
    - val
    - type
    - iter_pos
    argTypes:
    - compiler*
    - location
    - asdl_comprehension_seq*
    - int
    - int
    - expr_ty
    - expr_ty
    - int
    - IterStackPosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4542
      start: 4524
    functionDepth: 1
    functionLinenumber: 4524
    functionLinenumberEnd: 4542
    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                                IterStackPosition
      iter_pos)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4554,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4555,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4556,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4558,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4563,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:4563,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4564,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4582,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4583,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4585,1
    - Dst: IS_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4589,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4590,1
    - Dst: IS_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4595,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4597,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4597,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4600,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4602,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4602,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4604,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4607,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4609,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4610,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:4610,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4613,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4614,1
    - Dst: codegen_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4615,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4620,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4623,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4628,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4629,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4630,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4631,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4632,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4633,1
    - Dst: ADDOP_YIELD
      Src: /src/cpython/Python/codegen.c:4634,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4635,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4636,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4637,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4638,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4639,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4642,1
    - Dst: ADDOP_YIELD
      Src: /src/cpython/Python/codegen.c:4643,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4644,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4649,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4650,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4653,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4654,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4659,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4660,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4663,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4664,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4670,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4671,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4676,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4677,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:4678,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4682,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4690,1
    - Dst: IS_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4691,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4692,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4694,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4699,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4700,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 109
    argCount: 9
    argNames:
    - c
    - loc
    - generators
    - gen_index
    - depth
    - elt
    - val
    - type
    - iter_pos
    argTypes:
    - compiler*
    - location
    - asdl_comprehension_seq*
    - int
    - int
    - expr_ty
    - expr_ty
    - int
    - IterStackPosition
    assertStmts:
    - condition: (METADATA(c)->u_argcount == 1)
      pos:
        line_end: 4562
        line_start: 4562
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4704
      start: 4544
    functionDepth: 5
    functionLinenumber: 4544
    functionLinenumberEnd: 4704
    functionName: codegen_sync_comprehension_generator
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - USE_LABEL
    - codegen_jump_if
    - asdl_seq_GET
    - METADATA
    - VISIT
    - LOCATION
    - ADDOP_YIELD
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - ADDOP_JUMP
    - IS_JUMP_TARGET_LABEL
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - codegen_comprehension_generator
    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                                     IterStackPosition iter_pos)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4713,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4714,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4715,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4716,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4718,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4723,1
    - Dst: METADATA
      Src: /src/cpython/Python/codegen.c:4723,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4724,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4728,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4732,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4732,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4735,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4737,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:4738,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4741,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4742,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4743,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:4744,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4745,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:4746,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4747,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4748,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4750,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4752,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4753,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:4753,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4757,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4758,1
    - Dst: codegen_comprehension_generator
      Src: /src/cpython/Python/codegen.c:4759,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4764,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:4766,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4771,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4772,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4773,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4774,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4775,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4776,1
    - Dst: ADDOP_YIELD
      Src: /src/cpython/Python/codegen.c:4777,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4778,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4779,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4780,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4781,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4782,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4785,1
    - Dst: ADDOP_YIELD
      Src: /src/cpython/Python/codegen.c:4786,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4787,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4792,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4793,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4796,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4797,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4802,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4803,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4806,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4807,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4813,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4814,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4819,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:4820,1
    - Dst: LOCATION
      Src: /src/cpython/Python/codegen.c:4821,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4825,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4833,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4834,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:4836,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4838,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4840,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 94
    argCount: 9
    argNames:
    - c
    - loc
    - generators
    - gen_index
    - depth
    - elt
    - val
    - type
    - iter_pos
    argTypes:
    - compiler*
    - location
    - asdl_comprehension_seq*
    - int
    - int
    - expr_ty
    - expr_ty
    - int
    - IterStackPosition
    assertStmts:
    - condition: (METADATA(c)->u_argcount == 1)
      pos:
        line_end: 4722
        line_start: 4722
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4843
      start: 4706
    functionDepth: 5
    functionLinenumber: 4706
    functionLinenumberEnd: 4843
    functionName: codegen_async_comprehension_generator
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - _PyCompile_PushFBlock
    - ADDOP_JUMP
    - VISIT
    - assert
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    - USE_LABEL
    - asdl_seq_GET
    - ADDOP_YIELD
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - codegen_comprehension_generator
    - codegen_jump_if
    - LOC
    - _PyCompile_PopFBlock
    - LOCATION
    - ADD_YIELD_FROM
    - METADATA
    - ADDOP
    - asdl_seq_LEN
    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                                      IterStackPosition
      iter_pos)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:4850,1
    - Dst: _PyCompile_IsInInlinedComp
      Src: /src/cpython/Python/codegen.c:4851,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:4852,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/codegen.c:4857,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/codegen.c:4858,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:4859,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/codegen.c:4859,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4860,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/codegen.c:4861,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/codegen.c:4863,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4864,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/codegen.c:4865,1
    - Dst: PyList_New
      Src: /src/cpython/Python/codegen.c:4872,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4880,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4883,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4885,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/codegen.c:4888,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4898,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:4898,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4903,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4908,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: 4858
        line_start: 4858
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 4911
      start: 4845
    functionDepth: 4
    functionLinenumber: 4845
    functionLinenumberEnd: 4911
    functionName: codegen_push_inlined_comprehension_locals
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - _PyST_GetSymbol
    - ADDOP_NAME
    - PyDict_Next
    - PyList_Append
    - ADDOP_I
    - NEW_JUMP_TARGET_LABEL
    - RETURN_IF_ERROR
    - PyLong_AsLong
    - SYMBOL_TO_SCOPE
    - PyList_New
    - PyErr_Occurred
    - assert
    - ADDOP_JUMP
    - SYMTABLE_ENTRY
    - PyList_GET_SIZE
    - _PyCompile_IsInInlinedComp
    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:4918,1
    - Dst: _PyCompile_TweakInlinedComprehensionScopes
      Src: /src/cpython/Python/codegen.c:4919,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4920,1
    - Dst: codegen_push_inlined_comprehension_locals
      Src: /src/cpython/Python/codegen.c:4921,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: 4923
      start: 4913
    functionDepth: 5
    functionLinenumber: 4913
    functionLinenumberEnd: 4923
    functionName: push_inlined_comprehension_state
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - RETURN_IF_ERROR
    - _PyCompile_TweakInlinedComprehensionScopes
    - codegen_push_inlined_comprehension_locals
    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:4931,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4936,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/codegen.c:4938,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:4942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - c
    - loc
    - state
    argTypes:
    - compiler*
    - location
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4945
      start: 4925
    functionDepth: 2
    functionLinenumber: 4925
    functionLinenumberEnd: 4945
    functionName: restore_inlined_comprehension_locals
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - PyList_GET_SIZE
    - PyList_GetItem
    - ADDOP_NAME
    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:4952,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:4954,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:4955,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4958,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4960,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:4961,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4962,1
    - Dst: restore_inlined_comprehension_locals
      Src: /src/cpython/Python/codegen.c:4962,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:4963,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:4965,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4966,1
    - Dst: restore_inlined_comprehension_locals
      Src: /src/cpython/Python/codegen.c:4966,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codegen.c:4967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - c
    - loc
    - state
    argTypes:
    - compiler*
    - location
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4970
      start: 4947
    functionDepth: 3
    functionLinenumber: 4947
    functionLinenumberEnd: 4970
    functionName: codegen_pop_inlined_comprehension_locals
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - restore_inlined_comprehension_locals
    - ADDOP_I
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_JUMP
    - Py_CLEAR
    - ADDOP
    - RETURN_IF_ERROR
    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:4976,1
    - Dst: codegen_pop_inlined_comprehension_locals
      Src: /src/cpython/Python/codegen.c:4976,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:4977,1
    - Dst: _PyCompile_RevertInlinedComprehensionScopes
      Src: /src/cpython/Python/codegen.c:4977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - c
    - loc
    - state
    argTypes:
    - compiler*
    - location
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4979
      start: 4972
    functionDepth: 4
    functionLinenumber: 4972
    functionLinenumberEnd: 4979
    functionName: pop_inlined_comprehension_state
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_pop_inlined_comprehension_locals
    - RETURN_IF_ERROR
    - _PyCompile_RevertInlinedComprehensionScopes
    linkageType: ''
    returnType: int
    signature: "int pop_inlined_comprehension_state(compiler *c, location loc,\n                                _PyCompile_InlinedComprehensionState
      *state)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _PySymtable_Lookup
      Src: /src/cpython/Python/codegen.c:4989,1
    - Dst: SYMTABLE
      Src: /src/cpython/Python/codegen.c:4989,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:4996,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:4998,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5001,1
    - Dst: push_inlined_comprehension_state
      Src: /src/cpython/Python/codegen.c:5002,1
    - Dst: codegen_enter_scope
      Src: /src/cpython/Python/codegen.c:5012,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5019,1
    - Dst: _PyInstructionSequence_InsertInstruction
      Src: /src/cpython/Python/codegen.c:5020,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:5021,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5023,1
    - Dst: _PyInstructionSequence_InsertInstruction
      Src: /src/cpython/Python/codegen.c:5024,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:5025,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5026,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5027,1
    - Dst: _PyInstructionSequence_InsertInstruction
      Src: /src/cpython/Python/codegen.c:5028,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:5029,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5031,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codegen.c:5038,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:5053,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5058,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5060,1
    - Dst: codegen_comprehension_generator
      Src: /src/cpython/Python/codegen.c:5063,1
    - Dst: pop_inlined_comprehension_state
      Src: /src/cpython/Python/codegen.c:5069,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5076,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5076,1
    - Dst: codegen_wrap_in_stopiteration_handler
      Src: /src/cpython/Python/codegen.c:5079,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/codegen.c:5084,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:5085,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5090,1
    - Dst: codegen_make_closure
      Src: /src/cpython/Python/codegen.c:5091,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/codegen.c:5094,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5096,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5097,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5100,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5101,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5102,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5103,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/codegen.c:5109,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:5112,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:5113,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:5114,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:5115,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:5116,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 103
    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: 5118
      start: 4981
    functionDepth: 6
    functionLinenumber: 4981
    functionLinenumberEnd: 5118
    functionName: codegen_comprehension
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_wrap_in_stopiteration_handler
    - _PyCompile_ExitScope
    - _PySymtable_Lookup
    - SYMTABLE
    - VISIT
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    - asdl_seq_GET
    - _PyInstructionSequence_InsertInstruction
    - ADDOP_I
    - Py_XDECREF
    - pop_inlined_comprehension_state
    - codegen_comprehension_generator
    - push_inlined_comprehension_state
    - codegen_enter_scope
    - LOC
    - _PyCompile_OptimizeAndAssemble
    - INSTR_SEQUENCE
    - ADD_YIELD_FROM
    - Py_CLEAR
    - PyErr_Format
    - ADDOP
    - codegen_make_closure
    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:5123,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:5124,1
    - Dst: codegen_comprehension
      Src: /src/cpython/Python/codegen.c:5125,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:5125,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: 5122
        line_start: 5122
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5128
      start: 5120
    functionDepth: 7
    functionLinenumber: 5120
    functionLinenumberEnd: 5128
    functionName: codegen_genexp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_comprehension
    - _Py_DECLARE_STR
    - _Py_STR
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_genexp(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5133,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:5134,1
    - Dst: codegen_comprehension
      Src: /src/cpython/Python/codegen.c:5135,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:5135,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: 5132
        line_start: 5132
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5138
      start: 5130
    functionDepth: 7
    functionLinenumber: 5130
    functionLinenumberEnd: 5138
    functionName: codegen_listcomp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_comprehension
    - _Py_DECLARE_STR
    - _Py_STR
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_listcomp(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5143,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:5144,1
    - Dst: codegen_comprehension
      Src: /src/cpython/Python/codegen.c:5145,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:5145,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: 5142
        line_start: 5142
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5148
      start: 5140
    functionDepth: 7
    functionLinenumber: 5140
    functionLinenumberEnd: 5148
    functionName: codegen_setcomp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_comprehension
    - _Py_DECLARE_STR
    - _Py_STR
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_setcomp(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5154,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/codegen.c:5155,1
    - Dst: codegen_comprehension
      Src: /src/cpython/Python/codegen.c:5156,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/codegen.c:5156,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: 5153
        line_start: 5153
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5159
      start: 5151
    functionDepth: 7
    functionLinenumber: 5151
    functionLinenumberEnd: 5159
    functionName: codegen_dictcomp
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_comprehension
    - _Py_DECLARE_STR
    - _Py_STR
    - assert
    linkageType: ''
    returnType: int
    signature: int codegen_dictcomp(compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - k
    argTypes:
    - compiler*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5167
      start: 5162
    functionDepth: 0
    functionLinenumber: 5162
    functionLinenumberEnd: 5167
    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:5172,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5173,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5174,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5175,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5177,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5178,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5179,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5180,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5181,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5182,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5183,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5184,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5185,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5187,1
    - Dst: POP_EXCEPT_AND_RERAISE
      Src: /src/cpython/Python/codegen.c:5188,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - c
    - cleanup
    argTypes:
    - compiler*
    - jump_target_label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5192
      start: 5170
    functionDepth: 1
    functionLinenumber: 5170
    functionLinenumberEnd: 5192
    functionName: codegen_with_except_finish
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - POP_EXCEPT_AND_RERAISE
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - ADDOP_JUMP
    - 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:5221,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5222,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5224,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5226,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5227,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5228,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5229,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5232,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5233,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5234,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5235,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5236,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5237,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5238,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5239,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5240,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5241,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5242,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5243,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5245,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5248,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5249,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:5249,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5252,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5256,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5260,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:5262,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5265,1
    - Dst: codegen_async_with_inner
      Src: /src/cpython/Python/codegen.c:5265,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:5268,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5270,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5276,1
    - Dst: codegen_call_exit_with_nones
      Src: /src/cpython/Python/codegen.c:5276,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5277,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5278,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5279,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5280,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5282,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5284,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5287,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5289,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5290,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5291,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5292,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5293,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5294,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5295,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5296,1
    - Dst: codegen_with_except_finish
      Src: /src/cpython/Python/codegen.c:5296,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 3
    argNames:
    - c
    - s
    - pos
    argTypes:
    - compiler*
    - stmt_ty
    - int
    assertStmts:
    - condition: (s->kind == AsyncWith_kind)
      pos:
        line_end: 5223
        line_start: 5223
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5300
      start: 5218
    functionDepth: 2
    functionLinenumber: 5218
    functionLinenumberEnd: 5300
    functionName: codegen_async_with_inner
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - codegen_async_with_inner
    - _PyCompile_PushFBlock
    - ADDOP_JUMP
    - assert
    - VISIT
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    - USE_LABEL
    - asdl_seq_GET
    - codegen_with_except_finish
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - VISIT_SEQ
    - LOC
    - _PyCompile_PopFBlock
    - ADD_YIELD_FROM
    - ADDOP
    - asdl_seq_LEN
    - codegen_call_exit_with_nones
    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:5305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5306
      start: 5302
    functionDepth: 3
    functionLinenumber: 5302
    functionLinenumberEnd: 5306
    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:5333,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5335,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5337,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5338,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5339,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5340,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5343,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5345,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5346,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5347,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5348,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5349,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5350,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5351,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5352,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5355,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5356,1
    - Dst: _PyCompile_PushFBlock
      Src: /src/cpython/Python/codegen.c:5356,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5359,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5363,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5367,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:5369,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5372,1
    - Dst: codegen_with_inner
      Src: /src/cpython/Python/codegen.c:5372,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5375,1
    - Dst: _PyCompile_PopFBlock
      Src: /src/cpython/Python/codegen.c:5376,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5383,1
    - Dst: codegen_call_exit_with_nones
      Src: /src/cpython/Python/codegen.c:5383,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5384,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5385,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5388,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5390,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5391,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5392,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5393,1
    - Dst: codegen_with_except_finish
      Src: /src/cpython/Python/codegen.c:5393,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5395,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: 5334
        line_start: 5334
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5397
      start: 5330
    functionDepth: 2
    functionLinenumber: 5330
    functionLinenumberEnd: 5397
    functionName: codegen_with_inner
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - codegen_with_inner
    - USE_LABEL
    - VISIT_SEQ
    - asdl_seq_GET
    - assert
    - _PyCompile_PushFBlock
    - codegen_with_except_finish
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - LOC
    - ADDOP_JUMP
    - _PyCompile_PopFBlock
    - VISIT
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - codegen_call_exit_with_nones
    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:5402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5403
      start: 5399
    functionDepth: 3
    functionLinenumber: 5399
    functionLinenumberEnd: 5403
    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:5408,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5411,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5414,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5415,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5416,1
    - Dst: codegen_boolop
      Src: /src/cpython/Python/codegen.c:5419,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5421,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5422,1
    - Dst: ADDOP_BINARY
      Src: /src/cpython/Python/codegen.c:5423,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5426,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5428,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5431,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5432,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5435,1
    - Dst: unaryop
      Src: /src/cpython/Python/codegen.c:5435,1
    - Dst: codegen_lambda
      Src: /src/cpython/Python/codegen.c:5439,1
    - Dst: codegen_ifexp
      Src: /src/cpython/Python/codegen.c:5441,1
    - Dst: codegen_dict
      Src: /src/cpython/Python/codegen.c:5443,1
    - Dst: codegen_set
      Src: /src/cpython/Python/codegen.c:5445,1
    - Dst: codegen_genexp
      Src: /src/cpython/Python/codegen.c:5447,1
    - Dst: codegen_listcomp
      Src: /src/cpython/Python/codegen.c:5449,1
    - Dst: codegen_setcomp
      Src: /src/cpython/Python/codegen.c:5451,1
    - Dst: codegen_dictcomp
      Src: /src/cpython/Python/codegen.c:5453,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/codegen.c:5455,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:5455,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5456,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5459,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5462,1
    - Dst: ADDOP_YIELD
      Src: /src/cpython/Python/codegen.c:5464,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/codegen.c:5467,1
    - Dst: SYMTABLE_ENTRY
      Src: /src/cpython/Python/codegen.c:5467,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5468,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5470,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5471,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5473,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5474,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5475,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5476,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5479,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5480,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5481,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5482,1
    - Dst: ADD_YIELD_FROM
      Src: /src/cpython/Python/codegen.c:5483,1
    - Dst: codegen_compare
      Src: /src/cpython/Python/codegen.c:5486,1
    - Dst: codegen_call
      Src: /src/cpython/Python/codegen.c:5488,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5490,1
    - Dst: codegen_joined_str
      Src: /src/cpython/Python/codegen.c:5493,1
    - Dst: codegen_template_str
      Src: /src/cpython/Python/codegen.c:5495,1
    - Dst: codegen_formatted_value
      Src: /src/cpython/Python/codegen.c:5497,1
    - Dst: codegen_interpolation
      Src: /src/cpython/Python/codegen.c:5499,1
    - Dst: can_optimize_super_call
      Src: /src/cpython/Python/codegen.c:5503,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5504,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5506,1
    - Dst: load_args_for_super
      Src: /src/cpython/Python/codegen.c:5506,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5507,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5509,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:5510,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5511,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5515,1
    - Dst: _PyCompile_MaybeAddStaticAttributeToClass
      Src: /src/cpython/Python/codegen.c:5515,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5516,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5517,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:5518,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5521,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5524,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5527,1
    - Dst: codegen_subscript
      Src: /src/cpython/Python/codegen.c:5532,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5538,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5541,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5546,1
    - Dst: codegen_slice
      Src: /src/cpython/Python/codegen.c:5546,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:5549,1
    - Dst: codegen_list
      Src: /src/cpython/Python/codegen.c:5552,1
    - Dst: codegen_tuple
      Src: /src/cpython/Python/codegen.c:5554,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 138
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5405
    functionDepth: 8
    functionLinenumber: 5405
    functionLinenumberEnd: 5557
    functionName: codegen_visit_expr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_boolop
    - codegen_joined_str
    - update_start_location_to_match_attr
    - codegen_template_str
    - codegen_listcomp
    - Py_EnterRecursiveCall
    - VISIT
    - load_args_for_super
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    - codegen_list
    - codegen_lambda
    - _PyCompile_MaybeAddStaticAttributeToClass
    - codegen_setcomp
    - codegen_interpolation
    - codegen_call
    - ADDOP_YIELD
    - _PyCompile_Error
    - ADDOP_NAME
    - codegen_slice
    - ADDOP_I
    - SCOPE_TYPE
    - codegen_nameop
    - codegen_formatted_value
    - codegen_genexp
    - can_optimize_super_call
    - codegen_subscript
    - ADDOP_BINARY
    - codegen_tuple
    - ADDOP
    - LOC
    - codegen_set
    - unaryop
    - _PyST_IsFunctionLike
    - ADD_YIELD_FROM
    - codegen_ifexp
    - codegen_dict
    - SYMTABLE_ENTRY
    - asdl_seq_LEN
    - codegen_compare
    - codegen_dictcomp
    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: 5569
      start: 5559
    functionDepth: 0
    functionLinenumber: 5559
    functionLinenumberEnd: 5569
    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:5574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5577
      start: 5571
    functionDepth: 1
    functionLinenumber: 5571
    functionLinenumberEnd: 5577
    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:5582,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5585,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5589,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5590,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:5591,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5592,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5595,1
    - Dst: should_apply_two_element_slice_optimization
      Src: /src/cpython/Python/codegen.c:5596,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5597,1
    - Dst: codegen_slice_two_parts
      Src: /src/cpython/Python/codegen.c:5597,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5598,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5599,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5600,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5601,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5604,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5605,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5606,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5607,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5611,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:5611,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:5614,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5620,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5622,1
    - Dst: ADDOP_INPLACE
      Src: /src/cpython/Python/codegen.c:5623,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5625,1
    - Dst: update_start_location_to_match_attr
      Src: /src/cpython/Python/codegen.c:5629,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5630,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5631,1
    - Dst: should_apply_two_element_slice_optimization
      Src: /src/cpython/Python/codegen.c:5634,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5635,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5636,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5637,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5638,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5641,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5642,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5643,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:5647,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/codegen.c:5649,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: 5581
        line_start: 5581
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5652
      start: 5579
    functionDepth: 3
    functionLinenumber: 5579
    functionLinenumberEnd: 5652
    functionName: codegen_augassign
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - update_start_location_to_match_attr
    - assert
    - ADDOP
    - ADDOP_NAME
    - ADDOP_I
    - ADDOP_INPLACE
    - LOC
    - Py_UNREACHABLE
    - codegen_nameop
    - PyErr_Format
    - VISIT
    - should_apply_two_element_slice_optimization
    - RETURN_IF_ERROR
    - codegen_slice_two_parts
    linkageType: ''
    returnType: int
    signature: int codegen_augassign(compiler *c, stmt_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5657,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5658,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5660
      start: 5654
    functionDepth: 1
    functionLinenumber: 5654
    functionLinenumberEnd: 5660
    functionName: codegen_check_ann_expr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP
    - LOC
    - VISIT
    linkageType: ''
    returnType: int
    signature: int codegen_check_ann_expr(compiler *c, expr_ty e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5668,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5671,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5674,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:5681,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5683,1
    - Dst: codegen_check_ann_subscr
      Src: /src/cpython/Python/codegen.c:5683,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5683,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5690
      start: 5662
    functionDepth: 2
    functionLinenumber: 5662
    functionLinenumberEnd: 5690
    functionName: codegen_check_ann_subscr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - codegen_check_ann_expr
    - codegen_check_ann_subscr
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    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:5695,1
    - Dst: FUTURE_FEATURES
      Src: /src/cpython/Python/codegen.c:5697,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5700,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5704,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5705,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5711,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5712,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5714,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5715,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:5715,1
    - Dst: _PyCompile_MaybeMangle
      Src: /src/cpython/Python/codegen.c:5716,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5717,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5718,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5722,1
    - Dst: _PyCompile_AddDeferredAnnotation
      Src: /src/cpython/Python/codegen.c:5722,1
    - Dst: SCOPE_TYPE
      Src: /src/cpython/Python/codegen.c:5725,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5726,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:5726,1
    - Dst: ADDOP_NAME
      Src: /src/cpython/Python/codegen.c:5729,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/codegen.c:5729,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5731,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5732,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5733,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5740,1
    - Dst: codegen_check_ann_expr
      Src: /src/cpython/Python/codegen.c:5746,1
    - Dst: codegen_check_ann_subscr
      Src: /src/cpython/Python/codegen.c:5747,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/codegen.c:5752,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts:
    - condition: (s->kind == AnnAssign_kind)
      pos:
        line_end: 5699
        line_start: 5699
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5758
      start: 5692
    functionDepth: 3
    functionLinenumber: 5692
    functionLinenumberEnd: 5758
    functionName: codegen_annassign
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - FUTURE_FEATURES
    - codegen_check_ann_expr
    - _PyCompile_AddDeferredAnnotation
    - assert
    - ADDOP_NAME
    - codegen_check_ann_subscr
    - ADDOP_I
    - SCOPE_TYPE
    - LOC
    - PyErr_Format
    - VISIT
    - ADDOP
    - RETURN_IF_ERROR
    - _PyCompile_MaybeMangle
    - ADDOP_LOAD_CONST_NEW
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int codegen_annassign(compiler *c, stmt_ty s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5763,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5767,1
    - Dst: check_subscripter
      Src: /src/cpython/Python/codegen.c:5767,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5768,1
    - Dst: check_index
      Src: /src/cpython/Python/codegen.c:5768,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5771,1
    - Dst: should_apply_two_element_slice_optimization
      Src: /src/cpython/Python/codegen.c:5772,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5775,1
    - Dst: codegen_slice_two_parts
      Src: /src/cpython/Python/codegen.c:5775,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5777,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:5780,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5781,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5785,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5788,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5791,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:5794,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - compiler*
    - expr_ty
    assertStmts:
    - condition: (ctx == Store)
      pos:
        line_end: 5779
        line_start: 5779
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5799
      start: 5760
    functionDepth: 2
    functionLinenumber: 5760
    functionLinenumberEnd: 5799
    functionName: codegen_subscript
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - check_index
    - check_subscripter
    - ADDOP
    - assert
    - ADDOP_I
    - LOC
    - VISIT
    - should_apply_two_element_slice_optimization
    - RETURN_IF_ERROR
    - codegen_slice_two_parts
    linkageType: ''
    returnType: int
    signature: int codegen_subscript(compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5805,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5808,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5808,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5812,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:5815,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5819
      start: 5801
    functionDepth: 1
    functionLinenumber: 5801
    functionLinenumberEnd: 5819
    functionName: codegen_slice_two_parts
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 2
    functionsReached:
    - ADDOP_LOAD_CONST
    - LOC
    - VISIT
    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:5825,1
    - Dst: is_constant_slice
      Src: /src/cpython/Python/codegen.c:5827,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/codegen.c:5840,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:5844,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5844,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5848,1
    - Dst: codegen_slice_two_parts
      Src: /src/cpython/Python/codegen.c:5848,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:5852,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5855,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:5855,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: 5824
        line_start: 5824
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5857
      start: 5821
    functionDepth: 3
    functionLinenumber: 5821
    functionLinenumberEnd: 5857
    functionName: codegen_slice
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 1
    functionsReached:
    - VISIT
    - is_constant_slice
    - ADDOP_I
    - LOC
    - PySlice_New
    - assert
    - RETURN_IF_ERROR
    - codegen_slice_two_parts
    - ADDOP_LOAD_CONST_NEW
    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: 5874
      start: 5872
    functionDepth: 0
    functionLinenumber: 5872
    functionLinenumberEnd: 5874
    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: 5877
      start: 5875
    functionDepth: 0
    functionLinenumber: 5875
    functionLinenumberEnd: 5877
    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: 5881
      start: 5879
    functionDepth: 0
    functionLinenumber: 5879
    functionLinenumberEnd: 5881
    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:5891,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/codegen.c:5893,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:5898,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: 5902
      start: 5883
    functionDepth: 1
    functionLinenumber: 5883
    functionLinenumberEnd: 5902
    functionName: ensure_fail_pop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - NEW_JUMP_TARGET_LABEL
    - PyMem_Realloc
    - 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:5911,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5912,1
    - Dst: ensure_fail_pop
      Src: /src/cpython/Python/codegen.c:5912,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:5913,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: 5915
      start: 5905
    functionDepth: 2
    functionLinenumber: 5905
    functionLinenumberEnd: 5915
    functionName: jump_to_fail_pop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - RETURN_IF_ERROR
    - ADDOP_JUMP
    - PyList_GET_SIZE
    - ensure_fail_pop
    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:5923,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5927,1
    - Dst: codegen_addop_noarg
      Src: /src/cpython/Python/codegen.c:5928,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:5928,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:5930,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:5935,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:5936,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: 5922
        line_start: 5922
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 5939
      start: 5918
    functionDepth: 2
    functionLinenumber: 5918
    functionLinenumberEnd: 5939
    functionName: emit_and_reset_fail_pop
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - USE_LABEL
    - codegen_addop_noarg
    - PyMem_Free
    - assert
    - INSTR_SEQUENCE
    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:5944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - loc
    - n
    argTypes:
    - compiler*
    - location
    - identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5946
      start: 5941
    functionDepth: 1
    functionLinenumber: 5941
    functionLinenumberEnd: 5946
    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:5953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - loc
    - count
    argTypes:
    - compiler*
    - location
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5956
      start: 5949
    functionDepth: 1
    functionLinenumber: 5949
    functionLinenumberEnd: 5956
    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:5963,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/codegen.c:5967,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5968,1
    - Dst: codegen_error_duplicate_store
      Src: /src/cpython/Python/codegen.c:5970,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:5973,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5974,1
    - Dst: codegen_pattern_helper_rotate
      Src: /src/cpython/Python/codegen.c:5974,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:5975,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/codegen.c:5975,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: 5977
      start: 5958
    functionDepth: 6
    functionLinenumber: 5958
    functionLinenumberEnd: 5977
    functionName: codegen_pattern_helper_store_name
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    - codegen_error_duplicate_store
    - codegen_pattern_helper_rotate
    - PyList_Append
    - ADDOP
    - RETURN_IF_ERROR
    - PyList_GET_SIZE
    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:5984,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:5987,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5991,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:5995,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:5999,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6004,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - c
    - loc
    - elts
    argTypes:
    - compiler*
    - location
    - asdl_pattern_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6007
      start: 5980
    functionDepth: 1
    functionLinenumber: 5980
    functionLinenumberEnd: 6007
    functionName: codegen_pattern_unpack_helper
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_I
    - asdl_seq_LEN
    - _PyCompile_Error
    - 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:6014,1
    - Dst: codegen_pattern_unpack_helper
      Src: /src/cpython/Python/codegen.c:6014,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6015,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6022,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6023,1
    - Dst: codegen_pattern_subpattern
      Src: /src/cpython/Python/codegen.c:6023,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: 6026
      start: 6009
    functionDepth: 2
    functionLinenumber: 6009
    functionLinenumberEnd: 6026
    functionName: pattern_helper_sequence_unpack
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - codegen_pattern_subpattern
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - 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:6038,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6040,1
    - Dst: WILDCARD_CHECK
      Src: /src/cpython/Python/codegen.c:6041,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6045,1
    - Dst: WILDCARD_STAR_CHECK
      Src: /src/cpython/Python/codegen.c:6045,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6048,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6050,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:6050,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6055,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6056,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:6056,1
    - Dst: ADDOP_BINARY
      Src: /src/cpython/Python/codegen.c:6057,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6059,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6060,1
    - Dst: codegen_pattern_subpattern
      Src: /src/cpython/Python/codegen.c:6060,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6064,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: 6044
        line_start: 6044
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6066
      start: 6031
    functionDepth: 1
    functionLinenumber: 6031
    functionLinenumberEnd: 6066
    functionName: pattern_helper_sequence_subscr
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP_BINARY
    - asdl_seq_GET
    - WILDCARD_STAR_CHECK
    - codegen_pattern_subpattern
    - WILDCARD_CHECK
    - ADDOP_I
    - PyLong_FromSsize_t
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - ADDOP_LOAD_CONST_NEW
    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:6075,1
    - Dst: codegen_pattern
      Src: /src/cpython/Python/codegen.c:6075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6078
      start: 6069
    functionDepth: 1
    functionLinenumber: 6069
    functionLinenumberEnd: 6078
    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:6083,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6089,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6089,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6092,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6092,1
    - Dst: codegen_pattern_helper_store_name
      Src: /src/cpython/Python/codegen.c:6094,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6094,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6098,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6098,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6099,1
    - Dst: codegen_pattern
      Src: /src/cpython/Python/codegen.c:6099,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6102,1
    - Dst: codegen_pattern_helper_store_name
      Src: /src/cpython/Python/codegen.c:6102,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6102,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: 6082
        line_start: 6082
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6104
      start: 6080
    functionDepth: 7
    functionLinenumber: 6080
    functionLinenumberEnd: 6104
    functionName: codegen_pattern_as
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_pattern
    - _PyCompile_Error
    - ADDOP_I
    - LOC
    - codegen_pattern_helper_store_name
    - assert
    - RETURN_IF_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:6109,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6110,1
    - Dst: codegen_pattern_helper_store_name
      Src: /src/cpython/Python/codegen.c:6111,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6111,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: 6108
        line_start: 6108
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6113
      start: 6106
    functionDepth: 7
    functionLinenumber: 6106
    functionLinenumberEnd: 6113
    functionName: codegen_pattern_star
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - RETURN_IF_ERROR
    - codegen_pattern_helper_store_name
    - LOC
    - assert
    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:6120,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6122,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6124,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/codegen.c:6125,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6126,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6126,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6127,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: 6133
      start: 6115
    functionDepth: 2
    functionLinenumber: 6115
    functionLinenumberEnd: 6133
    functionName: validate_kwd_attrs
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - _PyCompile_Error
    - PyUnicode_Compare
    - LOC
    - asdl_seq_LEN
    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:6138,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6142,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6143,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6144,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6149,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6149,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6153,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6153,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6156,1
    - Dst: validate_kwd_attrs
      Src: /src/cpython/Python/codegen.c:6156,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:6158,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/codegen.c:6159,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6165,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/codegen.c:6166,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:6166,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6168,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6168,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6169,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6169,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6170,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6170,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:6171,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6171,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6172,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6172,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6175,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6175,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6175,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6176,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6176,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6183,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6187,1
    - Dst: WILDCARD_CHECK
      Src: /src/cpython/Python/codegen.c:6189,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6190,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6190,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6193,1
    - Dst: codegen_pattern_subpattern
      Src: /src/cpython/Python/codegen.c:6193,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: 6137
        line_start: 6137
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6197
      start: 6135
    functionDepth: 3
    functionLinenumber: 6135
    functionLinenumberEnd: 6197
    functionName: codegen_pattern_class
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - jump_to_fail_pop
    - codegen_pattern_subpattern
    - VISIT
    - WILDCARD_CHECK
    - _PyCompile_Error
    - ADDOP_LOAD_CONST_NEW
    - ADDOP_I
    - LOC
    - validate_kwd_attrs
    - PyTuple_SET_ITEM
    - ADDOP_LOAD_CONST
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - Py_NewRef
    - PyTuple_New
    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:6204,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6208,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6208,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6209,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/codegen.c:6213,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6214,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6217,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6217,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6219,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/codegen.c:6219,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6223,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6223,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:6225,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: 6227
      start: 6199
    functionDepth: 8
    functionLinenumber: 6199
    functionLinenumberEnd: 6227
    functionName: codegen_pattern_mapping_key
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - PySet_Add
    - _PyCompile_Error
    - LOC
    - PySet_Contains
    - VISIT
    - RETURN_IF_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:6233,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6236,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6237,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6242,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6242,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6248,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6248,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6249,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6249,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6249,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6253,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6253,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6258,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6258,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6259,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6259,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:6259,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6260,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6260,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6261,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6261,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6261,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6264,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6264,1
    - Dst: PySet_New
      Src: /src/cpython/Python/codegen.c:6271,1
    - Dst: codegen_pattern_mapping_key
      Src: /src/cpython/Python/codegen.c:6276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6281,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6285,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6285,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6286,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6286,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6289,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6289,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:6290,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6290,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6291,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6291,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6292,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6292,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6292,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6295,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6295,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6299,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6300,1
    - Dst: codegen_pattern_subpattern
      Src: /src/cpython/Python/codegen.c:6300,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6312,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6312,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6313,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6313,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6314,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6314,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6315,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6315,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6317,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6317,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6318,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6318,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6319,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6319,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6321,1
    - Dst: codegen_pattern_helper_store_name
      Src: /src/cpython/Python/codegen.c:6321,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6321,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6324,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6324,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6325,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6325,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: 6232
        line_start: 6232
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6328
      start: 6229
    functionDepth: 13
    functionLinenumber: 6229
    functionLinenumberEnd: 6328
    functionName: codegen_pattern_mapping
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - jump_to_fail_pop
    - asdl_seq_GET
    - codegen_pattern_subpattern
    - _PyCompile_Error
    - PySet_New
    - ADDOP_COMPARE
    - LOC
    - PyLong_FromSsize_t
    - ADDOP_I
    - ADDOP_LOAD_CONST
    - codegen_pattern_helper_store_name
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - Py_DECREF
    - ADDOP_LOAD_CONST_NEW
    - codegen_pattern_mapping_key
    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:6333,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:6334,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6335,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6336,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/codegen.c:6339,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6346,1
    - Dst: PyList_New
      Src: /src/cpython/Python/codegen.c:6347,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/codegen.c:6351,1
    - Dst: codegen_addop_i
      Src: /src/cpython/Python/codegen.c:6357,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:6357,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6357,1
    - Dst: codegen_pattern
      Src: /src/cpython/Python/codegen.c:6358,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6362,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6367,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/codegen.c:6368,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6370,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:6377,1
    - Dst: PySequence_Index
      Src: /src/cpython/Python/codegen.c:6378,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/codegen.c:6380,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6391,1
    - Dst: PyList_GetSlice
      Src: /src/cpython/Python/codegen.c:6394,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/codegen.c:6397,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/codegen.c:6398,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:6401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6404,1
    - Dst: codegen_pattern_helper_rotate
      Src: /src/cpython/Python/codegen.c:6412,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6412,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6419,1
    - Dst: codegen_addop_j
      Src: /src/cpython/Python/codegen.c:6420,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:6420,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6420,1
    - Dst: emit_and_reset_fail_pop
      Src: /src/cpython/Python/codegen.c:6421,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6426,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/codegen.c:6428,1
    - Dst: codegen_addop_noarg
      Src: /src/cpython/Python/codegen.c:6432,1
    - Dst: INSTR_SEQUENCE
      Src: /src/cpython/Python/codegen.c:6432,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6432,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6433,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6433,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:6437,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6438,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6445,1
    - Dst: codegen_pattern_helper_rotate
      Src: /src/cpython/Python/codegen.c:6448,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6448,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:6453,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/codegen.c:6454,1
    - Dst: codegen_error_duplicate_store
      Src: /src/cpython/Python/codegen.c:6459,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6459,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/codegen.c:6462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6467,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6470,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6470,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6473,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6473,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:6475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6476,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/codegen.c:6477,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: 6390
        line_start: 6390
        source_file: /src/cpython/Python/codegen.c
    - condition: (control == NULL)
      pos:
        line_end: 6366
        line_start: 6366
        source_file: /src/cpython/Python/codegen.c
    - condition: (p->kind == MatchOr_kind)
      pos:
        line_end: 6332
        line_start: 6332
        source_file: /src/cpython/Python/codegen.c
    - condition: (size > 1)
      pos:
        line_end: 6335
        line_start: 6335
        source_file: /src/cpython/Python/codegen.c
    - condition: (control)
      pos:
        line_end: 6418
        line_start: 6418
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6479
      start: 6330
    functionDepth: 12
    functionLinenumber: 6330
    functionLinenumberEnd: 6479
    functionName: codegen_pattern_or
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyList_GetSlice
    - jump_to_fail_pop
    - PyList_GET_ITEM
    - PySequence_Index
    - assert
    - emit_and_reset_fail_pop
    - PyList_SetSlice
    - USE_LABEL
    - asdl_seq_GET
    - codegen_error_duplicate_store
    - codegen_addop_i
    - _PyCompile_Error
    - NEW_JUMP_TARGET_LABEL
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - PyMem_Free
    - codegen_pattern
    - Py_INCREF
    - codegen_pattern_helper_rotate
    - LOC
    - PyErr_Clear
    - Py_DECREF
    - INSTR_SEQUENCE
    - codegen_addop_j
    - Py_NewRef
    - codegen_addop_noarg
    - PySequence_Contains
    - Py_SETREF
    - ADDOP
    - asdl_seq_LEN
    - PyList_GET_SIZE
    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:6486,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6488,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6494,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6498,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6498,1
    - Dst: WILDCARD_STAR_CHECK
      Src: /src/cpython/Python/codegen.c:6500,1
    - Dst: WILDCARD_CHECK
      Src: /src/cpython/Python/codegen.c:6505,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6509,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6509,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6510,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6510,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6510,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6513,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6513,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6514,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6514,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:6514,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6515,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6515,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6516,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6516,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6516,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6520,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6520,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/cpython/Python/codegen.c:6521,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6521,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/codegen.c:6521,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6522,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6522,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6523,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6523,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6523,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6529,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6529,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6532,1
    - Dst: pattern_helper_sequence_subscr
      Src: /src/cpython/Python/codegen.c:6532,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6532,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6535,1
    - Dst: pattern_helper_sequence_unpack
      Src: /src/cpython/Python/codegen.c:6535,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6535,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: 6485
        line_start: 6485
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6538
      start: 6482
    functionDepth: 3
    functionLinenumber: 6482
    functionLinenumberEnd: 6538
    functionName: codegen_pattern_sequence
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - pattern_helper_sequence_subscr
    - asdl_seq_GET
    - WILDCARD_STAR_CHECK
    - jump_to_fail_pop
    - pattern_helper_sequence_unpack
    - WILDCARD_CHECK
    - _PyCompile_Error
    - ADDOP_COMPARE
    - LOC
    - PyLong_FromSsize_t
    - assert
    - ADDOP
    - RETURN_IF_ERROR
    - asdl_seq_LEN
    - ADDOP_LOAD_CONST_NEW
    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:6543,1
    - Dst: MATCH_VALUE_EXPR
      Src: /src/cpython/Python/codegen.c:6545,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6547,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6547,1
    - Dst: VISIT
      Src: /src/cpython/Python/codegen.c:6549,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6550,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6550,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6551,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6551,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6552,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6552,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6552,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: 6542
        line_start: 6542
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6554
      start: 6540
    functionDepth: 3
    functionLinenumber: 6540
    functionLinenumberEnd: 6554
    functionName: codegen_pattern_value
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - jump_to_fail_pop
    - assert
    - _PyCompile_Error
    - ADDOP_COMPARE
    - LOC
    - VISIT
    - ADDOP
    - RETURN_IF_ERROR
    - MATCH_VALUE_EXPR
    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:6559,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/cpython/Python/codegen.c:6560,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6560,1
    - Dst: ADDOP_COMPARE
      Src: /src/cpython/Python/codegen.c:6561,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6561,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6562,1
    - Dst: jump_to_fail_pop
      Src: /src/cpython/Python/codegen.c:6562,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6562,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: 6558
        line_start: 6558
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6564
      start: 6556
    functionDepth: 3
    functionLinenumber: 6556
    functionLinenumberEnd: 6564
    functionName: codegen_pattern_singleton
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - jump_to_fail_pop
    - ADDOP_COMPARE
    - LOC
    - assert
    - RETURN_IF_ERROR
    - ADDOP_LOAD_CONST
    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:6571,1
    - Dst: codegen_pattern_singleton
      Src: /src/cpython/Python/codegen.c:6573,1
    - Dst: codegen_pattern_sequence
      Src: /src/cpython/Python/codegen.c:6575,1
    - Dst: codegen_pattern_mapping
      Src: /src/cpython/Python/codegen.c:6577,1
    - Dst: codegen_pattern_class
      Src: /src/cpython/Python/codegen.c:6579,1
    - Dst: codegen_pattern_star
      Src: /src/cpython/Python/codegen.c:6581,1
    - Dst: codegen_pattern_as
      Src: /src/cpython/Python/codegen.c:6583,1
    - Dst: codegen_pattern_or
      Src: /src/cpython/Python/codegen.c:6585,1
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/codegen.c:6590,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - c
    - p
    - pc
    argTypes:
    - compiler*
    - pattern_ty
    - pattern_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6591
      start: 6566
    functionDepth: 14
    functionLinenumber: 6566
    functionLinenumberEnd: 6591
    functionName: codegen_pattern
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 3
    functionsReached:
    - codegen_pattern_as
    - _PyCompile_Error
    - codegen_pattern_class
    - codegen_pattern_mapping
    - codegen_pattern_star
    - codegen_pattern_singleton
    - LOC
    - codegen_pattern_or
    - codegen_pattern_value
    - codegen_pattern_sequence
    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:6596,1
    - Dst: NEW_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/codegen.c:6597,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/codegen.c:6598,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6599,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6600,1
    - Dst: WILDCARD_CHECK
      Src: /src/cpython/Python/codegen.c:6601,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6603,1
    - Dst: ADDOP_I
      Src: /src/cpython/Python/codegen.c:6606,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6606,1
    - Dst: PyList_New
      Src: /src/cpython/Python/codegen.c:6608,1
    - Dst: codegen_pattern
      Src: /src/cpython/Python/codegen.c:6618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6619,1
    - Dst: assert
      Src: /src/cpython/Python/codegen.c:6622,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/codegen.c:6624,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/codegen.c:6626,1
    - Dst: codegen_nameop
      Src: /src/cpython/Python/codegen.c:6627,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6628,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/codegen.c:6632,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6635,1
    - Dst: ensure_fail_pop
      Src: /src/cpython/Python/codegen.c:6635,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6636,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:6636,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6636,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6641,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:6643,1
    - Dst: ADDOP_JUMP
      Src: /src/cpython/Python/codegen.c:6644,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6648,1
    - Dst: emit_and_reset_fail_pop
      Src: /src/cpython/Python/codegen.c:6648,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6648,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/codegen.c:6653,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6656,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6656,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6660,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6660,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/codegen.c:6663,1
    - Dst: codegen_jump_if
      Src: /src/cpython/Python/codegen.c:6663,1
    - Dst: LOC
      Src: /src/cpython/Python/codegen.c:6663,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/codegen.c:6665,1
    - Dst: USE_LABEL
      Src: /src/cpython/Python/codegen.c:6667,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: 6598
        line_start: 6598
        source_file: /src/cpython/Python/codegen.c
    - condition: (!pc->on_top)
      pos:
        line_end: 6621
        line_start: 6621
        source_file: /src/cpython/Python/codegen.c
    constantsTouched: []
    func_position:
      end: 6669
      start: 6593
    functionDepth: 15
    functionLinenumber: 6593
    functionLinenumberEnd: 6669
    functionName: codegen_match_inner
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - ADDOP_JUMP
    - VISIT
    - WILDCARD_CHECK
    - assert
    - RETURN_IF_ERROR
    - emit_and_reset_fail_pop
    - USE_LABEL
    - asdl_seq_GET
    - NEW_JUMP_TARGET_LABEL
    - ADDOP_I
    - codegen_nameop
    - PyList_New
    - codegen_pattern
    - codegen_jump_if
    - VISIT_SEQ
    - LOC
    - Py_DECREF
    - ADDOP
    - ensure_fail_pop
    - asdl_seq_LEN
    - PyList_GET_SIZE
    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:6676,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/codegen.c:6677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6679
      start: 6671
    functionDepth: 16
    functionLinenumber: 6671
    functionLinenumberEnd: 6679
    functionName: codegen_match
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - codegen_match_inner
    - PyMem_Free
    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:6692,1
    - Dst: ADDOP
      Src: /src/cpython/Python/codegen.c:6694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - addNone
    argTypes:
    - compiler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6696
      start: 6685
    functionDepth: 1
    functionLinenumber: 6685
    functionLinenumberEnd: 6696
    functionName: _PyCodegen_AddReturnAtEnd
    functionSourceFile: /src/cpython/Python/codegen.c
    functionUses: 0
    functionsReached:
    - ADDOP
    - ADDOP_LOAD_CONST
    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: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    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:93,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(runtime)
    - tstate
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->interp != NULL)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    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: 3
    argCount: 1
    argNames:
    - Py_UNUSED(runtime)
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    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: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    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: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    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: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    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: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    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:166,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:167,1
    - Dst: tstate_is_alive
      Src: /src/cpython/Python/pystate.c:167,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:168,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:169,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:170,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:170,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:171,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:172,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:173,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Python/pystate.c:178,1
    - Dst: PyThread_get_thread_native_id
      Src: /src/cpython/Python/pystate.c:180,1
    - Dst: _Py_brc_init_thread
      Src: /src/cpython/Python/pystate.c:186,1
    - Dst: tstate_mimalloc_bind
      Src: /src/cpython/Python/pystate.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.unbound)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_alive(tstate) && !tstate->_status.bound)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.bound_gilstate)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate != gilstate_get())
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.active)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->thread_id == 0)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->native_thread_id == 0)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 193
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 193
    functionName: bind_tstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - tstate_mimalloc_bind
    - gilstate_get
    - PyThread_get_thread_native_id
    - assert
    - tstate_is_alive
    - _Py_brc_init_thread
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: void
    signature: void bind_tstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:198,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:199,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:199,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:201,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->native_thread_id > 0)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->thread_id > 0)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 215
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 215
    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:239,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:240,1
    - Dst: tstate_is_alive
      Src: /src/cpython/Python/pystate.c:240,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:241,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:241,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:243,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:245,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:246,1
    - Dst: gilstate_set
      Src: /src/cpython/Python/pystate.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_alive(tstate))
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.bound_gilstate)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate != tcur)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 253
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 253
    functionName: bind_gilstate_tstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - assert
    - tstate_is_alive
    - gilstate_set
    - tstate_is_bound
    linkageType: ''
    returnType: void
    signature: void bind_gilstate_tstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:258,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:260,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:260,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:262,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:263,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:263,1
    - Dst: gilstate_clear
      Src: /src/cpython/Python/pystate.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->_status.bound_gilstate)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate == gilstate_get())
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 266
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 266
    functionName: unbind_gilstate_tstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - gilstate_clear
    - tstate_is_bound
    - assert
    linkageType: ''
    returnType: void
    signature: void unbind_gilstate_tstate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:286,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:288,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:288,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate == gilstate_get())
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: holds_gil
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - current_fast_get
    - gilstate_get
    - assert
    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: 326
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 326
    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:333,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:334,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:335,1
    - Dst: _PyRuntimeState_GetCoreInitialized
      Src: /src/cpython/Python/pystate.c:335,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:336,1
    - Dst: _PyRuntimeState_GetInitialized
      Src: /src/cpython/Python/pystate.c:336,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:337,1
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/cpython/Python/pystate.c:343,1
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Python/pystate.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    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: 332
        line_start: 332
        source_file: /src/cpython/Python/pystate.c
    - condition: (!runtime->preinitialized)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/cpython/Python/pystate.c
    - condition: (!_PyRuntimeState_GetInitialized(runtime))
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/cpython/Python/pystate.c
    - condition: (!_PyRuntimeState_GetCoreInitialized(runtime))
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/cpython/Python/pystate.c
    - condition: (!runtime->_initialized)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 350
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 350
    functionName: init_runtime
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyRuntimeState_GetInitialized
    - PyPreConfig_InitPythonConfig
    - _PyRuntimeState_GetCoreInitialized
    - assert
    - PyThread_get_thread_ident
    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:368,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystate.c:370,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:371,1
    - Dst: _PyTime_Init
      Src: /src/cpython/Python/pystate.c:374,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pystate.c:375,1
    - Dst: init_runtime
      Src: /src/cpython/Python/pystate.c:379,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (!runtime->_initialized)
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 383
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 383
    functionName: _PyRuntimeState_Init
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - init_runtime
    - _PyStatus_EXCEPTION
    - memcpy
    - assert
    - _PyTime_Init
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyRuntimeState_Init(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:390,1
    - Dst: gilstate_clear
      Src: /src/cpython/Python/pystate.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (runtime->object_state.interpreter_leaks == 0)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: _PyRuntimeState_Fini
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_clear
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyRuntimeState_Fini(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/cpython/Python/pystate.c:402,1
    - Dst: _PyParkingLot_AfterFork
      Src: /src/cpython/Python/pystate.c:406,1
    - Dst: LOCKS_INIT
      Src: /src/cpython/Python/pystate.c:409,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/pystate.c:410,1
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/pystate.c:411,1
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/pystate.c:418,1
    - Dst: _PyTypes_AfterFork
      Src: /src/cpython/Python/pystate.c:423,1
    - Dst: _PyThread_AfterFork
      Src: /src/cpython/Python/pystate.c:425,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 428
    functionName: _PyRuntimeState_ReInitThreads
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - LOCKS_INIT
    - _PyTypes_AfterFork
    - _PyStatus_OK
    - Py_ARRAY_LENGTH
    - _PyMutex_at_fork_reinit
    - _PyThread_AfterFork
    - _PyParkingLot_AfterFork
    - 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:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 448
    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:458,1
    - Dst: _Py_ALIGN_UP
      Src: /src/cpython/Python/pystate.c:462,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:464,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Python/pystate.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_Py_IS_ALIGNED(ptr, alignment))
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 466
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 466
    functionName: alloc_interpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_IS_ALIGNED
    - _Py_ALIGN_UP
    - PyMem_RawCalloc
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      alloc_interpreter(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:473,1
    - Dst: _PyMem_obmalloc_state_on_heap
      Src: /src/cpython/Python/pystate.c:480,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:482,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:485,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/cpython/Python/pystate.c:485,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (_Py_IS_ALIGNED(interp, _Alignof(PyInterpreterState)))
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 488
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 488
    functionName: free_interpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - _Py_IS_ALIGNED
    - _PyMem_obmalloc_state_on_heap
    - assert
    linkageType: ''
    returnType: void
    signature: void free_interpreter(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/cpython/Python/pystate.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - env_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: is_env_enabled
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_GETENV
    linkageType: ''
    returnType: bool
    signature: bool is_env_enabled(const char *env_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/cpython/Python/pystate.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - env_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 526
    functionName: is_env_disabled
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_GETENV
    linkageType: ''
    returnType: bool
    signature: bool is_env_disabled(const char *env_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/cpython/Python/pystate.c:533,1
    - Dst: atol
      Src: /src/cpython/Python/pystate.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - target
    - env_name
    - default_value
    - min_value
    - max_value
    argTypes:
    - uint16_t*
    - char*
    - uint16_t
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 540
    functionName: init_policy
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_GETENV
    - atol
    linkageType: ''
    returnType: void
    signature: "void init_policy(uint16_t *target, const char *env_name, uint16_t
      default_value,\n            long min_value, long max_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:549,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:552,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:553,1
    - Dst: check_interpreter_whence
      Src: /src/cpython/Python/pystate.c:553,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:556,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:559,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:564,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:565,1
    - Dst: _PyEval_InitState
      Src: /src/cpython/Python/pystate.c:573,1
    - Dst: _PyGC_InitState
      Src: /src/cpython/Python/pystate.c:574,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/cpython/Python/pystate.c:575,1
    - Dst: _PyType_InitCache
      Src: /src/cpython/Python/pystate.c:576,1
    - Dst: _Py_brc_init_state
      Src: /src/cpython/Python/pystate.c:578,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:581,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:582,1
    - Dst: is_env_enabled
      Src: /src/cpython/Python/pystate.c:610,1
    - Dst: init_policy
      Src: /src/cpython/Python/pystate.c:616,1
    - Dst: init_policy
      Src: /src/cpython/Python/pystate.c:619,1
    - Dst: init_policy
      Src: /src/cpython/Python/pystate.c:622,1
    - Dst: init_policy
      Src: /src/cpython/Python/pystate.c:625,1
    - Dst: init_policy
      Src: /src/cpython/Python/pystate.c:628,1
    - Dst: init_policy
      Src: /src/cpython/Python/pystate.c:631,1
    - Dst: init_policy
      Src: /src/cpython/Python/pystate.c:636,1
    - Dst: is_env_enabled
      Src: /src/cpython/Python/pystate.c:640,1
    - Dst: is_env_disabled
      Src: /src/cpython/Python/pystate.c:641,1
    - Dst: _dtoa_state_INIT
      Src: /src/cpython/Python/pystate.c:644,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Python/pystate.c:652,1
    - Dst: _Py_hashtable_new_full
      Src: /src/cpython/Python/pystate.c:660,1
    - Dst: _Py_stackref_associate
      Src: /src/cpython/Python/pystate.c:668,1
    - Dst: _Py_stackref_associate
      Src: /src/cpython/Python/pystate.c:669,1
    - Dst: _Py_stackref_associate
      Src: /src/cpython/Python/pystate.c:670,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:674,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 67
    argCount: 5
    argNames:
    - interp
    - runtime
    - id
    - next
    - whence
    argTypes:
    - PyInterpreterState*
    - _PyRuntimeState*
    - int64_t
    - PyInterpreterState*
    - long
    assertStmts:
    - condition: (interp->_whence == _PyInterpreterState_WHENCE_NOTSET)
      pos:
        line_end: 551
        line_start: 551
        source_file: /src/cpython/Python/pystate.c
    - condition: (check_interpreter_whence(whence) == 0)
      pos:
        line_end: 552
        line_start: 552
        source_file: /src/cpython/Python/pystate.c
    - condition: (id > 0 || (id == 0 && interp == runtime->interpreters.main))
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/cpython/Python/pystate.c
    - condition: (next != NULL || (interp == runtime->interpreters.main))
      pos:
        line_end: 564
        line_start: 564
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime->interpreters.head == interp)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime != NULL)
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 675
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 675
    functionName: init_interpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - llist_init
    - _dtoa_state_INIT
    - is_env_disabled
    - _Py_stackref_associate
    - _PyStatus_OK
    - _PyGC_InitState
    - check_interpreter_whence
    - init_policy
    - PyConfig_InitPythonConfig
    - is_env_enabled
    - _PyType_InitCache
    - _PyStatus_ERR
    - assert
    - _PyEval_InitState
    - _Py_brc_init_state
    - _Py_hashtable_new_full
    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:689,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:690,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:698,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:710,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:711,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:714,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:715,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:720,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:721,1
    - Dst: alloc_interpreter
      Src: /src/cpython/Python/pystate.c:723,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/pystate.c:725,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystate.c:729,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:733,1
    - Dst: init_interpreter
      Src: /src/cpython/Python/pystate.c:740,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pystate.c:742,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:746,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:748,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:750,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:753,1
    - Dst: free_interpreter
      Src: /src/cpython/Python/pystate.c:756,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - tstate
    - pinterp
    argTypes:
    - PyThreadState*
    - PyInterpreterState**
    assertStmts:
    - condition: (interpreters->main == NULL)
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/cpython/Python/pystate.c
    - condition: (id == 0)
      pos:
        line_end: 710
        line_start: 710
        source_file: /src/cpython/Python/pystate.c
    - condition: (interpreters->main != NULL)
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/cpython/Python/pystate.c
    - condition: (id != 0)
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp != NULL)
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->id == 0)
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->next == NULL)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 759
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 759
    functionName: _PyInterpreterState_New
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - alloc_interpreter
    - _PyStatus_OK
    - init_interpreter
    - HEAD_LOCK
    - _PySys_Audit
    - _PyStatus_EXCEPTION
    - HEAD_UNLOCK
    - memcpy
    - _PyStatus_ERR
    - assert
    - free_interpreter
    - _PyStatus_NO_MEMORY
    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:766,1
    - Dst: _PyInterpreterState_New
      Src: /src/cpython/Python/pystate.c:769,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/cpython/Python/pystate.c:770,1
    - Dst: Py_ExitStatusException
      Src: /src/cpython/Python/pystate.c:771,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 772
        line_start: 772
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 775
      start: 762
    functionDepth: 4
    functionLinenumber: 762
    functionLinenumberEnd: 775
    functionName: PyInterpreterState_New
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - Py_ExitStatusException
    - _PyStatus_EXCEPTION
    - current_fast_get
    - assert
    - _PyInterpreterState_New
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_New(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/pystate.c:786,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/pystate.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 790
    functionName: common_const_is_initialized
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyStackRef_IsNull
    linkageType: ''
    returnType: int
    signature: int common_const_is_initialized(_PyStackRef ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: common_const_is_initialized
      Src: /src/cpython/Python/pystate.c:798,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/pystate.c:801,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/pystate.c:802,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/pystate.c:805,1
    - Dst: _Py_IsStaticImmortal
      Src: /src/cpython/Python/pystate.c:805,1
    - Dst: _Py_ClearImmortal
      Src: /src/cpython/Python/pystate.c:806,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 809
    functionName: common_constants_clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyStackRef_XCLOSE
    - _Py_IsStaticImmortal
    - _Py_IsImmortal
    - PyStackRef_AsPyObjectBorrow
    - common_const_is_initialized
    - _Py_ClearImmortal
    linkageType: ''
    returnType: void
    signature: void common_constants_clear(PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:815,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:816,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pystate.c:829,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pystate.c:830,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:838,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:839,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:840,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/pystate.c:842,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:857,1
    - Dst: _Py_atomic_store_uintptr
      Src: /src/cpython/Python/pystate.c:863,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:870,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:874,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Python/pystate.c:881,1
    - Dst: _PyCodec_Fini
      Src: /src/cpython/Python/pystate.c:882,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:884,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:885,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:886,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:887,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:889,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:890,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:891,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:893,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:894,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:895,1
    - Dst: _Py_ClearExecutorDeletionList
      Src: /src/cpython/Python/pystate.c:900,1
    - Dst: _PyAST_Fini
      Src: /src/cpython/Python/pystate.c:902,1
    - Dst: _PyAtExit_Fini
      Src: /src/cpython/Python/pystate.c:903,1
    - Dst: _PyGC_CollectNoFail
      Src: /src/cpython/Python/pystate.c:910,1
    - Dst: _PyGC_Fini
      Src: /src/cpython/Python/pystate.c:911,1
    - Dst: _PyWarnings_Fini
      Src: /src/cpython/Python/pystate.c:915,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:919,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:920,1
    - Dst: _PyExecutor_Free
      Src: /src/cpython/Python/pystate.c:921,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:927,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:928,1
    - Dst: _PyExecutor_Free
      Src: /src/cpython/Python/pystate.c:929,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/pystate.c:934,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/pystate.c:935,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:936,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:937,1
    - Dst: common_constants_clear
      Src: /src/cpython/Python/pystate.c:938,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/pystate.c:942,1
    - Dst: _Py_stackref_report_leaks
      Src: /src/cpython/Python/pystate.c:945,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/pystate.c:946,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 91
    argCount: 2
    argNames:
    - interp
    - tstate
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate != NULL)
      pos:
        line_end: 815
        line_start: 815
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->imports.modules == NULL)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->imports.modules_by_index == NULL)
      pos:
        line_end: 884
        line_start: 884
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->imports.importlib == NULL)
      pos:
        line_end: 885
        line_start: 885
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp->imports.import_func == NULL)
      pos:
        line_end: 886
        line_start: 886
        source_file: /src/cpython/Python/pystate.c
    - condition: (!cold->vm_data.cold)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/cpython/Python/pystate.c
    - condition: (cold->vm_data.valid)
      pos:
        line_end: 918
        line_start: 918
        source_file: /src/cpython/Python/pystate.c
    - condition: (cold_dynamic->vm_data.valid)
      pos:
        line_end: 926
        line_start: 926
        source_file: /src/cpython/Python/pystate.c
    - condition: (!cold_dynamic->vm_data.cold)
      pos:
        line_end: 927
        line_start: 927
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 984
      start: 812
    functionDepth: 10
    functionLinenumber: 812
    functionLinenumberEnd: 984
    functionName: interpreter_clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_uintptr
    - PyDict_Clear
    - _Py_FOR_EACH_TSTATE_END
    - _PyGC_CollectNoFail
    - assert
    - HEAD_UNLOCK
    - PyThreadState_Clear
    - _PyAtExit_Fini
    - _Py_stackref_report_leaks
    - HEAD_LOCK
    - _PySys_Audit
    - _PyExecutor_Free
    - _PyWarnings_Fini
    - _PyGC_Fini
    - common_constants_clear
    - _PyAST_Fini
    - _Py_hashtable_destroy
    - _Py_ClearExecutorDeletionList
    - _PyCodec_Fini
    - Py_CLEAR
    - _PyErr_Clear
    - PyConfig_Clear
    linkageType: ''
    returnType: void
    signature: void interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:838,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:839,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 841
    functionName: _Py_FOR_EACH_TSTATE_BEGIN
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Clear
    - HEAD_LOCK
    - HEAD_UNLOCK
    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:993,1
    - Dst: _PyImport_ClearCore
      Src: /src/cpython/Python/pystate.c:994,1
    - Dst: interpreter_clear
      Src: /src/cpython/Python/pystate.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 987
    functionDepth: 11
    functionLinenumber: 987
    functionLinenumberEnd: 996
    functionName: PyInterpreterState_Clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - current_fast_get
    - _PyImport_ClearCore
    - interpreter_clear
    linkageType: ''
    returnType: void
    signature: void PyInterpreterState_Clear(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_ClearCore
      Src: /src/cpython/Python/pystate.c:1002,1
    - Dst: interpreter_clear
      Src: /src/cpython/Python/pystate.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 999
    functionDepth: 11
    functionLinenumber: 999
    functionLinenumberEnd: 1004
    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:1019,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/pystate.c:1022,1
    - Dst: zapthreads
      Src: /src/cpython/Python/pystate.c:1025,1
    - Dst: _PyInterpreterState_FinalizeRefTotal
      Src: /src/cpython/Python/pystate.c:1030,1
    - Dst: _PyInterpreterState_FinalizeAllocatedBlocks
      Src: /src/cpython/Python/pystate.c:1032,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:1034,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1038,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1045,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1052,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1055,1
    - Dst: _Py_qsbr_fini
      Src: /src/cpython/Python/pystate.c:1057,1
    - Dst: _PyObject_FiniState
      Src: /src/cpython/Python/pystate.c:1059,1
    - Dst: PyConfig_Clear
      Src: /src/cpython/Python/pystate.c:1061,1
    - Dst: free_interpreter
      Src: /src/cpython/Python/pystate.c:1063,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1011
    functionDepth: 4
    functionLinenumber: 1011
    functionLinenumberEnd: 1064
    functionName: PyInterpreterState_Delete
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_FinalizeAllocatedBlocks
    - _PyInterpreterState_FinalizeRefTotal
    - Py_FatalError
    - HEAD_LOCK
    - _PyThreadState_Detach
    - _PyObject_FiniState
    - free_interpreter
    - current_fast_get
    - HEAD_UNLOCK
    - zapthreads
    - PyConfig_Clear
    - _Py_qsbr_fini
    linkageType: ''
    returnType: void
    signature: void PyInterpreterState_Delete(PyInterpreterState *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:1077,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:1079,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:1082,1
    - Dst: PyInterpreterState_Clear
      Src: /src/cpython/Python/pystate.c:1095,1
    - Dst: zapthreads
      Src: /src/cpython/Python/pystate.c:1096,1
    - Dst: free_interpreter
      Src: /src/cpython/Python/pystate.c:1099,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1101,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystate.c:1104,1
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:1106,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:1107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1072
    functionDepth: 12
    functionLinenumber: 1072
    functionLinenumberEnd: 1108
    functionName: _PyInterpreterState_DeleteExceptMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyStatus_OK
    - HEAD_LOCK
    - _PyThreadState_Swap
    - free_interpreter
    - _PyStatus_ERR
    - HEAD_UNLOCK
    - zapthreads
    - PyInterpreterState_Clear
    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:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - tstate
    argTypes:
    - PyInterpreterState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1115
    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:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1121
    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:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1127
    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:1132,1
    - Dst: _PyErr_SetInterpreterAlreadyRunning
      Src: /src/cpython/Python/pystate.c:1133,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1136,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:1137,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystate.c:1139,1
    - Dst: set_main_thread
      Src: /src/cpython/Python/pystate.c:1143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1146
    functionName: _PyInterpreterState_SetRunningMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - set_main_thread
    - PyErr_SetString
    - _Py_EnsureTstateNotNULL
    - get_main_thread
    - current_fast_get
    - _PyErr_SetInterpreterAlreadyRunning
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterState_SetRunningMain(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1151,1
    - Dst: get_main_thread
      Src: /src/cpython/Python/pystate.c:1151,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1151,1
    - Dst: set_main_thread
      Src: /src/cpython/Python/pystate.c:1152,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: 1150
        line_start: 1150
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1153
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1153
    functionName: _PyInterpreterState_SetNotRunningMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - set_main_thread
    - current_fast_get
    - get_main_thread
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_SetNotRunningMain(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_main_thread
      Src: /src/cpython/Python/pystate.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1168
    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:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1177
    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:1183,1
    - Dst: set_main_thread
      Src: /src/cpython/Python/pystate.c:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1186
    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: 1197
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1197
    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: 1210
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1210
    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:1216,1
    - Dst: check_interpreter_whence
      Src: /src/cpython/Python/pystate.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (check_interpreter_whence(interp->_whence) == 0)
      pos:
        line_end: 1215
        line_start: 1215
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1218
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1218
    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:1223,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1224,1
    - Dst: check_interpreter_whence
      Src: /src/cpython/Python/pystate.c:1224,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: 1222
        line_start: 1222
        source_file: /src/cpython/Python/pystate.c
    - condition: (check_interpreter_whence(whence) == 0)
      pos:
        line_end: 1223
        line_start: 1223
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1226
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1226
    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:1233,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/pystate.c:1238,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pystate.c:1238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:1239,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pystate.c:1240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1229
    functionDepth: 9
    functionLinenumber: 1229
    functionLinenumberEnd: 1244
    functionName: _Py_GetMainModule
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _PyImport_GetModulesRef
    - Py_DECREF
    - PyMapping_GetOptionalItem
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetMainModule(PyThreadState *tstate)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pystate.c:1250,1
    - Dst: _PyErr_SetModuleNotFoundError
      Src: /src/cpython/Python/pystate.c:1251,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pystate.c:1251,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/pystate.c:1255,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pystate.c:1257,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/pystate.c:1259,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pystate.c:1259,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:1260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1265
    functionName: _Py_CheckMainModule
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetImportError
    - Py_IS_TYPE
    - _PyErr_SetModuleNotFoundError
    - PyErr_Occurred
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _Py_CheckMainModule(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystate.c:1272,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pystate.c:1274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1268
    functionDepth: 11
    functionLinenumber: 1268
    functionLinenumberEnd: 1279
    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:1289,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pystate.c:1290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pystate.c:1292,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/pystate.c:1298,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pystate.c:1299,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pystate.c:1304,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystate.c:1311,1
    - Dst: return
      Src: /src/cpython/Python/pystate.c:1316,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/pystate.c:1321,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystate.c:1324,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/cpython/Python/pystate.c:1331,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1337,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Python/pystate.c:1338,1
    - Dst: _PyInterpreterState_IDIncref
      Src: /src/cpython/Python/pystate.c:1344,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Python/pystate.c:1346,1
    - Dst: _PyInterpreterState_IDDecref
      Src: /src/cpython/Python/pystate.c:1351,1
    - Dst: _Py_atomic_add_ssize
      Src: /src/cpython/Python/pystate.c:1355,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/pystate.c:1359,1
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:1362,1
    - Dst: Py_EndInterpreter
      Src: /src/cpython/Python/pystate.c:1363,1
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:1364,1
    - Dst: _PyInterpreterState_RequiresIDRef
      Src: /src/cpython/Python/pystate.c:1369,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/cpython/Python/pystate.c:1375,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/pystate.c:1391,1
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/pystate.c:1393,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1396,1
    - Dst: interp_look_up_id
      Src: /src/cpython/Python/pystate.c:1403,1
    - Dst: PyInterpreterState_Next
      Src: /src/cpython/Python/pystate.c:1412,1
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/cpython/Python/pystate.c:1422,1
    - Dst: interp_look_up_id
      Src: /src/cpython/Python/pystate.c:1428,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1429,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - idobj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (interpid < LLONG_MAX)
      pos:
        line_end: 1336
        line_start: 1336
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1430
      start: 1286
    functionDepth: 3
    functionLinenumber: 1286
    functionLinenumberEnd: 1430
    functionName: _PyInterpreterState_ObjectToID
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GetIDObject
    - _PyThreadState_Swap
    - _PyIndex_Check
    - PyErr_Occurred
    - assert
    - _PyInterpreterState_RequireIDRef
    - HEAD_UNLOCK
    - Py_TYPE
    - _PyInterpreterState_RequiresIDRef
    - PyLong_FromLongLong
    - PyLong_AsLongLong
    - _Py_AssertHoldsTstate
    - Py_EndInterpreter
    - PyErr_SetString
    - return
    - PyInterpreterState_GetID
    - interp_look_up_id
    - _PyThreadState_NewBound
    - _PyInterpreterState_IDDecref
    - Py_FatalError
    - _PyInterpreterState_LookUpID
    - _Py_atomic_add_ssize
    - PyInterpreterState_Get
    - PyInterpreterState_Next
    - PyErr_Format
    - _PyInterpreterState_IDIncref
    linkageType: ''
    returnType: int64_t
    signature: int64_t _PyInterpreterState_ObjectToID(PyObject *idobj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_ObjectToID
      Src: /src/cpython/Python/pystate.c:1441,1
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/cpython/Python/pystate.c:1445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - requested_id
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1438
    functionDepth: 4
    functionLinenumber: 1438
    functionLinenumberEnd: 1446
    functionName: _PyInterpreterState_LookUpIDObject
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 8
    functionsReached:
    - _PyInterpreterState_ObjectToID
    - _PyInterpreterState_LookUpID
    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: 1461
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1461
    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:1472,1
    - Dst: _PyObject_VirtualAlloc
      Src: /src/cpython/Python/pystate.c:1473,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: 1471
        line_start: 1471
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1481
      start: 1469
    functionDepth: 3
    functionLinenumber: 1469
    functionLinenumberEnd: 1481
    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:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1490
    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:1498,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/pystate.c:1502,1
    - Dst: reset_threadstate
      Src: /src/cpython/Python/pystate.c:1506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1509
    functionName: alloc_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_exchange_ptr
    - PyMem_RawCalloc
    - reset_threadstate
    linkageType: ''
    returnType: _PyThreadStateImpl
    signature: '_PyThreadStateImpl *

      alloc_threadstate(PyInterpreterState *interp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStats_ThreadFini
      Src: /src/cpython/Python/pystate.c:1516,1
    - Dst: reset_threadstate
      Src: /src/cpython/Python/pystate.c:1522,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1523,1
    - Dst: _Py_atomic_store_ptr
      Src: /src/cpython/Python/pystate.c:1524,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:1527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts:
    - condition: (interp->threads.preallocated == NULL)
      pos:
        line_end: 1522
        line_start: 1522
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1529
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1529
    functionName: free_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyStats_ThreadFini
    - 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:1534,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 1538
    functionName: decref_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - free_threadstate
    - _Py_atomic_add_ssize
    linkageType: ''
    returnType: void
    signature: void decref_threadstate(_PyThreadStateImpl *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1554,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1557,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/pystate.c:1560,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1563,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1564,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1566,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1567,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1570,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:1632,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:1633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 4
    argNames:
    - _tstate
    - interp
    - id
    - whence
    argTypes:
    - _PyThreadStateImpl*
    - PyInterpreterState*
    - uint64_t
    - int
    assertStmts:
    - condition: (tstate->next == NULL)
      pos:
        line_end: 1562
        line_start: 1562
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->prev == NULL)
      pos:
        line_end: 1563
        line_start: 1563
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp != NULL)
      pos:
        line_end: 1556
        line_start: 1556
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->_whence == _PyThreadState_WHENCE_NOTSET)
      pos:
        line_end: 1565
        line_start: 1565
        source_file: /src/cpython/Python/pystate.c
    - condition: (whence >= 0 && whence <= _PyThreadState_WHENCE_THREADING_DAEMON)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/cpython/Python/pystate.c
    - condition: (id > 0)
      pos:
        line_end: 1569
        line_start: 1569
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1640
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1640
    functionName: init_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - llist_init
    - Py_FatalError
    - _Py_atomic_load_uintptr_relaxed
    - assert
    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:1646,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1648,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1652,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: 1645
        line_start: 1645
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->prev == NULL)
      pos:
        line_end: 1651
        line_start: 1651
        source_file: /src/cpython/Python/pystate.c
    - condition: (next->prev == NULL || next->prev == tstate)
      pos:
        line_end: 1647
        line_start: 1647
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1654
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1654
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_threadstate
      Src: /src/cpython/Python/pystate.c:1660,1
    - Dst: _Py_qsbr_reserve
      Src: /src/cpython/Python/pystate.c:1666,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1668,1
    - Dst: _Py_ReserveTLBCIndex
      Src: /src/cpython/Python/pystate.c:1671,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1673,1
    - Dst: _PyStats_ThreadInit
      Src: /src/cpython/Python/pystate.c:1679,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1680,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:1686,1
    - Dst: init_threadstate
      Src: /src/cpython/Python/pystate.c:1691,1
    - Dst: add_threadstate
      Src: /src/cpython/Python/pystate.c:1695,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1697,1
    - Dst: _Py_qsbr_register
      Src: /src/cpython/Python/pystate.c:1701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - interp
    - whence
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1656
    functionDepth: 3
    functionLinenumber: 1656
    functionLinenumberEnd: 1706
    functionName: new_threadstate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyStats_ThreadInit
    - alloc_threadstate
    - HEAD_LOCK
    - _Py_ReserveTLBCIndex
    - add_threadstate
    - HEAD_UNLOCK
    - _Py_qsbr_reserve
    - _Py_qsbr_register
    - init_threadstate
    - free_threadstate
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      new_threadstate(PyInterpreterState *interp, int whence)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/pystate.c:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1712
    functionName: PyThreadState_New
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    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:1717,1
    - Dst: bind_tstate
      Src: /src/cpython/Python/pystate.c:1719,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:1722,1
    - Dst: bind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:1723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - whence
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1714
    functionDepth: 4
    functionLinenumber: 1714
    functionLinenumberEnd: 1727
    functionName: _PyThreadState_NewBound
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - new_threadstate
    - bind_gilstate_tstate
    - bind_tstate
    - gilstate_get
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_NewBound(PyInterpreterState *interp, int whence)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_threadstate
      Src: /src/cpython/Python/pystate.c:1733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - whence
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1730
    functionDepth: 4
    functionLinenumber: 1730
    functionLinenumberEnd: 1734
    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:1740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1738
    functionDepth: 5
    functionLinenumber: 1738
    functionLinenumberEnd: 1741
    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:1748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1749
    functionName: _PyThreadState_Init
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Init(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VirtualFree
      Src: /src/cpython/Python/pystate.c:1759,1
    - Dst: _PyObject_VirtualFree
      Src: /src/cpython/Python/pystate.c:1763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1752
    functionDepth: 3
    functionLinenumber: 1752
    functionLinenumberEnd: 1767
    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:1772,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1773,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:1773,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pystate.c:1789,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystate.c:1801,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystate.c:1806,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/pystate.c:1807,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1823,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1824,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1826,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1827,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/pystate.c:1830,1
    - Dst: llist_concat
      Src: /src/cpython/Python/pystate.c:1833,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/pystate.c:1835,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1838,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1840,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1842,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystate.c:1846,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Python/pystate.c:1851,1
    - Dst: FT_ATOMIC_ADD_SSIZE
      Src: /src/cpython/Python/pystate.c:1855,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1859,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1860,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1862,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1863,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:1865,1
    - Dst: _Py_freelists_GET
      Src: /src/cpython/Python/pystate.c:1869,1
    - Dst: _PyObject_ClearFreeLists
      Src: /src/cpython/Python/pystate.c:1870,1
    - Dst: _Py_atomic_add_int
      Src: /src/cpython/Python/pystate.c:1875,1
    - Dst: _PyObject_FinalizePerThreadRefcounts
      Src: /src/cpython/Python/pystate.c:1881,1
    - Dst: _Py_brc_remove_thread
      Src: /src/cpython/Python/pystate.c:1884,1
    - Dst: _Py_ClearTLBCIndex
      Src: /src/cpython/Python/pystate.c:1888,1
    - Dst: _PyMem_AbandonDelayed
      Src: /src/cpython/Python/pystate.c:1892,1
    - Dst: _PyThreadState_ClearMimallocHeaps
      Src: /src/cpython/Python/pystate.c:1894,1
    - Dst: _PyJit_TracerFree
      Src: /src/cpython/Python/pystate.c:1897,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->_status.initialized && !tstate->_status.cleared)
      pos:
        line_end: 1771
        line_start: 1771
        source_file: /src/cpython/Python/pystate.c
    - condition: (current_fast_get()->interp == tstate->interp)
      pos:
        line_end: 1772
        line_start: 1772
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1904
      start: 1769
    functionDepth: 8
    functionLinenumber: 1769
    functionLinenumberEnd: 1904
    functionName: PyThreadState_Clear
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 8
    functionsReached:
    - _PyThreadState_ClearMimallocHeaps
    - _Py_ClearTLBCIndex
    - _PyObject_FinalizePerThreadRefcounts
    - assert
    - _PyJit_TracerFree
    - _PyMem_AbandonDelayed
    - PyMutex_Unlock
    - _PyInterpreterState_GetConfig
    - _Py_atomic_add_int
    - current_fast_get
    - llist_concat
    - PyMutex_Lock
    - _Py_freelists_GET
    - FT_ATOMIC_ADD_SSIZE
    - _PyObject_ClearFreeLists
    - _PyErr_Print
    - Py_CLEAR
    - fprintf
    - _Py_brc_remove_thread
    linkageType: ''
    returnType: void
    signature: void PyThreadState_Clear(PyThreadState *tstate)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1913,1
    - Dst: tstate_verify_not_active
      Src: /src/cpython/Python/pystate.c:1914,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1915,1
    - Dst: _PyThreadState_IsRunningMain
      Src: /src/cpython/Python/pystate.c:1915,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:1919,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:1923,1
    - Dst: decrement_stoptheworld_countdown
      Src: /src/cpython/Python/pystate.c:1937,1
    - Dst: decrement_stoptheworld_countdown
      Src: /src/cpython/Python/pystate.c:1940,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:1949,1
    - Dst: _PyJit_TracerFree
      Src: /src/cpython/Python/pystate.c:1953,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:1956,1
    - Dst: unbind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:1961,1
    - Dst: unbind_tstate
      Src: /src/cpython/Python/pystate.c:1964,1
    - Dst: clear_datastack
      Src: /src/cpython/Python/pystate.c:1968,1
    - Dst: _PyEval_ReleaseLock
      Src: /src/cpython/Python/pystate.c:1971,1
    - Dst: _Py_qsbr_unregister
      Src: /src/cpython/Python/pystate.c:1975,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - tstate
    - release_gil
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (tstate->_status.cleared && !tstate->_status.finalized)
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/cpython/Python/pystate.c
    - condition: (!_PyThreadState_IsRunningMain(tstate))
      pos:
        line_end: 1914
        line_start: 1914
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_impl->refcounts.values == NULL)
      pos:
        line_end: 1948
        line_start: 1948
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1979
      start: 1910
    functionDepth: 4
    functionLinenumber: 1910
    functionLinenumberEnd: 1979
    functionName: tstate_delete_common
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - clear_datastack
    - _Py_qsbr_unregister
    - unbind_gilstate_tstate
    - tstate_verify_not_active
    - unbind_tstate
    - HEAD_LOCK
    - HEAD_UNLOCK
    - _PyThreadState_IsRunningMain
    - decrement_stoptheworld_countdown
    - assert
    - _PyJit_TracerFree
    - _PyEval_ReleaseLock
    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:1992,1
    - Dst: tstate_delete_common
      Src: /src/cpython/Python/pystate.c:1993,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:1994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1981
    functionDepth: 5
    functionLinenumber: 1981
    functionLinenumberEnd: 1996
    functionName: zapthreads
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - free_threadstate
    - tstate_delete_common
    - tstate_verify_not_active
    linkageType: ''
    returnType: void
    signature: void zapthreads(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2002,1
    - Dst: tstate_verify_not_active
      Src: /src/cpython/Python/pystate.c:2003,1
    - Dst: tstate_delete_common
      Src: /src/cpython/Python/pystate.c:2004,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:2005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1999
    functionDepth: 5
    functionLinenumber: 1999
    functionLinenumberEnd: 2006
    functionName: PyThreadState_Delete
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 4
    functionsReached:
    - free_threadstate
    - tstate_delete_common
    - _Py_EnsureTstateNotNULL
    - tstate_verify_not_active
    linkageType: ''
    returnType: void
    signature: void PyThreadState_Delete(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2012,1
    - Dst: _Py_qsbr_detach
      Src: /src/cpython/Python/pystate.c:2014,1
    - Dst: _PyStats_Detach
      Src: /src/cpython/Python/pystate.c:2017,1
    - Dst: current_fast_clear
      Src: /src/cpython/Python/pystate.c:2019,1
    - Dst: tstate_delete_common
      Src: /src/cpython/Python/pystate.c:2020,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2009
    functionDepth: 5
    functionLinenumber: 2009
    functionLinenumberEnd: 2022
    functionName: _PyThreadState_DeleteCurrent
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyStats_Detach
    - current_fast_clear
    - _Py_EnsureTstateNotNULL
    - free_threadstate
    - tstate_delete_common
    - _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:2027,1
    - Dst: _PyThreadState_DeleteCurrent
      Src: /src/cpython/Python/pystate.c:2028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2024
    functionDepth: 6
    functionLinenumber: 2024
    functionLinenumberEnd: 2029
    functionName: PyThreadState_DeleteCurrent
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - current_fast_get
    - _PyThreadState_DeleteCurrent
    linkageType: ''
    returnType: void
    signature: void PyThreadState_DeleteCurrent(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2044,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2049,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2052,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2067,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2043
        line_start: 2043
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime->stoptheworld.world_stopped)
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2070
      start: 2041
    functionDepth: 1
    functionLinenumber: 2041
    functionLinenumberEnd: 2070
    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:2084,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:2089,1
    - Dst: free_threadstate
      Src: /src/cpython/Python/pystate.c:2091,1
    - Dst: decref_threadstate
      Src: /src/cpython/Python/pystate.c:2094,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: 2083
        line_start: 2083
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2097
      start: 2079
    functionDepth: 9
    functionLinenumber: 2079
    functionLinenumberEnd: 2097
    functionName: _PyThreadState_DeleteList
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - free_threadstate
    - PyThreadState_Clear
    - decref_threadstate
    - 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:2113,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystate.c:2115,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pystate.c:2117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2112
        line_start: 2112
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2121
      start: 2110
    functionDepth: 11
    functionLinenumber: 2110
    functionLinenumberEnd: 2121
    functionName: _PyThreadState_GetDict
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - PyDict_New
    - _PyErr_Clear
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyThreadState_GetDict(PyThreadState *tstate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2127,1
    - Dst: _PyThreadState_GetDict
      Src: /src/cpython/Python/pystate.c:2131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2124
    functionDepth: 12
    functionLinenumber: 2124
    functionLinenumberEnd: 2132
    functionName: PyThreadState_GetDict
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 9
    functionsReached:
    - current_fast_get
    - _PyThreadState_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadState_GetDict(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2137
        line_start: 2137
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2140
      start: 2135
    functionDepth: 0
    functionLinenumber: 2135
    functionLinenumberEnd: 2140
    functionName: PyThreadState_GetInterpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyThreadState_GetInterpreter(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2146,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/pystate.c:2147,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/pystate.c:2151,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pystate.c:2153,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/pystate.c:2155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2145
        line_start: 2145
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2156
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2156
    functionName: PyThreadState_GetFrame
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 10
    functionsReached:
    - PyErr_Clear
    - assert
    - _PyFrame_GetFrameObject
    - _PyThreadState_GetFrame
    - Py_XNewRef
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyThreadState_GetFrame(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2161
        line_start: 2161
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2164
      start: 2159
    functionDepth: 0
    functionLinenumber: 2159
    functionLinenumberEnd: 2164
    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:2170,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2172,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:2172,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2173,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2175,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2176,1
    - Dst: bind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:2178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2169
        line_start: 2169
        source_file: /src/cpython/Python/pystate.c
    - condition: "(!tstate->_status.bound_gilstate ||\n           tstate == gilstate_get())"
      pos:
        line_end: 2175
        line_start: 2174
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 2171
        line_start: 2171
        source_file: /src/cpython/Python/pystate.c
    - condition: (!tstate->_status.active)
      pos:
        line_end: 2172
        line_start: 2172
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2182
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2182
    functionName: tstate_activate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - gilstate_get
    - bind_gilstate_tstate
    - tstate_is_bound
    - assert
    linkageType: ''
    returnType: void
    signature: void tstate_activate(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2187,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2189,1
    - Dst: tstate_is_bound
      Src: /src/cpython/Python/pystate.c:2189,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2190,1
    - Dst: _PyStats_Detach
      Src: /src/cpython/Python/pystate.c:2193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2186
        line_start: 2186
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate_is_bound(tstate))
      pos:
        line_end: 2188
        line_start: 2188
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->_status.active)
      pos:
        line_end: 2189
        line_start: 2189
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2200
      start: 2184
    functionDepth: 1
    functionLinenumber: 2184
    functionLinenumberEnd: 2200
    functionName: tstate_deactivate
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyStats_Detach
    - 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:2207,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->state == _Py_THREAD_DETACHED)
      pos:
        line_end: 2210
        line_start: 2210
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2215
      start: 2202
    functionDepth: 0
    functionLinenumber: 2202
    functionLinenumberEnd: 2215
    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:2220,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2220,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2222,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: 2219
        line_start: 2219
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2226
      start: 2217
    functionDepth: 0
    functionLinenumber: 2217
    functionLinenumberEnd: 2226
    functionName: tstate_set_detached
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_store_int
    - assert
    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:2232,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/pystate.c:2235,1
    - Dst: _PyThreadState_HangThread
      Src: /src/cpython/Python/pystate.c:2240,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2243,1
    - Dst: tstate_try_attach
      Src: /src/cpython/Python/pystate.c:2246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (state == _Py_THREAD_DETACHED)
      pos:
        line_end: 2242
        line_start: 2242
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2247
      start: 2228
    functionDepth: 1
    functionLinenumber: 2228
    functionLinenumberEnd: 2247
    functionName: tstate_wait_attach
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_HangThread
    - tstate_try_attach
    - assert
    - _Py_atomic_load_int_relaxed
    - _PyParkingLot_Park
    linkageType: ''
    returnType: void
    signature: void tstate_wait_attach(PyThreadState *tstate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2258,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2259,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:2260,1
    - Dst: _Py_InitializeRecursionLimits
      Src: /src/cpython/Python/pystate.c:2264,1
    - Dst: _PyEval_AcquireLock
      Src: /src/cpython/Python/pystate.c:2268,1
    - Dst: current_fast_set
      Src: /src/cpython/Python/pystate.c:2271,1
    - Dst: tstate_try_attach
      Src: /src/cpython/Python/pystate.c:2272,1
    - Dst: tstate_wait_attach
      Src: /src/cpython/Python/pystate.c:2273,1
    - Dst: tstate_activate
      Src: /src/cpython/Python/pystate.c:2275,1
    - Dst: _PyEval_IsGILEnabled
      Src: /src/cpython/Python/pystate.c:2278,1
    - Dst: tstate_set_detached
      Src: /src/cpython/Python/pystate.c:2283,1
    - Dst: tstate_deactivate
      Src: /src/cpython/Python/pystate.c:2284,1
    - Dst: current_fast_clear
      Src: /src/cpython/Python/pystate.c:2285,1
    - Dst: _Py_qsbr_attach
      Src: /src/cpython/Python/pystate.c:2288,1
    - Dst: _PyCriticalSection_Resume
      Src: /src/cpython/Python/pystate.c:2296,1
    - Dst: _PyStats_Attach
      Src: /src/cpython/Python/pystate.c:2300,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2249
    functionDepth: 3
    functionLinenumber: 2249
    functionLinenumberEnd: 2306
    functionName: _PyThreadState_Attach
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _PyStats_Attach
    - _PyEval_AcquireLock
    - _Py_InitializeRecursionLimits
    - _PyEval_IsGILEnabled
    - current_fast_clear
    - _Py_EnsureTstateNotNULL
    - tstate_try_attach
    - tstate_wait_attach
    - tstate_deactivate
    - current_fast_get
    - current_fast_set
    - tstate_set_detached
    - _Py_qsbr_attach
    - tstate_activate
    - _PyCriticalSection_Resume
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Attach(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2312,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2312,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2313,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2313,1
    - Dst: _PyCriticalSection_SuspendAll
      Src: /src/cpython/Python/pystate.c:2315,1
    - Dst: _Py_qsbr_detach
      Src: /src/cpython/Python/pystate.c:2318,1
    - Dst: tstate_deactivate
      Src: /src/cpython/Python/pystate.c:2320,1
    - Dst: tstate_set_detached
      Src: /src/cpython/Python/pystate.c:2321,1
    - Dst: current_fast_clear
      Src: /src/cpython/Python/pystate.c:2322,1
    - Dst: _PyEval_ReleaseLock
      Src: /src/cpython/Python/pystate.c:2323,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: 2311
        line_start: 2311
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate == current_fast_get())
      pos:
        line_end: 2312
        line_start: 2312
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2324
      start: 2308
    functionDepth: 2
    functionLinenumber: 2308
    functionLinenumberEnd: 2324
    functionName: detach_thread
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - _PyEval_ReleaseLock
    - current_fast_clear
    - tstate_deactivate
    - current_fast_get
    - _PyCriticalSection_SuspendAll
    - tstate_set_detached
    - assert
    - _Py_qsbr_detach
    - _Py_atomic_load_int_relaxed
    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:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2326
    functionDepth: 0
    functionLinenumber: 2326
    functionLinenumberEnd: 2330
    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:2337,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2337,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2340,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2347,1
    - Dst: detach_thread
      Src: /src/cpython/Python/pystate.c:2352,1
    - Dst: detach_thread
      Src: /src/cpython/Python/pystate.c:2357,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2360,1
    - Dst: decrement_stoptheworld_countdown
      Src: /src/cpython/Python/pystate.c:2361,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2362,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: 2336
        line_start: 2336
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2363
      start: 2332
    functionDepth: 1
    functionLinenumber: 2332
    functionLinenumberEnd: 2363
    functionName: _PyThreadState_Suspend
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - detach_thread
    - assert
    - HEAD_LOCK
    - decrement_stoptheworld_countdown
    - HEAD_UNLOCK
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Suspend(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2368,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:2370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2365
    functionDepth: 1
    functionLinenumber: 2365
    functionLinenumberEnd: 2372
    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:2379,1
    - Dst: _PyEvent_Notify
      Src: /src/cpython/Python/pystate.c:2381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts:
    - condition: (stw->thread_countdown > 0)
      pos:
        line_end: 2378
        line_start: 2378
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2383
      start: 2376
    functionDepth: 1
    functionLinenumber: 2376
    functionLinenumberEnd: 2383
    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:2394,1
    - Dst: _Py_CONTAINER_OF
      Src: /src/cpython/Python/pystate.c:2395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2396
    functionName: interp_for_stop_the_world
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Head
    - _Py_CONTAINER_OF
    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: 2404
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2404
    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:2414,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/pystate.c:2417,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/pystate.c:2423,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts:
    - condition: (stw->thread_countdown >= 0)
      pos:
        line_end: 2427
        line_start: 2427
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2430
      start: 2408
    functionDepth: 1
    functionLinenumber: 2408
    functionLinenumberEnd: 2430
    functionName: park_detached_threads
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_compare_exchange_int
    - _Py_set_eval_breaker_bit
    - assert
    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:2414,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/pystate.c:2417,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/pystate.c:2423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2412
    functionDepth: 1
    functionLinenumber: 2412
    functionLinenumberEnd: 2426
    functionName: _Py_FOR_EACH_STW_INTERP
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_compare_exchange_int
    - _Py_set_eval_breaker_bit
    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:2414,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/pystate.c:2417,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/pystate.c:2423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2425
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_compare_exchange_int
    - _Py_set_eval_breaker_bit
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(i, t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyRWMutex_Lock
      Src: /src/cpython/Python/pystate.c:2440,1
    - Dst: _PyRWMutex_RLock
      Src: /src/cpython/Python/pystate.c:2443,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/pystate.c:2445,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2447,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystate.c:2451,1
    - Dst: FT_STAT_WORLD_STOP_INC
      Src: /src/cpython/Python/pystate.c:2452,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2464,1
    - Dst: park_detached_threads
      Src: /src/cpython/Python/pystate.c:2471,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2472,1
    - Dst: PyEvent_WaitTimed
      Src: /src/cpython/Python/pystate.c:2480,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2481,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2485,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts:
    - condition: (stw->thread_countdown == 0)
      pos:
        line_end: 2480
        line_start: 2480
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2488
      start: 2432
    functionDepth: 2
    functionLinenumber: 2432
    functionLinenumberEnd: 2488
    functionName: stop_the_world
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyRWMutex_RLock
    - FT_STAT_WORLD_STOP_INC
    - assert
    - HEAD_LOCK
    - PyEvent_WaitTimed
    - _PyThreadState_GET
    - HEAD_UNLOCK
    - _PyRWMutex_Lock
    - PyMutex_Lock
    - park_detached_threads
    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: 2461
      start: 2454
    functionDepth: 0
    functionLinenumber: 2454
    functionLinenumberEnd: 2461
    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: 2460
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2460
    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:2494,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Python/pystate.c:2494,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2496,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2503,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2503,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2505,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:2506,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2511,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/pystate.c:2512,1
    - Dst: _PyRWMutex_Unlock
      Src: /src/cpython/Python/pystate.c:2514,1
    - Dst: _PyRWMutex_RUnlock
      Src: /src/cpython/Python/pystate.c:2517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - stw
    argTypes:
    - struct _stoptheworld_state*
    assertStmts:
    - condition: (PyMutex_IsLocked(&stw->mutex))
      pos:
        line_end: 2493
        line_start: 2493
        source_file: /src/cpython/Python/pystate.c
    - condition: "(_Py_atomic_load_int_relaxed(&t->state) ==\n                       _Py_THREAD_SUSPENDED)"
      pos:
        line_end: 2503
        line_start: 2502
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2519
      start: 2490
    functionDepth: 1
    functionLinenumber: 2490
    functionLinenumberEnd: 2519
    functionName: start_the_world
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - _PyParkingLot_UnparkAll
    - assert
    - HEAD_LOCK
    - HEAD_UNLOCK
    - _Py_atomic_store_int
    - _Py_atomic_load_int_relaxed
    - _PyRWMutex_Unlock
    - _PyRWMutex_RUnlock
    - PyMutex_IsLocked
    linkageType: ''
    returnType: void
    signature: void start_the_world(struct _stoptheworld_state *stw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2503,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2503,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2505,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:2506,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: 2503
        line_start: 2502
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2509
      start: 2500
    functionDepth: 1
    functionLinenumber: 2500
    functionLinenumberEnd: 2509
    functionName: _Py_FOR_EACH_STW_INTERP
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _PyParkingLot_UnparkAll
    - _Py_atomic_store_int
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_STW_INTERP(stw, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2503,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2503,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:2505,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:2506,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: 2503
        line_start: 2502
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2508
      start: 2501
    functionDepth: 1
    functionLinenumber: 2501
    functionLinenumberEnd: 2508
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _PyParkingLot_UnparkAll
    - _Py_atomic_store_int
    - assert
    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:2526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2522
    functionDepth: 3
    functionLinenumber: 2522
    functionLinenumberEnd: 2528
    functionName: _PyEval_StopTheWorldAll
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    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:2534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2530
    functionDepth: 2
    functionLinenumber: 2530
    functionLinenumberEnd: 2536
    functionName: _PyEval_StartTheWorldAll
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 4
    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:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2538
    functionDepth: 3
    functionLinenumber: 2538
    functionLinenumberEnd: 2544
    functionName: _PyEval_StopTheWorld
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 23
    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:2550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2546
    functionDepth: 2
    functionLinenumber: 2546
    functionLinenumberEnd: 2552
    functionName: _PyEval_StartTheWorld
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 23
    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:2571,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/pystate.c:2586,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/pystate.c:2596,1
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Python/pystate.c:2597,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pystate.c:2599,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/pystate.c:2600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - id
    - exc
    argTypes:
    - unsigned long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2568
    functionDepth: 1
    functionLinenumber: 2568
    functionLinenumberEnd: 2604
    functionName: PyThreadState_SetAsyncExc
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _Py_FOR_EACH_TSTATE_END
    - _PyInterpreterState_GET
    - _Py_set_eval_breaker_bit
    - Py_XDECREF
    - _Py_atomic_exchange_ptr
    - Py_XINCREF
    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: 2585
      start: 2580
    functionDepth: 0
    functionLinenumber: 2580
    functionLinenumberEnd: 2585
    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:2613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2610
    functionDepth: 1
    functionLinenumber: 2610
    functionLinenumberEnd: 2614
    functionName: PyThreadState_GetUnchecked
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 5
    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:2620,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2617
    functionDepth: 1
    functionLinenumber: 2617
    functionLinenumberEnd: 2623
    functionName: PyThreadState_Get
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 488
    functionsReached:
    - current_fast_get
    - _Py_EnsureTstateNotNULL
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Get(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2628,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/pystate.c:2630,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/pystate.c:2633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - runtime
    - newts
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2625
    functionDepth: 4
    functionLinenumber: 2625
    functionLinenumberEnd: 2636
    functionName: _PyThreadState_Swap
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_Detach
    - current_fast_get
    - _PyThreadState_Attach
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_Swap(_PyRuntimeState *runtime, PyThreadState *newts)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:2641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newts
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2638
    functionDepth: 5
    functionLinenumber: 2638
    functionLinenumberEnd: 2642
    functionName: PyThreadState_Swap
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 19
    functionsReached:
    - _PyThreadState_Swap
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Swap(PyThreadState *newts)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2650,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/pystate.c:2650,1
    - Dst: bind_tstate
      Src: /src/cpython/Python/pystate.c:2652,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2655,1
    - Dst: bind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:2656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 2649
        line_start: 2649
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2658
      start: 2645
    functionDepth: 3
    functionLinenumber: 2645
    functionLinenumberEnd: 2658
    functionName: _PyThreadState_Bind
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - bind_tstate
    - gilstate_get
    - bind_gilstate_tstate
    - assert
    - _PyThreadState_CheckConsistency
    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: 2668
      start: 2661
    functionDepth: 0
    functionLinenumber: 2661
    functionLinenumberEnd: 2668
    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: 2682
      start: 2678
    functionDepth: 0
    functionLinenumber: 2678
    functionLinenumberEnd: 2682
    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:2687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2684
    functionDepth: 1
    functionLinenumber: 2684
    functionLinenumberEnd: 2688
    functionName: PyInterpreterState_Main
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 14
    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: 2693
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2693
    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: 2698
      start: 2695
    functionDepth: 0
    functionLinenumber: 2695
    functionLinenumberEnd: 2698
    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: 2703
      start: 2700
    functionDepth: 0
    functionLinenumber: 2700
    functionLinenumberEnd: 2703
    functionName: PyThreadState_Next
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Next(PyThreadState *tstate)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2719,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pystate.c:2720,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystate.c:2724,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Python/pystate.c:2735,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2736,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Python/pystate.c:2741,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/pystate.c:2745,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/pystate.c:2749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2751,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/pystate.c:2754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2755,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:2764,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2767,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Python/pystate.c:2768,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2715
    functionDepth: 11
    functionLinenumber: 2715
    functionLinenumberEnd: 2770
    functionName: _PyThread_CurrentFrames
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - HEAD_LOCK
    - _PySys_Audit
    - PyDict_SetItem
    - Py_CLEAR
    - current_fast_get
    - _PyEval_StartTheWorldAll
    - HEAD_UNLOCK
    - _PyEval_StopTheWorldAll
    - _PyFrame_GetFirstComplete
    - Py_DECREF
    - _PyFrame_GetFrameObject
    - PyLong_FromUnsignedLong
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyThread_CurrentFrames(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Python/pystate.c:2741,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/pystate.c:2745,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/pystate.c:2749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2751,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/pystate.c:2754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2755,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2739
    functionDepth: 10
    functionLinenumber: 2739
    functionLinenumberEnd: 2759
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - Py_DECREF
    - _PyFrame_GetFirstComplete
    - _PyFrame_GetFrameObject
    - PyLong_FromUnsignedLong
    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:2781,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:2783,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pystate.c:2785,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystate.c:2789,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Python/pystate.c:2800,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:2801,1
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/pystate.c:2805,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/pystate.c:2809,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2814,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pystate.c:2816,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/pystate.c:2818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2819,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pystate.c:2828,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:2831,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Python/pystate.c:2832,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: 2815
        line_start: 2813
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2834
      start: 2777
    functionDepth: 11
    functionLinenumber: 2777
    functionLinenumberEnd: 2834
    functionName: _PyThread_CurrentExceptions
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_EnsureTstateNotNULL
    - HEAD_LOCK
    - _PyErr_GetTopmostException
    - _PySys_Audit
    - PyDict_SetItem
    - Py_CLEAR
    - current_fast_get
    - HEAD_UNLOCK
    - _PyEval_StartTheWorldAll
    - assert
    - _PyEval_StopTheWorldAll
    - PyExceptionInstance_Check
    - Py_DECREF
    - PyLong_FromUnsignedLong
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyThread_CurrentExceptions(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/cpython/Python/pystate.c:2805,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/pystate.c:2809,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2814,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pystate.c:2816,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/pystate.c:2818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystate.c:2819,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: 2815
        line_start: 2813
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2823
      start: 2804
    functionDepth: 10
    functionLinenumber: 2804
    functionLinenumberEnd: 2823
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyErr_GetTopmostException
    - PyDict_SetItem
    - assert
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyLong_FromUnsignedLong
    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:2847,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:2850,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2853,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2853,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2854,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystate.c:2856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (runtime->gilstate.autoInterpreterState == NULL)
      pos:
        line_end: 2853
        line_start: 2853
        source_file: /src/cpython/Python/pystate.c
    - condition: (gilstate_get() == NULL)
      pos:
        line_end: 2852
        line_start: 2852
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2857
      start: 2844
    functionDepth: 1
    functionLinenumber: 2844
    functionLinenumberEnd: 2857
    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:2862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2859
    functionDepth: 1
    functionLinenumber: 2859
    functionLinenumberEnd: 2868
    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:2876,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2877,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/pystate.c:2879,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2888,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2889,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2889,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 2875
        line_start: 2875
        source_file: /src/cpython/Python/pystate.c
    - condition: (gilstate_get() == tstate)
      pos:
        line_end: 2888
        line_start: 2888
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->interp != NULL)
      pos:
        line_end: 2876
        line_start: 2876
        source_file: /src/cpython/Python/pystate.c
    - condition: (runtime->gilstate.autoInterpreterState == tstate->interp)
      pos:
        line_end: 2887
        line_start: 2887
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->gilstate_counter == 1)
      pos:
        line_end: 2889
        line_start: 2889
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2892
      start: 2872
    functionDepth: 1
    functionLinenumber: 2872
    functionLinenumberEnd: 2892
    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: 2898
      start: 2894
    functionDepth: 0
    functionLinenumber: 2894
    functionLinenumberEnd: 2898
    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:2905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2902
    functionDepth: 1
    functionLinenumber: 2902
    functionLinenumberEnd: 2906
    functionName: PyGILState_GetThisThreadState
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 8
    functionsReached:
    - gilstate_get
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyGILState_GetThisThreadState(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/pystate.c:2912,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:2916,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2908
    functionDepth: 1
    functionLinenumber: 2908
    functionLinenumberEnd: 2923
    functionName: PyGILState_Check
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - current_fast_get
    - gilstate_get
    linkageType: ''
    returnType: int
    signature: int PyGILState_Check(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterView_FromMain
      Src: /src/cpython/Python/pystate.c:2928,1
    - Dst: PyInterpreterGuard_FromView
      Src: /src/cpython/Python/pystate.c:2933,1
    - Dst: PyInterpreterView_Close
      Src: /src/cpython/Python/pystate.c:2934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2925
    functionDepth: 1
    functionLinenumber: 2925
    functionLinenumberEnd: 2936
    functionName: get_main_interp_guard
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyInterpreterView_FromMain
    - PyInterpreterView_Close
    - PyInterpreterGuard_FromView
    linkageType: ''
    returnType: PyInterpreterGuard
    signature: 'PyInterpreterGuard *

      get_main_interp_guard(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2946,1
    - Dst: get_main_interp_guard
      Src: /src/cpython/Python/pystate.c:2950,1
    - Dst: PyThread_hang_thread
      Src: /src/cpython/Python/pystate.c:2955,1
    - Dst: new_threadstate
      Src: /src/cpython/Python/pystate.c:2957,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:2960,1
    - Dst: bind_tstate
      Src: /src/cpython/Python/pystate.c:2962,1
    - Dst: bind_gilstate_tstate
      Src: /src/cpython/Python/pystate.c:2963,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:2967,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Python/pystate.c:2970,1
    - Dst: holds_gil
      Src: /src/cpython/Python/pystate.c:2973,1
    - Dst: PyEval_RestoreThread
      Src: /src/cpython/Python/pystate.c:2977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (tcur->gilstate_counter == 1)
      pos:
        line_end: 2966
        line_start: 2966
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 2988
      start: 2938
    functionDepth: 4
    functionLinenumber: 2938
    functionLinenumberEnd: 2988
    functionName: PyGILState_Ensure
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 31
    functionsReached:
    - Py_FatalError
    - new_threadstate
    - holds_gil
    - bind_tstate
    - gilstate_get
    - bind_gilstate_tstate
    - PyInterpreterGuard_Close
    - assert
    - get_main_interp_guard
    - PyEval_RestoreThread
    - PyThread_hang_thread
    linkageType: ''
    returnType: PyGILState_STATE
    signature: PyGILState_STATE PyGILState_Ensure(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:2993,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:2995,1
    - Dst: holds_gil
      Src: /src/cpython/Python/pystate.c:3000,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/pystate.c:3001,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3006,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3013,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:3019,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3026,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3027,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:3027,1
    - Dst: _PyThreadState_DeleteCurrent
      Src: /src/cpython/Python/pystate.c:3028,1
    - Dst: PyEval_SaveThread
      Src: /src/cpython/Python/pystate.c:3032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - oldstate
    argTypes:
    - PyGILState_STATE
    assertStmts:
    - condition: (tstate->gilstate_counter >= 0)
      pos:
        line_end: 3005
        line_start: 3005
        source_file: /src/cpython/Python/pystate.c
    - condition: (oldstate == PyGILState_UNLOCKED)
      pos:
        line_end: 3012
        line_start: 3012
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->gilstate_counter == 0)
      pos:
        line_end: 3025
        line_start: 3025
        source_file: /src/cpython/Python/pystate.c
    - condition: (current_fast_get() == tstate)
      pos:
        line_end: 3026
        line_start: 3026
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3034
      start: 2990
    functionDepth: 9
    functionLinenumber: 2990
    functionLinenumberEnd: 3034
    functionName: PyGILState_Release
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 31
    functionsReached:
    - Py_FatalError
    - PyThreadState_Clear
    - _PyThreadState_DeleteCurrent
    - holds_gil
    - gilstate_get
    - current_fast_get
    - assert
    - _Py_FatalErrorFormat
    - PyEval_SaveThread
    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: 3048
      start: 3041
    functionDepth: 0
    functionLinenumber: 3041
    functionLinenumberEnd: 3048
    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:3063,1
    - Dst: RARE_EVENT_INC
      Src: /src/cpython/Python/pystate.c:3066,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/pystate.c:3067,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/pystate.c:3071,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - interp
    - eval_frame
    argTypes:
    - PyInterpreterState*
    - _PyFrameEvalFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 3051
    functionDepth: 4
    functionLinenumber: 3051
    functionLinenumberEnd: 3072
    functionName: _PyInterpreterState_SetEvalFrameFunc
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - _Py_Executors_InvalidateAll
    - RARE_EVENT_INC
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    linkageType: ''
    returnType: void
    signature: "void _PyInterpreterState_SetEvalFrameFunc(PyInterpreterState *interp,\n
      \                                    _PyFrameEvalFunction eval_frame)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/pystate.c:3081,1
    - Dst: RARE_EVENT_INC
      Src: /src/cpython/Python/pystate.c:3082,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/pystate.c:3083,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/pystate.c:3085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - interp
    - allow_specialization
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3074
    functionDepth: 4
    functionLinenumber: 3074
    functionLinenumberEnd: 3086
    functionName: _PyInterpreterState_SetEvalFrameAllowSpecialization
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _Py_Executors_InvalidateAll
    - RARE_EVENT_INC
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    linkageType: ''
    returnType: void
    signature: "void _PyInterpreterState_SetEvalFrameAllowSpecialization(PyInterpreterState
      *interp,\n                                                    int allow_specialization)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3088
    functionDepth: 0
    functionLinenumber: 3088
    functionLinenumberEnd: 3093
    functionName: _PyInterpreterState_IsSpecializationEnabled
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterState_IsSpecializationEnabled(PyInterpreterState
      *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3096
    functionDepth: 0
    functionLinenumber: 3096
    functionLinenumberEnd: 3100
    functionName: _PyInterpreterState_GetConfig
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: PyConfig
    signature: 'PyConfig *

      _PyInterpreterState_GetConfig(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:3106,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:3107,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pystate.c:3108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3109
      start: 3103
    functionDepth: 1
    functionLinenumber: 3103
    functionLinenumberEnd: 3109
    functionName: _Py_GetConfig
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 12
    functionsReached:
    - _PyInterpreterState_GetConfig
    - current_fast_get
    - _Py_EnsureTstateNotNULL
    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: 3116
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3116
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: tstate::tstate
      Src: /src/cpython/Python/pystate.c:3132,1
    - Dst: allocate_chunk::allocate_chunk
      Src: /src/cpython/Python/pystate.c:3138,1
    - Dst: tstate::tstate
      Src: /src/cpython/Python/pystate.c:3147,1
    - Dst: previous::previous
      Src: /src/cpython/Python/pystate.c:3152,1
    - Dst: data::data
      Src: /src/cpython/Python/pystate.c:3152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3121
    functionDepth: 4
    functionLinenumber: 3121
    functionLinenumberEnd: 3155
    functionName: push_chunk
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - tstate::tstate
    - data::data
    - allocate_chunk::allocate_chunk
    - previous::previous
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      push_chunk(PyThreadState *tstate, int size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3160,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/pystate.c:3161,1
    - Dst: push_chunk
      Src: /src/cpython/Python/pystate.c:3166,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: 3159
        line_start: 3159
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3167
      start: 3157
    functionDepth: 5
    functionLinenumber: 3157
    functionLinenumberEnd: 3167
    functionName: _PyThreadState_PushFrame
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_HasStackSpace
    - push_chunk
    - assert
    linkageType: ''
    returnType: _PyInterpreterFrame
    signature: '_PyInterpreterFrame *

      _PyThreadState_PushFrame(PyThreadState *tstate, size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3172,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3179,1
    - Dst: _PyObject_VirtualFree
      Src: /src/cpython/Python/pystate.c:3185,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3190,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - tstate
    - frame
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (tstate->datastack_chunk)
      pos:
        line_end: 3171
        line_start: 3171
        source_file: /src/cpython/Python/pystate.c
    - condition: (previous)
      pos:
        line_end: 3178
        line_start: 3178
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->datastack_top >= base)
      pos:
        line_end: 3190
        line_start: 3190
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->datastack_top)
      pos:
        line_end: 3189
        line_start: 3189
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3194
      start: 3169
    functionDepth: 3
    functionLinenumber: 3169
    functionLinenumberEnd: 3194
    functionName: _PyThreadState_PopFrame
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    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:3208,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/pystate.c:3208,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3209,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/pystate.c:3209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!_PyMem_IsPtrFreed(tstate))
      pos:
        line_end: 3207
        line_start: 3207
        source_file: /src/cpython/Python/pystate.c
    - condition: (!_PyMem_IsPtrFreed(tstate->interp))
      pos:
        line_end: 3208
        line_start: 3208
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3211
      start: 3205
    functionDepth: 1
    functionLinenumber: 3205
    functionLinenumberEnd: 3211
    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:3226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3228
      start: 3223
    functionDepth: 0
    functionLinenumber: 3223
    functionLinenumberEnd: 3228
    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:3234,1
    - Dst: PyThread_hang_thread
      Src: /src/cpython/Python/pystate.c:3235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3236
      start: 3230
    functionDepth: 3
    functionLinenumber: 3230
    functionLinenumberEnd: 3236
    functionName: _PyThreadState_HangThread
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - PyThread_hang_thread
    - decref_threadstate
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_HangThread(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mi_tld_init
      Src: /src/cpython/Python/pystate.c:3252,1
    - Dst: llist_init
      Src: /src/cpython/Python/pystate.c:3253,1
    - Dst: _PyMem_DebugEnabled
      Src: /src/cpython/Python/pystate.c:3264,1
    - Dst: _mi_heap_init_ex
      Src: /src/cpython/Python/pystate.c:3276,1
    - Dst: _mi_arena_id_none
      Src: /src/cpython/Python/pystate.c:3276,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pystate.c:3291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3242
    functionDepth: 6
    functionLinenumber: 3242
    functionLinenumberEnd: 3293
    functionName: tstate_mimalloc_bind
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - llist_init
    - _mi_tld_init
    - _mi_arena_id_none
    - _PyMem_DebugEnabled
    - _mi_heap_init_ex
    - _Py_atomic_store_int
    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:3310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3313
      start: 3295
    functionDepth: 1
    functionLinenumber: 3295
    functionLinenumberEnd: 3313
    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:3319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3316
    functionDepth: 0
    functionLinenumber: 3316
    functionLinenumberEnd: 3321
    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: 3328
      start: 3324
    functionDepth: 0
    functionLinenumber: 3324
    functionLinenumberEnd: 3328
    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:3338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3331
    functionDepth: 1
    functionLinenumber: 3331
    functionLinenumberEnd: 3340
    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:3346,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/pystate.c:3350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3343
    functionDepth: 1
    functionLinenumber: 3343
    functionLinenumberEnd: 3351
    functionName: _Py_GetMainConfig
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    - _PyInterpreterState_GetConfig
    linkageType: ''
    returnType: PyConfig
    signature: 'PyConfig *

      _Py_GetMainConfig(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3356,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/pystate.c:3357,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 3355
        line_start: 3355
        source_file: /src/cpython/Python/pystate.c
    - condition: (count >= 0)
      pos:
        line_end: 3357
        line_start: 3357
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3360
      start: 3353
    functionDepth: 0
    functionLinenumber: 3353
    functionLinenumberEnd: 3360
    functionName: _PyInterpreterState_GuardCountdown
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - _Py_atomic_load_uintptr
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyInterpreterState_GuardCountdown(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3365,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - guard
    argTypes:
    - PyInterpreterGuard*
    assertStmts:
    - condition: (guard != NULL)
      pos:
        line_end: 3364
        line_start: 3364
        source_file: /src/cpython/Python/pystate.c
    - condition: (guard->interp != NULL)
      pos:
        line_end: 3365
        line_start: 3365
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3368
      start: 3362
    functionDepth: 0
    functionLinenumber: 3362
    functionLinenumberEnd: 3368
    functionName: _PyInterpreterGuard_GetInterpreter
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _PyInterpreterGuard_GetInterpreter(PyInterpreterGuard *guard)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3373,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/pystate.c:3377,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/pystate.c:3381,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3384,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/pystate.c:3384,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3385,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/pystate.c:3385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - interp
    - guard
    argTypes:
    - PyInterpreterState*
    - PyInterpreterGuard*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 3372
        line_start: 3372
        source_file: /src/cpython/Python/pystate.c
    - condition: (_Py_atomic_load_uintptr(&interp->finalization_guards) > 0)
      pos:
        line_end: 3383
        line_start: 3383
        source_file: /src/cpython/Python/pystate.c
    - condition: (_Py_atomic_load_uintptr(&interp->finalization_guards) != _PyInterpreterGuard_GUARDS_NOT_ALLOWED)
      pos:
        line_end: 3384
        line_start: 3384
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3389
      start: 3370
    functionDepth: 0
    functionLinenumber: 3370
    functionLinenumberEnd: 3389
    functionName: try_acquire_interp_guard
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_compare_exchange_uintptr
    - _Py_atomic_load_uintptr
    - assert
    linkageType: ''
    returnType: int
    signature: int try_acquire_interp_guard(PyInterpreterState *interp, PyInterpreterGuard
      *guard)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/pystate.c:3394,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3395,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/pystate.c:3397,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystate.c:3399,1
    - Dst: try_acquire_interp_guard
      Src: /src/cpython/Python/pystate.c:3403,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:3404,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystate.c:3405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 3394
        line_start: 3394
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3411
      start: 3391
    functionDepth: 1
    functionLinenumber: 3391
    functionLinenumberEnd: 3411
    functionName: PyInterpreterGuard_FromCurrent
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 8
    functionsReached:
    - PyErr_NoMemory
    - try_acquire_interp_guard
    - PyErr_SetString
    - _PyInterpreterState_GET
    - PyMem_RawFree
    - PyMem_RawMalloc
    - assert
    linkageType: ''
    returnType: PyInterpreterGuard
    signature: 'PyInterpreterGuard *

      PyInterpreterGuard_FromCurrent(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3417,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3419,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/pystate.c:3419,1
    - Dst: _Py_atomic_add_uintptr
      Src: /src/cpython/Python/pystate.c:3420,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/pystate.c:3422,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3425,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:3426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - guard
    argTypes:
    - PyInterpreterGuard*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 3416
        line_start: 3416
        source_file: /src/cpython/Python/pystate.c
    - condition: (_Py_atomic_load_uintptr(&interp->finalization_guards) != _PyInterpreterGuard_GUARDS_NOT_ALLOWED)
      pos:
        line_end: 3418
        line_start: 3418
        source_file: /src/cpython/Python/pystate.c
    - condition: (old_value > 0)
      pos:
        line_end: 3424
        line_start: 3424
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3427
      start: 3413
    functionDepth: 1
    functionLinenumber: 3413
    functionLinenumberEnd: 3427
    functionName: PyInterpreterGuard_Close
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 11
    functionsReached:
    - _PyParkingLot_UnparkAll
    - PyMem_RawFree
    - _Py_atomic_add_uintptr
    - assert
    - _Py_atomic_load_uintptr
    linkageType: ''
    returnType: void
    signature: void PyInterpreterGuard_Close(PyInterpreterGuard *guard)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/pystate.c:3432,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3433,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/pystate.c:3437,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystate.c:3439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 3432
        line_start: 3432
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3445
      start: 3429
    functionDepth: 1
    functionLinenumber: 3429
    functionLinenumberEnd: 3445
    functionName: PyInterpreterView_FromCurrent
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 4
    functionsReached:
    - assert
    - PyMem_RawMalloc
    - PyErr_NoMemory
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyInterpreterView
    signature: 'PyInterpreterView *

      PyInterpreterView_FromCurrent(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3450,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:3451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - view
    argTypes:
    - PyInterpreterView*
    assertStmts:
    - condition: (view != NULL)
      pos:
        line_end: 3449
        line_start: 3449
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3452
      start: 3447
    functionDepth: 1
    functionLinenumber: 3447
    functionLinenumberEnd: 3452
    functionName: PyInterpreterView_Close
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 4
    functionsReached:
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: void
    signature: void PyInterpreterView_Close(PyInterpreterView *view)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3457,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3459,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/pystate.c:3464,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/pystate.c:3471,1
    - Dst: interp_look_up_id
      Src: /src/cpython/Python/pystate.c:3472,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:3474,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:3475,1
    - Dst: try_acquire_interp_guard
      Src: /src/cpython/Python/pystate.c:3479,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/pystate.c:3480,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystate.c:3483,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - view
    argTypes:
    - PyInterpreterView*
    assertStmts:
    - condition: (view != NULL)
      pos:
        line_end: 3456
        line_start: 3456
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp_id >= 0)
      pos:
        line_end: 3458
        line_start: 3458
        source_file: /src/cpython/Python/pystate.c
    - condition: (guard->interp != NULL)
      pos:
        line_end: 3486
        line_start: 3486
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3489
      start: 3454
    functionDepth: 1
    functionLinenumber: 3454
    functionLinenumberEnd: 3489
    functionName: PyInterpreterGuard_FromView
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 3
    functionsReached:
    - assert
    - try_acquire_interp_guard
    - HEAD_LOCK
    - PyMem_RawFree
    - PyMem_RawMalloc
    - HEAD_UNLOCK
    - interp_look_up_id
    linkageType: ''
    returnType: PyInterpreterGuard
    signature: 'PyInterpreterGuard *

      PyInterpreterGuard_FromView(PyInterpreterView *view)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/pystate.c:3494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3503
      start: 3491
    functionDepth: 1
    functionLinenumber: 3491
    functionLinenumberEnd: 3503
    functionName: PyInterpreterView_FromMain
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - PyMem_RawMalloc
    linkageType: ''
    returnType: PyInterpreterView
    signature: 'PyInterpreterView *

      PyInterpreterView_FromMain(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3511,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3513,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:3514,1
    - Dst: gilstate_get
      Src: /src/cpython/Python/pystate.c:3521,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3524,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/pystate.c:3526,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/pystate.c:3530,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:3539,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/pystate.c:3542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - guard
    argTypes:
    - PyInterpreterGuard*
    assertStmts:
    - condition: (guard != NULL)
      pos:
        line_end: 3510
        line_start: 3510
        source_file: /src/cpython/Python/pystate.c
    - condition: (attached_tstate == NULL)
      pos:
        line_end: 3523
        line_start: 3523
        source_file: /src/cpython/Python/pystate.c
    - condition: (interp != NULL)
      pos:
        line_end: 3512
        line_start: 3512
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3544
      start: 3508
    functionDepth: 6
    functionLinenumber: 3508
    functionLinenumberEnd: 3544
    functionName: PyThreadState_Ensure
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 6
    functionsReached:
    - _PyThreadState_Attach
    - PyThreadState_Swap
    - gilstate_get
    - current_fast_get
    - assert
    - _PyThreadState_NewBound
    linkageType: ''
    returnType: PyThreadStateToken
    signature: 'PyThreadStateToken *

      PyThreadState_Ensure(PyInterpreterGuard *guard)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3549,1
    - Dst: PyInterpreterGuard_FromView
      Src: /src/cpython/Python/pystate.c:3550,1
    - Dst: PyThreadState_Ensure
      Src: /src/cpython/Python/pystate.c:3555,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Python/pystate.c:3557,1
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:3561,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3562,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3565,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Python/pystate.c:3566,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - view
    argTypes:
    - PyInterpreterView*
    assertStmts:
    - condition: (view != NULL)
      pos:
        line_end: 3548
        line_start: 3548
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate != NULL)
      pos:
        line_end: 3561
        line_start: 3561
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->ensure.owned_guard->interp == guard->interp)
      pos:
        line_end: 3564
        line_start: 3564
        source_file: /src/cpython/Python/pystate.c
    - condition: (tstate->ensure.owned_guard == NULL)
      pos:
        line_end: 3568
        line_start: 3568
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3574
      start: 3546
    functionDepth: 7
    functionLinenumber: 3546
    functionLinenumberEnd: 3574
    functionName: PyThreadState_EnsureFromView
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 2
    functionsReached:
    - PyInterpreterGuard_FromView
    - current_fast_get
    - PyInterpreterGuard_Close
    - assert
    - PyThreadState_Ensure
    linkageType: ''
    returnType: PyThreadStateToken
    signature: 'PyThreadStateToken *

      PyThreadState_EnsureFromView(PyInterpreterView *view)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: current_fast_get
      Src: /src/cpython/Python/pystate.c:3579,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/pystate.c:3580,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/pystate.c:3583,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:3590,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3604,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/pystate.c:3607,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/pystate.c:3614,1
    - Dst: assert
      Src: /src/cpython/Python/pystate.c:3616,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Python/pystate.c:3619,1
    - Dst: PyInterpreterGuard_Close
      Src: /src/cpython/Python/pystate.c:3623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - token
    argTypes:
    - PyThreadStateToken*
    assertStmts:
    - condition: (tstate->ensure.delete_on_release == 1 || tstate->ensure.delete_on_release
        == 0)
      pos:
        line_end: 3603
        line_start: 3603
        source_file: /src/cpython/Python/pystate.c
    - condition: (check_tstate == tstate)
      pos:
        line_end: 3615
        line_start: 3615
        source_file: /src/cpython/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 3625
      start: 3576
    functionDepth: 9
    functionLinenumber: 3576
    functionLinenumberEnd: 3625
    functionName: PyThreadState_Release
    functionSourceFile: /src/cpython/Python/pystate.c
    functionUses: 8
    functionsReached:
    - Py_FatalError
    - PyThreadState_Clear
    - PyThreadState_Swap
    - _Py_EnsureTstateNotNULL
    - current_fast_get
    - PyInterpreterGuard_Close
    - assert
    - PyThreadState_Delete
    linkageType: ''
    returnType: void
    signature: void PyThreadState_Release(PyThreadStateToken *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyPerfTrampoline_GetCallbacks
      Src: /src/cpython/Python/jit_publish.c:23,1
    - Dst: _PyPerfJit_WriteNamedCode
      Src: /src/cpython/Python/jit_publish.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - code_addr
    - code_size
    - entry
    - filename
    argTypes:
    - void*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: jit_register_perf_code
    functionSourceFile: /src/cpython/Python/jit_publish.c
    functionUses: 0
    functionsReached:
    - _PyPerfJit_WriteNamedCode
    - _PyPerfTrampoline_GetCallbacks
    linkageType: ''
    returnType: void
    signature: "void jit_register_perf_code(const void *code_addr, size_t code_size,\n
      \                      const char *entry, const char *filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyJitUnwind_GdbRegisterCode
      Src: /src/cpython/Python/jit_publish.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - registration
    - code_addr
    - code_size
    - entry
    - filename
    argTypes:
    - _PyJitCodeRegistration*
    - void*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: jit_register_gdb_code
    functionSourceFile: /src/cpython/Python/jit_publish.c
    functionUses: 0
    functionsReached:
    - _PyJitUnwind_GdbRegisterCode
    linkageType: ''
    returnType: void
    signature: "void jit_register_gdb_code(_PyJitCodeRegistration *registration,\n
      \                     const void *code_addr, size_t code_size,\n                      const
      char *entry, const char *filename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyJitUnwind_GdbUnregisterCode
      Src: /src/cpython/Python/jit_publish.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - registration
    argTypes:
    - _PyJitCodeRegistration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: jit_unregister_gdb_code
    functionSourceFile: /src/cpython/Python/jit_publish.c
    functionUses: 0
    functionsReached:
    - _PyJitUnwind_GdbUnregisterCode
    linkageType: ''
    returnType: void
    signature: void jit_unregister_gdb_code(_PyJitCodeRegistration *registration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyJitUnwind_GnuBacktraceRegisterCode
      Src: /src/cpython/Python/jit_publish.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - registration
    - code_addr
    - code_size
    argTypes:
    - _PyJitCodeRegistration*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: jit_register_gnu_backtrace_code
    functionSourceFile: /src/cpython/Python/jit_publish.c
    functionUses: 0
    functionsReached:
    - _PyJitUnwind_GnuBacktraceRegisterCode
    linkageType: ''
    returnType: void
    signature: "void jit_register_gnu_backtrace_code(_PyJitCodeRegistration *registration,\n
      \                               const void *code_addr, size_t code_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyJitUnwind_GnuBacktraceUnregisterCode
      Src: /src/cpython/Python/jit_publish.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - registration
    argTypes:
    - _PyJitCodeRegistration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: jit_unregister_gnu_backtrace_code
    functionSourceFile: /src/cpython/Python/jit_publish.c
    functionUses: 0
    functionsReached:
    - _PyJitUnwind_GnuBacktraceUnregisterCode
    linkageType: ''
    returnType: void
    signature: void jit_unregister_gnu_backtrace_code(_PyJitCodeRegistration *registration)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jit_register_perf_code
      Src: /src/cpython/Python/jit_publish.c:80,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/jit_publish.c:88,1
    - Dst: jit_register_gdb_code
      Src: /src/cpython/Python/jit_publish.c:98,1
    - Dst: jit_register_gnu_backtrace_code
      Src: /src/cpython/Python/jit_publish.c:103,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_publish.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - code_addr
    - code_size
    - entry
    - filename
    argTypes:
    - void*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 113
    functionName: _PyJit_RegisterCode
    functionSourceFile: /src/cpython/Python/jit_publish.c
    functionUses: 0
    functionsReached:
    - jit_register_gnu_backtrace_code
    - jit_register_perf_code
    - PyMem_RawCalloc
    - jit_register_gdb_code
    - PyMem_RawFree
    linkageType: ''
    returnType: _PyJitCodeRegistration
    signature: "_PyJitCodeRegistration *\n_PyJit_RegisterCode(const void *code_addr,
      size_t code_size,\n                    const char *entry, const char *filename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/jit_publish.c:120,1
    - Dst: jit_unregister_gnu_backtrace_code
      Src: /src/cpython/Python/jit_publish.c:128,1
    - Dst: jit_unregister_gdb_code
      Src: /src/cpython/Python/jit_publish.c:131,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_publish.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - registration
    argTypes:
    - _PyJitCodeRegistration*
    assertStmts:
    - condition: (registration == NULL)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Python/jit_publish.c
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: _PyJit_UnregisterCode
    functionSourceFile: /src/cpython/Python/jit_publish.c
    functionUses: 0
    functionsReached:
    - jit_unregister_gnu_backtrace_code
    - PyMem_RawFree
    - jit_unregister_gdb_code
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyJit_UnregisterCode(_PyJitCodeRegistration *registration)
  - 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
    - memset
    - _Py_atomic_load_ssize
    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:
    - _PyObject_SetDeferredRefcount
    - LOCK_POOL
    - UNLOCK_POOL
    - _PyInterpreterState_GET
    - assert
    - 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:
    - assert
    - LOCK_POOL
    - UNLOCK_POOL
    - _PyInterpreterState_GET
    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:
    - PyCode_Check
    - PyType_Check
    - _PyDict_UniqueId
    - PyType_HasFeature
    - PyDict_Check
    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_IncRefTotal
    - Py_INCREF
    - _Py_INCREF_STAT_INC
    - resize_local_refcounts
    - _PyThreadState_GET
    - 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:
    - _Py_atomic_add_ssize
    - LOCK_POOL
    - 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:
    - _PyObject_MergePerThreadRefcounts
    - PyMem_Free
    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:
    - clear_unique_id
    - PyMem_Free
    - assert
    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: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    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: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    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: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    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: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    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: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    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: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    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:94,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:94,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: gc_decref
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - _PyObject_ASSERT_WITH_MSG
    - gc_get_refs
    linkageType: ''
    returnType: void
    signature: void gc_decref(PyGC_Head *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gcstate
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: GEN_HEAD
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_HEAD(gcstate, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/gc.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: 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:122,1
    - Dst: INIT_HEAD
      Src: /src/cpython/Python/gc.c:123,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:125,1
    - Dst: INIT_HEAD
      Src: /src/cpython/Python/gc.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts:
    - condition: (gcstate->generations[i].count == 0)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: _PyGC_InitState
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - INIT_HEAD
    - GEN_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: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: INIT_HEAD
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_HEAD(GEN)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/gc.c:137,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc.c:139,1
    - Dst: PyList_New
      Src: /src/cpython/Python/gc.c:142,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc.c:144,1
    - Dst: PyList_New
      Src: /src/cpython/Python/gc.c:147,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc.c:149,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/gc.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: _PyGC_Init
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - PyMem_RawCalloc
    - _PyStatus_NO_MEMORY
    - PyList_New
    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: 216
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 216
    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: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    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: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:231,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:232,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: gc_list_append
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_NEXT
    - _PyGCHead_SET_PREV
    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:243,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:244,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:246,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: gc_list_remove
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_PREV
    - GC_PREV
    - _PyGCHead_SET_NEXT
    - 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:260,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:261,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:262,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:263,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:268,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:269,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 272
    functionName: gc_list_move
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_PREV
    - GC_PREV
    - _PyGCHead_SET_NEXT
    - 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:278,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:279,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:280,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:281,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:282,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:283,1
    - Dst: assert
      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
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:289,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:290,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: (from != to)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/cpython/Python/gc.c
    - condition: (from_head != from)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/cpython/Python/gc.c
    - condition: (from_tail != from)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: gc_list_merge
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - GC_PREV
    - _PyGCHead_SET_NEXT
    - gc_list_is_empty
    - GC_NEXT
    - gc_list_init
    - assert
    - _PyGCHead_SET_PREV
    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:300,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 304
    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:311,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:311,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - collectable
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 314
    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:323,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:323,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:324,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - py_list
    - gc_list
    argTypes:
    - PyObject*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 332
    functionName: append_objects
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - GC_NEXT
    - PyList_Append
    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:353,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:354,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:370,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:373,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:375,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:377,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:378,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:379,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:380,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:384,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - head
    - flags
    argTypes:
    - PyGC_Head*
    - enum flagstates
    assertStmts:
    - condition: ((head->_gc_prev & PREV_MASK_COLLECTING) == 0)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/cpython/Python/gc.c
    - condition: (! "bad internal flags argument")
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/cpython/Python/gc.c
    - condition: ((head->_gc_next & NEXT_MASK_UNREACHABLE) == 0)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/cpython/Python/gc.c
    - condition: (truenext != NULL)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/cpython/Python/gc.c
    - condition: (trueprev == prev)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/cpython/Python/gc.c
    - condition: ((gc->_gc_prev & PREV_MASK_COLLECTING) == prev_value)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/cpython/Python/gc.c
    - condition: ((gc->_gc_next & NEXT_MASK_UNREACHABLE) == next_value)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/cpython/Python/gc.c
    - condition: (prev == GC_PREV(head))
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 385
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 385
    functionName: validate_list
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - GC_PREV
    - GC_NEXT
    - assert
    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: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    functionName: validate_list
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_list(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:400,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:404,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:405,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc.c:406,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:407,1
    - Dst: _Py_IsStaticImmortal
      Src: /src/cpython/Python/gc.c:407,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc.c:408,1
    - Dst: gc_reset_refs
      Src: /src/cpython/Python/gc.c:412,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc.c:412,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:431,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - containers
    argTypes:
    - PyGC_Head*
    assertStmts:
    - condition: (!_Py_IsStaticImmortal(op))
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 436
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 436
    functionName: update_refs
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - gc_reset_refs
    - FROM_GC
    - _Py_IsStaticImmortal
    - Py_REFCNT
    - gc_get_refs
    - GC_NEXT
    - _Py_IsImmortal
    - assert
    - _PyObject_GC_UNTRACK
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t update_refs(PyGC_Head *containers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Python/gc.c:442,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:443,1
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc.c:443,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Python/gc.c:443,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:445,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:446,1
    - Dst: gc_is_collecting
      Src: /src/cpython/Python/gc.c:451,1
    - Dst: gc_decref
      Src: /src/cpython/Python/gc.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - parent
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 456
    functionName: visit_decref
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - gc_decref
    - gc_is_collecting
    - _PyObject_IsFreed
    - _PyObject_CAST
    - _PyObject_IS_GC
    - OBJECT_STAT_INC
    - 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:464,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/gc.c:464,1
    - Dst: PyStackRef_RefcountOnObject
      Src: /src/cpython/Python/gc.c:465,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/gc.c:468,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc.c:468,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: 463
        line_start: 463
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: _PyGC_VisitStackRef
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsTaggedInt
    - Py_VISIT
    - assert
    - PyStackRef_RefcountOnObject
    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:475,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/gc.c:478,1
    - Dst: _Py_VISIT_STACKREF
      Src: /src/cpython/Python/gc.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - frame
    - visit
    - arg
    argTypes:
    - _PyInterpreterFrame*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 483
    functionName: _PyGC_VisitFrameStack
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _Py_VISIT_STACKREF
    - PyStackRef_IsTaggedInt
    - _PyFrame_GetLocalsArray
    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:493,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:494,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:495,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:496,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - containers
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 501
    functionName: subtract_refs
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - GC_NEXT
    - Py_TYPE
    - traverse
    linkageType: ''
    returnType: void
    signature: void subtract_refs(PyGC_Head *containers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_STAT_INC
      Src: /src/cpython/Python/gc.c:508,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:509,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:513,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:514,1
    - Dst: gc_is_collecting
      Src: /src/cpython/Python/gc.c:520,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:525,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:536,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:538,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:538,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:540,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:540,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:543,1
    - Dst: gc_list_append
      Src: /src/cpython/Python/gc.c:545,1
    - Dst: gc_set_refs
      Src: /src/cpython/Python/gc.c:546,1
    - Dst: gc_set_refs
      Src: /src/cpython/Python/gc.c:554,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc.c:561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 564
    functionName: visit_reachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - gc_is_collecting
    - GC_PREV
    - FROM_GC
    - gc_list_append
    - _PyObject_IS_GC
    - OBJECT_STAT_INC
    - gc_set_refs
    - _PyObject_ASSERT_WITH_MSG
    - gc_get_refs
    - _PyGCHead_SET_PREV
    - AS_GC
    linkageType: ''
    returnType: int
    signature: int visit_reachable(PyObject *op, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:583,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:595,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:604,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:605,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc.c:606,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc.c:606,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:610,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:614,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:616,1
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:633,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - young
    - unreachable
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 650
    functionName: move_unreachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_clear_collecting
    - GC_PREV
    - FROM_GC
    - GC_NEXT
    - _PyObject_ASSERT_WITH_MSG
    - gc_get_refs
    - _PyGCHead_SET_PREV
    - Py_TYPE
    - traverse
    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:667,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:669,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:670,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/gc.c:671,1
    - Dst: _PyTuple_MaybeUntrack
      Src: /src/cpython/Python/gc.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - head
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 676
    functionName: untrack_tuples
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - _PyTuple_MaybeUntrack
    - GC_NEXT
    - PyTuple_CheckExact
    linkageType: ''
    returnType: void
    signature: void untrack_tuples(PyGC_Head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 683
    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:694,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:695,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:701,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:702,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:704,1
    - Dst: has_legacy_finalizer
      Src: /src/cpython/Python/gc.c:708,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:709,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - unreachable
    - finalizers
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 713
    functionName: move_legacy_finalizers
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - gc_list_move
    - gc_clear_collecting
    - FROM_GC
    - GC_NEXT
    - has_legacy_finalizer
    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:719,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:720,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:722,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:723,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:727,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:728,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:728,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - unreachable
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 733
    functionName: clear_unreachable_mask
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - validate_list
    - _PyObject_ASSERT
    - GC_NEXT
    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:740,1
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:741,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:742,1
    - Dst: gc_is_collecting
      Src: /src/cpython/Python/gc.c:743,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:744,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: visit_move
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_move
    - gc_is_collecting
    - gc_clear_collecting
    - _PyObject_IS_GC
    - OBJECT_STAT_INC
    - 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:758,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:759,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:761,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:761,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:762,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - finalizers
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 766
    functionName: move_legacy_finalizer_reachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - GC_NEXT
    - Py_TYPE
    - traverse
    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:815,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:821,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:824,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:825,1
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Python/gc.c:827,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:827,1
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Python/gc.c:836,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:857,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc.c:858,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:859,1
    - Dst: gc_is_collecting
      Src: /src/cpython/Python/gc.c:889,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:889,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:896,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:899,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:901,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:902,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:909,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:914,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:915,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Python/gc.c:915,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:918,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/gc.c:921,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:941,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:944,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - unreachable
    - old
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 952
    functionName: handle_weakref_callbacks
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - _PyObject_ASSERT
    - gc_is_collecting
    - Py_INCREF
    - gc_list_move
    - _PyWeakref_ClearRef
    - AS_GC
    - FROM_GC
    - _PyType_SUPPORTS_WEAKREFS
    - gc_list_init
    - GC_NEXT
    - gc_list_is_empty
    - Py_DECREF
    - PyWeakref_Check
    - PyErr_FormatUnraisable
    - Py_TYPE
    - PyObject_CallOneArg
    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:964,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:967,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:968,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Python/gc.c:970,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc.c:975,1
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Python/gc.c:978,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:978,1
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Python/gc.c:987,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:997,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc.c:998,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:999,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - unreachable
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 958
    functionDepth: 3
    functionLinenumber: 958
    functionLinenumberEnd: 1002
    functionName: clear_weakrefs
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - _PyObject_ASSERT
    - _PyWeakref_ClearRef
    - FROM_GC
    - _PyType_SUPPORTS_WEAKREFS
    - GC_NEXT
    - PyWeakref_Check
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void clear_weakrefs(PyGC_Head *unreachable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/gc.c:1007,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - op
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1009
    functionName: debug_cycle
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PySys_FormatStderr
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void debug_cycle(const char *msg, PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1023,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1023,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1024,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1026,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1027,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1028,1
    - Dst: has_legacy_finalizer
      Src: /src/cpython/Python/gc.c:1030,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc.c:1031,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc.c:1032,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1038,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: 1022
        line_start: 1022
        source_file: /src/cpython/Python/gc.c
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1023
        line_start: 1023
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1039
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1039
    functionName: handle_legacy_finalizers
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_merge
    - _PyErr_Occurred
    - PyList_Append
    - FROM_GC
    - GC_NEXT
    - has_legacy_finalizer
    - _PyErr_Clear
    - 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:1059,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1061,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1062,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1063,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1064,1
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Python/gc.c:1065,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1066,1
    - Dst: _PyGC_SET_FINALIZED
      Src: /src/cpython/Python/gc.c:1068,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:1069,1
    - Dst: finalize
      Src: /src/cpython/Python/gc.c:1070,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1071,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1072,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - tstate
    - collectable
    argTypes:
    - PyThreadState*
    - PyGC_Head*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1070
        line_start: 1070
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1076
      start: 1045
    functionDepth: 2
    functionLinenumber: 1045
    functionLinenumberEnd: 1076
    functionName: finalize_garbage
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_move
    - Py_INCREF
    - _PyGC_FINALIZED
    - finalize
    - gc_list_merge
    - _PyErr_Occurred
    - FROM_GC
    - gc_list_init
    - GC_NEXT
    - gc_list_is_empty
    - _PyGC_SET_FINALIZED
    - assert
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void finalize_garbage(PyThreadState *tstate, PyGC_Head *collectable)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1086,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1086,1
    - Dst: gc_list_is_empty
      Src: /src/cpython/Python/gc.c:1088,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1089,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1090,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc.c:1092,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc.c:1092,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1096,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc.c:1097,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc.c:1098,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1103,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:1104,1
    - Dst: clear
      Src: /src/cpython/Python/gc.c:1105,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1106,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1107,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1110,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1113,1
    - Dst: gc_clear_collecting
      Src: /src/cpython/Python/gc.c:1115,1
    - Dst: gc_list_move
      Src: /src/cpython/Python/gc.c:1116,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: 1085
        line_start: 1085
        source_file: /src/cpython/Python/gc.c
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1095
        line_start: 1095
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1119
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1119
    functionName: delete_garbage
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - gc_list_move
    - gc_clear_collecting
    - _PyErr_Occurred
    - PyList_Append
    - clear
    - FROM_GC
    - Py_REFCNT
    - gc_list_is_empty
    - GC_NEXT
    - _PyErr_Clear
    - _PyObject_ASSERT_WITH_MSG
    - assert
    - Py_DECREF
    - PyErr_FormatUnraisable
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: "void delete_garbage(PyThreadState *tstate, GCState *gcstate,\n               PyGC_Head
      *collectable, PyGC_Head *old)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/gc.c:1130,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:1132,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1132,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/gc.c:1135,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:1138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1139
    functionName: show_stats_each_generations
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_size
    - GEN_HEAD
    - PySys_FormatStderr
    - PyOS_snprintf
    linkageType: ''
    returnType: void
    signature: void show_stats_each_generations(GCState *gcstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1170,1
    - Dst: update_refs
      Src: /src/cpython/Python/gc.c:1176,1
    - Dst: subtract_refs
      Src: /src/cpython/Python/gc.c:1177,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1214,1
    - Dst: move_unreachable
      Src: /src/cpython/Python/gc.c:1215,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1216,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - base
    - unreachable
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1168
    functionDepth: 2
    functionLinenumber: 1168
    functionLinenumberEnd: 1219
    functionName: deduce_unreachable
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - validate_list
    - move_unreachable
    - gc_list_init
    - subtract_refs
    - update_refs
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t deduce_unreachable(PyGC_Head *base, PyGC_Head *unreachable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_clear_collecting
      Src: /src/cpython/Python/gc.c:1240,1
    - Dst: deduce_unreachable
      Src: /src/cpython/Python/gc.c:1246,1
    - Dst: clear_unreachable_mask
      Src: /src/cpython/Python/gc.c:1247,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1250,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: 1251
      start: 1234
    functionDepth: 3
    functionLinenumber: 1234
    functionLinenumberEnd: 1251
    functionName: handle_resurrected_objects
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_list_merge
    - clear_unreachable_mask
    - deduce_unreachable
    - gc_list_clear_collecting
    linkageType: ''
    returnType: void
    signature: "void handle_resurrected_objects(PyGC_Head *unreachable, PyGC_Head*
      still_unreachable,\n                           PyGC_Head *old_generation)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1261,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1261,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1270,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/gc.c:1270,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc.c:1272,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/gc.c:1273,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1280,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/gc.c:1285,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc.c:1287,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1288,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc.c:1293,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/gc.c:1294,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:1295,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/gc.c:1296,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1306,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc.c:1307,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1308,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - tstate
    - phase
    - generation
    - stats
    argTypes:
    - PyThreadState*
    - char*
    - int
    - struct gc_generation_stats*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1307
        line_start: 1307
        source_file: /src/cpython/Python/gc.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1260
        line_start: 1260
        source_file: /src/cpython/Python/gc.c
    - condition: (PyList_CheckExact(gcstate->callbacks))
      pos:
        line_end: 1269
        line_start: 1269
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1309
      start: 1257
    functionDepth: 2
    functionLinenumber: 1257
    functionLinenumberEnd: 1309
    functionName: invoke_gc_callback
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_INCREF
    - PyObject_Vectorcall
    - _PyErr_Occurred
    - PyList_GET_ITEM
    - Py_BuildValue
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: "void invoke_gc_callback(PyThreadState *tstate, const char *phase,\n
      \                  int generation, struct gc_generation_stats *stats)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1365
    functionName: gc_select_generation
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_select_generation(GCState *gcstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - gcstate
    - gen
    argTypes:
    - GCState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1382
    functionName: gc_get_stats
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct gc_generation_stats
    signature: 'struct gc_generation_stats *

      gc_get_stats(GCState *gcstate, int gen)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - gcstate
    - gen
    argTypes:
    - GCState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1397
    functionName: gc_get_prev_stats
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct gc_generation_stats
    signature: 'struct gc_generation_stats *

      gc_get_prev_stats(GCState *gcstate, int gen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_get_prev_stats
      Src: /src/cpython/Python/gc.c:1402,1
    - Dst: gc_get_stats
      Src: /src/cpython/Python/gc.c:1403,1
    - Dst: memcpy
      Src: /src/cpython/Python/gc.c:1405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - gcstate
    - gen
    - stats
    argTypes:
    - GCState*
    - int
    - struct gc_generation_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1418
    functionName: add_stats
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - gc_get_prev_stats
    - memcpy
    - gc_get_stats
    linkageType: ''
    returnType: void
    signature: void add_stats(GCState *gcstate, int gen, struct gc_generation_stats
      *stats)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1435,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1436,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1436,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/gc.c:1439,1
    - Dst: gc_select_generation
      Src: /src/cpython/Python/gc.c:1448,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/gc.c:1451,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1456,1
    - Dst: _PyStats_GET
      Src: /src/cpython/Python/gc.c:1460,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1467,1
    - Dst: invoke_gc_callback
      Src: /src/cpython/Python/gc.c:1471,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/gc.c:1476,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc.c:1478,1
    - Dst: show_stats_each_generations
      Src: /src/cpython/Python/gc.c:1479,1
    - Dst: PyDTrace_GC_START_ENABLED
      Src: /src/cpython/Python/gc.c:1482,1
    - Dst: PyDTrace_GC_START
      Src: /src/cpython/Python/gc.c:1483,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1496,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1496,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1496,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1500,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1502,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1507,1
    - Dst: deduce_unreachable
      Src: /src/cpython/Python/gc.c:1509,1
    - Dst: untrack_tuples
      Src: /src/cpython/Python/gc.c:1511,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:1515,1
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1517,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:1528,1
    - Dst: gc_list_init
      Src: /src/cpython/Python/gc.c:1534,1
    - Dst: move_legacy_finalizers
      Src: /src/cpython/Python/gc.c:1537,1
    - Dst: move_legacy_finalizer_reachable
      Src: /src/cpython/Python/gc.c:1542,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1544,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1545,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1549,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1549,1
    - Dst: debug_cycle
      Src: /src/cpython/Python/gc.c:1550,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1550,1
    - Dst: handle_weakref_callbacks
      Src: /src/cpython/Python/gc.c:1555,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1556,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1557,1
    - Dst: finalize_garbage
      Src: /src/cpython/Python/gc.c:1560,1
    - Dst: handle_resurrected_objects
      Src: /src/cpython/Python/gc.c:1566,1
    - Dst: clear_weakrefs
      Src: /src/cpython/Python/gc.c:1574,1
    - Dst: gc_list_size
      Src: /src/cpython/Python/gc.c:1580,1
    - Dst: delete_garbage
      Src: /src/cpython/Python/gc.c:1581,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1586,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1586,1
    - Dst: debug_cycle
      Src: /src/cpython/Python/gc.c:1589,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1589,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/gc.c:1592,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Python/gc.c:1593,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc.c:1595,1
    - Dst: handle_legacy_finalizers
      Src: /src/cpython/Python/gc.c:1605,1
    - Dst: validate_list
      Src: /src/cpython/Python/gc.c:1606,1
    - Dst: _PyGC_ClearAllFreeLists
      Src: /src/cpython/Python/gc.c:1611,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1614,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc.c:1616,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1619,1
    - Dst: add_stats
      Src: /src/cpython/Python/gc.c:1624,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1625,1
    - Dst: _PyStats_GET
      Src: /src/cpython/Python/gc.c:1629,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc.c:1631,1
    - Dst: PyDTrace_GC_DONE_ENABLED
      Src: /src/cpython/Python/gc.c:1638,1
    - Dst: PyDTrace_GC_DONE
      Src: /src/cpython/Python/gc.c:1639,1
    - Dst: invoke_gc_callback
      Src: /src/cpython/Python/gc.c:1643,1
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1646,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1646,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/gc.c:1648,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 117
    argCount: 3
    argNames:
    - tstate
    - generation
    - reason
    argTypes:
    - PyThreadState*
    - int
    - _PyGC_Reason
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1645
        line_start: 1645
        source_file: /src/cpython/Python/gc.c
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1434
        line_start: 1434
        source_file: /src/cpython/Python/gc.c
    - condition: (generation >= 0 && generation < NUM_GENERATIONS)
      pos:
        line_end: 1455
        line_start: 1455
        source_file: /src/cpython/Python/gc.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1435
        line_start: 1435
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1650
      start: 1422
    functionDepth: 4
    functionLinenumber: 1422
    functionLinenumberEnd: 1650
    functionName: gc_collect_main
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - validate_list
    - delete_garbage
    - deduce_unreachable
    - _PyStats_GET
    - gc_list_init
    - GC_NEXT
    - finalize_garbage
    - assert
    - move_legacy_finalizers
    - handle_weakref_callbacks
    - show_stats_each_generations
    - gc_select_generation
    - gc_list_merge
    - FROM_GC
    - PyDTrace_GC_DONE
    - clear_weakrefs
    - PyTime_PerfCounterRaw
    - _Py_atomic_compare_exchange_int
    - PyDTrace_GC_START
    - PySys_WriteStderr
    - debug_cycle
    - add_stats
    - invoke_gc_callback
    - handle_legacy_finalizers
    - GEN_HEAD
    - PyTime_AsSecondsDouble
    - gc_list_size
    - GC_STAT_ADD
    - handle_resurrected_objects
    - PyDTrace_GC_DONE_ENABLED
    - _PyGC_ClearAllFreeLists
    - PyDTrace_GC_START_ENABLED
    - _PyErr_Occurred
    - untrack_tuples
    - _PyErr_Clear
    - move_legacy_finalizer_reachable
    - PyErr_FormatUnraisable
    - _Py_atomic_store_int
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_collect_main(PyThreadState *tstate, int generation, _PyGC_Reason
      reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/gc.c:1657,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/gc.c:1658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1663
    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:1671,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1671,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1672,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1673,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:1677,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc.c:1678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - objs
    - list
    - resultlist
    argTypes:
    - PyObject*
    - PyGC_Head*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1665
    functionDepth: 2
    functionLinenumber: 1665
    functionLinenumberEnd: 1684
    functionName: gc_referrers_for
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - GC_NEXT
    - PyList_Append
    - Py_TYPE
    - traverse
    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:1689,1
    - Dst: gc_referrers_for
      Src: /src/cpython/Python/gc.c:1696,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1696,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - interp
    - objs
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1686
    functionDepth: 4
    functionLinenumber: 1686
    functionLinenumberEnd: 1702
    functionName: _PyGC_GetReferrers
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - GEN_HEAD
    - gc_referrers_for
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGC_GetReferrers(PyInterpreterState *interp, PyObject *objs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc.c:1707,1
    - Dst: PyList_New
      Src: /src/cpython/Python/gc.c:1710,1
    - Dst: append_objects
      Src: /src/cpython/Python/gc.c:1718,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1718,1
    - Dst: append_objects
      Src: /src/cpython/Python/gc.c:1724,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:1731,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - interp
    - generation
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts:
    - condition: (generation >= -1 && generation < NUM_GENERATIONS)
      pos:
        line_end: 1706
        line_start: 1706
        source_file: /src/cpython/Python/gc.c
    constantsTouched: []
    func_position:
      end: 1733
      start: 1704
    functionDepth: 4
    functionLinenumber: 1704
    functionLinenumberEnd: 1733
    functionName: _PyGC_GetObjects
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - append_objects
    - GEN_HEAD
    - PyList_New
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGC_GetObjects(PyInterpreterState *interp, int generation)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_merge
      Src: /src/cpython/Python/gc.c:1740,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1735
    functionDepth: 2
    functionLinenumber: 1735
    functionLinenumberEnd: 1743
    functionName: _PyGC_Freeze
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - GEN_HEAD
    - 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:1749,1
    - Dst: GEN_HEAD
      Src: /src/cpython/Python/gc.c:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1751
    functionName: _PyGC_Unfreeze
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - GEN_HEAD
    - 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:1757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1753
    functionDepth: 1
    functionLinenumber: 1753
    functionLinenumberEnd: 1758
    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:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1768
    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:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1777
    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:1782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 1784
    functionName: PyGC_IsEnabled
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 2
    functionsReached:
    - get_gc_state
    linkageType: ''
    returnType: int
    signature: int PyGC_IsEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc.c:1790,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/gc.c:1798,1
    - Dst: gc_collect_main
      Src: /src/cpython/Python/gc.c:1799,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/gc.c:1800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1803
    functionName: PyGC_Collect
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 2
    functionsReached:
    - gc_collect_main
    - _PyErr_SetRaisedException
    - _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.c:1808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tstate
    - generation
    - reason
    argTypes:
    - PyThreadState*
    - int
    - _PyGC_Reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1805
    functionDepth: 0
    functionLinenumber: 1805
    functionLinenumberEnd: 1809
    functionName: _PyGC_Collect
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    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.c:1820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1821
    functionName: _PyGC_CollectNoFail
    functionSourceFile: /src/cpython/Python/gc.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.c:1828,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/cpython/Python/gc.c:1840,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc.c:1842,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1844,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/gc.c:1848,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/gc.c:1849,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:1850,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc.c:1854,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/gc.c:1856,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc.c:1859,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc.c:1860,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1823
    functionDepth: 5
    functionLinenumber: 1823
    functionLinenumberEnd: 1863
    functionName: _PyGC_DumpShutdownStats
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - PySys_WriteStderr
    - PyUnicode_EncodeFSDefault
    - PyObject_Repr
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyErr_WarnExplicitFormat
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void _PyGC_DumpShutdownStats(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_PREV
      Src: /src/cpython/Python/gc.c:1867,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:1868,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/cpython/Python/gc.c:1869,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/cpython/Python/gc.c:1870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gc
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1871
    functionName: finalize_unlink_gc_head
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_PREV
    - GC_PREV
    - _PyGCHead_SET_NEXT
    - 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:1877,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc.c:1878,1
    - Dst: finalize_unlink_gc_head
      Src: /src/cpython/Python/gc.c:1896,1
    - Dst: finalize_unlink_gc_head
      Src: /src/cpython/Python/gc.c:1898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1873
    functionDepth: 2
    functionLinenumber: 1873
    functionLinenumberEnd: 1899
    functionName: _PyGC_Fini
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - finalize_unlink_gc_head
    linkageType: ''
    returnType: void
    signature: void _PyGC_Fini(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Dump
      Src: /src/cpython/Python/gc.c:1905,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1902
    functionDepth: 4
    functionLinenumber: 1902
    functionLinenumberEnd: 1906
    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:1913,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Python/gc.c:1914,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Python/gc.c:1915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - parent_raw
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1910
    functionDepth: 2
    functionLinenumber: 1910
    functionLinenumberEnd: 1919
    functionName: visit_validate
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_CAST
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_IsFreed
    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:1929,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:1930,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Python/gc.c:1931,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/gc.c:1935,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:1940,1
    - Dst: traverse
      Src: /src/cpython/Python/gc.c:1941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1943
    functionName: PyObject_GC_Track
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 65
    functionsReached:
    - _PyObject_GC_TRACK
    - _PyObject_CAST
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_GC_IS_TRACKED
    - Py_TYPE
    - traverse
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_Track(void *op_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc.c:1948,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:1951,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc.c:1952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1945
    functionDepth: 1
    functionLinenumber: 1945
    functionLinenumberEnd: 1954
    functionName: PyObject_GC_UnTrack
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 156
    functionsReached:
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - _PyObject_CAST
    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:1959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1956
    functionDepth: 1
    functionLinenumber: 1956
    functionLinenumberEnd: 1960
    functionName: PyObject_IS_GC
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 6
    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:1965,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/gc.c:1967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1962
    functionDepth: 1
    functionLinenumber: 1962
    functionLinenumberEnd: 1969
    functionName: _Py_ScheduleGC
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _Py_eval_breaker_bit_is_set
    - _Py_set_eval_breaker_bit
    linkageType: ''
    returnType: void
    signature: void _Py_ScheduleGC(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:1974,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:1976,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc.c:1978,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc.c:1986,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc.c:1987,1
    - Dst: _Py_ScheduleGC
      Src: /src/cpython/Python/gc.c:1989,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 1991
    functionName: _PyObject_GC_Link
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - _PyObject_ASSERT
    - _Py_ScheduleGC
    - _PyErr_Occurred
    - _PyThreadState_GET
    - _Py_atomic_load_int_relaxed
    - AS_GC
    linkageType: ''
    returnType: void
    signature: void _PyObject_GC_Link(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:1996,1
    - Dst: gc_collect_main
      Src: /src/cpython/Python/gc.c:2000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1993
    functionDepth: 0
    functionLinenumber: 1993
    functionLinenumberEnd: 2001
    functionName: _Py_RunGC
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - gc_collect_main
    - get_gc_state
    linkageType: ''
    returnType: void
    signature: void _Py_RunGC(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc.c:2006,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/gc.c:2008,1
    - Dst: _PyObject_MallocWithType
      Src: /src/cpython/Python/gc.c:2011,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/gc.c:2013,1
    - Dst: _PyObject_GC_Link
      Src: /src/cpython/Python/gc.c:2018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tp
    - basicsize
    - presize
    argTypes:
    - PyTypeObject*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2003
    functionDepth: 7
    functionLinenumber: 2003
    functionLinenumberEnd: 2020
    functionName: gc_alloc
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_MallocWithType
    - _PyThreadState_GET
    - _PyErr_NoMemory
    - _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:2026,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Python/gc.c:2027,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/gc.c:2028,1
    - Dst: _PyInlineValuesSize
      Src: /src/cpython/Python/gc.c:2029,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc.c:2031,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Python/gc.c:2035,1
    - Dst: _PyObject_InitInlineValues
      Src: /src/cpython/Python/gc.c:2037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2023
    functionDepth: 2
    functionLinenumber: 2023
    functionLinenumberEnd: 2040
    functionName: _PyObject_GC_New
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - _PyInlineValuesSize
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_Init
    - _PyObject_InitInlineValues
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GC_New(PyTypeObject *tp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/gc.c:2048,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc.c:2051,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Python/gc.c:2052,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc.c:2053,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Python/gc.c:2057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - tp
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2059
    functionName: _PyObject_GC_NewVar
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_InitVar
    - _PyObject_VAR_SIZE
    - gc_alloc
    - _PyType_PreHeaderSize
    - PyErr_BadInternalCall
    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:2064,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Python/gc.c:2065,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc.c:2066,1
    - Dst: memset
      Src: /src/cpython/Python/gc.c:2070,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Python/gc.c:2071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tp
    - extra_size
    argTypes:
    - PyTypeObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2061
    functionDepth: 1
    functionLinenumber: 2061
    functionLinenumberEnd: 2073
    functionName: PyUnstable_Object_GC_NewWithExtraData
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 1
    functionsReached:
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_Init
    - memset
    - _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:2078,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2078,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc.c:2079,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2079,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc.c:2080,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:2080,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc.c:2082,1
    - Dst: _PyObject_ReallocWithType
      Src: /src/cpython/Python/gc.c:2085,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2085,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc.c:2087,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/gc.c:2090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - op
    - nitems
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2075
    functionDepth: 1
    functionLinenumber: 2075
    functionLinenumberEnd: 2092
    functionName: _PyObject_GC_Resize
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - _PyObject_VAR_SIZE
    - PyErr_NoMemory
    - Py_SET_SIZE
    - _PyType_PreHeaderSize
    - _PyObject_GC_IS_TRACKED
    - Py_TYPE
    - _PyObject_ReallocWithType
    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:2097,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2097,1
    - Dst: AS_GC
      Src: /src/cpython/Python/gc.c:2098,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:2099,1
    - Dst: gc_list_remove
      Src: /src/cpython/Python/gc.c:2100,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:2101,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/gc.c:2104,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/cpython/Python/gc.c:2105,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc.c:2109,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc.c:2111,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/gc.c:2113,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:2116,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/gc.c:2120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2094
    functionDepth: 2
    functionLinenumber: 2094
    functionLinenumberEnd: 2121
    functionName: PyObject_GC_Del
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 55
    functionsReached:
    - _PyType_PreHeaderSize
    - get_gc_state
    - gc_list_remove
    - PyErr_SetRaisedException
    - PyErr_WarnExplicitFormat
    - PyErr_GetRaisedException
    - _PyObject_GC_IS_TRACKED
    - PyObject_Free
    - PyErr_FormatUnraisable
    - AS_GC
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_Del(void *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IS_GC
      Src: /src/cpython/Python/gc.c:2126,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc.c:2126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2130
    functionName: PyObject_GC_IsTracked
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 8
    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:2135,1
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Python/gc.c:2135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2132
    functionDepth: 1
    functionLinenumber: 2132
    functionLinenumberEnd: 2139
    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:2146,1
    - Dst: GC_NEXT
      Src: /src/cpython/Python/gc.c:2146,1
    - Dst: FROM_GC
      Src: /src/cpython/Python/gc.c:2147,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc.c:2148,1
    - Dst: callback
      Src: /src/cpython/Python/gc.c:2149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc.c:2150,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: 2156
      start: 2141
    functionDepth: 1
    functionLinenumber: 2141
    functionLinenumberEnd: 2156
    functionName: visit_generation
    functionSourceFile: /src/cpython/Python/gc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - FROM_GC
    - callback
    - GC_NEXT
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int visit_generation(gcvisitobjects_t callback, void *arg, struct gc_generation
      *gen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc.c:2161,1
    - Dst: visit_generation
      Src: /src/cpython/Python/gc.c:2165,1
    - Dst: visit_generation
      Src: /src/cpython/Python/gc.c:2169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - callback
    - arg
    argTypes:
    - gcvisitobjects_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2158
    functionDepth: 2
    functionLinenumber: 2158
    functionLinenumberEnd: 2172
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystats.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: _PyStats_GetLocal
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyStats
    signature: 'PyStats *

      _PyStats_GetLocal(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: STATS_LOCK
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATS_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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: STATS_UNLOCK
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATS_UNLOCK(interp)
  - 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/pystats.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/pystats.c:58,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/pystats.c:62,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/pystats.c:63,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/pystats.c:64,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/pystats.c:65,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/pystats.c:66,1
    - Dst: ADD_STAT_TO_DICT
      Src: /src/cpython/Python/pystats.c:67,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/pystats.c:68,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystats.c:70,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Python/pystats.c:74,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystats.c:76,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystats.c:77,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/pystats.c:80,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pystats.c:82,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystats.c:83,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystats.c:84,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystats.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - stats
    argTypes:
    - SpecializationStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 55
    functionDepth: 11
    functionLinenumber: 55
    functionLinenumberEnd: 89
    functionName: stats_to_dict
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - ADD_STAT_TO_DICT
    - PyDict_SetItemString
    - PyTuple_SET_ITEM
    - PyLong_FromUnsignedLongLong
    - Py_DECREF
    - PyTuple_New
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stats_to_dict(SpecializationStats *stats)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stats_to_dict
      Src: /src/cpython/Python/pystats.c:100,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pystats.c:104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystats.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - src
    - res
    - opcode
    - name
    argTypes:
    - PyStats*
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 12
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: add_stat_dict
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItemString
    - stats_to_dict
    linkageType: ''
    returnType: int
    signature: "int add_stat_dict(\n    PyStats *src,\n    PyObject *res,\n    int
      opcode,\n    const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystats.c:111,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/pystats.c:112,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/pystats.c:116,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:121,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:122,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:123,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:124,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:125,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:126,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:127,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:128,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:129,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:130,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:131,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:132,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:133,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:134,1
    - Dst: add_stat_dict
      Src: /src/cpython/Python/pystats.c:135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pystats.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 109
    functionDepth: 13
    functionLinenumber: 109
    functionLinenumberEnd: 141
    functionName: _Py_GetSpecializationStats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - add_stat_dict
    - Py_DECREF
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - 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: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: PRINT_STAT
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_STAT(i, field)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:154,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:155,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:156,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:168,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/pystats.c:171,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/pystats.c:172,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/pystats.c:173,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/pystats.c:174,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/pystats.c:175,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/pystats.c:176,1
    - Dst: PRINT_STAT
      Src: /src/cpython/Python/pystats.c:177,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:181,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:187,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - OpcodeStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 192
    functionName: print_spec_stats
    functionSourceFile: /src/cpython/Python/pystats.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/pystats.c:199,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:200,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:201,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:202,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - CallStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: print_call_stats
    functionSourceFile: /src/cpython/Python/pystats.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/pystats.c:211,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:212,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:213,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:214,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:215,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:216,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:217,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:218,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:219,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:220,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:221,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:222,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:223,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:224,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:225,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:226,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:227,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:228,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:229,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:230,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:231,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:232,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:233,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:234,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - ObjectStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 236
    functionName: print_object_stats
    functionSourceFile: /src/cpython/Python/pystats.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/pystats.c:242,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:243,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:244,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:245,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - GCStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: print_gc_stats
    functionSourceFile: /src/cpython/Python/pystats.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/pystats.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - name
    - hist
    argTypes:
    - FILE*
    - char*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: print_histogram
    functionSourceFile: /src/cpython/Python/pystats.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/pystats.c:264,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:265,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:266,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:267,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:268,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:269,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:270,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:271,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:272,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:273,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:274,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:275,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:276,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:277,1
    - Dst: print_histogram
      Src: /src/cpython/Python/pystats.c:279,1
    - Dst: print_histogram
      Src: /src/cpython/Python/pystats.c:280,1
    - Dst: print_histogram
      Src: /src/cpython/Python/pystats.c:281,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:283,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:284,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:285,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:287,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:288,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:291,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/pystats.c:291,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:294,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/pystats.c:294,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:299,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:311,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:318,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/pystats.c:321,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:326,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:327,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:328,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:329,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:330,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:331,1
    - Dst: print_histogram
      Src: /src/cpython/Python/pystats.c:333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - OptimizationStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 334
    functionName: print_optimization_stats
    functionSourceFile: /src/cpython/Python/pystats.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/pystats.c:341,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:342,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - FTStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: print_ft_stats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_ft_stats(FILE *out, FTStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:350,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:351,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:352,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:353,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:354,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:355,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - RareEventStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 357
    functionName: print_rare_event_stats
    functionSourceFile: /src/cpython/Python/pystats.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/pystats.c:362,1
    - Dst: print_call_stats
      Src: /src/cpython/Python/pystats.c:363,1
    - Dst: print_object_stats
      Src: /src/cpython/Python/pystats.c:364,1
    - Dst: print_gc_stats
      Src: /src/cpython/Python/pystats.c:365,1
    - Dst: print_optimization_stats
      Src: /src/cpython/Python/pystats.c:367,1
    - Dst: print_ft_stats
      Src: /src/cpython/Python/pystats.c:370,1
    - Dst: print_rare_event_stats
      Src: /src/cpython/Python/pystats.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - out
    - stats
    argTypes:
    - FILE*
    - PyStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 373
    functionName: print_stats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 1
    functionsReached:
    - print_spec_stats
    - print_call_stats
    - print_ft_stats
    - print_optimization_stats
    - print_object_stats
    - print_rare_event_stats
    - print_gc_stats
    linkageType: ''
    returnType: void
    signature: void print_stats(FILE *out, PyStats *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SpecializationStats*
    - SpecializationStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: merge_specialization_stats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void merge_specialization_stats(SpecializationStats *dest, const SpecializationStats
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merge_specialization_stats
      Src: /src/cpython/Python/pystats.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - OpcodeStats*
    - OpcodeStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 401
    functionName: merge_opcode_stats_array
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - merge_specialization_stats
    linkageType: ''
    returnType: void
    signature: void merge_opcode_stats_array(OpcodeStats *dest, const OpcodeStats
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - CallStats*
    - CallStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 413
    functionName: merge_call_stats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void merge_call_stats(CallStats *dest, const CallStats *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - ObjectStats*
    - ObjectStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 444
    functionName: merge_object_stats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void merge_object_stats(ObjectStats *dest, const ObjectStats *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - UOpStats*
    - UOpStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 456
    functionName: merge_uop_stats_array
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void merge_uop_stats_array(UOpStats *dest, const UOpStats *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: merge_uop_stats_array
      Src: /src/cpython/Python/pystats.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - OptimizationStats*
    - OptimizationStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 500
    functionName: merge_optimization_stats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - merge_uop_stats_array
    linkageType: ''
    returnType: void
    signature: void merge_optimization_stats(OptimizationStats *dest, const OptimizationStats
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - FTStats*
    - FTStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: merge_ft_stats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void merge_ft_stats(FTStats *dest, const FTStats *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - RareEventStats*
    - RareEventStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 520
    functionName: merge_rare_event_stats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void merge_rare_event_stats(RareEventStats *dest, const RareEventStats
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - GCStats*
    - GCStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: merge_gc_stats_array
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void merge_gc_stats_array(GCStats *dest, const GCStats *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/pystats.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: stats_zero_thread
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void stats_zero_thread(_PyThreadStateImpl *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: merge_opcode_stats_array
      Src: /src/cpython/Python/pystats.c:555,1
    - Dst: merge_call_stats
      Src: /src/cpython/Python/pystats.c:556,1
    - Dst: merge_object_stats
      Src: /src/cpython/Python/pystats.c:557,1
    - Dst: merge_optimization_stats
      Src: /src/cpython/Python/pystats.c:558,1
    - Dst: merge_ft_stats
      Src: /src/cpython/Python/pystats.c:559,1
    - Dst: merge_rare_event_stats
      Src: /src/cpython/Python/pystats.c:560,1
    - Dst: merge_gc_stats_array
      Src: /src/cpython/Python/pystats.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 562
    functionName: stats_merge_thread
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - merge_rare_event_stats
    - merge_optimization_stats
    - merge_object_stats
    - merge_ft_stats
    - merge_call_stats
    - merge_gc_stats_array
    - merge_opcode_stats_array
    linkageType: ''
    returnType: void
    signature: void stats_merge_thread(_PyThreadStateImpl *tstate)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/cpython/Python/pystats.c:571,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/pystats.c:573,1
    - Dst: STATS_UNLOCK
      Src: /src/cpython/Python/pystats.c:575,1
    - Dst: FT_ATOMIC_STORE_PTR_RELAXED
      Src: /src/cpython/Python/pystats.c:578,1
    - Dst: FT_ATOMIC_STORE_INT_RELAXED
      Src: /src/cpython/Python/pystats.c:581,1
    - Dst: STATS_UNLOCK
      Src: /src/cpython/Python/pystats.c:584,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/pystats.c:588,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/pystats.c:596,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/pystats.c:605,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - tstate
    - 'on'
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 566
    functionDepth: 4
    functionLinenumber: 566
    functionLinenumberEnd: 607
    functionName: stats_toggle_on_off
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - STATS_UNLOCK
    - PyMem_RawCalloc
    - FT_ATOMIC_STORE_PTR_RELAXED
    - _PyEval_StopTheWorld
    - FT_ATOMIC_STORE_INT_RELAXED
    - STATS_LOCK
    linkageType: ''
    returnType: int
    signature: int stats_toggle_on_off(PyThreadState *tstate, int on)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/pystats.c:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 604
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - PyMem_RawCalloc
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, ts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystats.c:613,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/pystats.c:617,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/pystats.c:621,1
    - Dst: stats_zero_thread
      Src: /src/cpython/Python/pystats.c:624,1
    - Dst: memset
      Src: /src/cpython/Python/pystats.c:628,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/pystats.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 610
    functionDepth: 4
    functionLinenumber: 610
    functionLinenumberEnd: 631
    functionName: stats_zero_all
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - stats_zero_thread
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - memset
    - FT_ATOMIC_LOAD_PTR_RELAXED
    linkageType: ''
    returnType: void
    signature: void stats_zero_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stats_zero_thread
      Src: /src/cpython/Python/pystats.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 625
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - stats_zero_thread
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystats.c:637,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/pystats.c:641,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/pystats.c:645,1
    - Dst: stats_merge_thread
      Src: /src/cpython/Python/pystats.c:648,1
    - Dst: stats_zero_thread
      Src: /src/cpython/Python/pystats.c:649,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/pystats.c:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 653
    functionName: stats_merge_all
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - _PyEval_StartTheWorld
    - stats_merge_thread
    - stats_zero_thread
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - FT_ATOMIC_LOAD_PTR_RELAXED
    linkageType: ''
    returnType: void
    signature: void stats_merge_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stats_merge_thread
      Src: /src/cpython/Python/pystats.c:648,1
    - Dst: stats_zero_thread
      Src: /src/cpython/Python/pystats.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 650
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - stats_zero_thread
    - stats_merge_thread
    linkageType: ''
    returnType: void
    signature: void _Py_FOR_EACH_TSTATE_UNLOCKED(interp, ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystats.c:658,1
    - Dst: stats_toggle_on_off
      Src: /src/cpython/Python/pystats.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 5
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: _Py_StatsOn
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - stats_toggle_on_off
    linkageType: ''
    returnType: int
    signature: int _Py_StatsOn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystats.c:665,1
    - Dst: stats_toggle_on_off
      Src: /src/cpython/Python/pystats.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 662
    functionDepth: 5
    functionLinenumber: 662
    functionLinenumberEnd: 667
    functionName: _Py_StatsOff
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - stats_toggle_on_off
    linkageType: ''
    returnType: void
    signature: void _Py_StatsOff(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stats_zero_all
      Src: /src/cpython/Python/pystats.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 5
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: _Py_StatsClear
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - stats_zero_all
    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: 685
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 685
    functionName: mem_is_zero
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mem_is_zero(unsigned char *ptr, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystats.c:690,1
    - Dst: stats_merge_all
      Src: /src/cpython/Python/pystats.c:691,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pystats.c:692,1
    - Dst: STATS_LOCK
      Src: /src/cpython/Python/pystats.c:693,1
    - Dst: STATS_UNLOCK
      Src: /src/cpython/Python/pystats.c:696,1
    - Dst: MEM_IS_ZERO
      Src: /src/cpython/Python/pystats.c:701,1
    - Dst: MEM_IS_ZERO
      Src: /src/cpython/Python/pystats.c:702,1
    - Dst: MEM_IS_ZERO
      Src: /src/cpython/Python/pystats.c:703,1
    - Dst: MEM_IS_ZERO
      Src: /src/cpython/Python/pystats.c:704,1
    - Dst: STATS_UNLOCK
      Src: /src/cpython/Python/pystats.c:707,1
    - Dst: _PyOS_URandomNonblock
      Src: /src/cpython/Python/pystats.c:728,1
    - Dst: assert
      Src: /src/cpython/Python/pystats.c:735,1
    - Dst: strlen
      Src: /src/cpython/Python/pystats.c:735,1
    - Dst: strlen
      Src: /src/cpython/Python/pystats.c:735,1
    - Dst: sprintf
      Src: /src/cpython/Python/pystats.c:736,1
    - Dst: fopen
      Src: /src/cpython/Python/pystats.c:737,1
    - Dst: fprintf
      Src: /src/cpython/Python/pystats.c:743,1
    - Dst: STATS_LOCK
      Src: /src/cpython/Python/pystats.c:745,1
    - Dst: print_stats
      Src: /src/cpython/Python/pystats.c:746,1
    - Dst: STATS_UNLOCK
      Src: /src/cpython/Python/pystats.c:747,1
    - Dst: fclose
      Src: /src/cpython/Python/pystats.c:749,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - to_file
    argTypes:
    - int
    assertStmts:
    - condition: (to_file)
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/cpython/Python/pystats.c
    - condition: (strlen(dirname) + 40 + strlen(".txt") < 64)
      pos:
        line_end: 734
        line_start: 734
        source_file: /src/cpython/Python/pystats.c
    constantsTouched: []
    func_position:
      end: 752
      start: 687
    functionDepth: 5
    functionLinenumber: 687
    functionLinenumberEnd: 752
    functionName: _Py_PrintSpecializationStats
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - print_stats
    - fopen
    - _PyOS_URandomNonblock
    - fclose
    - STATS_UNLOCK
    - fprintf
    - _PyThreadState_GET
    - MEM_IS_ZERO
    - strlen
    - assert
    - STATS_LOCK
    - stats_merge_all
    - sprintf
    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: 700
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 700
    functionName: MEM_IS_ZERO
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM_IS_ZERO(DATA)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/pystats.c:761,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/pystats.c:763,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/pystats.c:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 767
    functionName: _PyStats_InterpInit
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - PyMem_RawCalloc
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyStats_InterpInit(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Python/pystats.c:773,1
    - Dst: assert
      Src: /src/cpython/Python/pystats.c:774,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/pystats.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - interp
    - tstate
    argTypes:
    - PyInterpreterState*
    - _PyThreadStateImpl*
    assertStmts:
    - condition: (interp->pystats_struct != NULL)
      pos:
        line_end: 773
        line_start: 773
        source_file: /src/cpython/Python/pystats.c
    constantsTouched: []
    func_position:
      end: 782
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 782
    functionName: _PyStats_ThreadInit
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_LOAD_INT_RELAXED
    - PyMem_RawCalloc
    - assert
    linkageType: ''
    returnType: bool
    signature: bool _PyStats_ThreadInit(PyInterpreterState *interp, _PyThreadStateImpl
      *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATS_LOCK
      Src: /src/cpython/Python/pystats.c:788,1
    - Dst: stats_merge_thread
      Src: /src/cpython/Python/pystats.c:789,1
    - Dst: STATS_UNLOCK
      Src: /src/cpython/Python/pystats.c:790,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/pystats.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 793
    functionName: _PyStats_ThreadFini
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 1
    functionsReached:
    - STATS_LOCK
    - PyMem_RawFree
    - STATS_UNLOCK
    - stats_merge_thread
    linkageType: ''
    returnType: void
    signature: void _PyStats_ThreadFini(_PyThreadStateImpl *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Python/pystats.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tstate_impl
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 812
    functionName: _PyStats_Attach
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_LOAD_INT_RELAXED
    linkageType: ''
    returnType: void
    signature: void _PyStats_Attach(_PyThreadStateImpl *tstate_impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate_impl
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: _PyStats_Detach
    functionSourceFile: /src/cpython/Python/pystats.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyStats_Detach(_PyThreadStateImpl *tstate_impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/intrinsics.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - unused
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    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:31,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/intrinsics.c:31,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/intrinsics.c:35,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Py_UNUSED(ignored)
    - value
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: print_expr
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySys_GetAttr
    - PyObject_CallOneArg
    - _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:47,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/intrinsics.c:47,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/intrinsics.c:51,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/intrinsics.c:51,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/intrinsics.c:55,1
    - Dst: PyMapping_Keys
      Src: /src/cpython/Python/intrinsics.c:59,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:60,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/intrinsics.c:67,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/intrinsics.c:69,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/intrinsics.c:73,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:77,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/intrinsics.c:78,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/intrinsics.c:78,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:80,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:84,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/intrinsics.c:85,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/intrinsics.c:87,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/intrinsics.c:90,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/intrinsics.c:95,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:97,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:98,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/intrinsics.c:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:104,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/intrinsics.c:108,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/intrinsics.c:111,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/intrinsics.c:112,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/intrinsics.c:114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:115,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/intrinsics.c:116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:120,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 3
    argNames:
    - tstate
    - locals
    - v
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 40
    functionDepth: 10
    functionLinenumber: 40
    functionLinenumberEnd: 122
    functionName: import_all_from
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PyUnicode_READ_CHAR
    - _PyErr_SetString
    - _PyErr_ExceptionMatches
    - PySequence_GetItem
    - PyObject_GetOptionalAttr
    - PyUnicode_Check
    - PyObject_GetAttr
    - PyDict_SetItem
    - _Py_ID
    - _PyErr_Clear
    - Py_XDECREF
    - Py_DECREF
    - PyDict_CheckExact
    - PyObject_SetItem
    - Py_TYPE
    - PyMapping_Keys
    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:129,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/intrinsics.c:131,1
    - Dst: import_all_from
      Src: /src/cpython/Python/intrinsics.c:135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - from
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 12
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: import_star
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - import_all_from
    - _PyErr_SetString
    - _PyFrame_GetLocals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_star(PyThreadState* tstate, PyObject *from)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:147,1
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:148,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/intrinsics.c:148,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/intrinsics.c:150,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/intrinsics.c:152,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/intrinsics.c:155,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/intrinsics.c:159,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/intrinsics.c:160,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Python/intrinsics.c:168,1
    - Dst: strlen
      Src: /src/cpython/Python/intrinsics.c:168,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/intrinsics.c:172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:174,1
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:177,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/intrinsics.c:177,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Python/intrinsics.c:178,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/intrinsics.c:178,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/intrinsics.c:180,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/intrinsics.c:180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/intrinsics.c:181,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/intrinsics.c:184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(error))
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/cpython/Python/intrinsics.c
    - condition: (frame->owner == FRAME_OWNED_BY_GENERATOR)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Python/intrinsics.c
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 185
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 185
    functionName: stopiteration_error
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    - _PyUnicode_FromASCII
    - PyException_SetCause
    - strlen
    - assert
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - PyException_SetContext
    - Py_NewRef
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stopiteration_error(PyThreadState* tstate, PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Positive
      Src: /src/cpython/Python/intrinsics.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unused
    - value
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    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:199,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/intrinsics.c:199,1
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:200,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/intrinsics.c:200,1
    - Dst: _PyList_AsTupleAndClear
      Src: /src/cpython/Python/intrinsics.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - unused
    - v
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(v))
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/cpython/Python/intrinsics.c
    - condition: (_PyObject_IsUniquelyReferenced(v))
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: list_to_tuple
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _PyList_AsTupleAndClear
    - PyList_CheckExact
    - _PyObject_IsUniquelyReferenced
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_to_tuple(PyThreadState* unused, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:207,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:207,1
    - Dst: _Py_make_typevar
      Src: /src/cpython/Python/intrinsics.c:208,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: 206
        line_start: 206
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: make_typevar
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 1
    functionsReached:
    - _Py_make_typevar
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_typevar(PyThreadState* Py_UNUSED(ignored), PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:214,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Python/intrinsics.c:214,1
    - Dst: assert
      Src: /src/cpython/Python/intrinsics.c:215,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/intrinsics.c:215,1
    - Dst: _PySet_Freeze
      Src: /src/cpython/Python/intrinsics.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - Py_UNUSED(ignored)
    - set
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (PySet_CheckExact(set))
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/cpython/Python/intrinsics.c
    - condition: (_PyObject_IsUniquelyReferenced(set))
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: make_frozenset
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _PySet_Freeze
    - PySet_CheckExact
    - _PyObject_IsUniquelyReferenced
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_frozenset(PyThreadState* Py_UNUSED(ignored), PyObject *set)'
  - 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: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    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:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tstate
    - unused1
    - unused2
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 248
    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:253,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/intrinsics.c:253,1
    - Dst: _PyExc_PrepReraiseStar
      Src: /src/cpython/Python/intrinsics.c:254,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: 252
        line_start: 252
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 7
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: prep_reraise_star
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - _PyExc_PrepReraiseStar
    - assert
    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:261,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:261,1
    - Dst: _Py_make_typevar
      Src: /src/cpython/Python/intrinsics.c:262,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: 260
        line_start: 260
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 263
    functionName: make_typevar_with_bound
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _Py_make_typevar
    - PyUnicode_Check
    - 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:269,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/intrinsics.c:269,1
    - Dst: _Py_make_typevar
      Src: /src/cpython/Python/intrinsics.c:270,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: 268
        line_start: 268
        source_file: /src/cpython/Python/intrinsics.c
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: make_typevar_with_constraints
    functionSourceFile: /src/cpython/Python/intrinsics.c
    functionUses: 0
    functionsReached:
    - _Py_make_typevar
    - PyUnicode_Check
    - 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:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 292
    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:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 301
    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:
    - copy_eval_breaker_bits
    - _Py_atomic_load_int32_relaxed
    - _Py_IsMainThread
    - _Py_set_eval_breaker_bit
    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: 4
    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:
    - _Py_atomic_store_ptr_relaxed
    - MUTEX_INIT
    - COND_INIT
    - _Py_ANNOTATE_RWLOCK_CREATE
    - _Py_atomic_store_int_release
    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:
    - _Py_ANNOTATE_RWLOCK_DESTROY
    - _Py_atomic_store_int_release
    - COND_FINI
    - 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:
    - create_gil
    - _Py_ANNOTATE_RWLOCK_DESTROY
    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:212,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - gil
    argTypes:
    - PyThreadState*
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: drop_gil_impl
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_int_relaxed
    - MUTEX_LOCK
    - COND_SIGNAL
    - _Py_ANNOTATE_RWLOCK_RELEASED
    - 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:229,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:239,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval_gil.c:240,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:247,1
    - Dst: drop_gil_impl
      Src: /src/cpython/Python/ceval_gil.c:250,1
    - Dst: _Py_eval_breaker_bit_is_set
      Src: /src/cpython/Python/ceval_gil.c:260,1
    - Dst: MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:261,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:263,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:265,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:265,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:266,1
    - Dst: COND_WAIT
      Src: /src/cpython/Python/ceval_gil.c:271,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:273,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: 228
        line_start: 228
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 276
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 276
    functionName: drop_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _Py_atomic_store_ptr_relaxed
    - COND_WAIT
    - _Py_eval_breaker_bit_is_set
    - _Py_unset_eval_breaker_bit
    - drop_gil_impl
    - MUTEX_LOCK
    - _Py_atomic_load_ptr_relaxed
    - MUTEX_UNLOCK
    - assert
    - _Py_atomic_load_int_relaxed
    - _PyThreadState_CheckConsistency
    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:290,1
    - Dst: _PyThreadState_MustExit
      Src: /src/cpython/Python/ceval_gil.c:295,1
    - Dst: _PyThreadState_HangThread
      Src: /src/cpython/Python/ceval_gil.c:307,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:310,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:310,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:314,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:320,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:320,1
    - Dst: MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:322,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:327,1
    - Dst: _Py_atomic_load_ulong_relaxed
      Src: /src/cpython/Python/ceval_gil.c:330,1
    - Dst: COND_TIMED_WAIT
      Src: /src/cpython/Python/ceval_gil.c:335,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:340,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:344,1
    - Dst: _PyThreadState_MustExit
      Src: /src/cpython/Python/ceval_gil.c:345,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:346,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:354,1
    - Dst: _PyThreadState_HangThread
      Src: /src/cpython/Python/ceval_gil.c:358,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:360,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:360,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:362,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:368,1
    - Dst: COND_SIGNAL
      Src: /src/cpython/Python/ceval_gil.c:372,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:373,1
    - Dst: MUTEX_LOCK
      Src: /src/cpython/Python/ceval_gil.c:381,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:384,1
    - Dst: _Py_ANNOTATE_RWLOCK_ACQUIRED
      Src: /src/cpython/Python/ceval_gil.c:385,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:387,1
    - Dst: _Py_atomic_store_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:388,1
    - Dst: COND_SIGNAL
      Src: /src/cpython/Python/ceval_gil.c:393,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:394,1
    - Dst: _PyThreadState_MustExit
      Src: /src/cpython/Python/ceval_gil.c:397,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:405,1
    - Dst: drop_gil
      Src: /src/cpython/Python/ceval_gil.c:408,1
    - Dst: _PyThreadState_HangThread
      Src: /src/cpython/Python/ceval_gil.c:409,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:411,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:411,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:415,1
    - Dst: update_eval_breaker_for_thread
      Src: /src/cpython/Python/ceval_gil.c:416,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:418,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (gil_created(gil))
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (tstate != NULL)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 422
      start: 285
    functionDepth: 4
    functionLinenumber: 285
    functionLinenumberEnd: 422
    functionName: take_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_HangThread
    - COND_TIMED_WAIT
    - _Py_unset_eval_breaker_bit
    - _Py_atomic_store_int_relaxed
    - assert
    - _Py_ANNOTATE_RWLOCK_ACQUIRED
    - _Py_atomic_store_ptr_relaxed
    - _PyThreadState_MustExit
    - _Py_atomic_load_ulong_relaxed
    - MUTEX_LOCK
    - _Py_atomic_load_ptr_relaxed
    - _Py_set_eval_breaker_bit
    - _Py_atomic_load_int_relaxed
    - _PyThreadState_CheckConsistency
    - drop_gil
    - gil_created
    - COND_SIGNAL
    - MUTEX_UNLOCK
    - update_eval_breaker_for_thread
    linkageType: ''
    returnType: void
    signature: void take_gil(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval_gil.c:426,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:428,1
    - Dst: _Py_atomic_store_ulong_relaxed
      Src: /src/cpython/Python/ceval_gil.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - microseconds
    argTypes:
    - unsigned long
    assertStmts:
    - condition: (gil != NULL)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 430
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 430
    functionName: _PyEval_SetSwitchInterval
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_atomic_store_ulong_relaxed
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void _PyEval_SetSwitchInterval(unsigned long microseconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/ceval_gil.c:434,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:436,1
    - Dst: _Py_atomic_load_ulong_relaxed
      Src: /src/cpython/Python/ceval_gil.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (gil != NULL)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: _PyEval_GetSwitchInterval
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_atomic_load_ulong_relaxed
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _PyEval_GetSwitchInterval(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:447,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 453
    functionName: _PyEval_ThreadsInitialized
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    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:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: PyEval_ThreadsInitialized
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    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:470,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:472,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:473,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - gil
    - tstate
    argTypes:
    - struct _gil_runtime_state*
    - PyThreadState*
    assertStmts:
    - condition: (!holds_gil || is_last_holder)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (!holds_gil || locked)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 477
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 477
    functionName: current_thread_holds_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_load_ptr_relaxed
    - assert
    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:483,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:483,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: 482
        line_start: 482
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 486
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 486
    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:491,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:491,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/ceval_gil.c:493,1
    - Dst: create_gil
      Src: /src/cpython/Python/ceval_gil.c:496,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:497,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:497,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: 490
        line_start: 490
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (gil_created(gil))
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 500
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 500
    functionName: init_own_gil
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - create_gil
    - gil_created
    - _PyInterpreterState_GetConfig
    - assert
    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:505,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:508,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:509,1
    - Dst: init_shared_gil
      Src: /src/cpython/Python/ceval_gil.c:511,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:512,1
    - Dst: current_thread_holds_gil
      Src: /src/cpython/Python/ceval_gil.c:512,1
    - Dst: PyThread_init_thread
      Src: /src/cpython/Python/ceval_gil.c:515,1
    - Dst: init_own_gil
      Src: /src/cpython/Python/ceval_gil.c:516,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:520,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: 504
        line_start: 504
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (!current_thread_holds_gil(gil, tstate))
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (tstate->interp != main_interp)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 521
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 521
    functionName: _PyEval_InitGIL
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_Attach
    - current_thread_holds_gil
    - init_own_gil
    - PyThread_init_thread
    - assert
    - _PyInterpreterState_Main
    - init_shared_gil
    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:529,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:534,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:535,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:536,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:542,1
    - Dst: destroy_gil
      Src: /src/cpython/Python/ceval_gil.c:548,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:549,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (!interp->ceval.own_gil)
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (interp->ceval.gil == main_interp->ceval.gil)
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (main_interp != NULL && interp != main_interp)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (!gil_created(gil))
      pos:
        line_end: 548
        line_start: 548
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 551
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 551
    functionName: _PyEval_FiniGIL
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Main
    - destroy_gil
    - gil_created
    - assert
    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: 557
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 557
    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:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 559
    functionDepth: 6
    functionLinenumber: 559
    functionLinenumberEnd: 565
    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:571,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/ceval_gil.c:572,1
    - Dst: take_gil
      Src: /src/cpython/Python/ceval_gil.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 569
    functionDepth: 5
    functionLinenumber: 569
    functionLinenumberEnd: 575
    functionName: PyEval_AcquireLock
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - take_gil
    - _PyThreadState_GET
    - _Py_EnsureTstateNotNULL
    linkageType: ''
    returnType: void
    signature: void PyEval_AcquireLock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval_gil.c:581,1
    - Dst: drop_gil
      Src: /src/cpython/Python/ceval_gil.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 586
    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:591,1
    - Dst: take_gil
      Src: /src/cpython/Python/ceval_gil.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 5
    functionLinenumber: 588
    functionLinenumberEnd: 593
    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:600,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:601,1
    - Dst: drop_gil
      Src: /src/cpython/Python/ceval_gil.c:602,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: 599
        line_start: 599
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (tstate->interp == interp)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 603
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 603
    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:608,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: PyEval_AcquireThread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_Attach
    - _Py_EnsureTstateNotNULL
    linkageType: ''
    returnType: void
    signature: void PyEval_AcquireThread(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:615,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:615,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/ceval_gil.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 617
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 617
    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:625,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/ceval_gil.c:625,1
    - Dst: gil_created
      Src: /src/cpython/Python/ceval_gil.c:628,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/ceval_gil.c:629,1
    - Dst: recreate_gil
      Src: /src/cpython/Python/ceval_gil.c:631,1
    - Dst: take_gil
      Src: /src/cpython/Python/ceval_gil.c:633,1
    - Dst: _PyMutex_at_fork_reinit
      Src: /src/cpython/Python/ceval_gil.c:636,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/ceval_gil.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate->interp == _PyInterpreterState_Main())
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 639
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 639
    functionName: _PyEval_ReInitThreads
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - recreate_gil
    - _PyStatus_OK
    - take_gil
    - _PyMutex_at_fork_reinit
    - gil_created
    - assert
    - _PyInterpreterState_Main
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyEval_ReInitThreads(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval_gil.c:645,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/ceval_gil.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 648
    functionName: PyEval_SaveThread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 10
    functionsReached:
    - _PyThreadState_Detach
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyEval_SaveThread(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Python/ceval_gil.c:654,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/ceval_gil.c:657,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:658,1
    - Dst: SetLastError
      Src: /src/cpython/Python/ceval_gil.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 650
    functionDepth: 4
    functionLinenumber: 650
    functionLinenumberEnd: 663
    functionName: PyEval_RestoreThread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 10
    functionsReached:
    - _PyThreadState_Attach
    - SetLastError
    - _Py_EnsureTstateNotNULL
    - GetLastError
    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:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 670
    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:682,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:683,1
    - Dst: _Py_atomic_load_ptr_relaxed
      Src: /src/cpython/Python/ceval_gil.c:684,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:686,1
    - Dst: MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - bit
    argTypes:
    - PyInterpreterState*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 690
    functionName: signal_active_thread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _Py_set_eval_breaker_bit
    - MUTEX_LOCK
    - MUTEX_UNLOCK
    - _Py_atomic_load_ptr_relaxed
    - _Py_atomic_load_int_relaxed
    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:724,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:727,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:733,1
    - Dst: _Py_atomic_add_int32
      Src: /src/cpython/Python/ceval_gil.c:734,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:737,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: 723
        line_start: 723
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: "(pending->next != pending->first\n            || pending->npending
        == pending->max)"
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (pending->calls[i].func == NULL)
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (pending->npending < PENDINGCALLSARRAYSIZE)
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 741
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 741
    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:750,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:751,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: 749
        line_start: 749
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (pending->calls[i].func == NULL)
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 758
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 758
    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:765,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:769,1
    - Dst: _Py_atomic_add_int32
      Src: /src/cpython/Python/ceval_gil.c:770,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: 768
        line_start: 768
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 772
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 772
    functionName: _pop_pending_call
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_atomic_add_int32
    - _next_pending_call
    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:787,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:787,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/ceval_gil.c:791,1
    - Dst: _push_pending_call
      Src: /src/cpython/Python/ceval_gil.c:793,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/ceval_gil.c:794,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:797,1
    - Dst: _Py_set_eval_breaker_bit_all
      Src: /src/cpython/Python/ceval_gil.c:801,1
    - Dst: signal_active_thread
      Src: /src/cpython/Python/ceval_gil.c:803,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: 786
        line_start: 786
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 808
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 808
    functionName: _PyEval_AddPendingCall
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 4
    functionsReached:
    - PyMutex_Unlock
    - _push_pending_call
    - _Py_IsMainInterpreter
    - signal_active_thread
    - _Py_set_eval_breaker_bit
    - assert
    - PyMutex_Lock
    - _Py_set_eval_breaker_bit_all
    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:815,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/cpython/Python/ceval_gil.c:817,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:822,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: 821
        line_start: 821
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 825
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 825
    functionName: Py_AddPendingCall
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _PyEval_AddPendingCall
    - _PyInterpreterState_Main
    - 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:830,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:830,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:831,1
    - Dst: _Py_ThreadCanHandleSignals
      Src: /src/cpython/Python/ceval_gil.c:832,1
    - Dst: _PyErr_CheckSignalsTstate
      Src: /src/cpython/Python/ceval_gil.c:835,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 829
        line_start: 829
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 841
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 841
    functionName: handle_signals
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyErr_CheckSignalsTstate
    - _Py_ThreadCanHandleSignals
    - _Py_unset_eval_breaker_bit
    - _Py_set_eval_breaker_bit
    - assert
    - _PyThreadState_CheckConsistency
    linkageType: ''
    returnType: int
    signature: int handle_signals(PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:849,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/ceval_gil.c:850,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:855,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/ceval_gil.c:864,1
    - Dst: _pop_pending_call
      Src: /src/cpython/Python/ceval_gil.c:865,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/ceval_gil.c:867,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:871,1
    - Dst: func
      Src: /src/cpython/Python/ceval_gil.c:876,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/ceval_gil.c:878,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: 849
        line_start: 848
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (maxloop > 0 && maxloop <= pending->max)
      pos:
        line_end: 854
        line_start: 854
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (npending == 0)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 889
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 889
    functionName: _make_pending_calls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - PyMutex_Unlock
    - Py_ARRAY_LENGTH
    - PyMem_RawFree
    - func
    - assert
    - PyMutex_Lock
    - _pop_pending_call
    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:895,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - interp
    argTypes:
    - PyThreadState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 899
    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:905,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tstate
    - interp
    argTypes:
    - PyThreadState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 909
    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:914,1
    - Dst: FT_MUTEX_UNLOCK
      Src: /src/cpython/Python/ceval_gil.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pending
    argTypes:
    - struct _pending_calls*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 917
    functionName: clear_pending_handling_thread
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - FT_MUTEX_UNLOCK
    - FT_MUTEX_LOCK
    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:928,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:937,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:938,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/ceval_gil.c:939,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/ceval_gil.c:943,1
    - Dst: unsignal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:947,1
    - Dst: _make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:950,1
    - Dst: clear_pending_handling_thread
      Src: /src/cpython/Python/ceval_gil.c:951,1
    - Dst: signal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:953,1
    - Dst: signal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:958,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:961,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:961,1
    - Dst: _make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:962,1
    - Dst: clear_pending_handling_thread
      Src: /src/cpython/Python/ceval_gil.c:963,1
    - Dst: signal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:965,1
    - Dst: signal_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:970,1
    - Dst: clear_pending_handling_thread
      Src: /src/cpython/Python/ceval_gil.c:974,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 976
    functionName: make_pending_calls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - PyMutex_Unlock
    - unsignal_pending_calls
    - _Py_IsMainInterpreter
    - signal_pending_calls
    - _Py_unset_eval_breaker_bit
    - clear_pending_handling_thread
    - _Py_set_eval_breaker_bit
    - _make_pending_calls
    - PyMutex_Lock
    - _Py_IsMainThread
    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:983,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/ceval_gil.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - bit
    argTypes:
    - PyInterpreterState*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 986
    functionName: _Py_set_eval_breaker_bit_all
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 2
    functionsReached:
    - _Py_FOR_EACH_TSTATE_END
    - _Py_set_eval_breaker_bit
    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:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 984
    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:992,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/ceval_gil.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - interp
    - bit
    argTypes:
    - PyInterpreterState*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 995
    functionName: _Py_unset_eval_breaker_bit_all
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _Py_FOR_EACH_TSTATE_END
    - _Py_unset_eval_breaker_bit
    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:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 993
    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:1000,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1001,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:1001,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:1005,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:1005,1
    - Dst: make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:1015,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/ceval_gil.c:1016,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/ceval_gil.c:1017,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/ceval_gil.c:1018,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/ceval_gil.c:1019,1
    - Dst: _Py_atomic_load_int32_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1022,1
    - Dst: _Py_atomic_load_int32_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1024,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 1000
        line_start: 1000
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (npending_prev > npending)
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1031
      start: 997
    functionDepth: 4
    functionLinenumber: 997
    functionLinenumberEnd: 1031
    functionName: _Py_FinishPendingCalls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - make_pending_calls
    - _Py_IsMainInterpreter
    - PyErr_BadInternalCall
    - _PyErr_ChainExceptions1
    - _PyErr_GetRaisedException
    - assert
    - _Py_AssertHoldsTstate
    - _Py_atomic_load_int32_relaxed
    - _Py_IsMainThread
    - _PyThreadState_CheckConsistency
    - _PyErr_Print
    linkageType: ''
    returnType: void
    signature: void _Py_FinishPendingCalls(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:1038,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:1038,1
    - Dst: handle_signals
      Src: /src/cpython/Python/ceval_gil.c:1042,1
    - Dst: make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1033
    functionDepth: 4
    functionLinenumber: 1033
    functionLinenumberEnd: 1054
    functionName: _PyEval_MakePendingCalls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - make_pending_calls
    - _Py_IsMainThread
    - handle_signals
    - _Py_IsMainInterpreter
    linkageType: ''
    returnType: int
    signature: int _PyEval_MakePendingCalls(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/ceval_gil.c:1061,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval_gil.c:1063,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1064,1
    - Dst: _PyThreadState_CheckConsistency
      Src: /src/cpython/Python/ceval_gil.c:1064,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/ceval_gil.c:1067,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/ceval_gil.c:1067,1
    - Dst: _PyEval_MakePendingCalls
      Src: /src/cpython/Python/ceval_gil.c:1070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyThreadState_CheckConsistency(tstate))
      pos:
        line_end: 1063
        line_start: 1063
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1071
      start: 1058
    functionDepth: 5
    functionLinenumber: 1058
    functionLinenumberEnd: 1071
    functionName: Py_MakePendingCalls
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 4
    functionsReached:
    - _Py_IsMainInterpreter
    - _PyEval_MakePendingCalls
    - _PyThreadState_GET
    - assert
    - _Py_AssertHoldsTstate
    - _Py_IsMainThread
    - _PyThreadState_CheckConsistency
    linkageType: ''
    returnType: int
    signature: int Py_MakePendingCalls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gil_initialize
      Src: /src/cpython/Python/ceval_gil.c:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1077
    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:1083,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1089,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/ceval_gil.c:1095,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1101,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/ceval_gil.c:1114,1
    - Dst: _PyEval_StopTheWorldAll
      Src: /src/cpython/Python/ceval_gil.c:1120,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1122,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1124,1
    - Dst: _PyEval_StartTheWorldAll
      Src: /src/cpython/Python/ceval_gil.c:1126,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:1127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1080
    functionDepth: 4
    functionLinenumber: 1080
    functionLinenumberEnd: 1130
    functionName: _PyEval_EnableGILTransient
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_Attach
    - Py_FatalError
    - _PyInterpreterState_GetConfig
    - _Py_atomic_store_int_relaxed
    - _PyThreadState_Detach
    - _PyEval_StartTheWorldAll
    - _PyEval_StopTheWorldAll
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: int
    signature: int _PyEval_EnableGILTransient(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/ceval_gil.c:1135,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1141,1
    - Dst: current_thread_holds_gil
      Src: /src/cpython/Python/ceval_gil.c:1141,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1143,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (current_thread_holds_gil(gil, tstate))
      pos:
        line_end: 1140
        line_start: 1140
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1150
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1150
    functionName: _PyEval_EnableGILPermanent
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - _Py_atomic_store_int_relaxed
    - assert
    - _Py_atomic_load_int_relaxed
    - current_thread_holds_gil
    linkageType: ''
    returnType: int
    signature: int _PyEval_EnableGILPermanent(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/ceval_gil.c:1155,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1161,1
    - Dst: current_thread_holds_gil
      Src: /src/cpython/Python/ceval_gil.c:1161,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1163,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1168,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/ceval_gil.c:1174,1
    - Dst: drop_gil_impl
      Src: /src/cpython/Python/ceval_gil.c:1183,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (current_thread_holds_gil(gil, tstate))
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (enabled >= 1)
      pos:
        line_end: 1167
        line_start: 1167
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1192
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1192
    functionName: _PyEval_DisableGIL
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - _Py_unset_eval_breaker_bit
    - _Py_atomic_store_int_relaxed
    - drop_gil_impl
    - assert
    - _Py_atomic_load_int_relaxed
    - current_thread_holds_gil
    linkageType: ''
    returnType: int
    signature: int _PyEval_DisableGIL(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/cpython/Python/ceval_gil.c:1200,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/ceval_gil.c:1205,1
    - Dst: PyRun_String
      Src: /src/cpython/Python/ceval_gil.c:1210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - source
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1198
    functionDepth: 11
    functionLinenumber: 1198
    functionLinenumberEnd: 1217
    functionName: run_remote_debugger_source
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyRun_String
    - PyDict_New
    - PyBytes_AsString
    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:1223,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1224,1
    - Dst: PyFile_OpenCodeObject
      Src: /src/cpython/Python/ceval_gil.c:1231,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1233,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/ceval_gil.c:1237,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval_gil.c:1237,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1239,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/ceval_gil.c:1242,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/ceval_gil.c:1242,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1246,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1248,1
    - Dst: run_remote_debugger_source
      Src: /src/cpython/Python/ceval_gil.c:1251,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1221
    functionDepth: 12
    functionLinenumber: 1221
    functionLinenumberEnd: 1256
    functionName: run_remote_debugger_script
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_FormatUnraisable
    - run_remote_debugger_source
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyFile_OpenCodeObject
    - _Py_ID
    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:1260,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/ceval_gil.c:1272,1
    - Dst: memcpy
      Src: /src/cpython/Python/ceval_gil.c:1275,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/ceval_gil.c:1281,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/ceval_gil.c:1283,1
    - Dst: run_remote_debugger_script
      Src: /src/cpython/Python/ceval_gil.c:1286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1287,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/ceval_gil.c:1290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1258
    functionDepth: 13
    functionLinenumber: 1258
    functionLinenumberEnd: 1294
    functionName: _PyRunRemoteDebugger
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_GetConfig
    - PyUnicode_DecodeFSDefault
    - run_remote_debugger_script
    - memcpy
    - PyMem_Free
    - PyMem_Malloc
    - Py_DECREF
    - PyErr_FormatUnraisable
    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:1359,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1363,1
    - Dst: _PyThreadState_Suspend
      Src: /src/cpython/Python/ceval_gil.c:1364,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:1367,1
    - Dst: handle_signals
      Src: /src/cpython/Python/ceval_gil.c:1372,1
    - Dst: make_pending_calls
      Src: /src/cpython/Python/ceval_gil.c:1379,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1387,1
    - Dst: _Py_brc_merge_refcounts
      Src: /src/cpython/Python/ceval_gil.c:1388,1
    - Dst: _Py_qsbr_should_process
      Src: /src/cpython/Python/ceval_gil.c:1391,1
    - Dst: _PyMem_ProcessDelayed
      Src: /src/cpython/Python/ceval_gil.c:1392,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1398,1
    - Dst: _Py_RunGC
      Src: /src/cpython/Python/ceval_gil.c:1399,1
    - Dst: _Py_ClearExecutorDeletionList
      Src: /src/cpython/Python/ceval_gil.c:1401,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1407,1
    - Dst: _Py_Executors_InvalidateCold
      Src: /src/cpython/Python/ceval_gil.c:1408,1
    - Dst: _Py_ClearExecutorDeletionList
      Src: /src/cpython/Python/ceval_gil.c:1410,1
    - Dst: _PyThreadState_Detach
      Src: /src/cpython/Python/ceval_gil.c:1417,1
    - Dst: _PyThreadState_Attach
      Src: /src/cpython/Python/ceval_gil.c:1421,1
    - Dst: _PyEval_RaiseAsyncExc
      Src: /src/cpython/Python/ceval_gil.c:1426,1
    - Dst: _PyRunRemoteDebugger
      Src: /src/cpython/Python/ceval_gil.c:1432,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1356
    functionDepth: 14
    functionLinenumber: 1356
    functionLinenumberEnd: 1436
    functionName: _Py_HandlePending
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_Attach
    - _PyMem_ProcessDelayed
    - make_pending_calls
    - _Py_RunGC
    - _PyEval_RaiseAsyncExc
    - _Py_unset_eval_breaker_bit
    - _Py_ClearExecutorDeletionList
    - _Py_atomic_load_uintptr_relaxed
    - _PyThreadState_Detach
    - _Py_brc_merge_refcounts
    - _Py_qsbr_should_process
    - _PyRunRemoteDebugger
    - _PyThreadState_Suspend
    - handle_signals
    - _Py_Executors_InvalidateCold
    linkageType: ''
    returnType: int
    signature: int _Py_HandlePending(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1441,1
    - Dst: assert
      Src: /src/cpython/Python/ceval_gil.c:1442,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/ceval_gil.c:1442,1
    - Dst: _Py_unset_eval_breaker_bit
      Src: /src/cpython/Python/ceval_gil.c:1443,1
    - Dst: _Py_atomic_exchange_ptr
      Src: /src/cpython/Python/ceval_gil.c:1444,1
    - Dst: _PyErr_SetNone
      Src: /src/cpython/Python/ceval_gil.c:1446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ceval_gil.c:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1440
        line_start: 1440
        source_file: /src/cpython/Python/ceval_gil.c
    - condition: (tstate == _PyThreadState_GET())
      pos:
        line_end: 1441
        line_start: 1441
        source_file: /src/cpython/Python/ceval_gil.c
    constantsTouched: []
    func_position:
      end: 1451
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1451
    functionName: _PyEval_RaiseAsyncExc
    functionSourceFile: /src/cpython/Python/ceval_gil.c
    functionUses: 2
    functionsReached:
    - _PyErr_SetNone
    - _Py_unset_eval_breaker_bit
    - _PyThreadState_GET
    - assert
    - Py_DECREF
    - _Py_atomic_exchange_ptr
    linkageType: ''
    returnType: int
    signature: int _PyEval_RaiseAsyncExc(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_used < seq->s_allocated)
      pos:
        line_end: 52
        line_start: 52
        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
    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: (hi->h_label < instrs->s_labelmap_size)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Python/instruction_sequence.c
    - condition: (instr->i_oparg < instrs->s_labelmap_size)
      pos:
        line_end: 96
        line_start: 96
        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:
    - HAS_TARGET
    - PyMem_Free
    - assert
    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
    - IS_WITHIN_OPCODE_RANGE
    - instr_sequence_next_inst
    - assert
    - RETURN_IF_ERROR
    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: 2
    functionsReached:
    - instr_sequence_next_inst
    - RETURN_IF_ERROR
    - assert
    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:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - seq
    - pos
    argTypes:
    - instr_sequence*
    - int
    assertStmts:
    - condition: (pos >= 0 && pos < seq->s_used)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/cpython/Python/instruction_sequence.c
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: _PyInstructionSequence_GetInstruction
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: _PyInstruction
    signature: _PyInstruction _PyInstructionSequence_GetInstruction(instr_sequence
      *seq, int pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/instruction_sequence.c:168,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: 167
        line_start: 167
        source_file: /src/cpython/Python/instruction_sequence.c
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    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:177,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/instruction_sequence.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - seq
    - nested
    argTypes:
    - instr_sequence*
    - instr_sequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 186
    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:190,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/instruction_sequence.c:192,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/instruction_sequence.c:195,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/instruction_sequence.c:199,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instruction_sequence.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - seq
    argTypes:
    - instr_sequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: PyInstructionSequence_Fini
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - PyInstructionSequence_Fini
    - PyMem_Free
    - Py_XDECREF
    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:214,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/instruction_sequence.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: inst_seq_create
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    linkageType: ''
    returnType: _PyInstructionSequence
    signature: '_PyInstructionSequence *

      inst_seq_create(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inst_seq_create
      Src: /src/cpython/Python/instruction_sequence.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 239
    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:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 253
    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:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - label
    argTypes:
    - _PyInstructionSequence*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 273
    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:295,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: 299
      start: 288
    functionDepth: 5
    functionLinenumber: 288
    functionLinenumberEnd: 299
    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:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyInstructionSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 313
    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:328,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/instruction_sequence.c:329,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/instruction_sequence.c:331,1
    - Dst: _PyInstructionSequence_AddNested
      Src: /src/cpython/Python/instruction_sequence.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - nested
    argTypes:
    - _PyInstructionSequence*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 338
    functionName: InstructionSequenceType_add_nested_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - _PyInstructionSequence_Check
    - _PyInstructionSequence_AddNested
    - PyErr_Format
    - Py_TYPE
    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:351,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/instruction_sequence.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyInstructionSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: InstructionSequenceType_get_nested_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyList_New
    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:366,1
    - Dst: PyList_New
      Src: /src/cpython/Python/instruction_sequence.c:369,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/instruction_sequence.c:378,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/instruction_sequence.c:379,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/instruction_sequence.c:385,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/instruction_sequence.c:394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/instruction_sequence.c:395,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/instruction_sequence.c:402,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyInstructionSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 404
    functionName: InstructionSequenceType_get_instructions_impl
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_ARG
    - Py_BuildValue
    - _PyInstructionSequence_ApplyLabelMap
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    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:428,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/instruction_sequence.c:429,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Python/instruction_sequence.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 431
    functionName: inst_seq_dealloc
    functionSourceFile: /src/cpython/Python/instruction_sequence.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyInstructionSequence_Fini
    - PyObject_GC_Del
    linkageType: ''
    returnType: void
    signature: void inst_seq_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Python/instruction_sequence.c:437,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/instruction_sequence.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 440
    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:446,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/instruction_sequence.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 449
    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_end
    - va_start
    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: (size > 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Python/mysnprintf.c
    - condition: (format != NULL)
      pos:
        line_end: 57
        line_start: 57
        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: 43
    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:131,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/symtable.c:158,1
    - Dst: PyList_New
      Src: /src/cpython/Python/symtable.c:159,1
    - Dst: PyList_New
      Src: /src/cpython/Python/symtable.c:160,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:166,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:171,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 5
    argNames:
    - st
    - name
    - block
    - key
    - loc
    argTypes:
    - struct symtable*
    - identifier
    - _Py_block_ty
    - void*
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 92
    functionDepth: 11
    functionLinenumber: 92
    functionLinenumberEnd: 173
    functionName: ste_new
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItem
    - PyLong_FromVoidPtr
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - _PyST_IsFunctionLike
    - Py_NewRef
    - PyObject_New
    - 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:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 10
    functionLinenumber: 175
    functionLinenumberEnd: 181
    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: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: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:194,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:195,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:196,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/symtable.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 198
    functionName: ste_dealloc
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - Py_XDECREF
    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: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    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:307,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:337,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:338,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/symtable.c:338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:339,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:342,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/symtable.c:343,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/symtable.c:344,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:345,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/symtable.c:345,1
    - Dst: PyUnicode_AsUTF8
      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:354,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:358,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:359,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:360,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:361,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:362,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:364,1
    - Dst: printf
      Src: /src/cpython/Python/symtable.c:366,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/symtable.c:366,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/symtable.c:367,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:368,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:369,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/symtable.c:370,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:371,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:371,1
    - Dst: _dump_symtable
      Src: /src/cpython/Python/symtable.c:372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:374,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 2
    argNames:
    - ste
    - prefix
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts:
    - condition: (msg != NULL)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/cpython/Python/symtable.c
    - condition: (child != NULL && PySTEntry_Check(child))
      pos:
        line_end: 370
        line_start: 370
        source_file: /src/cpython/Python/symtable.c
    - condition: (new_prefix != NULL)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 375
      start: 287
    functionDepth: 10
    functionLinenumber: 287
    functionLinenumberEnd: 375
    functionName: _dump_symtable
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - _PyST_GetSymbol
    - PyList_GetItem
    - _dump_symtable
    - PyUnicode_FromFormat
    - PyDict_Next
    - PyUnicode_AsUTF8
    - _PyST_GetScope
    - PySTEntry_Check
    - assert
    - Py_DECREF
    - printf
    - PyList_GET_SIZE
    linkageType: ''
    returnType: void
    signature: void _dump_symtable(PySTEntryObject* ste, PyObject* prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/symtable.c:379,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:380,1
    - Dst: _dump_symtable
      Src: /src/cpython/Python/symtable.c:381,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ste
    argTypes:
    - PySTEntryObject*
    assertStmts:
    - condition: (empty != NULL)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 11
    functionLinenumber: 377
    functionLinenumberEnd: 383
    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:394,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/symtable.c:396,1
    - Dst: PyList_New
      Src: /src/cpython/Python/symtable.c:403,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/symtable.c:405,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 389
    functionDepth: 11
    functionLinenumber: 389
    functionLinenumberEnd: 413
    functionName: symtable_new
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _PySymtable_Free
    - PyList_New
    - PyMem_Malloc
    - PyDict_New
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      symtable_new(void)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: symtable_new
      Src: /src/cpython/Python/symtable.c:418,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:426,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:429,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/symtable.c:433,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:435,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:442,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:442,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:443,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/symtable.c:451,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:454,1
    - Dst: symtable_visit_stmt
      Src: /src/cpython/Python/symtable.c:455,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:456,1
    - Dst: symtable_visit_expr
      Src: /src/cpython/Python/symtable.c:460,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:465,1
    - Dst: symtable_visit_stmt
      Src: /src/cpython/Python/symtable.c:466,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:467,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:471,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:475,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:476,1
    - Dst: symtable_analyze
      Src: /src/cpython/Python/symtable.c:480,1
    - Dst: dump_symtable
      Src: /src/cpython/Python/symtable.c:482,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:486,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:489,1
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/symtable.c:490,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 3
    argNames:
    - mod
    - filename
    - future
    argTypes:
    - mod_ty
    - PyObject*
    - _PyFutureFeatures*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 415
    functionDepth: 12
    functionLinenumber: 415
    functionLinenumberEnd: 492
    functionName: _PySymtable_Build
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_visit_stmt
    - asdl_seq_GET
    - symtable_new
    - dump_symtable
    - PyErr_SetString
    - _PySymtable_Free
    - symtable_enter_block
    - _PyThreadState_GET
    - _PyAST_GetDocString
    - symtable_exit_block
    - symtable_analyze
    - symtable_visit_expr
    - asdl_seq_LEN
    - Py_NewRef
    - _Py_ID
    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:498,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:499,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:500,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/symtable.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: _PySymtable_Free
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 3
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _PySymtable_Free(struct symtable *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/symtable.c:509,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/symtable.c:512,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:516,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:518,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:518,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: 517
        line_start: 517
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 520
      start: 504
    functionDepth: 8
    functionLinenumber: 504
    functionLinenumberEnd: 520
    functionName: _PySymtable_Lookup
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - PySTEntry_Check
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - PyLong_FromVoidPtr
    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:526,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/symtable.c:531,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:532,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:533,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:533,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: 532
        line_start: 532
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 535
      start: 522
    functionDepth: 8
    functionLinenumber: 522
    functionLinenumberEnd: 535
    functionName: _PySymtable_LookupOptional
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PySTEntry_Check
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - PyLong_FromVoidPtr
    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:541,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:548,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:550,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 537
    functionDepth: 8
    functionLinenumber: 537
    functionLinenumberEnd: 556
    functionName: _PyST_GetSymbol
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 3
    functionsReached:
    - PyErr_SetString
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - 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:561,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/symtable.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 9
    functionLinenumber: 558
    functionLinenumberEnd: 566
    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: 576
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 576
    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:583,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:584,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:585,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:586,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/symtable.c:586,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:587,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/symtable.c:587,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:587,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/symtable.c:588,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:588,1
    - Dst: PyErr_RangedSyntaxLocationObject
      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: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:591,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:591,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:592,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:592,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:593,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/symtable.c:593,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(data))
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/cpython/Python/symtable.c
    - condition: (PyUnicode_CheckExact(PyTuple_GET_ITEM(data, 0)))
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/cpython/Python/symtable.c
    - condition: (ste->ste_directives)
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 601
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 601
    functionName: error_at_directive
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PyUnicode_CheckExact
    - PyList_GET_ITEM
    - PyUnicode_Compare
    - PyLong_AsLong
    - assert
    - PyList_GET_SIZE
    - PyTuple_CheckExact
    - PyErr_RangedSyntaxLocationObject
    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: 660
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 660
    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:676,1
    - Dst: error_at_directive
      Src: /src/cpython/Python/symtable.c:679,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:681,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:682,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:684,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:690,1
    - Dst: error_at_directive
      Src: /src/cpython/Python/symtable.c:692,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:694,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:699,1
    - Dst: error_at_directive
      Src: /src/cpython/Python/symtable.c:703,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:705,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:710,1
    - Dst: error_at_directive
      Src: /src/cpython/Python/symtable.c:713,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:715,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:716,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:719,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:720,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:722,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:725,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:729,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/symtable.c:742,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:747,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:751,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:761,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:766,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:767,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:774,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:779,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:783,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: 785
      start: 668
    functionDepth: 9
    functionLinenumber: 668
    functionLinenumberEnd: 785
    functionName: analyze_name
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - _PyST_GetSymbol
    - PySet_Add
    - PySet_Discard
    - PySet_Contains
    - PyErr_Format
    - SET_SCOPE
    - error_at_directive
    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:790,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:791,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/symtable.c:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - entry
    - key
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 787
    functionDepth: 10
    functionLinenumber: 787
    functionLinenumberEnd: 802
    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: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:815,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:817,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:818,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:822,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:822,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/symtable.c:825,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:828,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/symtable.c:832,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:833,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:840,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:841,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:842,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:844,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:848,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:851,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:860,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:860,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:861,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:865,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:866,1
    - Dst: SET_SCOPE
      Src: /src/cpython/Python/symtable.c:870,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:873,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:874,1
    - Dst: is_free_in_any_child
      Src: /src/cpython/Python/symtable.c:881,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:886,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Python/symtable.c:893,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Python/symtable.c:896,1
    - Dst: PyDict_DelItemString
      Src: /src/cpython/Python/symtable.c:899,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 67
    argCount: 5
    argNames:
    - ste
    - comp
    - scopes
    - comp_free
    - inlined_cells
    argTypes:
    - PySTEntryObject*
    - PySTEntryObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (scope != FREE || PySet_Contains(comp_free, k) == 1)
      pos:
        line_end: 859
        line_start: 859
        source_file: /src/cpython/Python/symtable.c
    - condition: (_PyUnicode_EqualToASCIIString(k, ".0"))
      pos:
        line_end: 821
        line_start: 821
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 903
      start: 804
    functionDepth: 11
    functionLinenumber: 804
    functionLinenumberEnd: 903
    functionName: inline_comprehension
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PySet_Add
    - PySet_Discard
    - PyDict_DelItemString
    - SET_SCOPE
    - PyDict_Next
    - _PyUnicode_EqualToASCIIString
    - PyDict_SetItem
    - SYMBOL_TO_SCOPE
    - PyLong_AsLong
    - PySet_Contains
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyDict_GetItemWithError
    - is_free_in_any_child
    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:922,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:925,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:926,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:927,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:932,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:937,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:949,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:956,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 3
    argNames:
    - scopes
    - free
    - inlined_cells
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 915
    functionDepth: 10
    functionLinenumber: 915
    functionLinenumberEnd: 958
    functionName: analyze_cells
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PySet_Discard
    - PyDict_Next
    - PyDict_SetItem
    - PySet_Contains
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    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:964,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:964,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:969,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:969,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/symtable.c:974,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:974,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ste
    - free
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 960
    functionDepth: 6
    functionLinenumber: 960
    functionLinenumberEnd: 981
    functionName: drop_class_free
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PySet_Discard
    - _Py_ID
    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:997,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:998,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:999,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:1002,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/symtable.c:1009,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/symtable.c:1013,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1017,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1018,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1022,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1029,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1033,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/symtable.c:1037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1039,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/symtable.c:1043,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/symtable.c:1044,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1053,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1054,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1058,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1069,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1072,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:1077,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1082,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1087,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1090,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1099,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1102,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1103,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1104,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: 1106
      start: 987
    functionDepth: 10
    functionLinenumber: 987
    functionLinenumberEnd: 1106
    functionName: update_symbols
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetObject
    - PyDict_Next
    - PyDict_SetItem
    - PyObject_GetIter
    - PySet_Contains
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - PyDict_GetItemRef
    - PyIter_Next
    - PyDict_GetItemWithError
    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:1144,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/symtable.c:1147,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1162,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1165,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1168,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1171,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1185,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1191,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/symtable.c:1195,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1196,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1197,1
    - Dst: analyze_name
      Src: /src/cpython/Python/symtable.c:1200,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:1208,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1212,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1216,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1219,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1225,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:1229,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1229,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:1231,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1231,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:1233,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1233,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:1243,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:1245,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1247,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:1247,1
    - Dst: analyze_child_block
      Src: /src/cpython/Python/symtable.c:1267,1
    - Dst: inline_comprehension
      Src: /src/cpython/Python/symtable.c:1273,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1274,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1280,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1283,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:1287,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:1288,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1290,1
    - Dst: PySTEntry_Check
      Src: /src/cpython/Python/symtable.c:1290,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/symtable.c:1293,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:1301,1
    - Dst: analyze_cells
      Src: /src/cpython/Python/symtable.c:1301,1
    - Dst: drop_class_free
      Src: /src/cpython/Python/symtable.c:1303,1
    - Dst: update_symbols
      Src: /src/cpython/Python/symtable.c:1306,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/cpython/Python/symtable.c:1310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1313,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1316,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1317,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1318,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1320,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1321,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:1323,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1323,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: 1289
        line_start: 1289
        source_file: /src/cpython/Python/symtable.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1322
        line_start: 1322
        source_file: /src/cpython/Python/symtable.c
    - condition: (c && PySTEntry_Check(c))
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 1325
      start: 1133
    functionDepth: 13
    functionLinenumber: 1133
    functionLinenumberEnd: 1325
    functionName: analyze_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - PySTEntry_Check
    - PyErr_Occurred
    - assert
    - PyList_SetSlice
    - update_symbols
    - drop_class_free
    - PyNumber_InPlaceOr
    - PyLong_AsLong
    - analyze_cells
    - Py_XDECREF
    - analyze_name
    - inline_comprehension
    - PyDict_Next
    - PySet_New
    - Py_DECREF
    - _PyST_IsFunctionLike
    - PyDict_New
    - analyze_child_block
    - PySet_Add
    - PyList_GET_SIZE
    - _Py_ID
    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:1342,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1345,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1348,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1351,1
    - Dst: analyze_block
      Src: /src/cpython/Python/symtable.c:1355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1361,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1364,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1365,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1366,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/symtable.c:1367,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: 1369
      start: 1327
    functionDepth: 14
    functionLinenumber: 1327
    functionLinenumberEnd: 1369
    functionName: analyze_child_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PySet_New
    - analyze_block
    - Py_DECREF
    - Py_XDECREF
    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:1377,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1382,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1388,1
    - Dst: analyze_block
      Src: /src/cpython/Python/symtable.c:1391,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1371
    functionDepth: 14
    functionLinenumber: 1371
    functionLinenumberEnd: 1396
    functionName: symtable_analyze
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PySet_New
    - analyze_block
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int symtable_analyze(struct symtable *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:1409,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/symtable.c:1411,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:1414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1403
    functionDepth: 12
    functionLinenumber: 1403
    functionLinenumberEnd: 1417
    functionName: symtable_exit_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyList_GET_SIZE
    - PyList_GET_ITEM
    - PyList_SetSlice
    linkageType: ''
    returnType: int
    signature: int symtable_exit_block(struct symtable *st)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/cpython/Python/symtable.c:1422,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:1436,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/symtable.c:1452,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: 1457
      start: 1419
    functionDepth: 2
    functionLinenumber: 1419
    functionLinenumberEnd: 1457
    functionName: symtable_enter_existing_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - PyList_Append
    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:1463,1
    - Dst: symtable_enter_existing_block
      Src: /src/cpython/Python/symtable.c:1466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1467,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1469,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1471,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1471,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1474,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1474,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: 1479
      start: 1459
    functionDepth: 12
    functionLinenumber: 1459
    functionLinenumberEnd: 1479
    functionName: symtable_enter_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_add_def
    - _Py_STR
    - _Py_DECLARE_STR
    - symtable_enter_existing_block
    - Py_DECREF
    - 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:1484,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/symtable.c:1487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - st
    - ste
    - name
    argTypes:
    - struct symtable*
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1481
    functionDepth: 9
    functionLinenumber: 1481
    functionLinenumberEnd: 1493
    functionName: symtable_lookup_entry
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyST_GetSymbol
    - _Py_MaybeMangle
    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:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - name
    argTypes:
    - struct symtable*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1495
    functionDepth: 10
    functionLinenumber: 1495
    functionLinenumberEnd: 1499
    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:1508,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/symtable.c:1513,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1514,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1515,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1520,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1521,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1525,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1526,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1531,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1544,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1546,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1551,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1558,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/symtable.c:1561,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/symtable.c:1567,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/symtable.c:1568,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1569,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/symtable.c:1573,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/symtable.c:1577,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/symtable.c:1580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1586,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1590,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: 1592
      start: 1501
    functionDepth: 10
    functionLinenumber: 1501
    functionLinenumberEnd: 1592
    functionName: symtable_add_def_helper
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyList_Append
    - PyDict_SetItem
    - PyLong_AsLong
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - SET_ERROR_LOCATION
    - PyDict_GetItemWithError
    - _Py_MaybeMangle
    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:1598,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:1599,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1600,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:1603,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:1604,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1605,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: 1609
      start: 1594
    functionDepth: 2
    functionLinenumber: 1594
    functionLinenumberEnd: 1609
    functionName: check_name
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - SET_ERROR_LOCATION
    - PyErr_SetString
    - _PyUnicode_EqualToASCIIString
    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:1614,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:1615,1
    - Dst: check_name
      Src: /src/cpython/Python/symtable.c:1616,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - st
    - keywords
    argTypes:
    - struct symtable*
    - asdl_keyword_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1611
    functionDepth: 3
    functionLinenumber: 1611
    functionLinenumberEnd: 1621
    functionName: check_keywords
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - check_name
    - LOCATION
    - 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:1626,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1629,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1630,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:1630,1
    - Dst: check_name
      Src: /src/cpython/Python/symtable.c:1631,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:1631,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: 1625
        line_start: 1625
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 1636
      start: 1623
    functionDepth: 3
    functionLinenumber: 1623
    functionLinenumberEnd: 1636
    functionName: check_kwd_patterns
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - assert
    - check_name
    - LOCATION
    - asdl_seq_LEN
    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:1643,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/symtable.c:1647,1
    - Dst: symtable_add_def_helper
      Src: /src/cpython/Python/symtable.c:1651,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: 1652
      start: 1638
    functionDepth: 11
    functionLinenumber: 1638
    functionLinenumberEnd: 1652
    functionName: symtable_add_def_ctx
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - check_name
    - symtable_add_def_helper
    - PySet_Add
    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:1658,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: 1660
      start: 1654
    functionDepth: 12
    functionLinenumber: 1654
    functionLinenumberEnd: 1660
    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:1668,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1673,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1673,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1678,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1681,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1681,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1684,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1684,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1688,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1689,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1689,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1692,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1692,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1697,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1698,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1698,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1703,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1704,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1704,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: 1709
      start: 1662
    functionDepth: 13
    functionLinenumber: 1662
    functionLinenumberEnd: 1709
    functionName: symtable_enter_type_param_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_add_def
    - _Py_STR
    - _Py_DECLARE_STR
    - symtable_enter_block
    - _Py_ID
    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: 1731
      start: 1725
    functionDepth: 0
    functionLinenumber: 1725
    functionLinenumberEnd: 1731
    functionName: VISIT
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 318
    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: 1769
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1769
    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: 1772
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1772
    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: 3
    argNames:
    - (
    - ST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1776
    functionName: ENTER_TRY_BLOCK
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER_TRY_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: 1779
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1779
    functionName: LEAVE_TRY_BLOCK
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_TRY_BLOCK(ST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1780
    functionDepth: 0
    functionLinenumber: 1780
    functionLinenumberEnd: 1784
    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: 1786
      start: 1785
    functionDepth: 0
    functionLinenumber: 1785
    functionLinenumberEnd: 1786
    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:1794,1
    - Dst: _Py_MaybeMangle
      Src: /src/cpython/Python/symtable.c:1798,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/symtable.c:1801,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/symtable.c:1805,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - st
    - name
    - loc
    argTypes:
    - struct symtable*
    - identifier
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1788
    functionDepth: 4
    functionLinenumber: 1788
    functionLinenumberEnd: 1808
    functionName: symtable_record_directive
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - _Py_MaybeMangle
    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:1813,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:1814,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: 1820
      start: 1810
    functionDepth: 1
    functionLinenumber: 1810
    functionLinenumberEnd: 1820
    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:1825,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:1828,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:1832,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1835,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1835,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: 1824
        line_start: 1824
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 1839
      start: 1822
    functionDepth: 2
    functionLinenumber: 1822
    functionLinenumberEnd: 1839
    functionName: check_import_from
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyUnicode_EqualToASCIIString
    - assert
    - LOCATION
    - SET_ERROR_LOCATION
    linkageType: ''
    returnType: int
    signature: int check_import_from(struct symtable *st, stmt_ty s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1847,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1850,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1850,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1856,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1858,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1858,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:1864,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:1866,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - st
    - s
    - import_type
    argTypes:
    - struct symtable*
    - stmt_ty
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1871
    functionName: check_lazy_import_context
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LOCATION
    - SET_ERROR_LOCATION
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int check_lazy_import_context(struct symtable *st, stmt_ty s,\n                          const
      char* import_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 1878
    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:1884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - st
    - s
    argTypes:
    - struct symtable*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1881
    functionDepth: 1
    functionLinenumber: 1881
    functionLinenumberEnd: 1887
    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: 113
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/symtable.c:1892,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1895,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1895,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1898,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:1900,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1902,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1903,1
    - Dst: symtable_enter_type_param_block
      Src: /src/cpython/Python/symtable.c:1904,1
    - Dst: has_kwonlydefaults
      Src: /src/cpython/Python/symtable.c:1908,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1911,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1914,1
    - Dst: ste_new
      Src: /src/cpython/Python/symtable.c:1916,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1917,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/symtable.c:1922,1
    - Dst: symtable_visit_annotations
      Src: /src/cpython/Python/symtable.c:1926,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1928,1
    - Dst: symtable_enter_existing_block
      Src: /src/cpython/Python/symtable.c:1931,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:1935,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:1936,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1937,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1938,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1940,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1941,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1948,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1948,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1951,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1953,1
    - Dst: symtable_enter_type_param_block
      Src: /src/cpython/Python/symtable.c:1954,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1957,1
    - Dst: PySet_New
      Src: /src/cpython/Python/symtable.c:1961,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1965,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1967,1
    - Dst: check_keywords
      Src: /src/cpython/Python/symtable.c:1968,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1971,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:1972,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1973,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1977,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1978,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:1978,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1979,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/symtable.c:1982,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:1983,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:1983,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:1984,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/symtable.c:1989,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:1993,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1994,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:1996,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:1997,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2004,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:2005,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2008,1
    - Dst: symtable_enter_type_param_block
      Src: /src/cpython/Python/symtable.c:2010,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2014,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2017,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2019,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2020,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2024,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2024,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2024,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2027,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2028,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2031,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2038,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2043,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2046,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2047,1
    - Dst: symtable_lookup
      Src: /src/cpython/Python/symtable.c:2053,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2060,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2063,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2063,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2067,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2068,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2073,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2073,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2079,1
    - Dst: symtable_visit_annotation
      Src: /src/cpython/Python/symtable.c:2081,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2087,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2091,1
    - Dst: VISIT
      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:2097,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2098,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2099,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2101,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2102,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2106,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2107,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2108,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2110,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2111,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2116,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2117,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2118,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2120,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2121,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2125,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2126,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2127,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2128,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2133,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2135,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2140,1
    - Dst: ENTER_TRY_BLOCK
      Src: /src/cpython/Python/symtable.c:2141,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2142,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2143,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2144,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2145,1
    - Dst: LEAVE_TRY_BLOCK
      Src: /src/cpython/Python/symtable.c:2146,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2147,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2151,1
    - Dst: ENTER_TRY_BLOCK
      Src: /src/cpython/Python/symtable.c:2152,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2153,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2154,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2155,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2156,1
    - Dst: LEAVE_TRY_BLOCK
      Src: /src/cpython/Python/symtable.c:2157,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2158,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2162,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2164,1
    - Dst: check_lazy_import_context
      Src: /src/cpython/Python/symtable.c:2168,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2172,1
    - Dst: check_lazy_import_context
      Src: /src/cpython/Python/symtable.c:2176,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2181,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2183,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:2186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:2187,1
    - Dst: SET_ERROR_LOCATION
      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:2194,1
    - Dst: check_import_from
      Src: /src/cpython/Python/symtable.c:2195,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2202,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2203,1
    - Dst: symtable_lookup
      Src: /src/cpython/Python/symtable.c:2204,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2218,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2220,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2220,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2223,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2223,1
    - Dst: symtable_record_directive
      Src: /src/cpython/Python/symtable.c:2226,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2226,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2235,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2236,1
    - Dst: symtable_lookup
      Src: /src/cpython/Python/symtable.c:2237,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2251,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2252,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2252,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2255,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2255,1
    - Dst: symtable_record_directive
      Src: /src/cpython/Python/symtable.c:2257,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2257,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2264,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2272,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2273,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2274,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2275,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2279,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2279,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2282,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:2284,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2287,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2288,1
    - Dst: symtable_enter_type_param_block
      Src: /src/cpython/Python/symtable.c:2289,1
    - Dst: has_kwonlydefaults
      Src: /src/cpython/Python/symtable.c:2293,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2296,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2299,1
    - Dst: ste_new
      Src: /src/cpython/Python/symtable.c:2301,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2302,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/symtable.c:2307,1
    - Dst: symtable_visit_annotations
      Src: /src/cpython/Python/symtable.c:2311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2313,1
    - Dst: symtable_enter_existing_block
      Src: /src/cpython/Python/symtable.c:2316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2320,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2323,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2324,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2325,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/symtable.c:2327,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2328,1
    - Dst: maybe_set_ste_coroutine_for_module
      Src: /src/cpython/Python/symtable.c:2334,1
    - Dst: symtable_raise_if_not_coroutine
      Src: /src/cpython/Python/symtable.c:2335,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2335,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2338,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2339,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2340,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2341,1
    - Dst: maybe_set_ste_coroutine_for_module
      Src: /src/cpython/Python/symtable.c:2345,1
    - Dst: symtable_raise_if_not_coroutine
      Src: /src/cpython/Python/symtable.c:2346,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2346,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2349,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2350,1
    - Dst: ENTER_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2351,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2352,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2354,1
    - Dst: LEAVE_CONDITIONAL_BLOCK
      Src: /src/cpython/Python/symtable.c:2355,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2359,1
    CyclomaticComplexity: 120
    EdgeCount: 120
    ICount: 398
    argCount: 2
    argNames:
    - st
    - s
    argTypes:
    - struct symtable*
    - stmt_ty
    assertStmts:
    - condition: (s->v.TypeAlias.name->kind == Name_kind)
      pos:
        line_end: 2004
        line_start: 2004
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 2361
      start: 1889
    functionDepth: 14
    functionLinenumber: 1889
    functionLinenumberEnd: 2361
    functionName: symtable_visit_stmt
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - _Py_DECLARE_STR
    - LEAVE_CONDITIONAL_BLOCK
    - ENTER_RECURSIVE
    - symtable_visit_annotations
    - _PyAST_GetDocString
    - symtable_exit_block
    - VISIT
    - assert
    - SET_ERROR_LOCATION
    - symtable_lookup
    - ENTER_TRY_BLOCK
    - asdl_seq_GET
    - check_import_from
    - symtable_enter_type_param_block
    - check_keywords
    - ste_new
    - check_lazy_import_context
    - symtable_visit_annotation
    - VISIT_SEQ
    - _Py_STR
    - has_kwonlydefaults
    - PyErr_SetString
    - PySet_New
    - ENTER_CONDITIONAL_BLOCK
    - symtable_enter_existing_block
    - symtable_raise_if_not_coroutine
    - Py_DECREF
    - VISIT_SEQ_WITH_NULL
    - LOCATION
    - LEAVE_TRY_BLOCK
    - maybe_set_ste_coroutine_for_module
    - symtable_add_def
    - _PyUnicode_EqualToASCIIString
    - symtable_enter_block
    - symtable_record_directive
    - PyErr_Format
    - LEAVE_RECURSIVE
    - asdl_seq_LEN
    - _Py_ID
    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:2366,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:2367,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/symtable.c:2372,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:2373,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/symtable.c:2377,1
    - Dst: symtable_lookup_entry
      Src: /src/cpython/Python/symtable.c:2383,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2389,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2390,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2390,1
    - Dst: symtable_lookup_entry
      Src: /src/cpython/Python/symtable.c:2398,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2403,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2403,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2406,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2406,1
    - Dst: symtable_record_directive
      Src: /src/cpython/Python/symtable.c:2410,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2410,1
    - Dst: symtable_add_def_helper
      Src: /src/cpython/Python/symtable.c:2414,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2414,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2418,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2418,1
    - Dst: symtable_record_directive
      Src: /src/cpython/Python/symtable.c:2421,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2421,1
    - Dst: symtable_add_def_helper
      Src: /src/cpython/Python/symtable.c:2425,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2425,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2434,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2437,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2440,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:2443,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/symtable.c:2446,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2448,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2448,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/symtable.c:2456,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts:
    - condition: (e->kind == Name_kind)
      pos:
        line_end: 2366
        line_start: 2366
        source_file: /src/cpython/Python/symtable.c
    - condition: (st->st_stack)
      pos:
        line_end: 2365
        line_start: 2365
        source_file: /src/cpython/Python/symtable.c
    - condition: (size)
      pos:
        line_end: 2372
        line_start: 2372
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 2458
      start: 2363
    functionDepth: 13
    functionLinenumber: 2363
    functionLinenumberEnd: 2458
    functionName: symtable_extend_namedexpr_scope
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_lookup_entry
    - symtable_add_def
    - PyList_GET_ITEM
    - symtable_add_def_helper
    - Py_UNREACHABLE
    - symtable_record_directive
    - PyErr_Format
    - assert
    - LOCATION
    - SET_ERROR_LOCATION
    - PyList_GET_SIZE
    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:2465,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2466,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2466,1
    - Dst: symtable_extend_namedexpr_scope
      Src: /src/cpython/Python/symtable.c:2471,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2474,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2460
    functionDepth: 14
    functionLinenumber: 2460
    functionLinenumberEnd: 2477
    functionName: symtable_handle_namedexpr
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - VISIT
    - LOCATION
    - SET_ERROR_LOCATION
    - symtable_extend_namedexpr_scope
    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:2482,1
    - Dst: symtable_raise_if_annotation_block
      Src: /src/cpython/Python/symtable.c:2485,1
    - Dst: symtable_handle_namedexpr
      Src: /src/cpython/Python/symtable.c:2488,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2492,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2495,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2496,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2499,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2503,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:2505,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2506,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:2506,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2507,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2510,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2511,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2512,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2517,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2518,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2519,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:2522,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2523,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2526,1
    - Dst: symtable_visit_genexp
      Src: /src/cpython/Python/symtable.c:2529,1
    - Dst: symtable_visit_listcomp
      Src: /src/cpython/Python/symtable.c:2533,1
    - Dst: symtable_visit_setcomp
      Src: /src/cpython/Python/symtable.c:2537,1
    - Dst: symtable_visit_dictcomp
      Src: /src/cpython/Python/symtable.c:2541,1
    - Dst: symtable_raise_if_annotation_block
      Src: /src/cpython/Python/symtable.c:2545,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2549,1
    - Dst: symtable_raise_if_comprehension_block
      Src: /src/cpython/Python/symtable.c:2552,1
    - Dst: symtable_raise_if_annotation_block
      Src: /src/cpython/Python/symtable.c:2556,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2559,1
    - Dst: symtable_raise_if_comprehension_block
      Src: /src/cpython/Python/symtable.c:2562,1
    - Dst: symtable_raise_if_annotation_block
      Src: /src/cpython/Python/symtable.c:2566,1
    - Dst: allows_top_level_await
      Src: /src/cpython/Python/symtable.c:2569,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:2570,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:2571,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2573,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2573,1
    - Dst: IS_ASYNC_DEF
      Src: /src/cpython/Python/symtable.c:2576,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:2577,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2579,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2579,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2583,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2587,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2588,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2591,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2592,1
    - Dst: check_keywords
      Src: /src/cpython/Python/symtable.c:2593,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/cpython/Python/symtable.c:2596,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2599,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2601,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2604,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2606,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2609,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2612,1
    - Dst: check_name
      Src: /src/cpython/Python/symtable.c:2619,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2619,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2622,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2625,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2626,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2629,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2633,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2635,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2637,1
    - Dst: symtable_add_def_ctx
      Src: /src/cpython/Python/symtable.c:2641,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2643,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/symtable.c:2648,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:2649,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2650,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2650,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2650,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2657,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2660,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2663,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 173
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2479
    functionDepth: 15
    functionLinenumber: 2479
    functionLinenumberEnd: 2665
    functionName: symtable_visit_expr
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - ENTER_RECURSIVE
    - symtable_exit_block
    - VISIT
    - symtable_visit_listcomp
    - SET_ERROR_LOCATION
    - symtable_visit_dictcomp
    - symtable_add_def_ctx
    - check_keywords
    - check_name
    - VISIT_SEQ
    - symtable_visit_setcomp
    - symtable_raise_if_comprehension_block
    - _Py_STR
    - symtable_handle_namedexpr
    - PyErr_SetString
    - symtable_raise_if_annotation_block
    - IS_ASYNC_DEF
    - LOCATION
    - symtable_visit_genexp
    - VISIT_SEQ_WITH_NULL
    - _PyST_IsFunctionLike
    - symtable_add_def
    - allows_top_level_await
    - _PyUnicode_EqualToASCIIString
    - symtable_enter_block
    - LEAVE_RECURSIVE
    - _Py_ID
    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:2672,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2672,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/symtable.c:2674,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/symtable.c:2676,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2677,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:2678,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2678,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2684,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2684,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2689,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2689,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2689,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:2693,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2695,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2697,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: 2692
        line_start: 2692
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 2702
      start: 2667
    functionDepth: 13
    functionLinenumber: 2667
    functionLinenumberEnd: 2702
    functionName: symtable_visit_type_param_bound_or_default
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - symtable_add_def
    - VISIT
    - _PyUnicode_Equal
    - PyUnicode_FromFormat
    - symtable_enter_block
    - symtable_exit_block
    - assert
    - Py_DECREF
    - LOCATION
    - SET_ERROR_LOCATION
    - _Py_ID
    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:2707,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2710,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2710,1
    - Dst: symtable_visit_type_param_bound_or_default
      Src: /src/cpython/Python/symtable.c:2725,1
    - Dst: symtable_visit_type_param_bound_or_default
      Src: /src/cpython/Python/symtable.c:2730,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2736,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2736,1
    - Dst: symtable_visit_type_param_bound_or_default
      Src: /src/cpython/Python/symtable.c:2740,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2746,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2746,1
    - Dst: symtable_visit_type_param_bound_or_default
      Src: /src/cpython/Python/symtable.c:2750,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2756,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - st
    - tp
    argTypes:
    - struct symtable*
    - type_param_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2704
    functionDepth: 14
    functionLinenumber: 2704
    functionLinenumberEnd: 2758
    functionName: symtable_visit_type_param
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_add_def
    - symtable_visit_type_param_bound_or_default
    - ENTER_RECURSIVE
    - LEAVE_RECURSIVE
    - LOCATION
    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:2763,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2766,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2772,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2776,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2776,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2782,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2783,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2785,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2785,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2791,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2792,1
    - Dst: check_kwd_patterns
      Src: /src/cpython/Python/symtable.c:2793,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2796,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2800,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2803,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2803,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2809,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/symtable.c:2812,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - st
    - p
    argTypes:
    - struct symtable*
    - pattern_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2760
    functionDepth: 13
    functionLinenumber: 2760
    functionLinenumberEnd: 2814
    functionName: symtable_visit_pattern
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - symtable_add_def
    - ENTER_RECURSIVE
    - LEAVE_RECURSIVE
    - VISIT
    - check_kwd_patterns
    - LOCATION
    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:2819,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2823,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:2826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - st
    - pos
    argTypes:
    - struct symtable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2816
    functionDepth: 13
    functionLinenumber: 2816
    functionLinenumberEnd: 2828
    functionName: symtable_implicit_arg
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - symtable_add_def
    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:2835,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2836,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2837,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - st
    - args
    argTypes:
    - struct symtable*
    - asdl_arg_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2830
    functionDepth: 13
    functionLinenumber: 2830
    functionLinenumberEnd: 2842
    functionName: symtable_visit_params
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LOCATION
    - asdl_seq_LEN
    - asdl_seq_GET
    - symtable_add_def
    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:2857,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2857,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2857,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2864,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2864,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2865,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:2869,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2873,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2873,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2873,1
    - Dst: symtable_enter_existing_block
      Src: /src/cpython/Python/symtable.c:2879,1
    - Dst: symtable_visit_expr
      Src: /src/cpython/Python/symtable.c:2887,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2891,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - st
    - annotation
    - key
    argTypes:
    - struct symtable*
    - expr_ty
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2844
    functionDepth: 16
    functionLinenumber: 2844
    functionLinenumberEnd: 2895
    functionName: symtable_visit_annotation
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_add_def
    - symtable_enter_block
    - symtable_exit_block
    - symtable_enter_existing_block
    - symtable_visit_expr
    - LOCATION
    - Py_NewRef
    - _Py_ID
    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:2902,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/symtable.c:2903,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - args
    argTypes:
    - struct symtable*
    - asdl_arg_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2897
    functionDepth: 1
    functionLinenumber: 2897
    functionLinenumberEnd: 2911
    functionName: symtable_visit_argannotations
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_argannotations(struct symtable *st, asdl_arg_seq
      *args)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:2919,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2919,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2920,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/symtable.c:2923,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:2923,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2926,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/symtable.c:2926,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2926,1
    - Dst: symtable_visit_argannotations
      Src: /src/cpython/Python/symtable.c:2930,1
    - Dst: symtable_visit_argannotations
      Src: /src/cpython/Python/symtable.c:2932,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2936,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2940,1
    - Dst: symtable_visit_argannotations
      Src: /src/cpython/Python/symtable.c:2942,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2946,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:2948,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    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: 2952
      start: 2913
    functionDepth: 13
    functionLinenumber: 2913
    functionLinenumberEnd: 2952
    functionName: symtable_visit_annotations
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_add_def
    - Py_XSETREF
    - symtable_enter_block
    - symtable_exit_block
    - VISIT
    - LOCATION
    - symtable_visit_argannotations
    - Py_NewRef
    - _Py_ID
    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:2960,1
    - Dst: symtable_visit_params
      Src: /src/cpython/Python/symtable.c:2962,1
    - Dst: symtable_visit_params
      Src: /src/cpython/Python/symtable.c:2964,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2967,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2967,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2972,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2972,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - st
    - a
    argTypes:
    - struct symtable*
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2954
    functionDepth: 14
    functionLinenumber: 2954
    functionLinenumberEnd: 2977
    functionName: symtable_visit_arguments
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LOCATION
    - symtable_visit_params
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: int symtable_visit_arguments(struct symtable *st, arguments_ty a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2984,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:2986,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:2986,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:2988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - st
    - eh
    argTypes:
    - struct symtable*
    - excepthandler_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2980
    functionDepth: 13
    functionLinenumber: 2980
    functionLinenumberEnd: 2990
    functionName: symtable_visit_excepthandler
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - LOCATION
    - VISIT_SEQ
    - symtable_add_def
    - VISIT
    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:2995,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:2997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - st
    - item
    argTypes:
    - struct symtable*
    - withitem_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 3000
    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:3005,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3007,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:3009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - st
    - m
    argTypes:
    - struct symtable*
    - match_case_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 3002
    functionDepth: 1
    functionLinenumber: 3002
    functionLinenumberEnd: 3011
    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:3022,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/symtable.c:3023,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/symtable.c:3025,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3030,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/symtable.c:3032,1
    - Dst: symtable_add_def
      Src: /src/cpython/Python/symtable.c:3033,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3033,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:3034,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:3039,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3040,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:3041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/symtable.c:3044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - st
    - a
    argTypes:
    - struct symtable*
    - alias_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3013
    functionDepth: 13
    functionLinenumber: 3013
    functionLinenumberEnd: 3047
    functionName: symtable_visit_alias
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_add_def
    - PyErr_SetString
    - _PyUnicode_EqualToASCIIString
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - LOCATION
    - SET_ERROR_LOCATION
    - Py_NewRef
    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:3054,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3057,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:3059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - st
    - lc
    argTypes:
    - struct symtable*
    - comprehension_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3064
      start: 3050
    functionDepth: 1
    functionLinenumber: 3050
    functionLinenumberEnd: 3064
    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:3070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - k
    argTypes:
    - struct symtable*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 3067
    functionDepth: 0
    functionLinenumber: 3067
    functionLinenumberEnd: 3072
    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:3082,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3085,1
    - Dst: symtable_enter_block
      Src: /src/cpython/Python/symtable.c:3089,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3089,1
    - Dst: symtable_implicit_arg
      Src: /src/cpython/Python/symtable.c:3111,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:3112,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3117,1
    - Dst: VISIT_SEQ
      Src: /src/cpython/Python/symtable.c:3120,1
    - Dst: VISIT_SEQ_TAIL
      Src: /src/cpython/Python/symtable.c:3121,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3123,1
    - Dst: VISIT
      Src: /src/cpython/Python/symtable.c:3124,1
    - Dst: symtable_exit_block
      Src: /src/cpython/Python/symtable.c:3127,1
    - Dst: IS_ASYNC_DEF
      Src: /src/cpython/Python/symtable.c:3131,1
    - Dst: allows_top_level_await
      Src: /src/cpython/Python/symtable.c:3133,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:3135,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3137,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3137,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: 3144
      start: 3075
    functionDepth: 14
    functionLinenumber: 3075
    functionLinenumberEnd: 3144
    functionName: symtable_handle_comprehension
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - asdl_seq_GET
    - PyErr_SetString
    - IS_ASYNC_DEF
    - allows_top_level_await
    - symtable_enter_block
    - SET_ERROR_LOCATION
    - symtable_exit_block
    - VISIT
    - LOCATION
    - VISIT_SEQ_TAIL
    - symtable_implicit_arg
    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:3149,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:3149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3146
    functionDepth: 15
    functionLinenumber: 3146
    functionLinenumberEnd: 3152
    functionName: symtable_visit_genexp
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - _Py_STR
    - symtable_handle_comprehension
    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:3157,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:3157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3154
    functionDepth: 15
    functionLinenumber: 3154
    functionLinenumberEnd: 3160
    functionName: symtable_visit_listcomp
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - _Py_STR
    - symtable_handle_comprehension
    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:3165,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:3165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3168
      start: 3162
    functionDepth: 15
    functionLinenumber: 3162
    functionLinenumberEnd: 3168
    functionName: symtable_visit_setcomp
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - _Py_STR
    - symtable_handle_comprehension
    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:3173,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/symtable.c:3173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3170
    functionDepth: 15
    functionLinenumber: 3170
    functionLinenumberEnd: 3177
    functionName: symtable_visit_dictcomp
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - _Py_STR
    - symtable_handle_comprehension
    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:3184,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:3187,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:3188,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:3192,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:3193,1
    - Dst: assert
      Src: /src/cpython/Python/symtable.c:3197,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/symtable.c:3198,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3203,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3203,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: 3191
        line_start: 3191
        source_file: /src/cpython/Python/symtable.c
    - condition: (info != NULL)
      pos:
        line_end: 3186
        line_start: 3186
        source_file: /src/cpython/Python/symtable.c
    - condition: (st->st_cur->ste_scope_info == NULL)
      pos:
        line_end: 3196
        line_start: 3196
        source_file: /src/cpython/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 3205
      start: 3179
    functionDepth: 1
    functionLinenumber: 3179
    functionLinenumberEnd: 3205
    functionName: symtable_raise_if_annotation_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - LOCATION
    - SET_ERROR_LOCATION
    - PyErr_Format
    - assert
    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:3210,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3215,1
    - Dst: LOCATION
      Src: /src/cpython/Python/symtable.c:3215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 3207
    functionDepth: 1
    functionLinenumber: 3207
    functionLinenumberEnd: 3217
    functionName: symtable_raise_if_comprehension_block
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - LOCATION
    - SET_ERROR_LOCATION
    - PyErr_SetString
    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:3222,1
    - Dst: SET_ERROR_LOCATION
      Src: /src/cpython/Python/symtable.c:3223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - st
    - msg
    - loc
    argTypes:
    - struct symtable*
    - char*
    - _Py_SourceLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 3219
    functionDepth: 1
    functionLinenumber: 3219
    functionLinenumberEnd: 3227
    functionName: symtable_raise_if_not_coroutine
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - SET_ERROR_LOCATION
    - PyErr_SetString
    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:3237,1
    - Dst: _PyParser_ASTFromString
      Src: /src/cpython/Python/symtable.c:3241,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/symtable.c:3243,1
    - Dst: _PyFuture_FromAST
      Src: /src/cpython/Python/symtable.c:3247,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/symtable.c:3248,1
    - Dst: _PySymtable_Build
      Src: /src/cpython/Python/symtable.c:3252,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/symtable.c:3253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - str
    - filename
    - start
    - flags
    - module
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3229
    functionDepth: 13
    functionLinenumber: 3229
    functionLinenumberEnd: 3255
    functionName: _Py_SymtableStringObjectFlags
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 1
    functionsReached:
    - _PyArena_Free
    - _PySymtable_Build
    - _PyParser_ASTFromString
    - _PyFuture_FromAST
    - _PyArena_New
    linkageType: ''
    returnType: struct symtable
    signature: "struct symtable *\n_Py_SymtableStringObjectFlags(const char *str,
      PyObject *filename,\n                              int start, PyCompilerFlags
      *flags, PyObject *module)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Contains
      Src: /src/cpython/Python/symtable.c:3266,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3271,1
    - Dst: _Py_Mangle
      Src: /src/cpython/Python/symtable.c:3274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - privateobj
    - ste
    - name
    argTypes:
    - PyObject*
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3257
    functionDepth: 6
    functionLinenumber: 3257
    functionLinenumberEnd: 3275
    functionName: _Py_MaybeMangle
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 3
    functionsReached:
    - _Py_Mangle
    - PySet_Contains
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_MaybeMangle(PyObject *privateobj, PySTEntryObject *ste, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/symtable.c:3280,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/symtable.c:3283,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3285,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3286,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3290,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ident
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3277
    functionDepth: 1
    functionLinenumber: 3277
    functionLinenumberEnd: 3296
    functionName: _Py_IsPrivateName
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 2
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    linkageType: ''
    returnType: int
    signature: int _Py_IsPrivateName(PyObject *ident)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/symtable.c:3303,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3304,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3305,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3306,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/symtable.c:3308,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/symtable.c:3309,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3319,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3320,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/symtable.c:3321,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3322,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/symtable.c:3326,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/symtable.c:3330,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/symtable.c:3334,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/symtable.c:3339,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/symtable.c:3344,1
    - Dst: PyUnicodeWriter_WriteSubstring
      Src: /src/cpython/Python/symtable.c:3347,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/symtable.c:3350,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/symtable.c:3353,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/symtable.c:3356,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - privateobj
    - ident
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3358
      start: 3298
    functionDepth: 6
    functionLinenumber: 3298
    functionLinenumberEnd: 3358
    functionName: _Py_Mangle
    functionSourceFile: /src/cpython/Python/symtable.c
    functionUses: 4
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicode_READ_CHAR
    - PyUnicodeWriter_Discard
    - PyErr_SetString
    - PyUnicodeWriter_WriteChar
    - PyUnicode_Check
    - PyUnicode_FindChar
    - PyUnicodeWriter_WriteSubstring
    - PyUnicodeWriter_Finish
    - PyUnicode_GET_LENGTH
    - Py_NewRef
    - PyUnicodeWriter_WriteStr
    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:
    - ENTRY_NEXT
    - _Py_hashtable_t*::compare_func
    - _Py_hashtable_t*::hash_func
    - TABLE_HEAD
    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:
    - ENTRY_NEXT
    - _Py_hashtable_hash_ptr
    - TABLE_HEAD
    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:
    - TABLE_HEAD
    - hashtable_rehash
    - ENTRY_NEXT
    - _Py_slist_remove
    - _Py_hashtable_t*::compare_func
    - _Py_hashtable_t*::hash_func
    - _Py_hashtable_t*::alloc::free
    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: 11
    functionsReached:
    - _Py_hashtable_t*::get_entry_func
    - hashtable_rehash
    - _Py_slist_prepend
    - assert
    - _Py_hashtable_t*::alloc::malloc
    - _Py_hashtable_t*::hash_func
    - _Py_hashtable_t*::alloc::free
    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: 10
    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:
    - ENTRY_NEXT
    - TABLE_HEAD
    - func
    linkageType: ''
    returnType: int
    signature: "int _Py_hashtable_foreach(_Py_hashtable_t *ht,\n                      _Py_hashtable_foreach_func
      func,\n                      void *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:
    - round_size
    - _Py_slist_prepend
    - BUCKETS_HEAD
    - ENTRY_NEXT
    - memset
    - assert
    - _Py_hashtable_t*::alloc::malloc
    - _Py_hashtable_t*::hash_func
    - _Py_hashtable_t*::alloc::free
    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: 8
    functionsReached:
    - _Py_hashtable_allocator_t::free
    - memset
    - _Py_hashtable_allocator_t::malloc
    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*::key_destroy_func
    - _Py_hashtable_t*::alloc::free
    - _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:
    - TABLE_HEAD
    - hashtable_rehash
    - ENTRY_NEXT
    - _Py_hashtable_destroy_entry
    - _Py_slist_init
    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:
    - ENTRY_NEXT
    - _Py_hashtable_t*::alloc::free
    - _Py_hashtable_destroy_entry
    - TABLE_HEAD
    linkageType: ''
    returnType: void
    signature: void _Py_hashtable_destroy(_Py_hashtable_t *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - ty
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: TRY_RETURN_CALL
    functionSourceFile: /src/cpython/Python/emscripten_trampoline_inner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_RETURN_CALL(ty, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: export_name
      Src: /src/cpython/Python/emscripten_trampoline_inner.c:24,1
    - Dst: TRY_RETURN_CALL
      Src: /src/cpython/Python/emscripten_trampoline_inner.c:32,1
    - Dst: TRY_RETURN_CALL
      Src: /src/cpython/Python/emscripten_trampoline_inner.c:33,1
    - Dst: TRY_RETURN_CALL
      Src: /src/cpython/Python/emscripten_trampoline_inner.c:34,1
    - Dst: TRY_RETURN_CALL
      Src: /src/cpython/Python/emscripten_trampoline_inner.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - success
    - func
    - self
    - args
    - kw
    argTypes:
    - int*
    - void*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: trampoline_call
    functionSourceFile: /src/cpython/Python/emscripten_trampoline_inner.c
    functionUses: 2
    functionsReached:
    - TRY_RETURN_CALL
    - export_name
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntrampoline_call(int* success,\n                void* func,\n
      \               PyObject* self,\n                PyObject* args,\n                PyObject*
      kw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src
    - dst
    - len
    argTypes:
    - unsigned char*
    - Py_UCS1*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 22
    functionName: _Py_hexlify_scalar
    functionSourceFile: /src/cpython/Python/pystrhex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_hexlify_scalar(const unsigned char *src, Py_UCS1 *dst, Py_ssize_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: v16u8_splat
    functionSourceFile: /src/cpython/Python/pystrhex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: v16u8
    signature: v16u8 v16u8_splat(unsigned char x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: v16s8_splat
    functionSourceFile: /src/cpython/Python/pystrhex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: v16s8
    signature: v16s8 v16s8_splat(signed char x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: v16u8_splat
      Src: /src/cpython/Python/pystrhex.c:67,1
    - Dst: v16u8_splat
      Src: /src/cpython/Python/pystrhex.c:68,1
    - Dst: v16u8_splat
      Src: /src/cpython/Python/pystrhex.c:69,1
    - Dst: v16u8_splat
      Src: /src/cpython/Python/pystrhex.c:70,1
    - Dst: v16s8_splat
      Src: /src/cpython/Python/pystrhex.c:71,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystrhex.c:79,1
    - Dst: __builtin_shufflevector
      Src: /src/cpython/Python/pystrhex.c:99,1
    - Dst: __builtin_shufflevector
      Src: /src/cpython/Python/pystrhex.c:101,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystrhex.c:105,1
    - Dst: memcpy
      Src: /src/cpython/Python/pystrhex.c:106,1
    - Dst: _Py_hexlify_scalar
      Src: /src/cpython/Python/pystrhex.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src
    - dst
    - len
    argTypes:
    - unsigned char*
    - Py_UCS1*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 111
    functionName: _Py_hexlify_simd
    functionSourceFile: /src/cpython/Python/pystrhex.c
    functionUses: 0
    functionsReached:
    - __builtin_shufflevector
    - v16s8_splat
    - _Py_hexlify_scalar
    - memcpy
    - v16u8_splat
    linkageType: ''
    returnType: void
    signature: void _Py_hexlify_simd(const unsigned char *src, Py_UCS1 *dst, Py_ssize_t
      len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:120,1
    - Dst: PyObject_Length
      Src: /src/cpython/Python/pystrhex.c:124,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystrhex.c:129,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pystrhex.c:132,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/pystrhex.c:133,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystrhex.c:134,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/pystrhex.c:137,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/pystrhex.c:139,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/pystrhex.c:140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystrhex.c:143,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pystrhex.c:147,1
    - Dst: _Py_ABS_CAST
      Src: /src/cpython/Python/pystrhex.c:154,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/pystrhex.c:162,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/pystrhex.c:175,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/pystrhex.c:179,1
    - Dst: PyUnicode_New
      Src: /src/cpython/Python/pystrhex.c:182,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/pystrhex.c:186,1
    - Dst: _Py_hexlify_simd
      Src: /src/cpython/Python/pystrhex.c:196,1
    - Dst: _Py_hexlify_scalar
      Src: /src/cpython/Python/pystrhex.c:201,1
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:225,1
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:243,1
    - Dst: assert
      Src: /src/cpython/Python/pystrhex.c:249,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/cpython/Python/pystrhex.c:249,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 100
    argCount: 5
    argNames:
    - argbuf
    - arglen
    - sep
    - bytes_per_sep_group
    - return_bytes
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (j == -1)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/cpython/Python/pystrhex.c
    - condition: (_PyUnicode_CheckConsistency(retval, 1))
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/cpython/Python/pystrhex.c
    - condition: (j == resultlen)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/cpython/Python/pystrhex.c
    - condition: (arglen >= 0)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Python/pystrhex.c
    constantsTouched: []
    func_position:
      end: 254
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 254
    functionName: _Py_strhex_impl
    functionSourceFile: /src/cpython/Python/pystrhex.c
    functionUses: 0
    functionsReached:
    - PyUnicode_1BYTE_DATA
    - PyUnicode_READ_CHAR
    - PyUnicode_KIND
    - PyBytes_AS_STRING
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - PyErr_SetString
    - _PyUnicode_CheckConsistency
    - PyUnicode_Check
    - _Py_hexlify_simd
    - _Py_hexlify_scalar
    - PyObject_Length
    - PyUnicode_New
    - assert
    - _Py_ABS_CAST
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_strhex_impl(const char* argbuf, Py_ssize_t arglen,\n
      \               PyObject* sep, Py_ssize_t bytes_per_sep_group,\n                int
      return_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/cpython/Python/pystrhex.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argbuf
    - arglen
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 5
    functionLinenumber: 256
    functionLinenumberEnd: 259
    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, Py_ssize_t arglen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/cpython/Python/pystrhex.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argbuf
    - arglen
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 266
    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, Py_ssize_t arglen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/cpython/Python/pystrhex.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argbuf
    - arglen
    - sep
    - bytes_per_group
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 5
    functionLinenumber: 270
    functionLinenumberEnd: 274
    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, Py_ssize_t arglen,\n
      \                             PyObject* sep, Py_ssize_t bytes_per_group)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/cpython/Python/pystrhex.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argbuf
    - arglen
    - sep
    - bytes_per_group
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 282
    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, Py_ssize_t
      arglen,\n                                    PyObject* sep, Py_ssize_t 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:
    - GetEnvironmentVariableA
    - getenv
    - strcmp
    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:
    - case_insensitive_match
    - fabs
    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:
    - strncmp
    - PyMem_Malloc
    - _Py_parse_inf_or_nan
    - Py_ISDIGIT
    - memcpy
    - strlen
    - assert
    - strtod
    - PyMem_Free
    - localeconv
    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:
    - PyErr_Format
    - fabs
    - _PyOS_ascii_strtod
    - PyErr_NoMemory
    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:
    - PyErr_NoMemory
    - assert
    - innerfunc
    - strchr
    - PyMem_Free
    - PyMem_Malloc
    - PyErr_Format
    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
    - memmove
    - Py_ISDIGIT
    - strlen
    - localeconv
    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:
    - memmove
    - strpbrk
    - Py_ISDIGIT
    - memset
    - 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: (p <= buf_size+buffer)
      pos:
        line_end: 634
        line_start: 634
        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
    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:
    - Py_SAFE_DOWNCAST
    - memmove
    - Py_ISDIGIT
    - memcpy
    - strlen
    - assert
    - remove_trailing_zeros
    - PyOS_snprintf
    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:
    - change_decimal_from_locale_to_dot
    - strcpy
    - strpbrk
    - ensure_decimal_point
    - ensure_minimum_exponent_length
    - strlen
    - PyOS_snprintf
    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: 9
    functionsReached:
    - frexp
    - PyErr_NoMemory
    - strcpy
    - assert
    - copysign
    - fabs
    - memmove
    - isinf
    - Py_TOUPPER
    - PyErr_BadInternalCall
    - isnan
    - _PyOS_ascii_formatd
    - PyMem_Malloc
    - strlen
    - PyOS_snprintf
    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:
    - PyErr_NoMemory
    - _Py_dg_freedtoa
    - assert
    - strncpy
    - Py_UNREACHABLE
    - PyErr_BadInternalCall
    - Py_ISDIGIT
    - memset
    - PyMem_Malloc
    - _Py_dg_dtoa
    - sprintf
    linkageType: ''
    returnType: char
    signature: "char *\nformat_float_short(double d, char format_code,\n                   int
      mode, int precision,\n                   int always_add_sign, int add_dot_0_if_integer,\n
      \                  int use_alt_formatting, 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: 9
    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: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: untag_critical_section
      Src: /src/cpython/Python/critical_section.c:30,1
    - Dst: untag_critical_section
      Src: /src/cpython/Python/critical_section.c:38,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - tstate
    - c
    - m
    argTypes:
    - PyThreadState*
    - PyCriticalSection*
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 62
    functionName: _PyCriticalSection_BeginSlow
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    - untag_critical_section
    linkageType: ''
    returnType: void
    signature: void _PyCriticalSection_BeginSlow(PyThreadState *tstate, PyCriticalSection
      *c, PyMutex *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:81,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - tstate
    - c
    - m1
    - m2
    - is_m1_locked
    argTypes:
    - PyThreadState*
    - PyCriticalSection2*
    - PyMutex*
    - PyMutex*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 87
    functionName: _PyCriticalSection2_BeginSlow
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 0
    functionsReached:
    - PyMutex_Lock
    linkageType: ''
    returnType: void
    signature: "void _PyCriticalSection2_BeginSlow(PyThreadState *tstate, 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:97,1
    - Dst: untag_critical_section
      Src: /src/cpython/Python/critical_section.c:98,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/critical_section.c:101,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/critical_section.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 114
    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:121,1
    - Dst: assert
      Src: /src/cpython/Python/critical_section.c:122,1
    - Dst: _PyCriticalSection_IsActive
      Src: /src/cpython/Python/critical_section.c:122,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:136,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/critical_section.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (!_PyCriticalSection_IsActive(p))
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Python/critical_section.c
    constantsTouched: []
    func_position:
      end: 149
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 149
    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:156,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/critical_section.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - op
    argTypes:
    - PyCriticalSection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: PyCriticalSection_Begin
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 3
    functionsReached:
    - _PyThreadState_GET
    - _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:165,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/critical_section.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - PyCriticalSection*
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: PyCriticalSection_BeginMutex
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyCriticalSection_BeginMutex
    - _PyThreadState_GET
    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:174,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/critical_section.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - PyCriticalSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: PyCriticalSection_End
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 3
    functionsReached:
    - _PyThreadState_GET
    - _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:183,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/critical_section.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - a
    - b
    argTypes:
    - PyCriticalSection2*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: PyCriticalSection2_Begin
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 2
    functionsReached:
    - _PyCriticalSection2_Begin
    - _PyThreadState_GET
    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:192,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/critical_section.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - m1
    - m2
    argTypes:
    - PyCriticalSection2*
    - PyMutex*
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: PyCriticalSection2_BeginMutex
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _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:201,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/critical_section.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - PyCriticalSection2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: PyCriticalSection2_End
    functionSourceFile: /src/cpython/Python/critical_section.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 69
    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:
    - fprintf
    - wcschr
    - wcscmp
    linkageType: ''
    returnType: int
    signature: int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    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:118,1
    - Dst: PyList_New
      Src: /src/cpython/Python/compile.c:123,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:128,1
    - Dst: _PyFuture_FromAST
      Src: /src/cpython/Python/compile.c:129,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/compile.c:132,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/compile.c:140,1
    - Dst: _PyAST_Preprocess
      Src: /src/cpython/Python/compile.c:143,1
    - Dst: _PySymtable_Build
      Src: /src/cpython/Python/compile.c:148,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:150,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/compile.c:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 7
    argNames:
    - c
    - mod
    - filename
    - flags
    - optimize
    - arena
    - module
    argTypes:
    - compiler*
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 111
    functionDepth: 13
    functionLinenumber: 111
    functionLinenumberEnd: 156
    functionName: compiler_setup
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyAST_Preprocess
    - PyErr_SetString
    - _PySymtable_Build
    - _PyFuture_FromAST
    - PyList_New
    - PyErr_Occurred
    - _Py_GetConfig
    - Py_XNewRef
    - Py_NewRef
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: "int compiler_setup(compiler *c, mod_ty mod, PyObject *filename,\n
      \              PyCompilerFlags *flags, int optimize, PyArena *arena,\n               PyObject
      *module)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySymtable_Free
      Src: /src/cpython/Python/compile.c:162,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:164,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:165,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:166,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:167,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/compile.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: compiler_free
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - _PySymtable_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void compiler_free(compiler *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Calloc
      Src: /src/cpython/Python/compile.c:175,1
    - Dst: compiler_setup
      Src: /src/cpython/Python/compile.c:179,1
    - Dst: compiler_free
      Src: /src/cpython/Python/compile.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - mod
    - filename
    - pflags
    - optimize
    - arena
    - module
    argTypes:
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 14
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: new_compiler
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_free
    - PyMem_Calloc
    - compiler_setup
    linkageType: ''
    returnType: compiler
    signature: "compiler *\nnew_compiler(mod_ty mod, PyObject *filename, PyCompilerFlags
      *pflags,\n             int optimize, PyArena *arena, PyObject *module)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - 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: Py_CLEAR
      Src: /src/cpython/Python/compile.c:196,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:197,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:198,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:199,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:200,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:201,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:202,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:203,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/compile.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - u
    argTypes:
    - struct compiler_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 205
    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:212,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/compile.c:216,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:220,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:222,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Python/compile.c:223,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:225,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:227,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:228,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/compile.c:228,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: 211
        line_start: 211
        source_file: /src/cpython/Python/compile.c
    - condition: (u)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_static_attributes)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 233
      start: 209
    functionDepth: 8
    functionLinenumber: 209
    functionLinenumberEnd: 233
    functionName: _PyCompile_MaybeAddStaticAttributeToClass
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PySet_Add
    - PyCapsule_GetPointer
    - PyList_GET_ITEM
    - _PyUnicode_EqualToASCIIString
    - assert
    - RETURN_IF_ERROR
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int _PyCompile_MaybeAddStaticAttributeToClass(compiler *c, expr_ty
      e)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:243,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:244,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:250,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Python/compile.c:251,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:252,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:259,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:262,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Python/compile.c:263,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:264,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:270,1
    - Dst: _Py_Mangle
      Src: /src/cpython/Python/compile.c:271,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/compile.c:276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:277,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:278,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:279,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/compile.c:289,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/compile.c:290,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/compile.c:291,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:297,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/compile.c:302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:305,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:312,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/compile.c:316,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/compile.c:316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:317,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Python/compile.c:321,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:327,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (u->u_metadata.u_name)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/cpython/Python/compile.c
    - condition: (parent)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/cpython/Python/compile.c
    - condition: (parent)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/cpython/Python/compile.c
    - condition: (scope != GLOBAL_IMPLICIT)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/cpython/Python/compile.c
    - condition: (stack_size >= 1)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 332
      start: 235
    functionDepth: 10
    functionLinenumber: 235
    functionLinenumberEnd: 332
    functionName: compiler_set_qualname
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _Py_Mangle
    - _Py_STR
    - _Py_DECLARE_STR
    - PyCapsule_GetPointer
    - PyList_GET_ITEM
    - PyUnicode_FromFormat
    - _PyST_GetScope
    - _Py_LATIN1_CHR
    - PyUnicode_Append
    - assert
    - Py_DECREF
    - RETURN_IF_ERROR
    - PyList_GET_SIZE
    - Py_NewRef
    - PyUnicode_Concat
    linkageType: ''
    returnType: int
    signature: int compiler_set_qualname(compiler *c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:340,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/compile.c:340,1
    - Dst: _PyCode_ConstantKey
      Src: /src/cpython/Python/compile.c:347,1
    - Dst: PyDict_SetDefaultRef
      Src: /src/cpython/Python/compile.c:353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:360,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:369,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/compile.c:370,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:372,1
    - Dst: const_cache_insert
      Src: /src/cpython/Python/compile.c:373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:375,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:381,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:382,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/compile.c:388,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:388,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:392,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/compile.c:395,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:399,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:399,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:400,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/compile.c:400,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Python/compile.c:402,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/compile.c:406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:408,1
    - Dst: _PySet_NextEntry
      Src: /src/cpython/Python/compile.c:414,1
    - Dst: const_cache_insert
      Src: /src/cpython/Python/compile.c:415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:417,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:418,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:422,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:423,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:424,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/compile.c:429,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Python/compile.c:435,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:436,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:438,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:441,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:442,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/compile.c:443,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 3
    argNames:
    - const_cache
    - o
    - recursive
    argTypes:
    - PyObject*
    - PyObject*
    - bool
    assertStmts:
    - condition: (PyTuple_CheckExact(key))
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/cpython/Python/compile.c
    - condition: (PyTuple_GET_ITEM(key, 1) == o)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/cpython/Python/compile.c
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/cpython/Python/compile.c
    - condition: (PyTuple_GET_SIZE(key) == 2)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 447
      start: 337
    functionDepth: 14
    functionLinenumber: 337
    functionLinenumberEnd: 447
    functionName: const_cache_insert
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyDict_SetDefaultRef
    - PyTuple_GET_ITEM
    - PyFrozenSet_New
    - PyFrozenSet_CheckExact
    - const_cache_insert
    - PySet_GET_SIZE
    - _PySet_NextEntry
    - PyTuple_SET_ITEM
    - _PyCode_ConstantKey
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - Py_NewRef
    - PyTuple_New
    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:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - const_cache
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 15
    functionLinenumber: 449
    functionLinenumberEnd: 453
    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:461,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/compile.c:465,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/compile.c:466,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:471,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - dict
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 455
    functionDepth: 10
    functionLinenumber: 455
    functionLinenumberEnd: 479
    functionName: _PyCompile_DictAddObj
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 2
    functionsReached:
    - PyDict_GET_SIZE
    - PyDict_SetItem
    - PyLong_FromSsize_t
    - PyLong_AsLong
    - Py_DECREF
    - 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:484,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - o
    argTypes:
    - compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 481
    functionDepth: 16
    functionLinenumber: 481
    functionLinenumberEnd: 492
    functionName: _PyCompile_AddConst
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _PyCompile_DictAddObj
    - merge_consts_recursive
    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:499,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/compile.c:502,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/compile.c:504,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:506,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:509,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:512,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 494
    functionDepth: 11
    functionLinenumber: 494
    functionLinenumberEnd: 518
    functionName: list2dict
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - PyDict_SetItem
    - PyLong_FromSsize_t
    - PyList_Size
    - Py_DECREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list2dict(PyObject *list)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:532,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:535,1
    - Dst: PyDict_Keys
      Src: /src/cpython/Python/compile.c:544,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:546,1
    - Dst: PyList_Sort
      Src: /src/cpython/Python/compile.c:549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:551,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:554,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:557,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/compile.c:558,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:560,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/compile.c:561,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:564,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:567,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:570,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/compile.c:573,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/compile.c:574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:577,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:590,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: 534
        line_start: 534
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 592
      start: 528
    functionDepth: 11
    functionLinenumber: 528
    functionLinenumberEnd: 592
    functionName: dictbytype
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyDict_Keys
    - PyErr_SetObject
    - PyList_GET_ITEM
    - PyDict_SetItem
    - SYMBOL_TO_SCOPE
    - PyLong_AsLong
    - PyLong_FromSsize_t
    - PyList_Sort
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    - PyDict_GetItemWithError
    - PyDict_New
    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:600,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/compile.c:602,1
    - Dst: _PySymtable_Lookup
      Src: /src/cpython/Python/compile.c:614,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:616,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:619,1
    - Dst: list2dict
      Src: /src/cpython/Python/compile.c:620,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:622,1
    - Dst: dictbytype
      Src: /src/cpython/Python/compile.c:625,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:627,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:633,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:634,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/compile.c:634,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:636,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:643,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:644,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/compile.c:644,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:646,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:653,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:654,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/compile.c:654,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:656,1
    - Dst: dictbytype
      Src: /src/cpython/Python/compile.c:661,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/compile.c:662,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:664,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:668,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:670,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:677,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:679,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:682,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:684,1
    - Dst: PySet_New
      Src: /src/cpython/Python/compile.c:692,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:694,1
    - Dst: _PyInstructionSequence_New
      Src: /src/cpython/Python/compile.c:702,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:704,1
    - Dst: PyCapsule_New
      Src: /src/cpython/Python/compile.c:711,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/compile.c:712,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:713,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:717,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/compile.c:723,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:727,1
    - Dst: compiler_set_qualname
      Src: /src/cpython/Python/compile.c:727,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: 652
        line_start: 652
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_scope_type == COMPILE_SCOPE_CLASS)
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_scope_type == COMPILE_SCOPE_CLASS)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 730
      start: 594
    functionDepth: 13
    functionLinenumber: 594
    functionLinenumberEnd: 730
    functionName: _PyCompile_EnterScope
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _PySymtable_Lookup
    - compiler_unit_free
    - assert
    - RETURN_IF_ERROR
    - Py_XNewRef
    - _PyInstructionSequence_New
    - PyErr_NoMemory
    - PyCapsule_New
    - dictbytype
    - Py_XDECREF
    - PyList_Append
    - PyDict_GET_SIZE
    - list2dict
    - PyMem_Calloc
    - PySet_New
    - Py_DECREF
    - Py_NewRef
    - PyDict_New
    - _PyCompile_DictAddObj
    - compiler_set_qualname
    - _Py_ID
    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:736,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/compile.c:741,1
    - Dst: compiler_unit_free
      Src: /src/cpython/Python/compile.c:743,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:745,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/compile.c:747,1
    - Dst: PyCapsule_GetPointer
      Src: /src/cpython/Python/compile.c:748,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:749,1
    - Dst: PySequence_DelItem
      Src: /src/cpython/Python/compile.c:751,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/compile.c:752,1
    - Dst: _PyInstructionSequence_AddNested
      Src: /src/cpython/Python/compile.c:756,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/compile.c:757,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:765,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/compile.c:767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (c->u)
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 768
      start: 732
    functionDepth: 5
    functionLinenumber: 732
    functionLinenumberEnd: 768
    functionName: _PyCompile_ExitScope
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 11
    functionsReached:
    - Py_INCREF
    - compiler_unit_free
    - _PyInstructionSequence_AddNested
    - PyList_GET_ITEM
    - PyCapsule_GetPointer
    - PySequence_DelItem
    - PyErr_SetRaisedException
    - Py_XDECREF
    - assert
    - PyErr_GetRaisedException
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void _PyCompile_ExitScope(compiler *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyCompile_Error
      Src: /src/cpython/Python/compile.c:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    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: 793
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 793
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:799,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:801,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:802,1
    - Dst: SAME_JUMP_TARGET_LABEL
      Src: /src/cpython/Python/compile.c:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - c
    - t
    - block_label
    argTypes:
    - compiler*
    - fblocktype
    - jump_target_label
    assertStmts:
    - condition: (u->u_nfblocks > 0)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/cpython/Python/compile.c
    - condition: (u->u_fblock[u->u_nfblocks].fb_type == t)
      pos:
        line_end: 800
        line_start: 800
        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: 801
        line_start: 801
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 806
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 806
    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: 815
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 815
    functionName: _PyCompile_TopFBlock
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fblockinfo
    signature: 'fblockinfo *

      _PyCompile_TopFBlock(compiler *c)'
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 835
    functionName: _PyCompile_InExceptionHandler
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _PyCompile_InExceptionHandler(compiler *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/compile.c:842,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/compile.c:843,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: 844
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 844
    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:849,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/compile.c:855,1
    - Dst: SRC_LOCATION_FROM_AST
      Src: /src/cpython/Python/compile.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stmts
    argTypes:
    - asdl_stmt_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 859
    functionName: start_location
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - SRC_LOCATION_FROM_AST
    - 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:864,1
    - Dst: _PyCodegen_EnterAnonymousScope
      Src: /src/cpython/Python/compile.c:864,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:865,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:869,1
    - Dst: _PyCodegen_Module
      Src: /src/cpython/Python/compile.c:869,1
    - Dst: start_location
      Src: /src/cpython/Python/compile.c:869,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:875,1
    - Dst: _PyCodegen_Module
      Src: /src/cpython/Python/compile.c:875,1
    - Dst: start_location
      Src: /src/cpython/Python/compile.c:875,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:879,1
    - Dst: _PyCodegen_Expression
      Src: /src/cpython/Python/compile.c:879,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/compile.c:883,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: 864
        line_start: 864
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 889
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 889
    functionName: compiler_codegen
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyCodegen_Module
    - start_location
    - _PyCodegen_Expression
    - assert
    - PyErr_Format
    - RETURN_IF_ERROR
    - _PyCodegen_EnterAnonymousScope
    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:896,1
    - Dst: _PyCompile_OptimizeAndAssemble
      Src: /src/cpython/Python/compile.c:899,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/compile.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - mod
    argTypes:
    - compiler*
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 891
    functionDepth: 6
    functionLinenumber: 891
    functionLinenumberEnd: 903
    functionName: compiler_mod
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ExitScope
    - compiler_codegen
    - _PyCompile_OptimizeAndAssemble
    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:909,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/compile.c:910,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/compile.c:911,1
    - Dst: _PyST_GetScope
      Src: /src/cpython/Python/compile.c:915,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/compile.c:917,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 905
    functionDepth: 10
    functionLinenumber: 905
    functionLinenumberEnd: 929
    functionName: _PyCompile_GetRefType
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 2
    functionsReached:
    - _PyST_GetScope
    - PyErr_Format
    - _PyUnicode_EqualToASCIIString
    linkageType: ''
    returnType: int
    signature: int _PyCompile_GetRefType(compiler *c, PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/compile.c:934,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dict
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 931
    functionDepth: 7
    functionLinenumber: 931
    functionLinenumberEnd: 939
    functionName: dict_lookup_arg
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyDict_GetItemWithError
    linkageType: ''
    returnType: int
    signature: int dict_lookup_arg(PyObject *dict, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:944,1
    - Dst: dict_lookup_arg
      Src: /src/cpython/Python/compile.c:945,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: 943
        line_start: 943
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 946
      start: 941
    functionDepth: 8
    functionLinenumber: 941
    functionLinenumberEnd: 946
    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:957,1
    - Dst: dict_lookup_arg
      Src: /src/cpython/Python/compile.c:963,1
    - Dst: dict_lookup_arg
      Src: /src/cpython/Python/compile.c:966,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:968,1
    - Dst: _PyCode_GetFreevars
      Src: /src/cpython/Python/compile.c:969,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/compile.c:971,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/compile.c:973,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:981,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - c
    - co
    - name
    argTypes:
    - compiler*
    - PyCodeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 948
    functionDepth: 11
    functionLinenumber: 948
    functionLinenumberEnd: 985
    functionName: _PyCompile_LookupArg
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - dict_lookup_arg
    - _PyCode_GetFreevars
    - PyErr_Clear
    - PyErr_Occurred
    - PyErr_Format
    - Py_XDECREF
    - _PyCompile_GetRefType
    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:990,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/compile.c:991,1
    - Dst: PyList_Sort
      Src: /src/cpython/Python/compile.c:995,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:996,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/compile.c:999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (c->u->u_static_attributes)
      pos:
        line_end: 989
        line_start: 989
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1002
      start: 987
    functionDepth: 10
    functionLinenumber: 987
    functionLinenumberEnd: 1002
    functionName: _PyCompile_StaticAttributesAsTuple
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PySequence_Tuple
    - PySequence_List
    - PyList_Sort
    - assert
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_StaticAttributesAsTuple(compiler *c)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1011,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/compile.c:1022,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1027,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/compile.c:1027,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1032,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/compile.c:1036,1
    - Dst: _PyCompile_DictAddObj
      Src: /src/cpython/Python/compile.c:1048,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1049,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: 1010
        line_start: 1010
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1052
      start: 1004
    functionDepth: 11
    functionLinenumber: 1004
    functionLinenumberEnd: 1052
    functionName: _PyCompile_ResolveNameop
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _PyCompile_DictAddObj
    - PyDict_GetItemRef
    - Py_XDECREF
    - assert
    - RETURN_IF_ERROR
    - _PyST_IsFunctionLike
    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:1064,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:1065,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1066,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:1066,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1067,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/compile.c:1068,1
    - Dst: _PyST_GetSymbol
      Src: /src/cpython/Python/compile.c:1070,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1071,1
    - Dst: SYMBOL_TO_SCOPE
      Src: /src/cpython/Python/compile.c:1072,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:1085,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1093,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/compile.c:1096,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1101,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1102,1
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/compile.c:1107,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/compile.c:1110,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1113,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1115,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1116,1
    - Dst: PySet_New
      Src: /src/cpython/Python/compile.c:1120,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1122,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/compile.c:1126,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1127,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1131,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 4
    argNames:
    - c
    - loc
    - entry
    - state
    argTypes:
    - compiler*
    - location
    - PySTEntryObject*
    - _PyCompile_InlinedComprehensionState*
    assertStmts:
    - condition: (symbol >= 0 || PyErr_Occurred())
      pos:
        line_end: 1065
        line_start: 1065
        source_file: /src/cpython/Python/compile.c
    - condition: (orig == NULL || orig == Py_True || orig == Py_False)
      pos:
        line_end: 1112
        line_start: 1112
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1136
      start: 1054
    functionDepth: 13
    functionLinenumber: 1054
    functionLinenumberEnd: 1136
    functionName: _PyCompile_TweakInlinedComprehensionScopes
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _PyST_GetSymbol
    - PyLong_FromLong
    - PySet_Add
    - PyDict_Next
    - PyDict_SetItem
    - PySet_New
    - SYMBOL_TO_SCOPE
    - PyLong_AsLong
    - PyDict_GetItemRef
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - RETURN_IF_ERROR
    - Py_XDECREF
    - _PyST_IsFunctionLike
    - PyDict_New
    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:1146,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1147,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:1151,1
    - Dst: PySet_Size
      Src: /src/cpython/Python/compile.c:1154,1
    - Dst: PySet_Pop
      Src: /src/cpython/Python/compile.c:1155,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/compile.c:1161,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1165,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/compile.c:1167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - c
    - loc
    - state
    argTypes:
    - compiler*
    - location
    - _PyCompile_InlinedComprehensionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1138
    functionDepth: 10
    functionLinenumber: 1138
    functionLinenumberEnd: 1170
    functionName: _PyCompile_RevertInlinedComprehensionScopes
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PySet_Pop
    - PySet_Size
    - PyDict_Next
    - PyDict_SetItem
    - Py_CLEAR
    - Py_DECREF
    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: 1176
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1176
    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:1181,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: 1180
        line_start: 1180
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1183
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1183
    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:1190,1
    - Dst: PyList_New
      Src: /src/cpython/Python/compile.c:1196,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/cpython/Python/compile.c:1201,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/compile.c:1205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1209,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/compile.c:1212,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:1216,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/compile.c:1220,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/compile.c:1225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1226,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/compile.c:1227,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: 1229
      start: 1185
    functionDepth: 4
    functionLinenumber: 1185
    functionLinenumberEnd: 1229
    functionName: _PyCompile_AddDeferredAnnotation
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - PyList_New
    - PyList_Append
    - Py_DECREF
    - RETURN_IF_ERROR
    - Py_NewRef
    - PyLong_FromVoidPtr
    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:1238,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/compile.c:1239,1
    - Dst: va_end
      Src: /src/cpython/Python/compile.c:1240,1
    - Dst: _PyErr_RaiseSyntaxError
      Src: /src/cpython/Python/compile.c:1244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - c
    - loc
    - format
    argTypes:
    - compiler*
    - location
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1234
    functionDepth: 9
    functionLinenumber: 1234
    functionLinenumberEnd: 1248
    functionName: _PyCompile_Error
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 23
    functionsReached:
    - PyUnicode_FromFormatV
    - va_start
    - va_end
    - _PyErr_RaiseSyntaxError
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _PyCompile_Error(compiler *c, location loc, const char *format,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/compile.c:1261,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/compile.c:1262,1
    - Dst: va_end
      Src: /src/cpython/Python/compile.c:1263,1
    - Dst: _PyErr_EmitSyntaxWarning
      Src: /src/cpython/Python/compile.c:1267,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - c
    - loc
    - format
    argTypes:
    - compiler*
    - location
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1254
    functionDepth: 9
    functionLinenumber: 1254
    functionLinenumberEnd: 1272
    functionName: _PyCompile_Warn
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 5
    functionsReached:
    - _PyErr_EmitSyntaxWarning
    - PyUnicode_FromFormatV
    - va_start
    - va_end
    - Py_DECREF
    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:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1274
    functionDepth: 7
    functionLinenumber: 1274
    functionLinenumberEnd: 1278
    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:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1280
    functionDepth: 7
    functionLinenumber: 1280
    functionLinenumberEnd: 1284
    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: 1290
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1290
    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:1295,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1299,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: 1298
        line_start: 1298
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1303
      start: 1292
    functionDepth: 3
    functionLinenumber: 1292
    functionLinenumberEnd: 1303
    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:1308,1
    - Dst: _PyInstructionSequence_SetAnnotationsCode
      Src: /src/cpython/Python/compile.c:1313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1314,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: 1307
        line_start: 1307
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1318
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1318
    functionName: _PyCompile_EndAnnotationSetup
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyInstructionSequence_SetAnnotationsCode
    - 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: 1325
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1325
    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: 1331
      start: 1327
    functionDepth: 0
    functionLinenumber: 1327
    functionLinenumberEnd: 1331
    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: 1337
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1337
    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: 1343
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1343
    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:1348,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1349,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/compile.c:1349,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:1350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (c->c_stack != NULL)
      pos:
        line_end: 1347
        line_start: 1347
        source_file: /src/cpython/Python/compile.c
    - condition: (PyList_CheckExact(c->c_stack))
      pos:
        line_end: 1348
        line_start: 1348
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1352
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1352
    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: 1358
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1358
    functionName: _PyCompile_ScopeType
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 3
    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: 1364
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1364
    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:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts:
    - condition: (c->u->u_metadata.u_qualname)
      pos:
        line_end: 1368
        line_start: 1368
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1371
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1371
    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: 1377
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1377
    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:1383,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:1387,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:1388,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/compile.c:1389,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:1389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1390,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/compile.c:1393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - const_cache
    - obj
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1380
    functionDepth: 15
    functionLinenumber: 1380
    functionLinenumberEnd: 1396
    functionName: _PyCompile_ConstCacheMergeOne
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_CheckExact
    - Py_SETREF
    - Py_DECREF
    - const_cache_insert
    - Py_NewRef
    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:1402,1
    - Dst: PyList_New
      Src: /src/cpython/Python/compile.c:1404,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/compile.c:1407,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1408,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/compile.c:1408,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/compile.c:1409,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/compile.c:1413,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/compile.c:1414,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1416,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1417,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/compile.c:1418,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/compile.c:1418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_CheckExact(v))
      pos:
        line_end: 1407
        line_start: 1407
        source_file: /src/cpython/Python/compile.c
    - condition: (i < size)
      pos:
        line_end: 1415
        line_start: 1415
        source_file: /src/cpython/Python/compile.c
    - condition: (i >= 0)
      pos:
        line_end: 1416
        line_start: 1416
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1421
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1421
    functionName: consts_dict_keys_inorder
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyTuple_GET_ITEM
    - PyDict_Next
    - PyLong_CheckExact
    - PyLong_AsLong
    - PyList_New
    - assert
    - PyDict_GET_SIZE
    - PyTuple_CheckExact
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      consts_dict_keys_inorder(PyObject *dict)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyST_IsFunctionLike
      Src: /src/cpython/Python/compile.c:1428,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1454
    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:1462,1
    - Dst: consts_dict_keys_inorder
      Src: /src/cpython/Python/compile.c:1465,1
    - Dst: _PyCfg_FromInstructionSequence
      Src: /src/cpython/Python/compile.c:1469,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/compile.c:1473,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/compile.c:1474,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1475,1
    - Dst: _PyCfg_OptimizeCodeUnit
      Src: /src/cpython/Python/compile.c:1477,1
    - Dst: _PyCfg_OptimizedCfgToInstructionSequence
      Src: /src/cpython/Python/compile.c:1484,1
    - Dst: _PyAssemble_MakeCodeObject
      Src: /src/cpython/Python/compile.c:1491,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1496,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/compile.c:1497,1
    - Dst: _PyCfgBuilder_Free
      Src: /src/cpython/Python/compile.c:1498,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: 1474
        line_start: 1474
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1500
      start: 1456
    functionDepth: 5
    functionLinenumber: 1456
    functionLinenumberEnd: 1500
    functionName: optimize_and_assemble_code_unit
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyCfg_OptimizedCfgToInstructionSequence
    - _PyCfg_OptimizeCodeUnit
    - consts_dict_keys_inorder
    - _PyCfgBuilder_Free
    - _PyAssemble_MakeCodeObject
    - memset
    - _PyCfg_FromInstructionSequence
    - Py_XDECREF
    - assert
    - PyDict_GET_SIZE
    - PyInstructionSequence_Fini
    - PyList_GET_SIZE
    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:1510,1
    - Dst: _PyCodegen_AddReturnAtEnd
      Src: /src/cpython/Python/compile.c:1515,1
    - Dst: optimize_and_assemble_code_unit
      Src: /src/cpython/Python/compile.c:1519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - addNone
    argTypes:
    - compiler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1503
    functionDepth: 6
    functionLinenumber: 1503
    functionLinenumberEnd: 1520
    functionName: _PyCompile_OptimizeAndAssemble
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 11
    functionsReached:
    - _PyCodegen_AddReturnAtEnd
    - compute_code_flags
    - optimize_and_assemble_code_unit
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      _PyCompile_OptimizeAndAssemble(compiler *c, int addNone)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1526,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:1526,1
    - Dst: new_compiler
      Src: /src/cpython/Python/compile.c:1527,1
    - Dst: compiler_mod
      Src: /src/cpython/Python/compile.c:1532,1
    - Dst: compiler_free
      Src: /src/cpython/Python/compile.c:1533,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1534,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/compile.c:1534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - mod
    - filename
    - pflags
    - optimize
    - arena
    - module
    argTypes:
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1525
        line_start: 1525
        source_file: /src/cpython/Python/compile.c
    - condition: (co || PyErr_Occurred())
      pos:
        line_end: 1533
        line_start: 1533
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1536
      start: 1522
    functionDepth: 15
    functionLinenumber: 1522
    functionLinenumberEnd: 1536
    functionName: _PyAST_Compile
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - compiler_free
    - compiler_mod
    - PyErr_Occurred
    - assert
    - new_compiler
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\n_PyAST_Compile(mod_ty mod, PyObject *filename, PyCompilerFlags
      *pflags,\n               int optimize, PyArena *arena, PyObject *module)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyFuture_FromAST
      Src: /src/cpython/Python/compile.c:1544,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/compile.c:1549,1
    - Dst: _PyAST_Preprocess
      Src: /src/cpython/Python/compile.c:1551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - mod
    - filename
    - cf
    - optimize
    - arena
    - no_const_folding
    - module
    argTypes:
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1538
    functionDepth: 2
    functionLinenumber: 1538
    functionLinenumberEnd: 1557
    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,\n
      \                        PyObject *module)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/compile.c:1566,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/compile.c:1572,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1574,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/compile.c:1590,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/compile.c:1611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1613,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/compile.c:1614,1
    - Dst: assert
      Src: /src/cpython/Python/compile.c:1631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1643,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/compile.c:1644,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/compile.c:1645,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 1
    argNames:
    - doc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (*p == '\n' || *p == '\0')
      pos:
        line_end: 1630
        line_start: 1630
        source_file: /src/cpython/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1647
      start: 1563
    functionDepth: 5
    functionLinenumber: 1563
    functionLinenumberEnd: 1647
    functionName: _PyCompile_CleanDoc
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 3
    functionsReached:
    - PyErr_NoMemory
    - assert
    - PyUnicode_AsUTF8AndSize
    - Py_MIN
    - PyMem_Free
    - PyMem_Malloc
    - Py_DECREF
    - PyObject_CallMethod
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCompile_CleanDoc(PyObject *doc)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyAST_Check
      Src: /src/cpython/Python/compile.c:1663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/compile.c:1664,1
    - Dst: _PyArena_New
      Src: /src/cpython/Python/compile.c:1668,1
    - Dst: PyAST_obj2mod
      Src: /src/cpython/Python/compile.c:1673,1
    - Dst: _PyAST_Validate
      Src: /src/cpython/Python/compile.c:1674,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/compile.c:1675,1
    - Dst: new_compiler
      Src: /src/cpython/Python/compile.c:1679,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/compile.c:1681,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:1686,1
    - Dst: compiler_codegen
      Src: /src/cpython/Python/compile.c:1691,1
    - Dst: SET_METADATA_INT
      Src: /src/cpython/Python/compile.c:1705,1
    - Dst: SET_METADATA_INT
      Src: /src/cpython/Python/compile.c:1706,1
    - Dst: SET_METADATA_INT
      Src: /src/cpython/Python/compile.c:1707,1
    - Dst: _PyCodegen_AddReturnAtEnd
      Src: /src/cpython/Python/compile.c:1711,1
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/compile.c:1715,1
    - Dst: _PyCompile_InstrSequence
      Src: /src/cpython/Python/compile.c:1715,1
    - Dst: consts_dict_keys_inorder
      Src: /src/cpython/Python/compile.c:1720,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/compile.c:1724,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Python/compile.c:1729,1
    - Dst: _PyCompile_InstrSequence
      Src: /src/cpython/Python/compile.c:1729,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1732,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/compile.c:1733,1
    - Dst: _PyCompile_ExitScope
      Src: /src/cpython/Python/compile.c:1734,1
    - Dst: compiler_free
      Src: /src/cpython/Python/compile.c:1735,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/compile.c:1736,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 5
    argNames:
    - ast
    - filename
    - pflags
    - optimize
    - compile_mode
    argTypes:
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1655
    functionDepth: 15
    functionLinenumber: 1655
    functionLinenumberEnd: 1738
    functionName: _PyCompile_CodeGen
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _PyCompile_ExitScope
    - new_compiler
    - _PyAST_Validate
    - PyDict_SetItemString
    - Py_XDECREF
    - compiler_free
    - compiler_codegen
    - consts_dict_keys_inorder
    - PyErr_SetString
    - _PyArena_Free
    - _PyTuple_FromPair
    - _PyInstructionSequence_ApplyLabelMap
    - _PyCodegen_AddReturnAtEnd
    - _PyArena_New
    - PyDict_New
    - _PyCompile_InstrSequence
    - PyAST_obj2mod
    - PyAST_Check
    - SET_METADATA_INT
    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: 1704
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1704
    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:1746,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/compile.c:1747,1
    - Dst: memset
      Src: /src/cpython/Python/compile.c:1753,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/compile.c:1755,1
    - Dst: _PyCfg_FromInstructionSequence
      Src: /src/cpython/Python/compile.c:1760,1
    - Dst: _PyCfg_JumpLabelsToTargets
      Src: /src/cpython/Python/compile.c:1765,1
    - Dst: _PyCfg_OptimizedCfgToInstructionSequence
      Src: /src/cpython/Python/compile.c:1771,1
    - Dst: consts_dict_keys_inorder
      Src: /src/cpython/Python/compile.c:1777,1
    - Dst: _PyAssemble_MakeCodeObject
      Src: /src/cpython/Python/compile.c:1781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1784,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/compile.c:1787,1
    - Dst: _PyCfgBuilder_Free
      Src: /src/cpython/Python/compile.c:1788,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/compile.c:1789,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - umd
    - filename
    - seq
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1742
    functionDepth: 11
    functionLinenumber: 1742
    functionLinenumberEnd: 1791
    functionName: _PyCompile_Assemble
    functionSourceFile: /src/cpython/Python/compile.c
    functionUses: 1
    functionsReached:
    - _PyInstructionSequence_Check
    - _PyCfg_OptimizedCfgToInstructionSequence
    - consts_dict_keys_inorder
    - _PyCfgBuilder_Free
    - PyErr_SetString
    - _PyAssemble_MakeCodeObject
    - _PyCfg_JumpLabelsToTargets
    - memset
    - _PyCfg_FromInstructionSequence
    - Py_DECREF
    - PyInstructionSequence_Fini
    - PyDict_New
    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:1800,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: 1801
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1801
    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:
    - shl_findsym
    - PyUnicode_FromString
    - shl_unload
    - PyErr_SetImportError
    - shl_load
    - perror
    - Py_DECREF
    - printf
    - PyUnicode_DecodeFSDefault
    - PyOS_snprintf
    - _Py_GetConfig
    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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    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: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    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: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    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: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    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: 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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: sym_set_recorded_type
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_recorded_type(SYM, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: sym_set_recorded_value
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_recorded_value(SYM, VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: sym_set_recorded_gen_func
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_recorded_gen_func(SYM, VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DEPTH
    - ','
    - SP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: sym_set_stack_depth
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sym_set_stack_depth(DEPTH, SP)
  - BBCount: 281
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:96,1
    - Dst: sym_is_immortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:98,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:98,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:99,1
    - Dst: PyJitRef_StripBorrowInfo
      Src: /src/cpython/Python/optimizer_bytecodes.c:101,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:104,1
    - Dst: get_current_code_object
      Src: /src/cpython/Python/optimizer_bytecodes.c:105,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:112,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:116,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:117,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:119,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:122,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:122,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:125,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:126,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:127,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:127,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:130,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:131,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:131,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:132,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:132,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:135,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:136,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:137,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:138,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:139,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:139,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:142,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:143,1
    - Dst: sym_matches_type_version
      Src: /src/cpython/Python/optimizer_bytecodes.c:144,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:145,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:148,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:152,1
    - Dst: sym_set_type_version
      Src: /src/cpython/Python/optimizer_bytecodes.c:153,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:154,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:164,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:170,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:176,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:177,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:178,1
    - Dst: PyJitRef_RemoveUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:178,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:182,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:188,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:194,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:195,1
    - Dst: optimize_dict_known_hash
      Src: /src/cpython/Python/optimizer_bytecodes.c:197,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:204,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:205,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:205,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:208,1
    - Dst: sym_is_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:209,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:210,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:213,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:214,1
    - Dst: sym_set_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:216,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:220,1
    - Dst: sym_is_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:221,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:222,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:225,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:226,1
    - Dst: sym_set_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:228,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:232,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:233,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:235,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:236,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:239,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:240,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:245,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:246,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:247,1
    - Dst: sym_matches_type_version
      Src: /src/cpython/Python/optimizer_bytecodes.c:248,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:249,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:252,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:255,1
    - Dst: sym_set_type_version
      Src: /src/cpython/Python/optimizer_bytecodes.c:256,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:257,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:267,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:268,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:269,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:271,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:274,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:275,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:276,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:278,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:281,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:284,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:285,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:286,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:287,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:288,1
    - Dst: sym_has_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:304,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:305,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:306,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:307,1
    - Dst: sym_has_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:310,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:311,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:312,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:313,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:318,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:320,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:323,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:326,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:333,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:333,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:337,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:337,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:341,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:358,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:362,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:362,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:364,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:366,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Python/optimizer_bytecodes.c:368,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:368,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:370,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:370,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:374,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:378,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:381,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:381,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:383,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:386,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:387,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:388,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:390,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:391,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:395,1
    - Dst: sym_new_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:395,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:398,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:401,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:402,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:403,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:405,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:406,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:408,1
    - Dst: sym_new_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:408,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:411,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:414,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:415,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:416,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:418,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:419,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:421,1
    - Dst: sym_new_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:421,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:424,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:427,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:428,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:429,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:430,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:430,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:433,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:434,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:436,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:436,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:442,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:442,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:445,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:446,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:447,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:448,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:448,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:451,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:452,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:454,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:454,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:460,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: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:464,1
    - Dst: ADD_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_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:466,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:469,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:470,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:472,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:472,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:478,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:478,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:481,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:482,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:487,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:489,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:490,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:491,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:493,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:496,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:498,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:499,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:500,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:502,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:505,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:510,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:511,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:512,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:514,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:517,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:518,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:521,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:522,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:527,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:530,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:532,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:536,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:542,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:543,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:543,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:544,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:544,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:544,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:545,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:545,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:545,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/optimizer_bytecodes.c:546,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:546,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:546,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_bytecodes.c:551,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:554,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/optimizer_bytecodes.c:556,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:556,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:559,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:560,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:561,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:563,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:565,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:570,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:574,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:575,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:581,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:584,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:585,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:590,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:591,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:596,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:597,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:597,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:598,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:599,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:599,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:599,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/optimizer_bytecodes.c:600,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:600,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:601,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:602,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:604,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:609,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:610,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:610,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:611,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:612,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:612,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:612,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/optimizer_bytecodes.c:613,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:613,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:614,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:615,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:618,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:621,1
    - Dst: sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_bytecodes.c:622,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:626,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:632,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:633,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:636,1
    - Dst: sym_is_not_container
      Src: /src/cpython/Python/optimizer_bytecodes.c:637,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:638,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:639,1
    - Dst: optimize_dict_known_hash
      Src: /src/cpython/Python/optimizer_bytecodes.c:642,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:647,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:648,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:653,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:654,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:657,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:661,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:662,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:665,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:669,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:670,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:673,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:674,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:679,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:680,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:683,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:688,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:689,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:692,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:693,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:697,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:698,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:699,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:701,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:704,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:705,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:708,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:709,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:710,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:712,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:715,1
    - Dst: optimize_to_bool
      Src: /src/cpython/Python/optimizer_bytecodes.c:716,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:720,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:724,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:725,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:726,1
    - Dst: sym_new_truthiness
      Src: /src/cpython/Python/optimizer_bytecodes.c:727,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:730,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:732,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:733,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:733,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:734,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:735,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:735,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:736,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:736,1
    - Dst: sym_is_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:738,1
    - Dst: sym_new_compact_int
      Src: /src/cpython/Python/optimizer_bytecodes.c:739,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:742,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:744,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:747,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:752,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:755,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:756,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:758,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:759,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:762,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:766,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:769,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:771,1
    - Dst: _Py_uop_sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:774,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:778,1
    - Dst: sym_new_predicate
      Src: /src/cpython/Python/optimizer_bytecodes.c:782,1
    - Dst: sym_new_predicate
      Src: /src/cpython/Python/optimizer_bytecodes.c:785,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:788,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:792,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:795,1
    - Dst: sym_new_predicate
      Src: /src/cpython/Python/optimizer_bytecodes.c:799,1
    - Dst: sym_new_predicate
      Src: /src/cpython/Python/optimizer_bytecodes.c:802,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:805,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:809,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:812,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:816,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:819,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:822,1
    - Dst: sym_new_predicate
      Src: /src/cpython/Python/optimizer_bytecodes.c:823,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:828,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:829,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:830,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:831,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/optimizer_bytecodes.c:831,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:834,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:838,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:839,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:842,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:845,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:846,1
    - Dst: sym_is_not_container
      Src: /src/cpython/Python/optimizer_bytecodes.c:849,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:850,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:851,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:855,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:856,1
    - Dst: sym_is_not_container
      Src: /src/cpython/Python/optimizer_bytecodes.c:859,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:860,1
    - Dst: REPLACE_OPCODE_IF_EVALUATES_PURE
      Src: /src/cpython/Python/optimizer_bytecodes.c:861,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:865,1
    - Dst: get_current_code_object
      Src: /src/cpython/Python/optimizer_bytecodes.c:866,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_bytecodes.c:867,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:868,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:869,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:869,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:872,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:873,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:874,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:875,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:876,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:876,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:877,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:878,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:878,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:881,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_bytecodes.c:882,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:883,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:884,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:884,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:885,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:886,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:886,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:889,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:890,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:893,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:894,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:894,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:897,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:899,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:903,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:904,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:907,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:908,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:909,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:913,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:914,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:915,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:919,1
    - Dst: PyJitRef_IsBorrowed
      Src: /src/cpython/Python/optimizer_bytecodes.c:920,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:921,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:925,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:926,1
    - Dst: PyJitRef_RemoveUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:927,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:931,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:935,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:938,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:945,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:946,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:951,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:955,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:956,1
    - Dst: PyModule_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:957,1
    - Dst: get_mutations
      Src: /src/cpython/Python/optimizer_bytecodes.c:959,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:961,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:962,1
    - Dst: convert_global_to_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:963,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:965,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:968,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:969,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:971,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:972,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_bytecodes.c:978,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:980,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:985,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:987,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:988,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:991,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:995,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:997,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:999,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1003,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1004,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1009,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1010,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1015,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1017,1
    - Dst: get_co_name
      Src: /src/cpython/Python/optimizer_bytecodes.c:1018,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:1019,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1023,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1025,1
    - Dst: get_co_name
      Src: /src/cpython/Python/optimizer_bytecodes.c:1026,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:1027,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1031,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1033,1
    - Dst: get_co_name
      Src: /src/cpython/Python/optimizer_bytecodes.c:1034,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:1035,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1039,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1041,1
    - Dst: get_co_name
      Src: /src/cpython/Python/optimizer_bytecodes.c:1042,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:1043,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1048,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1050,1
    - Dst: get_co_name
      Src: /src/cpython/Python/optimizer_bytecodes.c:1051,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:1052,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1057,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1059,1
    - Dst: get_co_name
      Src: /src/cpython/Python/optimizer_bytecodes.c:1060,1
    - Dst: lookup_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:1061,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1066,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1067,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1068,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1069,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1071,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1072,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1075,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1078,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1079,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1083,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1085,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1086,1
    - Dst: get_co_name
      Src: /src/cpython/Python/optimizer_bytecodes.c:1087,1
    - Dst: lookup_super_attr
      Src: /src/cpython/Python/optimizer_bytecodes.c:1088,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1094,1
    - Dst: sym_get_type_version
      Src: /src/cpython/Python/optimizer_bytecodes.c:1096,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:1102,1
    - Dst: frame_new
      Src: /src/cpython/Python/optimizer_bytecodes.c:1104,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1110,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1113,1
    - Dst: sym_get_type_version
      Src: /src/cpython/Python/optimizer_bytecodes.c:1115,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:1121,1
    - Dst: frame_new
      Src: /src/cpython/Python/optimizer_bytecodes.c:1123,1
    - Dst: get_co_name
      Src: /src/cpython/Python/optimizer_bytecodes.c:1127,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1129,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1131,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1134,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1135,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:1136,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1138,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1139,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1140,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1141,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1144,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1145,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1149,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1150,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1151,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1157,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:1158,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1161,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1162,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1163,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1169,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:1170,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1173,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1174,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1174,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1175,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1176,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1176,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1177,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer_bytecodes.c:1178,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1182,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:1183,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1186,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:1188,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1189,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1193,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1196,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1197,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1197,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1198,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1199,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1199,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1200,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer_bytecodes.c:1201,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1205,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:1206,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1209,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:1211,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1212,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1216,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1219,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1220,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1220,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1221,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1222,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1222,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1223,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1225,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1226,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1232,1
    - Dst: sym_set_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1233,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1234,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1237,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1239,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_bytecodes.c:1239,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1240,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1241,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1247,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1247,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1248,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:1248,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1250,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:1250,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1254,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1255,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1255,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1256,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1257,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1258,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1261,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1262,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1266,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1267,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1267,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1268,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1269,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1270,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1273,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1274,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1278,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1280,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1281,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1284,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1285,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:1285,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1288,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1289,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:1289,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1292,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1293,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:1293,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1296,1
    - Dst: sym_get_probable_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:1297,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1298,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1299,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1302,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1304,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1308,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1313,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1317,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1318,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1318,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1319,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1320,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1323,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1327,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1328,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1331,1
    - Dst: frame_new
      Src: /src/cpython/Python/optimizer_bytecodes.c:1333,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1340,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1343,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1344,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:1344,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1347,1
    - Dst: DEAD
      Src: /src/cpython/Python/optimizer_bytecodes.c:1349,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/optimizer_bytecodes.c:1350,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1352,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1354,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1354,1
    - Dst: frame_pop
      Src: /src/cpython/Python/optimizer_bytecodes.c:1359,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/optimizer_bytecodes.c:1364,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1368,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1369,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1371,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1377,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1377,1
    - Dst: frame_pop
      Src: /src/cpython/Python/optimizer_bytecodes.c:1378,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1382,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1385,1
    - Dst: DEAD
      Src: /src/cpython/Python/optimizer_bytecodes.c:1387,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/optimizer_bytecodes.c:1388,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1390,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1396,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:1396,1
    - Dst: frame_pop
      Src: /src/cpython/Python/optimizer_bytecodes.c:1397,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/optimizer_bytecodes.c:1401,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1405,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1409,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1412,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1417,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1418,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1420,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1430,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1433,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1434,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1436,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1439,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1441,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1444,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1445,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1448,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1449,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1453,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1455,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1457,1
    - Dst: _PyType_HasSlotTpIternext
      Src: /src/cpython/Python/optimizer_bytecodes.c:1461,1
    - Dst: PyType_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:1462,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:1463,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1465,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1466,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1468,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer_bytecodes.c:1469,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1471,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1473,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1476,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1478,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1481,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1485,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1488,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1489,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1494,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1496,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1499,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1503,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1506,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1507,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1512,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:1513,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1518,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1520,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1523,1
    - Dst: frame_new_from_symbol
      Src: /src/cpython/Python/optimizer_bytecodes.c:1524,1
    - Dst: PyJitRef_StripReferenceInfo
      Src: /src/cpython/Python/optimizer_bytecodes.c:1529,1
    - Dst: PyJitRef_WrapInvalid
      Src: /src/cpython/Python/optimizer_bytecodes.c:1531,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1534,1
    - Dst: sym_get_probable_func_code
      Src: /src/cpython/Python/optimizer_bytecodes.c:1535,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1540,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1543,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1547,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1548,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1550,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1554,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1555,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1557,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1561,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1562,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1564,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1568,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1569,1
    - Dst: CURRENT_FRAME_IS_INIT_SHIM
      Src: /src/cpython/Python/optimizer_bytecodes.c:1570,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_bytecodes.c:1574,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1577,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1580,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1584,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1588,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1593,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1597,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1598,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1599,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1601,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1604,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1605,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1606,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1609,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1613,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1614,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1615,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1618,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1622,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1623,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1626,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1627,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1629,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1630,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:1631,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:1632,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1633,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1634,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1637,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1642,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1643,1
    - Dst: PyJitRef_StripReferenceInfo
      Src: /src/cpython/Python/optimizer_bytecodes.c:1647,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1650,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1655,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1658,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1659,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1660,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1661,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/optimizer_bytecodes.c:1667,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1670,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:1671,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:1672,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:1673,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:1674,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1675,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1679,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1683,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1686,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1687,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1688,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1691,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1695,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1699,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1700,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1701,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1702,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1702,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1704,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/optimizer_bytecodes.c:1707,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1708,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1712,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1716,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1717,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1718,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/optimizer_bytecodes.c:1719,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1720,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1724,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1728,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1729,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1730,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/optimizer_bytecodes.c:1731,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1732,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1736,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1740,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1741,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1744,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1745,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1747,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1751,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1755,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1759,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1760,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1763,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1764,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1767,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1768,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1769,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1770,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1770,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1772,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1776,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1777,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1780,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1786,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1790,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1794,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1795,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1796,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1797,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1797,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1799,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1803,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1804,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1807,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1813,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1817,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1821,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1822,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1823,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1824,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1824,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1826,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1830,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1831,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1834,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1840,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1844,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1848,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1850,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1855,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1856,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:1857,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1858,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1861,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1863,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1865,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1869,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1873,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1877,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1878,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:1879,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1880,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1883,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1885,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1888,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1889,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:1890,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1891,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1894,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1896,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1899,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1900,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1901,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1902,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1902,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1904,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1908,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1909,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1912,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1918,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:1922,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1926,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1927,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:1928,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1929,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1932,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1934,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1936,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1942,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:1943,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1947,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1948,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1952,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:1953,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1958,1
    - Dst: sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_bytecodes.c:1959,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1961,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1962,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1963,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:1964,1
    - Dst: get_test_bit_for_bools
      Src: /src/cpython/Python/optimizer_bytecodes.c:1967,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1969,1
    - Dst: test_bit_set_in_true
      Src: /src/cpython/Python/optimizer_bytecodes.c:1970,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1975,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1978,1
    - Dst: sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_bytecodes.c:1979,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1981,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1982,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:1983,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:1984,1
    - Dst: get_test_bit_for_bools
      Src: /src/cpython/Python/optimizer_bytecodes.c:1987,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:1989,1
    - Dst: test_bit_set_in_true
      Src: /src/cpython/Python/optimizer_bytecodes.c:1990,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1995,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:1998,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:1999,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2000,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2001,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:2002,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/optimizer_bytecodes.c:2002,1
    - Dst: sym_has_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2004,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2005,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2005,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:2006,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2008,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2011,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2012,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2013,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2014,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:2015,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/optimizer_bytecodes.c:2015,1
    - Dst: sym_has_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2017,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2018,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2018,1
    - Dst: eliminate_pop_guard
      Src: /src/cpython/Python/optimizer_bytecodes.c:2019,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2023,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:2026,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2027,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2031,1
    - Dst: sym_new_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2032,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2036,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2038,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/optimizer_bytecodes.c:2041,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_bytecodes.c:2042,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer_bytecodes.c:2047,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2048,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2049,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2050,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2051,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:2053,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2054,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2056,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:2057,1
    - Dst: watch_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2058,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2059,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2064,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:2065,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2069,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2073,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2078,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2082,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2083,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2084,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2085,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2089,1
    - Dst: sym_new_tuple
      Src: /src/cpython/Python/optimizer_bytecodes.c:2090,1
    - Dst: PyJitRef_MakeUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:2091,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2094,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2095,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2098,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2099,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2102,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2103,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2106,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2107,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2110,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2111,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2114,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2119,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2124,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2130,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:2131,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:2131,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2132,1
    - Dst: sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_bytecodes.c:2134,1
    - Dst: sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_bytecodes.c:2135,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2138,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:2139,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:2139,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2140,1
    - Dst: PyJitRef_IsUnique
      Src: /src/cpython/Python/optimizer_bytecodes.c:2142,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:2142,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2143,1
    - Dst: sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_bytecodes.c:2146,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2150,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2151,1
    - Dst: PyJitRef_StripReferenceInfo
      Src: /src/cpython/Python/optimizer_bytecodes.c:2155,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2158,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2163,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2164,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2165,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2168,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2172,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2173,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2174,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2177,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2181,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2182,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2183,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2186,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2190,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2191,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2192,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2195,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2199,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2200,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2203,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2209,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2212,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2213,1
    - Dst: PyType_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:2215,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:2216,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2220,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2221,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2224,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2230,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2233,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2234,1
    - Dst: PyType_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:2236,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:2237,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2241,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2242,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2244,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2248,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2250,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2253,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2258,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2259,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2260,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2263,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2267,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2268,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2269,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2272,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2276,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2277,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2279,1
    - Dst: sym_get_probable_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2283,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2285,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2288,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2293,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2294,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2295,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2298,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2302,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2303,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2304,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2307,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2311,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2312,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2313,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2316,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2320,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2321,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2322,1
    - Dst: sym_set_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2325,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2329,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2330,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2331,1
    - Dst: sym_set_non_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2334,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2338,1
    - Dst: sym_is_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2339,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2340,1
    - Dst: sym_set_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2343,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2347,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2348,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2349,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2352,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2356,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2357,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2358,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2361,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2365,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2366,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2367,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2370,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2374,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2375,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:2376,1
    - Dst: sym_is_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2379,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2380,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:2382,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/optimizer_bytecodes.c:2383,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:2385,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/optimizer_bytecodes.c:2386,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:2388,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/optimizer_bytecodes.c:2389,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/optimizer_bytecodes.c:2391,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Python/optimizer_bytecodes.c:2392,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/optimizer_bytecodes.c:2398,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:2402,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2403,1
    - Dst: optimize_pop_top
      Src: /src/cpython/Python/optimizer_bytecodes.c:2404,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2405,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2406,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_bytecodes.c:2409,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2415,1
    - Dst: sym_tuple_length
      Src: /src/cpython/Python/optimizer_bytecodes.c:2416,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2418,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2421,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/optimizer_bytecodes.c:2422,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:2426,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2427,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_bytecodes.c:2430,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2434,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:2435,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2436,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2437,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2440,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2444,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:2445,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2446,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2447,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2450,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2454,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:2455,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2456,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2457,1
    - Dst: sym_set_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2460,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2464,1
    - Dst: sym_get_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2466,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2471,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2474,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2478,1
    - Dst: incorrect_keys
      Src: /src/cpython/Python/optimizer_bytecodes.c:2481,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_bytecodes.c:2482,1
    - Dst: get_mutations
      Src: /src/cpython/Python/optimizer_bytecodes.c:2485,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:2490,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:2491,1
    - Dst: ADD_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2495,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2502,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer_bytecodes.c:2506,1
    - Dst: incorrect_keys
      Src: /src/cpython/Python/optimizer_bytecodes.c:2508,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_bytecodes.c:2509,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:2517,1
    - Dst: convert_global_to_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2521,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2525,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:2528,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:2529,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2529,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2532,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2537,1
    - Dst: incorrect_keys
      Src: /src/cpython/Python/optimizer_bytecodes.c:2542,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_bytecodes.c:2543,1
    - Dst: get_mutations
      Src: /src/cpython/Python/optimizer_bytecodes.c:2546,1
    - Dst: PyDict_Watch
      Src: /src/cpython/Python/optimizer_bytecodes.c:2551,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:2552,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2556,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer_bytecodes.c:2556,1
    - Dst: convert_global_to_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2560,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2565,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_bytecodes.c:2568,1
    - Dst: PyJitRef_Borrow
      Src: /src/cpython/Python/optimizer_bytecodes.c:2569,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2569,1
    - Dst: sym_new_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2572,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2577,1
    - Dst: sym_new_unknown
      Src: /src/cpython/Python/optimizer_bytecodes.c:2578,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2583,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2584,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2588,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2589,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2595,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2600,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:2601,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2604,1
    - Dst: sym_set_recorded_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2606,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2609,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:2610,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2613,1
    - Dst: sym_set_recorded_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2615,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2618,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:2619,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2622,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:2623,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2626,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:2627,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2630,1
    - Dst: sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_bytecodes.c:2631,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2634,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2636,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:2636,1
    - Dst: sym_set_recorded_gen_func
      Src: /src/cpython/Python/optimizer_bytecodes.c:2637,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2640,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_bytecodes.c:2642,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_bytecodes.c:2642,1
    - Dst: sym_set_recorded_gen_func
      Src: /src/cpython/Python/optimizer_bytecodes.c:2643,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2646,1
    - Dst: get_current_code_object
      Src: /src/cpython/Python/optimizer_bytecodes.c:2647,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_bytecodes.c:2649,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2651,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2653,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2661,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2664,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2668,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2671,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2675,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2678,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2682,1
    - Dst: sym_set_stack_depth
      Src: /src/cpython/Python/optimizer_bytecodes.c:2684,1
    - Dst: sym_get_const
      Src: /src/cpython/Python/optimizer_bytecodes.c:2685,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2690,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2694,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2697,1
    - Dst: sym_set_stack_depth
      Src: /src/cpython/Python/optimizer_bytecodes.c:2699,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2702,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2705,1
    - Dst: sym_set_stack_depth
      Src: /src/cpython/Python/optimizer_bytecodes.c:2707,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2710,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2713,1
    - Dst: sym_set_stack_depth
      Src: /src/cpython/Python/optimizer_bytecodes.c:2715,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2718,1
    - Dst: sym_is_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2719,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2720,1
    - Dst: sym_set_non_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2723,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2727,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2728,1
    - Dst: REPLACE_OP
      Src: /src/cpython/Python/optimizer_bytecodes.c:2729,1
    - Dst: sym_set_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2732,1
    - Dst: op
      Src: /src/cpython/Python/optimizer_bytecodes.c:2736,1
    - Dst: sym_matches_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2737,1
    - Dst: sym_new_type
      Src: /src/cpython/Python/optimizer_bytecodes.c:2738,1
    - Dst: sym_new_not_null
      Src: /src/cpython/Python/optimizer_bytecodes.c:2741,1
    CyclomaticComplexity: 439
    EdgeCount: 439
    ICount: 1966
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyFunction_Check(init))
      pos:
        line_end: 1317
        line_start: 1317
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyUnicode_CheckExact(sym_get_const(ctx, right)))
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (insert_null->target == this_instr->target)
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyCode_Check(returning_code))
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyCode_Check(returning_code))
      pos:
        line_end: 1395
        line_start: 1395
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (tuple_length >= 0)
      pos:
        line_end: 2420
        line_start: 2420
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!PyJitRef_IsUnique(value))
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyCode_Check(returning_code))
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (init != NULL)
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (value != NULL)
      pos:
        line_end: 1962
        line_start: 1962
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (ctx->frame->locals != NULL)
      pos:
        line_end: 1576
        line_start: 1576
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (val)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (type_version)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (insert_null->opcode == _INSERT_NULL)
      pos:
        line_end: 2047
        line_start: 2047
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (this_instr[1].opcode == _RECORD_CODE)
      pos:
        line_end: 1370
        line_start: 1370
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (this_instr[1].opcode == _RECORD_CODE)
      pos:
        line_end: 1351
        line_start: 1351
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!sym_matches_type(val, &_PyNone_Type))
      pos:
        line_end: 2004
        line_start: 2004
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!PyJitRef_IsUnique(value))
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (tp != &PyCoro_Type)
      pos:
        line_end: 1429
        line_start: 1429
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (func == NULL || PyFunction_Check(func))
      pos:
        line_end: 2641
        line_start: 2641
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (value != NULL)
      pos:
        line_end: 2000
        line_start: 2000
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!PyJitRef_IsNull(self_or_null))
      pos:
        line_end: 1238
        line_start: 1238
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyLong_CheckExact(sym_get_const(ctx, sub_st)))
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (value != NULL)
      pos:
        line_end: 2013
        line_start: 2013
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyLong_CheckExact(sym_get_const(ctx, sub_st)))
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (type_version)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (d->lhs_type != NULL && d->rhs_type != NULL)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (oparg > 0)
      pos:
        line_end: 925
        line_start: 925
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (this_instr[1].opcode == _RECORD_CODE)
      pos:
        line_end: 1389
        line_start: 1389
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (args != NULL)
      pos:
        line_end: 1239
        line_start: 1239
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyUnicode_CheckExact(sym_get_const(ctx, left)))
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (index >= 0)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (value != NULL)
      pos:
        line_end: 1982
        line_start: 1982
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (index >= 0)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (_Py_IsImmortal(val))
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (index < tuple_length)
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (sym_matches_type(callable, &PyFunction_Type))
      pos:
        line_end: 1219
        line_start: 1219
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: ((this_instr + 1)->opcode == _PUSH_FRAME)
      pos:
        line_end: 1342
        line_start: 1342
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (d != NULL && d->guard == NULL && d->lhs_type != NULL)
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: ((this_instr - 1)->opcode == _RECORD_NOS_TYPE)
      pos:
        line_end: 1465
        line_start: 1465
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (d != NULL && d->guard == NULL && d->rhs_type != NULL)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!PyJitRef_IsUnique(value))
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (probable_callable != NULL)
      pos:
        line_end: 1297
        line_start: 1297
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!PyJitRef_IsUnique(value))
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyMethod_Check(method))
      pos:
        line_end: 1175
        line_start: 1175
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (oparg < NUM_COMMON_CONSTANTS)
      pos:
        line_end: 872
        line_start: 872
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (sym_matches_type(tuple_st, &PyTuple_Type))
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (_Py_IsImmortal(val))
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (func == NULL || PyFunction_Check(func))
      pos:
        line_end: 2635
        line_start: 2635
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: ((int)(shim->stack_pointer - shim->stack) == 1)
      pos:
        line_end: 1339
        line_start: 1339
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (PyMethod_Check(method))
      pos:
        line_end: 1198
        line_start: 1198
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (this_instr[-1].opcode == _RECORD_TOS_TYPE || this_instr[-1].opcode
        == _RECORD_TOS)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!sym_matches_type(val, &_PyNone_Type))
      pos:
        line_end: 2017
        line_start: 2017
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (oparg >= 2)
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (sym_matches_type(tuple_st, &PyTuple_Type))
      pos:
        line_end: 596
        line_start: 596
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    - condition: (!is_trad)
      pos:
        line_end: 1438
        line_start: 1438
        source_file: /src/cpython/Python/optimizer_bytecodes.c
    constantsTouched: []
    func_position:
      end: 2747
      start: 70
    functionDepth: 10
    functionLinenumber: 70
    functionLinenumberEnd: 2747
    functionName: dummy_func
    functionSourceFile: /src/cpython/Python/optimizer_bytecodes.c
    functionUses: 0
    functionsReached:
    - optimize_dict_known_hash
    - sym_apply_predicate_narrowing
    - PyType_Check
    - sym_tuple_getitem
    - CURRENT_FRAME_IS_INIT_SHIM
    - PyCFunction_GET_FLAGS
    - sym_set_recorded_type
    - sym_has_type
    - sym_get_probable_type
    - sym_new_truthiness
    - PyJitRef_Unwrap
    - sym_set_type
    - optimize_pop_top
    - PyJitRef_StripBorrowInfo
    - PyBytes_CheckExact
    - sym_set_type_version
    - Py_IS_TYPE
    - sym_is_const
    - sym_set_compact_int
    - SAVE_STACK
    - sym_get_type
    - Py_DECREF
    - PyBytes_GET_SIZE
    - sym_new_null
    - op
    - ADD_OP
    - REPLACE_OP
    - get_mutations
    - sym_new_predicate
    - lookup_attr
    - PyJitRef_StripReferenceInfo
    - GETLOCAL
    - sym_new_type
    - PyLong_FromLong
    - get_test_bit_for_bools
    - get_co_name
    - sym_matches_type
    - sym_set_null
    - assert
    - PyType_IsSubtype
    - PyLong_AsLong
    - PyDict_GET_SIZE
    - PyDict_Watch
    - PyJitRef_IsBorrowed
    - sym_new_tuple
    - DEAD
    - _Py_uop_sym_new_not_null
    - SYNC_SP
    - PyJitRef_IsUnique
    - PyUnicode_GET_LENGTH
    - _Py_BloomFilter_Add
    - sym_set_recorded_value
    - incorrect_keys
    - sym_get_type_version
    - PyJitRef_RemoveUnique
    - sym_is_immortal
    - sym_get_const
    - PyFrozenSet_CheckExact
    - OPT_STAT_INC
    - PyJitRef_WrapInvalid
    - convert_global_to_const
    - _PyType_HasSlotTpIternext
    - test_bit_set_in_true
    - watch_type
    - Py_TYPE
    - sym_set_stack_depth
    - PyJitRef_Borrow
    - _PyLong_IsNegative
    - sym_set_const
    - sym_matches_type_version
    - REPLACE_OPCODE_IF_EVALUATES_PURE
    - sym_is_not_null
    - PyType_Watch
    - PyModule_CheckExact
    - RELOAD_STACK
    - sym_new_not_null
    - PyFrozenDict_CheckExact
    - sym_is_null
    - eliminate_pop_guard
    - _Py_IsImmortal
    - sym_get_probable_func_code
    - sym_is_compact_int
    - PyCode_Check
    - frame_new_from_symbol
    - uop_buffer_last
    - PyUnicode_CheckExact
    - sym_get_probable_value
    - PyTuple_GET_ITEM
    - PyFunction_Check
    - PyJitRef_IsNull
    - sym_set_non_null
    - PyMethod_Check
    - frame_pop
    - sym_set_recorded_gen_func
    - lookup_super_attr
    - PyLong_FromSsize_t
    - optimize_to_bool
    - Py_IsNone
    - get_current_code_object
    - PyLong_CheckExact
    - sym_is_not_container
    - sym_new_compact_int
    - sym_tuple_length
    - _PyType_Lookup
    - PyJitRef_MakeUnique
    - PySet_GET_SIZE
    - frame_new
    - _PyInterpreterState_GET
    - sym_new_const
    - PyStackRef_AsPyObjectBorrow
    - sym_new_unknown
    - PyUnicode_Concat
    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:
    - PyConfig_GetInt
    - PyStatus_Exception
    - PyWinFreeze_ExeInit
    - PyConfig_SetBytesArgv
    - _PyInterpreterState_SetRunningMain
    - fileno
    - Py_GETENV
    - PyInitFrozenExtensions
    - Py_GetVersion
    - PyRun_AnyFile
    - exit
    - PyImport_ImportFrozenModule
    - Py_GetCopyright
    - Py_ExitStatusException
    - Py_InitializeFromConfig
    - isatty
    - PyConfig_InitPythonConfig
    - PyErr_Clear
    - Py_FatalError
    - _PyInterpreterState_SetNotRunningMain
    - PyErr_Print
    - PyInterpreterState_Get
    - Py_FinalizeEx
    - PyWinFreeze_ExeTerm
    - fprintf
    - PyConfig_Clear
    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:175,1
    - Dst: wcsrchr
      Src: /src/cpython/Python/dynload_win.c:176,1
    - Dst: wcscpy
      Src: /src/cpython/Python/dynload_win.c:179,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:180,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:189,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dynload_win.c:196,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/dynload_win.c:197,1
    - Dst: assert
      Src: /src/cpython/Python/dynload_win.c:198,1
    - Dst: wcscpy_s
      Src: /src/cpython/Python/dynload_win.c:200,1
    - Dst: _Py_add_relfile
      Src: /src/cpython/Python/dynload_win.c:201,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:202,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (config->prefix)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/cpython/Python/dynload_win.c
    constantsTouched: []
    func_position:
      end: 208
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 208
    functionName: _Py_CheckPython3
    functionSourceFile: /src/cpython/Python/dynload_win.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetConfig
    - wcscpy_s
    - wcscpy
    - _PyInterpreterState_GET
    - _Py_add_relfile
    - LoadLibraryExW
    - assert
    - wcsrchr
    - GetModuleFileNameW
    linkageType: ''
    returnType: int
    signature: int _Py_CheckPython3(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileNameW
      Src: /src/cpython/Python/dynload_win.c:239,1
    - Dst: wcsrchr
      Src: /src/cpython/Python/dynload_win.c:240,1
    - Dst: wcscpy
      Src: /src/cpython/Python/dynload_win.c:244,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:245,1
    - Dst: wcscpy
      Src: /src/cpython/Python/dynload_win.c:249,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:250,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:261,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:266,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 271
    functionName: _Py_CheckPython3t
    functionSourceFile: /src/cpython/Python/dynload_win.c
    functionUses: 0
    functionsReached:
    - wcscpy
    - wcsrchr
    - LoadLibraryExW
    - GetModuleFileNameW
    linkageType: ''
    returnType: int
    signature: int _Py_CheckPython3t(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CheckPython3
      Src: /src/cpython/Python/dynload_win.c:283,1
    - Dst: _Py_CheckPython3t
      Src: /src/cpython/Python/dynload_win.c:284,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/dynload_win.c:287,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_win.c:291,1
    - Dst: SetErrorMode
      Src: /src/cpython/Python/dynload_win.c:299,1
    - Dst: LoadLibraryExW
      Src: /src/cpython/Python/dynload_win.c:307,1
    - Dst: SetErrorMode
      Src: /src/cpython/Python/dynload_win.c:315,1
    - Dst: GetLastError
      Src: /src/cpython/Python/dynload_win.c:327,1
    - Dst: FormatMessageW
      Src: /src/cpython/Python/dynload_win.c:329,1
    - Dst: MAKELANGID
      Src: /src/cpython/Python/dynload_win.c:334,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/dynload_win.c:344,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/dynload_win.c:356,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/cpython/Python/dynload_win.c:359,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/dynload_win.c:360,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/dynload_win.c:365,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/dynload_win.c:366,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/dynload_win.c:367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_win.c:368,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_win.c:374,1
    - Dst: GetPythonImport
      Src: /src/cpython/Python/dynload_win.c:381,1
    - Dst: _stricmp
      Src: /src/cpython/Python/dynload_win.c:384,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/dynload_win.c:385,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/dynload_win.c:396,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - PyObject*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 275
    functionDepth: 10
    functionLinenumber: 275
    functionLinenumberEnd: 401
    functionName: _PyImport_FindSharedFuncptrWindows
    functionSourceFile: /src/cpython/Python/dynload_win.c
    functionUses: 1
    functionsReached:
    - LoadLibraryExW
    - GetLastError
    - _Py_CheckPython3
    - _Py_CheckPython3t
    - PyUnicode_FromString
    - PyErr_SetImportError
    - Py_XDECREF
    - _stricmp
    - FormatMessageW
    - GetProcAddress
    - PyUnicode_FromWideChar
    - SetErrorMode
    - Py_DECREF
    - PyUnicode_AppendAndDel
    - PyUnicode_AsWideCharString
    - GetPythonImport
    - PyOS_snprintf
    - MAKELANGID
    - PyUnicode_FromFormat
    - PyErr_Format
    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:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    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: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    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: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    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: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: LAZY_MODULES
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY_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: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: LAZY_PENDING_SUBMODULES
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY_PENDING_SUBMODULES(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    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: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    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: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    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: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    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: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: LAZY_IMPORT_FUNC
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY_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: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    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: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    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: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: LAZY_IMPORTS_MODE
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY_IMPORTS_MODE(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: LAZY_IMPORTS_FILTER
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY_IMPORTS_FILTER(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: LAZY_IMPORTS_LOCK
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY_IMPORTS_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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: LAZY_IMPORTS_UNLOCK
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY_IMPORTS_UNLOCK(interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - interp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    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:157,1
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: _PyImport_AcquireLock
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - IMPORT_LOCK
    - _PyRecursiveMutex_Lock
    linkageType: ''
    returnType: void
    signature: void _PyImport_AcquireLock(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRecursiveMutex_Unlock
      Src: /src/cpython/Python/import.c:163,1
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: _PyImport_ReleaseLock
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - IMPORT_LOCK
    - _PyRecursiveMutex_Unlock
    linkageType: ''
    returnType: void
    signature: void _PyImport_ReleaseLock(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:170,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/import.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: _PyImport_ReInitLock
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - IMPORT_LOCK
    - PyThread_get_thread_ident_ex
    linkageType: ''
    returnType: void
    signature: void _PyImport_ReInitLock(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:181,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:181,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:182,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/import.c:182,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:183,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (MODULES(interp) == NULL)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 11
    functionLinenumber: 178
    functionLinenumberEnd: 187
    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:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 193
    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:198,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:199,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:204,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: _PyImport_GetModulesRef
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyImport_ReleaseLock
    - _PyImport_AcquireLock
    - MODULES
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_GetModulesRef(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SETREF
      Src: /src/cpython/Python/import.c:212,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: _PyImport_ClearModules
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - MODULES
    - Py_SETREF
    linkageType: ''
    returnType: void
    signature: void _PyImport_ClearModules(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:223,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:226,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tstate
    - fatal
    argTypes:
    - PyThreadState*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 233
    functionName: get_modules_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - MODULES
    - _PyErr_SetString
    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:238,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 240
    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:245,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:246,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/import.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - m
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: _PyImport_SetModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - get_modules_dict
    - PyObject_SetItem
    linkageType: ''
    returnType: int
    signature: int _PyImport_SetModule(PyObject *name, PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:253,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:254,1
    - Dst: PyMapping_SetItemString
      Src: /src/cpython/Python/import.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - m
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: _PyImport_SetModuleString
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - get_modules_dict
    - PyMapping_SetItemString
    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:261,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:267,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/import.c:268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 258
    functionDepth: 9
    functionLinenumber: 258
    functionLinenumberEnd: 271
    functionName: import_get_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - get_modules_dict
    - PyMapping_GetOptionalItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_get_module(PyThreadState *tstate, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:276,1
    - Dst: LAZY_MODULES
      Src: /src/cpython/Python/import.c:276,1
    - Dst: LAZY_PENDING_SUBMODULES
      Src: /src/cpython/Python/import.c:277,1
    - Dst: LAZY_PENDING_SUBMODULES
      Src: /src/cpython/Python/import.c:279,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/import.c:279,1
    - Dst: LAZY_MODULES
      Src: /src/cpython/Python/import.c:280,1
    - Dst: PySet_New
      Src: /src/cpython/Python/import.c:280,1
    - Dst: LAZY_MODULES
      Src: /src/cpython/Python/import.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: "(LAZY_MODULES(interp) == NULL &&\n           LAZY_PENDING_SUBMODULES(interp)
        == NULL)"
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 13
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: _PyImport_InitLazyModules
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - LAZY_PENDING_SUBMODULES
    - PySet_New
    - LAZY_MODULES
    - assert
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_InitLazyModules(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:287,1
    - Dst: LAZY_MODULES
      Src: /src/cpython/Python/import.c:287,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:288,1
    - Dst: LAZY_PENDING_SUBMODULES
      Src: /src/cpython/Python/import.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: _PyImport_ClearLazyModules
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - LAZY_MODULES
    - Py_CLEAR
    - LAZY_PENDING_SUBMODULES
    linkageType: ''
    returnType: void
    signature: void _PyImport_ClearLazyModules(PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/import.c:301,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:301,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/cpython/Python/import.c:303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:304,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/import.c:314,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:315,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:319,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:325,1
    - Dst: _IMPORT_TIME_HEADER
      Src: /src/cpython/Python/import.c:326,1
    - Dst: fprintf
      Src: /src/cpython/Python/import.c:328,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - interp
    - mod
    - name
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 291
    functionDepth: 6
    functionLinenumber: 291
    functionLinenumberEnd: 334
    functionName: import_ensure_initialized
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORTLIB
    - _IMPORT_TIME_HEADER
    - _PyInterpreterState_GetConfig
    - PyObject_CallMethodOneArg
    - PyObject_GetOptionalAttr
    - fprintf
    - PyUnicode_AsUTF8
    - _PyModuleSpec_IsInitializing
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int import_ensure_initialized(PyInterpreterState *interp, PyObject
      *mod, PyObject *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:341,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:344,1
    - Dst: import_ensure_initialized
      Src: /src/cpython/Python/import.c:346,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:352,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:354,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:370,1
    - Dst: remove_importlib_frames
      Src: /src/cpython/Python/import.c:371,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 338
    functionDepth: 10
    functionLinenumber: 338
    functionLinenumberEnd: 373
    functionName: PyImport_GetModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 10
    functionsReached:
    - remove_importlib_frames
    - import_ensure_initialized
    - _PyErr_Occurred
    - _PyThreadState_GET
    - Py_XDECREF
    - import_get_module
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetModule(PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/import.c:383,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:386,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:389,1
    - Dst: PyModule_NewObject
      Src: /src/cpython/Python/import.c:390,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/import.c:393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:394,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - modules
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 379
    functionDepth: 13
    functionLinenumber: 379
    functionLinenumberEnd: 399
    functionName: import_add_module_lock_held
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyModule_NewObject
    - PyModule_Check
    - Py_XDECREF
    - Py_DECREF
    - PyMapping_GetOptionalItem
    - PyObject_SetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_add_module_lock_held(PyObject *modules, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:404,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/import.c:410,1
    - Dst: import_add_module_lock_held
      Src: /src/cpython/Python/import.c:411,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/import.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 401
    functionDepth: 14
    functionLinenumber: 401
    functionLinenumberEnd: 414
    functionName: import_add_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - import_add_module_lock_held
    - Py_BEGIN_CRITICAL_SECTION
    - get_modules_dict
    - Py_END_CRITICAL_SECTION
    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:419,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:423,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 416
    functionDepth: 15
    functionLinenumber: 416
    functionLinenumberEnd: 427
    functionName: PyImport_AddModuleRef
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - import_add_module
    - _PyThreadState_GET
    - 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:433,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:434,1
    - Dst: PyWeakref_NewRef
      Src: /src/cpython/Python/import.c:449,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:450,1
    - Dst: _PyWeakref_GET_REF
      Src: /src/cpython/Python/import.c:454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:455,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:456,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:458,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 430
    functionDepth: 15
    functionLinenumber: 430
    functionLinenumberEnd: 464
    functionName: PyImport_AddModuleObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    - import_add_module
    - _PyThreadState_GET
    - PyWeakref_NewRef
    - _PyWeakref_GET_REF
    - Py_XDECREF
    - PyErr_Occurred
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_AddModuleObject(PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:470,1
    - Dst: PyImport_AddModuleObject
      Src: /src/cpython/Python/import.c:474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 467
    functionDepth: 16
    functionLinenumber: 467
    functionLinenumberEnd: 477
    functionName: PyImport_AddModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyImport_AddModuleObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_AddModule(const char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/import.c:488,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:490,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/import.c:491,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/import.c:493,1
    - Dst: PyMapping_DelItem
      Src: /src/cpython/Python/import.c:495,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/import.c:496,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/import.c:497,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/import.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 485
    functionDepth: 8
    functionLinenumber: 485
    functionLinenumberEnd: 502
    functionName: remove_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMapping_DelItem
    - PyDict_Pop
    - _PyErr_ExceptionMatches
    - _PyErr_ChainExceptions1
    - _PyErr_GetRaisedException
    - get_modules_dict
    - _PyErr_Clear
    - PyDict_CheckExact
    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:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 513
    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:526,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:527,1
    - Dst: _get_cached_module_index
      Src: /src/cpython/Python/import.c:527,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: 526
        line_start: 526
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 530
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 530
    functionName: _get_module_index_from_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _find_cached_def
    - _get_cached_module_index
    - 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:535,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:542,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - def
    - index
    argTypes:
    - PyModuleDef*
    - Py_ssize_t
    assertStmts:
    - condition: (index > 0)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_index != 0)
      pos:
        line_end: 541
        line_start: 541
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_index > 0)
      pos:
        line_end: 547
        line_start: 547
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 551
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 551
    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:559,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:562,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - interp
    - index
    argTypes:
    - PyInterpreterState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 566
    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:571,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/import.c:574,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - interp
    - index
    argTypes:
    - PyInterpreterState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 576
    functionName: _modules_by_index_get
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _modules_by_index_check
    - MODULES_BY_INDEX
    - PyList_GET_ITEM
    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:582,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:584,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:585,1
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:585,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:586,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:591,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:591,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/import.c:592,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:592,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Python/import.c:597,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:597,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:597,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: 581
        line_start: 581
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 598
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 598
    functionName: _modules_by_index_set
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - MODULES_BY_INDEX
    - assert
    - PyList_New
    - PyList_Append
    - PyList_GET_SIZE
    - Py_NewRef
    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:603,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:605,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Python/import.c:608,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:608,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - index
    argTypes:
    - PyInterpreterState*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: _modules_by_index_clear_one
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - Py_FatalError
    - MODULES_BY_INDEX
    - _modules_by_index_check
    - 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:615,1
    - Dst: _get_module_index_from_def
      Src: /src/cpython/Python/import.c:619,1
    - Dst: _modules_by_index_get
      Src: /src/cpython/Python/import.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 621
    functionName: PyState_FindModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 6
    functionsReached:
    - _modules_by_index_get
    - _get_module_index_from_def
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyState_FindModule(PyModuleDef* module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:631,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:631,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:635,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:640,1
    - Dst: _get_module_index_from_def
      Src: /src/cpython/Python/import.c:641,1
    - Dst: _modules_by_index_set
      Src: /src/cpython/Python/import.c:642,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: 630
        line_start: 630
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_slots == NULL)
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 643
      start: 627
    functionDepth: 5
    functionLinenumber: 627
    functionLinenumberEnd: 643
    functionName: _PyState_AddModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _get_module_index_from_def
    - _modules_by_index_set
    - _PyErr_SetString
    - _PyErr_Occurred
    - assert
    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:649,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:653,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:655,1
    - Dst: _get_module_index_from_def
      Src: /src/cpython/Python/import.c:662,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:663,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:664,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:664,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/import.c:665,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:665,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/import.c:667,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:671,1
    - Dst: _modules_by_index_set
      Src: /src/cpython/Python/import.c:672,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts:
    - condition: (def->m_slots == NULL)
      pos:
        line_end: 670
        line_start: 670
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 673
      start: 645
    functionDepth: 5
    functionLinenumber: 645
    functionLinenumberEnd: 673
    functionName: PyState_AddModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - Py_FatalError
    - MODULES_BY_INDEX
    - _get_module_index_from_def
    - _modules_by_index_set
    - _PyErr_SetString
    - PyList_GET_ITEM
    - _PyThreadState_GET
    - assert
    - _Py_FatalErrorFormat
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int PyState_AddModule(PyObject* module, PyModuleDef* def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:678,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:680,1
    - Dst: _get_module_index_from_def
      Src: /src/cpython/Python/import.c:685,1
    - Dst: _modules_by_index_clear_one
      Src: /src/cpython/Python/import.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 687
    functionName: PyState_RemoveModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    - _get_module_index_from_def
    - _modules_by_index_clear_one
    linkageType: ''
    returnType: int
    signature: int PyState_RemoveModule(PyModuleDef* def)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:694,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:699,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:699,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/import.c:700,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:700,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:701,1
    - Dst: PyModule_GetDef
      Src: /src/cpython/Python/import.c:703,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:707,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/import.c:714,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:714,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/import.c:715,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:715,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 691
    functionDepth: 12
    functionLinenumber: 691
    functionLinenumberEnd: 720
    functionName: _PyImport_ClearModulesByIndex
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - MODULES_BY_INDEX
    - PyList_GET_ITEM
    - PyModule_Check
    - Py_CLEAR
    - PyModule_GetDef
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    - PyList_SetSlice
    linkageType: ''
    returnType: void
    signature: void _PyImport_ClearModulesByIndex(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/cpython/Python/import.c:893,1
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 900
    functionName: _PyImport_ResolveNameWithPackageContext
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - strrchr
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyImport_ResolveNameWithPackageContext(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - newcontext
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 908
    functionName: _PyImport_SwapPackageContext
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyImport_SwapPackageContext(const char *newcontext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLOPENFLAGS
      Src: /src/cpython/Python/import.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 915
    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:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - new_val
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 921
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:930,1
    - Dst: PyModule_GetState
      Src: /src/cpython/Python/import.c:934,1
    - Dst: PyModule_Exec
      Src: /src/cpython/Python/import.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 941
    functionName: exec_builtin_or_dynamic
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyModule_Exec
    - PyModule_GetState
    - PyModule_Check
    linkageType: ''
    returnType: int
    signature: int exec_builtin_or_dynamic(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:954,1
    - Dst: clear_singlephase_extension
      Src: /src/cpython/Python/import.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - filename
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 965
    functionName: _PyImport_ClearExtension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - clear_singlephase_extension
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int _PyImport_ClearExtension(PyObject *name, PyObject *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/import.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1041
    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:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1047
    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:1109,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/import.c:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1116
    functionName: alloc_extensions_cache_value
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMem_RawMalloc
    - PyErr_NoMemory
    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:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct extensions_cache_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1122
    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:1127,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: 1126
        line_start: 1126
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1129
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1129
    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:1144,1
    - Dst: _Py_SetImmortalUntracked
      Src: /src/cpython/Python/import.c:1148,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1152,1
    - Dst: _set_module_index
      Src: /src/cpython/Python/import.c:1153,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1157,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1161,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct extensions_cache_value*
    assertStmts:
    - condition: (def != NULL)
      pos:
        line_end: 1143
        line_start: 1143
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_index > 0)
      pos:
        line_end: 1151
        line_start: 1151
        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: 1158
        line_start: 1156
        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: 1165
      start: 1131
    functionDepth: 2
    functionLinenumber: 1131
    functionLinenumberEnd: 1165
    functionName: fixup_cached_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _set_module_index
    - _Py_SetImmortalUntracked
    - Py_NewRef
    - assert
    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: 1171
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1171
    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:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oldbase
    argTypes:
    - PyModuleDef_Base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1177
    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:1186,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/import.c:1186,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:1188,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: 1185
        line_start: 1185
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1190
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1190
    functionName: del_cached_def
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_IsImmortal
    - Py_XDECREF
    - 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:1195,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1197,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1201,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:1201,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1202,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:1204,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1205,1
    - Dst: is_interpreter_isolated
      Src: /src/cpython/Python/import.c:1205,1
    - Dst: PyDict_Copy
      Src: /src/cpython/Python/import.c:1221,1
    - Dst: PyInterpreterState_GetID
      Src: /src/cpython/Python/import.c:1230,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: 1194
        line_start: 1194
        source_file: /src/cpython/Python/import.c
    - condition: (value->origin != _Py_ext_module_origin_CORE)
      pos:
        line_end: 1201
        line_start: 1201
        source_file: /src/cpython/Python/import.c
    - condition: (PyDict_Check(m_dict))
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_dict == NULL)
      pos:
        line_end: 1196
        line_start: 1196
        source_file: /src/cpython/Python/import.c
    - condition: (!is_interpreter_isolated(interp))
      pos:
        line_end: 1204
        line_start: 1204
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1235
      start: 1192
    functionDepth: 13
    functionLinenumber: 1192
    functionLinenumberEnd: 1235
    functionName: init_cached_m_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - PyDict_Copy
    - PyDict_Check
    - PyInterpreterState_GetID
    - assert
    - is_interpreter_isolated
    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:1241,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1242,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:1245,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: 1240
        line_start: 1240
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_dict->copied != NULL)
      pos:
        line_end: 1241
        line_start: 1241
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1248
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1248
    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:1257,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:1258,1
    - Dst: get_core_module_dict
      Src: /src/cpython/Python/import.c:1262,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1264,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/import.c:1267,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: 1256
        line_start: 1256
        source_file: /src/cpython/Python/import.c
    - condition: (value->def != NULL)
      pos:
        line_end: 1263
        line_start: 1263
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1269
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1269
    functionName: get_cached_m_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - _PyInterpreterState_GET
    - get_core_module_dict
    - 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:1276,1
    - Dst: del_cached_def
      Src: /src/cpython/Python/import.c:1277,1
    - Dst: free_extensions_cache_value
      Src: /src/cpython/Python/import.c:1278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1280
    functionName: del_extensions_cache_value
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - del_cached_m_dict
    - del_cached_def
    - free_extensions_cache_value
    linkageType: ''
    returnType: void
    signature: void del_extensions_cache_value(void *raw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Python/import.c:1285,1
    - Dst: _PyUnicode_AsUTF8NoNUL
      Src: /src/cpython/Python/import.c:1286,1
    - Dst: strlen
      Src: /src/cpython/Python/import.c:1290,1
    - Dst: strlen
      Src: /src/cpython/Python/import.c:1291,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1294,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/import.c:1298,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/import.c:1300,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:1304,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:1306,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1308,1
    - Dst: strlen
      Src: /src/cpython/Python/import.c:1308,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: 1293
        line_start: 1293
        source_file: /src/cpython/Python/import.c
    - condition: (strlen(key) == size - 1)
      pos:
        line_end: 1307
        line_start: 1307
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1310
      start: 1282
    functionDepth: 6
    functionLinenumber: 1282
    functionLinenumberEnd: 1310
    functionName: hashtable_key_from_2_strings
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_RawMalloc
    - memcpy
    - strlen
    - assert
    - _PyUnicode_AsUTF8NoNUL
    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:1315,1
    - Dst: strlen
      Src: /src/cpython/Python/import.c:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1316
    functionName: hashtable_hash_str
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - strlen
    - Py_HashBuffer
    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:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1322
    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:1327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1328
    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: 1353
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1353
    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:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - def
    argTypes:
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1355
    functionDepth: 2
    functionLinenumber: 1355
    functionLinenumberEnd: 1362
    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:1371,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/import.c:1379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1383
    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:1392,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/import.c:1397,1
    - Dst: hashtable_destroy_str
      Src: /src/cpython/Python/import.c:1402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - path
    - name
    - p_key
    argTypes:
    - PyObject*
    - PyObject*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1385
    functionDepth: 7
    functionLinenumber: 1385
    functionLinenumberEnd: 1405
    functionName: _extensions_cache_find_unlocked
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - hashtable_key_from_2_strings
    - _Py_hashtable_get_entry
    - hashtable_destroy_str
    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:1412,1
    - Dst: _extensions_cache_find_unlocked
      Src: /src/cpython/Python/import.c:1415,1
    - Dst: extensions_lock_release
      Src: /src/cpython/Python/import.c:1423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1408
    functionDepth: 8
    functionLinenumber: 1408
    functionLinenumberEnd: 1425
    functionName: _extensions_cache_get
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - extensions_lock_release
    - _extensions_cache_find_unlocked
    - extensions_lock_acquire
    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:1439,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1440,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1443,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1445,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1446,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1447,1
    - Dst: extensions_lock_acquire
      Src: /src/cpython/Python/import.c:1449,1
    - Dst: _extensions_cache_init
      Src: /src/cpython/Python/import.c:1452,1
    - Dst: _extensions_cache_find_unlocked
      Src: /src/cpython/Python/import.c:1459,1
    - Dst: alloc_extensions_cache_value
      Src: /src/cpython/Python/import.c:1474,1
    - Dst: init_cached_m_dict
      Src: /src/cpython/Python/import.c:1493,1
    - Dst: fixup_cached_def
      Src: /src/cpython/Python/import.c:1496,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/import.c:1500,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/import.c:1501,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1514,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1517,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1519,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/import.c:1521,1
    - Dst: restore_old_cached_def
      Src: /src/cpython/Python/import.c:1528,1
    - Dst: del_extensions_cache_value
      Src: /src/cpython/Python/import.c:1530,1
    - Dst: cleanup_old_cached_def
      Src: /src/cpython/Python/import.c:1534,1
    - Dst: extensions_lock_release
      Src: /src/cpython/Python/import.c:1538,1
    - Dst: hashtable_destroy_str
      Src: /src/cpython/Python/import.c:1540,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 8
    argNames:
    - path
    - name
    - def
    - m_init
    - m_index
    - m_dict
    - origin
    - requires_gil
    argTypes:
    - PyObject*
    - PyObject*
    - PyModuleDef*
    - PyModInitFunction
    - Py_ssize_t
    - PyObject*
    - _Py_ext_module_origin
    - bool
    assertStmts:
    - condition: ((origin == _Py_ext_module_origin_DYNAMIC) == (name != path))
      pos:
        line_end: 1445
        line_start: 1445
        source_file: /src/cpython/Python/import.c
    - condition: (m_init == NULL || m_dict == NULL)
      pos:
        line_end: 1439
        line_start: 1439
        source_file: /src/cpython/Python/import.c
    - condition: ((value->m_dict == NULL) == (m_dict == NULL))
      pos:
        line_end: 1518
        line_start: 1518
        source_file: /src/cpython/Python/import.c
    - condition: (value->def == def)
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/cpython/Python/import.c
    - condition: (def != NULL)
      pos:
        line_end: 1438
        line_start: 1438
        source_file: /src/cpython/Python/import.c
    - condition: (value->m_init == m_init)
      pos:
        line_end: 1516
        line_start: 1516
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_init == NULL || def->m_base.m_init == m_init)
      pos:
        line_end: 1442
        line_start: 1442
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL || m_dict != NULL)
      pos:
        line_end: 1444
        line_start: 1444
        source_file: /src/cpython/Python/import.c
    - condition: (origin != _Py_ext_module_origin_CORE || m_dict == NULL)
      pos:
        line_end: 1446
        line_start: 1446
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1544
      start: 1428
    functionDepth: 14
    functionLinenumber: 1428
    functionLinenumberEnd: 1544
    functionName: _extensions_cache_set
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_set
    - PyErr_NoMemory
    - _extensions_cache_find_unlocked
    - extensions_lock_acquire
    - Py_UNREACHABLE
    - cleanup_old_cached_def
    - restore_old_cached_def
    - extensions_lock_release
    - del_extensions_cache_value
    - hashtable_destroy_str
    - alloc_extensions_cache_value
    - assert
    - _extensions_cache_init
    - fixup_cached_def
    - init_cached_m_dict
    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, bool requires_gil)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extensions_lock_acquire
      Src: /src/cpython/Python/import.c:1549,1
    - Dst: _extensions_cache_find_unlocked
      Src: /src/cpython/Python/import.c:1557,1
    - Dst: del_extensions_cache_value
      Src: /src/cpython/Python/import.c:1569,1
    - Dst: extensions_lock_release
      Src: /src/cpython/Python/import.c:1572,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1546
    functionDepth: 8
    functionLinenumber: 1546
    functionLinenumberEnd: 1573
    functionName: _extensions_cache_delete
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - extensions_lock_release
    - del_extensions_cache_value
    - _extensions_cache_find_unlocked
    - extensions_lock_acquire
    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:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1582
    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:1590,1
    - Dst: _PyInterpreterState_HasFeature
      Src: /src/cpython/Python/import.c:1597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1602
    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:1607,1
    - Dst: check_multi_interp_extensions
      Src: /src/cpython/Python/import.c:1608,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1609,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:1609,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:1610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (!_Py_IsMainInterpreter(interp))
      pos:
        line_end: 1608
        line_start: 1608
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1616
      start: 1604
    functionDepth: 2
    functionLinenumber: 1604
    functionLinenumberEnd: 1616
    functionName: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _Py_IsMainInterpreter
    - check_multi_interp_extensions
    - _PyInterpreterState_GET
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyImport_CheckSubinterpIncompatibleExtensionAllowed(const char
      *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:1622,1
    - Dst: _PyEval_DisableGIL
      Src: /src/cpython/Python/import.c:1624,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:1628,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:1631,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1632,1
    - Dst: _PyImport_EnableGILAndWarn
      Src: /src/cpython/Python/import.c:1634,1
    - Dst: _PyEval_DisableGIL
      Src: /src/cpython/Python/import.c:1639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - module
    - module_name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (((PyModuleObject *)module)->md_token_is_def)
      pos:
        line_end: 1631
        line_start: 1631
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1643
      start: 1619
    functionDepth: 3
    functionLinenumber: 1619
    functionLinenumberEnd: 1643
    functionName: _PyImport_CheckGILForModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyEval_DisableGIL
    - PyModule_Check
    - _PyThreadState_GET
    - _PyImport_EnableGILAndWarn
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyImport_CheckGILForModule(PyObject* module, PyObject *module_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_EnableGILPermanent
      Src: /src/cpython/Python/import.c:1648,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/import.c:1649,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:1659,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/import.c:1661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - tstate
    - module_name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1645
    functionDepth: 2
    functionLinenumber: 1645
    functionLinenumberEnd: 1665
    functionName: _PyImport_EnableGILAndWarn
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - PySys_FormatStderr
    - _PyEval_EnableGILPermanent
    - _PyInterpreterState_GetConfig
    - PyErr_WarnFormat
    linkageType: ''
    returnType: int
    signature: int _PyImport_EnableGILAndWarn(PyThreadState *tstate, PyObject *module_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:1671,1
    - Dst: _PyThreadState_NewBound
      Src: /src/cpython/Python/import.c:1674,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/import.c:1675,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/import.c:1680,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1681,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/import.c:1683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (old_tstate == tstate)
      pos:
        line_end: 1680
        line_start: 1680
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1686
      start: 1668
    functionDepth: 6
    functionLinenumber: 1668
    functionLinenumberEnd: 1686
    functionName: switch_to_main_interpreter
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - PyThreadState_Swap
    - assert
    - _PyInterpreterState_Main
    - _PyThreadState_NewBound
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      switch_to_main_interpreter(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:1693,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/import.c:1693,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1694,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:1694,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1695,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1699,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/import.c:1700,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:1702,1
    - Dst: PyErr_PrintEx
      Src: /src/cpython/Python/import.c:1706,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:1710,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/import.c:1712,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/import.c:1713,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Python/import.c:1714,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: 1692
        line_start: 1692
        source_file: /src/cpython/Python/import.c
    - condition: (tstate->interp != main_tstate->interp)
      pos:
        line_end: 1694
        line_start: 1694
        source_file: /src/cpython/Python/import.c
    - condition: (_Py_IsMainInterpreter(main_tstate->interp))
      pos:
        line_end: 1693
        line_start: 1693
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1715
      start: 1688
    functionDepth: 9
    functionLinenumber: 1688
    functionLinenumberEnd: 1715
    functionName: switch_back_from_main_interpreter
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Clear
    - _Py_IsMainInterpreter
    - PyThreadState_Swap
    - PyThreadState_GET
    - PyErr_PrintEx
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - PyThreadState_Delete
    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:1723,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1723,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1724,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:1725,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1727,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1727,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1728,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:1729,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1731,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - interp
    - name
    - path
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1730
        line_start: 1730
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1734
      start: 1717
    functionDepth: 2
    functionLinenumber: 1717
    functionLinenumberEnd: 1734
    functionName: get_core_module_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CompareWithASCIIString
    - Py_NewRef
    - PyErr_Occurred
    - 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:1743,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - interp
    - name
    - path
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1737
    functionDepth: 2
    functionLinenumber: 1737
    functionLinenumberEnd: 1751
    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: 1778
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1778
    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: 1797
      start: 1791
    functionDepth: 0
    functionLinenumber: 1791
    functionLinenumberEnd: 1797
    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: 1803
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1803
    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:1831,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1832,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1836,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1837,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1838,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1849,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:1849,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1850,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1851,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1852,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1855,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:1855,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1858,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1859,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:1859,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1860,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1860,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1861,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/cpython/Python/import.c:1861,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:1868,1
    - Dst: _extensions_cache_get
      Src: /src/cpython/Python/import.c:1870,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1871,1
    - Dst: _extensions_cache_set
      Src: /src/cpython/Python/import.c:1873,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: (def->m_size >= 0)
      pos:
        line_end: 1837
        line_start: 1837
        source_file: /src/cpython/Python/import.c
    - condition: (PyDict_Check(singlephase->m_dict))
      pos:
        line_end: 1854
        line_start: 1854
        source_file: /src/cpython/Python/import.c
    - condition: (!is_core_module(tstate->interp, name, path))
      pos:
        line_end: 1858
        line_start: 1858
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 1836
        line_start: 1836
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size == -1)
      pos:
        line_end: 1849
        line_start: 1849
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 1850
        line_start: 1850
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_init == NULL)
      pos:
        line_end: 1851
        line_start: 1851
        source_file: /src/cpython/Python/import.c
    - condition: (PyUnicode_CompareWithASCIIString(name, "builtins") != 0)
      pos:
        line_end: 1860
        line_start: 1860
        source_file: /src/cpython/Python/import.c
    - condition: (cached == NULL || cached->def == def)
      pos:
        line_end: 1870
        line_start: 1870
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_init == NULL)
      pos:
        line_end: 1830
        line_start: 1830
        source_file: /src/cpython/Python/import.c
    - condition: (singlephase->m_dict == NULL)
      pos:
        line_end: 1835
        line_start: 1835
        source_file: /src/cpython/Python/import.c
    - condition: (is_core_module(tstate->interp, name, path))
      pos:
        line_end: 1848
        line_start: 1848
        source_file: /src/cpython/Python/import.c
    - condition: (PyUnicode_CompareWithASCIIString(name, "sys") != 0)
      pos:
        line_end: 1859
        line_start: 1859
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size == -1)
      pos:
        line_end: 1857
        line_start: 1857
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1884
      start: 1819
    functionDepth: 15
    functionLinenumber: 1819
    functionLinenumberEnd: 1884
    functionName: update_global_state_for_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _Py_IsMainInterpreter
    - _extensions_cache_set
    - assert
    - PyDict_Check
    - PyUnicode_CompareWithASCIIString
    - is_core_module
    - _extensions_cache_get
    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:1893,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:1893,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1894,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/import.c:1894,1
    - Dst: _get_cached_module_index
      Src: /src/cpython/Python/import.c:1896,1
    - Dst: _modules_by_index_set
      Src: /src/cpython/Python/import.c:1897,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/import.c:1902,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: 1892
        line_start: 1892
        source_file: /src/cpython/Python/import.c
    - condition: (cached->def == _PyModule_GetDefOrNull(mod))
      pos:
        line_end: 1893
        line_start: 1893
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 1908
      start: 1888
    functionDepth: 5
    functionLinenumber: 1888
    functionLinenumberEnd: 1908
    functionName: finish_singlephase_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _get_cached_module_index
    - _modules_by_index_set
    - PyModule_Check
    - _PyModule_GetDefOrNull
    - assert
    - PyObject_SetItem
    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:1917,1
    - Dst: assert_singlephase
      Src: /src/cpython/Python/import.c:1918,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:1924,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1925,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Python/import.c:1926,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:1930,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1933,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1934,1
    - Dst: get_cached_m_dict
      Src: /src/cpython/Python/import.c:1938,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1940,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1940,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:1943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1945,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/import.c:1948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1951,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/import.c:1954,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:1957,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1972,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/import.c:1972,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/import.c:1973,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1976,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1977,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1981,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1981,1
    - Dst: _PyImport_RunModInitFunc
      Src: /src/cpython/Python/import.c:1985,1
    - Dst: _Py_ext_module_loader_result_apply_error
      Src: /src/cpython/Python/import.c:1986,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1989,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:1989,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1990,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1991,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:1996,1
    - Dst: _Py_ext_module_loader_result_clear
      Src: /src/cpython/Python/import.c:1997,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/import.c:2001,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:2002,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/import.c:2006,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2007,1
    - Dst: _get_cached_module_index
      Src: /src/cpython/Python/import.c:2012,1
    - Dst: _modules_by_index_set
      Src: /src/cpython/Python/import.c:2013,1
    - Dst: PyMapping_DelItem
      Src: /src/cpython/Python/import.c:2014,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2015,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: 1924
        line_start: 1924
        source_file: /src/cpython/Python/import.c
    - condition: "(_PyModule_GetDefOrNull(mod) == NULL\n               || _PyModule_GetDefOrNull(mod)
        == def)"
      pos:
        line_end: 1972
        line_start: 1971
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 1976
        line_start: 1976
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1980
        line_start: 1980
        source_file: /src/cpython/Python/import.c
    - condition: (cached->m_dict == NULL)
      pos:
        line_end: 1975
        line_start: 1975
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1988
        line_start: 1988
        source_file: /src/cpython/Python/import.c
    - condition: (res.kind == _Py_ext_module_kind_SINGLEPHASE)
      pos:
        line_end: 1990
        line_start: 1990
        source_file: /src/cpython/Python/import.c
    - condition: (res.def == def)
      pos:
        line_end: 1995
        line_start: 1995
        source_file: /src/cpython/Python/import.c
    - condition: (def != NULL)
      pos:
        line_end: 1916
        line_start: 1916
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_init == NULL)
      pos:
        line_end: 1933
        line_start: 1933
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1939
        line_start: 1939
        source_file: /src/cpython/Python/import.c
    - condition: (cached->m_init == NULL)
      pos:
        line_end: 1932
        line_start: 1932
        source_file: /src/cpython/Python/import.c
    - condition: (res.err == NULL)
      pos:
        line_end: 1989
        line_start: 1989
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 2020
      start: 1911
    functionDepth: 15
    functionLinenumber: 1911
    functionLinenumberEnd: 2020
    functionName: reload_singlephase_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyImport_RunModInitFunc
    - _modules_by_index_set
    - get_modules_dict
    - PyErr_Occurred
    - assert
    - PyModule_AddObjectRef
    - _get_cached_module_index
    - PyMapping_DelItem
    - PyModule_GetDict
    - PyUnicode_AsUTF8
    - PyDict_Update
    - _Py_ext_module_loader_result_apply_error
    - _PyModule_GetDefOrNull
    - PyErr_Clear
    - get_cached_m_dict
    - _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    - Py_DECREF
    - _Py_ext_module_loader_result_clear
    - PyObject_SetItem
    - import_add_module
    - assert_singlephase
    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:2029,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2033,1
    - Dst: assert_singlephase
      Src: /src/cpython/Python/import.c:2034,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:2040,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2041,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Python/import.c:2042,1
    - Dst: reload_singlephase_extension
      Src: /src/cpython/Python/import.c:2046,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:2051,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/import.c:2053,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: (name_buf != NULL)
      pos:
        line_end: 2040
        line_start: 2040
        source_file: /src/cpython/Python/import.c
    - condition: (cached->def != NULL)
      pos:
        line_end: 2032
        line_start: 2032
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 2058
      start: 2022
    functionDepth: 16
    functionLinenumber: 2022
    functionLinenumberEnd: 2058
    functionName: import_find_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PySys_FormatStderr
    - _PyInterpreterState_GetConfig
    - assert
    - reload_singlephase_extension
    - PyUnicode_AsUTF8
    - assert_singlephase
    - _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    - _extensions_cache_get
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: ex0
      Src: /src/cpython/Python/import.c:2068,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2070,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:2071,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2078,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:2079,1
    - Dst: PyModule_FromSlotsAndSpec
      Src: /src/cpython/Python/import.c:2084,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:2088,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - tstate
    - ex0
    - info
    - spec
    argTypes:
    - PyThreadState*
    - PyModExportFunction
    - struct _Py_ext_module_loader_info*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2060
    functionDepth: 15
    functionLinenumber: 2060
    functionLinenumberEnd: 2095
    functionName: import_run_modexport
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - ex0
    - PyModule_Check
    - PyErr_Format
    - PyErr_Occurred
    - PyModule_FromSlotsAndSpec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nimport_run_modexport(PyThreadState *tstate, PyModExportFunction
      ex0,\n                     struct _Py_ext_module_loader_info *info,\n                     PyObject
      *spec)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:2103,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:2103,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/import.c:2108,1
    - Dst: switch_to_main_interpreter
      Src: /src/cpython/Python/import.c:2158,1
    - Dst: _PyImport_RunModInitFunc
      Src: /src/cpython/Python/import.c:2170,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2174,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2177,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2177,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2178,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2183,1
    - Dst: _PyUnicode_Copy
      Src: /src/cpython/Python/import.c:2194,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:2201,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:2205,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/import.c:2206,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/import.c:2208,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:2209,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2214,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2229,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/import.c:2230,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2231,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2235,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2236,1
    - Dst: update_global_state_for_extension
      Src: /src/cpython/Python/import.c:2239,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2242,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2242,1
    - Dst: _Py_ext_module_loader_result_apply_error
      Src: /src/cpython/Python/import.c:2251,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2260,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2260,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:2261,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2263,1
    - Dst: switch_back_from_main_interpreter
      Src: /src/cpython/Python/import.c:2264,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:2269,1
    - Dst: assert_multiphase_def
      Src: /src/cpython/Python/import.c:2288,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2289,1
    - Dst: PyModule_FromDefAndSpec
      Src: /src/cpython/Python/import.c:2292,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2298,1
    - Dst: assert_singlephase_def
      Src: /src/cpython/Python/import.c:2299,1
    - Dst: _PyImport_CheckSubinterpIncompatibleExtensionAllowed
      Src: /src/cpython/Python/import.c:2301,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2304,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2304,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2310,1
    - Dst: reload_singlephase_extension
      Src: /src/cpython/Python/import.c:2311,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2315,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2315,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2316,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:2316,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2319,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2320,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:2320,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:2323,1
    - Dst: finish_singlephase_extension
      Src: /src/cpython/Python/import.c:2324,1
    - Dst: _Py_ext_module_loader_result_clear
      Src: /src/cpython/Python/import.c:2332,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:2336,1
    - Dst: _Py_ext_module_loader_result_clear
      Src: /src/cpython/Python/import.c:2337,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 121
    argCount: 5
    argNames:
    - tstate
    - p0
    - info
    - spec
    - modules
    argTypes:
    - PyThreadState*
    - PyModInitFunction
    - struct _Py_ext_module_loader_info*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (res.module == NULL)
      pos:
        line_end: 2173
        line_start: 2173
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2176
        line_start: 2176
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_init == NULL)
      pos:
        line_end: 2228
        line_start: 2228
        source_file: /src/cpython/Python/import.c
    - condition: (mod == NULL)
      pos:
        line_end: 2288
        line_start: 2288
        source_file: /src/cpython/Python/import.c
    - condition: (res.kind == _Py_ext_module_kind_SINGLEPHASE)
      pos:
        line_end: 2297
        line_start: 2297
        source_file: /src/cpython/Python/import.c
    - condition: (mod == NULL)
      pos:
        line_end: 2309
        line_start: 2309
        source_file: /src/cpython/Python/import.c
    - condition: (PyModule_Check(mod))
      pos:
        line_end: 2315
        line_start: 2315
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 2235
        line_start: 2235
        source_file: /src/cpython/Python/import.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2241
        line_start: 2241
        source_file: /src/cpython/Python/import.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2259
        line_start: 2259
        source_file: /src/cpython/Python/import.c
    - condition: (res.err == NULL)
      pos:
        line_end: 2177
        line_start: 2177
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_index != 0)
      pos:
        line_end: 2213
        line_start: 2213
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size >= 0)
      pos:
        line_end: 2234
        line_start: 2234
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/cpython/Python/import.c
    - condition: (PyModule_Check(mod))
      pos:
        line_end: 2319
        line_start: 2319
        source_file: /src/cpython/Python/import.c
    - condition: (!is_core_module(tstate->interp, info->name, info->path))
      pos:
        line_end: 2102
        line_start: 2102
        source_file: /src/cpython/Python/import.c
    - condition: (def != NULL)
      pos:
        line_end: 2182
        line_start: 2182
        source_file: /src/cpython/Python/import.c
    - condition: (singlephase.m_dict != NULL)
      pos:
        line_end: 2230
        line_start: 2230
        source_file: /src/cpython/Python/import.c
    - condition: (main_tstate != tstate)
      pos:
        line_end: 2262
        line_start: 2262
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2314
        line_start: 2314
        source_file: /src/cpython/Python/import.c
    - condition: (mod != NULL)
      pos:
        line_end: 2318
        line_start: 2318
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 2339
      start: 2097
    functionDepth: 16
    functionLinenumber: 2097
    functionLinenumberEnd: 2339
    functionName: import_run_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyImport_RunModInitFunc
    - get_modules_dict
    - PyErr_Occurred
    - assert
    - PyModule_AddObjectRef
    - assert_multiphase_def
    - _PyUnicode_Copy
    - update_global_state_for_extension
    - finish_singlephase_extension
    - switch_to_main_interpreter
    - PyModule_GetDict
    - Py_XDECREF
    - PyBytes_AS_STRING
    - reload_singlephase_extension
    - PyErr_SetString
    - _Py_ext_module_loader_result_apply_error
    - PyModule_Check
    - PyErr_Clear
    - _PyImport_CheckSubinterpIncompatibleExtensionAllowed
    - switch_back_from_main_interpreter
    - _Py_ext_module_loader_result_clear
    - Py_NewRef
    - PyModule_FromDefAndSpec
    - _PyInterpreterState_GET
    - is_core_module
    - assert_singlephase_def
    - _PyUnicode_InternImmortal
    - PyErr_FormatUnraisable
    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:2347,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2349,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:2358,1
    - Dst: _get_cached_module_index
      Src: /src/cpython/Python/import.c:2362,1
    - Dst: _modules_by_index_check
      Src: /src/cpython/Python/import.c:2363,1
    - Dst: _modules_by_index_clear_one
      Src: /src/cpython/Python/import.c:2364,1
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/import.c:2371,1
    - Dst: switch_to_main_interpreter
      Src: /src/cpython/Python/import.c:2372,1
    - Dst: _extensions_cache_delete
      Src: /src/cpython/Python/import.c:2378,1
    - Dst: switch_back_from_main_interpreter
      Src: /src/cpython/Python/import.c:2381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - interp
    - name
    - path
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2343
    functionDepth: 10
    functionLinenumber: 2343
    functionLinenumberEnd: 2385
    functionName: clear_singlephase_extension
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - _get_cached_module_index
    - switch_to_main_interpreter
    - PyThreadState_GET
    - switch_back_from_main_interpreter
    - Py_CLEAR
    - _modules_by_index_clear_one
    - PyErr_Occurred
    - _extensions_cache_get
    - _modules_by_index_check
    - _extensions_cache_delete
    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:2397,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:2397,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/import.c:2400,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/import.c:2405,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2407,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:2407,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/import.c:2408,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2416,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:2416,1
    - Dst: assert_singlephase_def
      Src: /src/cpython/Python/import.c:2417,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2418,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2419,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2420,1
    - Dst: _extensions_cache_get
      Src: /src/cpython/Python/import.c:2427,1
    - Dst: update_global_state_for_extension
      Src: /src/cpython/Python/import.c:2439,1
    - Dst: finish_singlephase_extension
      Src: /src/cpython/Python/import.c:2446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2453,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - tstate
    - mod
    - name
    - modules
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (mod != NULL && PyModule_Check(mod))
      pos:
        line_end: 2396
        line_start: 2396
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2406
        line_start: 2406
        source_file: /src/cpython/Python/import.c
    - condition: (is_core_module(tstate->interp, nameobj, nameobj))
      pos:
        line_end: 2415
        line_start: 2415
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_index >= 0)
      pos:
        line_end: 2419
        line_start: 2419
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_base.m_copy == NULL)
      pos:
        line_end: 2418
        line_start: 2418
        source_file: /src/cpython/Python/import.c
    - condition: (def->m_size == -1)
      pos:
        line_end: 2417
        line_start: 2417
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 2455
      start: 2392
    functionDepth: 16
    functionLinenumber: 2392
    functionLinenumberEnd: 2455
    functionName: _PyImport_FixupBuiltin
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - update_global_state_for_extension
    - PyUnicode_InternFromString
    - is_core_module
    - finish_singlephase_extension
    - PyModule_Check
    - PyErr_BadInternalCall
    - _extensions_cache_get
    - _PyModule_GetDefOrNull
    - PyErr_Occurred
    - assert
    - assert_singlephase_def
    - Py_DECREF
    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:2465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2459
    functionDepth: 2
    functionLinenumber: 2459
    functionLinenumberEnd: 2473
    functionName: is_builtin
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    linkageType: ''
    returnType: int
    signature: int is_builtin(PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:2479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct _Py_ext_module_loader_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2475
    functionDepth: 2
    functionLinenumber: 2475
    functionLinenumberEnd: 2485
    functionName: lookup_inittab_entry
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    linkageType: ''
    returnType: struct _inittab
    signature: 'struct _inittab *

      lookup_inittab_entry(const struct _Py_ext_module_loader_info* info)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ext_module_loader_info_init_for_builtin
      Src: /src/cpython/Python/import.c:2494,1
    - Dst: import_find_extension
      Src: /src/cpython/Python/import.c:2499,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2501,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:2501,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2502,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2504,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/import.c:2504,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/import.c:2505,1
    - Dst: assert_singlephase
      Src: /src/cpython/Python/import.c:2506,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:2509,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2517,1
    - Dst: _extensions_cache_delete
      Src: /src/cpython/Python/import.c:2519,1
    - Dst: lookup_inittab_entry
      Src: /src/cpython/Python/import.c:2524,1
    - Dst: _PyErr_SetModuleNotFoundError
      Src: /src/cpython/Python/import.c:2527,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:2539,1
    - Dst: is_core_module
      Src: /src/cpython/Python/import.c:2539,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:2540,1
    - Dst: _PyEval_EnableGILTransient
      Src: /src/cpython/Python/import.c:2551,1
    - Dst: import_run_extension
      Src: /src/cpython/Python/import.c:2554,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:2555,1
    - Dst: _PyImport_CheckGILForModule
      Src: /src/cpython/Python/import.c:2557,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:2558,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/import.c:2564,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - tstate
    - name
    - spec
    - initfunc
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyModInitFunction
    assertStmts:
    - condition: (cached->def->m_base.m_copy == NULL)
      pos:
        line_end: 2516
        line_start: 2516
        source_file: /src/cpython/Python/import.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2500
        line_start: 2500
        source_file: /src/cpython/Python/import.c
    - condition: "(_PyModule_GetDefOrNull(mod) == NULL\n                || cached->def
        == _PyModule_GetDefOrNull(mod))"
      pos:
        line_end: 2504
        line_start: 2503
        source_file: /src/cpython/Python/import.c
    - condition: (cached != NULL)
      pos:
        line_end: 2501
        line_start: 2501
        source_file: /src/cpython/Python/import.c
    - condition: (is_core_module(tstate->interp, info.name, info.path))
      pos:
        line_end: 2538
        line_start: 2538
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 2566
      start: 2487
    functionDepth: 17
    functionLinenumber: 2487
    functionLinenumberEnd: 2566
    functionName: create_builtin
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyEval_EnableGILTransient
    - import_find_extension
    - is_core_module
    - _PyErr_Occurred
    - import_add_module
    - Py_CLEAR
    - _PyModule_GetDefOrNull
    - _Py_ext_module_loader_info_init_for_builtin
    - get_modules_dict
    - _PyErr_SetModuleNotFoundError
    - assert_singlephase
    - assert
    - _PyImport_CheckGILForModule
    - _Py_ext_module_loader_info_clear
    - lookup_inittab_entry
    - import_run_extension
    - _extensions_cache_delete
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncreate_builtin(\n    PyThreadState *tstate, PyObject *name,\n
      \   PyObject *spec,\n    PyModInitFunction initfunc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/import.c:2573,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:2577,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:2579,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2579,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:2584,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:2585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2587,1
    - Dst: create_builtin
      Src: /src/cpython/Python/import.c:2591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - spec
    - (*initfunc)(void)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2568
    functionDepth: 18
    functionLinenumber: 2568
    functionLinenumberEnd: 2594
    functionName: PyImport_CreateModuleFromInitfunc
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyObject_GetAttr
    - PyErr_BadInternalCall
    - _PyThreadState_GET
    - PyErr_Format
    - create_builtin
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyImport_CreateModuleFromInitfunc(\n    PyObject *spec,
      PyObject *(*initfunc)(void))"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:2615,1
    - Dst: _PyMem_DefaultRawRealloc
      Src: /src/cpython/Python/import.c:2632,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:2642,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:2644,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - newtab
    argTypes:
    - struct _inittab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2607
    functionDepth: 2
    functionLinenumber: 2607
    functionLinenumberEnd: 2648
    functionName: PyImport_ExtendInittab
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _PyMem_DefaultRawRealloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int PyImport_ExtendInittab(struct _inittab *newtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:2658,1
    - Dst: memset
      Src: /src/cpython/Python/import.c:2661,1
    - Dst: PyImport_ExtendInittab
      Src: /src/cpython/Python/import.c:2666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - name
    - (*initfunc)(void)
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2652
    functionDepth: 3
    functionLinenumber: 2652
    functionLinenumberEnd: 2667
    functionName: PyImport_AppendInittab
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - memset
    - PyImport_ExtendInittab
    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:2681,1
    - Dst: memcpy
      Src: /src/cpython/Python/import.c:2685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2672
    functionDepth: 2
    functionLinenumber: 2672
    functionLinenumberEnd: 2688
    functionName: init_builtin_modules_table
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyMem_DefaultRawMalloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int init_builtin_modules_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DefaultRawFree
      Src: /src/cpython/Python/import.c:2695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2690
    functionDepth: 2
    functionLinenumber: 2690
    functionLinenumberEnd: 2696
    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:2701,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:2707,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2709,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/import.c:2712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2698
    functionDepth: 4
    functionLinenumber: 2698
    functionLinenumberEnd: 2720
    functionName: _PyImport_GetBuiltinModuleNames
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyList_New
    - PyList_Append
    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: 2733
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2733
    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: 2741
      start: 2737
    functionDepth: 0
    functionLinenumber: 2737
    functionLinenumberEnd: 2741
    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:2761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - co
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2763
    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:2768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - co
    - pathname
    argTypes:
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2765
    functionDepth: 1
    functionLinenumber: 2765
    functionLinenumberEnd: 2770
    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:2780,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/import.c:2785,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/import.c:2793,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:2798,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/import.c:2801,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:2804,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:2804,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/import.c:2807,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2808,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2809,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:2812,1
    - Dst: PyImport_ExecCodeModuleObject
      Src: /src/cpython/Python/import.c:2817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2819,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:2820,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:2821,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - name
    - co
    - pathname
    - cpathname
    argTypes:
    - char*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2772
    functionDepth: 2
    functionLinenumber: 2772
    functionLinenumberEnd: 2823
    functionName: PyImport_ExecCodeModuleWithPathnames
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 3
    functionsReached:
    - Py_FatalError
    - IMPORTLIB
    - PyUnicode_FromString
    - PyImport_ExecCodeModuleObject
    - PyObject_CallMethodOneArg
    - _PyInterpreterState_GET
    - PyErr_Clear
    - PyObject_GetAttrString
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    - _Py_ID
    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:2830,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/import.c:2835,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/import.c:2836,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2836,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/import.c:2838,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2838,1
    - Dst: PyEval_GetBuiltins
      Src: /src/cpython/Python/import.c:2838,1
    - Dst: remove_module
      Src: /src/cpython/Python/import.c:2841,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2842,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:2846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2825
    functionDepth: 15
    functionLinenumber: 2825
    functionLinenumberEnd: 2849
    functionName: module_dict_for_exec
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - remove_module
    - PyModule_GetDict
    - import_add_module
    - PyDict_SetItem
    - PyDict_Contains
    - PyEval_GetBuiltins
    - Py_DECREF
    - _Py_ID
    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:2857,1
    - Dst: remove_module
      Src: /src/cpython/Python/import.c:2859,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2862,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:2864,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:2865,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/import.c:2866,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: 2872
      start: 2851
    functionDepth: 10
    functionLinenumber: 2851
    functionLinenumberEnd: 2872
    functionName: exec_code_in_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - remove_module
    - _PyErr_Occurred
    - Py_DECREF
    - import_get_module
    - PyEval_EvalCode
    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:2878,1
    - Dst: module_dict_for_exec
      Src: /src/cpython/Python/import.c:2881,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:2889,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:2889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2892,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Python/import.c:2895,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:2895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2899,1
    - Dst: exec_code_in_module
      Src: /src/cpython/Python/import.c:2900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2902,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - name
    - co
    - pathname
    - cpathname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2874
    functionDepth: 16
    functionLinenumber: 2874
    functionLinenumberEnd: 2904
    functionName: PyImport_ExecCodeModuleObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - IMPORTLIB
    - _PyThreadState_GET
    - PyObject_CallMethodObjArgs
    - _Py_ID
    - exec_code_in_module
    - PyObject_GetAttrString
    - Py_DECREF
    - module_dict_for_exec
    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:2913,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/import.c:2916,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:2916,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/import.c:2919,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/import.c:2921,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/import.c:2922,1
    - Dst: update_code_filenames
      Src: /src/cpython/Python/import.c:2923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - co
    - oldname
    - newname
    argTypes:
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2907
    functionDepth: 2
    functionLinenumber: 2907
    functionLinenumberEnd: 2926
    functionName: update_code_filenames
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyCode_Check
    - PyTuple_GET_ITEM
    - Py_XSETREF
    - update_code_filenames
    - PyUnicode_Compare
    - PyTuple_GET_SIZE
    - Py_NewRef
    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:2933,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:2937,1
    - Dst: update_code_filenames
      Src: /src/cpython/Python/import.c:2938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:2939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - co
    - newname
    argTypes:
    - PyCodeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2928
    functionDepth: 3
    functionLinenumber: 2928
    functionLinenumberEnd: 2940
    functionName: update_compiled_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - update_code_filenames
    - PyUnicode_Compare
    linkageType: ''
    returnType: void
    signature: void update_compiled_module(PyCodeObject *co, PyObject *newname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:2960,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - name
    - aliases
    - alias
    argTypes:
    - char*
    - struct _module_alias*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2967
      start: 2950
    functionDepth: 0
    functionLinenumber: 2950
    functionLinenumberEnd: 2967
    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:2972,1
    - Dst: OVERRIDE_FROZEN_MODULES
      Src: /src/cpython/Python/import.c:2973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2969
    functionDepth: 1
    functionLinenumber: 2969
    functionLinenumberEnd: 2983
    functionName: use_frozen
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - OVERRIDE_FROZEN_MODULES
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: bool
    signature: bool use_frozen(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:2988,1
    - Dst: use_frozen
      Src: /src/cpython/Python/import.c:2992,1
    - Dst: ADD_MODULE
      Src: /src/cpython/Python/import.c:3011,1
    - Dst: ADD_MODULE
      Src: /src/cpython/Python/import.c:3019,1
    - Dst: ADD_MODULE
      Src: /src/cpython/Python/import.c:3027,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:3037,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/import.c:3041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3047,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/import.c:3050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3061,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 2985
    functionDepth: 6
    functionLinenumber: 2985
    functionLinenumberEnd: 3063
    functionName: list_frozen_module_names
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PySequence_Contains
    - use_frozen
    - ADD_MODULE
    - PyList_New
    - PyList_Append
    - Py_DECREF
    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: 3006
      start: 2994
    functionDepth: 0
    functionLinenumber: 2994
    functionLinenumberEnd: 3006
    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:3098,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/import.c:3101,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:3103,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/import.c:3105,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - status
    - modname
    argTypes:
    - frozen_status
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3108
      start: 3076
    functionDepth: 10
    functionLinenumber: 3076
    functionLinenumberEnd: 3108
    functionName: set_frozen_error
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_SetImportError
    - PyUnicode_FromFormat
    - Py_UNREACHABLE
    - PyErr_Clear
    - Py_XDECREF
    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:3120,1
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:3131,1
    - Dst: use_frozen
      Src: /src/cpython/Python/import.c:3137,1
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:3142,1
    - Dst: strcmp
      Src: /src/cpython/Python/import.c:3150,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3110
    functionDepth: 2
    functionLinenumber: 3110
    functionLinenumberEnd: 3156
    functionName: look_up_frozen
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - use_frozen
    - strcmp
    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:3171,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:3177,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:3183,1
    - Dst: look_up_frozen
      Src: /src/cpython/Python/import.c:3187,1
    - Dst: resolve_module_alias
      Src: /src/cpython/Python/import.c:3202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - nameobj
    - info
    argTypes:
    - PyObject*
    - struct frozen_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3214
      start: 3167
    functionDepth: 6
    functionLinenumber: 3167
    functionLinenumberEnd: 3214
    functionName: find_frozen
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - look_up_frozen
    - resolve_module_alias
    - PyUnicode_AsUTF8
    - PyErr_Clear
    - memset
    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:3219,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:3222,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:3223,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/import.c:3226,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:3228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - interp
    - info
    argTypes:
    - PyInterpreterState*
    - struct frozen_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3235
      start: 3216
    functionDepth: 11
    functionLinenumber: 3216
    functionLinenumberEnd: 3235
    functionName: unmarshal_frozen_code
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - set_frozen_error
    - PyErr_Clear
    - PyErr_Format
    - PyMarshal_ReadObjectFromString
    - Py_DECREF
    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:3246,1
    - Dst: find_frozen
      Src: /src/cpython/Python/import.c:3251,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:3259,1
    - Dst: unmarshal_frozen_code
      Src: /src/cpython/Python/import.c:3262,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:3269,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/import.c:3272,1
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:3273,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3275,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/import.c:3278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3280,1
    - Dst: module_dict_for_exec
      Src: /src/cpython/Python/import.c:3284,1
    - Dst: exec_code_in_module
      Src: /src/cpython/Python/import.c:3288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3292,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:3296,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:3302,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/import.c:3304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3310,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3315,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3243
    functionDepth: 16
    functionLinenumber: 3243
    functionLinenumberEnd: 3317
    functionName: PyImport_ImportFrozenModuleObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - unmarshal_frozen_code
    - set_frozen_error
    - PyModule_GetDict
    - import_add_module
    - PyDict_SetItemString
    - _PyThreadState_GET
    - find_frozen
    - PyList_New
    - exec_code_in_module
    - Py_XDECREF
    - Py_DECREF
    - Py_NewRef
    - module_dict_for_exec
    linkageType: ''
    returnType: int
    signature: int PyImport_ImportFrozenModuleObject(PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/import.c:3324,1
    - Dst: PyImport_ImportFrozenModuleObject
      Src: /src/cpython/Python/import.c:3327,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3319
    functionDepth: 17
    functionLinenumber: 3319
    functionLinenumberEnd: 3330
    functionName: PyImport_ImportFrozenModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyImport_ImportFrozenModuleObject
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int PyImport_ImportFrozenModule(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:3344,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/import.c:3353,1
    - Dst: _PyNamespace_New
      Src: /src/cpython/Python/import.c:3357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3358,1
    - Dst: create_builtin
      Src: /src/cpython/Python/import.c:3364,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:3365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3366,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3370,1
    - Dst: exec_builtin_or_dynamic
      Src: /src/cpython/Python/import.c:3373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3374,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3380,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (mod != Py_None)
      pos:
        line_end: 3369
        line_start: 3369
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 3382
      start: 3341
    functionDepth: 18
    functionLinenumber: 3341
    functionLinenumberEnd: 3382
    functionName: bootstrap_imp
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - assert
    - Py_BuildValue
    - Py_CLEAR
    - exec_builtin_or_dynamic
    - _PyNamespace_New
    - create_builtin
    - Py_DECREF
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bootstrap_imp(PyThreadState *tstate)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:3398,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:3398,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:3401,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/import.c:3405,1
    - Dst: PyImport_ImportFrozenModule
      Src: /src/cpython/Python/import.c:3407,1
    - Dst: PyImport_AddModuleRef
      Src: /src/cpython/Python/import.c:3411,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3415,1
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/import.c:3419,1
    - Dst: bootstrap_imp
      Src: /src/cpython/Python/import.c:3421,1
    - Dst: _PyImport_SetModuleString
      Src: /src/cpython/Python/import.c:3425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3426,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/import.c:3431,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3437,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3439,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:3439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - tstate
    - sysmod
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 3397
        line_start: 3397
        source_file: /src/cpython/Python/import.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 3438
        line_start: 3438
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 3441
      start: 3395
    functionDepth: 19
    functionLinenumber: 3395
    functionLinenumberEnd: 3441
    functionName: init_importlib
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORTLIB
    - PySys_FormatStderr
    - _PyInterpreterState_GetConfig
    - _PyImport_SetModuleString
    - _PyErr_Occurred
    - PyObject_CallMethod
    - assert
    - Py_DECREF
    - PyImport_ImportFrozenModule
    - PyImport_AddModuleRef
    - bootstrap_imp
    linkageType: ''
    returnType: int
    signature: int init_importlib(PyThreadState *tstate, PyObject *sysmod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/import.c:3448,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3455
      start: 3444
    functionDepth: 5
    functionLinenumber: 3444
    functionLinenumberEnd: 3455
    functionName: init_importlib_external
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - IMPORTLIB
    - 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:3461,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - loader_name
    argTypes:
    - PyInterpreterState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3462
      start: 3457
    functionDepth: 2
    functionLinenumber: 3457
    functionLinenumberEnd: 3462
    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:3468,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3468,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:3474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - loader_name
    argTypes:
    - PyInterpreterState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3464
    functionDepth: 2
    functionLinenumber: 3464
    functionLinenumberEnd: 3477
    functionName: _PyImport_GetImportlibExternalLoader
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - IMPORTLIB
    - 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:3482,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3482,1
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/import.c:3488,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interp
    - module_globals
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3492
      start: 3479
    functionDepth: 5
    functionLinenumber: 3479
    functionLinenumberEnd: 3492
    functionName: _PyImport_BlessMyLoader
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - IMPORTLIB
    - PyObject_CallMethod
    - 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:3497,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:3497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - m
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3498
      start: 3494
    functionDepth: 5
    functionLinenumber: 3494
    functionLinenumberEnd: 3498
    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:3518,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:3519,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:3522,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:3523,1
    - Dst: PyList_Size
      Src: /src/cpython/Python/import.c:3527,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:3531,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/import.c:3537,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/import.c:3541,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/import.c:3544,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/import.c:3548,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/import.c:3551,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/import.c:3556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3557,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: 3561
      start: 3511
    functionDepth: 10
    functionLinenumber: 3511
    functionLinenumberEnd: 3561
    functionName: get_path_importer
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_GetItem
    - PyErr_SetString
    - _PyErr_ExceptionMatches
    - PyDict_SetItem
    - PyList_Check
    - PyDict_Check
    - _PyErr_Clear
    - PyList_Size
    - PyDict_GetItemRef
    - Py_DECREF
    - PyObject_CallOneArg
    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:3566,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/import.c:3567,1
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/import.c:3571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3573,1
    - Dst: get_path_importer
      Src: /src/cpython/Python/import.c:3576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3563
    functionDepth: 11
    functionLinenumber: 3563
    functionLinenumberEnd: 3580
    functionName: PyImport_GetImporter
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyThreadState_GET
    - PySys_GetAttrString
    - get_path_importer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetImporter(PyObject *path)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/import.c:3592,1
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:3595,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/import.c:3598,1
    - Dst: LAZY_IMPORT_FUNC
      Src: /src/cpython/Python/import.c:3602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3587
    functionDepth: 9
    functionLinenumber: 3587
    functionLinenumberEnd: 3604
    functionName: _PyImport_InitDefaultImportFunc
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORT_FUNC
    - PyDict_GetItemStringRef
    - LAZY_IMPORT_FUNC
    linkageType: ''
    returnType: int
    signature: int _PyImport_InitDefaultImportFunc(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:3609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - func
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3606
    functionDepth: 1
    functionLinenumber: 3606
    functionLinenumberEnd: 3610
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: LAZY_IMPORT_FUNC
      Src: /src/cpython/Python/import.c:3615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - func
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3616
      start: 3612
    functionDepth: 1
    functionLinenumber: 3612
    functionLinenumberEnd: 3616
    functionName: _PyImport_IsDefaultLazyImportFunc
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - LAZY_IMPORT_FUNC
    linkageType: ''
    returnType: int
    signature: int _PyImport_IsDefaultLazyImportFunc(PyInterpreterState *interp, PyObject
      *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:3627,1
    - Dst: PyImport_Import
      Src: /src/cpython/Python/import.c:3630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3633
      start: 3621
    functionDepth: 2
    functionLinenumber: 3621
    functionLinenumberEnd: 3633
    functionName: PyImport_ImportModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 48
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyImport_Import
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ImportModule(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/import.c:3650,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/import.c:3656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3657
      start: 3648
    functionDepth: 3
    functionLinenumber: 3648
    functionLinenumberEnd: 3657
    functionName: PyImport_ImportModuleNoBlock
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyImport_ImportModule
    - PyErr_WarnEx
    linkageType: ''
    returnType: void
    signature: void PyImport_ImportModuleNoBlock(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/import.c:3677,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:3678,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/import.c:3682,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/import.c:3682,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3686,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/import.c:3686,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/import.c:3687,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3691,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/import.c:3691,1
    - Dst: PyFrame_GetCode
      Src: /src/cpython/Python/import.c:3695,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:3698,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:3699,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/import.c:3708,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/import.c:3709,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/import.c:3709,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3715,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:3720,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/import.c:3722,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3724,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:3725,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 3685
        line_start: 3685
        source_file: /src/cpython/Python/import.c
    - condition: (PyTraceBack_Check(tb))
      pos:
        line_end: 3690
        line_start: 3690
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 3726
      start: 3662
    functionDepth: 3
    functionLinenumber: 3662
    functionLinenumberEnd: 3726
    functionName: remove_importlib_frames
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyType_IsSubtype
    - Py_INCREF
    - _PyInterpreterState_GetConfig
    - PyFrame_GetCode
    - Py_XSETREF
    - Py_XNewRef
    - _PyUnicode_EqualToASCIIString
    - PyException_SetTraceback
    - PyException_GetTraceback
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyTraceBack_Check
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void remove_importlib_frames(PyThreadState *tstate)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3740,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Python/import.c:3743,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3744,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:3748,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3752,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:3755,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3755,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:3760,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3761,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:3767,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3767,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/import.c:3772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3773,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/import.c:3778,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:3786,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3786,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:3790,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3791,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/import.c:3797,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:3803,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3803,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3807,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:3812,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3813,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/import.c:3818,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3818,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/import.c:3825,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3826,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:3833,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/import.c:3837,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3841,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/import.c:3847,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3852,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3859,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:3860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3861,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3862,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/import.c:3866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3867,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:3871,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3876,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:3877,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 133
    argCount: 4
    argNames:
    - tstate
    - name
    - globals
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3729
    functionDepth: 10
    functionLinenumber: 3729
    functionLinenumberEnd: 3879
    functionName: resolve_name
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyObject_RichCompareBool
    - PyErr_WarnEx
    - _PyErr_SetString
    - Py_SETREF
    - PyUnicode_Check
    - PyObject_GetAttr
    - PyUnicode_FindChar
    - PyUnicode_FromFormat
    - PyDict_Contains
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - Py_DECREF
    - PyDict_GetItemRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resolve_name(PyThreadState *tstate, PyObject *name, PyObject *globals, int level)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resolve_name
      Src: /src/cpython/Python/import.c:3885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tstate
    - name
    - globals
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3881
    functionDepth: 11
    functionLinenumber: 3881
    functionLinenumberEnd: 3886
    functionName: _PyImport_ResolveName
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - resolve_name
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyImport_ResolveName(PyThreadState *tstate, PyObject
      *name,\n                      PyObject *globals, int level)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:3894,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3895,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/import.c:3895,1
    - Dst: _PyImport_AcquireLock
      Src: /src/cpython/Python/import.c:3901,1
    - Dst: PySet_New
      Src: /src/cpython/Python/import.c:3908,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:3910,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:3915,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/import.c:3915,1
    - Dst: _PySet_Contains
      Src: /src/cpython/Python/import.c:3916,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:3918,1
    - Dst: _PyLazyImport_GetName
      Src: /src/cpython/Python/import.c:3922,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:3924,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/import.c:3927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3931,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:3932,1
    - Dst: PyErr_SetImportErrorSubclass
      Src: /src/cpython/Python/import.c:3935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3937,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3938,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:3939,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/import.c:3942,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/import.c:3952,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:3953,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:3960,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/import.c:3961,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:3965,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/import.c:3966,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:3969,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/import.c:3974,1
    - Dst: PyMapping_GetOptionalItem
      Src: /src/cpython/Python/import.c:3976,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:3976,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:3981,1
    - Dst: _PyEval_ImportNameWithImport
      Src: /src/cpython/Python/import.c:3985,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/import.c:3987,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:3991,1
    - Dst: _PyEval_ImportNameWithImport
      Src: /src/cpython/Python/import.c:3995,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/import.c:3997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:3999,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:4005,1
    - Dst: _PyEval_ImportFrom
      Src: /src/cpython/Python/import.c:4007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4008,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:4014,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/import.c:4014,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4019,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:4023,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/import.c:4026,1
    - Dst: _PyLazyImport_GetName
      Src: /src/cpython/Python/import.c:4029,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:4032,1
    - Dst: PyCode_Addr2Line
      Src: /src/cpython/Python/import.c:4037,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:4041,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:4045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4046,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:4047,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:4051,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/import.c:4055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4056,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:4057,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/import.c:4062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4066,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:4070,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/import.c:4074,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4075,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:4079,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:4084,1
    - Dst: _PyTraceback_Add
      Src: /src/cpython/Python/import.c:4085,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/import.c:4086,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Python/import.c:4089,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/import.c:4092,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/import.c:4096,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4097,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:4101,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4103,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4104,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 142
    argCount: 2
    argNames:
    - tstate
    - lazy_import
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts:
    - condition: (lazy_import != NULL)
      pos:
        line_end: 3893
        line_start: 3893
        source_file: /src/cpython/Python/import.c
    - condition: (!PyLazyImport_CheckExact(obj))
      pos:
        line_end: 4013
        line_start: 4013
        source_file: /src/cpython/Python/import.c
    - condition: (PyAnySet_CheckExact(importing))
      pos:
        line_end: 3914
        line_start: 3914
        source_file: /src/cpython/Python/import.c
    - condition: (PyLazyImport_CheckExact(lazy_import))
      pos:
        line_end: 3894
        line_start: 3894
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 4106
      start: 3888
    functionDepth: 18
    functionLinenumber: 3888
    functionLinenumberEnd: 4106
    functionName: _PyImport_LoadLazyImportTstate
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 5
    functionsReached:
    - _PyEval_ImportFrom
    - PyException_SetCause
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - PyErr_Occurred
    - assert
    - _PyEval_ImportNameWithImport
    - PyMapping_GetOptionalItem
    - PyCode_Addr2Line
    - PySet_Discard
    - _PyImport_AcquireLock
    - PyAnySet_CheckExact
    - PyUnicode_Check
    - PyUnicode_FindChar
    - PyUnicode_AsUTF8
    - PyUnicode_Substring
    - Py_XDECREF
    - Py_INCREF
    - PyErr_SetString
    - PySet_New
    - _PyImport_ReleaseLock
    - PyTuple_SET_ITEM
    - PyErr_Clear
    - _PyLong_GetZero
    - Py_DECREF
    - PyTuple_New
    - _PySet_Contains
    - _PyTraceback_Add
    - PySet_Add
    - PyErr_SetImportErrorSubclass
    - _PyLazyImport_GetName
    - PyUnicode_FromFormat
    - PyEval_GetGlobals
    - Py_CLEAR
    - PyLazyImport_CheckExact
    - PyUnicode_GET_LENGTH
    - PyObject_CallOneArg
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_LoadLazyImportTstate(PyThreadState *tstate, PyObject *lazy_import)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:4113,1
    - Dst: _IMPORT_TIME_HEADER
      Src: /src/cpython/Python/import.c:4125,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/import.c:4129,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_START_ENABLED
      Src: /src/cpython/Python/import.c:4133,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_START
      Src: /src/cpython/Python/import.c:4134,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:4134,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Python/import.c:4136,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:4136,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4136,1
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:4137,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED
      Src: /src/cpython/Python/import.c:4139,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_DONE
      Src: /src/cpython/Python/import.c:4140,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:4140,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/import.c:4145,1
    - Dst: fprintf
      Src: /src/cpython/Python/import.c:4149,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Python/import.c:4150,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/cpython/Python/import.c:4151,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/import.c:4152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tstate
    - abs_name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4160
      start: 4108
    functionDepth: 6
    functionLinenumber: 4108
    functionLinenumberEnd: 4160
    functionName: import_find_and_load
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyTime_PerfCounterRaw
    - IMPORTLIB
    - _PyTime_AsMicroseconds
    - _PyInterpreterState_GetConfig
    - PyDTrace_IMPORT_FIND_LOAD_DONE
    - IMPORT_FUNC
    - PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED
    - PyDTrace_IMPORT_FIND_LOAD_START
    - PyUnicode_AsUTF8
    - fprintf
    - PyObject_CallMethodObjArgs
    - _IMPORT_TIME_HEADER
    - PyDTrace_IMPORT_FIND_LOAD_START_ENABLED
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_find_and_load(PyThreadState *tstate, PyObject *abs_name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: resolve_name
      Src: /src/cpython/Python/import.c:4167,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:4169,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:4170,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:4173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - tstate
    - name
    - globals
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4174
      start: 4162
    functionDepth: 11
    functionLinenumber: 4162
    functionLinenumberEnd: 4174
    functionName: get_abs_name
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - resolve_name
    - Py_NewRef
    - _PyErr_SetString
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_abs_name(PyThreadState *tstate, PyObject *name, PyObject
      *globals,\n             int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_abs_name
      Src: /src/cpython/Python/import.c:4180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tstate
    - name
    - globals
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4181
      start: 4176
    functionDepth: 12
    functionLinenumber: 4176
    functionLinenumberEnd: 4181
    functionName: _PyImport_GetAbsName
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - get_abs_name
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyImport_GetAbsName(PyThreadState *tstate, PyObject *name,\n
      \                    PyObject *globals, int level)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:4189,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:4197,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:4204,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:4205,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:4210,1
    - Dst: get_abs_name
      Src: /src/cpython/Python/import.c:4214,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:4219,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:4220,1
    - Dst: import_ensure_initialized
      Src: /src/cpython/Python/import.c:4225,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:4234,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4236,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:4237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4240,1
    - Dst: import_find_and_load
      Src: /src/cpython/Python/import.c:4241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4247,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4251,1
    - Dst: import_find_and_load
      Src: /src/cpython/Python/import.c:4252,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/import.c:4260,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:4265,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/import.c:4269,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:4276,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:4281,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Python/import.c:4286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4287,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:4291,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:4292,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:4298,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:4300,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/import.c:4301,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4309,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:4313,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/import.c:4317,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4317,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/cpython/Python/import.c:4322,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:4323,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4323,1
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:4324,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:4327,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4332,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4333,1
    - Dst: remove_importlib_frames
      Src: /src/cpython/Python/import.c:4335,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 118
    argCount: 5
    argNames:
    - name
    - globals
    - locals
    - fromlist
    - level
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4184
    functionDepth: 12
    functionLinenumber: 4184
    functionLinenumberEnd: 4338
    functionName: PyImport_ImportModuleLevelObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 3
    functionsReached:
    - remove_importlib_frames
    - _PyErr_SetString
    - import_find_and_load
    - _PyThreadState_GET
    - PyObject_CallMethodObjArgs
    - IMPORTLIB
    - import_ensure_initialized
    - PyObject_IsTrue
    - PyUnicode_Check
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - Py_XDECREF
    - PyImport_ImportModuleLevelObject
    - get_abs_name
    - Py_DECREF
    - Py_NewRef
    - _PyErr_Format
    - PyObject_HasAttrWithError
    - _PyErr_Occurred
    - PyUnicode_GET_LENGTH
    - import_get_module
    - IMPORT_FUNC
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyImport_ImportModuleLevelObject(PyObject *name, PyObject
      *globals,\n                                 PyObject *locals, PyObject *fromlist,\n
      \                                int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/cpython/Python/import.c:4343,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:4344,1
    - Dst: _PyModule_GetDict
      Src: /src/cpython/Python/import.c:4344,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:4347,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4348
      start: 4340
    functionDepth: 3
    functionLinenumber: 4340
    functionLinenumberEnd: 4348
    functionName: get_mod_dict
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - PyModule_Check
    - _PyModule_GetDict
    - Py_NewRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mod_dict(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/import.c:4356,1
    - Dst: _PyDict_GetItemRef_Unicode_LockHeld
      Src: /src/cpython/Python/import.c:4357,1
    - Dst: PySet_New
      Src: /src/cpython/Python/import.c:4361,1
    - Dst: _PyDict_SetItem_LockHeld
      Src: /src/cpython/Python/import.c:4363,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4365,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/import.c:4368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - lazy_modules
    - parent
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4352
    functionDepth: 13
    functionLinenumber: 4352
    functionLinenumberEnd: 4370
    functionName: ensure_lazy_pending_submodules
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDict_SetItem_LockHeld
    - PySet_New
    - Py_CLEAR
    - _PyDict_GetItemRef_Unicode_LockHeld
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ensure_lazy_pending_submodules(PyDictObject *lazy_modules, PyObject *parent)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: LAZY_PENDING_SUBMODULES
      Src: /src/cpython/Python/import.c:4386,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:4387,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:4389,1
    - Dst: PyUnicode_FindChar
      Src: /src/cpython/Python/import.c:4391,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:4392,1
    - Dst: ensure_lazy_pending_submodules
      Src: /src/cpython/Python/import.c:4394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4399,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:4403,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4410,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/import.c:4411,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/import.c:4411,1
    - Dst: ensure_lazy_pending_submodules
      Src: /src/cpython/Python/import.c:4417,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/import.c:4423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4427,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/import.c:4430,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/import.c:4430,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/import.c:4432,1
    - Dst: get_mod_dict
      Src: /src/cpython/Python/import.c:4432,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/import.c:4436,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/import.c:4437,1
    - Dst: _PyLazyImport_New
      Src: /src/cpython/Python/import.c:4442,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/import.c:4448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4453,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/import.c:4460,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4465,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4466,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4467,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4468,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4469,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 3
    argNames:
    - tstate
    - name
    - builtins
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (lazy_pending_submodules != NULL)
      pos:
        line_end: 4386
        line_start: 4386
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 4471
      start: 4375
    functionDepth: 14
    functionLinenumber: 4375
    functionLinenumberEnd: 4471
    functionName: register_lazy_on_parent
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PySet_Add
    - LAZY_PENDING_SUBMODULES
    - Py_XSETREF
    - ensure_lazy_pending_submodules
    - get_mod_dict
    - Py_SETREF
    - PyUnicode_FindChar
    - PyDict_SetItem
    - PyImport_GetModule
    - PyDict_Contains
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - _PyLazyImport_New
    linkageType: ''
    returnType: int
    signature: "int register_lazy_on_parent(PyThreadState *tstate, PyObject *name,\n
      \                       PyObject *builtins)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/import.c:4477,1
    - Dst: LAZY_MODULES
      Src: /src/cpython/Python/import.c:4483,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/import.c:4484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4485,1
    - Dst: register_lazy_on_parent
      Src: /src/cpython/Python/import.c:4489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - tstate
    - abs_name
    - from
    - builtins
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4473
    functionDepth: 15
    functionLinenumber: 4473
    functionLinenumberEnd: 4492
    functionName: register_from_lazy_on_parent
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - PyUnicode_FromFormat
    - LAZY_MODULES
    - register_lazy_on_parent
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int register_from_lazy_on_parent(PyThreadState *tstate, PyObject *abs_name,\n
      \                            PyObject *from, PyObject *builtins)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/import.c:4500,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:4501,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/import.c:4502,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/import.c:4507,1
    - Dst: get_abs_name
      Src: /src/cpython/Python/import.c:4511,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/import.c:4517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4519,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:4520,1
    - Dst: LAZY_IMPORTS_LOCK
      Src: /src/cpython/Python/import.c:4529,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/import.c:4530,1
    - Dst: LAZY_IMPORTS_FILTER
      Src: /src/cpython/Python/import.c:4530,1
    - Dst: LAZY_IMPORTS_UNLOCK
      Src: /src/cpython/Python/import.c:4531,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:4535,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4537,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:4541,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:4541,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:4542,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:4545,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:4545,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:4546,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/import.c:4549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4555,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/import.c:4559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4567,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Python/import.c:4568,1
    - Dst: _PyLazyImport_New
      Src: /src/cpython/Python/import.c:4575,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4577,1
    - Dst: LAZY_MODULES
      Src: /src/cpython/Python/import.c:4582,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/import.c:4583,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:4587,1
    - Dst: register_from_lazy_on_parent
      Src: /src/cpython/Python/import.c:4588,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/import.c:4593,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/import.c:4594,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/import.c:4595,1
    - Dst: register_from_lazy_on_parent
      Src: /src/cpython/Python/import.c:4596,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/import.c:4597,1
    - Dst: register_lazy_on_parent
      Src: /src/cpython/Python/import.c:4604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4608,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4612,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 7
    argNames:
    - tstate
    - name
    - builtins
    - globals
    - locals
    - fromlist
    - level
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 4544
        line_start: 4544
        source_file: /src/cpython/Python/import.c
    - condition: (name != NULL)
      pos:
        line_end: 4499
        line_start: 4499
        source_file: /src/cpython/Python/import.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 4540
        line_start: 4540
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 4614
      start: 4494
    functionDepth: 16
    functionLinenumber: 4494
    functionLinenumberEnd: 4614
    functionName: _PyImport_LazyImportModuleLevelObject
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyErr_SetString
    - PyErr_Occurred
    - assert
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - _PyLazyImport_New
    - Py_XNewRef
    - _PyEval_GetFrame
    - PyObject_IsTrue
    - PyUnicode_Check
    - PyImport_ImportModuleLevelObject
    - get_abs_name
    - LAZY_IMPORTS_UNLOCK
    - register_from_lazy_on_parent
    - PyErr_SetString
    - LAZY_MODULES
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_NewRef
    - _PyErr_Format
    - LAZY_IMPORTS_FILTER
    - PySet_Add
    - PyObject_Vectorcall
    - register_lazy_on_parent
    - LAZY_IMPORTS_LOCK
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyImport_LazyImportModuleLevelObject(PyThreadState *tstate,\n
      \                                     PyObject *name, PyObject *builtins,\n
      \                                     PyObject *globals, PyObject *locals,\n
      \                                     PyObject *fromlist, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:4621,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/cpython/Python/import.c:4624,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4626,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: 4628
      start: 4616
    functionDepth: 13
    functionLinenumber: 4616
    functionLinenumberEnd: 4628
    functionName: PyImport_ImportModuleLevel
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyImport_ImportModuleLevelObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyImport_ImportModuleLevel(const char *name, PyObject
      *globals, PyObject *locals,\n                           PyObject *fromlist,
      int level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/import.c:4638,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4638,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/import.c:4640,1
    - Dst: PyImport_ImportModule
      Src: /src/cpython/Python/import.c:4644,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/import.c:4650,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4634
    functionDepth: 11
    functionLinenumber: 4634
    functionLinenumberEnd: 4653
    functionName: PyImport_ReloadModule
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyObject_CallMethodOneArg
    - PyImport_GetModule
    - PyErr_Occurred
    - Py_DECREF
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ReloadModule(PyObject *m)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:4668,1
    - Dst: PyList_New
      Src: /src/cpython/Python/import.c:4674,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/import.c:4680,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/import.c:4682,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/import.c:4684,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4684,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:4690,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/import.c:4695,1
    - Dst: _PyEval_EnsureBuiltinsWithModule
      Src: /src/cpython/Python/import.c:4699,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/import.c:4705,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/import.c:4706,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4706,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/import.c:4708,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4708,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:4712,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/import.c:4712,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/import.c:4719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4723,1
    - Dst: import_get_module
      Src: /src/cpython/Python/import.c:4725,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:4726,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/import.c:4727,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4731,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4732,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4733,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4734,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 1
    argNames:
    - module_name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4737
      start: 4665
    functionDepth: 12
    functionLinenumber: 4665
    functionLinenumberEnd: 4737
    functionName: PyImport_Import
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 9
    functionsReached:
    - Py_INCREF
    - _PyEval_EnsureBuiltinsWithModule
    - _PyErr_SetObject
    - _PyErr_Occurred
    - PyObject_GetAttr
    - PyObject_GetItem
    - PyEval_GetGlobals
    - PyObject_CallFunction
    - _PyThreadState_GET
    - PyDict_New
    - PyDict_Check
    - PyList_New
    - Py_XDECREF
    - Py_DECREF
    - import_get_module
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_Import(PyObject *module_name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/import.c:4748,1
    - Dst: init_builtin_modules_table
      Src: /src/cpython/Python/import.c:4750,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/import.c:4751,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/import.c:4753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4754
      start: 4744
    functionDepth: 3
    functionLinenumber: 4744
    functionLinenumberEnd: 4754
    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:4762,1
    - Dst: fini_builtin_modules_table
      Src: /src/cpython/Python/import.c:4765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4766
      start: 4756
    functionDepth: 3
    functionLinenumber: 4756
    functionLinenumberEnd: 4766
    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:4775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4777
      start: 4768
    functionDepth: 2
    functionLinenumber: 4768
    functionLinenumberEnd: 4777
    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:4792,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/import.c:4793,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/import.c:4797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tstate
    - sysmod
    - importlib
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4798
      start: 4784
    functionDepth: 20
    functionLinenumber: 4784
    functionLinenumberEnd: 4798
    functionName: _PyImport_InitCore
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_ERR
    - 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:4807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4810
      start: 4804
    functionDepth: 1
    functionLinenumber: 4804
    functionLinenumberEnd: 4810
    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:4818,1
    - Dst: MODULES
      Src: /src/cpython/Python/import.c:4818,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4819,1
    - Dst: MODULES_BY_INDEX
      Src: /src/cpython/Python/import.c:4819,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4820,1
    - Dst: IMPORTLIB
      Src: /src/cpython/Python/import.c:4820,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4821,1
    - Dst: IMPORT_FUNC
      Src: /src/cpython/Python/import.c:4821,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4822,1
    - Dst: LAZY_IMPORT_FUNC
      Src: /src/cpython/Python/import.c:4822,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4823,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4824,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4825,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:4826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4827
      start: 4813
    functionDepth: 1
    functionLinenumber: 4813
    functionLinenumberEnd: 4827
    functionName: _PyImport_ClearCore
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - IMPORTLIB
    - MODULES_BY_INDEX
    - Py_CLEAR
    - MODULES
    - IMPORT_FUNC
    - LAZY_IMPORT_FUNC
    linkageType: ''
    returnType: void
    signature: void _PyImport_ClearCore(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:4832,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/import.c:4834,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:4835,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/import.c:4841,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:4842,1
    - Dst: _PyImport_ClearCore
      Src: /src/cpython/Python/import.c:4846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4847
      start: 4829
    functionDepth: 2
    functionLinenumber: 4829
    functionLinenumberEnd: 4847
    functionName: _PyImport_FiniCore
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PySys_ClearAttrString
    - PyErr_FormatUnraisable
    - _PyInterpreterState_GetConfig
    - _PyImport_ClearCore
    linkageType: ''
    returnType: void
    signature: void _PyImport_FiniCore(PyInterpreterState *interp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/import.c:4857,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/import.c:4863,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/import.c:4866,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/import.c:4868,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/import.c:4870,1
    - Dst: PyList_Insert
      Src: /src/cpython/Python/import.c:4875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4878,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/import.c:4882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4885,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - tstate
    - verbose
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4888
      start: 4854
    functionDepth: 2
    functionLinenumber: 4854
    functionLinenumberEnd: 4888
    functionName: init_zipimport
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PySys_WriteStderr
    - _PyErr_Clear
    - PyList_Insert
    - Py_DECREF
    - PySys_GetAttrString
    - PyImport_ImportModuleAttrString
    linkageType: ''
    returnType: int
    signature: int init_zipimport(PyThreadState *tstate, int verbose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:4893,1
    - Dst: init_importlib_external
      Src: /src/cpython/Python/import.c:4897,1
    - Dst: _PyErr_Print
      Src: /src/cpython/Python/import.c:4898,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/import.c:4899,1
    - Dst: init_zipimport
      Src: /src/cpython/Python/import.c:4902,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/import.c:4903,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/import.c:4904,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/import.c:4907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4890
    functionDepth: 6
    functionLinenumber: 4890
    functionLinenumberEnd: 4908
    functionName: _PyImport_InitExternal
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - _PyStatus_OK
    - _PyInterpreterState_GetConfig
    - init_importlib_external
    - _PyStatus_ERR
    - init_zipimport
    - _PyErr_Print
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyImport_InitExternal(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/import.c:4913,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/import.c:4917,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:4918,1
    - Dst: _PySys_ClearAttrString
      Src: /src/cpython/Python/import.c:4921,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/import.c:4922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4925
      start: 4910
    functionDepth: 1
    functionLinenumber: 4910
    functionLinenumberEnd: 4925
    functionName: _PyImport_FiniExternal
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PySys_ClearAttrString
    - PyErr_FormatUnraisable
    - _PyInterpreterState_GetConfig
    linkageType: ''
    returnType: void
    signature: void _PyImport_FiniExternal(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_Import
      Src: /src/cpython/Python/import.c:4935,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/import.c:4939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - modname
    - attrname
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4942
      start: 4932
    functionDepth: 13
    functionLinenumber: 4932
    functionLinenumberEnd: 4942
    functionName: PyImport_ImportModuleAttr
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttr
    - PyImport_Import
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ImportModuleAttr(PyObject *modname, PyObject *attrname)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:4947,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:4951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4953,1
    - Dst: PyImport_ImportModuleAttr
      Src: /src/cpython/Python/import.c:4956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:4958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - modname
    - attrname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4960
      start: 4944
    functionDepth: 14
    functionLinenumber: 4944
    functionLinenumberEnd: 4960
    functionName: PyImport_ImportModuleAttrString
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 35
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyImport_ImportModuleAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ImportModuleAttrString(const char *modname, const char *attrname)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/import.c:4968,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:4969,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:4974,1
    - Dst: LAZY_IMPORTS_LOCK
      Src: /src/cpython/Python/import.c:4977,1
    - Dst: LAZY_IMPORTS_FILTER
      Src: /src/cpython/Python/import.c:4978,1
    - Dst: LAZY_IMPORTS_FILTER
      Src: /src/cpython/Python/import.c:4979,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/import.c:4979,1
    - Dst: LAZY_IMPORTS_UNLOCK
      Src: /src/cpython/Python/import.c:4980,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:4981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - filter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4983
      start: 4962
    functionDepth: 1
    functionLinenumber: 4962
    functionLinenumberEnd: 4983
    functionName: PyImport_SetLazyImportsFilter
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - LAZY_IMPORTS_UNLOCK
    - LAZY_IMPORTS_FILTER
    - PyCallable_Check
    - PyErr_SetString
    - _PyInterpreterState_GET
    - Py_XDECREF
    - Py_XNewRef
    - LAZY_IMPORTS_LOCK
    linkageType: ''
    returnType: int
    signature: int PyImport_SetLazyImportsFilter(PyObject *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:4991,1
    - Dst: LAZY_IMPORTS_LOCK
      Src: /src/cpython/Python/import.c:4992,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/import.c:4993,1
    - Dst: LAZY_IMPORTS_FILTER
      Src: /src/cpython/Python/import.c:4993,1
    - Dst: LAZY_IMPORTS_UNLOCK
      Src: /src/cpython/Python/import.c:4994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4996
      start: 4988
    functionDepth: 1
    functionLinenumber: 4988
    functionLinenumberEnd: 4996
    functionName: PyImport_GetLazyImportsFilter
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - LAZY_IMPORTS_UNLOCK
    - LAZY_IMPORTS_FILTER
    - _PyInterpreterState_GET
    - Py_XNewRef
    - LAZY_IMPORTS_LOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetLazyImportsFilter(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:5001,1
    - Dst: FT_ATOMIC_STORE_INT_RELAXED
      Src: /src/cpython/Python/import.c:5002,1
    - Dst: LAZY_IMPORTS_MODE
      Src: /src/cpython/Python/import.c:5002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mode
    argTypes:
    - PyImport_LazyImportsMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5004
      start: 4998
    functionDepth: 1
    functionLinenumber: 4998
    functionLinenumberEnd: 5004
    functionName: PyImport_SetLazyImportsMode
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 1
    functionsReached:
    - LAZY_IMPORTS_MODE
    - FT_ATOMIC_STORE_INT_RELAXED
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int PyImport_SetLazyImportsMode(PyImport_LazyImportsMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:5011,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Python/import.c:5012,1
    - Dst: LAZY_IMPORTS_MODE
      Src: /src/cpython/Python/import.c:5012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5013
      start: 5008
    functionDepth: 1
    functionLinenumber: 5008
    functionLinenumberEnd: 5013
    functionName: PyImport_GetLazyImportsMode
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 2
    functionsReached:
    - FT_ATOMIC_LOAD_INT_RELAXED
    - LAZY_IMPORTS_MODE
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyImport_LazyImportsMode
    signature: PyImport_LazyImportsMode PyImport_GetLazyImportsMode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:5031,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/import.c:5032,1
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Python/import.c:5032,1
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:5032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5033
      start: 5027
    functionDepth: 1
    functionLinenumber: 5027
    functionLinenumberEnd: 5033
    functionName: _imp_lock_held_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - IMPORT_LOCK
    - PyMutex_IsLocked
    - PyBool_FromLong
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_lock_held_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:5049,1
    - Dst: _PyImport_AcquireLock
      Src: /src/cpython/Python/import.c:5050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5052
      start: 5045
    functionDepth: 2
    functionLinenumber: 5045
    functionLinenumberEnd: 5052
    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:5066,1
    - Dst: _PyRecursiveMutex_IsLockedByCurrentThread
      Src: /src/cpython/Python/import.c:5067,1
    - Dst: IMPORT_LOCK
      Src: /src/cpython/Python/import.c:5067,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:5068,1
    - Dst: _PyImport_ReleaseLock
      Src: /src/cpython/Python/import.c:5072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5074
      start: 5062
    functionDepth: 2
    functionLinenumber: 5062
    functionLinenumberEnd: 5074
    functionName: _imp_release_lock_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - _PyInterpreterState_GET
    - IMPORT_LOCK
    - _PyImport_ReleaseLock
    - _PyRecursiveMutex_IsLockedByCurrentThread
    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:5096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - code
    - path
    argTypes:
    - PyObject*
    - PyCodeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5099
      start: 5090
    functionDepth: 4
    functionLinenumber: 5090
    functionLinenumberEnd: 5099
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:5115,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/import.c:5117,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/import.c:5122,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:5123,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/import.c:5125,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5126,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/import.c:5130,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/import.c:5131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5132,1
    - Dst: create_builtin
      Src: /src/cpython/Python/import.c:5136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - module
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5139
      start: 5111
    functionDepth: 18
    functionLinenumber: 5111
    functionLinenumberEnd: 5139
    functionName: _imp_create_builtin
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetLength
    - PyUnicode_Check
    - create_builtin
    - _PyThreadState_GET
    - PyErr_Format
    - PyObject_GetAttrString
    - Py_DECREF
    - 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:5154,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:5162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5164,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/import.c:5167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5177
      start: 5148
    functionDepth: 4
    functionLinenumber: 5148
    functionLinenumberEnd: 5177
    functionName: _imp_extension_suffixes_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyList_New
    - PyList_Append
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_extension_suffixes_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:5192,1
    - Dst: PyImport_ImportFrozenModuleObject
      Src: /src/cpython/Python/import.c:5195,1
    - Dst: import_add_module
      Src: /src/cpython/Python/import.c:5201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5202
      start: 5188
    functionDepth: 17
    functionLinenumber: 5188
    functionLinenumberEnd: 5202
    functionName: _imp_init_frozen_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - import_add_module
    - _PyThreadState_GET
    - PyImport_ImportFrozenModuleObject
    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:5229,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:5237,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Python/import.c:5243,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/import.c:5251,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:5253,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/import.c:5258,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:5261,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:5262,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - module
    - name
    - withdata
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5264
      start: 5224
    functionDepth: 11
    functionLinenumber: 5224
    functionLinenumberEnd: 5264
    functionName: _imp_find_frozen_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyMemoryView_FromMemory
    - set_frozen_error
    - find_frozen
    - PyTuple_Pack
    - Py_XDECREF
    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:5283,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/import.c:5284,1
    - Dst: _PyArg_BadArgument
      Src: /src/cpython/Python/import.c:5291,1
    - Dst: find_frozen
      Src: /src/cpython/Python/import.c:5295,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:5297,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:5307,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/import.c:5311,1
    - Dst: unmarshal_frozen_code
      Src: /src/cpython/Python/import.c:5312,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/import.c:5314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - module
    - name
    - dataobj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5317
      start: 5276
    functionDepth: 12
    functionLinenumber: 5276
    functionLinenumberEnd: 5317
    functionName: _imp_get_frozen_object_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - unmarshal_frozen_code
    - set_frozen_error
    - _PyArg_BadArgument
    - _PyInterpreterState_GET
    - PyBuffer_Release
    - find_frozen
    - PyObject_GetBuffer
    - PyObject_CheckBuffer
    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:5333,1
    - Dst: set_frozen_error
      Src: /src/cpython/Python/import.c:5335,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/import.c:5338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5339
      start: 5328
    functionDepth: 11
    functionLinenumber: 5328
    functionLinenumberEnd: 5339
    functionName: _imp_is_frozen_package_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - find_frozen
    - set_frozen_error
    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:5354,1
    - Dst: is_builtin
      Src: /src/cpython/Python/import.c:5354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5355
      start: 5350
    functionDepth: 3
    functionLinenumber: 5350
    functionLinenumberEnd: 5355
    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:5371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5376
      start: 5366
    functionDepth: 7
    functionLinenumber: 5366
    functionLinenumberEnd: 5376
    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:5388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5389
      start: 5384
    functionDepth: 7
    functionLinenumber: 5384
    functionLinenumberEnd: 5389
    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:5407,1
    - Dst: OVERRIDE_FROZEN_MODULES
      Src: /src/cpython/Python/import.c:5408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - override
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5410
      start: 5403
    functionDepth: 1
    functionLinenumber: 5403
    functionLinenumberEnd: 5410
    functionName: _imp__override_frozen_modules_for_tests_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - OVERRIDE_FROZEN_MODULES
    - _PyInterpreterState_GET
    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:5429,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/import.c:5430,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:5431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/import.c:5437,1
    - Dst: OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
      Src: /src/cpython/Python/import.c:5442,1
    - Dst: OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
      Src: /src/cpython/Python/import.c:5443,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/import.c:5444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - override
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5446
      start: 5424
    functionDepth: 1
    functionLinenumber: 5424
    functionLinenumberEnd: 5446
    functionName: _imp__override_multi_interp_extensions_check_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _Py_IsMainInterpreter
    - PyErr_SetString
    - OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_imp__override_multi_interp_extensions_check_impl(PyObject
      *module,\n                                                  int override)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:5466,1
    - Dst: _Py_ext_module_loader_info_init_from_spec
      Src: /src/cpython/Python/import.c:5469,1
    - Dst: import_find_extension
      Src: /src/cpython/Python/import.c:5474,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:5476,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:5476,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:5477,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:5479,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/import.c:5479,1
    - Dst: _PyModule_GetDefOrNull
      Src: /src/cpython/Python/import.c:5480,1
    - Dst: assert_singlephase
      Src: /src/cpython/Python/import.c:5481,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/import.c:5484,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:5493,1
    - Dst: _extensions_cache_delete
      Src: /src/cpython/Python/import.c:5495,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/import.c:5498,1
    - Dst: Py_fopen
      Src: /src/cpython/Python/import.c:5508,1
    - Dst: _PyImport_GetModuleExportHooks
      Src: /src/cpython/Python/import.c:5516,1
    - Dst: import_run_modexport
      Src: /src/cpython/Python/import.c:5518,1
    - Dst: _PyEval_EnableGILTransient
      Src: /src/cpython/Python/import.c:5533,1
    - Dst: import_run_extension
      Src: /src/cpython/Python/import.c:5535,1
    - Dst: get_modules_dict
      Src: /src/cpython/Python/import.c:5536,1
    - Dst: _PyImport_CheckGILForModule
      Src: /src/cpython/Python/import.c:5538,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/import.c:5539,1
    - Dst: fclose
      Src: /src/cpython/Python/import.c:5546,1
    - Dst: _Py_ext_module_loader_info_clear
      Src: /src/cpython/Python/import.c:5548,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - module
    - spec
    - file
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 5475
        line_start: 5475
        source_file: /src/cpython/Python/import.c
    - condition: (cached->def->m_base.m_copy == NULL)
      pos:
        line_end: 5492
        line_start: 5492
        source_file: /src/cpython/Python/import.c
    - condition: (cached != NULL)
      pos:
        line_end: 5476
        line_start: 5476
        source_file: /src/cpython/Python/import.c
    - condition: "(_PyModule_GetDefOrNull(mod) == NULL\n                || cached->def
        == _PyModule_GetDefOrNull(mod))"
      pos:
        line_end: 5479
        line_start: 5478
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 5550
      start: 5460
    functionDepth: 17
    functionLinenumber: 5460
    functionLinenumberEnd: 5550
    functionName: _imp_create_dynamic_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyEval_EnableGILTransient
    - _PyThreadState_GET
    - get_modules_dict
    - _PyImport_CheckGILForModule
    - assert
    - Py_fopen
    - import_run_modexport
    - PySys_Audit
    - import_find_extension
    - _Py_ext_module_loader_info_clear
    - _PyModule_GetDefOrNull
    - _PyImport_GetModuleExportHooks
    - _Py_ext_module_loader_info_init_from_spec
    - fclose
    - _PyErr_Occurred
    - Py_CLEAR
    - assert_singlephase
    - import_run_extension
    - _extensions_cache_delete
    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:5565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5561
    functionDepth: 5
    functionLinenumber: 5561
    functionLinenumberEnd: 5566
    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:5584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5585
      start: 5580
    functionDepth: 5
    functionLinenumber: 5580
    functionLinenumberEnd: 5585
    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:5602,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/import.c:5612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - key
    - source
    argTypes:
    - PyObject*
    - long
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5613
      start: 5594
    functionDepth: 4
    functionLinenumber: 5594
    functionLinenumberEnd: 5613
    functionName: _imp_source_hash_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _Py_KeyedHash
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_source_hash_impl(PyObject *module, long key, Py_buffer *source)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetBuiltins
      Src: /src/cpython/Python/import.c:5621,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Python/import.c:5628,1
    - Dst: _PyDict_Contains_KnownHash
      Src: /src/cpython/Python/import.c:5629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5630,1
    - Dst: _PyLazyImport_New
      Src: /src/cpython/Python/import.c:5635,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5638,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/import.c:5643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5650,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - tstate
    - lazy_submodules
    - name
    - module_dict
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5653
      start: 5615
    functionDepth: 10
    functionLinenumber: 5615
    functionLinenumberEnd: 5653
    functionName: publish_lazy_imports_on_module
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltins
    - _PyDict_Contains_KnownHash
    - _PySet_NextEntryRef
    - PyDict_SetItem
    - Py_DECREF
    - _PyLazyImport_New
    linkageType: ''
    returnType: int
    signature: "int publish_lazy_imports_on_module(PyThreadState *tstate,\n                               PyObject
      *lazy_submodules,\n                               PyObject *name,\n                               PyObject
      *module_dict)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/import.c:5668,1
    - Dst: LAZY_PENDING_SUBMODULES
      Src: /src/cpython/Python/import.c:5671,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:5672,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/import.c:5675,1
    - Dst: LAZY_MODULES
      Src: /src/cpython/Python/import.c:5675,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/import.c:5677,1
    - Dst: get_mod_dict
      Src: /src/cpython/Python/import.c:5684,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/import.c:5685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5686,1
    - Dst: assert
      Src: /src/cpython/Python/import.c:5690,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/import.c:5690,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/import.c:5691,1
    - Dst: publish_lazy_imports_on_module
      Src: /src/cpython/Python/import.c:5692,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/import.c:5693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/import.c:5694,1
    - Dst: PyDict_DelItem
      Src: /src/cpython/Python/import.c:5696,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/import.c:5701,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/import.c:5704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - module
    - modobj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (lazy_pending_modules != NULL)
      pos:
        line_end: 5671
        line_start: 5671
        source_file: /src/cpython/Python/import.c
    - condition: (PyAnySet_CheckExact(lazy_submodules))
      pos:
        line_end: 5689
        line_start: 5689
        source_file: /src/cpython/Python/import.c
    constantsTouched: []
    func_position:
      end: 5706
      start: 5663
    functionDepth: 11
    functionLinenumber: 5663
    functionLinenumberEnd: 5706
    functionName: _imp__set_lazy_attributes_impl
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PySet_Discard
    - Py_END_CRITICAL_SECTION
    - LAZY_PENDING_SUBMODULES
    - get_mod_dict
    - Py_BEGIN_CRITICAL_SECTION
    - PyAnySet_CheckExact
    - LAZY_MODULES
    - _PyThreadState_GET
    - PyDict_DelItem
    - Py_XDECREF
    - assert
    - PyDict_CheckExact
    - PyDict_GetItemRef
    - Py_DECREF
    - Py_NewRef
    - publish_lazy_imports_on_module
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_imp__set_lazy_attributes_impl(PyObject *module, PyObject
      *modobj,\n                               PyObject *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/import.c:5739,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/import.c:5740,1
    - Dst: PyModule_Add
      Src: /src/cpython/Python/import.c:5741,1
    - Dst: PyModule_AddIntConstant
      Src: /src/cpython/Python/import.c:5745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5752
      start: 5736
    functionDepth: 5
    functionLinenumber: 5736
    functionLinenumberEnd: 5752
    functionName: imp_module_exec
    functionSourceFile: /src/cpython/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyModule_AddIntConstant
    - PyModule_Add
    - _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:5775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5776
      start: 5772
    functionDepth: 2
    functionLinenumber: 5772
    functionLinenumberEnd: 5776
    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:49,1
    - Dst: sched_yield
      Src: /src/cpython/Python/lock.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: _Py_yield
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - SwitchToThread
    - sched_yield
    linkageType: ''
    returnType: void
    signature: void _Py_yield(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/lock.c:58,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:60,1
    - Dst: FT_STAT_MUTEX_SLEEP_INC
      Src: /src/cpython/Python/lock.c:68,1
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/lock.c:72,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/lock.c:75,1
    - Dst: _Py_ThreadId
      Src: /src/cpython/Python/lock.c:90,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:97,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:105,1
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/lock.c:108,1
    - Dst: Py_IsFinalizing
      Src: /src/cpython/Python/lock.c:116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/lock.c:124,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:133,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/lock.c:138,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:145,1
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/lock.c:145,1
    - Dst: Py_MakePendingCalls
      Src: /src/cpython/Python/lock.c:151,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:159,1
    - Dst: _PyDeadline_Get
      Src: /src/cpython/Python/lock.c:164,1
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/lock.c:171,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 68
    argCount: 3
    argNames:
    - m
    - timeout
    - flags
    argTypes:
    - PyMutex*
    - PyTime_t
    - _PyLockFlags
    assertStmts:
    - condition: "(_Py_atomic_load_uint8_relaxed(&m->_bits) & _Py_LOCKED ||\n                       (flags
        & _PY_LOCK_PYTHONLOCK) != 0)"
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/cpython/Python/lock.c
    - condition: (timeout >= 0)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 173
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 173
    functionName: _PyMutex_LockTimed
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - PyTime_MonotonicRaw
    - FT_STAT_MUTEX_SLEEP_INC
    - _PyParkingLot_Park
    - _Py_atomic_compare_exchange_uint8
    - _PyDeadline_Get
    - Py_IsFinalizing
    - PyErr_SetString
    - _Py_yield
    - _Py_ThreadId
    - _PyTime_Add
    - Py_MakePendingCalls
    - assert
    - _Py_atomic_load_uint8_relaxed
    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:184,1
    - Dst: _Py_atomic_store_uint8
      Src: /src/cpython/Python/lock.c:195,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: 196
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 196
    functionName: mutex_unpark
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - PyTime_MonotonicRaw
    - _Py_atomic_store_uint8
    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:201,1
    - Dst: _PyParkingLot_Unpark
      Src: /src/cpython/Python/lock.c:209,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: _PyMutex_TryUnlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_compare_exchange_uint8
    - _PyParkingLot_Unpark
    - _Py_atomic_load_uint8
    linkageType: ''
    returnType: int
    signature: int _PyMutex_TryUnlock(PyMutex *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySemaphore_Init
      Src: /src/cpython/Python/lock.c:230,1
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/lock.c:232,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:236,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:245,1
    - Dst: _PySemaphore_Wait
      Src: /src/cpython/Python/lock.c:259,1
    - Dst: _PySemaphore_Destroy
      Src: /src/cpython/Python/lock.c:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRawMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 264
    functionName: _PyRawMutex_LockSlow
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _PySemaphore_Destroy
    - _PySemaphore_Init
    - _PySemaphore_Wait
    - _Py_atomic_compare_exchange_uintptr
    - _Py_atomic_load_uintptr
    linkageType: ''
    returnType: void
    signature: void _PyRawMutex_LockSlow(_PyRawMutex *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uintptr
      Src: /src/cpython/Python/lock.c:269,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/lock.c:272,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:278,1
    - Dst: _PySemaphore_Wakeup
      Src: /src/cpython/Python/lock.c:279,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRawMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 289
    functionName: _PyRawMutex_UnlockSlow
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uintptr
    - _PySemaphore_Wakeup
    - Py_FatalError
    - _Py_atomic_compare_exchange_uintptr
    linkageType: ''
    returnType: void
    signature: void _PyRawMutex_UnlockSlow(_PyRawMutex *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evt
    argTypes:
    - PyEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    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:301,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:311,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/lock.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - evt
    argTypes:
    - PyEvent*
    assertStmts:
    - condition: (v == _Py_HAS_PARKED)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: _PyEvent_Notify
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 16
    functionsReached:
    - _PyParkingLot_UnparkAll
    - _Py_atomic_exchange_uint8
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyEvent_Notify(PyEvent *evt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEvent_WaitTimed
      Src: /src/cpython/Python/lock.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - evt
    argTypes:
    - PyEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: PyEvent_Wait
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 12
    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:327,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:333,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/lock.c:339,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - evt
    - timeout_ns
    - detach
    argTypes:
    - PyEvent*
    - PyTime_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 344
    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:356,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/lock.c:357,1
    - Dst: _Py_atomic_exchange_uint8
      Src: /src/cpython/Python/lock.c:362,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/lock.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - o
    - res
    argTypes:
    - _PyOnceFlag*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 368
    functionName: unlock_once
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - Py_FatalError
    - _Py_atomic_exchange_uint8
    - _PyParkingLot_UnparkAll
    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:373,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:376,1
    - Dst: fn
      Src: /src/cpython/Python/lock.c:379,1
    - Dst: unlock_once
      Src: /src/cpython/Python/lock.c:380,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:388,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/lock.c:392,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/lock.c:399,1
    - Dst: _Py_atomic_load_uint8
      Src: /src/cpython/Python/lock.c:400,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: 387
        line_start: 387
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 402
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 402
    functionName: _PyOnceFlag_CallOnceSlow
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - unlock_once
    - _Py_atomic_compare_exchange_uint8
    - fn
    - _Py_atomic_load_uint8
    - assert
    - _PyParkingLot_Park
    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:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - tid
    argTypes:
    - _PyRecursiveMutex*
    - PyThread_ident_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    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:413,1
    - Dst: PyThread_get_thread_ident_ex
      Src: /src/cpython/Python/lock.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRecursiveMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: _PyRecursiveMutex_IsLockedByCurrentThread
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 5
    functionsReached:
    - PyThread_get_thread_ident_ex
    - recursive_mutex_is_owned_by
    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:419,1
    - Dst: recursive_mutex_is_owned_by
      Src: /src/cpython/Python/lock.c:420,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/lock.c:424,1
    - Dst: _Py_atomic_store_ullong_relaxed
      Src: /src/cpython/Python/lock.c:425,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRecursiveMutex*
    assertStmts:
    - condition: (m->level == 0)
      pos:
        line_end: 425
        line_start: 425
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 427
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 427
    functionName: _PyRecursiveMutex_Lock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 3
    functionsReached:
    - PyMutex_Lock
    - recursive_mutex_is_owned_by
    - PyThread_get_thread_ident_ex
    - assert
    - _Py_atomic_store_ullong_relaxed
    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:432,1
    - Dst: recursive_mutex_is_owned_by
      Src: /src/cpython/Python/lock.c:433,1
    - Dst: _PyMutex_LockTimed
      Src: /src/cpython/Python/lock.c:437,1
    - Dst: _Py_atomic_store_ullong_relaxed
      Src: /src/cpython/Python/lock.c:439,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:440,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: 439
        line_start: 439
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 443
      start: 429
    functionDepth: 7
    functionLinenumber: 429
    functionLinenumberEnd: 443
    functionName: _PyRecursiveMutex_LockTimed
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - recursive_mutex_is_owned_by
    - _PyMutex_LockTimed
    - PyThread_get_thread_ident_ex
    - assert
    - _Py_atomic_store_ullong_relaxed
    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:448,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/lock.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRecursiveMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 452
    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:457,1
    - Dst: recursive_mutex_is_owned_by
      Src: /src/cpython/Python/lock.c:458,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:465,1
    - Dst: _Py_atomic_store_ullong_relaxed
      Src: /src/cpython/Python/lock.c:466,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/lock.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - m
    argTypes:
    - _PyRecursiveMutex*
    assertStmts:
    - condition: (m->level == 0)
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: _PyRecursiveMutex_TryUnlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - PyMutex_Unlock
    - recursive_mutex_is_owned_by
    - PyThread_get_thread_ident_ex
    - assert
    - _Py_atomic_store_ullong_relaxed
    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:481,1
    - Dst: _PyParkingLot_Park
      Src: /src/cpython/Python/lock.c:488,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/lock.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - rwmutex
    - bits
    argTypes:
    - _PyRWMutex*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 490
    functionName: rwmutex_set_parked_and_wait
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uintptr_relaxed
    - _PyParkingLot_Park
    - _Py_atomic_compare_exchange_uintptr
    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: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    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:502,1
    - Dst: rwmutex_set_parked_and_wait
      Src: /src/cpython/Python/lock.c:506,1
    - Dst: rwmutex_set_parked_and_wait
      Src: /src/cpython/Python/lock.c:514,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:519,1
    - Dst: rwmutex_reader_count
      Src: /src/cpython/Python/lock.c:519,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:521,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: 518
        line_start: 518
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 528
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 528
    functionName: _PyRWMutex_RLock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - rwmutex_reader_count
    - _Py_atomic_load_uintptr_relaxed
    - assert
    - _Py_atomic_compare_exchange_uintptr
    - rwmutex_set_parked_and_wait
    linkageType: ''
    returnType: void
    signature: void _PyRWMutex_RLock(_PyRWMutex *rwmutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_add_uintptr
      Src: /src/cpython/Python/lock.c:533,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:534,1
    - Dst: rwmutex_reader_count
      Src: /src/cpython/Python/lock.c:534,1
    - Dst: rwmutex_reader_count
      Src: /src/cpython/Python/lock.c:537,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/lock.c:538,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: 533
        line_start: 533
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 541
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 541
    functionName: _PyRWMutex_RUnlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_add_uintptr
    - _PyParkingLot_UnparkAll
    - 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:546,1
    - Dst: _Py_atomic_compare_exchange_uintptr
      Src: /src/cpython/Python/lock.c:551,1
    - Dst: rwmutex_set_parked_and_wait
      Src: /src/cpython/Python/lock.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - rwmutex
    argTypes:
    - _PyRWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 562
    functionName: _PyRWMutex_Lock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 3
    functionsReached:
    - _Py_atomic_compare_exchange_uintptr
    - rwmutex_set_parked_and_wait
    - _Py_atomic_load_uintptr_relaxed
    linkageType: ''
    returnType: void
    signature: void _PyRWMutex_Lock(_PyRWMutex *rwmutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_exchange_uintptr
      Src: /src/cpython/Python/lock.c:567,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:569,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:570,1
    - Dst: rwmutex_reader_count
      Src: /src/cpython/Python/lock.c:570,1
    - Dst: _PyParkingLot_UnparkAll
      Src: /src/cpython/Python/lock.c:573,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: 569
        line_start: 569
        source_file: /src/cpython/Python/lock.c
    - condition: ((old_bits & _Py_WRITE_LOCKED) && "lock was not write-locked")
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 575
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 575
    functionName: _PyRWMutex_Unlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 3
    functionsReached:
    - _PyParkingLot_UnparkAll
    - _Py_atomic_exchange_uintptr
    - rwmutex_reader_count
    - assert
    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: 578
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 578
    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:582,1
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:584,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:586,1
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Python/lock.c:587,1
    - Dst: _Py_atomic_compare_exchange_uint32
      Src: /src/cpython/Python/lock.c:589,1
    - Dst: _Py_atomic_fence_release
      Src: /src/cpython/Python/lock.c:591,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 598
    functionName: _PySeqLock_LockWrite
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - SEQLOCK_IS_UPDATING
    - _Py_atomic_fence_release
    - _Py_atomic_load_uint32_relaxed
    - _Py_yield
    - _Py_atomic_compare_exchange_uint32
    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:602,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:603,1
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:603,1
    - Dst: _Py_atomic_store_uint32
      Src: /src/cpython/Python/lock.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts:
    - condition: (!SEQLOCK_IS_UPDATING(new_seq))
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 605
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 605
    functionName: _PySeqLock_AbandonWrite
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - SEQLOCK_IS_UPDATING
    - _Py_atomic_store_uint32
    - _Py_atomic_load_uint32_relaxed
    - assert
    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:609,1
    - Dst: assert
      Src: /src/cpython/Python/lock.c:610,1
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:610,1
    - Dst: _Py_atomic_store_uint32
      Src: /src/cpython/Python/lock.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts:
    - condition: (!SEQLOCK_IS_UPDATING(new_seq))
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/cpython/Python/lock.c
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: _PySeqLock_UnlockWrite
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 2
    functionsReached:
    - SEQLOCK_IS_UPDATING
    - _Py_atomic_store_uint32
    - _Py_atomic_load_uint32_relaxed
    - assert
    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:616,1
    - Dst: SEQLOCK_IS_UPDATING
      Src: /src/cpython/Python/lock.c:617,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:618,1
    - Dst: _Py_atomic_load_uint32_acquire
      Src: /src/cpython/Python/lock.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 623
    functionName: _PySeqLock_BeginRead
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - SEQLOCK_IS_UPDATING
    - _Py_atomic_load_uint32_acquire
    - _Py_yield
    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:630,1
    - Dst: _Py_atomic_load_uint32_relaxed
      Src: /src/cpython/Python/lock.c:632,1
    - Dst: _Py_yield
      Src: /src/cpython/Python/lock.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - seqlock
    - previous
    argTypes:
    - _PySeqLock*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 638
    functionName: _PySeqLock_EndRead
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 1
    functionsReached:
    - _Py_atomic_fence_acquire
    - _Py_atomic_load_uint32_relaxed
    - _Py_yield
    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:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seqlock
    argTypes:
    - _PySeqLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 650
    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:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 7
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: PyMutex_Lock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 78
    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:663,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/lock.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 666
    functionName: PyMutex_Unlock
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 82
    functionsReached:
    - Py_FatalError
    - _PyMutex_TryUnlock
    linkageType: ''
    returnType: void
    signature: void PyMutex_Unlock(PyMutex *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMutex_IsLocked
      Src: /src/cpython/Python/lock.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: PyMutex_IsLocked
    functionSourceFile: /src/cpython/Python/lock.c
    functionUses: 29
    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:15,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/structmember.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - obj_addr
    - l
    argTypes:
    - char*
    - char*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 22
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/structmember.c:29,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/structmember.c:30,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/structmember.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - mp
    argTypes:
    - PyObject*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: _PyMember_GetOffset
    functionSourceFile: /src/cpython/Python/structmember.c
    functionUses: 2
    functionsReached:
    - Py_SIZE
    - _Py_SIZE_ROUND_UP
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMember_GetOffset(PyObject *obj, PyMemberDef *mp)'
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:40,1
    - Dst: _PyMember_GetOffset
      Src: /src/cpython/Python/structmember.c:46,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/structmember.c:49,1
    - Dst: FT_ATOMIC_LOAD_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:49,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/structmember.c:52,1
    - Dst: FT_ATOMIC_LOAD_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:52,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/structmember.c:55,1
    - Dst: FT_ATOMIC_LOAD_UCHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:55,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/structmember.c:58,1
    - Dst: FT_ATOMIC_LOAD_SHORT_RELAXED
      Src: /src/cpython/Python/structmember.c:58,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/structmember.c:61,1
    - Dst: FT_ATOMIC_LOAD_USHORT_RELAXED
      Src: /src/cpython/Python/structmember.c:61,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/structmember.c:64,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Python/structmember.c:64,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/structmember.c:67,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/structmember.c:67,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/structmember.c:70,1
    - Dst: FT_ATOMIC_LOAD_LONG_RELAXED
      Src: /src/cpython/Python/structmember.c:70,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/structmember.c:73,1
    - Dst: FT_ATOMIC_LOAD_ULONG_RELAXED
      Src: /src/cpython/Python/structmember.c:73,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/structmember.c:76,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/structmember.c:76,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/structmember.c:79,1
    - Dst: FT_ATOMIC_LOAD_FLOAT_RELAXED
      Src: /src/cpython/Python/structmember.c:79,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/structmember.c:82,1
    - Dst: FT_ATOMIC_LOAD_DOUBLE_RELAXED
      Src: /src/cpython/Python/structmember.c:82,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/structmember.c:86,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/structmember.c:89,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/structmember.c:92,1
    - Dst: FT_ATOMIC_LOAD_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:95,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/structmember.c:96,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/structmember.c:100,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Python/structmember.c:103,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:104,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/structmember.c:105,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/structmember.c:106,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:107,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/structmember.c:110,1
    - Dst: member_get_object
      Src: /src/cpython/Python/structmember.c:118,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/structmember.c:120,1
    - Dst: _Py_TryIncrefCompare
      Src: /src/cpython/Python/structmember.c:123,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:124,1
    - Dst: member_get_object
      Src: /src/cpython/Python/structmember.c:125,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/structmember.c:126,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:127,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Python/structmember.c:133,1
    - Dst: FT_ATOMIC_LOAD_LLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:133,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Python/structmember.c:136,1
    - Dst: FT_ATOMIC_LOAD_ULLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:136,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/structmember.c:140,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:143,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 96
    argCount: 2
    argNames:
    - obj_addr
    - l
    argTypes:
    - char*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 147
    functionName: PyMember_GetOne
    functionSourceFile: /src/cpython/Python/structmember.c
    functionUses: 4
    functionsReached:
    - PyLong_FromLong
    - FT_ATOMIC_LOAD_INT_RELAXED
    - FT_ATOMIC_LOAD_DOUBLE_RELAXED
    - Py_END_CRITICAL_SECTION
    - member_get_object
    - PyFloat_FromDouble
    - PyBool_FromLong
    - PyLong_FromUnsignedLong
    - PyUnicode_FromStringAndSize
    - PyUnicode_FromString
    - FT_ATOMIC_LOAD_CHAR_RELAXED
    - PyLong_FromLongLong
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - _PyMember_GetOffset
    - PyLong_FromSsize_t
    - _Py_TryIncrefCompare
    - FT_ATOMIC_LOAD_UCHAR_RELAXED
    - FT_ATOMIC_LOAD_SHORT_RELAXED
    - FT_ATOMIC_LOAD_ULLONG_RELAXED
    - FT_ATOMIC_LOAD_FLOAT_RELAXED
    - Py_INCREF
    - FT_ATOMIC_LOAD_LLONG_RELAXED
    - PyErr_SetString
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - Py_NewRef
    - Py_XINCREF
    - FT_ATOMIC_LOAD_PTR
    - FT_ATOMIC_LOAD_LONG_RELAXED
    - Py_BEGIN_CRITICAL_SECTION
    - FT_ATOMIC_LOAD_ULONG_RELAXED
    - PyLong_FromUnsignedLongLong
    - FT_ATOMIC_LOAD_USHORT_RELAXED
    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: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: WARN
    functionSourceFile: /src/cpython/Python/structmember.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(msg)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:160,1
    - Dst: _PyMember_GetOffset
      Src: /src/cpython/Python/structmember.c:167,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:171,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:175,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/structmember.c:181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:182,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:187,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:189,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:193,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:194,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:196,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:200,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:204,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:205,1
    - Dst: FT_ATOMIC_STORE_UCHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:207,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:209,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:213,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:214,1
    - Dst: FT_ATOMIC_STORE_SHORT_RELAXED
      Src: /src/cpython/Python/structmember.c:216,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:218,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:222,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:223,1
    - Dst: FT_ATOMIC_STORE_USHORT_RELAXED
      Src: /src/cpython/Python/structmember.c:225,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:227,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:231,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:232,1
    - Dst: FT_ATOMIC_STORE_INT_RELAXED
      Src: /src/cpython/Python/structmember.c:234,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:236,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/structmember.c:242,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Python/structmember.c:246,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:248,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:249,1
    - Dst: FT_ATOMIC_STORE_UINT_RELAXED
      Src: /src/cpython/Python/structmember.c:252,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:253,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Python/structmember.c:256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:257,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:258,1
    - Dst: FT_ATOMIC_STORE_UINT_RELAXED
      Src: /src/cpython/Python/structmember.c:261,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:263,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:269,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:270,1
    - Dst: FT_ATOMIC_STORE_LONG_RELAXED
      Src: /src/cpython/Python/structmember.c:272,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/structmember.c:278,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Python/structmember.c:282,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:284,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:285,1
    - Dst: FT_ATOMIC_STORE_ULONG_RELAXED
      Src: /src/cpython/Python/structmember.c:288,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:289,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/cpython/Python/structmember.c:292,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:293,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:294,1
    - Dst: FT_ATOMIC_STORE_ULONG_RELAXED
      Src: /src/cpython/Python/structmember.c:297,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/structmember.c:302,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:303,1
    - Dst: FT_ATOMIC_STORE_SSIZE_RELAXED
      Src: /src/cpython/Python/structmember.c:305,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/structmember.c:309,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:310,1
    - Dst: FT_ATOMIC_STORE_FLOAT_RELAXED
      Src: /src/cpython/Python/structmember.c:312,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/structmember.c:316,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:317,1
    - Dst: FT_ATOMIC_STORE_DOUBLE_RELAXED
      Src: /src/cpython/Python/structmember.c:319,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:324,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/structmember.c:326,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/structmember.c:326,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/structmember.c:327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:334,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/structmember.c:337,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/structmember.c:343,1
    - Dst: PyErr_BadArgument
      Src: /src/cpython/Python/structmember.c:345,1
    - Dst: FT_ATOMIC_STORE_CHAR_RELAXED
      Src: /src/cpython/Python/structmember.c:348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/structmember.c:353,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/structmember.c:356,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:357,1
    - Dst: FT_ATOMIC_STORE_LLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:359,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/structmember.c:363,1
    - Dst: _PyLong_IsNegative
      Src: /src/cpython/Python/structmember.c:367,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/structmember.c:368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:369,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:370,1
    - Dst: FT_ATOMIC_STORE_ULLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:373,1
    - Dst: WARN
      Src: /src/cpython/Python/structmember.c:374,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/cpython/Python/structmember.c:377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/structmember.c:378,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/structmember.c:379,1
    - Dst: FT_ATOMIC_STORE_ULLONG_RELAXED
      Src: /src/cpython/Python/structmember.c:382,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/structmember.c:387,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 191
    argCount: 3
    argNames:
    - addr
    - l
    - v
    argTypes:
    - char*
    - PyMemberDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 392
    functionName: PyMember_SetOne
    functionSourceFile: /src/cpython/Python/structmember.c
    functionUses: 3
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - FT_ATOMIC_STORE_LLONG_RELAXED
    - PyUnicode_AsUTF8AndSize
    - PyErr_Occurred
    - FT_ATOMIC_STORE_INT_RELAXED
    - Py_XNewRef
    - FT_ATOMIC_STORE_SHORT_RELAXED
    - FT_ATOMIC_STORE_UCHAR_RELAXED
    - _PyLong_IsNegative
    - PyLong_AsLongLong
    - _PyMember_GetOffset
    - PyLong_AsLong
    - FT_ATOMIC_STORE_DOUBLE_RELAXED
    - Py_XDECREF
    - _PyNumber_Index
    - PyLong_AsSsize_t
    - WARN
    - FT_ATOMIC_STORE_ULONG_RELAXED
    - PyFloat_AsDouble
    - FT_ATOMIC_STORE_PTR_RELEASE
    - PyErr_SetString
    - FT_ATOMIC_STORE_UINT_RELAXED
    - FT_ATOMIC_STORE_ULLONG_RELAXED
    - PyLong_AsUnsignedLong
    - Py_DECREF
    - FT_ATOMIC_STORE_USHORT_RELAXED
    - FT_ATOMIC_STORE_LONG_RELAXED
    - FT_ATOMIC_STORE_FLOAT_RELAXED
    - PyBool_Check
    - FT_ATOMIC_STORE_CHAR_RELAXED
    - Py_BEGIN_CRITICAL_SECTION
    - PyLong_AsUnsignedLongLong
    - FT_ATOMIC_STORE_SSIZE_RELAXED
    - PyErr_Format
    - PyErr_BadArgument
    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:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    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: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: DPRINTF
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(level, ...)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:78,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:79,1
    - Dst: PyJitRef_IsInvalid
      Src: /src/cpython/Python/optimizer_symbols.c:82,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:83,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:83,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:86,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:90,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:93,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:96,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:99,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:102,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:105,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:108,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:108,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:112,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:115,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:118,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:121,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:124,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:127,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:130,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer_symbols.c:133,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 136
    functionName: _PyUOpSymPrint
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - PyJitRef_IsInvalid
    - PyJitRef_IsNull
    - PyJitRef_Unwrap
    - printf
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _PyUOpSymPrint(JitOptRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    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: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    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:164,1
    - Dst: out_of_space
      Src: /src/cpython/Python/optimizer_symbols.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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:172,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer_symbols.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: sym_new
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - OPT_STAT_INC
    - DPRINTF
    linkageType: ''
    returnType: JitOptSymbol
    signature: 'JitOptSymbol *

      sym_new(JitOptContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/optimizer_symbols.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sym
    - val
    argTypes:
    - JitOptSymbol*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    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: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    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:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    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:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 206
    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:211,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:216,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:217,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:217,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: _Py_uop_sym_is_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Wrap
    - allocation_base
    - PyJitRef_Unwrap
    - make_const
    - _Py_uop_sym_truthiness
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    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:237,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:242,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:243,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:243,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: _Py_uop_sym_get_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Wrap
    - allocation_base
    - PyJitRef_Unwrap
    - make_const
    - _Py_uop_sym_truthiness
    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:257,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/optimizer_symbols.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - sym
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: _Py_uop_sym_get_const_as_stackref
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyStackRef_FromPyObjectBorrow
    - _Py_uop_sym_get_const
    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:271,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/optimizer_symbols.c:275,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - sym
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 285
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_sym_get_type
      Src: /src/cpython/Python/optimizer_symbols.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - sym
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: _Py_uop_sym_is_not_container
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_get_type
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_not_container(JitOptRef sym)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:304,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:308,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:322,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:326,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:327,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:328,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:333,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:338,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:344,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:348,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:358,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:370,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:375,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 71
    argCount: 3
    argNames:
    - ctx
    - ref
    - typ
    argTypes:
    - JitOptContext*
    - JitOptRef
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 379
    functionName: _Py_uop_sym_set_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - Py_CLEAR
    - sym_set_bottom
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_type(JitOptContext *ctx, JitOptRef ref, PyTypeObject
      *typ)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:384,1
    - Dst: _PyType_LookupByVersion
      Src: /src/cpython/Python/optimizer_symbols.c:385,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:387,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:392,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:396,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:404,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:405,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:406,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:412,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:418,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:424,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:438,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:444,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:449,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:452,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:457,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:468,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:472,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 86
    argCount: 3
    argNames:
    - ctx
    - ref
    - version
    argTypes:
    - JitOptContext*
    - JitOptRef
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 473
    functionName: _Py_uop_sym_set_type_version
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_set_bottom
    - _Py_uop_sym_set_type
    - PyJitRef_Unwrap
    - _PyType_LookupByVersion
    - Py_CLEAR
    - Py_UNREACHABLE
    - Py_TYPE
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_set_type_version(JitOptContext *ctx, JitOptRef ref,
      unsigned int version)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:478,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:483,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:486,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:487,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:490,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:494,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:495,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/optimizer_symbols.c:499,1
    - Dst: _Py_uop_sym_tuple_length
      Src: /src/cpython/Python/optimizer_symbols.c:500,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/optimizer_symbols.c:501,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:503,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_symbols.c:504,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:505,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:507,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:511,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:514,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:515,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:518,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:529,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/optimizer_symbols.c:532,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:533,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:536,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/optimizer_symbols.c:539,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:540,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:541,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:543,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:546,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:547,1
    - Dst: _Py_uop_sym_get_type
      Src: /src/cpython/Python/optimizer_symbols.c:548,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:552,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:557,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:560,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/optimizer_symbols.c:560,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:563,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/optimizer_symbols.c:563,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:566,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/optimizer_symbols.c:569,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:570,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:573,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 82
    argCount: 3
    argNames:
    - ctx
    - ref
    - const_val
    argTypes:
    - JitOptContext*
    - JitOptRef
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 577
    functionName: _Py_uop_sym_set_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - _Py_uop_sym_tuple_length
    - PyTuple_GET_SIZE
    - _Py_uop_sym_set_const
    - Py_TYPE
    - PyJitRef_Wrap
    - PyJitRef_Unwrap
    - make_const
    - _Py_uop_sym_is_const
    - PyTuple_CheckExact
    - sym_set_bottom
    - allocation_base
    - _Py_uop_sym_get_const
    - Py_GetConstant
    - PyBool_Check
    - _Py_uop_sym_tuple_getitem
    - Py_CLEAR
    - _PyLong_CheckExactAndCompact
    - _Py_uop_sym_get_type
    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:582,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: _Py_uop_sym_set_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - sym_set_bottom
    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:594,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 601
    functionName: _Py_uop_sym_set_non_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - sym_set_bottom
    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:606,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:608,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 611
    functionName: _Py_uop_sym_new_unknown
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    - out_of_space_ref
    - PyJitRef_Wrap
    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:616,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:618,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 622
    functionName: _Py_uop_sym_new_not_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - sym_new
    - out_of_space_ref
    - PyJitRef_Wrap
    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:627,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:629,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:631,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - typ
    argTypes:
    - JitOptContext*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 634
    functionName: _Py_uop_sym_new_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    - out_of_space_ref
    - PyJitRef_Wrap
    - _Py_uop_sym_set_type
    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:640,1
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:641,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:643,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:645,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - const_val
    argTypes:
    - JitOptContext*
    - PyObject*
    assertStmts:
    - condition: (const_val != NULL)
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 648
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 648
    functionName: _Py_uop_sym_new_const
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    - PyJitRef_Wrap
    - assert
    - out_of_space_ref
    - _Py_uop_sym_set_const
    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:653,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - const_val
    argTypes:
    - JitOptContext*
    - PyObject*
    assertStmts:
    - condition: (const_val != NULL)
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 658
      start: 650
    functionDepth: 4
    functionLinenumber: 650
    functionLinenumberEnd: 658
    functionName: _Py_uop_sym_new_const_steal
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_uop_sym_new_const
    - assert
    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:663,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:665,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:667,1
    - Dst: _Py_uop_sym_set_null
      Src: /src/cpython/Python/optimizer_symbols.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 670
    functionName: _Py_uop_sym_new_null
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_sym_set_null
    - sym_new
    - out_of_space_ref
    - PyJitRef_Wrap
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_null(JitOptContext *ctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:675,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:687,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:693,1
    - Dst: _PyType_LookupByVersion
      Src: /src/cpython/Python/optimizer_symbols.c:695,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 705
    functionName: _Py_uop_sym_get_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 2
    functionsReached:
    - PyJitRef_Unwrap
    - Py_UNREACHABLE
    - _PyType_LookupByVersion
    - Py_TYPE
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _Py_uop_sym_get_type(JitOptRef ref)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:710,1
    - Dst: _Py_uop_sym_get_type
      Src: /src/cpython/Python/optimizer_symbols.c:724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:728,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 733
    functionName: _Py_uop_sym_get_probable_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - Py_UNREACHABLE
    - _Py_uop_sym_get_type
    - Py_TYPE
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _Py_uop_sym_get_probable_type(JitOptRef ref)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:738,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:753,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 765
    functionName: _Py_uop_sym_get_type_version
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - Py_UNREACHABLE
    - Py_TYPE
    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:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 772
    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:777,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/optimizer_symbols.c:777,1
    - Dst: _Py_uop_sym_get_type
      Src: /src/cpython/Python/optimizer_symbols.c:778,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: 776
        line_start: 776
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 779
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 779
    functionName: _Py_uop_sym_matches_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - _Py_uop_sym_get_type
    - assert
    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:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sym
    - version
    argTypes:
    - JitOptRef
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 785
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:790,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 812
    functionName: _Py_uop_sym_get_probable_value
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_uop_sym_get_probable_value(JitOptRef ref)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:817,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/optimizer_symbols.c:819,1
    - Dst: _Py_uop_sym_get_probable_value
      Src: /src/cpython/Python/optimizer_symbols.c:821,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_symbols.c:823,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/optimizer_symbols.c:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 828
    functionName: _Py_uop_sym_get_probable_func_code
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - PyFunction_GET_CODE
    - PyFunction_Check
    - _Py_uop_sym_get_probable_value
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      _Py_uop_sym_get_probable_func_code(JitOptRef ref)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:833,1
    - Dst: _Py_uop_sym_get_probable_value
      Src: /src/cpython/Python/optimizer_symbols.c:837,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_symbols.c:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 842
    functionName: _Py_uop_sym_get_probable_function
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - PyFunction_Check
    - _Py_uop_sym_get_probable_value
    linkageType: ''
    returnType: PyFunctionObject
    signature: 'PyFunctionObject *

      _Py_uop_sym_get_probable_function(JitOptRef ref)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:847,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:872,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:873,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:874,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:879,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:888,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/optimizer_symbols.c:890,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/optimizer_symbols.c:893,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 899
    functionName: _Py_uop_sym_truthiness
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 3
    functionsReached:
    - _PyLong_IsZero
    - PyJitRef_Wrap
    - _Py_STR
    - allocation_base
    - PyJitRef_Unwrap
    - make_const
    - _Py_uop_sym_truthiness
    - Py_TYPE
    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:904,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:906,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:916,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:916,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - size
    - args
    argTypes:
    - JitOptContext*
    - int
    - JitOptRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 920
    functionName: _Py_uop_sym_new_tuple
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    - PyJitRef_Wrap
    - allocation_base
    - PyJitRef_Unwrap
    - out_of_space_ref
    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:925,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:926,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/optimizer_symbols.c:929,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/optimizer_symbols.c:929,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:930,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/optimizer_symbols.c:930,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:934,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:934,1
    - Dst: _Py_uop_sym_new_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:936,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - ref
    - item
    argTypes:
    - JitOptContext*
    - JitOptRef
    - Py_ssize_t
    assertStmts:
    - condition: (item >= 0)
      pos:
        line_end: 925
        line_start: 925
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 937
      start: 922
    functionDepth: 4
    functionLinenumber: 922
    functionLinenumberEnd: 937
    functionName: _Py_uop_sym_tuple_getitem
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - _Py_uop_sym_new_not_null
    - PyTuple_GET_ITEM
    - PyJitRef_Wrap
    - _Py_uop_sym_new_const
    - allocation_base
    - PyJitRef_Unwrap
    - assert
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_tuple_getitem(JitOptContext *ctx, JitOptRef ref,
      Py_ssize_t item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:942,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/optimizer_symbols.c:945,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/optimizer_symbols.c:946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 953
    functionName: _Py_uop_sym_tuple_length
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - PyJitRef_Unwrap
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_uop_sym_tuple_length(JitOptRef ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_symbols.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sym
    argTypes:
    - JitOptSymbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 966
    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:971,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/optimizer_symbols.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 976
    functionName: _Py_uop_sym_is_compact_int
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - _PyLong_CheckExactAndCompact
    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:981,1
    - Dst: _Py_uop_symbol_is_immortal
      Src: /src/cpython/Python/optimizer_symbols.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 983
    functionName: _Py_uop_sym_is_immortal
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - _Py_uop_symbol_is_immortal
    linkageType: ''
    returnType: bool
    signature: bool _Py_uop_sym_is_immortal(JitOptRef ref)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:988,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:993,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:999,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1007,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/optimizer_symbols.c:1011,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:1012,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1013,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - JitOptContext*
    - JitOptRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1034
    functionName: _Py_uop_sym_set_compact_int
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - Py_CLEAR
    - sym_set_bottom
    - _PyLong_CheckExactAndCompact
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_compact_int(JitOptContext *ctx, JitOptRef ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:1039,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:1040,1
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:1042,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:1044,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:1049,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:1050,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - lhs_ref
    - rhs_ref
    - kind
    argTypes:
    - JitOptContext*
    - JitOptRef
    - JitOptRef
    - JitOptPredicateKind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1053
    functionName: _Py_uop_sym_new_predicate
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    - PyJitRef_Wrap
    - allocation_base
    - PyJitRef_Unwrap
    - out_of_space_ref
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_predicate(JitOptContext *ctx, JitOptRef lhs_ref,
      JitOptRef rhs_ref, JitOptPredicateKind kind)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:1058,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:1065,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:1065,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:1066,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:1066,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1068,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1069,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1094,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1098,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1099,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1099,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - ref
    - branch_is_true
    argTypes:
    - JitOptContext*
    - JitOptRef
    - bool
    assertStmts:
    - condition: (_Py_uop_sym_is_const(ctx, subject_ref))
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 1100
      start: 1055
    functionDepth: 3
    functionLinenumber: 1055
    functionLinenumberEnd: 1100
    functionName: _Py_uop_sym_apply_predicate_narrowing
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Wrap
    - allocation_base
    - PyJitRef_Unwrap
    - assert
    - _Py_uop_sym_is_const
    - _Py_uop_sym_set_const
    - _Py_uop_sym_get_const
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_apply_predicate_narrowing(JitOptContext *ctx, JitOptRef
      ref, bool branch_is_true)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:1105,1
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:1111,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:1113,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1115,1
    - Dst: allocation_base
      Src: /src/cpython/Python/optimizer_symbols.c:1119,1
    - Dst: make_const
      Src: /src/cpython/Python/optimizer_symbols.c:1122,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - ref
    - truthy
    argTypes:
    - JitOptContext*
    - JitOptRef
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1125
    functionName: _Py_uop_sym_new_truthiness
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    - PyJitRef_Wrap
    - allocation_base
    - _Py_uop_sym_truthiness
    - PyJitRef_Unwrap
    - make_const
    - out_of_space_ref
    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:1130,1
    - Dst: out_of_space_ref
      Src: /src/cpython/Python/optimizer_symbols.c:1132,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1127
    functionDepth: 2
    functionLinenumber: 1127
    functionLinenumberEnd: 1136
    functionName: _Py_uop_sym_new_compact_int
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    - out_of_space_ref
    - PyJitRef_Wrap
    linkageType: ''
    returnType: JitOptRef
    signature: JitOptRef _Py_uop_sym_new_compact_int(JitOptContext *ctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:1146,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1150,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1162,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:1166,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1172,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:1176,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1182,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:1188,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1194,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:1205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 3
    argNames:
    - ctx
    - ref
    - value
    argTypes:
    - JitOptContext*
    - JitOptRef
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1206
    functionName: _Py_uop_sym_set_recorded_value
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyJitRef_Unwrap
    - Py_UNREACHABLE
    - sym_set_bottom
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_recorded_value(JitOptContext *ctx, JitOptRef ref,
      PyObject *value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1215,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1215,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:1216,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1239,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1248,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1257,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1262,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:1266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 3
    argNames:
    - ctx
    - ref
    - value
    argTypes:
    - JitOptContext*
    - JitOptRef
    - PyFunctionObject*
    assertStmts:
    - condition: (!PyJitRef_IsNull(ref))
      pos:
        line_end: 1214
        line_start: 1214
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 1267
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1267
    functionName: _Py_uop_sym_set_recorded_gen_func
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_set_bottom
    - PyJitRef_IsNull
    - PyJitRef_Unwrap
    - Py_UNREACHABLE
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_recorded_gen_func(JitOptContext *ctx, JitOptRef
      ref, PyFunctionObject *value)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1277,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/optimizer_symbols.c:1277,1
    - Dst: PyJitRef_Unwrap
      Src: /src/cpython/Python/optimizer_symbols.c:1278,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1282,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/optimizer_symbols.c:1292,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1293,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1298,1
    - Dst: sym_set_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1311,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer_symbols.c:1322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 3
    argNames:
    - ctx
    - ref
    - type
    argTypes:
    - JitOptContext*
    - JitOptRef
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check((PyObject *)type))
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 1323
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1323
    functionName: _Py_uop_sym_set_recorded_type
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_set_bottom
    - PyType_Check
    - PyJitRef_Unwrap
    - Py_UNREACHABLE
    - assert
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _Py_uop_sym_set_recorded_type(JitOptContext *ctx, JitOptRef ref,
      PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_sym_get_probable_func_code
      Src: /src/cpython/Python/optimizer_symbols.c:1333,1
    - Dst: _Py_uop_frame_new
      Src: /src/cpython/Python/optimizer_symbols.c:1338,1
    - Dst: _Py_uop_sym_get_probable_function
      Src: /src/cpython/Python/optimizer_symbols.c:1342,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1344,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer_symbols.c:1344,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - callable
    - args
    - arg_len
    argTypes:
    - JitOptContext*
    - JitOptRef
    - JitOptRef*
    - int
    assertStmts:
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 1343
        line_start: 1343
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (frame->stack_pointer != NULL)
      pos:
        line_end: 1346
        line_start: 1346
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 1350
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1350
    functionName: _Py_uop_frame_new_from_symbol
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyFunction_Check
    - _Py_uop_sym_get_probable_func_code
    - _Py_uop_sym_get_probable_function
    - assert
    - _Py_uop_frame_new
    linkageType: ''
    returnType: _Py_UOpsAbstractFrame
    signature: "_Py_UOpsAbstractFrame *\n_Py_uop_frame_new_from_symbol(\n    JitOptContext
      *ctx,\n    JitOptRef callable,\n    JitOptRef *args,\n    int arg_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1360,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer_symbols.c:1364,1
    - Dst: PyJitRef_RemoveUnique
      Src: /src/cpython/Python/optimizer_symbols.c:1392,1
    - Dst: _Py_uop_sym_new_null
      Src: /src/cpython/Python/optimizer_symbols.c:1400,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1400,1
    - Dst: _Py_uop_sym_new_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:1404,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer_symbols.c:1408,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - co
    - args
    - arg_len
    argTypes:
    - JitOptContext*
    - PyCodeObject*
    - JitOptRef*
    - int
    assertStmts:
    - condition: (co != NULL)
      pos:
        line_end: 1359
        line_start: 1359
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (frame->locals != NULL)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 1412
      start: 1353
    functionDepth: 3
    functionLinenumber: 1353
    functionLinenumberEnd: 1412
    functionName: _Py_uop_frame_new
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 2
    functionsReached:
    - PyJitRef_RemoveUnique
    - _Py_uop_sym_new_not_null
    - OPT_STAT_INC
    - _Py_uop_sym_new_unknown
    - assert
    - _Py_BloomFilter_Add
    - _Py_uop_sym_new_null
    linkageType: ''
    returnType: _Py_UOpsAbstractFrame
    signature: "_Py_UOpsAbstractFrame *\n_Py_uop_frame_new(\n    JitOptContext *ctx,\n
      \   PyCodeObject *co,\n    JitOptRef *args,\n    int arg_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1417,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1430,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - stack_depth
    - current_sp
    argTypes:
    - JitOptContext*
    - int
    - JitOptRef*
    assertStmts:
    - condition: (frame->stack != NULL)
      pos:
        line_end: 1416
        line_start: 1416
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (delta >= 0)
      pos:
        line_end: 1429
        line_start: 1429
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 1442
      start: 1414
    functionDepth: 3
    functionLinenumber: 1414
    functionLinenumberEnd: 1442
    functionName: _Py_uop_sym_set_stack_depth
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 1
    functionsReached:
    - _Py_uop_sym_new_unknown
    - assert
    linkageType: ''
    returnType: JitOptRef
    signature: 'JitOptRef *

      _Py_uop_sym_set_stack_depth(JitOptContext *ctx, int stack_depth, JitOptRef *current_sp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer_symbols.c:1456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1459
    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: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - dependencies
    argTypes:
    - JitOptContext*
    - _PyBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1497
    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, _PyBloomFilter
      *dependencies)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1510,1
    - Dst: _Py_uop_frame_new
      Src: /src/cpython/Python/optimizer_symbols.c:1528,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - co
    argTypes:
    - JitOptContext*
    - PyCodeObject*
    assertStmts:
    - condition: (ctx->frame->locals != NULL)
      pos:
        line_end: 1509
        line_start: 1509
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (ctx->frame->locals != NULL)
      pos:
        line_end: 1535
        line_start: 1535
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 1539
      start: 1499
    functionDepth: 4
    functionLinenumber: 1499
    functionLinenumberEnd: 1539
    functionName: _Py_uop_frame_pop
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - _Py_uop_frame_new
    - assert
    linkageType: ''
    returnType: int
    signature: int _Py_uop_frame_pop(JitOptContext *ctx, PyCodeObject *co)
  - 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: 1550
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1550
    functionName: TEST_PREDICATE
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_PREDICATE(PRED, MSG)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_new
      Src: /src/cpython/Python/optimizer_symbols.c:1554,1
    - Dst: out_of_space
      Src: /src/cpython/Python/optimizer_symbols.c:1556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JitOptContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1551
    functionDepth: 2
    functionLinenumber: 1551
    functionLinenumberEnd: 1560
    functionName: make_bottom
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - sym_new
    - out_of_space
    linkageType: ''
    returnType: JitOptSymbol
    signature: 'JitOptSymbol *

      make_bottom(JitOptContext *ctx)'
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: _Py_uop_abstractcontext_init
      Src: /src/cpython/Python/optimizer_symbols.c:1567,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1575,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1576,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1579,1
    - Dst: _Py_uop_sym_is_null
      Src: /src/cpython/Python/optimizer_symbols.c:1579,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1580,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:1580,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1581,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1581,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1582,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1582,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1583,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1583,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1584,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1584,1
    - Dst: PyJitRef_Wrap
      Src: /src/cpython/Python/optimizer_symbols.c:1586,1
    - Dst: make_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1586,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1587,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1590,1
    - Dst: _Py_uop_sym_is_null
      Src: /src/cpython/Python/optimizer_symbols.c:1590,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1591,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:1591,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1592,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1592,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1593,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1593,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1594,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1594,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1595,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1595,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1597,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1598,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1601,1
    - Dst: _Py_uop_sym_is_null
      Src: /src/cpython/Python/optimizer_symbols.c:1601,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1602,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:1602,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1603,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1603,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1604,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1604,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1605,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1605,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1606,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1606,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1608,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1609,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1609,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1611,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1612,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1612,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:1614,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1615,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1616,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_symbols.c:1616,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:1618,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1619,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer_symbols.c:1620,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/optimizer_symbols.c:1620,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1622,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1623,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1626,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1627,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1627,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1628,1
    - Dst: _Py_uop_sym_is_null
      Src: /src/cpython/Python/optimizer_symbols.c:1628,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1629,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:1629,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1630,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1630,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1631,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1631,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1632,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1632,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1633,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1633,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1634,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1634,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1635,1
    - Dst: _Py_uop_sym_is_immortal
      Src: /src/cpython/Python/optimizer_symbols.c:1635,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1637,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1638,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1638,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1639,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1639,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1641,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1642,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1642,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1644,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1645,1
    - Dst: _Py_uop_sym_is_immortal
      Src: /src/cpython/Python/optimizer_symbols.c:1645,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1647,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1648,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1651,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1652,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1653,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1653,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1656,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1657,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1657,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1658,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1659,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1659,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1660,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:1660,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1661,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1661,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1663,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1664,1
    - Dst: _Py_uop_sym_new_tuple
      Src: /src/cpython/Python/optimizer_symbols.c:1666,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1667,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1668,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:1668,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1671,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1672,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:1672,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Python/optimizer_symbols.c:1676,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1677,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1678,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1679,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:1679,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1682,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1683,1
    - Dst: _Py_uop_sym_is_not_null
      Src: /src/cpython/Python/optimizer_symbols.c:1684,1
    - Dst: _Py_uop_sym_tuple_getitem
      Src: /src/cpython/Python/optimizer_symbols.c:1684,1
    - Dst: _Py_uop_sym_new_type
      Src: /src/cpython/Python/optimizer_symbols.c:1687,1
    - Dst: _Py_uop_sym_new_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1688,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1689,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1689,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1690,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1690,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1691,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1691,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1692,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1692,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1693,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1693,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1694,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1694,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1695,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1696,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1696,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1697,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1697,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1698,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1698,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1699,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1699,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1700,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1700,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1701,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1701,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1704,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1705,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1706,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1706,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1709,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1710,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1713,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1714,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1714,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1715,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1715,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1718,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1719,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1722,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1723,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1726,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1727,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1727,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1730,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1731,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1734,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1735,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1738,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1739,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1739,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1740,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1740,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1743,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1744,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1747,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1748,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1751,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1752,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1752,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1755,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1756,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1757,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1757,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1760,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1761,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1764,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1765,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1765,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1766,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1766,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1769,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:1770,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1771,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1772,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1772,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1775,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1776,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1779,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1780,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1780,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1781,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1781,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1784,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1785,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1788,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1789,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1792,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1793,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1793,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1794,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1794,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1797,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1798,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1801,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1802,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1805,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1806,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1806,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1809,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1810,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1813,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1814,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1817,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1818,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1818,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1819,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1819,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1822,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1823,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1826,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1827,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1830,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1831,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1831,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1834,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/optimizer_symbols.c:1835,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1836,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1837,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1837,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1840,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1841,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1844,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1845,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1845,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1846,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1846,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1849,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1850,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1853,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1854,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1857,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1858,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1858,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1861,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1862,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1865,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1866,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1869,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1870,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1870,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1871,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1871,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1874,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1875,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1878,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1879,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1882,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1883,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1883,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1886,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/optimizer_symbols.c:1887,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1888,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1889,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1889,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1892,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1893,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1896,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1897,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1897,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1898,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1898,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1901,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1902,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1905,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1906,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1909,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1910,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1910,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1913,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1914,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1917,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1918,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1921,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1922,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1922,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1923,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1923,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1926,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1927,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1930,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1931,1
    - Dst: _Py_uop_sym_apply_predicate_narrowing
      Src: /src/cpython/Python/optimizer_symbols.c:1934,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1935,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1935,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1937,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1938,1
    - Dst: _Py_uop_sym_new_predicate
      Src: /src/cpython/Python/optimizer_symbols.c:1939,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1940,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1940,1
    - Dst: PyJitRef_IsNull
      Src: /src/cpython/Python/optimizer_symbols.c:1940,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1943,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1943,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1944,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1944,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1945,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1945,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1946,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1946,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1947,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1947,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1948,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1948,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1949,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1950,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1950,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1951,1
    - Dst: _Py_uop_sym_truthiness
      Src: /src/cpython/Python/optimizer_symbols.c:1951,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1952,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1952,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1953,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1953,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1954,1
    - Dst: _Py_uop_sym_is_const
      Src: /src/cpython/Python/optimizer_symbols.c:1954,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1955,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1955,1
    - Dst: PyNumber_Lshift
      Src: /src/cpython/Python/optimizer_symbols.c:1957,1
    - Dst: _PyLong_GetOne
      Src: /src/cpython/Python/optimizer_symbols.c:1957,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/optimizer_symbols.c:1957,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1962,1
    - Dst: _Py_uop_sym_new_const
      Src: /src/cpython/Python/optimizer_symbols.c:1963,1
    - Dst: _Py_uop_sym_new_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1964,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1965,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1965,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1966,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1966,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1967,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1967,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1968,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1968,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1970,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1971,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1971,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1972,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1972,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:1974,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1975,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:1975,1
    - Dst: _Py_uop_sym_new_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1977,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1978,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1979,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1979,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1980,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1980,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1981,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1981,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1986,1
    - Dst: _Py_uop_sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_symbols.c:1987,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1988,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1988,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1989,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1989,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1990,1
    - Dst: _Py_uop_sym_is_compact_int
      Src: /src/cpython/Python/optimizer_symbols.c:1990,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1993,1
    - Dst: _Py_uop_sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_symbols.c:1994,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:1995,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1996,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:1996,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:1997,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:1997,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:1999,1
    - Dst: _Py_uop_sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_symbols.c:2000,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:2001,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2002,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2002,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2003,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2003,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:2005,1
    - Dst: _Py_uop_sym_set_recorded_value
      Src: /src/cpython/Python/optimizer_symbols.c:2006,1
    - Dst: _Py_uop_sym_set_type_version
      Src: /src/cpython/Python/optimizer_symbols.c:2007,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2008,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2008,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2009,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2009,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:2014,1
    - Dst: _Py_uop_sym_set_recorded_type
      Src: /src/cpython/Python/optimizer_symbols.c:2015,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2016,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2016,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2017,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2017,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:2020,1
    - Dst: _Py_uop_sym_set_recorded_type
      Src: /src/cpython/Python/optimizer_symbols.c:2021,1
    - Dst: _Py_uop_sym_set_const
      Src: /src/cpython/Python/optimizer_symbols.c:2022,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2023,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2023,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2024,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2024,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:2026,1
    - Dst: _Py_uop_sym_set_recorded_type
      Src: /src/cpython/Python/optimizer_symbols.c:2027,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:2028,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2029,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2029,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2030,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2030,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:2032,1
    - Dst: _Py_uop_sym_set_recorded_type
      Src: /src/cpython/Python/optimizer_symbols.c:2033,1
    - Dst: _Py_uop_sym_set_type_version
      Src: /src/cpython/Python/optimizer_symbols.c:2034,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2035,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2035,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2036,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2036,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/optimizer_symbols.c:2040,1
    - Dst: PyCode_NewEmpty
      Src: /src/cpython/Python/optimizer_symbols.c:2044,1
    - Dst: PyFunction_New
      Src: /src/cpython/Python/optimizer_symbols.c:2048,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:2054,1
    - Dst: _Py_uop_sym_set_recorded_gen_func
      Src: /src/cpython/Python/optimizer_symbols.c:2055,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2056,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2056,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2057,1
    - Dst: _Py_uop_sym_get_probable_type
      Src: /src/cpython/Python/optimizer_symbols.c:2057,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2058,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2058,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:2062,1
    - Dst: _Py_uop_sym_set_recorded_gen_func
      Src: /src/cpython/Python/optimizer_symbols.c:2063,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:2064,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2065,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2065,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2066,1
    - Dst: _Py_uop_sym_get_probable_type
      Src: /src/cpython/Python/optimizer_symbols.c:2066,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2067,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2067,1
    - Dst: _Py_uop_sym_new_unknown
      Src: /src/cpython/Python/optimizer_symbols.c:2069,1
    - Dst: _Py_uop_sym_set_recorded_gen_func
      Src: /src/cpython/Python/optimizer_symbols.c:2070,1
    - Dst: _Py_uop_sym_set_type_version
      Src: /src/cpython/Python/optimizer_symbols.c:2071,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2072,1
    - Dst: _Py_uop_sym_matches_type
      Src: /src/cpython/Python/optimizer_symbols.c:2072,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2073,1
    - Dst: _Py_uop_sym_get_probable_type
      Src: /src/cpython/Python/optimizer_symbols.c:2073,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2074,1
    - Dst: _Py_uop_sym_get_const
      Src: /src/cpython/Python/optimizer_symbols.c:2074,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:2077,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2078,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:2078,1
    - Dst: _Py_uop_sym_set_type_version
      Src: /src/cpython/Python/optimizer_symbols.c:2079,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2080,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:2080,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:2082,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2083,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:2083,1
    - Dst: _Py_uop_sym_set_type_version
      Src: /src/cpython/Python/optimizer_symbols.c:2084,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2085,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:2085,1
    - Dst: _Py_uop_sym_set_type
      Src: /src/cpython/Python/optimizer_symbols.c:2087,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2088,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:2088,1
    - Dst: _Py_uop_sym_set_type_version
      Src: /src/cpython/Python/optimizer_symbols.c:2089,1
    - Dst: TEST_PREDICATE
      Src: /src/cpython/Python/optimizer_symbols.c:2090,1
    - Dst: _Py_uop_sym_is_bottom
      Src: /src/cpython/Python/optimizer_symbols.c:2090,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_symbols.c:2092,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2093,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2097,1
    - Dst: _Py_uop_abstractcontext_fini
      Src: /src/cpython/Python/optimizer_symbols.c:2101,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2102,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2103,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2104,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2105,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer_symbols.c:2106,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 452
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_IsImmortal(val_43))
      pos:
        line_end: 1619
        line_start: 1619
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (_Py_IsImmortal(val_42))
      pos:
        line_end: 1615
        line_start: 1615
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (val_43 != NULL)
      pos:
        line_end: 1618
        line_start: 1618
        source_file: /src/cpython/Python/optimizer_symbols.c
    - condition: (val_42 != NULL)
      pos:
        line_end: 1614
        line_start: 1614
        source_file: /src/cpython/Python/optimizer_symbols.c
    constantsTouched: []
    func_position:
      end: 2108
      start: 1562
    functionDepth: 17
    functionLinenumber: 1562
    functionLinenumberEnd: 2108
    functionName: _Py_uop_symbols_test
    functionSourceFile: /src/cpython/Python/optimizer_symbols.c
    functionUses: 0
    functionsReached:
    - PyCode_NewEmpty
    - PyLong_FromLong
    - TEST_PREDICATE
    - PyJitRef_IsNull
    - PyFloat_FromDouble
    - _Py_uop_sym_is_not_null
    - _Py_uop_sym_new_truthiness
    - _Py_uop_sym_matches_type
    - assert
    - _Py_uop_sym_set_recorded_type
    - _Py_uop_sym_set_const
    - _Py_uop_sym_new_predicate
    - _Py_uop_sym_new_compact_int
    - _Py_uop_sym_set_recorded_gen_func
    - PyUnicode_FromString
    - PyJitRef_Wrap
    - _Py_uop_sym_new_tuple
    - PyTuple_FromArray
    - _PyLong_GetOne
    - _Py_uop_sym_get_probable_type
    - PyFunction_New
    - _Py_uop_sym_new_unknown
    - Py_XDECREF
    - _Py_uop_sym_is_const
    - _Py_uop_sym_set_type
    - _Py_uop_sym_apply_predicate_narrowing
    - _Py_uop_sym_is_null
    - PyNumber_Lshift
    - _Py_uop_sym_new_type
    - make_bottom
    - _Py_IsImmortal
    - Py_DECREF
    - _Py_uop_sym_truthiness
    - _Py_uop_sym_get_const
    - PyDict_New
    - _Py_uop_abstractcontext_init
    - _Py_uop_sym_set_recorded_value
    - _Py_uop_sym_new_const
    - _Py_uop_sym_tuple_getitem
    - _Py_uop_abstractcontext_fini
    - _Py_uop_sym_is_bottom
    - _Py_uop_sym_is_immortal
    - _Py_uop_sym_is_compact_int
    - _Py_uop_sym_set_type_version
    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: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    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: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    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: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    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: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    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: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    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:374,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:375,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:375,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj_raw
    argTypes:
    - void*
    assertStmts:
    - condition: (IS_ARRAY_NODE(obj))
      pos:
        line_end: 374
        line_start: 374
        source_file: /src/cpython/Python/hamt.c
    - condition: (count == node->a_count)
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 384
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 384
    functionName: _hamt_node_array_validate
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - IS_ARRAY_NODE
    - _PyObject_CAST
    - 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: 388
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 388
    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:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 427
    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: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    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:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - shift
    argTypes:
    - int32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 439
    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:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitmap
    - bit
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 445
    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:460,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/hamt.c:465,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Python/hamt.c:470,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/hamt.c:475,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:478,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:479,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - writer
    - level
    argTypes:
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 451
    functionDepth: 5
    functionLinenumber: 451
    functionLinenumberEnd: 482
    functionName: _hamt_dump_ident
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyLong_FromLong
    - PyNumber_Multiply
    - Py_XDECREF
    - PyUnicodeWriter_WriteStr
    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: 488
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 488
    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:502,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:505,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:506,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Python/hamt.c:509,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/hamt.c:515,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/hamt.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size % 2 == 0)
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/cpython/Python/hamt.c
    - condition: (size >= 0)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 526
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 526
    functionName: hamt_node_bitmap_new
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_NewVar
    - Py_SET_SIZE
    - _PyObject_GC_TRACK
    - assert
    - _Py_SINGLETON
    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:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 532
    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:542,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:542,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:547,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 553
    functionName: hamt_node_bitmap_clone
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - Py_SIZE
    - hamt_node_bitmap_new
    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:558,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:559,1
    - Dst: hamt_node_bitmap_count
      Src: /src/cpython/Python/hamt.c:559,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:561,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:562,1
    - Dst: hamt_bitindex
      Src: /src/cpython/Python/hamt.c:567,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:573,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:576,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:576,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:576,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:577,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:578,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: 557
        line_start: 557
        source_file: /src/cpython/Python/hamt.c
    - condition: (hamt_node_bitmap_count(o) > 1)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/cpython/Python/hamt.c
    - condition: (Py_SIZE(o) >= 0 && Py_SIZE(o) <= 32)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 583
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 583
    functionName: hamt_node_bitmap_clone_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_bitmap_new
    - Py_SIZE
    - hamt_bitindex
    - assert
    - Py_XNewRef
    - hamt_node_bitmap_count
    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:599,1
    - Dst: hamt_node_collision_new
      Src: /src/cpython/Python/hamt.c:606,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:611,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:612,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:614,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:615,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:621,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:628,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:634,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: 641
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 641
    functionName: hamt_node_new_bitmap_or_collision
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_hash
    - hamt_node_bitmap_new
    - Py_DECREF
    - hamt_node_assoc
    - Py_NewRef
    - hamt_node_collision_new
    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:657,1
    - Dst: hamt_bitindex
      Src: /src/cpython/Python/hamt.c:658,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:680,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:680,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:689,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:699,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:700,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:705,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:708,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:712,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:716,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:723,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:728,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:732,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:732,1
    - Dst: hamt_node_new_bitmap_or_collision
      Src: /src/cpython/Python/hamt.c:744,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:754,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:756,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:759,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:760,1
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/hamt.c:768,1
    - Dst: hamt_mask
      Src: /src/cpython/Python/hamt.c:786,1
    - Dst: hamt_node_array_new
      Src: /src/cpython/Python/hamt.c:795,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:802,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:809,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:823,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:827,1
    - Dst: hamt_hash
      Src: /src/cpython/Python/hamt.c:830,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:835,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:850,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:856,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:858,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:876,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:884,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:888,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:889,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:893,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:893,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:893,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:894,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:895,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 106
    argCount: 6
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    - added_leaf
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (val_or_node != NULL)
      pos:
        line_end: 688
        line_start: 688
        source_file: /src/cpython/Python/hamt.c
    - condition: (key != NULL)
      pos:
        line_end: 711
        line_start: 711
        source_file: /src/cpython/Python/hamt.c
    - condition: (new_node->a_array[i] == NULL)
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/cpython/Python/hamt.c
    - condition: (Py_SIZE(self) >= 0 && Py_SIZE(self) <= 32)
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/cpython/Python/hamt.c
    - condition: (val_idx < (size_t)Py_SIZE(self))
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 902
      start: 643
    functionDepth: 5
    functionLinenumber: 643
    functionLinenumberEnd: 902
    functionName: hamt_node_bitmap_assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_new_bitmap_or_collision
    - hamt_bitindex
    - assert
    - Py_XNewRef
    - hamt_hash
    - Py_XDECREF
    - hamt_node_bitmap_new
    - Py_SIZE
    - hamt_node_array_new
    - Py_DECREF
    - hamt_mask
    - _Py_popcount32
    - hamt_node_assoc
    - Py_NewRef
    - PyObject_RichCompareBool
    - VALIDATE_ARRAY_NODE
    - Py_SETREF
    - hamt_node_bitmap_clone
    - hamt_bitpos
    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:910,1
    - Dst: hamt_bitindex
      Src: /src/cpython/Python/hamt.c:915,1
    - Dst: hamt_node_without
      Src: /src/cpython/Python/hamt.c:928,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:948,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:951,1
    - Dst: IS_BITMAP_NODE
      Src: /src/cpython/Python/hamt.c:953,1
    - Dst: hamt_node_bitmap_count
      Src: /src/cpython/Python/hamt.c:955,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:969,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/hamt.c:976,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:976,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:977,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:979,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:990,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:991,1
    - Dst: hamt_node_collision_count
      Src: /src/cpython/Python/hamt.c:991,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/cpython/Python/hamt.c:996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:998,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:1002,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1011,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:1015,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:1021,1
    - Dst: hamt_node_bitmap_count
      Src: /src/cpython/Python/hamt.c:1029,1
    - Dst: hamt_node_bitmap_clone_without
      Src: /src/cpython/Python/hamt.c:1034,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - new_node
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    - int32_t
    - PyObject*
    - PyHamtNode**
    assertStmts:
    - condition: (sub_node != NULL)
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/cpython/Python/hamt.c
    - condition: "(hamt_node_collision_count(\n                            (PyHamtNode_Collision*)sub_node)
        > 1)"
      pos:
        line_end: 991
        line_start: 990
        source_file: /src/cpython/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1041
      start: 904
    functionDepth: 4
    functionLinenumber: 904
    functionLinenumberEnd: 1041
    functionName: hamt_node_bitmap_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - IS_COLLISION_NODE
    - Py_XSETREF
    - Py_NewRef
    - Py_SETREF
    - hamt_bitindex
    - Py_UNREACHABLE
    - hamt_node_bitmap_clone
    - IS_BITMAP_NODE
    - hamt_node_collision_count
    - hamt_node_bitmap_clone_without
    - assert
    - Py_DECREF
    - hamt_node_without
    - hamt_bitpos
    - hamt_node_bitmap_count
    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:1050,1
    - Dst: hamt_bitindex
      Src: /src/cpython/Python/hamt.c:1062,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1066,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1066,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1074,1
    - Dst: hamt_node_find
      Src: /src/cpython/Python/hamt.c:1075,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1081,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:1082,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: 1065
        line_start: 1065
        source_file: /src/cpython/Python/hamt.c
    - condition: (val_or_node != NULL)
      pos:
        line_end: 1073
        line_start: 1073
        source_file: /src/cpython/Python/hamt.c
    - condition: (key != NULL)
      pos:
        line_end: 1080
        line_start: 1080
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1092
      start: 1043
    functionDepth: 4
    functionLinenumber: 1043
    functionLinenumberEnd: 1092
    functionName: hamt_node_bitmap_find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - hamt_node_find
    - Py_SIZE
    - hamt_bitindex
    - assert
    - hamt_bitpos
    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:1098,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1099,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1103
    functionName: hamt_node_bitmap_traverse
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtNode_Bitmap_CAST
    - Py_VISIT
    - Py_SIZE
    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:1110,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1111,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1115,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/hamt.c:1115,1
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Python/hamt.c:1117,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/hamt.c:1123,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:1128,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/hamt.c:1132,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: 1114
        line_start: 1114
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1133
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1133
    functionName: hamt_node_bitmap_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtNode_Bitmap_CAST
    - Py_SIZE
    - PyObject_GC_UnTrack
    - assert
    - _Py_SINGLETON
    - Py_XDECREF
    - _Py_FatalRefcountError
    - Py_TYPE
    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:1146,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1150,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1151,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1151,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/hamt.c:1156,1
    - Dst: _PyLong_Format
      Src: /src/cpython/Python/hamt.c:1160,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1161,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1168,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1171,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1173,1
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1177,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/hamt.c:1182,1
    - Dst: hamt_node_dump
      Src: /src/cpython/Python/hamt.c:1186,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1193,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/hamt.c:1200,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Bitmap*
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1136
    functionDepth: 8
    functionLinenumber: 1136
    functionLinenumberEnd: 1208
    functionName: hamt_node_bitmap_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyLong_Format
    - hamt_node_dump
    - Py_SIZE
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_WriteASCII
    - Py_DECREF
    - _hamt_dump_ident
    - PyLong_FromUnsignedLong
    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:1223,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1224,1
    - Dst: PyObject_GC_NewVar
      Src: /src/cpython/Python/hamt.c:1226,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/hamt.c:1236,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/hamt.c:1239,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: 1222
        line_start: 1222
        source_file: /src/cpython/Python/hamt.c
    - condition: (size % 2 == 0)
      pos:
        line_end: 1223
        line_start: 1223
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1242
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1242
    functionName: hamt_node_collision_new
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_TRACK
    - PyObject_GC_NewVar
    - Py_SET_SIZE
    - 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:1254,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1257,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:1258,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: 1256
        line_start: 1256
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1269
      start: 1244
    functionDepth: 4
    functionLinenumber: 1244
    functionLinenumberEnd: 1269
    functionName: hamt_node_collision_find_index
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_SIZE
    - 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:1289,1
    - Dst: hamt_node_collision_new
      Src: /src/cpython/Python/hamt.c:1299,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1300,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1305,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1306,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1309,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1310,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1318,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1319,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1319,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1324,1
    - Dst: hamt_node_collision_new
      Src: /src/cpython/Python/hamt.c:1329,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1330,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1336,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1337,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:1341,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1341,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:1346,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:1361,1
    - Dst: hamt_bitpos
      Src: /src/cpython/Python/hamt.c:1365,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1366,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/cpython/Python/hamt.c:1368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1370,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: 1318
        line_start: 1318
        source_file: /src/cpython/Python/hamt.c
    - condition: (key_idx >= 0)
      pos:
        line_end: 1317
        line_start: 1317
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1373
      start: 1271
    functionDepth: 6
    functionLinenumber: 1271
    functionLinenumberEnd: 1373
    functionName: hamt_node_collision_assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_bitmap_new
    - Py_SETREF
    - Py_SIZE
    - hamt_node_collision_find_index
    - Py_UNREACHABLE
    - hamt_node_bitmap_assoc
    - assert
    - Py_DECREF
    - hamt_bitpos
    - Py_NewRef
    - hamt_node_collision_new
    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:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Collision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1375
    functionDepth: 0
    functionLinenumber: 1375
    functionLinenumberEnd: 1379
    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:1392,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1402,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1403,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1403,1
    - Dst: hamt_node_collision_count
      Src: /src/cpython/Python/hamt.c:1405,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:1422,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1428,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1429,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1432,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1433,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1434,1
    - Dst: hamt_bitpos
      Src: /src/cpython/Python/hamt.c:1437,1
    - Dst: hamt_node_collision_new
      Src: /src/cpython/Python/hamt.c:1446,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1447,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1455,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1457,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1458,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:1465,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: 1402
        line_start: 1402
        source_file: /src/cpython/Python/hamt.c
    - condition: (key_idx >= 0)
      pos:
        line_end: 1401
        line_start: 1401
        source_file: /src/cpython/Python/hamt.c
    - condition: (key_idx == 2)
      pos:
        line_end: 1431
        line_start: 1431
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1467
      start: 1381
    functionDepth: 5
    functionLinenumber: 1381
    functionLinenumberEnd: 1467
    functionName: hamt_node_collision_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_bitmap_new
    - Py_SIZE
    - hamt_node_collision_find_index
    - Py_UNREACHABLE
    - hamt_node_collision_count
    - assert
    - hamt_bitpos
    - Py_NewRef
    - hamt_node_collision_new
    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:1480,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1485,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1486,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1486,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1489,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: 1485
        line_start: 1485
        source_file: /src/cpython/Python/hamt.c
    - condition: (idx >= 0)
      pos:
        line_end: 1484
        line_start: 1484
        source_file: /src/cpython/Python/hamt.c
    - condition: (*val != NULL)
      pos:
        line_end: 1488
        line_start: 1488
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1492
      start: 1469
    functionDepth: 5
    functionLinenumber: 1469
    functionLinenumberEnd: 1492
    functionName: hamt_node_collision_find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - hamt_node_collision_find_index
    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:1499,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1500,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:1501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1504
    functionName: hamt_node_collision_traverse
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtNode_Collision_CAST
    - Py_VISIT
    - Py_SIZE
    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:1510,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/hamt.c:1511,1
    - Dst: _PyHamtNode_Collision_CAST
      Src: /src/cpython/Python/hamt.c:1513,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:1515,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/hamt.c:1518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1519
    functionName: hamt_node_collision_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - _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:1530,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1534,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1535,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/hamt.c:1540,1
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1544,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1548,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Collision*
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1522
    functionDepth: 6
    functionLinenumber: 1522
    functionLinenumberEnd: 1556
    functionName: hamt_node_collision_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Format
    - _hamt_dump_ident
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: "int hamt_node_collision_dump(PyHamtNode_Collision *node,\n                         PyUnicodeWriter
      *writer, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/hamt.c:1568,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/hamt.c:1580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - count
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1563
    functionDepth: 1
    functionLinenumber: 1563
    functionLinenumberEnd: 1582
    functionName: hamt_node_array_new
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyHamtNode
    signature: 'PyHamtNode *

      hamt_node_array_new(Py_ssize_t count)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1590,1
    - Dst: hamt_node_array_new
      Src: /src/cpython/Python/hamt.c:1593,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:1600,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1584
    functionDepth: 2
    functionLinenumber: 1584
    functionLinenumberEnd: 1605
    functionName: hamt_node_array_clone
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_XNewRef
    - hamt_node_array_new
    - 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:1619,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:1632,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/cpython/Python/hamt.c:1639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1642,1
    - Dst: hamt_node_array_new
      Src: /src/cpython/Python/hamt.c:1648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1650,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/hamt.c:1657,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1660,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1662,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:1667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1673,1
    - Dst: hamt_node_array_clone
      Src: /src/cpython/Python/hamt.c:1677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1679,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:1683,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1684,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: 1659
        line_start: 1659
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1688
      start: 1607
    functionDepth: 6
    functionLinenumber: 1607
    functionLinenumberEnd: 1688
    functionName: hamt_node_array_assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_bitmap_new
    - VALIDATE_ARRAY_NODE
    - Py_SETREF
    - hamt_node_array_new
    - hamt_node_array_clone
    - hamt_node_bitmap_assoc
    - assert
    - Py_DECREF
    - hamt_mask
    - hamt_node_assoc
    - Py_XNewRef
    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:1696,1
    - Dst: hamt_node_without
      Src: /src/cpython/Python/hamt.c:1704,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1711,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1718,1
    - Dst: hamt_node_array_clone
      Src: /src/cpython/Python/hamt.c:1720,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:1722,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/hamt.c:1726,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1732,1
    - Dst: hamt_node_array_clone
      Src: /src/cpython/Python/hamt.c:1750,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/hamt.c:1755,1
    - Dst: a_array::a_array
      Src: /src/cpython/Python/hamt.c:1755,1
    - Dst: hamt_node_bitmap_new
      Src: /src/cpython/Python/hamt.c:1768,1
    - Dst: IS_BITMAP_NODE
      Src: /src/cpython/Python/hamt.c:1788,1
    - Dst: hamt_node_bitmap_count
      Src: /src/cpython/Python/hamt.c:1791,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1805,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1806,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1810,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:1816,1
    - Dst: hamt_node_collision_count
      Src: /src/cpython/Python/hamt.c:1817,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1819,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1821,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1822,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:1828,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:1840,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: (sub_node != NULL)
      pos:
        line_end: 1717
        line_start: 1717
        source_file: /src/cpython/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1731
        line_start: 1731
        source_file: /src/cpython/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1710
        line_start: 1710
        source_file: /src/cpython/Python/hamt.c
    - condition: (((PyHamtNode_Array*)node)->a_count >= 16)
      pos:
        line_end: 1821
        line_start: 1821
        source_file: /src/cpython/Python/hamt.c
    - condition: (child_count > 1)
      pos:
        line_end: 1818
        line_start: 1818
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1842
      start: 1690
    functionDepth: 3
    functionLinenumber: 1690
    functionLinenumberEnd: 1842
    functionName: hamt_node_array_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - a_array::a_array
    - IS_ARRAY_NODE
    - hamt_node_bitmap_new
    - IS_COLLISION_NODE
    - Py_NewRef
    - Py_SETREF
    - hamt_node_array_clone
    - Py_CLEAR
    - IS_BITMAP_NODE
    - hamt_node_collision_count
    - Py_UNREACHABLE
    - assert
    - hamt_mask
    - hamt_node_without
    - Py_DECREF
    - hamt_node_bitmap_count
    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:1852,1
    - Dst: hamt_node_find
      Src: /src/cpython/Python/hamt.c:1861,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: 1862
      start: 1844
    functionDepth: 1
    functionLinenumber: 1844
    functionLinenumberEnd: 1862
    functionName: hamt_node_array_find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_mask
    - hamt_node_find
    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:1868,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1864
    functionDepth: 1
    functionLinenumber: 1864
    functionLinenumberEnd: 1873
    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:1879,1
    - Dst: _PyHamtNode_Array_CAST
      Src: /src/cpython/Python/hamt.c:1880,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/hamt.c:1882,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/hamt.c:1884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1875
    functionDepth: 1
    functionLinenumber: 1875
    functionLinenumberEnd: 1885
    functionName: hamt_node_array_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - _PyHamtNode_Array_CAST
    - Py_XDECREF
    - Py_TYPE
    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:1896,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1900,1
    - Dst: _hamt_dump_ident
      Src: /src/cpython/Python/hamt.c:1909,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:1913,1
    - Dst: hamt_node_dump
      Src: /src/cpython/Python/hamt.c:1917,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/hamt.c:1921,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Array*
    - PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1888
    functionDepth: 6
    functionLinenumber: 1888
    functionLinenumberEnd: 1929
    functionName: hamt_node_array_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Format
    - _hamt_dump_ident
    - PyUnicodeWriter_WriteASCII
    - hamt_node_dump
    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:1952,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/cpython/Python/hamt.c:1953,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1957,1
    - Dst: hamt_node_array_assoc
      Src: /src/cpython/Python/hamt.c:1958,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1963,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:1963,1
    - Dst: hamt_node_collision_assoc
      Src: /src/cpython/Python/hamt.c:1964,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: 1962
        line_start: 1962
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1968
      start: 1936
    functionDepth: 7
    functionLinenumber: 1936
    functionLinenumberEnd: 1968
    functionName: hamt_node_assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 3
    functionsReached:
    - IS_ARRAY_NODE
    - IS_COLLISION_NODE
    - hamt_node_collision_assoc
    - hamt_node_array_assoc
    - IS_BITMAP_NODE
    - hamt_node_bitmap_assoc
    - 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:1976,1
    - Dst: hamt_node_bitmap_without
      Src: /src/cpython/Python/hamt.c:1977,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:1982,1
    - Dst: hamt_node_array_without
      Src: /src/cpython/Python/hamt.c:1983,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:1989,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:1989,1
    - Dst: hamt_node_collision_without
      Src: /src/cpython/Python/hamt.c:1990,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: 1988
        line_start: 1988
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1995
      start: 1970
    functionDepth: 6
    functionLinenumber: 1970
    functionLinenumberEnd: 1995
    functionName: hamt_node_without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 2
    functionsReached:
    - IS_ARRAY_NODE
    - IS_COLLISION_NODE
    - hamt_node_collision_without
    - hamt_node_bitmap_without
    - IS_BITMAP_NODE
    - assert
    - hamt_node_array_without
    linkageType: ''
    returnType: hamt_without_t
    signature: "hamt_without_t hamt_node_without(PyHamtNode *node,\n                  uint32_t
      shift, int32_t hash,\n                  PyObject *key,\n                  PyHamtNode
      **new_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BITMAP_NODE
      Src: /src/cpython/Python/hamt.c:2015,1
    - Dst: hamt_node_bitmap_find
      Src: /src/cpython/Python/hamt.c:2016,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:2021,1
    - Dst: hamt_node_array_find
      Src: /src/cpython/Python/hamt.c:2022,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2027,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:2027,1
    - Dst: hamt_node_collision_find
      Src: /src/cpython/Python/hamt.c:2028,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: 2026
        line_start: 2026
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2032
      start: 1997
    functionDepth: 6
    functionLinenumber: 1997
    functionLinenumberEnd: 2032
    functionName: hamt_node_find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 2
    functionsReached:
    - IS_ARRAY_NODE
    - IS_COLLISION_NODE
    - IS_BITMAP_NODE
    - hamt_node_collision_find
    - hamt_node_array_find
    - assert
    - hamt_node_bitmap_find
    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:2045,1
    - Dst: hamt_node_bitmap_dump
      Src: /src/cpython/Python/hamt.c:2046,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:2049,1
    - Dst: hamt_node_array_dump
      Src: /src/cpython/Python/hamt.c:2050,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2054,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:2054,1
    - Dst: hamt_node_collision_dump
      Src: /src/cpython/Python/hamt.c:2055,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: 2053
        line_start: 2053
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2058
      start: 2035
    functionDepth: 9
    functionLinenumber: 2035
    functionLinenumberEnd: 2058
    functionName: hamt_node_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 2
    functionsReached:
    - IS_ARRAY_NODE
    - IS_COLLISION_NODE
    - hamt_node_array_dump
    - IS_BITMAP_NODE
    - hamt_node_bitmap_dump
    - assert
    - hamt_node_collision_dump
    linkageType: ''
    returnType: int
    signature: "int hamt_node_dump(PyHamtNode *node,\n               PyUnicodeWriter
      *writer, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - iter
    - root
    argTypes:
    - PyHamtIteratorState*
    - PyHamtNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2081
    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:2092,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2094,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2098,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2105,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2111,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: 2104
        line_start: 2104
        source_file: /src/cpython/Python/hamt.c
    - condition: (iter->i_level >= 0)
      pos:
        line_end: 2093
        line_start: 2093
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2118
      start: 2083
    functionDepth: 1
    functionLinenumber: 2083
    functionLinenumberEnd: 2118
    functionName: hamt_iterator_bitmap_next
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_iterator_next
    - Py_SIZE
    - 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:2129,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2131,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2135,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: 2130
        line_start: 2130
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2142
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2142
    functionName: hamt_iterator_collision_next
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_iterator_next
    - Py_SIZE
    - 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:2155,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2159,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2167,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2172,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2177,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2182,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: 2154
        line_start: 2154
        source_file: /src/cpython/Python/hamt.c
    - condition: (next_level < _Py_HAMT_MAX_TREE_DEPTH)
      pos:
        line_end: 2166
        line_start: 2166
        source_file: /src/cpython/Python/hamt.c
    - condition: (iter->i_level >= 0)
      pos:
        line_end: 2176
        line_start: 2176
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2183
      start: 2144
    functionDepth: 1
    functionLinenumber: 2144
    functionLinenumberEnd: 2183
    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:2192,1
    - Dst: IS_BITMAP_NODE
      Src: /src/cpython/Python/hamt.c:2196,1
    - Dst: hamt_iterator_bitmap_next
      Src: /src/cpython/Python/hamt.c:2197,1
    - Dst: IS_ARRAY_NODE
      Src: /src/cpython/Python/hamt.c:2199,1
    - Dst: hamt_iterator_array_next
      Src: /src/cpython/Python/hamt.c:2200,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2203,1
    - Dst: IS_COLLISION_NODE
      Src: /src/cpython/Python/hamt.c:2203,1
    - Dst: hamt_iterator_collision_next
      Src: /src/cpython/Python/hamt.c:2204,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: 2191
        line_start: 2191
        source_file: /src/cpython/Python/hamt.c
    - condition: (IS_COLLISION_NODE(current))
      pos:
        line_end: 2202
        line_start: 2202
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2206
      start: 2185
    functionDepth: 2
    functionLinenumber: 2185
    functionLinenumberEnd: 2206
    functionName: hamt_iterator_next
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 3
    functionsReached:
    - hamt_iterator_array_next
    - IS_ARRAY_NODE
    - hamt_iterator_collision_next
    - IS_COLLISION_NODE
    - hamt_iterator_bitmap_next
    - IS_BITMAP_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:2220,1
    - Dst: hamt_node_assoc
      Src: /src/cpython/Python/hamt.c:2225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2233,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2234,1
    - Dst: hamt_alloc
      Src: /src/cpython/Python/hamt.c:2237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2212
    functionDepth: 8
    functionLinenumber: 2212
    functionLinenumberEnd: 2247
    functionName: _PyHamt_Assoc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_hash
    - hamt_alloc
    - Py_DECREF
    - hamt_node_assoc
    - Py_NewRef
    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:2252,1
    - Dst: hamt_node_without
      Src: /src/cpython/Python/hamt.c:2259,1
    - Dst: _PyHamt_New
      Src: /src/cpython/Python/hamt.c:2268,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2270,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2272,1
    - Dst: hamt_alloc
      Src: /src/cpython/Python/hamt.c:2274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2276,1
    - Dst: assert
      Src: /src/cpython/Python/hamt.c:2282,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts:
    - condition: (new_root != NULL)
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/cpython/Python/hamt.c
    - condition: (new_o->h_count >= 0)
      pos:
        line_end: 2281
        line_start: 2281
        source_file: /src/cpython/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2288
      start: 2249
    functionDepth: 7
    functionLinenumber: 2249
    functionLinenumberEnd: 2288
    functionName: _PyHamt_Without
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_hash
    - _PyHamt_New
    - Py_UNREACHABLE
    - hamt_alloc
    - assert
    - Py_DECREF
    - hamt_node_without
    - Py_NewRef
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      _PyHamt_Without(PyHamtObject *o, PyObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hamt_hash
      Src: /src/cpython/Python/hamt.c:2297,1
    - Dst: hamt_node_find
      Src: /src/cpython/Python/hamt.c:2302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2290
    functionDepth: 7
    functionLinenumber: 2290
    functionLinenumberEnd: 2303
    functionName: hamt_find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_hash
    - hamt_node_find
    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:2309,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2306
    functionDepth: 8
    functionLinenumber: 2306
    functionLinenumberEnd: 2320
    functionName: _PyHamt_Find
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - hamt_find
    linkageType: ''
    returnType: int
    signature: int _PyHamt_Find(PyHamtObject *o, PyObject *key, PyObject **val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Python/hamt.c:2334,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/hamt.c:2335,1
    - Dst: hamt_iterator_init
      Src: /src/cpython/Python/hamt.c:2345,1
    - Dst: hamt_iterator_next
      Src: /src/cpython/Python/hamt.c:2348,1
    - Dst: hamt_find
      Src: /src/cpython/Python/hamt.c:2350,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/hamt.c:2361,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/hamt.c:2362,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/hamt.c:2363,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/hamt.c:2364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2365,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/hamt.c:2383,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyHamtObject*
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2323
    functionDepth: 8
    functionLinenumber: 2323
    functionLinenumberEnd: 2385
    functionName: _PyHamt_Eq
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_find
    - Py_INCREF
    - PyObject_RichCompareBool
    - hamt_iterator_init
    - hamt_iterator_next
    - Py_DECREF
    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: 2391
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2391
    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:2397,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/hamt.c:2404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2393
    functionDepth: 1
    functionLinenumber: 2393
    functionLinenumberEnd: 2406
    functionName: hamt_alloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      hamt_alloc(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2417
    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:2423,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/hamt.c:2428,1
    - Dst: hamt_node_dump
      Src: /src/cpython/Python/hamt.c:2433,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/hamt.c:2437,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/hamt.c:2440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2420
    functionDepth: 10
    functionLinenumber: 2420
    functionLinenumberEnd: 2442
    functionName: hamt_dump
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - hamt_node_dump
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_dump(PyHamtObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/hamt.c:2453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2455
    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:2460,1
    - Dst: hamt_baseiter_tp_clear
      Src: /src/cpython/Python/hamt.c:2461,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Python/hamt.c:2462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2457
    functionDepth: 2
    functionLinenumber: 2457
    functionLinenumberEnd: 2463
    functionName: hamt_baseiter_tp_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - hamt_baseiter_tp_clear
    linkageType: ''
    returnType: void
    signature: void hamt_baseiter_tp_dealloc(PyObject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:2469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2465
    functionDepth: 1
    functionLinenumber: 2465
    functionLinenumberEnd: 2471
    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:2479,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/hamt.c:2483,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2473
    functionDepth: 3
    functionLinenumber: 2473
    functionLinenumberEnd: 2494
    functionName: hamt_baseiter_tp_iternext
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    - Py_UNREACHABLE
    - hamt_iterator_next
    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: 2501
      start: 2496
    functionDepth: 0
    functionLinenumber: 2496
    functionLinenumberEnd: 2501
    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:2510,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2515,1
    - Dst: hamt_iterator_init
      Src: /src/cpython/Python/hamt.c:2518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - yield
    - o
    argTypes:
    - PyTypeObject*
    - binaryfunc
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2507
    functionDepth: 1
    functionLinenumber: 2507
    functionLinenumberEnd: 2521
    functionName: hamt_baseiter_new
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - Py_NewRef
    - hamt_iterator_init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_baseiter_new(PyTypeObject *type, binaryfunc yield, PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Python/hamt.c:2548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2545
    functionDepth: 2
    functionLinenumber: 2545
    functionLinenumberEnd: 2549
    functionName: hamt_iter_yield_items
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromPair
    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:2554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2551
    functionDepth: 2
    functionLinenumber: 2551
    functionLinenumberEnd: 2556
    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:2571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2572
      start: 2568
    functionDepth: 0
    functionLinenumber: 2568
    functionLinenumberEnd: 2572
    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:2577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2574
    functionDepth: 2
    functionLinenumber: 2574
    functionLinenumberEnd: 2579
    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:2594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2591
    functionDepth: 0
    functionLinenumber: 2591
    functionLinenumberEnd: 2595
    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:2600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2597
    functionDepth: 2
    functionLinenumber: 2597
    functionLinenumberEnd: 2602
    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: 2614
      start: 2613
    functionDepth: 0
    functionLinenumber: 2613
    functionLinenumberEnd: 2614
    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:2619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2616
    functionDepth: 1
    functionLinenumber: 2616
    functionLinenumberEnd: 2620
    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:2625,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/hamt.c:2626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2622
    functionDepth: 1
    functionLinenumber: 2622
    functionLinenumberEnd: 2628
    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:2634,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/hamt.c:2635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2631
    functionDepth: 1
    functionLinenumber: 2631
    functionLinenumberEnd: 2637
    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:2642,1
    - Dst: _Py_FatalRefcountError
      Src: /src/cpython/Python/hamt.c:2646,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/hamt.c:2652,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Python/hamt.c:2654,1
    - Dst: hamt_tp_clear
      Src: /src/cpython/Python/hamt.c:2656,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/hamt.c:2657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2639
    functionDepth: 4
    functionLinenumber: 2639
    functionLinenumberEnd: 2658
    functionName: hamt_tp_dealloc
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_tp_clear
    - PyObject_ClearWeakRefs
    - PyObject_GC_UnTrack
    - _PyHamtObject_CAST
    - _Py_FatalRefcountError
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void hamt_tp_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyHamt_Check
      Src: /src/cpython/Python/hamt.c:2664,1
    - Dst: PyHamt_Check
      Src: /src/cpython/Python/hamt.c:2664,1
    - Dst: _PyHamt_Eq
      Src: /src/cpython/Python/hamt.c:2668,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2661
    functionDepth: 9
    functionLinenumber: 2661
    functionLinenumberEnd: 2683
    functionName: hamt_tp_richcompare
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyHamt_Check
    - _PyHamt_Eq
    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:2689,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/hamt.c:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2685
    functionDepth: 9
    functionLinenumber: 2685
    functionLinenumberEnd: 2691
    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:2697,1
    - Dst: hamt_find
      Src: /src/cpython/Python/hamt.c:2698,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2703,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/hamt.c:2705,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2693
    functionDepth: 8
    functionLinenumber: 2693
    functionLinenumberEnd: 2710
    functionName: hamt_tp_subscript
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_find
    - PyErr_SetObject
    - Py_UNREACHABLE
    - _PyHamtObject_CAST
    - Py_NewRef
    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:2715,1
    - Dst: _PyHamt_Len
      Src: /src/cpython/Python/hamt.c:2716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2712
    functionDepth: 1
    functionLinenumber: 2712
    functionLinenumberEnd: 2717
    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:2722,1
    - Dst: _PyHamt_NewIterKeys
      Src: /src/cpython/Python/hamt.c:2723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2719
    functionDepth: 3
    functionLinenumber: 2719
    functionLinenumberEnd: 2724
    functionName: hamt_tp_iter
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtObject_CAST
    - _PyHamt_NewIterKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_tp_iter(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Python/hamt.c:2732,1
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2736,1
    - Dst: _PyHamt_Assoc
      Src: /src/cpython/Python/hamt.c:2737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2726
    functionDepth: 9
    functionLinenumber: 2726
    functionLinenumberEnd: 2738
    functionName: hamt_py_set
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtObject_CAST
    - _PyHamt_Assoc
    - PyArg_UnpackTuple
    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:2746,1
    - Dst: _PyHamtObject_CAST
      Src: /src/cpython/Python/hamt.c:2751,1
    - Dst: hamt_find
      Src: /src/cpython/Python/hamt.c:2752,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2757,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/hamt.c:2762,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/hamt.c:2764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2740
    functionDepth: 8
    functionLinenumber: 2740
    functionLinenumberEnd: 2766
    functionName: hamt_py_get
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_find
    - Py_UNREACHABLE
    - _PyHamtObject_CAST
    - Py_NewRef
    - PyArg_UnpackTuple
    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:2771,1
    - Dst: _PyHamt_Without
      Src: /src/cpython/Python/hamt.c:2772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2768
    functionDepth: 8
    functionLinenumber: 2768
    functionLinenumberEnd: 2773
    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:2778,1
    - Dst: _PyHamt_NewIterItems
      Src: /src/cpython/Python/hamt.c:2779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2775
    functionDepth: 3
    functionLinenumber: 2775
    functionLinenumberEnd: 2780
    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:2785,1
    - Dst: _PyHamt_NewIterValues
      Src: /src/cpython/Python/hamt.c:2786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2782
    functionDepth: 3
    functionLinenumber: 2782
    functionLinenumberEnd: 2787
    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:2792,1
    - Dst: _PyHamt_NewIterKeys
      Src: /src/cpython/Python/hamt.c:2793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2789
    functionDepth: 3
    functionLinenumber: 2789
    functionLinenumberEnd: 2794
    functionName: hamt_py_keys
    functionSourceFile: /src/cpython/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamtObject_CAST
    - _PyHamt_NewIterKeys
    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:2800,1
    - Dst: hamt_dump
      Src: /src/cpython/Python/hamt.c:2801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2797
    functionDepth: 11
    functionLinenumber: 2797
    functionLinenumberEnd: 2802
    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:
    - context_new_from_vars
    - ENSURE_Context
    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_get
    - context_new_from_vars
    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: (cb != NULL)
      pos:
        line_end: 131
        line_start: 131
        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: (interp->_initialized)
      pos:
        line_end: 124
        line_start: 124
        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:
    - context_event_name
    - cb
    - Py_REFCNT
    - assert
    - PyErr_FormatUnraisable
    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:
    - assert
    - PyErr_SetString
    - _PyInterpreterState_GET
    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:
    - assert
    - PyErr_Format
    - _PyInterpreterState_GET
    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: _Py_atomic_exchange_int
      Src: /src/cpython/Python/context.c:199,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/context.c:206,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:212,1
    - Dst: context_switched
      Src: /src/cpython/Python/context.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ts
    - octx
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 215
    functionName: _PyContext_Enter
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - _PyErr_Format
    - _Py_atomic_exchange_int
    - ENSURE_Context
    - context_switched
    - Py_NewRef
    linkageType: ''
    returnType: int
    signature: int _PyContext_Enter(PyThreadState *ts, PyObject *octx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:221,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:222,1
    - Dst: _PyContext_Enter
      Src: /src/cpython/Python/context.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - octx
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: PyContext_Enter
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - _PyContext_Enter
    - _PyThreadState_GET
    - assert
    linkageType: ''
    returnType: int
    signature: int PyContext_Enter(PyObject *octx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_Context
      Src: /src/cpython/Python/context.c:230,1
    - Dst: FT_ATOMIC_LOAD_INT_RELAXED
      Src: /src/cpython/Python/context.c:232,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:235,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:242,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/context.c:248,1
    - Dst: FT_ATOMIC_STORE_INT
      Src: /src/cpython/Python/context.c:251,1
    - Dst: context_switched
      Src: /src/cpython/Python/context.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ts
    - octx
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 254
    functionName: _PyContext_Exit
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - FT_ATOMIC_LOAD_INT_RELAXED
    - PyErr_SetString
    - Py_SETREF
    - ENSURE_Context
    - context_switched
    - FT_ATOMIC_STORE_INT
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _PyContext_Exit(PyThreadState *ts, PyObject *octx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:259,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:260,1
    - Dst: _PyContext_Exit
      Src: /src/cpython/Python/context.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - octx
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 5
    functionLinenumber: 256
    functionLinenumberEnd: 262
    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:268,1
    - Dst: contextvar_new
      Src: /src/cpython/Python/context.c:272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - def
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 275
    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:281,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:284,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:285,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:300,1
    - Dst: PyContext_CheckExact
      Src: /src/cpython/Python/context.c:300,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:304,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:309,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/context.c:336,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 3
    argNames:
    - ovar
    - def
    - val
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/cpython/Python/context.c
    - condition: (PyContext_CheckExact(ts->context))
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/cpython/Python/context.c
    - condition: (found != NULL)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 342
      start: 278
    functionDepth: 9
    functionLinenumber: 278
    functionLinenumberEnd: 342
    functionName: PyContextVar_Get
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - assert
    - PyContext_CheckExact
    - _PyThreadState_GET
    - ENSURE_ContextVar
    - _PyHamt_Find
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int PyContextVar_Get(PyObject *ovar, PyObject *def, PyObject **val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_ContextVar
      Src: /src/cpython/Python/context.c:348,1
    - Dst: context_get
      Src: /src/cpython/Python/context.c:351,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:357,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/context.c:362,1
    - Dst: token_new
      Src: /src/cpython/Python/context.c:363,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/context.c:364,1
    - Dst: contextvar_set
      Src: /src/cpython/Python/context.c:366,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ovar
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 345
    functionDepth: 9
    functionLinenumber: 345
    functionLinenumberEnd: 372
    functionName: PyContextVar_Set
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - context_get
    - contextvar_set
    - token_new
    - ENSURE_ContextVar
    - _PyHamt_Find
    - Py_XDECREF
    - Py_DECREF
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContextVar_Set(PyObject *ovar, PyObject *val)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_ContextVar
      Src: /src/cpython/Python/context.c:378,1
    - Dst: ENSURE_ContextToken
      Src: /src/cpython/Python/context.c:379,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:384,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:390,1
    - Dst: context_get
      Src: /src/cpython/Python/context.c:395,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:397,1
    - Dst: contextvar_del
      Src: /src/cpython/Python/context.c:405,1
    - Dst: contextvar_set
      Src: /src/cpython/Python/context.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ovar
    - otok
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 410
    functionName: PyContextVar_Reset
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - context_get
    - ENSURE_ContextToken
    - contextvar_del
    - PyErr_Format
    - ENSURE_ContextVar
    - contextvar_set
    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: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    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:427,1
    - Dst: PyObject_GC_New
      Src: /src/cpython/Python/context.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 441
    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:447,1
    - Dst: _PyHamt_New
      Src: /src/cpython/Python/context.c:452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:454,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/context.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 460
    functionName: context_new_empty
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _context_alloc
    - _PyHamt_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      context_new_empty(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _context_alloc
      Src: /src/cpython/Python/context.c:466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:471,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/context.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vars
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 475
    functionName: context_new_from_vars
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 2
    functionsReached:
    - _context_alloc
    - _PyObject_GC_TRACK
    - Py_NewRef
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      context_new_from_vars(PyHamtObject *vars)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/context.c:481,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:482,1
    - Dst: context_new_empty
      Src: /src/cpython/Python/context.c:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 492
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 492
    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:497,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 504
    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:509,1
    - Dst: PyDict_Size
      Src: /src/cpython/Python/context.c:509,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/context.c:510,1
    - Dst: PyContext_New
      Src: /src/cpython/Python/context.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 515
    functionName: context_tp_new
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyTuple_Size
    - PyDict_Size
    - PyContext_New
    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:520,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:521,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: context_tp_clear
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContext_CAST
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int context_tp_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:529,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:530,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: context_tp_traverse
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContext_CAST
    - Py_VISIT
    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:538,1
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:539,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/cpython/Python/context.c:541,1
    - Dst: context_tp_clear
      Src: /src/cpython/Python/context.c:543,1
    - Dst: _Py_FREELIST_FREE
      Src: /src/cpython/Python/context.c:545,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/context.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 546
    functionName: context_tp_dealloc
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - context_tp_clear
    - PyObject_ClearWeakRefs
    - _PyContext_CAST
    - _PyObject_GC_UNTRACK
    - _Py_FREELIST_FREE
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void context_tp_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:551,1
    - Dst: _PyHamt_NewIterKeys
      Src: /src/cpython/Python/context.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: context_tp_iter
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContext_CAST
    - _PyHamt_NewIterKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_tp_iter(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyContext_CheckExact
      Src: /src/cpython/Python/context.c:558,1
    - Dst: PyContext_CheckExact
      Src: /src/cpython/Python/context.c:558,1
    - Dst: _PyHamt_Eq
      Src: /src/cpython/Python/context.c:564,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 555
    functionDepth: 9
    functionLinenumber: 555
    functionLinenumberEnd: 580
    functionName: context_tp_richcompare
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContext_CheckExact
    - _PyHamt_Eq
    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:585,1
    - Dst: _PyHamt_Len
      Src: /src/cpython/Python/context.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: context_tp_len
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContext_CAST
    - _PyHamt_Len
    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:592,1
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:596,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:597,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/context.c:602,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 589
    functionDepth: 9
    functionLinenumber: 589
    functionLinenumberEnd: 606
    functionName: context_tp_subscript
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - context_check_key_type
    - _PyHamt_Find
    - _PyContext_CAST
    - Py_NewRef
    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:611,1
    - Dst: _PyContext_CAST
      Src: /src/cpython/Python/context.c:615,1
    - Dst: _PyHamt_Find
      Src: /src/cpython/Python/context.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 608
    functionDepth: 9
    functionLinenumber: 608
    functionLinenumberEnd: 617
    functionName: context_tp_contains
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContext_CAST
    - _PyHamt_Find
    - context_check_key_type
    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:
    - _PyHamt_Find
    - Py_NewRef
    - context_check_key_type
    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:
    - _PyContext_Exit
    - _PyObject_VectorcallTstate
    - _PyErr_SetString
    - _PyThreadState_GET
    - Py_XDECREF
    - _PyContext_Enter
    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:
    - context_get
    - _PyThreadState_GET
    - _PyHamt_Assoc
    - Py_SETREF
    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:
    - context_get
    - PyErr_SetObject
    - _PyHamt_Without
    - Py_SETREF
    - Py_DECREF
    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:
    - PyObject_Hash
    - Py_HashPointer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t contextvar_generate_hash(void *addr, PyObject *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/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:
    - contextvar_generate_hash
    - PyObject_GC_New
    - PyErr_SetString
    - PyUnicode_Check
    - _PyObject_GC_MAY_BE_TRACKED
    - Py_DECREF
    - Py_XNewRef
    - Py_NewRef
    - PyObject_GC_Track
    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:
    - PyObject_GC_UnTrack
    - contextvar_tp_clear
    - Py_TYPE
    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: 5
    functionLinenumber: 968
    functionLinenumberEnd: 1006
    functionName: contextvar_tp_repr
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContextVar_CAST
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      contextvar_tp_repr(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_Get
      Src: /src/cpython/Python/context.c:1030,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/context.c:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1025
    functionDepth: 10
    functionLinenumber: 1025
    functionLinenumberEnd: 1040
    functionName: _contextvars_ContextVar_get_impl
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContextVar_Get
    - PyErr_SetObject
    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:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1057
    functionDepth: 10
    functionLinenumber: 1057
    functionLinenumberEnd: 1062
    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:1079,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/context.c:1080,1
    - Dst: PyContextVar_Reset
      Src: /src/cpython/Python/context.c:1085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1090
    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: 1137
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1137
    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:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1145
    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:1150,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:1151,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:1152,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/context.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1155
    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:1160,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:1161,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:1162,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/context.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1165
    functionName: token_tp_traverse
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContextToken_CAST
    - Py_VISIT
    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:1170,1
    - Dst: token_tp_clear
      Src: /src/cpython/Python/context.c:1171,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/context.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1167
    functionDepth: 2
    functionLinenumber: 1167
    functionLinenumberEnd: 1173
    functionName: token_tp_dealloc
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - token_tp_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void token_tp_dealloc(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextToken_CAST
      Src: /src/cpython/Python/context.c:1178,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/context.c:1179,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/context.c:1183,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/context.c:1187,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/context.c:1191,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Python/context.c:1194,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/context.c:1197,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/context.c:1200,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/context.c:1203,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1175
    functionDepth: 5
    functionLinenumber: 1175
    functionLinenumberEnd: 1205
    functionName: token_tp_repr
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PyUnicodeWriter_Format
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteASCII
    - _PyContextToken_CAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_tp_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContextToken_CAST
      Src: /src/cpython/Python/context.c:1210,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1212
    functionName: token_get_var
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContextToken_CAST
    - Py_NewRef
    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:1217,1
    - Dst: get_token_missing
      Src: /src/cpython/Python/context.c:1219,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1223
    functionName: token_get_old_value
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyContextToken_CAST
    - get_token_missing
    - Py_NewRef
    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:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1242
    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:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - type
    - val
    - tb
    argTypes:
    - PyContextToken*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1265
    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:1295,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1300,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/context.c:1302,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/context.c:1304,1
    - Dst: PyObject_GC_Track
      Src: /src/cpython/Python/context.c:1308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - var
    - val
    argTypes:
    - PyContext*
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1310
    functionName: token_new
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - Py_XNewRef
    - Py_NewRef
    - PyObject_GC_Track
    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:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1316
    functionDepth: 2
    functionLinenumber: 1316
    functionLinenumberEnd: 1320
    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:1327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Py_UNUSED(self)
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1331
    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:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1349
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_token_missing
      Src: /src/cpython/Python/context.c:1358,1
    - Dst: assert
      Src: /src/cpython/Python/context.c:1359,1
    - Dst: PyUnstable_IsImmortal
      Src: /src/cpython/Python/context.c:1359,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/context.c:1360,1
    - Dst: _PyType_GetDict
      Src: /src/cpython/Python/context.c:1361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:1363,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/context.c:1364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/context.c:1366,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/context.c:1368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyUnstable_IsImmortal(missing))
      pos:
        line_end: 1358
        line_start: 1358
        source_file: /src/cpython/Python/context.c
    constantsTouched: []
    func_position:
      end: 1369
      start: 1355
    functionDepth: 11
    functionLinenumber: 1355
    functionLinenumberEnd: 1369
    functionName: _PyContext_Init
    functionSourceFile: /src/cpython/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - get_token_missing
    - PyUnstable_IsImmortal
    - _PyType_GetDict
    - PyDict_SetItemString
    - _PyStatus_ERR
    - assert
    - Py_DECREF
    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: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    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: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    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: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    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: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: LOCATION
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCATION(LNO, END_LNO, COL, END_COL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:104,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/flowgraph.c:104,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Python/flowgraph.c:104,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Python/flowgraph.c:105,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: 103
        line_start: 103
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    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:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - cfg_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    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: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    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: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    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: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    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:147,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:155,1
    - Dst: _Py_CArray_EnsureCapacity
      Src: /src/cpython/Python/flowgraph.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 159
    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:163,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (b->b_iused >= 0)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b->b_instr != NULL)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    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:178,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 188
    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:193,1
    - Dst: IS_WITHIN_OPCODE_RANGE
      Src: /src/cpython/Python/flowgraph.c:193,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:194,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:194,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:195,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/flowgraph.c:195,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:195,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:196,1
    - Dst: basicblock_next_instr
      Src: /src/cpython/Python/flowgraph.c:198,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:207,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:208,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: 192
        line_start: 192
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (OPCODE_HAS_ARG(opcode) || HAS_TARGET(opcode) || oparg == 0)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (0 <= oparg && oparg < (1 << 30))
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i->i_target == NULL)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i->i_except == NULL)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 211
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 211
    functionName: basicblock_addop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_ARG
    - HAS_TARGET
    - IS_WITHIN_OPCODE_RANGE
    - IS_ASSEMBLER_OPCODE
    - assert
    - basicblock_next_instr
    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:216,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:217,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:221,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:222,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:223,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:224,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: 223
        line_start: 223
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 227
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 227
    functionName: basicblock_add_jump
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_addop
    - is_jump
    - basicblock_last_instr
    - assert
    - RETURN_IF_ERROR
    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:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - basicblock*
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 240
    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:244,1
    - Dst: IS_SCOPE_EXIT_OPCODE
      Src: /src/cpython/Python/flowgraph.c:246,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: basicblock_nofallthrough
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_UNCONDITIONAL_JUMP_OPCODE
    - IS_SCOPE_EXIT_OPCODE
    - basicblock_last_instr
    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: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    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: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    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:259,1
    - Dst: BB_NO_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:259,1
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:260,1
    - Dst: basicblock_append_instructions
      Src: /src/cpython/Python/flowgraph.c:264,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: 258
        line_start: 258
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 5
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: copy_basicblock
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - BB_NO_FALLTHROUGH
    - cfg_builder_new_block
    - basicblock_append_instructions
    - assert
    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:272,1
    - Dst: basicblock_next_instr
      Src: /src/cpython/Python/flowgraph.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - block
    - pos
    - instr
    argTypes:
    - basicblock*
    - int
    - cfg_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: basicblock_insert_instruction
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - RETURN_IF_ERROR
    - basicblock_next_instr
    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:285,1
    - Dst: OPCODE_HAS_ARG
      Src: /src/cpython/Python/flowgraph.c:290,1
    - Dst: sprintf
      Src: /src/cpython/Python/flowgraph.c:291,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:293,1
    - Dst: sprintf
      Src: /src/cpython/Python/flowgraph.c:294,1
    - Dst: fprintf
      Src: /src/cpython/Python/flowgraph.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - cfg_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 298
    functionName: dump_instr
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_ARG
    - HAS_TARGET
    - is_jump
    - fprintf
    - sprintf
    linkageType: ''
    returnType: void
    signature: void dump_instr(cfg_instr *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:302,1
    - Dst: IS_RETURN_OPCODE
      Src: /src/cpython/Python/flowgraph.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: basicblock_returns
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_RETURN_OPCODE
    - basicblock_last_instr
    linkageType: ''
    returnType: int
    signature: int basicblock_returns(const basicblock *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_returns
      Src: /src/cpython/Python/flowgraph.c:309,1
    - Dst: fprintf
      Src: /src/cpython/Python/flowgraph.c:311,1
    - Dst: fprintf
      Src: /src/cpython/Python/flowgraph.c:313,1
    - Dst: BB_NO_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:314,1
    - Dst: fprintf
      Src: /src/cpython/Python/flowgraph.c:320,1
    - Dst: dump_instr
      Src: /src/cpython/Python/flowgraph.c:321,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:323,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - b
    - highlight
    argTypes:
    - basicblock*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 328
    functionName: dump_basicblock
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_returns
    - _PyOpcode_num_popped
    - BB_NO_FALLTHROUGH
    - dump_instr
    - fprintf
    - _PyOpcode_num_pushed
    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:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - entryblock
    - mark
    argTypes:
    - basicblock*
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 4
    functionLinenumber: 330
    functionLinenumberEnd: 336
    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:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - g
    - block
    argTypes:
    - cfg_builder*
    - basicblock*
    assertStmts:
    - condition: (block != NULL)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 350
    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:354,1
    - Dst: IS_SCOPE_EXIT_OPCODE
      Src: /src/cpython/Python/flowgraph.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: basicblock_exits_scope
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_SCOPE_EXIT_OPCODE
    - basicblock_last_instr
    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:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 366
    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:371,1
    - Dst: IS_TERMINATOR_OPCODE
      Src: /src/cpython/Python/flowgraph.c:372,1
    - Dst: IS_LABEL
      Src: /src/cpython/Python/flowgraph.c:375,1
    - Dst: IS_LABEL
      Src: /src/cpython/Python/flowgraph.c:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 386
    functionName: cfg_builder_current_block_is_terminated
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_LABEL
    - basicblock_last_instr
    - IS_TERMINATOR_OPCODE
    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:391,1
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:392,1
    - Dst: cfg_builder_use_next_block
      Src: /src/cpython/Python/flowgraph.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: cfg_builder_maybe_start_new_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - cfg_builder_current_block_is_terminated
    - cfg_builder_new_block
    - 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:407,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:409,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/cpython/Python/flowgraph.c:409,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:411,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:412,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:413,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:416,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:417,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: 406
        line_start: 406
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_iused >= 0)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!_PyMem_IsPtrFreed(block))
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_ialloc > 0)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_ialloc >= block->b_iused)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_iused == 0)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_ialloc == 0)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 421
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 421
    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:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 435
    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:440,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:442,1
    - Dst: memset
      Src: /src/cpython/Python/flowgraph.c:445,1
    - Dst: init_cfg_builder
      Src: /src/cpython/Python/flowgraph.c:446,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: _PyCfgBuilder_New
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - memset
    - PyMem_Free
    - PyMem_Malloc
    - 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:459,1
    - Dst: cfg_builder_check
      Src: /src/cpython/Python/flowgraph.c:459,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:463,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:466,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (cfg_builder_check(g))
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 470
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 470
    functionName: _PyCfgBuilder_Free
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - cfg_builder_check
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyCfgBuilder_Free(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 484
    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:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - g
    - lbl
    argTypes:
    - cfg_builder*
    - jump_target_label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 491
    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:496,1
    - Dst: cfg_builder_maybe_start_new_block
      Src: /src/cpython/Python/flowgraph.c:496,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:497,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: 498
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 498
    functionName: _PyCfgBuilder_Addop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - RETURN_IF_ERROR
    - cfg_builder_maybe_start_new_block
    - basicblock_addop
    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: 508
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 508
    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:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 521
    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:526,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:528,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:529,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:530,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:532,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (next)
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (0)
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 542
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 542
    functionName: no_redundant_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_UNCONDITIONAL_JUMP_OPCODE
    - next_nonempty_block
    - basicblock_last_instr
    - 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:549,1
    - Dst: IS_CONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:550,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:553,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:553,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:557,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:558,1
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:582,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:586,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:587,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:588,1
    - Dst: basicblock_add_jump
      Src: /src/cpython/Python/flowgraph.c:589,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: 552
        line_start: 552
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 598
      start: 547
    functionDepth: 6
    functionLinenumber: 547
    functionLinenumberEnd: 598
    functionName: normalize_jumps_in_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_add_jump
    - basicblock_addop
    - IS_ASSEMBLER_OPCODE
    - cfg_builder_new_block
    - basicblock_last_instr
    - assert
    - RETURN_IF_ERROR
    - IS_CONDITIONAL_JUMP_OPCODE
    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:610,1
    - Dst: normalize_jumps_in_block
      Src: /src/cpython/Python/flowgraph.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 601
    functionDepth: 7
    functionLinenumber: 601
    functionLinenumberEnd: 613
    functionName: normalize_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - RETURN_IF_ERROR
    - normalize_jumps_in_block
    linkageType: ''
    returnType: int
    signature: int normalize_jumps(cfg_builder *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:621,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:621,1
    - Dst: IS_TERMINATOR_OPCODE
      Src: /src/cpython/Python/flowgraph.c:622,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 631
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 631
    functionName: check_cfg
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_ASSEMBLER_OPCODE
    - PyErr_SetString
    - 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: 643
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 643
    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:649,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:651,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:653,1
    - Dst: memset
      Src: /src/cpython/Python/flowgraph.c:656,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:665,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:666,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:668,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:670,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:671,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (instr->i_target == NULL)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (lbl >= 0 && lbl <= max_label)
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_target != NULL)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_target->b_label.id == lbl)
      pos:
        line_end: 670
        line_start: 670
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 677
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 677
    functionName: translate_jump_labels_to_targets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - HAS_TARGET
    - PyMem_Malloc
    - PyErr_NoMemory
    - get_max_label
    - memset
    - PyMem_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int translate_jump_labels_to_targets(basicblock *entryblock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:683,1
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:689,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (!b->b_except_handler)
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 695
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 695
    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:706,1
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:706,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:712,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: 705
        line_start: 705
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (stack->depth <= CO_MAXBLOCKS)
      pos:
        line_end: 711
        line_start: 711
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 715
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 715
    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:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct _PyCfgExceptStack*
    assertStmts:
    - condition: (stack->depth > 0)
      pos:
        line_end: 718
        line_start: 718
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 721
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 721
    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: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    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:730,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 738
    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:742,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:744,1
    - Dst: memcpy
      Src: /src/cpython/Python/flowgraph.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct _PyCfgExceptStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 749
    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:758,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 763
    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:789,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:790,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Python/flowgraph.c:794,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: 800
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 800
    functionName: get_stack_effects
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_BLOCK_PUSH_OPCODE
    - _PyOpcode_num_pushed
    - _PyOpcode_num_popped
    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:806,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:810,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: 809
        line_start: 809
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 815
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 815
    functionName: stackdepth_push
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - assert
    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:827,1
    - Dst: stackdepth_push
      Src: /src/cpython/Python/flowgraph.c:836,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:842,1
    - Dst: get_stack_effects
      Src: /src/cpython/Python/flowgraph.c:847,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/flowgraph.c:848,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/flowgraph.c:855,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:859,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:860,1
    - Dst: get_stack_effects
      Src: /src/cpython/Python/flowgraph.c:861,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/flowgraph.c:862,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:868,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:869,1
    - Dst: stackdepth_push
      Src: /src/cpython/Python/flowgraph.c:870,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:875,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:875,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:876,1
    - Dst: IS_SCOPE_EXIT_OPCODE
      Src: /src/cpython/Python/flowgraph.c:877,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:885,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:885,1
    - Dst: stackdepth_push
      Src: /src/cpython/Python/flowgraph.c:886,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:893,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (BB_HAS_FALLTHROUGH(b))
      pos:
        line_end: 884
        line_start: 884
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (target_depth >= 0)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(instr->i_opcode))
      pos:
        line_end: 874
        line_start: 874
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (depth >= 0)
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 895
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 895
    functionName: calculate_stackdepth
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - HAS_TARGET
    - IS_SCOPE_EXIT_OPCODE
    - IS_ASSEMBLER_OPCODE
    - get_stack_effects
    - Py_MAX
    - BB_HAS_FALLTHROUGH
    - stackdepth_push
    - PyErr_Format
    - assert
    - PyMem_Free
    - make_cfg_traversal_stack
    - IS_UNCONDITIONAL_JUMP_OPCODE
    linkageType: ''
    returnType: int
    signature: int calculate_stackdepth(cfg_builder *g)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:899,1
    - Dst: make_except_stack
      Src: /src/cpython/Python/flowgraph.c:903,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:905,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:906,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:918,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:920,1
    - Dst: except_stack_top
      Src: /src/cpython/Python/flowgraph.c:922,1
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:926,1
    - Dst: copy_except_stack
      Src: /src/cpython/Python/flowgraph.c:928,1
    - Dst: push_except_block
      Src: /src/cpython/Python/flowgraph.c:937,1
    - Dst: pop_except_block
      Src: /src/cpython/Python/flowgraph.c:940,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:941,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:943,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:945,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:947,1
    - Dst: copy_except_stack
      Src: /src/cpython/Python/flowgraph.c:948,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:970,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:984,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:985,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:992,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:997,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:1000,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:1003,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:1004,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 98
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (b->b_visited == 1)
      pos:
        line_end: 917
        line_start: 917
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (except_stack != NULL)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (last_yield_except_depth >= 0)
      pos:
        line_end: 969
        line_start: 969
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i == b->b_iused -1)
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (except_stack != NULL)
      pos:
        line_end: 984
        line_start: 984
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b->b_exceptstack == NULL)
      pos:
        line_end: 996
        line_start: 996
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1006
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 1006
    functionName: label_exception_targets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - except_stack_top
    - copy_except_stack
    - PyErr_NoMemory
    - is_jump
    - INSTR_SET_OP0
    - make_except_stack
    - pop_except_block
    - BB_HAS_FALLTHROUGH
    - PyMem_Free
    - assert
    - push_except_block
    - is_block_push
    - make_cfg_traversal_stack
    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:1015,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:1025,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1027,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1036,1
    - Dst: is_block_push
      Src: /src/cpython/Python/flowgraph.c:1036,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:1046,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (b->b_next->b_predecessors == 0)
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1056
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1056
    functionName: remove_unreachable
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_jump
    - BB_HAS_FALLTHROUGH
    - PyMem_Free
    - assert
    - is_block_push
    - make_cfg_traversal_stack
    linkageType: ''
    returnType: int
    signature: int remove_unreachable(basicblock *entryblock)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:1086,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1112,1
    - Dst: memset
      Src: /src/cpython/Python/flowgraph.c:1115,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 1
    argNames:
    - bb
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (dest <= bb->b_iused)
      pos:
        line_end: 1111
        line_start: 1111
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1117
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1117
    functionName: basicblock_remove_redundant_nops
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - memset
    - next_nonempty_block
    - 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:1123,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1128
    functionName: remove_redundant_nops
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - RETURN_IF_ERROR
    - basicblock_remove_redundant_nops
    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:1142,1
    - Dst: basicblock_remove_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:1142,1
    - Dst: IS_LABEL
      Src: /src/cpython/Python/flowgraph.c:1143,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1155,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1163,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1164,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1168,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:1168,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1174
    functionName: remove_redundant_nops_and_pairs
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - IS_LABEL
    - basicblock_remove_redundant_nops
    - is_jump
    - INSTR_SET_OP0
    - BB_HAS_FALLTHROUGH
    - loads_const
    - 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:1188,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1192,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:1192,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:1193,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:1194,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:1196,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:1199,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1202,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: 1191
        line_start: 1191
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1208
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1208
    functionName: remove_redundant_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - next_nonempty_block
    - IS_ASSEMBLER_OPCODE
    - PyErr_SetString
    - basicblock_last_instr
    - INSTR_SET_OP0
    - assert
    - IS_UNCONDITIONAL_JUMP_OPCODE
    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: 1218
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1218
    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:1230,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:1234,1
    - Dst: basicblock_exits_scope
      Src: /src/cpython/Python/flowgraph.c:1238,1
    - Dst: basicblock_has_no_lineno
      Src: /src/cpython/Python/flowgraph.c:1240,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:1241,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1243,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1243,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1245,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1246,1
    - Dst: basicblock_append_instructions
      Src: /src/cpython/Python/flowgraph.c:1246,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:1248,1
    - Dst: IS_UNCONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/flowgraph.c:1249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - bb
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (is_jump(last))
      pos:
        line_end: 1242
        line_start: 1242
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1260
      start: 1228
    functionDepth: 5
    functionLinenumber: 1228
    functionLinenumberEnd: 1260
    functionName: basicblock_inline_small_or_no_lineno_blocks
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_append_instructions
    - is_jump
    - basicblock_last_instr
    - INSTR_SET_OP0
    - BB_HAS_FALLTHROUGH
    - basicblock_has_no_lineno
    - assert
    - basicblock_exits_scope
    - RETURN_IF_ERROR
    - IS_UNCONDITIONAL_JUMP_OPCODE
    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:1268,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1262
    functionDepth: 6
    functionLinenumber: 1262
    functionLinenumberEnd: 1276
    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:1284,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1284,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1285,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:1285,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1286,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:1286,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1293,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1295,1
    - Dst: basicblock_add_jump
      Src: /src/cpython/Python/flowgraph.c:1296,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: 1283
        line_start: 1283
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst == basicblock_last_instr(bb))
      pos:
        line_end: 1285
        line_start: 1285
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (is_jump(target))
      pos:
        line_end: 1284
        line_start: 1284
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1302
      start: 1281
    functionDepth: 6
    functionLinenumber: 1281
    functionLinenumberEnd: 1302
    functionName: jump_thread
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_add_jump
    - is_jump
    - basicblock_last_instr
    - INSTR_SET_OP0
    - assert
    - RETURN_IF_ERROR
    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:1307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1310
    functionName: loads_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - OPCODE_HAS_CONST
    linkageType: ''
    returnType: int
    signature: int loads_const(int opcode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1317,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1317,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1319,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/flowgraph.c:1319,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1320,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/flowgraph.c:1322,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1327,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/flowgraph.c:1330,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1333,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/flowgraph.c:1334,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/flowgraph.c:1335,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:1339,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/flowgraph.c:1343,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - opcode
    - oparg
    - co_consts
    argTypes:
    - int
    - int
    - PyObject*
    assertStmts:
    - condition: (loads_const(opcode))
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_Check(co_consts))
      pos:
        line_end: 1318
        line_start: 1318
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (oparg < NUM_COMMON_CONSTANTS)
      pos:
        line_end: 1332
        line_start: 1332
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1344
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1344
    functionName: get_const_value
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetString
    - PyList_GET_ITEM
    - _PyInterpreterState_GET
    - loads_const
    - PyList_Check
    - PyErr_Format
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_GET_SIZE
    - Py_NewRef
    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:1351,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1352,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/flowgraph.c:1356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1358,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1362,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:1364,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1365,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/flowgraph.c:1368,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1369,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/flowgraph.c:1373,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/flowgraph.c:1374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1375,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:1376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - newconst
    - consts
    - const_cache
    - consts_index
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1347
    functionDepth: 16
    functionLinenumber: 1347
    functionLinenumberEnd: 1382
    functionName: add_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_set
    - PyErr_NoMemory
    - PyErr_SetString
    - _PyCompile_ConstCacheMergeOne
    - PyList_Append
    - Py_DECREF
    - _Py_hashtable_get_entry
    - PyList_GET_SIZE
    - PyList_SetSlice
    linkageType: ''
    returnType: int
    signature: "int add_const(PyObject *newconst, PyObject *consts, PyObject *const_cache,\n
      \         _Py_hashtable_t *consts_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1394,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1395,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1396,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1403,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: 1393
        line_start: 1393
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (size >= 0)
      pos:
        line_end: 1394
        line_start: 1394
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (size <= _PY_STACK_USE_GUIDELINE)
      pos:
        line_end: 1395
        line_start: 1395
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1410
      start: 1391
    functionDepth: 2
    functionLinenumber: 1391
    functionLinenumberEnd: 1410
    functionName: get_const_loading_instrs
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - loads_const
    - assert
    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:1421,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:1422,1
    - Dst: INSTR_SET_LOC
      Src: /src/cpython/Python/flowgraph.c:1423,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: 1420
        line_start: 1420
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1425
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1425
    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:1436,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/flowgraph.c:1438,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/flowgraph.c:1439,1
    - Dst: _PY_IS_SMALL_INT
      Src: /src/cpython/Python/flowgraph.c:1442,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1443,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/flowgraph.c:1443,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - instr
    - newconst
    - consts
    - const_cache
    argTypes:
    - cfg_instr*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_Py_IsImmortal(newconst))
      pos:
        line_end: 1442
        line_start: 1442
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1449
      start: 1432
    functionDepth: 3
    functionLinenumber: 1432
    functionLinenumberEnd: 1449
    functionName: maybe_instr_make_load_smallint
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - _PY_IS_SMALL_INT
    - PyLong_CheckExact
    - _Py_IsImmortal
    - PyErr_Occurred
    - assert
    - INSTR_SET_OP1
    linkageType: ''
    returnType: int
    signature: "int maybe_instr_make_load_smallint(cfg_instr *instr, PyObject *newconst,\n
      \                              PyObject *consts, PyObject *const_cache)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1469,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/flowgraph.c:1470,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1473,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1474,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1477,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/flowgraph.c:1479,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/flowgraph.c:1480,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1491,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/flowgraph.c:1491,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1492,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - instr
    - newconst
    argTypes:
    - cfg_instr*
    - PyObject*
    assertStmts:
    - condition: (_Py_IsImmortal(newconst))
      pos:
        line_end: 1490
        line_start: 1490
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1494
      start: 1456
    functionDepth: 3
    functionLinenumber: 1456
    functionLinenumberEnd: 1494
    functionName: maybe_instr_make_load_common_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyUnicode_CheckExact
    - PyLong_CheckExact
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - assert
    - _Py_IsImmortal
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - INSTR_SET_OP1
    linkageType: ''
    returnType: int
    signature: int maybe_instr_make_load_common_const(cfg_instr *instr, PyObject *newconst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: maybe_instr_make_load_smallint
      Src: /src/cpython/Python/flowgraph.c:1502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1504,1
    - Dst: maybe_instr_make_load_common_const
      Src: /src/cpython/Python/flowgraph.c:1510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1512,1
    - Dst: add_const
      Src: /src/cpython/Python/flowgraph.c:1518,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1519,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - instr
    - newconst
    - consts
    - const_cache
    - consts_index
    argTypes:
    - cfg_instr*
    - PyObject*
    - PyObject*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1497
    functionDepth: 17
    functionLinenumber: 1497
    functionLinenumberEnd: 1522
    functionName: instr_make_load_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - add_const
    - maybe_instr_make_load_smallint
    - maybe_instr_make_load_common_const
    - Py_DECREF
    - RETURN_IF_ERROR
    - INSTR_SET_OP1
    linkageType: ''
    returnType: int
    signature: "int instr_make_load_const(cfg_instr *instr, PyObject *newconst,\n
      \                     PyObject *consts, PyObject *const_cache,\n                      _Py_hashtable_t
      *consts_index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1535,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1535,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1536,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1536,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1539,1
    - Dst: get_const_loading_instrs
      Src: /src/cpython/Python/flowgraph.c:1547,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/flowgraph.c:1552,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1559,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1559,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1562,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1565,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1568,1
    - Dst: instr_make_load_const
      Src: /src/cpython/Python/flowgraph.c:1569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - bb
    - i
    - consts
    - const_cache
    - consts_index
    argTypes:
    - basicblock*
    - int
    - PyObject*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1534
        line_start: 1534
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_opcode == BUILD_TUPLE)
      pos:
        line_end: 1538
        line_start: 1538
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 1535
        line_start: 1535
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(inst->i_opcode))
      pos:
        line_end: 1558
        line_start: 1558
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1570
      start: 1530
    functionDepth: 18
    functionLinenumber: 1530
    functionLinenumberEnd: 1570
    functionName: fold_tuple_of_constants
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - nop_out
    - instr_make_load_const
    - get_const_loading_instrs
    - loads_const
    - PyTuple_SET_ITEM
    - get_const_value
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - PyList_CheckExact
    - PyTuple_New
    linkageType: ''
    returnType: int
    signature: "int fold_tuple_of_constants(basicblock *bb, int i, PyObject *consts,\n
      \                       PyObject *const_cache, _Py_hashtable_t *consts_index)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1590,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1590,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1591,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1591,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1592,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1593,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1596,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1597,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/flowgraph.c:1618,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1628,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1631,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1634,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1635,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1637,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1639,1
    - Dst: instr_make_load_const
      Src: /src/cpython/Python/flowgraph.c:1640,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1649,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 5
    argNames:
    - bb
    - i
    - consts
    - const_cache
    - consts_index
    argTypes:
    - basicblock*
    - int
    - PyObject*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1589
        line_start: 1589
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i >= 0)
      pos:
        line_end: 1591
        line_start: 1591
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 1590
        line_start: 1590
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i < bb->b_iused)
      pos:
        line_end: 1592
        line_start: 1592
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (intrinsic->i_opcode == CALL_INTRINSIC_1)
      pos:
        line_end: 1595
        line_start: 1595
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (intrinsic->i_oparg == INTRINSIC_LIST_TO_TUPLE)
      pos:
        line_end: 1596
        line_start: 1596
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (consts_found > 0)
      pos:
        line_end: 1633
        line_start: 1633
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (consts_found == 0)
      pos:
        line_end: 1638
        line_start: 1638
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1660
      start: 1585
    functionDepth: 18
    functionLinenumber: 1585
    functionLinenumberEnd: 1660
    functionName: fold_constant_intrinsic_list_to_tuple
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - nop_out
    - instr_make_load_const
    - loads_const
    - PyTuple_SET_ITEM
    - get_const_value
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - PyList_CheckExact
    - PyTuple_New
    linkageType: ''
    returnType: int
    signature: "int fold_constant_intrinsic_list_to_tuple(basicblock *bb, int i,\n
      \                                     PyObject *consts, PyObject *const_cache,\n
      \                                     _Py_hashtable_t *consts_index)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1679,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1679,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1680,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:1680,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1683,1
    - Dst: get_const_loading_instrs
      Src: /src/cpython/Python/flowgraph.c:1694,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1697,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/flowgraph.c:1702,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1709,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1709,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1712,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1715,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Python/flowgraph.c:1719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1721,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/flowgraph.c:1724,1
    - Dst: add_const
      Src: /src/cpython/Python/flowgraph.c:1727,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:1728,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1729,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1732,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1735,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1736,1
    - Dst: INSTR_SET_LOC
      Src: /src/cpython/Python/flowgraph.c:1738,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1740,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1741,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:1742,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 6
    argNames:
    - bb
    - i
    - nextop
    - consts
    - const_cache
    - consts_index
    argTypes:
    - basicblock*
    - int
    - int
    - PyObject*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts:
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 1679
        line_start: 1679
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_opcode == BUILD_LIST || instr->i_opcode == BUILD_SET)
      pos:
        line_end: 1682
        line_start: 1682
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i >= 2)
      pos:
        line_end: 1734
        line_start: 1734
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_opcode == BUILD_LIST || instr->i_opcode == BUILD_SET)
      pos:
        line_end: 1735
        line_start: 1735
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1678
        line_start: 1678
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(inst->i_opcode))
      pos:
        line_end: 1708
        line_start: 1708
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1745
      start: 1674
    functionDepth: 17
    functionLinenumber: 1674
    functionLinenumberEnd: 1745
    functionName: optimize_lists_and_sets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - nop_out
    - add_const
    - PyFrozenSet_New
    - Py_SETREF
    - INSTR_SET_LOC
    - get_const_loading_instrs
    - loads_const
    - PyTuple_SET_ITEM
    - RETURN_IF_ERROR
    - get_const_value
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - PyList_CheckExact
    - PyTuple_New
    - INSTR_SET_OP1
    linkageType: ''
    returnType: int
    signature: "int optimize_lists_and_sets(basicblock *bb, int i, int nextop,\n                        PyObject
      *consts, PyObject *const_cache,\n                        _Py_hashtable_t *consts_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/flowgraph.c:1754,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1756,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1757,1
    - Dst: const_folding_check_complexity
      Src: /src/cpython/Python/flowgraph.c:1758,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/flowgraph.c:1758,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - limit
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1765
    functionName: const_folding_check_complexity
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyTuple_Check
    - 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:1775,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1775,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1776,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1776,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Python/flowgraph.c:1778,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Python/flowgraph.c:1779,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1780,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1781,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1786,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/flowgraph.c:1786,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1787,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/flowgraph.c:1789,1
    - Dst: const_folding_check_complexity
      Src: /src/cpython/Python/flowgraph.c:1793,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1798,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/flowgraph.c:1798,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/flowgraph.c:1798,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/flowgraph.c:1799,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/flowgraph.c:1799,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:1800,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/flowgraph.c:1802,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1808,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/flowgraph.c:1809,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/flowgraph.c:1809,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/flowgraph.c:1809,1
    - Dst: const_folding_safe_multiply
      Src: /src/cpython/Python/flowgraph.c:1811,1
    - Dst: PyNumber_Multiply
      Src: /src/cpython/Python/flowgraph.c:1814,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 29
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (vbits >= 0)
      pos:
        line_end: 1779
        line_start: 1779
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (wbits >= 0)
      pos:
        line_end: 1780
        line_start: 1780
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1815
      start: 1772
    functionDepth: 4
    functionLinenumber: 1772
    functionLinenumberEnd: 1815
    functionName: const_folding_safe_multiply
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - _PyLong_IsZero
    - _PyLong_NumBits
    - const_folding_check_complexity
    - PyBytes_Check
    - PyUnicode_Check
    - PyLong_Check
    - PyNumber_Multiply
    - PyLong_AsLong
    - PyUnicode_GET_LENGTH
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    - PyBytes_GET_SIZE
    - const_folding_safe_multiply
    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:1820,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1820,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1821,1
    - Dst: _PyLong_IsPositive
      Src: /src/cpython/Python/flowgraph.c:1821,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Python/flowgraph.c:1823,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Python/flowgraph.c:1824,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1825,1
    - Dst: PyNumber_Power
      Src: /src/cpython/Python/flowgraph.c:1834,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (vbits >= 0)
      pos:
        line_end: 1824
        line_start: 1824
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1835
      start: 1817
    functionDepth: 3
    functionLinenumber: 1817
    functionLinenumberEnd: 1835
    functionName: const_folding_safe_power
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsPositive
    - _PyLong_IsZero
    - PyNumber_Power
    - PyLong_AsSize_t
    - _PyLong_NumBits
    - PyLong_Check
    - 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:1840,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/flowgraph.c:1840,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1841,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/flowgraph.c:1841,1
    - Dst: _PyLong_NumBits
      Src: /src/cpython/Python/flowgraph.c:1843,1
    - Dst: PyLong_AsSize_t
      Src: /src/cpython/Python/flowgraph.c:1844,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1845,1
    - Dst: PyNumber_Lshift
      Src: /src/cpython/Python/flowgraph.c:1854,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (vbits >= 0)
      pos:
        line_end: 1844
        line_start: 1844
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1855
      start: 1837
    functionDepth: 3
    functionLinenumber: 1837
    functionLinenumberEnd: 1855
    functionName: const_folding_safe_lshift
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - _PyLong_IsZero
    - PyLong_AsSize_t
    - _PyLong_NumBits
    - PyNumber_Lshift
    - PyLong_Check
    - 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:1860,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/flowgraph.c:1860,1
    - Dst: PyNumber_Remainder
      Src: /src/cpython/Python/flowgraph.c:1864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1865
    functionName: const_folding_safe_mod
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyNumber_Remainder
    - PyUnicode_Check
    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:1870,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1871,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/flowgraph.c:1876,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Python/flowgraph.c:1879,1
    - Dst: const_folding_safe_multiply
      Src: /src/cpython/Python/flowgraph.c:1882,1
    - Dst: PyNumber_TrueDivide
      Src: /src/cpython/Python/flowgraph.c:1885,1
    - Dst: PyNumber_FloorDivide
      Src: /src/cpython/Python/flowgraph.c:1888,1
    - Dst: const_folding_safe_mod
      Src: /src/cpython/Python/flowgraph.c:1891,1
    - Dst: const_folding_safe_power
      Src: /src/cpython/Python/flowgraph.c:1894,1
    - Dst: const_folding_safe_lshift
      Src: /src/cpython/Python/flowgraph.c:1897,1
    - Dst: PyNumber_Rshift
      Src: /src/cpython/Python/flowgraph.c:1900,1
    - Dst: PyNumber_Or
      Src: /src/cpython/Python/flowgraph.c:1903,1
    - Dst: PyNumber_Xor
      Src: /src/cpython/Python/flowgraph.c:1906,1
    - Dst: PyNumber_And
      Src: /src/cpython/Python/flowgraph.c:1909,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/flowgraph.c:1912,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/flowgraph.c:1918,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: 1869
        line_start: 1869
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (op >= 0 && op <= NB_OPARG_LAST)
      pos:
        line_end: 1870
        line_start: 1870
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1921
      start: 1867
    functionDepth: 5
    functionLinenumber: 1867
    functionLinenumberEnd: 1921
    functionName: eval_const_binop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyNumber_Xor
    - PyNumber_Rshift
    - PyNumber_TrueDivide
    - const_folding_safe_lshift
    - PyNumber_Add
    - PyObject_GetItem
    - Py_UNREACHABLE
    - PyNumber_Subtract
    - const_folding_safe_mod
    - PyNumber_FloorDivide
    - const_folding_safe_power
    - PyNumber_And
    - assert
    - PyNumber_Or
    - const_folding_safe_multiply
    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: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: assert
      Src: /src/cpython/Python/flowgraph.c:1932,1
    - Dst: get_const_loading_instrs
      Src: /src/cpython/Python/flowgraph.c:1935,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1941,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1941,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1942,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1948,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:1948,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:1949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1951,1
    - Dst: eval_const_binop
      Src: /src/cpython/Python/flowgraph.c:1955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:1957,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/flowgraph.c:1959,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/flowgraph.c:1962,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:1966,1
    - Dst: instr_make_load_const
      Src: /src/cpython/Python/flowgraph.c:1967,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 5
    argNames:
    - bb
    - i
    - consts
    - const_cache
    - consts_index
    argTypes:
    - basicblock*
    - int
    - PyObject*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 1927
        line_start: 1927
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(rhs_instr->i_opcode))
      pos:
        line_end: 1947
        line_start: 1947
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(lhs_instr->i_opcode))
      pos:
        line_end: 1940
        line_start: 1940
        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: (binop->i_opcode == BINARY_OP)
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 1968
      start: 1923
    functionDepth: 18
    functionLinenumber: 1923
    functionLinenumberEnd: 1968
    functionName: fold_const_binop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - nop_out
    - instr_make_load_const
    - eval_const_binop
    - get_const_loading_instrs
    - loads_const
    - PyErr_Clear
    - get_const_value
    - PyErr_ExceptionMatches
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - PyList_CheckExact
    linkageType: ''
    returnType: int
    signature: "int fold_const_binop(basicblock *bb, int i, PyObject *consts,\n                 PyObject
      *const_cache, _Py_hashtable_t *consts_index)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1973,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:1974,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Python/flowgraph.c:1983,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/flowgraph.c:1987,1
    - Dst: PyNumber_Invert
      Src: /src/cpython/Python/flowgraph.c:1990,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/flowgraph.c:1993,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/flowgraph.c:1997,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/flowgraph.c:2002,1
    - Dst: PyNumber_Positive
      Src: /src/cpython/Python/flowgraph.c:2004,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/flowgraph.c:2007,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - operand
    - opcode
    - oparg
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (operand != NULL)
      pos:
        line_end: 1972
        line_start: 1972
        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: 1978
        line_start: 1973
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2010
      start: 1970
    functionDepth: 2
    functionLinenumber: 1970
    functionLinenumberEnd: 2010
    functionName: eval_const_unaryop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyBool_Check
    - PyNumber_Negative
    - PyNumber_Positive
    - PyObject_IsTrue
    - Py_UNREACHABLE
    - PyBool_FromLong
    - assert
    - PyNumber_Invert
    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:2017,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2017,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2018,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2018,1
    - Dst: get_const_loading_instrs
      Src: /src/cpython/Python/flowgraph.c:2022,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2027,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:2027,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2028,1
    - Dst: eval_const_unaryop
      Src: /src/cpython/Python/flowgraph.c:2037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2038,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/flowgraph.c:2040,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/flowgraph.c:2043,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2048,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/flowgraph.c:2048,1
    - Dst: nop_out
      Src: /src/cpython/Python/flowgraph.c:2050,1
    - Dst: instr_make_load_const
      Src: /src/cpython/Python/flowgraph.c:2051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - bb
    - i
    - consts
    - const_cache
    - consts_index
    argTypes:
    - basicblock*
    - int
    - PyObject*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 2016
        line_start: 2016
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 2017
        line_start: 2017
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (loads_const(operand_instr->i_opcode))
      pos:
        line_end: 2026
        line_start: 2026
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyBool_Check(newconst))
      pos:
        line_end: 2047
        line_start: 2047
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2052
      start: 2012
    functionDepth: 18
    functionLinenumber: 2012
    functionLinenumberEnd: 2052
    functionName: fold_const_unaryop
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - nop_out
    - PyBool_Check
    - instr_make_load_const
    - eval_const_unaryop
    - get_const_loading_instrs
    - loads_const
    - PyErr_Clear
    - get_const_value
    - PyErr_ExceptionMatches
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - PyList_CheckExact
    linkageType: ''
    returnType: int
    signature: "int fold_const_unaryop(basicblock *bb, int i, PyObject *consts,\n
      \                  PyObject *const_cache, _Py_hashtable_t *consts_index)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2063,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2067,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:2075,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:2087,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:2089,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2130,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2137,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2147,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:2149,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 2
    argNames:
    - block
    - ix
    argTypes:
    - basicblock*
    - int*
    assertStmts:
    - condition: (*ix < block->b_iused)
      pos:
        line_end: 2062
        line_start: 2062
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instructions[0].i_opcode == SWAP)
      pos:
        line_end: 2066
        line_start: 2066
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (0 <= current)
      pos:
        line_end: 2129
        line_start: 2129
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (j == i)
      pos:
        line_end: 2136
        line_start: 2136
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2152
      start: 2058
    functionDepth: 2
    functionLinenumber: 2058
    functionLinenumberEnd: 2152
    functionName: swaptimize
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - assert
    - Py_MAX
    - INSTR_SET_OP0
    - PyMem_Free
    - 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: 2163
      start: 2159
    functionDepth: 0
    functionLinenumber: 2159
    functionLinenumberEnd: 2163
    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: 2168
      start: 2164
    functionDepth: 0
    functionLinenumber: 2164
    functionLinenumberEnd: 2168
    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:2182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - block
    - i
    - lineno
    argTypes:
    - basicblock*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2188
    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:2198,1
    - Dst: SWAPPABLE
      Src: /src/cpython/Python/flowgraph.c:2201,1
    - Dst: next_swappable_instruction
      Src: /src/cpython/Python/flowgraph.c:2208,1
    - Dst: next_swappable_instruction
      Src: /src/cpython/Python/flowgraph.c:2215,1
    - Dst: STORES_TO
      Src: /src/cpython/Python/flowgraph.c:2223,1
    - Dst: STORES_TO
      Src: /src/cpython/Python/flowgraph.c:2224,1
    - Dst: STORES_TO
      Src: /src/cpython/Python/flowgraph.c:2230,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2238,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 2
    argNames:
    - block
    - i
    argTypes:
    - basicblock*
    - int
    assertStmts:
    - condition: (i < block->b_iused)
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2243
      start: 2193
    functionDepth: 2
    functionLinenumber: 2193
    functionLinenumberEnd: 2243
    functionName: apply_static_swaps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - STORES_TO
    - INSTR_SET_OP0
    - SWAPPABLE
    - next_swappable_instruction
    - assert
    linkageType: ''
    returnType: void
    signature: void apply_static_swaps(basicblock *block, int i)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2249,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2249,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2250,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2250,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2256,1
    - Dst: maybe_instr_make_load_smallint
      Src: /src/cpython/Python/flowgraph.c:2260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2261,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2273,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2273,1
    - Dst: loads_const
      Src: /src/cpython/Python/flowgraph.c:2274,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2285,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/flowgraph.c:2289,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2290,1
    - Dst: PyCompile_OpcodeStackEffect
      Src: /src/cpython/Python/flowgraph.c:2294,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2296,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2303,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2319,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/flowgraph.c:2323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2324,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2334,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2347,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2348,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2355,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/flowgraph.c:2359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2360,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/flowgraph.c:2364,1
    - Dst: add_const
      Src: /src/cpython/Python/flowgraph.c:2365,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2369,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2370,1
    - Dst: get_const_value
      Src: /src/cpython/Python/flowgraph.c:2375,1
    - Dst: maybe_instr_make_load_common_const
      Src: /src/cpython/Python/flowgraph.c:2379,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:2380,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 100
    argCount: 4
    argNames:
    - const_cache
    - bb
    - consts
    - consts_index
    argTypes:
    - PyObject*
    - basicblock*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts:
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 2249
        line_start: 2249
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 2248
        line_start: 2248
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 2272
        line_start: 2272
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2387
      start: 2245
    functionDepth: 17
    functionLinenumber: 2245
    functionLinenumberEnd: 2387
    functionName: basicblock_optimize_load_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - add_const
    - IS_ASSEMBLER_OPCODE
    - maybe_instr_make_load_smallint
    - PyObject_IsTrue
    - PyCompile_OpcodeStackEffect
    - INSTR_SET_OP0
    - Py_IsNone
    - loads_const
    - PyBool_FromLong
    - maybe_instr_make_load_common_const
    - get_const_value
    - assert
    - Py_DECREF
    - PyDict_CheckExact
    - PyList_CheckExact
    - INSTR_SET_OP1
    linkageType: ''
    returnType: int
    signature: "int basicblock_optimize_load_const(PyObject *const_cache, basicblock
      *bb,\n                               PyObject *consts, _Py_hashtable_t *consts_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2393,1
    - Dst: basicblock_optimize_load_const
      Src: /src/cpython/Python/flowgraph.c:2393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - const_cache
    - g
    - consts
    - consts_index
    argTypes:
    - PyObject*
    - cfg_builder*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2389
    functionDepth: 18
    functionLinenumber: 2389
    functionLinenumberEnd: 2396
    functionName: optimize_load_const
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - RETURN_IF_ERROR
    - basicblock_optimize_load_const
    linkageType: ''
    returnType: int
    signature: "int optimize_load_const(PyObject *const_cache, cfg_builder *g, PyObject
      *consts,\n                    _Py_hashtable_t *consts_index)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2402,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2402,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2403,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2403,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2405,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:2411,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2412,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2414,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2414,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2420,1
    - Dst: IS_ASSEMBLER_OPCODE
      Src: /src/cpython/Python/flowgraph.c:2420,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2430,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2431,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2435,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2440,1
    - Dst: fold_tuple_of_constants
      Src: /src/cpython/Python/flowgraph.c:2440,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2444,1
    - Dst: optimize_lists_and_sets
      Src: /src/cpython/Python/flowgraph.c:2444,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2450,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2456,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2462,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2469,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2474,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2484,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2489,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2499,1
    - Dst: jump_thread
      Src: /src/cpython/Python/flowgraph.c:2502,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2528,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2533,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2534,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2539,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2540,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2547,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2548,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2552,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2554,1
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2555,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2561,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2567,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2568,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2572,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2573,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2579,1
    - Dst: fold_const_unaryop
      Src: /src/cpython/Python/flowgraph.c:2579,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2584,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2587,1
    - Dst: fold_constant_intrinsic_list_to_tuple
      Src: /src/cpython/Python/flowgraph.c:2587,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2591,1
    - Dst: fold_const_unaryop
      Src: /src/cpython/Python/flowgraph.c:2591,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2595,1
    - Dst: fold_const_binop
      Src: /src/cpython/Python/flowgraph.c:2595,1
    - Dst: swaptimize
      Src: /src/cpython/Python/flowgraph.c:2603,1
    - Dst: apply_static_swaps
      Src: /src/cpython/Python/flowgraph.c:2606,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 184
    argCount: 4
    argNames:
    - const_cache
    - bb
    - consts
    - consts_index
    argTypes:
    - PyObject*
    - basicblock*
    - PyObject*
    - _Py_hashtable_t*
    assertStmts:
    - condition: (!IS_ASSEMBLER_OPCODE(opcode))
      pos:
        line_end: 2419
        line_start: 2419
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 2402
        line_start: 2402
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst->i_target->b_iused > 0)
      pos:
        line_end: 2411
        line_start: 2411
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!IS_ASSEMBLER_OPCODE(target->i_opcode))
      pos:
        line_end: 2413
        line_start: 2413
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 2401
        line_start: 2401
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst->i_target != inst->i_target->b_next)
      pos:
        line_end: 2488
        line_start: 2488
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inverted == 0 || inverted == 1)
      pos:
        line_end: 2553
        line_start: 2553
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst->i_target != inst->i_target->b_next)
      pos:
        line_end: 2473
        line_start: 2473
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2612
      start: 2398
    functionDepth: 19
    functionLinenumber: 2398
    functionLinenumberEnd: 2612
    functionName: optimize_basic_block
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - fold_constant_intrinsic_list_to_tuple
    - HAS_TARGET
    - fold_tuple_of_constants
    - IS_ASSEMBLER_OPCODE
    - fold_const_binop
    - apply_static_swaps
    - swaptimize
    - INSTR_SET_OP0
    - RETURN_IF_ERROR
    - optimize_lists_and_sets
    - fold_const_unaryop
    - assert
    - PyDict_CheckExact
    - PyList_CheckExact
    - jump_thread
    - INSTR_SET_OP1
    linkageType: ''
    returnType: int
    signature: "int optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject
      *consts,\n                     _Py_hashtable_t *consts_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:2624,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2625,1
    - Dst: remove_redundant_jumps
      Src: /src/cpython/Python/flowgraph.c:2626,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2616
    functionDepth: 3
    functionLinenumber: 2616
    functionLinenumberEnd: 2630
    functionName: remove_redundant_nops_and_jumps
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - RETURN_IF_ERROR
    - remove_redundant_jumps
    - remove_redundant_nops
    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:2643,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/flowgraph.c:2643,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2644,1
    - Dst: check_cfg
      Src: /src/cpython/Python/flowgraph.c:2644,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2645,1
    - Dst: inline_small_or_no_lineno_blocks
      Src: /src/cpython/Python/flowgraph.c:2645,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2646,1
    - Dst: remove_unreachable
      Src: /src/cpython/Python/flowgraph.c:2646,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2647,1
    - Dst: resolve_line_numbers
      Src: /src/cpython/Python/flowgraph.c:2647,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2648,1
    - Dst: optimize_load_const
      Src: /src/cpython/Python/flowgraph.c:2648,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2650,1
    - Dst: optimize_basic_block
      Src: /src/cpython/Python/flowgraph.c:2650,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2652,1
    - Dst: remove_redundant_nops_and_pairs
      Src: /src/cpython/Python/flowgraph.c:2652,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2653,1
    - Dst: remove_unreachable
      Src: /src/cpython/Python/flowgraph.c:2653,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:2654,1
    - Dst: remove_redundant_nops_and_jumps
      Src: /src/cpython/Python/flowgraph.c:2654,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2655,1
    - Dst: no_redundant_jumps
      Src: /src/cpython/Python/flowgraph.c:2655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - g
    - consts
    - const_cache
    - consts_index
    - firstlineno
    argTypes:
    - cfg_builder*
    - PyObject*
    - PyObject*
    - _Py_hashtable_t*
    - int
    assertStmts:
    - condition: (PyDict_CheckExact(const_cache))
      pos:
        line_end: 2642
        line_start: 2642
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (no_redundant_jumps(g))
      pos:
        line_end: 2654
        line_start: 2654
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2657
      start: 2639
    functionDepth: 20
    functionLinenumber: 2639
    functionLinenumberEnd: 2657
    functionName: optimize_cfg
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - optimize_load_const
    - remove_redundant_nops_and_jumps
    - check_cfg
    - inline_small_or_no_lineno_blocks
    - remove_unreachable
    - remove_redundant_nops_and_pairs
    - RETURN_IF_ERROR
    - resolve_line_numbers
    - no_redundant_jumps
    - assert
    - PyDict_CheckExact
    - optimize_basic_block
    linkageType: ''
    returnType: int
    signature: "int optimize_cfg(cfg_builder *g, PyObject *consts, PyObject *const_cache,\n
      \            _Py_hashtable_t *consts_index, int firstlineno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTR_SET_OP1
      Src: /src/cpython/Python/flowgraph.c:2671,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:2672,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: 2673
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2673
    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:2686,1
    - Dst: make_super_instruction
      Src: /src/cpython/Python/flowgraph.c:2692,1
    - Dst: make_super_instruction
      Src: /src/cpython/Python/flowgraph.c:2695,1
    - Dst: remove_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:2702,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2703,1
    - Dst: no_redundant_nops
      Src: /src/cpython/Python/flowgraph.c:2703,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (no_redundant_nops(g))
      pos:
        line_end: 2702
        line_start: 2702
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2705
      start: 2675
    functionDepth: 3
    functionLinenumber: 2675
    functionLinenumberEnd: 2705
    functionName: insert_superinstructions
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    - no_redundant_nops
    - make_super_instruction
    - remove_redundant_nops
    linkageType: ''
    returnType: int
    signature: int insert_superinstructions(cfg_builder *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:2728,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/flowgraph.c:2729,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:2731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - stack
    - r
    argTypes:
    - ref_stack*
    - ref
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2724
    functionDepth: 1
    functionLinenumber: 2724
    functionLinenumberEnd: 2740
    functionName: ref_stack_push
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - PyErr_NoMemory
    - Py_MAX
    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:2745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ref_stack*
    assertStmts:
    - condition: (stack->size > 0)
      pos:
        line_end: 2744
        line_start: 2744
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2749
      start: 2742
    functionDepth: 0
    functionLinenumber: 2742
    functionLinenumberEnd: 2749
    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:2755,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: 2754
        line_start: 2754
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2759
      start: 2751
    functionDepth: 0
    functionLinenumber: 2751
    functionLinenumberEnd: 2759
    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:2764,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: 2763
        line_start: 2763
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2766
      start: 2761
    functionDepth: 0
    functionLinenumber: 2761
    functionLinenumberEnd: 2766
    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: 2772
      start: 2768
    functionDepth: 0
    functionLinenumber: 2768
    functionLinenumberEnd: 2772
    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:2778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ref_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2774
    functionDepth: 2
    functionLinenumber: 2774
    functionLinenumberEnd: 2783
    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:2798,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2800,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: 2799
        line_start: 2799
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2804
      start: 2794
    functionDepth: 1
    functionLinenumber: 2794
    functionLinenumberEnd: 2804
    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:2809,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: 2813
      start: 2806
    functionDepth: 2
    functionLinenumber: 2806
    functionLinenumberEnd: 2813
    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:2819,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: 2818
        line_start: 2818
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 2824
      start: 2815
    functionDepth: 0
    functionLinenumber: 2815
    functionLinenumberEnd: 2824
    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: 49
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/cpython/Python/flowgraph.c:2871,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:2874,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:2876,1
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:2879,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2900,1
    - Dst: memset
      Src: /src/cpython/Python/flowgraph.c:2903,1
    - Dst: ref_stack_clear
      Src: /src/cpython/Python/flowgraph.c:2908,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2910,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2917,1
    - Dst: kill_local
      Src: /src/cpython/Python/flowgraph.c:2921,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2926,1
    - Dst: kill_local
      Src: /src/cpython/Python/flowgraph.c:2931,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2932,1
    - Dst: PUSH_REF
      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:2943,1
    - Dst: store_local
      Src: /src/cpython/Python/flowgraph.c:2944,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2950,1
    - Dst: store_local
      Src: /src/cpython/Python/flowgraph.c:2951,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2953,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2959,1
    - Dst: store_local
      Src: /src/cpython/Python/flowgraph.c:2960,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:2962,1
    - Dst: store_local
      Src: /src/cpython/Python/flowgraph.c:2963,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2969,1
    - Dst: ref_stack_at
      Src: /src/cpython/Python/flowgraph.c:2971,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:2972,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2977,1
    - Dst: ref_stack_swap_top
      Src: /src/cpython/Python/flowgraph.c:2978,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:2996,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:2997,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:2999,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3001,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:3015,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:3016,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3018,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3020,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3026,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:3026,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3027,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:3027,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3028,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3029,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3030,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3031,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3036,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:3036,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3037,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:3037,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3038,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3039,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3040,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3046,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3047,1
    - Dst: load_fast_push_block
      Src: /src/cpython/Python/flowgraph.c:3052,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3053,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3059,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3061,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3062,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3064,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3068,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3075,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3076,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3077,1
    - Dst: load_fast_push_block
      Src: /src/cpython/Python/flowgraph.c:3082,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3083,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3084,1
    - Dst: _PyOpcode_num_popped
      Src: /src/cpython/Python/flowgraph.c:3090,1
    - Dst: _PyOpcode_num_pushed
      Src: /src/cpython/Python/flowgraph.c:3091,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:3092,1
    - Dst: load_fast_push_block
      Src: /src/cpython/Python/flowgraph.c:3093,1
    - Dst: IS_BLOCK_PUSH_OPCODE
      Src: /src/cpython/Python/flowgraph.c:3095,1
    - Dst: ref_stack_pop
      Src: /src/cpython/Python/flowgraph.c:3099,1
    - Dst: PUSH_REF
      Src: /src/cpython/Python/flowgraph.c:3102,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3111,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3112,1
    - Dst: load_fast_push_block
      Src: /src/cpython/Python/flowgraph.c:3113,1
    - Dst: ref_stack_at
      Src: /src/cpython/Python/flowgraph.c:3119,1
    - Dst: ref_stack_fini
      Src: /src/cpython/Python/flowgraph.c:3148,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3149,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3150,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 195
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (opcode != EXTENDED_ARG)
      pos:
        line_end: 2916
        line_start: 2916
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_startdepth > -1)
      pos:
        line_end: 2899
        line_start: 2899
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (_PyOpcode_num_popped(opcode, oparg) == 3)
      pos:
        line_end: 3025
        line_start: 3025
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (block->b_next != NULL)
      pos:
        line_end: 3111
        line_start: 3111
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (_PyOpcode_num_pushed(opcode, oparg) == 1)
      pos:
        line_end: 3036
        line_start: 3036
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (net_popped > 0)
      pos:
        line_end: 3017
        line_start: 3017
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (oparg > 0)
      pos:
        line_end: 2968
        line_start: 2968
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (oparg >= 2)
      pos:
        line_end: 2976
        line_start: 2976
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (_PyOpcode_num_popped(opcode, oparg) == 2)
      pos:
        line_end: 3035
        line_start: 3035
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (net_pushed >= 0)
      pos:
        line_end: 2998
        line_start: 2998
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (_PyOpcode_num_pushed(opcode, oparg) == 1)
      pos:
        line_end: 3026
        line_start: 3026
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3152
      start: 2863
    functionDepth: 3
    functionLinenumber: 2863
    functionLinenumberEnd: 3152
    functionName: optimize_load_fast
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - ref_stack_at
    - HAS_TARGET
    - load_fast_push_block
    - ref_stack_clear
    - store_local
    - assert
    - PyErr_NoMemory
    - PUSH_REF
    - PyMem_Free
    - PyMem_Malloc
    - _PyOpcode_num_pushed
    - ref_stack_fini
    - Py_MAX
    - _PyOpcode_num_popped
    - IS_BLOCK_PUSH_OPCODE
    - BB_HAS_FALLTHROUGH
    - make_cfg_traversal_stack
    - ref_stack_swap_top
    - memset
    - ref_stack_pop
    - kill_local
    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: 2897
      start: 2890
    functionDepth: 0
    functionLinenumber: 2890
    functionLinenumberEnd: 2897
    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: 3171
      start: 3155
    functionDepth: 0
    functionLinenumber: 3155
    functionLinenumberEnd: 3171
    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:3180,1
    - Dst: maybe_push
      Src: /src/cpython/Python/flowgraph.c:3182,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3187,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3210,1
    - Dst: maybe_push
      Src: /src/cpython/Python/flowgraph.c:3211,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3213,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3214,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3215,1
    - Dst: maybe_push
      Src: /src/cpython/Python/flowgraph.c:3216,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: 3179
        line_start: 3179
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_oparg >= 0)
      pos:
        line_end: 3186
        line_start: 3186
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (last->i_target != NULL)
      pos:
        line_end: 3214
        line_start: 3214
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3218
      start: 3173
    functionDepth: 2
    functionLinenumber: 3173
    functionLinenumberEnd: 3218
    functionName: scan_block_for_locals
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - maybe_push
    - is_jump
    - basicblock_last_instr
    - BB_HAS_FALLTHROUGH
    - 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:3223,1
    - Dst: PyMem_Calloc
      Src: /src/cpython/Python/flowgraph.c:3224,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:3226,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3238,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3243,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/flowgraph.c:3259,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3263,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - entryblock
    - nlocals
    argTypes:
    - basicblock*
    - int
    assertStmts:
    - condition: (nlocals > 64)
      pos:
        line_end: 3222
        line_start: 3222
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (instr->i_opcode != EXTENDED_ARG)
      pos:
        line_end: 3237
        line_start: 3237
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (arg >= 0)
      pos:
        line_end: 3242
        line_start: 3242
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3265
      start: 3220
    functionDepth: 2
    functionLinenumber: 3220
    functionLinenumberEnd: 3265
    functionName: fast_scan_many_locals
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyErr_NoMemory
    - Py_UNREACHABLE
    - PyMem_Free
    - assert
    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:3270,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/flowgraph.c:3270,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3271,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:3280,1
    - Dst: OPCODE_HAS_CONST
      Src: /src/cpython/Python/flowgraph.c:3294,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3305,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3316,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3319,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/flowgraph.c:3321,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3322,1
    - Dst: PyList_SetItem
      Src: /src/cpython/Python/flowgraph.c:3323,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/flowgraph.c:3323,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/flowgraph.c:3328,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/flowgraph.c:3332,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3340,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3341,1
    - Dst: OPCODE_HAS_CONST
      Src: /src/cpython/Python/flowgraph.c:3348,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3350,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3351,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3359,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3360,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 2
    argNames:
    - entryblock
    - consts
    argTypes:
    - basicblock*
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 3269
        line_start: 3269
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (index_map[i] == i)
      pos:
        line_end: 3304
        line_start: 3304
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (n_used_consts < nconsts)
      pos:
        line_end: 3315
        line_start: 3315
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (value != NULL)
      pos:
        line_end: 3321
        line_start: 3321
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i <= old_index && old_index < nconsts)
      pos:
        line_end: 3318
        line_start: 3318
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (index_map[i] != -1)
      pos:
        line_end: 3339
        line_start: 3339
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (reverse_index_map[index] >= 0)
      pos:
        line_end: 3349
        line_start: 3349
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (reverse_index_map[index] < n_used_consts)
      pos:
        line_end: 3350
        line_start: 3350
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (reverse_index_map[index_map[i]] == -1)
      pos:
        line_end: 3340
        line_start: 3340
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3362
      start: 3267
    functionDepth: 12
    functionLinenumber: 3267
    functionLinenumberEnd: 3362
    functionName: remove_unused_consts
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - assert
    - PyList_GET_ITEM
    - PyMem_Free
    - PyMem_Malloc
    - PyList_CheckExact
    - PyList_GET_SIZE
    - Py_NewRef
    - OPCODE_HAS_CONST
    - PyList_SetSlice
    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:3378,1
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:3383,1
    - Dst: maybe_push
      Src: /src/cpython/Python/flowgraph.c:3395,1
    - Dst: scan_block_for_locals
      Src: /src/cpython/Python/flowgraph.c:3401,1
    - Dst: scan_block_for_locals
      Src: /src/cpython/Python/flowgraph.c:3409,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3411,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - entryblock
    - nlocals
    - nparams
    argTypes:
    - basicblock*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3366
    functionDepth: 3
    functionLinenumber: 3366
    functionLinenumberEnd: 3413
    functionName: add_checks_for_loads_of_uninitialized_variables
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - scan_block_for_locals
    - maybe_push
    - PyMem_Free
    - fast_scan_many_locals
    - make_cfg_traversal_stack
    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:3418,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3428,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3431,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3437,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (!b->b_except_handler)
      pos:
        line_end: 3427
        line_start: 3427
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3445
      start: 3416
    functionDepth: 3
    functionLinenumber: 3416
    functionLinenumberEnd: 3445
    functionName: mark_warm
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - is_jump
    - BB_HAS_FALLTHROUGH
    - PyMem_Free
    - assert
    - make_cfg_traversal_stack
    linkageType: ''
    returnType: int
    signature: int mark_warm(basicblock *entryblock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3450,1
    - Dst: mark_warm
      Src: /src/cpython/Python/flowgraph.c:3452,1
    - Dst: make_cfg_traversal_stack
      Src: /src/cpython/Python/flowgraph.c:3456,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3464,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3474,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3482,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3483,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3492,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts:
    - condition: (!b->b_cold && !b->b_warm)
      pos:
        line_end: 3449
        line_start: 3449
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!b->b_warm)
      pos:
        line_end: 3463
        line_start: 3463
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (i == b->b_iused - 1)
      pos:
        line_end: 3482
        line_start: 3482
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3494
      start: 3447
    functionDepth: 4
    functionLinenumber: 3447
    functionLinenumberEnd: 3494
    functionName: mark_cold
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - mark_warm
    - is_jump
    - BB_HAS_FALLTHROUGH
    - PyMem_Free
    - assert
    - make_cfg_traversal_stack
    linkageType: ''
    returnType: int
    signature: int mark_cold(basicblock *entryblock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3504,1
    - Dst: mark_cold
      Src: /src/cpython/Python/flowgraph.c:3504,1
    - Dst: get_max_label
      Src: /src/cpython/Python/flowgraph.c:3506,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3511,1
    - Dst: cfg_builder_new_block
      Src: /src/cpython/Python/flowgraph.c:3512,1
    - Dst: IS_LABEL
      Src: /src/cpython/Python/flowgraph.c:3516,1
    - Dst: basicblock_addop
      Src: /src/cpython/Python/flowgraph.c:3519,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3527,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3532,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3538,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3548,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3556,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3557,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3569,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3573,1
    - Dst: remove_redundant_nops_and_jumps
      Src: /src/cpython/Python/flowgraph.c:3573,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (!entryblock->b_cold)
      pos:
        line_end: 3531
        line_start: 3531
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!b->b_cold)
      pos:
        line_end: 3537
        line_start: 3537
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!b->b_cold && b->b_next->b_cold)
      pos:
        line_end: 3547
        line_start: 3547
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b_end->b_next == NULL || !b_end->b_next->b_cold)
      pos:
        line_end: 3556
        line_start: 3556
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b_end && b_end->b_cold)
      pos:
        line_end: 3555
        line_start: 3555
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (b != NULL && b->b_next == NULL)
      pos:
        line_end: 3568
        line_start: 3568
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3576
      start: 3497
    functionDepth: 5
    functionLinenumber: 3497
    functionLinenumberEnd: 3576
    functionName: push_cold_blocks_to_end
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - remove_redundant_nops_and_jumps
    - IS_LABEL
    - mark_cold
    - basicblock_addop
    - cfg_builder_new_block
    - basicblock_last_instr
    - BB_HAS_FALLTHROUGH
    - get_max_label
    - assert
    - RETURN_IF_ERROR
    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:3586,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3598,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3598,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3606,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (i == b->b_iused - 1)
      pos:
        line_end: 3585
        line_start: 3585
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3611
      start: 3578
    functionDepth: 5
    functionLinenumber: 3578
    functionLinenumberEnd: 3611
    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:3620,1
    - Dst: INSTR_SET_OP0
      Src: /src/cpython/Python/flowgraph.c:3621,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3624,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/flowgraph.c:3624,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3628,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/flowgraph.c:3628,1
    - Dst: remove_redundant_nops_and_jumps
      Src: /src/cpython/Python/flowgraph.c:3633,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: 3627
        line_start: 3627
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (is_pseudo_target(LOAD_CLOSURE, LOAD_FAST))
      pos:
        line_end: 3623
        line_start: 3623
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3634
      start: 3613
    functionDepth: 4
    functionLinenumber: 3613
    functionLinenumberEnd: 3634
    functionName: convert_pseudo_ops
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - remove_redundant_nops_and_jumps
    - INSTR_SET_OP0
    - is_pseudo_target
    - assert
    - is_block_push
    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:3638,1
    - Dst: basicblock_has_eval_break
      Src: /src/cpython/Python/flowgraph.c:3638,1
    - Dst: basicblock_has_no_lineno
      Src: /src/cpython/Python/flowgraph.c:3639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3636
    functionDepth: 2
    functionLinenumber: 3636
    functionLinenumberEnd: 3644
    functionName: is_exit_or_eval_check_without_lineno
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - basicblock_exits_scope
    - basicblock_has_eval_break
    - basicblock_has_no_lineno
    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:3659,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3665,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3669,1
    - Dst: next_nonempty_block
      Src: /src/cpython/Python/flowgraph.c:3670,1
    - Dst: is_exit_or_eval_check_without_lineno
      Src: /src/cpython/Python/flowgraph.c:3671,1
    - Dst: copy_basicblock
      Src: /src/cpython/Python/flowgraph.c:3672,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3690,1
    - Dst: is_exit_or_eval_check_without_lineno
      Src: /src/cpython/Python/flowgraph.c:3691,1
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3692,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3693,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts:
    - condition: (last != NULL)
      pos:
        line_end: 3692
        line_start: 3692
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3699
      start: 3656
    functionDepth: 6
    functionLinenumber: 3656
    functionLinenumberEnd: 3699
    functionName: duplicate_exits_without_lineno
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - next_nonempty_block
    - is_jump
    - basicblock_last_instr
    - BB_HAS_FALLTHROUGH
    - get_max_label
    - copy_basicblock
    - assert
    - is_exit_or_eval_check_without_lineno
    linkageType: ''
    returnType: int
    signature: int duplicate_exits_without_lineno(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - b
    - i
    - loc
    argTypes:
    - basicblock*
    - int
    - location
    assertStmts:
    - condition: (b->b_iused > i)
      pos:
        line_end: 3712
        line_start: 3712
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3717
      start: 3710
    functionDepth: 0
    functionLinenumber: 3710
    functionLinenumberEnd: 3717
    functionName: maybe_propagate_location
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void maybe_propagate_location(basicblock *b, int i, location loc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: basicblock_last_instr
      Src: /src/cpython/Python/flowgraph.c:3723,1
    - Dst: maybe_propagate_location
      Src: /src/cpython/Python/flowgraph.c:3730,1
    - Dst: BB_HAS_FALLTHROUGH
      Src: /src/cpython/Python/flowgraph.c:3733,1
    - Dst: maybe_propagate_location
      Src: /src/cpython/Python/flowgraph.c:3735,1
    - Dst: is_jump
      Src: /src/cpython/Python/flowgraph.c:3738,1
    - Dst: maybe_propagate_location
      Src: /src/cpython/Python/flowgraph.c:3744,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - entryblock
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3748
      start: 3719
    functionDepth: 2
    functionLinenumber: 3719
    functionLinenumberEnd: 3748
    functionName: propagate_line_numbers
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - BB_HAS_FALLTHROUGH
    - is_jump
    - basicblock_last_instr
    - maybe_propagate_location
    linkageType: ''
    returnType: void
    signature: void propagate_line_numbers(basicblock *entryblock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3753,1
    - Dst: duplicate_exits_without_lineno
      Src: /src/cpython/Python/flowgraph.c:3753,1
    - Dst: propagate_line_numbers
      Src: /src/cpython/Python/flowgraph.c:3754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - g
    - firstlineno
    argTypes:
    - cfg_builder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3756
      start: 3750
    functionDepth: 7
    functionLinenumber: 3750
    functionLinenumberEnd: 3756
    functionName: resolve_line_numbers
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - RETURN_IF_ERROR
    - propagate_line_numbers
    - duplicate_exits_without_lineno
    linkageType: ''
    returnType: int
    signature: int resolve_line_numbers(cfg_builder *g, int firstlineno)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3762,1
    - Dst: cfg_builder_check
      Src: /src/cpython/Python/flowgraph.c:3762,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3765,1
    - Dst: translate_jump_labels_to_targets
      Src: /src/cpython/Python/flowgraph.c:3765,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3766,1
    - Dst: mark_except_handlers
      Src: /src/cpython/Python/flowgraph.c:3766,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3767,1
    - Dst: label_exception_targets
      Src: /src/cpython/Python/flowgraph.c:3767,1
    - Dst: _Py_hashtable_new
      Src: /src/cpython/Python/flowgraph.c:3771,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:3774,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3778,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/flowgraph.c:3779,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/flowgraph.c:3780,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/flowgraph.c:3783,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/flowgraph.c:3785,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:3786,1
    - Dst: optimize_cfg
      Src: /src/cpython/Python/flowgraph.c:3791,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/flowgraph.c:3793,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3795,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3797,1
    - Dst: remove_unused_consts
      Src: /src/cpython/Python/flowgraph.c:3797,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3798,1
    - Dst: add_checks_for_loads_of_uninitialized_variables
      Src: /src/cpython/Python/flowgraph.c:3799,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3801,1
    - Dst: insert_superinstructions
      Src: /src/cpython/Python/flowgraph.c:3801,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3803,1
    - Dst: push_cold_blocks_to_end
      Src: /src/cpython/Python/flowgraph.c:3803,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3804,1
    - Dst: resolve_line_numbers
      Src: /src/cpython/Python/flowgraph.c:3804,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    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: 3761
        line_start: 3761
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3808
      start: 3758
    functionDepth: 21
    functionLinenumber: 3758
    functionLinenumberEnd: 3808
    functionName: _PyCfg_OptimizeCodeUnit
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - remove_unused_consts
    - PyList_GET_ITEM
    - assert
    - RETURN_IF_ERROR
    - insert_superinstructions
    - cfg_builder_check
    - PyErr_NoMemory
    - _Py_hashtable_set
    - translate_jump_labels_to_targets
    - mark_except_handlers
    - optimize_cfg
    - label_exception_targets
    - _Py_hashtable_destroy
    - _Py_hashtable_new
    - add_checks_for_loads_of_uninitialized_variables
    - resolve_line_numbers
    - push_cold_blocks_to_end
    - _Py_hashtable_get_entry
    - PyList_GET_SIZE
    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:3813,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3814,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3815,1
    - Dst: PyMem_New
      Src: /src/cpython/Python/flowgraph.c:3818,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:3820,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/flowgraph.c:3829,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/flowgraph.c:3831,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/flowgraph.c:3838,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:3839,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/flowgraph.c:3840,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/flowgraph.c:3844,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/flowgraph.c:3845,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3853,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - umd
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3855
      start: 3810
    functionDepth: 8
    functionLinenumber: 3810
    functionLinenumberEnd: 3855
    functionName: build_cellfixedoffsets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - PyLong_AsInt
    - PyDict_Next
    - PyDict_GetItemRef
    - PyErr_Occurred
    - PyMem_Free
    - Py_DECREF
    - PyDict_GET_SIZE
    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: 3859
      start: 3857
    functionDepth: 0
    functionLinenumber: 3857
    functionLinenumberEnd: 3859
    functionName: IS_GENERATOR
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_GENERATOR(CF)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3864,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3867,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3872,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/flowgraph.c:3873,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/flowgraph.c:3875,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3894,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/flowgraph.c:3895,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/flowgraph.c:3900,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:3911,1
    - Dst: basicblock_insert_instruction
      Src: /src/cpython/Python/flowgraph.c:3911,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - umd
    - entryblock
    - fixed
    - nfreevars
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - basicblock*
    - int*
    - int
    assertStmts:
    - condition: (umd->u_firstlineno > 0)
      pos:
        line_end: 3863
        line_start: 3863
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3915
      start: 3860
    functionDepth: 5
    functionLinenumber: 3860
    functionLinenumberEnd: 3915
    functionName: insert_prefix_instructions
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_RawCalloc
    - PyMem_RawFree
    - RETURN_IF_ERROR
    - assert
    - basicblock_insert_instruction
    - PyDict_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int insert_prefix_instructions(_PyCompile_CodeUnitMetadata *umd, basicblock
      *entryblock,\n                           int *fixed, int nfreevars)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3920,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3921,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3922,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3942,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3951,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3952,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3953,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - umd
    - entryblock
    - fixedmap
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - basicblock*
    - int*
    assertStmts:
    - condition: (oldoffset >= 0)
      pos:
        line_end: 3950
        line_start: 3950
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (inst->i_opcode != EXTENDED_ARG)
      pos:
        line_end: 3941
        line_start: 3941
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (oldoffset < noffsets)
      pos:
        line_end: 3951
        line_start: 3951
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (fixedmap[oldoffset] >= 0)
      pos:
        line_end: 3952
        line_start: 3952
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3960
      start: 3917
    functionDepth: 1
    functionLinenumber: 3917
    functionLinenumberEnd: 3960
    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:3965,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3965,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3966,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3966,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3967,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3967,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3968,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3969,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/flowgraph.c:3970,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3971,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:3972,1
    - Dst: build_cellfixedoffsets
      Src: /src/cpython/Python/flowgraph.c:3974,1
    - Dst: insert_prefix_instructions
      Src: /src/cpython/Python/flowgraph.c:3980,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3981,1
    - Dst: fix_cell_offsets
      Src: /src/cpython/Python/flowgraph.c:3985,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/flowgraph.c:3986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - umd
    - g
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - cfg_builder*
    assertStmts:
    - condition: (PyDict_GET_SIZE(umd->u_varnames) < INT_MAX)
      pos:
        line_end: 3964
        line_start: 3964
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_GET_SIZE(umd->u_cellvars) < INT_MAX)
      pos:
        line_end: 3965
        line_start: 3965
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (PyDict_GET_SIZE(umd->u_freevars) < INT_MAX)
      pos:
        line_end: 3966
        line_start: 3966
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (INT_MAX - nlocals - ncellvars > 0)
      pos:
        line_end: 3970
        line_start: 3970
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (INT_MAX - nlocals - ncellvars - nfreevars > 0)
      pos:
        line_end: 3971
        line_start: 3971
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 3994
      start: 3962
    functionDepth: 9
    functionLinenumber: 3962
    functionLinenumberEnd: 3994
    functionName: prepare_localsplus
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - assert
    - PyMem_Free
    - build_cellfixedoffsets
    - fix_cell_offsets
    - PyDict_GET_SIZE
    - insert_prefix_instructions
    linkageType: ''
    returnType: int
    signature: int prepare_localsplus(_PyCompile_CodeUnitMetadata *umd, cfg_builder
      *g)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/flowgraph.c:3999,1
    - Dst: _PyCfgBuilder_New
      Src: /src/cpython/Python/flowgraph.c:4002,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:4011,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:4012,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:4021,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:4025,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:4025,1
    - Dst: _PyCfgBuilder_Addop
      Src: /src/cpython/Python/flowgraph.c:4026,1
    - Dst: _PyCfgBuilder_UseLabel
      Src: /src/cpython/Python/flowgraph.c:4039,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:4045,1
    - Dst: _PyCfgBuilder_Addop
      Src: /src/cpython/Python/flowgraph.c:4048,1
    - Dst: _PyCfgBuilder_CheckSize
      Src: /src/cpython/Python/flowgraph.c:4052,1
    - Dst: _PyCfgBuilder_Free
      Src: /src/cpython/Python/flowgraph.c:4057,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: 4011
        line_start: 4011
        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: 4021
        line_start: 4020
        source_file: /src/cpython/Python/flowgraph.c
    - condition: (!HAS_TARGET(ann_instr->i_opcode))
      pos:
        line_end: 4024
        line_start: 4024
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 4059
      start: 3996
    functionDepth: 6
    functionLinenumber: 3996
    functionLinenumberEnd: 4059
    functionName: _PyCfg_FromInstructionSequence
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - _PyCfgBuilder_New
    - HAS_TARGET
    - _PyCfgBuilder_Free
    - _PyCfgBuilder_UseLabel
    - _PyCfgBuilder_Addop
    - _PyInstructionSequence_ApplyLabelMap
    - _PyCfgBuilder_CheckSize
    - 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:4070,1
    - Dst: _PyInstructionSequence_UseLabel
      Src: /src/cpython/Python/flowgraph.c:4070,1
    - Dst: HAS_TARGET
      Src: /src/cpython/Python/flowgraph.c:4073,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4077,1
    - Dst: _PyInstructionSequence_Addop
      Src: /src/cpython/Python/flowgraph.c:4078,1
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/flowgraph.c:4092,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - g
    - seq
    argTypes:
    - cfg_builder*
    - _PyInstructionSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4096
      start: 4061
    functionDepth: 5
    functionLinenumber: 4061
    functionLinenumberEnd: 4096
    functionName: _PyCfg_ToInstructionSequence
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 0
    functionsReached:
    - HAS_TARGET
    - _PyInstructionSequence_UseLabel
    - _PyInstructionSequence_ApplyLabelMap
    - RETURN_IF_ERROR
    - _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:4105,1
    - Dst: convert_pseudo_conditional_jumps
      Src: /src/cpython/Python/flowgraph.c:4105,1
    - Dst: calculate_stackdepth
      Src: /src/cpython/Python/flowgraph.c:4107,1
    - Dst: prepare_localsplus
      Src: /src/cpython/Python/flowgraph.c:4112,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4117,1
    - Dst: convert_pseudo_ops
      Src: /src/cpython/Python/flowgraph.c:4117,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4121,1
    - Dst: normalize_jumps
      Src: /src/cpython/Python/flowgraph.c:4121,1
    - Dst: assert
      Src: /src/cpython/Python/flowgraph.c:4122,1
    - Dst: no_redundant_jumps
      Src: /src/cpython/Python/flowgraph.c:4122,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4127,1
    - Dst: optimize_load_fast
      Src: /src/cpython/Python/flowgraph.c:4127,1
    - Dst: _PyCfg_ToInstructionSequence
      Src: /src/cpython/Python/flowgraph.c:4130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - g
    - umd
    - stackdepth
    - nlocalsplus
    - seq
    argTypes:
    - cfg_builder*
    - _PyCompile_CodeUnitMetadata*
    - int*
    - int*
    - _PyInstructionSequence*
    assertStmts:
    - condition: (no_redundant_jumps(g))
      pos:
        line_end: 4121
        line_start: 4121
        source_file: /src/cpython/Python/flowgraph.c
    constantsTouched: []
    func_position:
      end: 4135
      start: 4099
    functionDepth: 10
    functionLinenumber: 4099
    functionLinenumberEnd: 4135
    functionName: _PyCfg_OptimizedCfgToInstructionSequence
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 2
    functionsReached:
    - normalize_jumps
    - convert_pseudo_ops
    - assert
    - optimize_load_fast
    - _PyCfg_ToInstructionSequence
    - no_redundant_jumps
    - convert_pseudo_conditional_jumps
    - calculate_stackdepth
    - RETURN_IF_ERROR
    - prepare_localsplus
    linkageType: ''
    returnType: int
    signature: "int _PyCfg_OptimizedCfgToInstructionSequence(cfg_builder *g,\n                                     _PyCompile_CodeUnitMetadata
      *umd,\n                                     int *stackdepth, int *nlocalsplus,\n
      \                                    _PyInstructionSequence *seq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4143,1
    - Dst: translate_jump_labels_to_targets
      Src: /src/cpython/Python/flowgraph.c:4143,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/flowgraph.c:4144,1
    - Dst: label_exception_targets
      Src: /src/cpython/Python/flowgraph.c:4144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4140
    functionDepth: 4
    functionLinenumber: 4140
    functionLinenumberEnd: 4146
    functionName: _PyCfg_JumpLabelsToTargets
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - RETURN_IF_ERROR
    - translate_jump_labels_to_targets
    - label_exception_targets
    linkageType: ''
    returnType: int
    signature: int _PyCfg_JumpLabelsToTargets(cfg_builder *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_effects
      Src: /src/cpython/Python/flowgraph.c:4154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - opcode
    - oparg
    - jump
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4158
      start: 4150
    functionDepth: 2
    functionLinenumber: 4150
    functionLinenumberEnd: 4158
    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:4164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - opcode
    - oparg
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4168
      start: 4160
    functionDepth: 2
    functionLinenumber: 4160
    functionLinenumberEnd: 4168
    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:4179,1
    - Dst: _PyCfg_ToInstructionSequence
      Src: /src/cpython/Python/flowgraph.c:4183,1
    - Dst: PyInstructionSequence_Fini
      Src: /src/cpython/Python/flowgraph.c:4184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - g
    argTypes:
    - cfg_builder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4176
    functionDepth: 6
    functionLinenumber: 4176
    functionLinenumberEnd: 4188
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_Check
      Src: /src/cpython/Python/flowgraph.c:4193,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:4194,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/flowgraph.c:4197,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/flowgraph.c:4198,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/flowgraph.c:4201,1
    - Dst: _PyCfg_FromInstructionSequence
      Src: /src/cpython/Python/flowgraph.c:4207,1
    - Dst: _PyCfg_OptimizeCodeUnit
      Src: /src/cpython/Python/flowgraph.c:4212,1
    - Dst: calculate_stackdepth
      Src: /src/cpython/Python/flowgraph.c:4217,1
    - Dst: optimize_load_fast
      Src: /src/cpython/Python/flowgraph.c:4221,1
    - Dst: cfg_to_instruction_sequence
      Src: /src/cpython/Python/flowgraph.c:4225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/flowgraph.c:4227,1
    - Dst: _PyCfgBuilder_Free
      Src: /src/cpython/Python/flowgraph.c:4228,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - seq
    - consts
    - nlocals
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4230
      start: 4190
    functionDepth: 22
    functionLinenumber: 4190
    functionLinenumberEnd: 4230
    functionName: _PyCompile_OptimizeCfg
    functionSourceFile: /src/cpython/Python/flowgraph.c
    functionUses: 1
    functionsReached:
    - _PyInstructionSequence_Check
    - _PyCfg_OptimizeCodeUnit
    - optimize_load_fast
    - _PyCfgBuilder_Free
    - PyErr_SetString
    - PyList_Check
    - _PyCfg_FromInstructionSequence
    - calculate_stackdepth
    - cfg_to_instruction_sequence
    - Py_DECREF
    - PyDict_New
    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:
    - OPCODE_HAS_ARG
    - IS_PSEUDO_INSTR
    - assert
    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:
    - PyBytes_FromStringAndSize
    - memset
    - Py_XDECREF
    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: (depth >= 0)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/cpython/Python/assemble.c
    - condition: (end > start)
      pos:
        line_end: 141
        line_start: 141
        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:
    - assemble_emit_exception_table_item
    - assert
    - _PyBytes_Resize
    - RETURN_IF_ERROR
    - PyBytes_GET_SIZE
    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:
    - RETURN_IF_ERROR
    - assemble_emit_exception_table_entry
    - instr_size
    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:
    - location_pointer
    - write_signed_varint
    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: (column < 80)
      pos:
        line_end: 237
        line_start: 237
        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: (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
    - write_location_byte
    - assert
    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: (column < 128)
      pos:
        line_end: 249
        line_start: 249
        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
    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
    - write_location_byte
    - assert
    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_oneline_form
    - write_location_info_long_form
    - write_location_info_none
    - assert
    - _PyBytes_Resize
    - RETURN_IF_ERROR
    - write_location_info_no_column
    - PyBytes_GET_SIZE
    - write_location_info_short_form
    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:
    - RETURN_IF_ERROR
    - write_location_info_entry
    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:
    - IS_TERMINATOR_OPCODE
    - same_location
    - instr_size
    - assert
    - RETURN_IF_ERROR
    - assemble_emit_location
    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
    - OPCODE_HAS_ARG
    - IS_PSEUDO_INSTR
    - assert
    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: PyErr_NoMemory
      Src: /src/cpython/Python/assemble.c:421,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:424,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:424,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/assemble.c:426,1
    - Dst: write_instr
      Src: /src/cpython/Python/assemble.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - instr
    argTypes:
    - struct assembler*
    - instruction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 412
    functionDepth: 6
    functionLinenumber: 412
    functionLinenumberEnd: 430
    functionName: assemble_emit_instr
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - write_instr
    - instr_size
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    - RETURN_IF_ERROR
    - PyBytes_GET_SIZE
    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:436,1
    - Dst: assemble_init
      Src: /src/cpython/Python/assemble.c:436,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:440,1
    - Dst: assemble_emit_instr
      Src: /src/cpython/Python/assemble.c:440,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:443,1
    - Dst: assemble_location_info
      Src: /src/cpython/Python/assemble.c:443,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:445,1
    - Dst: assemble_exception_table
      Src: /src/cpython/Python/assemble.c:445,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:447,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:447,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:448,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:448,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:450,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:450,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:451,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:451,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:453,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/assemble.c:453,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:454,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:454,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: 456
      start: 432
    functionDepth: 16
    functionLinenumber: 432
    functionLinenumberEnd: 456
    functionName: assemble_emit
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - _PyCompile_ConstCacheMergeOne
    - assemble_location_info
    - _PyBytes_Resize
    - RETURN_IF_ERROR
    - assemble_exception_table
    - 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:462,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/assemble.c:464,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/assemble.c:467,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/assemble.c:468,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/assemble.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/assemble.c:470,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:473,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:474,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/assemble.c:475,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/assemble.c:475,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: 472
        line_start: 472
        source_file: /src/cpython/Python/assemble.c
    - condition: ((i - offset) >= 0)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 478
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 478
    functionName: dict_keys_inorder
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 3
    functionsReached:
    - PyDict_Next
    - PyTuple_SET_ITEM
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyLong_AsSsize_t
    - Py_NewRef
    - PyTuple_New
    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:508,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/assemble.c:509,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/assemble.c:510,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:513,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:514,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/assemble.c:518,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:519,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/assemble.c:524,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:525,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Python/assemble.c:530,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/assemble.c:533,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/assemble.c:538,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/assemble.c:539,1
    - Dst: RETURN_IF_ERROR
      Src: /src/cpython/Python/assemble.c:540,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/assemble.c:547,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/assemble.c:548,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:551,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:553,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Python/assemble.c:554,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/assemble.c:558,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/assemble.c:559,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/assemble.c:560,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:563,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:565,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:569,1
    - Dst: _Py_set_localsplus_info
      Src: /src/cpython/Python/assemble.c:570,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - umd
    - nlocalsplus
    - flags
    - names
    - kinds
    argTypes:
    - _PyCompile_CodeUnitMetadata*
    - int
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (cellvar_offset >= 0)
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/cpython/Python/assemble.c
    - condition: (cellvar_offset < nlocalsplus)
      pos:
        line_end: 552
        line_start: 552
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset < nlocalsplus)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset >= 0)
      pos:
        line_end: 562
        line_start: 562
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset < nlocalsplus)
      pos:
        line_end: 564
        line_start: 564
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset >= 0)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/cpython/Python/assemble.c
    - condition: (offset > cellvar_offset)
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 573
      start: 484
    functionDepth: 4
    functionLinenumber: 484
    functionLinenumberEnd: 573
    functionName: compute_localsplus_info
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyLong_AsInt
    - PyDict_Next
    - PyDict_Contains
    - _Py_set_localsplus_info
    - PyErr_Occurred
    - assert
    - RETURN_IF_ERROR
    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:585,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:589,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Python/assemble.c:593,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:597,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:603,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:606,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/assemble.c:609,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/assemble.c:613,1
    - Dst: compute_localsplus_info
      Src: /src/cpython/Python/assemble.c:617,1
    - Dst: _PyCode_Validate
      Src: /src/cpython/Python/assemble.c:649,1
    - Dst: _PyCompile_ConstCacheMergeOne
      Src: /src/cpython/Python/assemble.c:653,1
    - Dst: _PyCode_New
      Src: /src/cpython/Python/assemble.c:658,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
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/assemble.c:667,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: 600
        line_start: 600
        source_file: /src/cpython/Python/assemble.c
    - condition: (umd->u_argcount < INT_MAX)
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/cpython/Python/assemble.c
    - condition: (umd->u_kwonlyargcount < INT_MAX)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/cpython/Python/assemble.c
    - condition: (INT_MAX - posonlyargcount - posorkwargcount > 0)
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 669
      start: 575
    functionDepth: 16
    functionLinenumber: 575
    functionLinenumberEnd: 669
    functionName: makecode
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - _PyCode_Validate
    - dict_keys_inorder
    - PyBytes_FromStringAndSize
    - _PyCompile_ConstCacheMergeOne
    - PyList_AsTuple
    - Py_XDECREF
    - assert
    - _PyCode_New
    - PyTuple_New
    - compute_localsplus_info
    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:684,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:696,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:704,1
    - Dst: OPCODE_HAS_JUMP
      Src: /src/cpython/Python/assemble.c:710,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:719,1
    - Dst: IS_BACKWARDS_JUMP_OPCODE
      Src: /src/cpython/Python/assemble.c:719,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:723,1
    - Dst: IS_BACKWARDS_JUMP_OPCODE
      Src: /src/cpython/Python/assemble.c:723,1
    - Dst: instr_size
      Src: /src/cpython/Python/assemble.c:726,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: 718
        line_start: 718
        source_file: /src/cpython/Python/assemble.c
    - condition: (!IS_BACKWARDS_JUMP_OPCODE(instr->i_opcode))
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 747
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 747
    functionName: resolve_jump_offsets
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - IS_BACKWARDS_JUMP_OPCODE
    - instr_size
    - OPCODE_HAS_JUMP
    - assert
    linkageType: ''
    returnType: int
    signature: int resolve_jump_offsets(instr_sequence *instrs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - 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:760,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/assemble.c:760,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:764,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/assemble.c:764,1
    - Dst: assert
      Src: /src/cpython/Python/assemble.c:765,1
    - Dst: is_pseudo_target
      Src: /src/cpython/Python/assemble.c:765,1
    - Dst: OPCODE_HAS_JUMP
      Src: /src/cpython/Python/assemble.c:770,1
    - Dst: IS_PSEUDO_INSTR
      Src: /src/cpython/Python/assemble.c:771,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/assemble.c:772,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: 758
        line_start: 758
        source_file: /src/cpython/Python/assemble.c
    - condition: (is_pseudo_target(JUMP, JUMP_BACKWARD))
      pos:
        line_end: 759
        line_start: 759
        source_file: /src/cpython/Python/assemble.c
    - condition: (is_pseudo_target(JUMP_NO_INTERRUPT, JUMP_FORWARD))
      pos:
        line_end: 763
        line_start: 763
        source_file: /src/cpython/Python/assemble.c
    - condition: (is_pseudo_target(JUMP_NO_INTERRUPT, JUMP_BACKWARD_NO_INTERRUPT))
      pos:
        line_end: 764
        line_start: 764
        source_file: /src/cpython/Python/assemble.c
    constantsTouched: []
    func_position:
      end: 777
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 777
    functionName: resolve_unconditional_jumps
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 0
    functionsReached:
    - OPCODE_HAS_JUMP
    - Py_UNREACHABLE
    - is_pseudo_target
    - assert
    - IS_PSEUDO_INSTR
    linkageType: ''
    returnType: int
    signature: int resolve_unconditional_jumps(instr_sequence *instrs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInstructionSequence_ApplyLabelMap
      Src: /src/cpython/Python/assemble.c:784,1
    - Dst: resolve_unconditional_jumps
      Src: /src/cpython/Python/assemble.c:787,1
    - Dst: resolve_jump_offsets
      Src: /src/cpython/Python/assemble.c:790,1
    - Dst: assemble_emit
      Src: /src/cpython/Python/assemble.c:796,1
    - Dst: makecode
      Src: /src/cpython/Python/assemble.c:798,1
    - Dst: assemble_free
      Src: /src/cpython/Python/assemble.c:801,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: 803
      start: 779
    functionDepth: 17
    functionLinenumber: 779
    functionLinenumberEnd: 803
    functionName: _PyAssemble_MakeCodeObject
    functionSourceFile: /src/cpython/Python/assemble.c
    functionUses: 2
    functionsReached:
    - makecode
    - assemble_emit
    - resolve_jump_offsets
    - resolve_unconditional_jumps
    - _PyInstructionSequence_ApplyLabelMap
    - assemble_free
    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: 75
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 75
    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:84,1
    - Dst: GetConsoleCP
      Src: /src/cpython/Python/fileutils.c:94,1
    - Dst: GetConsoleOutputCP
      Src: /src/cpython/Python/fileutils.c:96,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/fileutils.c:105,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/fileutils.c:111,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/fileutils.c:112,1
    - Dst: _Py_GetLocaleEncodingObject
      Src: /src/cpython/Python/fileutils.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 78
    functionDepth: 10
    functionLinenumber: 78
    functionLinenumberEnd: 116
    functionName: _Py_device_encoding
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - GetConsoleCP
    - _Py_STR
    - _Py_DECLARE_STR
    - GetConsoleOutputCP
    - PyUnicode_FromFormat
    - isatty
    - _Py_GetLocaleEncodingObject
    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:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 142
    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:148,1
    - Dst: is_valid_wide_char
      Src: /src/cpython/Python/fileutils.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - wchar_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: _Py_mbstowcs
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - is_valid_wide_char
    - mbstowcs
    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:165,1
    - Dst: mbrtowc
      Src: /src/cpython/Python/fileutils.c:166,1
    - Dst: is_valid_wide_char
      Src: /src/cpython/Python/fileutils.c:168,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: 164
        line_start: 164
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 173
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: _Py_mbrtowc
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - mbrtowc
    - is_valid_wide_char
    - assert
    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:215,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:219,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:219,1
    - Dst: nl_langinfo
      Src: /src/cpython/Python/fileutils.c:225,1
    - Dst: _Py_normalize_encoding
      Src: /src/cpython/Python/fileutils.c:232,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:237,1
    - Dst: _Py_mbstowcs
      Src: /src/cpython/Python/fileutils.c:243,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:274,1
    - Dst: _Py_mbstowcs
      Src: /src/cpython/Python/fileutils.c:291,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 310
    functionName: check_force_ascii
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - nl_langinfo
    - strcmp
    - _Py_normalize_encoding
    - _Py_mbstowcs
    - setlocale
    linkageType: ''
    returnType: int
    signature: int check_force_ascii(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_force_ascii
      Src: /src/cpython/Python/fileutils.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 320
    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: 327
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 327
    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:340,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:344,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:348,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/fileutils.c:351,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:371,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:374,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: 388
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 388
    functionName: encode_ascii
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PyMem_RawMalloc
    - PyMem_Free
    - PyMem_Malloc
    - get_surrogateescape
    - wcslen
    linkageType: ''
    returnType: int
    signature: "int encode_ascii(const wchar_t *text, char **str,\n             size_t
      *error_pos, const char **reason,\n             int raw_malloc, _Py_error_handler
      errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 394
    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: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    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:412,1
    - Dst: get_surrogateescape
      Src: /src/cpython/Python/fileutils.c:415,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:422,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:435,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: 454
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 454
    functionName: decode_ascii
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - get_surrogateescape
    - PyMem_RawFree
    - PyMem_RawMalloc
    - strlen
    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:471,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:480,1
    - Dst: _Py_mbstowcs
      Src: /src/cpython/Python/fileutils.c:482,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:488,1
    - Dst: _Py_mbstowcs
      Src: /src/cpython/Python/fileutils.c:493,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:501,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:510,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:514,1
    - Dst: memset
      Src: /src/cpython/Python/fileutils.c:521,1
    - Dst: _Py_mbrtowc
      Src: /src/cpython/Python/fileutils.c:523,1
    - Dst: memset
      Src: /src/cpython/Python/fileutils.c:538,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:543,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/cpython/Python/fileutils.c:543,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:557,1
    - Dst: decode_ascii
      Src: /src/cpython/Python/fileutils.c:569,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: 542
        line_start: 542
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 571
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 571
    functionName: decode_current_locale
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - decode_ascii
    - PyMem_RawFree
    - Py_UNICODE_IS_SURROGATE
    - PyMem_RawMalloc
    - _Py_mbstowcs
    - memset
    - strlen
    - assert
    - get_surrogateescape
    - _Py_mbrtowc
    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:603,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:603,1
    - Dst: decode_current_locale
      Src: /src/cpython/Python/fileutils.c:606,1
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:611,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:611,1
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:619,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:619,1
    - Dst: check_force_ascii
      Src: /src/cpython/Python/fileutils.c:625,1
    - Dst: decode_ascii
      Src: /src/cpython/Python/fileutils.c:630,1
    - Dst: decode_current_locale
      Src: /src/cpython/Python/fileutils.c:634,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: 636
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 636
    functionName: _Py_DecodeLocaleEx
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - _Py_DecodeUTF8Ex
    - decode_ascii
    - decode_current_locale
    - strlen
    - check_force_ascii
    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:662,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg
    - wlen
    argTypes:
    - char*
    - size_t*
    assertStmts:
    - condition: (res != -3)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 673
      start: 658
    functionDepth: 5
    functionLinenumber: 658
    functionLinenumberEnd: 673
    functionName: Py_DecodeLocale
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    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:681,1
    - Dst: get_surrogateescape
      Src: /src/cpython/Python/fileutils.c:687,1
    - Dst: wcstombs
      Src: /src/cpython/Python/fileutils.c:716,1
    - Dst: wcstombs
      Src: /src/cpython/Python/fileutils.c:719,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:740,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/fileutils.c:743,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:755,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:758,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: 767
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 767
    functionName: encode_current_locale
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - wcstombs
    - PyMem_RawMalloc
    - PyMem_Free
    - PyMem_Malloc
    - get_surrogateescape
    - wcslen
    linkageType: ''
    returnType: int
    signature: "int encode_current_locale(const wchar_t *text, char **str,\n                      size_t
      *error_pos, const char **reason,\n                      int raw_malloc, _Py_error_handler
      errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:794,1
    - Dst: encode_current_locale
      Src: /src/cpython/Python/fileutils.c:797,1
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:803,1
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/cpython/Python/fileutils.c:811,1
    - Dst: check_force_ascii
      Src: /src/cpython/Python/fileutils.c:817,1
    - Dst: encode_ascii
      Src: /src/cpython/Python/fileutils.c:821,1
    - Dst: encode_current_locale
      Src: /src/cpython/Python/fileutils.c:826,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: 829
      start: 787
    functionDepth: 4
    functionLinenumber: 787
    functionLinenumberEnd: 829
    functionName: encode_locale_ex
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - _Py_EncodeUTF8Ex
    - encode_ascii
    - 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:836,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: 846
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 846
    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:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - text
    - error_pos
    argTypes:
    - wchar_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 864
    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:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - text
    - error_pos
    argTypes:
    - wchar_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 873
    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:881,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: 883
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 883
    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:903,1
    - Dst: GetACP
      Src: /src/cpython/Python/fileutils.c:908,1
    - Dst: swprintf
      Src: /src/cpython/Python/fileutils.c:909,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:909,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:910,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:911,1
    - Dst: nl_langinfo
      Src: /src/cpython/Python/fileutils.c:913,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:917,1
    - Dst: decode_current_locale
      Src: /src/cpython/Python/fileutils.c:921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 897
    functionDepth: 4
    functionLinenumber: 897
    functionLinenumberEnd: 930
    functionName: _Py_GetLocaleEncoding
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - nl_langinfo
    - Py_ARRAY_LENGTH
    - swprintf
    - GetACP
    - _PyMem_RawWcsdup
    - decode_current_locale
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_GetLocaleEncoding(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetLocaleEncoding
      Src: /src/cpython/Python/fileutils.c:936,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/fileutils.c:938,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/fileutils.c:942,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 933
    functionDepth: 5
    functionLinenumber: 933
    functionLinenumberEnd: 945
    functionName: _Py_GetLocaleEncodingObject
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 4
    functionsReached:
    - PyUnicode_FromWideChar
    - PyMem_RawFree
    - 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:955,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:960,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 961
    functionName: _Py_LocaleUsesNonUnicodeWchar
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 4
    functionsReached:
    - nl_langinfo
    - strcmp
    linkageType: ''
    returnType: int
    signature: int _Py_LocaleUsesNonUnicodeWchar(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/fileutils.c:971,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/fileutils.c:976,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/fileutils.c:978,1
    - Dst: iconv_open
      Src: /src/cpython/Python/fileutils.c:982,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/fileutils.c:984,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:985,1
    - Dst: iconv
      Src: /src/cpython/Python/fileutils.c:994,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/fileutils.c:996,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:997,1
    - Dst: iconv_close
      Src: /src/cpython/Python/fileutils.c:998,1
    - Dst: iconv_close
      Src: /src/cpython/Python/fileutils.c:1002,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: 1004
      start: 963
    functionDepth: 2
    functionLinenumber: 963
    functionLinenumberEnd: 1004
    functionName: _Py_ConvertWCharForm
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - iconv
    - iconv_close
    - PyErr_Format
    - PyMem_Free
    - iconv_open
    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:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - native
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1013
    functionDepth: 3
    functionLinenumber: 1013
    functionLinenumberEnd: 1017
    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:1034,1
    - Dst: memcpy
      Src: /src/cpython/Python/fileutils.c:1038,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:1039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - unicode
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1031
    functionDepth: 3
    functionLinenumber: 1031
    functionLinenumberEnd: 1041
    functionName: _Py_EncodeNonUnicodeWchar_InPlace
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - PyMem_Free
    - memcpy
    - _Py_ConvertWCharForm
    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:1054,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Python/fileutils.c:1056,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: 1057
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1057
    functionName: FILE_TIME_to_time_t_nsec
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - memcpy
    linkageType: ''
    returnType: void
    signature: void FILE_TIME_to_time_t_nsec(FILETIME *in_ptr, time_t *time_out, int*
      nsec_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/cpython/Python/fileutils.c:1063,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: 1064
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1064
    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:1073,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: 1074
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1074
    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: 1093
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1093
    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:1110,1
    - Dst: attributes_to_mode
      Src: /src/cpython/Python/fileutils.c:1111,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1117,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1118,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: FILE_TIME_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:1123,1
    - Dst: FILE_TIME_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1124,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: 1150
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1150
    functionName: _Py_attribute_data_to_stat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - LARGE_INTEGER_to_time_t_nsec
    - memset
    - attributes_to_mode
    - FILE_TIME_to_time_t_nsec
    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:1156,1
    - Dst: attributes_to_mode
      Src: /src/cpython/Python/fileutils.c:1157,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1159,1
    - Dst: LARGE_INTEGER_to_time_t_nsec
      Src: /src/cpython/Python/fileutils.c:1160,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
    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: 1214
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1214
    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:1241,1
    - Dst: SetLastError
      Src: /src/cpython/Python/fileutils.c:1246,1
    - Dst: memset
      Src: /src/cpython/Python/fileutils.c:1249,1
    - Dst: GetFileType
      Src: /src/cpython/Python/fileutils.c:1251,1
    - Dst: GetLastError
      Src: /src/cpython/Python/fileutils.c:1253,1
    - Dst: winerror_to_errno
      Src: /src/cpython/Python/fileutils.c:1255,1
    - Dst: GetFileInformationByHandle
      Src: /src/cpython/Python/fileutils.c:1269,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Python/fileutils.c:1270,1
    - Dst: winerror_to_errno
      Src: /src/cpython/Python/fileutils.c:1273,1
    - Dst: GetLastError
      Src: /src/cpython/Python/fileutils.c:1273,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/cpython/Python/fileutils.c:1277,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/cpython/Python/fileutils.c:1282,1
    - Dst: fstat
      Src: /src/cpython/Python/fileutils.c:1285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - fd
    - status
    argTypes:
    - int
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1230
    functionDepth: 3
    functionLinenumber: 1230
    functionLinenumberEnd: 1287
    functionName: _Py_fstat_noraise
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - GetFileInformationByHandleEx
    - GetFileType
    - _Py_get_osfhandle_noraise
    - winerror_to_errno
    - memset
    - _Py_attribute_data_to_stat
    - GetLastError
    - SetLastError
    - GetFileInformationByHandle
    - fstat
    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:1309,1
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Python/fileutils.c:1312,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:1317,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - status
    argTypes:
    - int
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1304
    functionDepth: 4
    functionLinenumber: 1304
    functionLinenumberEnd: 1324
    functionName: _Py_fstat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - _Py_AssertHoldsTstate
    - PyErr_SetFromWindowsErr
    - _Py_fstat_noraise
    - PyErr_SetFromErrno
    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:1333,1
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/cpython/Python/fileutils.c:1339,1
    - Dst: stat
      Src: /src/cpython/Python/fileutils.c:1344,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:1345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - path
    - buf
    argTypes:
    - wchar_t*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1327
    functionDepth: 2
    functionLinenumber: 1327
    functionLinenumberEnd: 1348
    functionName: _Py_wstat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - _Py_EncodeLocaleRaw
    - PyMem_RawFree
    - _wstat
    - 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:1363,1
    - Dst: _Py_wstat
      Src: /src/cpython/Python/fileutils.c:1367,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:1368,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/fileutils.c:1375,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/cpython/Python/fileutils.c:1380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1381,1
    - Dst: stat
      Src: /src/cpython/Python/fileutils.c:1385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - path
    - statbuf
    argTypes:
    - PyObject*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1357
    functionDepth: 5
    functionLinenumber: 1357
    functionLinenumberEnd: 1389
    functionName: _Py_stat
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - stat
    - _Py_wstat
    - PyMem_Free
    - Py_DECREF
    - PyBytes_AsStringAndSize
    - 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:1407,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1410,1
    - Dst: GetHandleInformation
      Src: /src/cpython/Python/fileutils.c:1414,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:1416,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:1424,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1427,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - raise
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1432
    functionName: get_inheritable
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - PyErr_SetFromWindowsErr
    - fcntl
    - _Py_get_osfhandle_noraise
    - GetHandleInformation
    - 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:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1437
    functionDepth: 2
    functionLinenumber: 1437
    functionLinenumberEnd: 1441
    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:1463,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1466,1
    - Dst: get_inheritable
      Src: /src/cpython/Python/fileutils.c:1467,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1470,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1473,1
    - Dst: _Py_get_osfhandle_noraise
      Src: /src/cpython/Python/fileutils.c:1478,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1481,1
    - Dst: SetHandleInformation
      Src: /src/cpython/Python/fileutils.c:1490,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:1492,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1500,1
    - Dst: ioctl
      Src: /src/cpython/Python/fileutils.c:1508,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1510,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1511,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1526,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/fileutils.c:1539,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:1546,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1549,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:1565,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1568,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: 1462
        line_start: 1462
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1573
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1573
    functionName: set_inheritable
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 12
    functionsReached:
    - ioctl
    - PyErr_SetFromWindowsErr
    - fcntl
    - get_inheritable
    - _Py_get_osfhandle_noraise
    - _Py_atomic_store_int_relaxed
    - assert
    - _Py_atomic_load_int_relaxed
    - PyErr_SetFromErrno
    - SetHandleInformation
    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:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1577
    functionDepth: 3
    functionLinenumber: 1577
    functionLinenumberEnd: 1581
    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:1602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - inheritable
    - atomic_flag_works
    argTypes:
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1599
    functionDepth: 3
    functionLinenumber: 1599
    functionLinenumberEnd: 1603
    functionName: _Py_set_inheritable
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 12
    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:1611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - inheritable
    - atomic_flag_works
    argTypes:
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1608
    functionDepth: 3
    functionLinenumber: 1608
    functionLinenumberEnd: 1612
    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:1633,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/fileutils.c:1637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1638,1
    - Dst: open
      Src: /src/cpython/Python/fileutils.c:1644,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1649,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Python/fileutils.c:1653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1657,1
    - Dst: open
      Src: /src/cpython/Python/fileutils.c:1660,1
    - Dst: set_inheritable
      Src: /src/cpython/Python/fileutils.c:1666,1
    - Dst: close
      Src: /src/cpython/Python/fileutils.c:1667,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pathname
    - flags
    - gil_held
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1614
    functionDepth: 3
    functionLinenumber: 1614
    functionLinenumberEnd: 1673
    functionName: _Py_open_impl
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - close
    - PyErr_SetFromErrnoWithFilenameObjects
    - PySys_Audit
    - PyErr_CheckSignals
    - open
    - set_inheritable
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    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:1689,1
    - Dst: _Py_open_impl
      Src: /src/cpython/Python/fileutils.c:1690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pathname
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1685
    functionDepth: 4
    functionLinenumber: 1685
    functionLinenumberEnd: 1691
    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:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pathname
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1699
    functionDepth: 4
    functionLinenumber: 1699
    functionLinenumberEnd: 1703
    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:1715,1
    - Dst: wcstombs
      Src: /src/cpython/Python/fileutils.c:1722,1
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/cpython/Python/fileutils.c:1727,1
    - Dst: fopen
      Src: /src/cpython/Python/fileutils.c:1731,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:1732,1
    - Dst: _wfopen
      Src: /src/cpython/Python/fileutils.c:1734,1
    - Dst: make_non_inheritable
      Src: /src/cpython/Python/fileutils.c:1738,1
    - Dst: fileno
      Src: /src/cpython/Python/fileutils.c:1738,1
    - Dst: fclose
      Src: /src/cpython/Python/fileutils.c:1739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1711
    functionDepth: 4
    functionLinenumber: 1711
    functionLinenumberEnd: 1743
    functionName: _Py_wfopen
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - fileno
    - fopen
    - fclose
    - PySys_Audit
    - make_non_inheritable
    - _Py_EncodeLocaleRaw
    - PyMem_RawFree
    - wcstombs
    - _wfopen
    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:1764,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/fileutils.c:1766,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/cpython/Python/fileutils.c:1775,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/cpython/Python/fileutils.c:1779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1780,1
    - Dst: MultiByteToWideChar
      Src: /src/cpython/Python/fileutils.c:1786,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:1787,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:1789,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:1790,1
    - Dst: _wfopen
      Src: /src/cpython/Python/fileutils.c:1797,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1801,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:1803,1
    - Dst: PyUnicode_FSConverter
      Src: /src/cpython/Python/fileutils.c:1806,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/fileutils.c:1809,1
    - Dst: fopen
      Src: /src/cpython/Python/fileutils.c:1813,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/fileutils.c:1818,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/cpython/Python/fileutils.c:1827,1
    - Dst: set_inheritable
      Src: /src/cpython/Python/fileutils.c:1831,1
    - Dst: fileno
      Src: /src/cpython/Python/fileutils.c:1831,1
    - Dst: fclose
      Src: /src/cpython/Python/fileutils.c:1832,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1761
    functionDepth: 8
    functionLinenumber: 1761
    functionLinenumberEnd: 1836
    functionName: Py_fopen
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 19
    functionsReached:
    - fileno
    - PyErr_SetFromWindowsErr
    - fopen
    - PyBytes_AS_STRING
    - fclose
    - PySys_Audit
    - PyUnicode_FSDecoder
    - MultiByteToWideChar
    - Py_ARRAY_LENGTH
    - PyErr_CheckSignals
    - set_inheritable
    - _wfopen
    - PyMem_Free
    - PyUnicode_FSConverter
    - _Py_AssertHoldsTstate
    - PyErr_SetFromErrnoWithFilenameObject
    - Py_DECREF
    - 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:1847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1844
    functionDepth: 0
    functionLinenumber: 1844
    functionLinenumberEnd: 1848
    functionName: Py_fclose
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 6
    functionsReached:
    - fclose
    linkageType: ''
    returnType: int
    signature: int Py_fclose(FILE *file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/fileutils.c:1871,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:1876,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:1876,1
    - Dst: read
      Src: /src/cpython/Python/fileutils.c:1888,1
    - Dst: read
      Src: /src/cpython/Python/fileutils.c:1897,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1904,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:1911,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:1911,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:1915,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: 1875
        line_start: 1875
        source_file: /src/cpython/Python/fileutils.c
    - condition: (errno == EINTR && PyErr_Occurred())
      pos:
        line_end: 1910
        line_start: 1910
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1921
      start: 1864
    functionDepth: 2
    functionLinenumber: 1864
    functionLinenumberEnd: 1921
    functionName: _Py_read
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 6
    functionsReached:
    - assert
    - PyErr_CheckSignals
    - PyErr_Occurred
    - read
    - _Py_AssertHoldsTstate
    - PyErr_SetFromErrno
    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:1888,1
    - Dst: read
      Src: /src/cpython/Python/fileutils.c:1897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1882
    functionDepth: 0
    functionLinenumber: 1882
    functionLinenumberEnd: 1903
    functionName: do
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:1911,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:1911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (errno == EINTR && PyErr_Occurred())
      pos:
        line_end: 1910
        line_start: 1910
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1913
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1913
    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:1944,1
    - Dst: write
      Src: /src/cpython/Python/fileutils.c:1965,1
    - Dst: write
      Src: /src/cpython/Python/fileutils.c:1973,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/fileutils.c:1980,1
    - Dst: write
      Src: /src/cpython/Python/fileutils.c:1991,1
    - Dst: write
      Src: /src/cpython/Python/fileutils.c:1999,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2011,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:2011,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2016,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: 2010
        line_start: 2010
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2022
      start: 1923
    functionDepth: 2
    functionLinenumber: 1923
    functionLinenumberEnd: 2022
    functionName: _Py_write_impl
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - isatty
    - write
    - PyErr_Occurred
    - assert
    - PyErr_SetFromErrno
    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: 1941
      start: 1938
    functionDepth: 0
    functionLinenumber: 1938
    functionLinenumberEnd: 1941
    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:2011,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:2011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (errno == EINTR && (!gil_held || PyErr_Occurred()))
      pos:
        line_end: 2010
        line_start: 2010
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2013
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2013
    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:2037,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2042,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/fileutils.c:2042,1
    - Dst: _Py_write_impl
      Src: /src/cpython/Python/fileutils.c:2044,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: 2041
        line_start: 2041
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2045
      start: 2034
    functionDepth: 3
    functionLinenumber: 2034
    functionLinenumberEnd: 2045
    functionName: _Py_write
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 5
    functionsReached:
    - _Py_AssertHoldsTstate
    - _Py_write_impl
    - PyErr_Occurred
    - 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:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2054
    functionDepth: 3
    functionLinenumber: 2054
    functionLinenumberEnd: 2058
    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:2072,1
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/cpython/Python/fileutils.c:2077,1
    - Dst: readlink
      Src: /src/cpython/Python/fileutils.c:2082,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2083,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Python/fileutils.c:2092,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2099,1
    - Dst: wcsncpy
      Src: /src/cpython/Python/fileutils.c:2103,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2104,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: 2106
      start: 2067
    functionDepth: 6
    functionLinenumber: 2067
    functionLinenumberEnd: 2106
    functionName: _Py_wreadlink
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - Py_ARRAY_LENGTH
    - _Py_EncodeLocaleRaw
    - PyMem_RawFree
    - readlink
    - wcsncpy
    - Py_DecodeLocale
    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:2124,1
    - Dst: realpath
      Src: /src/cpython/Python/fileutils.c:2129,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2130,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Python/fileutils.c:2134,1
    - Dst: free
      Src: /src/cpython/Python/fileutils.c:2135,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2143,1
    - Dst: wcsncpy
      Src: /src/cpython/Python/fileutils.c:2147,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - path
    - resolved_path
    - resolved_path_len
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2150
      start: 2116
    functionDepth: 6
    functionLinenumber: 2116
    functionLinenumberEnd: 2150
    functionName: _Py_wrealpath
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - free
    - _Py_EncodeLocaleRaw
    - PyMem_RawFree
    - wcsncpy
    - Py_DecodeLocale
    - realpath
    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:2159,1
    - Dst: FAILED
      Src: /src/cpython/Python/fileutils.c:2160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2154
    functionDepth: 1
    functionLinenumber: 2154
    functionLinenumberEnd: 2175
    functionName: _Py_isabs
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - PathCchSkipRoot
    - FAILED
    linkageType: ''
    returnType: int
    signature: int _Py_isabs(const wchar_t *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/cpython/Python/fileutils.c:2186,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2188,1
    - Dst: _Py_wgetcwd
      Src: /src/cpython/Python/fileutils.c:2189,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2189,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:2193,1
    - Dst: _Py_isabs
      Src: /src/cpython/Python/fileutils.c:2197,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/cpython/Python/fileutils.c:2198,1
    - Dst: _PyOS_getfullpathname
      Src: /src/cpython/Python/fileutils.c:2203,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2206,1
    - Dst: _Py_wgetcwd
      Src: /src/cpython/Python/fileutils.c:2207,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2207,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2212,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2213,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:2216,1
    - Dst: memcpy
      Src: /src/cpython/Python/fileutils.c:2226,1
    - Dst: memcpy
      Src: /src/cpython/Python/fileutils.c:2232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - path
    - abspath_p
    argTypes:
    - wchar_t*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2183
    functionDepth: 2
    functionLinenumber: 2183
    functionLinenumberEnd: 2238
    functionName: _Py_abspath
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - wcslen
    - Py_ARRAY_LENGTH
    - _PyOS_getfullpathname
    - _Py_wgetcwd
    - _Py_isabs
    - PyMem_RawMalloc
    - memcpy
    - _PyMem_RawWcsdup
    - wcscmp
    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:2254,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/fileutils.c:2257,1
    - Dst: _PathCchSkipRoot
      Src: /src/cpython/Python/fileutils.c:2270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - path
    - rootEnd
    argTypes:
    - wchar_t*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2245
    functionDepth: 0
    functionLinenumber: 2245
    functionLinenumberEnd: 2271
    functionName: PathCchSkipRoot
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - GetProcAddress
    - _PathCchSkipRoot
    - LoadLibraryExW
    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:2286,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/fileutils.c:2289,1
    - Dst: _PathCchCombineEx
      Src: /src/cpython/Python/fileutils.c:2302,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: 2303
      start: 2273
    functionDepth: 0
    functionLinenumber: 2273
    functionLinenumberEnd: 2303
    functionName: PathCchCombineEx
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _PathCchCombineEx
    - GetProcAddress
    - LoadLibraryExW
    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:2311,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2312,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2316,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2320,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2320,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2335,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2336,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2340,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2344,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2351,1
    - Dst: IS_END
      Src: /src/cpython/Python/fileutils.c:2354,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2360,1
    - Dst: IS_END
      Src: /src/cpython/Python/fileutils.c:2364,1
    - Dst: IS_END
      Src: /src/cpython/Python/fileutils.c:2378,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2380,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: 2310
        line_start: 2310
        source_file: /src/cpython/Python/fileutils.c
    - condition: (rootsize)
      pos:
        line_end: 2311
        line_start: 2311
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2398
      start: 2307
    functionDepth: 1
    functionLinenumber: 2307
    functionLinenumberEnd: 2398
    functionName: _Py_skiproot
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - SEP_OR_END
    - IS_SEP
    - IS_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: 2315
      start: 2314
    functionDepth: 0
    functionLinenumber: 2314
    functionLinenumberEnd: 2315
    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: 2333
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2333
    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: 2334
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2334
    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: 2335
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2335
    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:2406,1
    - Dst: PathCchCombineEx
      Src: /src/cpython/Python/fileutils.c:2406,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2411,1
    - Dst: _Py_isabs
      Src: /src/cpython/Python/fileutils.c:2411,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2412,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2413,1
    - Dst: wcscpy
      Src: /src/cpython/Python/fileutils.c:2420,1
    - Dst: wcscpy
      Src: /src/cpython/Python/fileutils.c:2424,1
    - Dst: wcscpy
      Src: /src/cpython/Python/fileutils.c:2431,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: 2410
        line_start: 2410
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2435
      start: 2401
    functionDepth: 2
    functionLinenumber: 2401
    functionLinenumberEnd: 2435
    functionName: join_relfile
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - FAILED
    - wcscpy
    - _Py_isabs
    - PathCchCombineEx
    - assert
    - wcslen
    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:2443,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2445,1
    - Dst: _Py_isabs
      Src: /src/cpython/Python/fileutils.c:2445,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2447,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2447,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/fileutils.c:2449,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2453,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2453,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2454,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2454,1
    - Dst: wcslen
      Src: /src/cpython/Python/fileutils.c:2454,1
    - Dst: join_relfile
      Src: /src/cpython/Python/fileutils.c:2455,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2456,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: 2442
        line_start: 2442
        source_file: /src/cpython/Python/fileutils.c
    - condition: (!_Py_isabs(relfile))
      pos:
        line_end: 2444
        line_start: 2444
        source_file: /src/cpython/Python/fileutils.c
    - condition: (wcslen(dirname) < MAXPATHLEN)
      pos:
        line_end: 2452
        line_start: 2452
        source_file: /src/cpython/Python/fileutils.c
    - condition: (wcslen(relfile) < MAXPATHLEN - wcslen(dirname))
      pos:
        line_end: 2453
        line_start: 2453
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2460
      start: 2440
    functionDepth: 3
    functionLinenumber: 2440
    functionLinenumberEnd: 2460
    functionName: _Py_join_relfile
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - join_relfile
    - PyMem_RawFree
    - PyMem_RawMalloc
    - _Py_isabs
    - assert
    - wcslen
    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:2471,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2472,1
    - Dst: join_relfile
      Src: /src/cpython/Python/fileutils.c:2473,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: 2470
        line_start: 2470
        source_file: /src/cpython/Python/fileutils.c
    - condition: (bufsize > 0)
      pos:
        line_end: 2471
        line_start: 2471
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2474
      start: 2468
    functionDepth: 3
    functionLinenumber: 2468
    functionLinenumberEnd: 2474
    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:2480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2477
    functionDepth: 0
    functionLinenumber: 2477
    functionLinenumberEnd: 2486
    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:2497,1
    - Dst: _Py_skiproot
      Src: /src/cpython/Python/fileutils.c:2517,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2538,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2546,1
    - Dst: IS_END
      Src: /src/cpython/Python/fileutils.c:2552,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2561,1
    - Dst: SEP_OR_END
      Src: /src/cpython/Python/fileutils.c:2562,1
    - Dst: IS_SEP
      Src: /src/cpython/Python/fileutils.c:2568,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: 2496
        line_start: 2496
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2607
      start: 2494
    functionDepth: 2
    functionLinenumber: 2494
    functionLinenumberEnd: 2607
    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: 2509
      start: 2508
    functionDepth: 0
    functionLinenumber: 2508
    functionLinenumberEnd: 2509
    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: 2511
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2511
    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: 2513
      start: 2512
    functionDepth: 0
    functionLinenumber: 2512
    functionLinenumberEnd: 2513
    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: 2515
      start: 2514
    functionDepth: 0
    functionLinenumber: 2514
    functionLinenumberEnd: 2515
    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:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2614
    functionDepth: 3
    functionLinenumber: 2614
    functionLinenumberEnd: 2619
    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:2631,1
    - Dst: _wgetcwd
      Src: /src/cpython/Python/fileutils.c:2632,1
    - Dst: getcwd
      Src: /src/cpython/Python/fileutils.c:2638,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/fileutils.c:2638,1
    - Dst: Py_DecodeLocale
      Src: /src/cpython/Python/fileutils.c:2640,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2645,1
    - Dst: wcsncpy
      Src: /src/cpython/Python/fileutils.c:2648,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/fileutils.c:2649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2627
    functionDepth: 6
    functionLinenumber: 2627
    functionLinenumberEnd: 2652
    functionName: _Py_wgetcwd
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - _wgetcwd
    - getcwd
    - Py_ARRAY_LENGTH
    - Py_MIN
    - PyMem_RawFree
    - wcsncpy
    - Py_DecodeLocale
    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:2666,1
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Python/fileutils.c:2669,1
    - Dst: dup
      Src: /src/cpython/Python/fileutils.c:2675,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2679,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Python/fileutils.c:2683,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:2692,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2696,1
    - Dst: dup
      Src: /src/cpython/Python/fileutils.c:2703,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2707,1
    - Dst: _Py_set_inheritable
      Src: /src/cpython/Python/fileutils.c:2711,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2659
    functionDepth: 4
    functionLinenumber: 2659
    functionLinenumberEnd: 2723
    functionName: _Py_dup
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 6
    functionsReached:
    - _Py_set_inheritable
    - dup
    - fcntl
    - _Py_AssertHoldsTstate
    - PyErr_SetFromErrno
    - _Py_get_osfhandle
    linkageType: ''
    returnType: int
    signature: int _Py_dup(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:2734,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2729
    functionDepth: 1
    functionLinenumber: 2729
    functionLinenumberEnd: 2742
    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:2757,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:2763,1
    - Dst: fcntl
      Src: /src/cpython/Python/fileutils.c:2770,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2782,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - fd
    - blocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2750
    functionDepth: 1
    functionLinenumber: 2750
    functionLinenumberEnd: 2784
    functionName: _Py_set_blocking
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - ioctl
    - PyErr_SetFromErrno
    - 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:2801,1
    - Dst: GetProcAddress
      Src: /src/cpython/Python/fileutils.c:2803,1
    - Dst: SetLastError
      Src: /src/cpython/Python/fileutils.c:2813,1
    - Dst: _GetNamedPipeHandleStateW
      Src: /src/cpython/Python/fileutils.c:2817,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: 2820
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2820
    functionName: GetNamedPipeHandleStateW
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - SetLastError
    - GetProcAddress
    - LoadLibraryExW
    - _GetNamedPipeHandleStateW
    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:2830,1
    - Dst: GetNamedPipeHandleStateW
      Src: /src/cpython/Python/fileutils.c:2836,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:2841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2823
    functionDepth: 1
    functionLinenumber: 2823
    functionLinenumberEnd: 2846
    functionName: _Py_get_blocking
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - GetNamedPipeHandleStateW
    - PyErr_SetFromWindowsErr
    - _Py_get_osfhandle
    linkageType: ''
    returnType: int
    signature: int _Py_get_blocking(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_osfhandle
      Src: /src/cpython/Python/fileutils.c:2855,1
    - Dst: GetNamedPipeHandleStateW
      Src: /src/cpython/Python/fileutils.c:2861,1
    - Dst: SetNamedPipeHandleState
      Src: /src/cpython/Python/fileutils.c:2870,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/cpython/Python/fileutils.c:2875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - fd
    - blocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2848
    functionDepth: 1
    functionLinenumber: 2848
    functionLinenumberEnd: 2879
    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:2886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2889
    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:2894,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2891
    functionDepth: 1
    functionLinenumber: 2891
    functionLinenumberEnd: 2899
    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:2906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - handle
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2901
    functionDepth: 0
    functionLinenumber: 2901
    functionLinenumberEnd: 2909
    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:2914,1
    - Dst: PyErr_SetFromErrno
      Src: /src/cpython/Python/fileutils.c:2916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - handle
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2911
    functionDepth: 1
    functionLinenumber: 2911
    functionLinenumberEnd: 2919
    functionName: _Py_open_osfhandle
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - _Py_open_osfhandle_noraise
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int _Py_open_osfhandle(void *handle, int flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2926,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:2927,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:2931,1
    - Dst: strlen
      Src: /src/cpython/Python/fileutils.c:2934,1
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:2941,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/fileutils.c:2943,1
    - Dst: _PyMem_Strdup
      Src: /src/cpython/Python/fileutils.c:2948,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/fileutils.c:2950,1
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:2954,1
    - Dst: strcmp
      Src: /src/cpython/Python/fileutils.c:2955,1
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:2964,1
    - Dst: GET_LOCALE_STRING
      Src: /src/cpython/Python/fileutils.c:2976,1
    - Dst: GET_LOCALE_STRING
      Src: /src/cpython/Python/fileutils.c:2981,1
    - Dst: setlocale
      Src: /src/cpython/Python/fileutils.c:2991,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/fileutils.c:2993,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: 2925
        line_start: 2925
        source_file: /src/cpython/Python/fileutils.c
    - condition: (thousands_sep != NULL)
      pos:
        line_end: 2926
        line_start: 2926
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 2998
      start: 2922
    functionDepth: 3
    functionLinenumber: 2922
    functionLinenumberEnd: 2998
    functionName: _Py_GetLocaleconvNumeric
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - strcmp
    - _PyMem_Strdup
    - PyErr_NoMemory
    - assert
    - PyErr_SetString
    - GET_LOCALE_STRING
    - setlocale
    - strlen
    - PyMem_Free
    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: 2969
      start: 2968
    functionDepth: 0
    functionLinenumber: 2968
    functionLinenumberEnd: 2969
    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: 2972
      start: 2971
    functionDepth: 0
    functionLinenumber: 2971
    functionLinenumberEnd: 2972
    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:3031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - lohi
    - fd
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3020
    functionDepth: 0
    functionLinenumber: 3020
    functionLinenumberEnd: 3034
    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:3041,1
    - Dst: close_range
      Src: /src/cpython/Python/fileutils.c:3044,1
    - Dst: sysconf
      Src: /src/cpython/Python/fileutils.c:3053,1
    - Dst: closefrom
      Src: /src/cpython/Python/fileutils.c:3055,1
    - Dst: fdwalk
      Src: /src/cpython/Python/fileutils.c:3064,1
    - Dst: close
      Src: /src/cpython/Python/fileutils.c:3070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3038
    functionDepth: 1
    functionLinenumber: 3038
    functionLinenumberEnd: 3075
    functionName: _Py_closerange
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - close
    - closefrom
    - Py_MAX
    - close_range
    - fdwalk
    - sysconf
    linkageType: ''
    returnType: void
    signature: void _Py_closerange(int first, int last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/cpython/Python/fileutils.c:3085,1
    - Dst: assert
      Src: /src/cpython/Python/fileutils.c:3091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ticks_per_second
    argTypes:
    - long*
    assertStmts:
    - condition: (HZ >= 1)
      pos:
        line_end: 3090
        line_start: 3090
        source_file: /src/cpython/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 3098
      start: 3081
    functionDepth: 0
    functionLinenumber: 3081
    functionLinenumberEnd: 3098
    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:3130,1
    - Dst: dup
      Src: /src/cpython/Python/fileutils.c:3132,1
    - Dst: close
      Src: /src/cpython/Python/fileutils.c:3134,1
    - Dst: _get_osfhandle
      Src: /src/cpython/Python/fileutils.c:3140,1
    - Dst: GetFileType
      Src: /src/cpython/Python/fileutils.c:3143,1
    - Dst: fstat
      Src: /src/cpython/Python/fileutils.c:3146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3148
      start: 3104
    functionDepth: 0
    functionLinenumber: 3104
    functionLinenumberEnd: 3148
    functionName: _Py_IsValidFD
    functionSourceFile: /src/cpython/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - close
    - fcntl
    - dup
    - _get_osfhandle
    - GetFileType
    - fstat
    linkageType: ''
    returnType: int
    signature: int _Py_IsValidFD(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: MSG
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSG(...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/slots.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - kind
    argTypes:
    - _PySlot_KIND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: kind_name
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 2
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: char
    signature: 'char *

      kind_name(_PySlot_KIND kind)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:37,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:38,1
    - Dst: kind_name
      Src: /src/cpython/Python/slots.c:38,1
    - Dst: memset
      Src: /src/cpython/Python/slots.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - it
    - slots
    - result_kind
    - slot_struct_kind
    argTypes:
    - _PySlotIterator*
    - void*
    - _PySlot_KIND
    - _PySlot_KIND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: init_with_kind
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 0
    functionsReached:
    - MSG
    - memset
    - kind_name
    linkageType: ''
    returnType: void
    signature: "void init_with_kind(_PySlotIterator *it, const void *slots,\n               _PySlot_KIND
      result_kind,\n               _PySlot_KIND slot_struct_kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_with_kind
      Src: /src/cpython/Python/slots.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - it
    - slots
    - result_kind
    argTypes:
    - _PySlotIterator*
    - PySlot*
    - _PySlot_KIND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: _PySlotIterator_Init
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 2
    functionsReached:
    - init_with_kind
    linkageType: ''
    returnType: void
    signature: "void _PySlotIterator_Init(_PySlotIterator *it, const PySlot *slots,\n
      \                    _PySlot_KIND result_kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_with_kind
      Src: /src/cpython/Python/slots.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - it
    - slots
    - kind
    argTypes:
    - _PySlotIterator*
    - void*
    - _PySlot_KIND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: _PySlotIterator_InitLegacy
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 3
    functionsReached:
    - init_with_kind
    linkageType: ''
    returnType: void
    signature: "void _PySlotIterator_InitLegacy(_PySlotIterator *it, const void *slots,\n
      \                          _PySlot_KIND kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:68,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:69,1
    - Dst: kind_name
      Src: /src/cpython/Python/slots.c:69,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:70,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:71,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - it
    - slots
    argTypes:
    - _PySlotIterator*
    - void*
    assertStmts:
    - condition: (it->is_at_end)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/cpython/Python/slots.c
    - condition: (it->recursion_level == 0)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/cpython/Python/slots.c
    - condition: (it->state == it->states)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/cpython/Python/slots.c
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: _PySlotIterator_Rewind
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 1
    functionsReached:
    - assert
    - MSG
    - kind_name
    linkageType: ''
    returnType: void
    signature: void _PySlotIterator_Rewind(_PySlotIterator *it, const void *slots)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: seen_index
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t seen_index(uint16_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: seen_mask
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int seen_mask(uint16_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/slots.c:93,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:94,1
    - Dst: seen_index
      Src: /src/cpython/Python/slots.c:95,1
    - Dst: seen_mask
      Src: /src/cpython/Python/slots.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - it
    - id
    argTypes:
    - _PySlotIterator*
    - int
    assertStmts:
    - condition: (id > 0)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/cpython/Python/slots.c
    - condition: (id < _Py_slot_COUNT)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/cpython/Python/slots.c
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: _PySlotIterator_SawSlot
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 2
    functionsReached:
    - seen_index
    - seen_mask
    - assert
    linkageType: ''
    returnType: bool
    signature: bool _PySlotIterator_SawSlot(_PySlotIterator *it, int id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:102,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/slots.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - it
    argTypes:
    - _PySlotIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: advance
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 7
    functionsReached:
    - Py_UNREACHABLE
    - MSG
    linkageType: ''
    returnType: void
    signature: void advance(_PySlotIterator *it)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:117,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:118,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:119,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:120,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/slots.c:120,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:127,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:131,1
    - Dst: advance
      Src: /src/cpython/Python/slots.c:134,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:140,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:144,1
    - Dst: memset
      Src: /src/cpython/Python/slots.c:145,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:151,1
    - Dst: memset
      Src: /src/cpython/Python/slots.c:152,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/slots.c:158,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:166,1
    - Dst: _PySlot_resolve_type_slot
      Src: /src/cpython/Python/slots.c:172,1
    - Dst: _PySlot_resolve_mod_slot
      Src: /src/cpython/Python/slots.c:175,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/slots.c:178,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:180,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:181,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:184,1
    - Dst: advance
      Src: /src/cpython/Python/slots.c:186,1
    - Dst: _PySlot_err_bad_slot
      Src: /src/cpython/Python/slots.c:189,1
    - Dst: kind_name
      Src: /src/cpython/Python/slots.c:189,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:193,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:195,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/slots.c:196,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:210,1
    - Dst: advance
      Src: /src/cpython/Python/slots.c:211,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/slots.c:218,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:223,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:225,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/slots.c:226,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:228,1
    - Dst: memset
      Src: /src/cpython/Python/slots.c:232,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:246,1
    - Dst: _PySlot_get_dtype
      Src: /src/cpython/Python/slots.c:248,1
    - Dst: advance
      Src: /src/cpython/Python/slots.c:265,1
    - Dst: _PySlot_get_dtype
      Src: /src/cpython/Python/slots.c:266,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:269,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:270,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:274,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:275,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:279,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:280,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:284,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:285,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:289,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:290,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:295,1
    - Dst: assert
      Src: /src/cpython/Python/slots.c:296,1
    - Dst: handle_first_run
      Src: /src/cpython/Python/slots.c:297,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/slots.c:302,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 167
    argCount: 1
    argNames:
    - it
    argTypes:
    - _PySlotIterator*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/cpython/Python/slots.c
    - condition: (!it->is_at_end)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/cpython/Python/slots.c
    - condition: (result->sl_id > 0)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Python/slots.c
    - condition: (result->sl_id <= _Py_slot_COUNT)
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/cpython/Python/slots.c
    - condition: (it)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/cpython/Python/slots.c
    constantsTouched: []
    func_position:
      end: 307
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 307
    functionName: _PySlotIterator_Next
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 3
    functionsReached:
    - _PySlot_get_dtype
    - _PySlot_err_bad_slot
    - _PySlot_GetName
    - Py_UNREACHABLE
    - MSG
    - _PySlot_resolve_type_slot
    - memset
    - _PySlot_resolve_mod_slot
    - PyErr_Occurred
    - assert
    - PyErr_Format
    - handle_first_run
    - advance
    - kind_name
    linkageType: ''
    returnType: bool
    signature: bool _PySlotIterator_Next(_PySlotIterator *it)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PySlot_get_must_be_static
      Src: /src/cpython/Python/slots.c:315,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/slots.c:319,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:322,1
    - Dst: _PySlot_get_null_handling
      Src: /src/cpython/Python/slots.c:327,1
    - Dst: _PySlot_get_dtype
      Src: /src/cpython/Python/slots.c:330,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:342,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:344,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/slots.c:345,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:347,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:351,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/slots.c:352,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:356,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:362,1
    - Dst: _PySlot_get_duplicate_handling
      Src: /src/cpython/Python/slots.c:367,1
    - Dst: _PySlotIterator_SawSlot
      Src: /src/cpython/Python/slots.c:369,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:370,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:372,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/slots.c:373,1
    - Dst: kind_name
      Src: /src/cpython/Python/slots.c:376,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:379,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:384,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/slots.c:385,1
    - Dst: kind_name
      Src: /src/cpython/Python/slots.c:389,1
    - Dst: _PySlot_GetName
      Src: /src/cpython/Python/slots.c:392,1
    - Dst: MSG
      Src: /src/cpython/Python/slots.c:398,1
    - Dst: seen_index
      Src: /src/cpython/Python/slots.c:402,1
    - Dst: seen_mask
      Src: /src/cpython/Python/slots.c:402,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - it
    argTypes:
    - _PySlotIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 404
    functionName: handle_first_run
    functionSourceFile: /src/cpython/Python/slots.c
    functionUses: 1
    functionsReached:
    - _PySlot_get_must_be_static
    - _PySlotIterator_SawSlot
    - _PySlot_get_dtype
    - _PySlot_GetName
    - _PySlot_get_duplicate_handling
    - _PySlot_get_null_handling
    - PyErr_WarnFormat
    - seen_index
    - MSG
    - seen_mask
    - PyErr_Format
    - kind_name
    linkageType: ''
    returnType: int
    signature: int handle_first_run(_PySlotIterator *it)
  - 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:
    - WaitForSingleObjectEx
    - PyMUTEX_UNLOCK
    - 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: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    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: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    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:100,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: 99
        line_start: 99
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    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:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - worklist
    argTypes:
    - struct worklist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 114
    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: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    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: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    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: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    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: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    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: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    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:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    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:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    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:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    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:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 188
    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:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    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:202,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:203,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:203,1
    - Dst: gc_set_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!gc_is_alive(op))
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: gc_maybe_init_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - assert
    - gc_is_alive
    - gc_set_unreachable
    - gc_is_unreachable
    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: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    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:218,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:218,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: 217
        line_start: 217
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    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: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    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:231,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/gc_free_threading.c:231,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:233,1
    - Dst: _Py_AddRefTotal
      Src: /src/cpython/Python/gc_free_threading.c:237,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:237,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Python/gc_free_threading.c:243,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: 230
        line_start: 230
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 245
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 245
    functionName: merge_refcount
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET
    - Py_REFCNT
    - _PyThreadState_GET
    - _Py_AddRefTotal
    - _Py_REF_SHARED
    - 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:252,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:253,1
    - Dst: PyStackRef_AsStrongReference
      Src: /src/cpython/Python/gc_free_threading.c:256,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/gc_free_threading.c:259,1
    - Dst: PyStackRef_AsStrongReference
      Src: /src/cpython/Python/gc_free_threading.c:267,1
    - Dst: PyStackRef_IsNullOrInt
      Src: /src/cpython/Python/gc_free_threading.c:269,1
    - Dst: PyStackRef_RefcountOnObject
      Src: /src/cpython/Python/gc_free_threading.c:269,1
    - Dst: PyStackRef_AsStrongReference
      Src: /src/cpython/Python/gc_free_threading.c:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - frame
    argTypes:
    - _PyInterpreterFrame*
    assertStmts:
    - condition: (frame->stackpointer != NULL)
      pos:
        line_end: 251
        line_start: 251
        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: 253
        line_start: 252
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 273
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 273
    functionName: frame_disable_deferred_refcounting
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyGen_GetGeneratorFromFrame
    - PyStackRef_AsStrongReference
    - assert
    - PyStackRef_RefcountOnObject
    - PyStackRef_IsNullOrInt
    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:278,1
    - Dst: _Py_REF_SHARED
      Src: /src/cpython/Python/gc_free_threading.c:280,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:281,1
    - Dst: _PyObject_DisablePerThreadRefcounting
      Src: /src/cpython/Python/gc_free_threading.c:285,1
    - Dst: PyGen_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:293,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:293,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:293,1
    - Dst: frame_disable_deferred_refcounting
      Src: /src/cpython/Python/gc_free_threading.c:294,1
    - Dst: PyFrame_Check
      Src: /src/cpython/Python/gc_free_threading.c:296,1
    - Dst: frame_disable_deferred_refcounting
      Src: /src/cpython/Python/gc_free_threading.c:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 299
    functionName: disable_deferred_refcounting
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - PyCoro_CheckExact
    - _PyObject_HasDeferredRefcount
    - merge_refcount
    - PyFrame_Check
    - PyAsyncGen_CheckExact
    - _Py_REF_SHARED
    - PyGen_CheckExact
    - _PyObject_DisablePerThreadRefcounting
    - frame_disable_deferred_refcounting
    linkageType: ''
    returnType: void
    signature: void disable_deferred_refcounting(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:304,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/gc_free_threading.c:304,1
    - Dst: _mi_ptr_segment
      Src: /src/cpython/Python/gc_free_threading.c:305,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Python/gc_free_threading.c:306,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyInterpreterState_GET()->stoptheworld.world_stopped)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 319
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 319
    functionName: gc_restore_tid
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_REF_IS_MERGED
    - merge_refcount
    - _PyInterpreterState_GET
    - assert
    - _mi_ptr_segment
    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:324,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:325,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:325,1
    - Dst: gc_restore_tid
      Src: /src/cpython/Python/gc_free_threading.c:326,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:327,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!gc_is_alive(op))
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: gc_restore_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_clear_unreachable
    - gc_is_unreachable
    - gc_clear_alive
    - assert
    - gc_is_alive
    - gc_restore_tid
    linkageType: ''
    returnType: void
    signature: void gc_restore_refs(PyObject *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:344,1
    - Dst: PyObject_IS_GC
      Src: /src/cpython/Python/gc_free_threading.c:344,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:345,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:348,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: 343
        line_start: 343
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: op_from_block
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_frozen
    - _PyObject_GC_IS_TRACKED
    - PyObject_IS_GC
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      op_from_block(void *block, void *arg, bool include_frozen)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:363,1
    - Dst: PyObject_IS_GC
      Src: /src/cpython/Python/gc_free_threading.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - block
    - arg
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (PyObject_IS_GC(op))
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: op_from_block_all_gc
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyObject_IS_GC
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      op_from_block_all_gc(void *block, void *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugEnabled
      Src: /src/cpython/Python/gc_free_threading.c:373,1
    - Dst: _Py_atomic_load_int
      Src: /src/cpython/Python/gc_free_threading.c:384,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:390,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:395,1
    - Dst: _mi_abandoned_pool_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:404,1
    - Dst: _mi_abandoned_pool_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:409,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: 414
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 414
    functionName: gc_visit_heaps_lock_held
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _mi_abandoned_pool_visit_blocks
    - mi_heap_visit_blocks
    - _Py_atomic_load_int
    - _PyMem_DebugEnabled
    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:384,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:390,1
    - Dst: mi_heap_visit_blocks
      Src: /src/cpython/Python/gc_free_threading.c:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 399
    functionName: _Py_FOR_EACH_TSTATE_UNLOCKED
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - mi_heap_visit_blocks
    - _Py_atomic_load_int
    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:425,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/gc_free_threading.c:428,1
    - Dst: gc_visit_heaps_lock_held
      Src: /src/cpython/Python/gc_free_threading.c:429,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/gc_free_threading.c:430,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: 424
        line_start: 424
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 432
      start: 419
    functionDepth: 5
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: gc_visit_heaps
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_heaps_lock_held
    - HEAD_LOCK
    - HEAD_UNLOCK
    - assert
    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_IsNullOrInt
      Src: /src/cpython/Python/gc_free_threading.c:437,1
    - Dst: PyStackRef_RefcountOnObject
      Src: /src/cpython/Python/gc_free_threading.c:437,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc_free_threading.c:438,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:439,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:439,1
    - Dst: gc_add_refs
      Src: /src/cpython/Python/gc_free_threading.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - stackref
    argTypes:
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 443
    functionName: gc_visit_stackref
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_frozen
    - PyStackRef_AsPyObjectBorrow
    - gc_add_refs
    - PyStackRef_RefcountOnObject
    - _PyObject_GC_IS_TRACKED
    - PyStackRef_IsNullOrInt
    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:452,1
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:470,1
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:473,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - interp
    - state
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 478
    functionName: gc_visit_thread_stacks
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_FOR_EACH_TSTATE_END
    - gc_visit_stackref
    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:452,1
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:470,1
    - Dst: gc_visit_stackref
      Src: /src/cpython/Python/gc_free_threading.c:473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 476
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/gc_free_threading.c:485,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:492,1
    - Dst: _PyTuple_MaybeUntrack
      Src: /src/cpython/Python/gc_free_threading.c:493,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 499
    functionName: gc_maybe_untrack
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyTuple_MaybeUntrack
    - _PyObject_GC_IS_TRACKED
    - _PyObject_HasDeferredRefcount
    - 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: 547
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 547
    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: 548
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 548
    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: 549
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 549
    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: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    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: 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: 557
    functionDepth: 0
    functionLinenumber: 557
    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: 561
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 561
    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: 563
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 563
    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: 565
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 565
    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: 567
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 567
    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: 568
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 568
    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: 568
    functionDepth: 0
    functionLinenumber: 568
    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: 570
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 570
    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: 574
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 574
    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: 605
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 605
    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:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 613
    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: 620
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 620
    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:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 626
    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:631,1
    - Dst: gc_mark_buffer_is_empty
      Src: /src/cpython/Python/gc_free_threading.c:631,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: 630
        line_start: 630
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 635
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 635
    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:642,1
    - Dst: gc_mark_buffer_is_full
      Src: /src/cpython/Python/gc_free_threading.c:642,1
    - Dst: prefetch
      Src: /src/cpython/Python/gc_free_threading.c:643,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: 641
        line_start: 641
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 646
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 646
    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:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ms
    - op
    argTypes:
    - _PyObjectStack*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 657
    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:672,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:678,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: 677
        line_start: 677
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 683
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 683
    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:691,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:694,1
    - Dst: gc_maybe_untrack
      Src: /src/cpython/Python/gc_free_threading.c:697,1
    - Dst: gc_set_alive
      Src: /src/cpython/Python/gc_free_threading.c:703,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 708
    functionName: gc_mark_enqueue_no_buffer
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_maybe_untrack
    - gc_has_bit
    - gc_set_alive
    - _PyObjectStack_Push
    - gc_is_alive
    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:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 710
    functionDepth: 4
    functionLinenumber: 710
    functionLinenumberEnd: 714
    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:719,1
    - Dst: gc_mark_buffer_is_full
      Src: /src/cpython/Python/gc_free_threading.c:720,1
    - Dst: gc_mark_buffer_push
      Src: /src/cpython/Python/gc_free_threading.c:721,1
    - Dst: gc_mark_stack_push
      Src: /src/cpython/Python/gc_free_threading.c:725,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: 718
        line_start: 718
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 727
      start: 716
    functionDepth: 3
    functionLinenumber: 716
    functionLinenumberEnd: 727
    functionName: gc_mark_enqueue_buffer
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_buffer_push
    - gc_mark_buffer_is_full
    - gc_mark_stack_push
    - assert
    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:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 733
    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:741,1
    - Dst: gc_mark_enqueue_no_buffer
      Src: /src/cpython/Python/gc_free_threading.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - args
    argTypes:
    - PyObject*
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 737
    functionDepth: 4
    functionLinenumber: 737
    functionLinenumberEnd: 746
    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:757,1
    - Dst: gc_mark_buffer_push
      Src: /src/cpython/Python/gc_free_threading.c:765,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:769,1
    - Dst: gc_mark_span_push
      Src: /src/cpython/Python/gc_free_threading.c:771,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: 768
        line_start: 768
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 776
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 776
    functionName: gc_mark_enqueue_span
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_buffer_len
    - gc_mark_span_push
    - gc_mark_buffer_push
    - assert
    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:782,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:786,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:787,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: 790
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 790
    functionName: gc_clear_alive_bits
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - op_from_block
    - gc_clear_alive
    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:799,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 792
    functionDepth: 4
    functionLinenumber: 792
    functionLinenumberEnd: 803
    functionName: gc_mark_traverse_list
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - gc_mark_enqueue_span
    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:808,1
    - Dst: gc_has_bit
      Src: /src/cpython/Python/gc_free_threading.c:809,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:810,1
    - Dst: _PyTuple_CAST
      Src: /src/cpython/Python/gc_free_threading.c:813,1
    - Dst: gc_mark_enqueue_span
      Src: /src/cpython/Python/gc_free_threading.c:814,1
    - Dst: Py_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 805
    functionDepth: 4
    functionLinenumber: 805
    functionLinenumberEnd: 818
    functionName: gc_mark_traverse_tuple
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyTuple_MaybeUntrack
    - Py_SIZE
    - gc_mark_enqueue_span
    - gc_has_bit
    - gc_clear_alive
    - _PyTuple_CAST
    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:828,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/gc_free_threading.c:830,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:832,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: 833
      start: 820
    functionDepth: 6
    functionLinenumber: 820
    functionLinenumberEnd: 833
    functionName: gc_abort_mark_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_heaps
    - _PyObjectStack_Clear
    - PyMem_Free
    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:839,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc_free_threading.c:840,1
    - Dst: gc_mark_enqueue
      Src: /src/cpython/Python/gc_free_threading.c:841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - args
    - stackref
    argTypes:
    - gc_mark_args_t*
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 836
    functionDepth: 5
    functionLinenumber: 836
    functionLinenumberEnd: 846
    functionName: gc_visit_stackref_mark_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - gc_mark_enqueue
    - PyStackRef_IsNullOrInt
    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:866,1
    - Dst: gc_visit_stackref_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:872,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:880,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - interp
    - args
    argTypes:
    - PyInterpreterState*
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 848
    functionDepth: 6
    functionLinenumber: 848
    functionLinenumberEnd: 882
    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:866,1
    - Dst: gc_visit_stackref_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:872,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 852
    functionDepth: 6
    functionLinenumber: 852
    functionLinenumberEnd: 878
    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: assert
      Src: /src/cpython/Python/gc_free_threading.c:889,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:889,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:893,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:893,1
    - Dst: _Py_IncRefTotal
      Src: /src/cpython/Python/gc_free_threading.c:900,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:900,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - op
    - state
    argTypes:
    - PyObject*
    - struct collection_state*
    assertStmts:
    - condition: (Py_REFCNT(op) == 0)
      pos:
        line_end: 888
        line_start: 888
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 905
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 905
    functionName: queue_untracked_obj_decref
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_IncRefTotal
    - gc_is_frozen
    - worklist_push
    - Py_REFCNT
    - _PyThreadState_GET
    - assert
    - _PyObject_GC_IS_TRACKED
    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:911,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:914,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:916,1
    - Dst: queue_untracked_obj_decref
      Src: /src/cpython/Python/gc_free_threading.c:919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tstate
    - state
    argTypes:
    - _PyThreadStateImpl*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 907
    functionDepth: 4
    functionLinenumber: 907
    functionLinenumberEnd: 922
    functionName: merge_queued_objects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _PyObjectStack_Merge
    - _PyObjectStack_Pop
    - queue_untracked_obj_decref
    - merge_refcount
    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:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 924
    functionDepth: 4
    functionLinenumber: 924
    functionLinenumberEnd: 928
    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:935,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:936,1
    - Dst: _Py_qsbr_quiescent_state
      Src: /src/cpython/Python/gc_free_threading.c:937,1
    - Dst: llist_concat
      Src: /src/cpython/Python/gc_free_threading.c:944,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:947,1
    - Dst: _PyMem_ProcessDelayedNoDealloc
      Src: /src/cpython/Python/gc_free_threading.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - interp
    - state
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 930
    functionDepth: 9
    functionLinenumber: 930
    functionLinenumberEnd: 950
    functionName: process_delayed_frees
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_qsbr_quiescent_state
    - _Py_FOR_EACH_TSTATE_END
    - _PyMem_ProcessDelayedNoDealloc
    - _PyThreadState_GET
    - llist_concat
    - _Py_qsbr_advance
    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:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 946
    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:956,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc_free_threading.c:957,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:958,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:959,1
    - Dst: gc_maybe_init_refs
      Src: /src/cpython/Python/gc_free_threading.c:963,1
    - Dst: gc_decref
      Src: /src/cpython/Python/gc_free_threading.c:964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 967
    functionName: visit_decref
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_maybe_init_refs
    - gc_decref
    - gc_is_frozen
    - gc_is_alive
    - _Py_IsImmortal
    - _PyObject_GC_IS_TRACKED
    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: _Py_IsImmortal
      Src: /src/cpython/Python/gc_free_threading.c:983,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc_free_threading.c:985,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:986,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:991,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:995,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/gc_free_threading.c:996,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:999,1
    - Dst: gc_maybe_untrack
      Src: /src/cpython/Python/gc_free_threading.c:1002,1
    - Dst: gc_restore_refs
      Src: /src/cpython/Python/gc_free_threading.c:1003,1
    - Dst: gc_maybe_init_refs
      Src: /src/cpython/Python/gc_free_threading.c:1013,1
    - Dst: gc_add_refs
      Src: /src/cpython/Python/gc_free_threading.c:1016,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1021,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    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: 1023
      start: 972
    functionDepth: 6
    functionLinenumber: 972
    functionLinenumberEnd: 1023
    functionName: update_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_maybe_init_refs
    - gc_maybe_untrack
    - _PyObject_ASSERT
    - _PyObject_HasDeferredRefcount
    - gc_clear_unreachable
    - op_from_block
    - Py_REFCNT
    - gc_add_refs
    - _Py_IsImmortal
    - _PyObject_GC_UNTRACK
    - gc_is_alive
    - gc_restore_refs
    - Py_TYPE
    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:1028,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1029,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1029,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1030,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:1031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - stack
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1034
    functionName: visit_clear_unreachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - gc_clear_unreachable
    - gc_is_unreachable
    - _PyObjectStack_Push
    - _PyObject_GC_IS_TRACKED
    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:1042,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:1043,1
    - Dst: _PyObjectStack_Clear
      Src: /src/cpython/Python/gc_free_threading.c:1044,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1050
    functionName: mark_reachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Pop
    - _PyObjectStack_Clear
    - Py_TYPE
    - traverse
    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:1057,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1062,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1062,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: 1066
      start: 1053
    functionDepth: 3
    functionLinenumber: 1053
    functionLinenumberEnd: 1066
    functionName: validate_alive_bits
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_is_alive
    - op_from_block
    - _PyObject_ASSERT_WITH_MSG
    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:1072,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1082,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:1082,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1085,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1085,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Python/gc_free_threading.c:1088,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1089,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/gc_free_threading.c:1092,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1093,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: 1098
      start: 1068
    functionDepth: 3
    functionLinenumber: 1068
    functionLinenumberEnd: 1098
    functionName: validate_refcounts
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_REF_IS_MERGED
    - op_from_block
    - gc_is_unreachable
    - Py_REFCNT
    - _Py_IsImmortal
    - _PyObject_ASSERT_WITH_MSG
    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:1104,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1109,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1110,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1110,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1114,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1114,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1115,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc_free_threading.c:1115,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: 1118
      start: 1100
    functionDepth: 3
    functionLinenumber: 1100
    functionLinenumberEnd: 1118
    functionName: validate_gc_objects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - op_from_block
    - gc_is_unreachable
    - _PyObject_ASSERT_WITH_MSG
    - gc_get_refs
    - gc_is_alive
    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:1125,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1130,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1130,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/cpython/Python/gc_free_threading.c:1135,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc_free_threading.c:1135,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/gc_free_threading.c:1144,1
    - Dst: gc_get_refs
      Src: /src/cpython/Python/gc_free_threading.c:1146,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1150,1
    - Dst: mark_reachable
      Src: /src/cpython/Python/gc_free_threading.c:1153,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: 1159
      start: 1121
    functionDepth: 3
    functionLinenumber: 1121
    functionLinenumberEnd: 1159
    functionName: mark_heap_visitor
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - mark_reachable
    - _PyObject_HasDeferredRefcount
    - op_from_block
    - gc_clear_unreachable
    - gc_is_unreachable
    - _PyObject_ASSERT_WITH_MSG
    - gc_get_refs
    - gc_is_alive
    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:1165,1
    - Dst: gc_restore_tid
      Src: /src/cpython/Python/gc_free_threading.c:1169,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1170,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:1171,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: 1173
      start: 1161
    functionDepth: 5
    functionLinenumber: 1161
    functionLinenumberEnd: 1173
    functionName: restore_refs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_clear_unreachable
    - op_from_block
    - gc_clear_alive
    - gc_restore_tid
    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:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1180
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: op_from_block_all_gc
      Src: /src/cpython/Python/gc_free_threading.c:1186,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1196,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:1196,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1200,1
    - Dst: disable_deferred_refcounting
      Src: /src/cpython/Python/gc_free_threading.c:1203,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:1207,1
    - Dst: has_legacy_finalizer
      Src: /src/cpython/Python/gc_free_threading.c:1209,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1211,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1212,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1215,1
    - Dst: disable_deferred_refcounting
      Src: /src/cpython/Python/gc_free_threading.c:1227,1
    - Dst: gc_restore_tid
      Src: /src/cpython/Python/gc_free_threading.c:1231,1
    - Dst: gc_clear_alive
      Src: /src/cpython/Python/gc_free_threading.c:1232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    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: 1234
      start: 1182
    functionDepth: 5
    functionLinenumber: 1182
    functionLinenumberEnd: 1234
    functionName: scan_heap_visitor
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - disable_deferred_refcounting
    - merge_refcount
    - gc_clear_unreachable
    - gc_is_unreachable
    - gc_is_frozen
    - worklist_push
    - op_from_block_all_gc
    - has_legacy_finalizer
    - gc_clear_alive
    - _PyObject_GC_IS_TRACKED
    - gc_restore_tid
    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:1244,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1246,1
    - Dst: gc_mark_buffer_avail
      Src: /src/cpython/Python/gc_free_threading.c:1246,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1247,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1250,1
    - Dst: gc_mark_buffer_push
      Src: /src/cpython/Python/gc_free_threading.c:1255,1
    - Dst: gc_mark_span_push
      Src: /src/cpython/Python/gc_free_threading.c:1259,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: 1249
        line_start: 1249
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (space <= gc_mark_buffer_avail(args))
      pos:
        line_end: 1245
        line_start: 1245
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (space <= BUFFER_HI)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1264
      start: 1241
    functionDepth: 3
    functionLinenumber: 1241
    functionLinenumberEnd: 1264
    functionName: gc_prime_from_spans
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_mark_buffer_avail
    - gc_mark_span_push
    - gc_mark_buffer_push
    - assert
    - gc_mark_buffer_len
    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:1270,1
    - Dst: gc_mark_buffer_len
      Src: /src/cpython/Python/gc_free_threading.c:1277,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1278,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:1280,1
    - Dst: gc_mark_buffer_push
      Src: /src/cpython/Python/gc_free_threading.c:1284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts:
    - condition: (space > 0)
      pos:
        line_end: 1277
        line_start: 1277
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1288
      start: 1266
    functionDepth: 4
    functionLinenumber: 1266
    functionLinenumberEnd: 1288
    functionName: gc_prime_buffer
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Pop
    - gc_mark_buffer_push
    - gc_prime_from_spans
    - assert
    - gc_mark_buffer_len
    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:1294,1
    - Dst: gc_prime_buffer
      Src: /src/cpython/Python/gc_free_threading.c:1301,1
    - Dst: gc_mark_buffer_is_empty
      Src: /src/cpython/Python/gc_free_threading.c:1302,1
    - Dst: gc_mark_buffer_pop
      Src: /src/cpython/Python/gc_free_threading.c:1306,1
    - Dst: gc_has_bit
      Src: /src/cpython/Python/gc_free_threading.c:1308,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1312,1
    - Dst: gc_set_alive
      Src: /src/cpython/Python/gc_free_threading.c:1318,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1320,1
    - Dst: gc_mark_traverse_list
      Src: /src/cpython/Python/gc_free_threading.c:1322,1
    - Dst: gc_mark_traverse_tuple
      Src: /src/cpython/Python/gc_free_threading.c:1327,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:1331,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - args
    argTypes:
    - gc_mark_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1290
    functionDepth: 5
    functionLinenumber: 1290
    functionLinenumberEnd: 1335
    functionName: gc_propagate_alive_prefetch
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_prime_buffer
    - gc_mark_traverse_tuple
    - gc_mark_traverse_list
    - gc_has_bit
    - gc_is_alive
    - gc_set_alive
    - gc_mark_buffer_len
    - gc_mark_buffer_is_empty
    - gc_mark_buffer_pop
    - Py_TYPE
    - traverse
    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:1341,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:1345,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1349,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1349,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1350,1
    - Dst: gc_is_alive
      Src: /src/cpython/Python/gc_free_threading.c:1350,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1351,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:1352,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: 1349
        line_start: 1349
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (_PyObject_GC_IS_TRACKED(op))
      pos:
        line_end: 1348
        line_start: 1348
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1358
      start: 1337
    functionDepth: 6
    functionLinenumber: 1337
    functionLinenumberEnd: 1358
    functionName: gc_propagate_alive
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_IS_TRACKED
    - _PyObjectStack_Pop
    - assert
    - gc_propagate_alive_prefetch
    - gc_is_alive
    - Py_TYPE
    - traverse
    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:1382,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1401,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1403,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1404,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1407,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1408,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1411,1
    - Dst: MARK_ENQUEUE
      Src: /src/cpython/Python/gc_free_threading.c:1412,1
    - Dst: gc_visit_thread_stacks_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:1416,1
    - Dst: gc_abort_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:1417,1
    - Dst: gc_propagate_alive
      Src: /src/cpython/Python/gc_free_threading.c:1424,1
    - Dst: gc_abort_mark_alive
      Src: /src/cpython/Python/gc_free_threading.c:1425,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1429,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/gc_free_threading.c:1431,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - interp
    - state
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    assertStmts:
    - condition: (mark_args.stack.head == NULL)
      pos:
        line_end: 1432
        line_start: 1432
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (mark_args.spans.size == 0)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1436
      start: 1376
    functionDepth: 7
    functionLinenumber: 1376
    functionLinenumberEnd: 1436
    functionName: gc_mark_alive_from_roots
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_thread_stacks_mark_alive
    - MARK_ENQUEUE
    - gc_abort_mark_alive
    - PyMem_Free
    - assert
    - gc_visit_heaps
    - gc_propagate_alive
    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: 1401
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1401
    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:1447,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1452,1
    - Dst: gc_visit_thread_stacks
      Src: /src/cpython/Python/gc_free_threading.c:1456,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1460,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1462,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:1468,1
    - Dst: move_legacy_finalizer_reachable
      Src: /src/cpython/Python/gc_free_threading.c:1473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - interp
    - state
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1440
    functionDepth: 6
    functionLinenumber: 1440
    functionLinenumberEnd: 1479
    functionName: deduce_unreachable_heap
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - gc_visit_heaps
    - move_legacy_finalizer_reachable
    - gc_visit_thread_stacks
    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:1487,1
    - Dst: mark_reachable
      Src: /src/cpython/Python/gc_free_threading.c:1488,1
    - Dst: WORKSTACK_FOR_EACH_ITER
      Src: /src/cpython/Python/gc_free_threading.c:1496,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1497,1
    - Dst: worklist_remove
      Src: /src/cpython/Python/gc_free_threading.c:1498,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1481
    functionDepth: 2
    functionLinenumber: 1481
    functionLinenumberEnd: 1504
    functionName: move_legacy_finalizer_reachable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - gc_is_unreachable
    - worklist_remove
    - WORKSTACK_FOR_EACH
    - worklist_push
    - mark_reachable
    - WORKSTACK_FOR_EACH_ITER
    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:1548,1
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Python/gc_free_threading.c:1549,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1549,1
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Python/gc_free_threading.c:1555,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1572,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc_free_threading.c:1573,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1574,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1582,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:1588,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1591,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1544
    functionDepth: 4
    functionLinenumber: 1544
    functionLinenumberEnd: 1594
    functionName: find_weakref_callbacks
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - merge_refcount
    - gc_is_unreachable
    - _PyWeakref_ClearRef
    - WORKSTACK_FOR_EACH
    - worklist_push
    - _PyType_SUPPORTS_WEAKREFS
    - Py_TYPE
    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:1602,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Python/gc_free_threading.c:1603,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc_free_threading.c:1605,1
    - Dst: _PyType_SUPPORTS_WEAKREFS
      Src: /src/cpython/Python/gc_free_threading.c:1608,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1608,1
    - Dst: _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
      Src: /src/cpython/Python/gc_free_threading.c:1614,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1622,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/cpython/Python/gc_free_threading.c:1623,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1598
    functionDepth: 3
    functionLinenumber: 1598
    functionLinenumberEnd: 1627
    functionName: clear_weakrefs
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET
    - _PyObject_ASSERT
    - _PyWeakref_ClearRef
    - WORKSTACK_FOR_EACH
    - _PyType_SUPPORTS_WEAKREFS
    - PyWeakref_Check
    - Py_TYPE
    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:1634,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1635,1
    - Dst: PyWeakref_Check
      Src: /src/cpython/Python/gc_free_threading.c:1635,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1639,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/gc_free_threading.c:1642,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1629
    functionDepth: 2
    functionLinenumber: 1629
    functionLinenumberEnd: 1653
    functionName: call_weakref_callbacks
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - worklist_pop
    - Py_DECREF
    - PyWeakref_Check
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    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:1659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1661
    functionName: get_gc_state
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 13
    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: 1669
      start: 1664
    functionDepth: 0
    functionLinenumber: 1664
    functionLinenumberEnd: 1669
    functionName: _PyGC_InitState
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyGC_InitState(GCState *gcstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/gc_free_threading.c:1677,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc_free_threading.c:1679,1
    - Dst: PyList_New
      Src: /src/cpython/Python/gc_free_threading.c:1682,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc_free_threading.c:1684,1
    - Dst: PyList_New
      Src: /src/cpython/Python/gc_free_threading.c:1687,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/gc_free_threading.c:1689,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/gc_free_threading.c:1692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1672
    functionDepth: 4
    functionLinenumber: 1672
    functionLinenumberEnd: 1693
    functionName: _PyGC_Init
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - PyMem_RawCalloc
    - _PyStatus_NO_MEMORY
    - PyList_New
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyGC_Init(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_FormatStderr
      Src: /src/cpython/Python/gc_free_threading.c:1698,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - op
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1695
    functionDepth: 1
    functionLinenumber: 1695
    functionLinenumberEnd: 1700
    functionName: debug_cycle
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - PySys_FormatStderr
    - Py_TYPE
    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:1712,1
    - Dst: _PyGC_FINALIZED
      Src: /src/cpython/Python/gc_free_threading.c:1713,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1714,1
    - Dst: _PyGC_SET_FINALIZED
      Src: /src/cpython/Python/gc_free_threading.c:1716,1
    - Dst: finalize
      Src: /src/cpython/Python/gc_free_threading.c:1717,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1718,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1718,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:1718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts:
    - condition: (!_PyErr_Occurred(_PyThreadState_GET()))
      pos:
        line_end: 1717
        line_start: 1717
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1722
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1722
    functionName: finalize_garbage
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyGC_FINALIZED
    - finalize
    - WORKSTACK_FOR_EACH
    - _PyErr_Occurred
    - _PyThreadState_GET
    - _PyGC_SET_FINALIZED
    - assert
    - Py_TYPE
    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:1728,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1731,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1731,1
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1735,1
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1738,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1739,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1739,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1742,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1746,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1753,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc_free_threading.c:1754,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc_free_threading.c:1755,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1759,1
    - Dst: clear
      Src: /src/cpython/Python/gc_free_threading.c:1761,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1762,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1763,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts:
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1752
        line_start: 1752
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1730
        line_start: 1730
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1771
      start: 1725
    functionDepth: 2
    functionLinenumber: 1725
    functionLinenumberEnd: 1771
    functionName: delete_garbage
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyObject_ASSERT
    - gc_clear_unreachable
    - gc_is_unreachable
    - worklist_pop
    - _PyErr_Occurred
    - PyList_Append
    - clear
    - _PyThreadState_GET
    - _PyErr_Clear
    - assert
    - Py_DECREF
    - _PyObject_GC_IS_TRACKED
    - PyErr_FormatUnraisable
    - Py_TYPE
    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:1777,1
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1780,1
    - Dst: debug_cycle
      Src: /src/cpython/Python/gc_free_threading.c:1784,1
    - Dst: has_legacy_finalizer
      Src: /src/cpython/Python/gc_free_threading.c:1787,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/gc_free_threading.c:1788,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/gc_free_threading.c:1789,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts:
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 1776
        line_start: 1776
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1794
      start: 1773
    functionDepth: 2
    functionLinenumber: 1773
    functionLinenumberEnd: 1794
    functionName: handle_legacy_finalizers
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - assert
    - debug_cycle
    - worklist_pop
    - PyErr_Clear
    - has_legacy_finalizer
    - PyList_Append
    - Py_DECREF
    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: 1801
      start: 1797
    functionDepth: 0
    functionLinenumber: 1797
    functionLinenumberEnd: 1801
    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:1807,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - op
    - data
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1811
    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:1819,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/gc_free_threading.c:1819,1
    - Dst: PyStackRef_RefcountOnObject
      Src: /src/cpython/Python/gc_free_threading.c:1820,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/gc_free_threading.c:1823,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/gc_free_threading.c:1823,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: 1818
        line_start: 1818
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1826
      start: 1813
    functionDepth: 1
    functionLinenumber: 1813
    functionLinenumberEnd: 1826
    functionName: _PyGC_VisitStackRef
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_IsTaggedInt
    - Py_VISIT
    - assert
    - PyStackRef_RefcountOnObject
    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:1831,1
    - Dst: _Py_VISIT_STACKREF
      Src: /src/cpython/Python/gc_free_threading.c:1834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - frame
    - visit
    - arg
    argTypes:
    - _PyInterpreterFrame*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1828
    functionDepth: 1
    functionLinenumber: 1828
    functionLinenumberEnd: 1837
    functionName: _PyGC_VisitFrameStack
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _Py_VISIT_STACKREF
    - _PyFrame_GetLocalsArray
    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:1848,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1849,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1849,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1850,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Python/gc_free_threading.c:1850,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1852,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1855,1
    - Dst: worklist_remove
      Src: /src/cpython/Python/gc_free_threading.c:1856,1
    - Dst: worklist_push
      Src: /src/cpython/Python/gc_free_threading.c:1857,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1865,1
    - Dst: worklist_remove
      Src: /src/cpython/Python/gc_free_threading.c:1866,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Python/gc_free_threading.c:1867,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:1876,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:1877,1
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:1882,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1886,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1888,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1892,1
    - Dst: mark_reachable
      Src: /src/cpython/Python/gc_free_threading.c:1893,1
    - Dst: WORKSTACK_FOR_EACH_ITER
      Src: /src/cpython/Python/gc_free_threading.c:1901,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1902,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1903,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/gc_free_threading.c:1903,1
    - Dst: worklist_remove
      Src: /src/cpython/Python/gc_free_threading.c:1904,1
    - Dst: merge_refcount
      Src: /src/cpython/Python/gc_free_threading.c:1905,1
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:1912,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1913,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1913,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1914,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:1914,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1915,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:1916,1
    - Dst: _Py_REF_IS_MERGED
      Src: /src/cpython/Python/gc_free_threading.c:1916,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct collection_state*
    assertStmts:
    - condition: (_Py_REF_IS_MERGED(op->ob_ref_shared))
      pos:
        line_end: 1849
        line_start: 1849
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (gc_is_unreachable(op))
      pos:
        line_end: 1848
        line_start: 1848
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1921
      start: 1840
    functionDepth: 4
    functionLinenumber: 1840
    functionLinenumberEnd: 1921
    functionName: handle_resurrected_objects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - _PyObject_ASSERT
    - mark_reachable
    - _Py_REF_IS_MERGED
    - gc_clear_unreachable
    - gc_is_unreachable
    - worklist_remove
    - merge_refcount
    - WORKSTACK_FOR_EACH
    - worklist_push
    - traverse
    - Py_REFCNT
    - assert
    - _Py_SetImmortal
    - _PyObject_GC_IS_TRACKED
    - WORKSTACK_FOR_EACH_ITER
    - Py_TYPE
    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:1933,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1933,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1942,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/gc_free_threading.c:1942,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:1944,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/gc_free_threading.c:1945,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1952,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/gc_free_threading.c:1958,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc_free_threading.c:1960,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1961,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:1967,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/gc_free_threading.c:1968,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/gc_free_threading.c:1969,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/gc_free_threading.c:1970,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:1972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1976,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1980,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc_free_threading.c:1981,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:1982,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:1982,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 7
    argNames:
    - tstate
    - phase
    - generation
    - collected
    - uncollectable
    - candidates
    - duration
    argTypes:
    - PyThreadState*
    - char*
    - int
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - double
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1981
        line_start: 1981
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1932
        line_start: 1932
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (PyList_CheckExact(gcstate->callbacks))
      pos:
        line_end: 1941
        line_start: 1941
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 1983
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1983
    functionName: invoke_gc_callback
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - Py_INCREF
    - PyObject_Vectorcall
    - _PyErr_Occurred
    - PyList_GET_ITEM
    - Py_BuildValue
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyList_CheckExact
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    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, Py_ssize_t candidates,\n                   double duration)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: worklist_pop
      Src: /src/cpython/Python/gc_free_threading.c:1989,1
    - Dst: gc_clear_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:1990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:1991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - worklist
    argTypes:
    - struct worklist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1985
    functionDepth: 2
    functionLinenumber: 1985
    functionLinenumberEnd: 1993
    functionName: cleanup_worklist
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - worklist_pop
    - gc_clear_unreachable
    linkageType: ''
    returnType: void
    signature: void cleanup_worklist(struct worklist *worklist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:1998,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2000,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - gcstate
    argTypes:
    - GCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2015
    functionName: gc_should_collect
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _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:2028,1
    - Dst: gc_should_collect
      Src: /src/cpython/Python/gc_free_threading.c:2031,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2032,1
    - Dst: _Py_ScheduleGC
      Src: /src/cpython/Python/gc_free_threading.c:2034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2017
    functionDepth: 1
    functionLinenumber: 2017
    functionLinenumberEnd: 2037
    functionName: record_allocation
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_add_int
    - gc_should_collect
    - _Py_atomic_load_int_relaxed
    - _Py_ScheduleGC
    linkageType: ''
    returnType: void
    signature: void record_allocation(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2047,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/gc_free_threading.c:2057,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2039
    functionDepth: 0
    functionLinenumber: 2039
    functionLinenumberEnd: 2062
    functionName: record_deallocation
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - _Py_atomic_compare_exchange_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:2067,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2083,1
    - Dst: _PyObject_MergePerThreadRefcounts
      Src: /src/cpython/Python/gc_free_threading.c:2090,1
    - Dst: merge_queued_objects
      Src: /src/cpython/Python/gc_free_threading.c:2093,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:2095,1
    - Dst: process_delayed_frees
      Src: /src/cpython/Python/gc_free_threading.c:2097,1
    - Dst: gc_mark_alive_from_roots
      Src: /src/cpython/Python/gc_free_threading.c:2109,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2111,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2112,1
    - Dst: deduce_unreachable_heap
      Src: /src/cpython/Python/gc_free_threading.c:2119,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2121,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2122,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2128,1
    - Dst: WORKSTACK_FOR_EACH
      Src: /src/cpython/Python/gc_free_threading.c:2134,1
    - Dst: debug_cycle
      Src: /src/cpython/Python/gc_free_threading.c:2135,1
    - Dst: find_weakref_callbacks
      Src: /src/cpython/Python/gc_free_threading.c:2140,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2141,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2144,1
    - Dst: call_weakref_callbacks
      Src: /src/cpython/Python/gc_free_threading.c:2148,1
    - Dst: finalize_garbage
      Src: /src/cpython/Python/gc_free_threading.c:2149,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2151,1
    - Dst: handle_resurrected_objects
      Src: /src/cpython/Python/gc_free_threading.c:2153,1
    - Dst: _PyGC_ClearAllFreeLists
      Src: /src/cpython/Python/gc_free_threading.c:2155,1
    - Dst: clear_weakrefs
      Src: /src/cpython/Python/gc_free_threading.c:2157,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2161,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2165,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2166,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2167,1
    - Dst: cleanup_worklist
      Src: /src/cpython/Python/gc_free_threading.c:2168,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2169,1
    - Dst: delete_garbage
      Src: /src/cpython/Python/gc_free_threading.c:2176,1
    - Dst: handle_legacy_finalizers
      Src: /src/cpython/Python/gc_free_threading.c:2179,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 3
    argNames:
    - interp
    - state
    - generation
    argTypes:
    - PyInterpreterState*
    - struct collection_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2064
    functionDepth: 10
    functionLinenumber: 2064
    functionLinenumberEnd: 2180
    functionName: gc_collect_internal
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - delete_garbage
    - gc_mark_alive_from_roots
    - _Py_FOR_EACH_TSTATE_END
    - call_weakref_callbacks
    - finalize_garbage
    - cleanup_worklist
    - PyErr_NoMemory
    - process_delayed_frees
    - _PyEval_StopTheWorld
    - deduce_unreachable_heap
    - gc_visit_heaps
    - clear_weakrefs
    - _PyEval_StartTheWorld
    - debug_cycle
    - merge_queued_objects
    - handle_legacy_finalizers
    - handle_resurrected_objects
    - _PyGC_ClearAllFreeLists
    - _PyObject_MergePerThreadRefcounts
    - WORKSTACK_FOR_EACH
    - find_weakref_callbacks
    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:2090,1
    - Dst: merge_queued_objects
      Src: /src/cpython/Python/gc_free_threading.c:2093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2086
    functionDepth: 1
    functionLinenumber: 2086
    functionLinenumberEnd: 2094
    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: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - gcstate
    - gen
    argTypes:
    - GCState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2182
    functionDepth: 0
    functionLinenumber: 2182
    functionLinenumberEnd: 2195
    functionName: get_stats
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct gc_generation_stats
    signature: 'struct gc_generation_stats *

      get_stats(GCState *gcstate, int gen)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2208,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2209,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:2209,1
    - Dst: _Py_atomic_compare_exchange_int
      Src: /src/cpython/Python/gc_free_threading.c:2212,1
    - Dst: gc_should_collect
      Src: /src/cpython/Python/gc_free_threading.c:2217,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/gc_free_threading.c:2219,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2224,1
    - Dst: _PyStats_GET
      Src: /src/cpython/Python/gc_free_threading.c:2227,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc_free_threading.c:2232,1
    - Dst: invoke_gc_callback
      Src: /src/cpython/Python/gc_free_threading.c:2235,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc_free_threading.c:2239,1
    - Dst: show_stats_each_generations
      Src: /src/cpython/Python/gc_free_threading.c:2240,1
    - Dst: PyDTrace_GC_START_ENABLED
      Src: /src/cpython/Python/gc_free_threading.c:2243,1
    - Dst: PyDTrace_GC_START
      Src: /src/cpython/Python/gc_free_threading.c:2244,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/gc_free_threading.c:2247,1
    - Dst: gc_collect_internal
      Src: /src/cpython/Python/gc_free_threading.c:2257,1
    - Dst: PyTime_PerfCounterRaw
      Src: /src/cpython/Python/gc_free_threading.c:2262,1
    - Dst: PyTime_AsSecondsDouble
      Src: /src/cpython/Python/gc_free_threading.c:2263,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc_free_threading.c:2266,1
    - Dst: _PyObject_ClearFreeLists
      Src: /src/cpython/Python/gc_free_threading.c:2273,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:2275,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/gc_free_threading.c:2277,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:2280,1
    - Dst: get_stats
      Src: /src/cpython/Python/gc_free_threading.c:2285,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc_free_threading.c:2294,1
    - Dst: _PyStats_GET
      Src: /src/cpython/Python/gc_free_threading.c:2297,1
    - Dst: GC_STAT_ADD
      Src: /src/cpython/Python/gc_free_threading.c:2299,1
    - Dst: PyDTrace_GC_DONE_ENABLED
      Src: /src/cpython/Python/gc_free_threading.c:2306,1
    - Dst: PyDTrace_GC_DONE
      Src: /src/cpython/Python/gc_free_threading.c:2307,1
    - Dst: invoke_gc_callback
      Src: /src/cpython/Python/gc_free_threading.c:2311,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2314,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/gc_free_threading.c:2314,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/gc_free_threading.c:2316,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 3
    argNames:
    - tstate
    - generation
    - reason
    argTypes:
    - PyThreadState*
    - int
    - _PyGC_Reason
    assertStmts:
    - condition: (gcstate->garbage != NULL)
      pos:
        line_end: 2207
        line_start: 2207
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (generation >= 0 && generation < NUM_GENERATIONS)
      pos:
        line_end: 2223
        line_start: 2223
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2208
        line_start: 2208
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2313
        line_start: 2313
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 2318
      start: 2199
    functionDepth: 11
    functionLinenumber: 2199
    functionLinenumberEnd: 2318
    functionName: gc_collect_main
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 4
    functionsReached:
    - gc_should_collect
    - _PyStats_GET
    - gc_collect_internal
    - assert
    - show_stats_each_generations
    - PyDTrace_GC_DONE
    - PyTime_PerfCounterRaw
    - _Py_atomic_compare_exchange_int
    - PyDTrace_GC_START
    - PySys_WriteStderr
    - invoke_gc_callback
    - PyTime_AsSecondsDouble
    - _PyObject_ClearFreeLists
    - GC_STAT_ADD
    - get_stats
    - PyDTrace_GC_DONE_ENABLED
    - PyDTrace_GC_START_ENABLED
    - _PyErr_Occurred
    - _PyErr_Clear
    - PyErr_FormatUnraisable
    - _Py_atomic_store_int
    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:2323,1
    - Dst: _PyObjectStack_Size
      Src: /src/cpython/Python/gc_free_threading.c:2323,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:2326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/gc_free_threading.c:2327,1
    - Dst: _PyObjectStack_Pop
      Src: /src/cpython/Python/gc_free_threading.c:2334,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2335,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2335,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/gc_free_threading.c:2336,1
    - Dst: assert
      Src: /src/cpython/Python/gc_free_threading.c:2338,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - stack
    argTypes:
    - _PyObjectStack*
    assertStmts:
    - condition: (idx < PyList_GET_SIZE(list))
      pos:
        line_end: 2334
        line_start: 2334
        source_file: /src/cpython/Python/gc_free_threading.c
    - condition: (idx == PyList_GET_SIZE(list))
      pos:
        line_end: 2337
        line_start: 2337
        source_file: /src/cpython/Python/gc_free_threading.c
    constantsTouched: []
    func_position:
      end: 2340
      start: 2320
    functionDepth: 4
    functionLinenumber: 2320
    functionLinenumberEnd: 2340
    functionName: list_from_object_stack
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObjectStack_Pop
    - PyList_SET_ITEM
    - _PyObjectStack_Size
    - PyList_New
    - assert
    - Py_DECREF
    - PyList_GET_SIZE
    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:2353,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/gc_free_threading.c:2354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2348
    functionDepth: 1
    functionLinenumber: 2348
    functionLinenumberEnd: 2359
    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:2365,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2380,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:2381,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/gc_free_threading.c:2381,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: 2387
      start: 2361
    functionDepth: 3
    functionLinenumber: 2361
    functionLinenumberEnd: 2387
    functionName: visit_get_referrers
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - op_from_block
    - Py_TYPE
    - _PyObjectStack_Push
    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:2396,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2397,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2398,1
    - Dst: list_from_object_stack
      Src: /src/cpython/Python/gc_free_threading.c:2400,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2402,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc_free_threading.c:2403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - objs
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2389
    functionDepth: 6
    functionLinenumber: 2389
    functionLinenumberEnd: 2406
    functionName: _PyGC_GetReferrers
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    - Py_CLEAR
    - gc_visit_heaps
    - list_from_object_stack
    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:2417,1
    - Dst: _PyObjectStack_Push
      Src: /src/cpython/Python/gc_free_threading.c:2428,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/gc_free_threading.c:2428,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: 2432
      start: 2413
    functionDepth: 3
    functionLinenumber: 2413
    functionLinenumberEnd: 2432
    functionName: visit_get_objects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - op_from_block
    - _PyObjectStack_Push
    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:2441,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2442,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2443,1
    - Dst: list_from_object_stack
      Src: /src/cpython/Python/gc_free_threading.c:2445,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2447,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc_free_threading.c:2448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - interp
    - generation
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2434
    functionDepth: 6
    functionLinenumber: 2434
    functionLinenumberEnd: 2451
    functionName: _PyGC_GetObjects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - _PyEval_StartTheWorld
    - _PyEval_StopTheWorld
    - Py_CLEAR
    - gc_visit_heaps
    - list_from_object_stack
    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:2457,1
    - Dst: gc_is_unreachable
      Src: /src/cpython/Python/gc_free_threading.c:2458,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: 2462
      start: 2453
    functionDepth: 3
    functionLinenumber: 2453
    functionLinenumberEnd: 2462
    functionName: visit_freeze
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - op_from_block
    - gc_is_unreachable
    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:2468,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2469,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2471,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2464
    functionDepth: 6
    functionLinenumber: 2464
    functionLinenumberEnd: 2473
    functionName: _PyGC_Freeze
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_visit_heaps
    - _PyEval_StopTheWorld
    - get_gc_state
    - _PyEval_StartTheWorld
    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:2479,1
    - Dst: gc_clear_bit
      Src: /src/cpython/Python/gc_free_threading.c:2481,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: 2484
      start: 2475
    functionDepth: 3
    functionLinenumber: 2475
    functionLinenumberEnd: 2484
    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:2490,1
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2491,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2493,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2486
    functionDepth: 6
    functionLinenumber: 2486
    functionLinenumberEnd: 2495
    functionName: _PyGC_Unfreeze
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_visit_heaps
    - _PyEval_StopTheWorld
    - get_gc_state
    - _PyEval_StartTheWorld
    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:2506,1
    - Dst: gc_is_frozen
      Src: /src/cpython/Python/gc_free_threading.c:2507,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: 2512
      start: 2502
    functionDepth: 3
    functionLinenumber: 2502
    functionLinenumberEnd: 2512
    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:2518,1
    - Dst: gc_visit_heaps
      Src: /src/cpython/Python/gc_free_threading.c:2519,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2514
    functionDepth: 6
    functionLinenumber: 2514
    functionLinenumberEnd: 2522
    functionName: _PyGC_GetFreezeCount
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_visit_heaps
    - _PyEval_StopTheWorld
    - _PyEval_StartTheWorld
    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:2528,1
    - Dst: _Py_atomic_exchange_int
      Src: /src/cpython/Python/gc_free_threading.c:2529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2525
    functionDepth: 0
    functionLinenumber: 2525
    functionLinenumberEnd: 2530
    functionName: PyGC_Enable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 3
    functionsReached:
    - _Py_atomic_exchange_int
    - get_gc_state
    linkageType: ''
    returnType: int
    signature: int PyGC_Enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2535,1
    - Dst: _Py_atomic_exchange_int
      Src: /src/cpython/Python/gc_free_threading.c:2536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2532
    functionDepth: 0
    functionLinenumber: 2532
    functionLinenumberEnd: 2537
    functionName: PyGC_Disable
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 3
    functionsReached:
    - _Py_atomic_exchange_int
    - get_gc_state
    linkageType: ''
    returnType: int
    signature: int PyGC_Disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gc_state
      Src: /src/cpython/Python/gc_free_threading.c:2542,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2539
    functionDepth: 0
    functionLinenumber: 2539
    functionLinenumberEnd: 2544
    functionName: PyGC_IsEnabled
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_load_int_relaxed
    - get_gc_state
    linkageType: ''
    returnType: int
    signature: int PyGC_IsEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:2550,1
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/gc_free_threading.c:2553,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/gc_free_threading.c:2558,1
    - Dst: gc_collect_main
      Src: /src/cpython/Python/gc_free_threading.c:2559,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/gc_free_threading.c:2560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2547
    functionDepth: 1
    functionLinenumber: 2547
    functionLinenumberEnd: 2563
    functionName: PyGC_Collect
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _PyErr_SetRaisedException
    - gc_collect_main
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - _Py_atomic_load_int_relaxed
    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:2568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tstate
    - generation
    - reason
    argTypes:
    - PyThreadState*
    - int
    - _PyGC_Reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2565
    functionDepth: 0
    functionLinenumber: 2565
    functionLinenumberEnd: 2569
    functionName: _PyGC_Collect
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    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:2580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2571
    functionDepth: 0
    functionLinenumber: 2571
    functionLinenumberEnd: 2581
    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:2588,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/cpython/Python/gc_free_threading.c:2600,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2602,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:2604,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/gc_free_threading.c:2608,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/cpython/Python/gc_free_threading.c:2609,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:2610,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/gc_free_threading.c:2614,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/gc_free_threading.c:2616,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc_free_threading.c:2619,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/gc_free_threading.c:2620,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2583
    functionDepth: 5
    functionLinenumber: 2583
    functionLinenumberEnd: 2623
    functionName: _PyGC_DumpShutdownStats
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - PySys_WriteStderr
    - PyUnicode_EncodeFSDefault
    - PyObject_Repr
    - Py_XDECREF
    - PyBytes_AS_STRING
    - PyErr_WarnExplicitFormat
    - PyList_GET_SIZE
    - PyErr_FormatUnraisable
    linkageType: ''
    returnType: void
    signature: void _PyGC_DumpShutdownStats(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc_free_threading.c:2630,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/gc_free_threading.c:2631,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/gc_free_threading.c:2632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2626
    functionDepth: 1
    functionLinenumber: 2626
    functionLinenumberEnd: 2638
    functionName: _PyGC_Fini
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyGC_Fini(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/cpython/Python/gc_free_threading.c:2646,1
    - Dst: _PyObject_IsFreed
      Src: /src/cpython/Python/gc_free_threading.c:2647,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Python/gc_free_threading.c:2648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - parent_raw
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2643
    functionDepth: 2
    functionLinenumber: 2643
    functionLinenumberEnd: 2652
    functionName: visit_validate
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_CAST
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_IsFreed
    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:2662,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2663,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/cpython/Python/gc_free_threading.c:2664,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/gc_free_threading.c:2668,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2673,1
    - Dst: traverse
      Src: /src/cpython/Python/gc_free_threading.c:2674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2676
    functionName: PyObject_GC_Track
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 69
    functionsReached:
    - _PyObject_GC_TRACK
    - _PyObject_CAST
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_GC_IS_TRACKED
    - Py_TYPE
    - traverse
    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:2681,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2684,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc_free_threading.c:2685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2678
    functionDepth: 1
    functionLinenumber: 2678
    functionLinenumberEnd: 2687
    functionName: PyObject_GC_UnTrack
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 164
    functionsReached:
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - _PyObject_CAST
    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:2692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2693
    functionName: PyObject_IS_GC
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 11
    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:2698,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/gc_free_threading.c:2700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2695
    functionDepth: 1
    functionLinenumber: 2695
    functionLinenumberEnd: 2702
    functionName: _Py_ScheduleGC
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _Py_eval_breaker_bit_is_set
    - _Py_set_eval_breaker_bit
    linkageType: ''
    returnType: void
    signature: void _Py_ScheduleGC(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: record_allocation
      Src: /src/cpython/Python/gc_free_threading.c:2707,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:2707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2704
    functionDepth: 2
    functionLinenumber: 2704
    functionLinenumberEnd: 2708
    functionName: _PyObject_GC_Link
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - record_allocation
    - _PyThreadState_GET
    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:2713,1
    - Dst: gc_collect_main
      Src: /src/cpython/Python/gc_free_threading.c:2716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2710
    functionDepth: 0
    functionLinenumber: 2710
    functionLinenumberEnd: 2717
    functionName: _Py_RunGC
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - PyGC_IsEnabled
    - gc_collect_main
    linkageType: ''
    returnType: void
    signature: void _Py_RunGC(PyThreadState *tstate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:2722,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2724,1
    - Dst: _PyObject_MallocWithType
      Src: /src/cpython/Python/gc_free_threading.c:2727,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2729,1
    - Dst: record_allocation
      Src: /src/cpython/Python/gc_free_threading.c:2736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tp
    - basicsize
    - presize
    argTypes:
    - PyTypeObject*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2719
    functionDepth: 7
    functionLinenumber: 2719
    functionLinenumberEnd: 2738
    functionName: gc_alloc
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 3
    functionsReached:
    - _PyObject_MallocWithType
    - _PyThreadState_GET
    - _PyErr_NoMemory
    - 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:2743,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2744,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/gc_free_threading.c:2745,1
    - Dst: _PyInlineValuesSize
      Src: /src/cpython/Python/gc_free_threading.c:2746,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc_free_threading.c:2748,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Python/gc_free_threading.c:2752,1
    - Dst: _PyObject_InitInlineValues
      Src: /src/cpython/Python/gc_free_threading.c:2754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2740
    functionDepth: 2
    functionLinenumber: 2740
    functionLinenumberEnd: 2757
    functionName: _PyObject_GC_New
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyType_HasFeature
    - _PyInlineValuesSize
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_Init
    - _PyObject_InitInlineValues
    - _PyObject_SIZE
    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:2765,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc_free_threading.c:2768,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2769,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc_free_threading.c:2770,1
    - Dst: _PyObject_InitVar
      Src: /src/cpython/Python/gc_free_threading.c:2774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - tp
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2776
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2776
    functionName: _PyObject_GC_NewVar
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_InitVar
    - _PyObject_VAR_SIZE
    - gc_alloc
    - _PyType_PreHeaderSize
    - PyErr_BadInternalCall
    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:2781,1
    - Dst: _PyObject_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2782,1
    - Dst: gc_alloc
      Src: /src/cpython/Python/gc_free_threading.c:2783,1
    - Dst: memset
      Src: /src/cpython/Python/gc_free_threading.c:2787,1
    - Dst: _PyObject_Init
      Src: /src/cpython/Python/gc_free_threading.c:2788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tp
    - extra_size
    argTypes:
    - PyTypeObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2778
    functionDepth: 1
    functionLinenumber: 2778
    functionLinenumberEnd: 2790
    functionName: PyUnstable_Object_GC_NewWithExtraData
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 1
    functionsReached:
    - gc_alloc
    - _PyType_PreHeaderSize
    - _PyObject_Init
    - memset
    - _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:2795,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2795,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/gc_free_threading.c:2796,1
    - Dst: _PyObject_ASSERT
      Src: /src/cpython/Python/gc_free_threading.c:2797,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2797,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2799,1
    - Dst: _PyObject_ReallocWithType
      Src: /src/cpython/Python/gc_free_threading.c:2802,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2802,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/gc_free_threading.c:2804,1
    - Dst: Py_SET_SIZE
      Src: /src/cpython/Python/gc_free_threading.c:2807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - op
    - nitems
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2792
    functionDepth: 1
    functionLinenumber: 2792
    functionLinenumberEnd: 2809
    functionName: _PyObject_GC_Resize
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    - _PyObject_VAR_SIZE
    - PyErr_NoMemory
    - Py_SET_SIZE
    - _PyType_PreHeaderSize
    - _PyObject_GC_IS_TRACKED
    - Py_TYPE
    - _PyObject_ReallocWithType
    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:2814,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/gc_free_threading.c:2815,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/gc_free_threading.c:2816,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/gc_free_threading.c:2818,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/cpython/Python/gc_free_threading.c:2819,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/gc_free_threading.c:2823,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/gc_free_threading.c:2825,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/gc_free_threading.c:2827,1
    - Dst: record_deallocation
      Src: /src/cpython/Python/gc_free_threading.c:2831,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/gc_free_threading.c:2831,1
    - Dst: PyObject_Free
      Src: /src/cpython/Python/gc_free_threading.c:2832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2811
    functionDepth: 2
    functionLinenumber: 2811
    functionLinenumberEnd: 2833
    functionName: PyObject_GC_Del
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 57
    functionsReached:
    - record_deallocation
    - _PyType_PreHeaderSize
    - _PyThreadState_GET
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    - PyErr_WarnExplicitFormat
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - PyObject_Free
    - PyErr_FormatUnraisable
    - Py_TYPE
    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:2838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2835
    functionDepth: 1
    functionLinenumber: 2835
    functionLinenumberEnd: 2839
    functionName: PyObject_GC_IsTracked
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 8
    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:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2841
    functionDepth: 1
    functionLinenumber: 2841
    functionLinenumberEnd: 2845
    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:2857,1
    - Dst: struct custom_visitor_args*::callback
      Src: /src/cpython/Python/gc_free_threading.c:2863,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: 2868
      start: 2853
    functionDepth: 3
    functionLinenumber: 2853
    functionLinenumberEnd: 2868
    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:2878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - interp
    - callback
    - arg
    argTypes:
    - PyInterpreterState*
    - gcvisitobjects_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2870
    functionDepth: 6
    functionLinenumber: 2870
    functionLinenumberEnd: 2879
    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:2884,1
    - Dst: _PyEval_StopTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2885,1
    - Dst: _PyGC_VisitObjectsWorldStopped
      Src: /src/cpython/Python/gc_free_threading.c:2886,1
    - Dst: _PyEval_StartTheWorld
      Src: /src/cpython/Python/gc_free_threading.c:2887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - callback
    - arg
    argTypes:
    - gcvisitobjects_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2881
    functionDepth: 7
    functionLinenumber: 2881
    functionLinenumberEnd: 2888
    functionName: PyUnstable_GC_VisitObjects
    functionSourceFile: /src/cpython/Python/gc_free_threading.c
    functionUses: 2
    functionsReached:
    - _PyGC_VisitObjectsWorldStopped
    - _PyEval_StopTheWorld
    - _PyEval_StartTheWorld
    - _PyInterpreterState_GET
    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:2902,1
    - Dst: _Py_FOR_EACH_TSTATE_END
      Src: /src/cpython/Python/gc_free_threading.c:2904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2897
    functionDepth: 3
    functionLinenumber: 2897
    functionLinenumberEnd: 2905
    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:2902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2900
    functionDepth: 3
    functionLinenumber: 2900
    functionLinenumberEnd: 2903
    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:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 38
    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:43,1
    - Dst: check_interp
      Src: /src/cpython/Python/_warnings.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: get_current_interp
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 9
    functionsReached:
    - check_interp
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      get_current_interp(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/_warnings.c:50,1
    - Dst: check_interp
      Src: /src/cpython/Python/_warnings.c:52,1
    - Dst: check_interp
      Src: /src/cpython/Python/_warnings.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 56
    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: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    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:69,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:70,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:71,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - WarningsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    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:83,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:88,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/_warnings.c:92,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/_warnings.c:93,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - category
    - action_str
    - modname
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 76
    functionDepth: 11
    functionLinenumber: 76
    functionLinenumberEnd: 96
    functionName: create_filter
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    - PyTuple_Pack
    - _PyLong_GetZero
    - Py_DECREF
    - Py_NewRef
    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:104,1
    - Dst: PyList_New
      Src: /src/cpython/Python/_warnings.c:107,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: ADD
      Src: /src/cpython/Python/_warnings.c:120,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 131
    functionName: init_filters
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyList_GET_ITEM
    - Py_DECREF
    - PyList_New
    - ADD
    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: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: ADD
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD(TYPE, ACTION, MODNAME)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_filters
      Src: /src/cpython/Python/_warnings.c:140,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/_warnings.c:147,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:154,1
    - Dst: PyContextVar_New
      Src: /src/cpython/Python/_warnings.c:161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 134
    functionDepth: 11
    functionLinenumber: 134
    functionLinenumberEnd: 169
    functionName: _PyWarnings_InitState
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyContextVar_New
    - PyDict_New
    - PyUnicode_FromString
    - init_filters
    linkageType: ''
    returnType: int
    signature: int _PyWarnings_InitState(PyInterpreterState *interp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/_warnings.c:185,1
    - Dst: PyUnicode_Compare
      Src: /src/cpython/Python/_warnings.c:189,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:190,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/_warnings.c:198,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:198,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/_warnings.c:201,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Python/_warnings.c:205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:206,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/_warnings.c:210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - interp
    - obj
    - arg
    - arg2
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 174
    functionDepth: 15
    functionLinenumber: 174
    functionLinenumberEnd: 213
    functionName: check_matched
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodOneArg
    - PyUnicode_CheckExact
    - PyObject_IsTrue
    - PyUnicode_Compare
    - PyObject_CallFunctionObjArgs
    - PyErr_Occurred
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int check_matched(PyInterpreterState *interp, PyObject *obj, PyObject
      *arg, PyObject *arg2)
  - 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: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    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:228,1
    - Dst: PyImport_Import
      Src: /src/cpython/Python/_warnings.c:229,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:229,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/_warnings.c:233,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/_warnings.c:234,1
    - Dst: _PyImport_GetModules
      Src: /src/cpython/Python/_warnings.c:244,1
    - Dst: PyImport_GetModule
      Src: /src/cpython/Python/_warnings.c:247,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:247,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/_warnings.c:252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - interp
    - attr
    - try_import
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 222
    functionDepth: 13
    functionLinenumber: 222
    functionLinenumberEnd: 255
    functionName: get_warnings_attr
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _Py_IsInterpreterFinalizing
    - PyImport_Import
    - PyObject_GetOptionalAttr
    - PyImport_GetModule
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - _PyImport_GetModules
    - Py_DECREF
    - _Py_ID
    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:260,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:261,1
    - Dst: _PyRecursiveMutex_Lock
      Src: /src/cpython/Python/_warnings.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 263
    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:268,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:269,1
    - Dst: _PyRecursiveMutex_TryUnlock
      Src: /src/cpython/Python/_warnings.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: warnings_unlock
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_get_state
    - _PyRecursiveMutex_TryUnlock
    - assert
    linkageType: ''
    returnType: int
    signature: int warnings_unlock(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_IsLocked
      Src: /src/cpython/Python/_warnings.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - WarningsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 277
    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:282,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:283,1
    - Dst: PyContextVar_CheckExact
      Src: /src/cpython/Python/_warnings.c:283,1
    - Dst: PyContextVar_Get
      Src: /src/cpython/Python/_warnings.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyContextVar_CheckExact(st->context))
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 10
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: get_warnings_context
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_get_state
    - PyContextVar_Get
    - PyContextVar_CheckExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_warnings_context(PyInterpreterState *interp)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_warnings_context
      Src: /src/cpython/Python/_warnings.c:297,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/_warnings.c:304,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:304,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:305,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/_warnings.c:309,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 294
    functionDepth: 11
    functionLinenumber: 294
    functionLinenumberEnd: 316
    functionName: get_warnings_context_filters
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - get_warnings_context
    - PyErr_SetString
    - PyObject_GetAttr
    - PyList_Check
    - Py_DECREF
    - _Py_ID
    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:322,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:323,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:325,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:329,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/_warnings.c:333,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 339
    functionName: get_warnings_filters
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - GET_WARNINGS_ATTR
    - PyErr_SetString
    - Py_SETREF
    - PyList_Check
    - PyErr_Occurred
    - 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:350,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: warnings_acquire_lock_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_lock
    - get_current_interp
    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:367,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:371,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 376
    functionName: warnings_release_lock_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_unlock
    - PyErr_SetString
    - 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:381,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:382,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:384,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:384,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:386,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:388,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:390,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/_warnings.c:393,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:394,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:398,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/cpython/Python/_warnings.c
    - condition: (warnings_lock_held(st))
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/cpython/Python/_warnings.c
    - condition: (st->once_registry)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: get_once_registry
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - GET_WARNINGS_ATTR
    - warnings_lock_held
    - Py_SETREF
    - PyDict_Check
    - PyErr_Occurred
    - assert
    - PyErr_Format
    - warnings_get_state
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_once_registry(PyInterpreterState *interp)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:409,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:410,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:412,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:412,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:414,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:416,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:419,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:422,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:423,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:427,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/cpython/Python/_warnings.c
    - condition: (warnings_lock_held(st))
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/cpython/Python/_warnings.c
    - condition: (st->default_action)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 432
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 432
    functionName: get_default_action
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - GET_WARNINGS_ATTR
    - warnings_lock_held
    - Py_SETREF
    - PyUnicode_Check
    - PyErr_Occurred
    - assert
    - PyErr_Format
    - warnings_get_state
    - Py_DECREF
    - Py_TYPE
    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:444,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:445,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:450,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/_warnings.c:451,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:451,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:452,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/_warnings.c:459,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:460,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:461,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:462,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:463,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:464,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:466,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:467,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:470,1
    - Dst: check_matched
      Src: /src/cpython/Python/_warnings.c:475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:477,1
    - Dst: check_matched
      Src: /src/cpython/Python/_warnings.c:482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:484,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/_warnings.c:489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:491,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/_warnings.c:496,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:510,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/_warnings.c:512,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 10
    argNames:
    - interp
    - category
    - text
    - lineno
    - module
    - filename
    - list_name
    - filters
    - item
    - matched_action
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    - char*
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 436
    functionDepth: 16
    functionLinenumber: 436
    functionLinenumberEnd: 514
    functionName: filter_search
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - PyList_GET_ITEM
    - PyUnicode_Check
    - check_matched
    - PyTuple_Check
    - PyErr_Format
    - Py_DECREF
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyList_GET_SIZE
    - PyLong_AsSsize_t
    - PyObject_IsSubclass
    - Py_TYPE
    linkageType: ''
    returnType: bool
    signature: "bool filter_search(PyInterpreterState *interp, PyObject *category,\n
      \             PyObject *text, Py_ssize_t lineno,\n              PyObject *module,
      PyObject *filename, 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:523,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:524,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:525,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:525,1
    - Dst: get_warnings_context_filters
      Src: /src/cpython/Python/_warnings.c:529,1
    - Dst: filter_search
      Src: /src/cpython/Python/_warnings.c:538,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:543,1
    - Dst: get_warnings_filters
      Src: /src/cpython/Python/_warnings.c:553,1
    - Dst: filter_search
      Src: /src/cpython/Python/_warnings.c:557,1
    - Dst: get_default_action
      Src: /src/cpython/Python/_warnings.c:566,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 7
    argNames:
    - interp
    - category
    - text
    - lineno
    - module
    - filename
    - item
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/cpython/Python/_warnings.c
    - condition: (warnings_lock_held(st))
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 573
      start: 517
    functionDepth: 17
    functionLinenumber: 517
    functionLinenumberEnd: 573
    functionName: get_filter
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - get_default_action
    - filter_search
    - get_warnings_context_filters
    - warnings_lock_held
    - get_warnings_filters
    - assert
    - Py_DECREF
    - warnings_get_state
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_filter(PyInterpreterState *interp, PyObject *category,\n
      \          PyObject *text, Py_ssize_t lineno,\n           PyObject *module,
      PyObject *filename, PyObject **item)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:585,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:586,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:587,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:587,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:590,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:590,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/_warnings.c:595,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/_warnings.c:596,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:598,1
    - Dst: PyDict_Clear
      Src: /src/cpython/Python/_warnings.c:600,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/_warnings.c:601,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/_warnings.c:604,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:608,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:611,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/_warnings.c:615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:616,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/_warnings.c:624,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: 586
        line_start: 586
        source_file: /src/cpython/Python/_warnings.c
    - condition: (st != NULL)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 626
      start: 576
    functionDepth: 10
    functionLinenumber: 576
    functionLinenumberEnd: 626
    functionName: already_warned
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_Clear
    - warnings_lock_held
    - PyObject_IsTrue
    - PyDict_SetItem
    - PyLong_CheckExact
    - PyLong_AsLong
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    - warnings_get_state
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: "int already_warned(PyInterpreterState *interp, PyObject *registry,
      PyObject *key,\n               int should_set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/_warnings.c:636,1
    - Dst: _PyLong_GetZero
      Src: /src/cpython/Python/_warnings.c:636,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Python/_warnings.c:638,1
    - Dst: already_warned
      Src: /src/cpython/Python/_warnings.c:640,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:641,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: 643
      start: 628
    functionDepth: 11
    functionLinenumber: 628
    functionLinenumberEnd: 643
    functionName: update_registry
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromPair
    - already_warned
    - PyTuple_Pack
    - _PyLong_GetZero
    - Py_XDECREF
    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:653,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/_warnings.c:655,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:655,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/_warnings.c:660,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:660,1
    - Dst: fprintf
      Src: /src/cpython/Python/_warnings.c:661,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/_warnings.c:666,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/_warnings.c:668,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/_warnings.c:670,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/_warnings.c:672,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/_warnings.c:674,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/_warnings.c:676,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/_warnings.c:678,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/_warnings.c:688,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/_warnings.c:689,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/_warnings.c:690,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/_warnings.c:692,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/_warnings.c:697,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/_warnings.c:701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:702,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/_warnings.c:703,1
    - Dst: _Py_DisplaySourceLine
      Src: /src/cpython/Python/_warnings.c:706,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:710,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:711,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/_warnings.c:712,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: 713
      start: 645
    functionDepth: 10
    functionLinenumber: 645
    functionLinenumberEnd: 713
    functionName: show_warning
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _Py_DisplaySourceLine
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_READ
    - PyFile_WriteString
    - PySys_GetOptionalAttr
    - PyObject_GetAttr
    - Py_CLEAR
    - PyErr_Clear
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - fprintf
    - Py_DECREF
    - PyFile_WriteObject
    - PyOS_snprintf
    - _Py_ID
    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:726,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:728,1
    - Dst: show_warning
      Src: /src/cpython/Python/_warnings.c:730,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/_warnings.c:734,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:735,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:740,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:742,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:743,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/cpython/Python/_warnings.c:749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:753,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/_warnings.c:757,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:764,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:768,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 10
    argNames:
    - tstate
    - category
    - text
    - message
    - filename
    - lineno
    - lineno_obj
    - sourceline
    - source
    - module
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 715
    functionDepth: 11
    functionLinenumber: 715
    functionLinenumberEnd: 770
    functionName: call_show_warning
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - GET_WARNINGS_ATTR
    - show_warning
    - PyErr_SetString
    - PyObject_CallFunctionObjArgs
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - 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, PyObject *module)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/cpython/Python/_warnings.c:791,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:792,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/_warnings.c:797,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/_warnings.c:798,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/_warnings.c:799,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:802,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/_warnings.c:806,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/_warnings.c:811,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/_warnings.c:820,1
    - Dst: already_warned
      Src: /src/cpython/Python/_warnings.c:825,1
    - Dst: get_filter
      Src: /src/cpython/Python/_warnings.c:833,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:837,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/_warnings.c:838,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:842,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:849,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:849,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/_warnings.c:851,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:856,1
    - Dst: get_once_registry
      Src: /src/cpython/Python/_warnings.c:858,1
    - Dst: update_registry
      Src: /src/cpython/Python/_warnings.c:863,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:865,1
    - Dst: update_registry
      Src: /src/cpython/Python/_warnings.c:868,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/_warnings.c:870,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:871,1
    - Dst: call_show_warning
      Src: /src/cpython/Python/_warnings.c:881,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:889,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:892,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:893,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:894,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:895,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:896,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 100
    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: 898
      start: 772
    functionDepth: 18
    functionLinenumber: 772
    functionLinenumberEnd: 898
    functionName: warn_explicit
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - call_show_warning
    - Py_TYPE
    - PyErr_SetObject
    - get_once_registry
    - get_filter
    - Py_XDECREF
    - PyObject_TypeCheck
    - Py_INCREF
    - PyErr_SetString
    - Py_NewRef
    - PyObject_Str
    - _PyUnicode_EqualToASCIIString
    - PyDict_SetItem
    - PyDict_Check
    - already_warned
    - PyTuple_Pack
    - update_registry
    - PyErr_Format
    - PyObject_CallOneArg
    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:903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 907
    functionName: get_frame_filename
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyFrame_GetCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_frame_filename(PyFrameObject *frame)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:912,1
    - Dst: PyUnicode_Contains
      Src: /src/cpython/Python/_warnings.c:916,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:916,1
    - Dst: PyUnicode_Contains
      Src: /src/cpython/Python/_warnings.c:921,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:921,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - filename
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 931
    functionName: is_internal_filename
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Contains
    - PyUnicode_Check
    - _Py_ID
    linkageType: ''
    returnType: bool
    signature: bool is_internal_filename(PyObject *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:937,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:941,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:944,1
    - Dst: PyUnicode_Tailmatch
      Src: /src/cpython/Python/_warnings.c:945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - filename
    - skip_file_prefixes
    argTypes:
    - PyObject*
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 956
    functionName: is_filename_to_skip
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Tailmatch
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyUnicode_Check
    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:965,1
    - Dst: is_internal_filename
      Src: /src/cpython/Python/_warnings.c:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 958
    functionDepth: 4
    functionLinenumber: 958
    functionLinenumberEnd: 971
    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:978,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:979,1
    - Dst: get_frame_filename
      Src: /src/cpython/Python/_warnings.c:980,1
    - Dst: is_internal_filename
      Src: /src/cpython/Python/_warnings.c:981,1
    - Dst: is_filename_to_skip
      Src: /src/cpython/Python/_warnings.c:982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - frame
    - skip_file_prefixes
    argTypes:
    - PyFrameObject*
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 973
    functionDepth: 4
    functionLinenumber: 973
    functionLinenumberEnd: 985
    functionName: next_external_frame
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetBack
    - is_internal_filename
    - get_frame_filename
    - is_filename_to_skip
    - Py_SETREF
    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:999,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:1006,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/_warnings.c:1009,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:1010,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:1011,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:1013,1
    - Dst: PyThreadState_GetFrame
      Src: /src/cpython/Python/_warnings.c:1019,1
    - Dst: is_internal_frame
      Src: /src/cpython/Python/_warnings.c:1022,1
    - Dst: PyFrame_GetBack
      Src: /src/cpython/Python/_warnings.c:1024,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/_warnings.c:1025,1
    - Dst: next_external_frame
      Src: /src/cpython/Python/_warnings.c:1030,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1036,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/_warnings.c:1041,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/_warnings.c:1041,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/cpython/Python/_warnings.c:1042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1043,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:1049,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:1050,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Python/_warnings.c:1050,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:1051,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1051,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/_warnings.c:1057,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/_warnings.c:1061,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1061,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:1067,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1067,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/_warnings.c:1072,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/_warnings.c:1072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1075,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1077,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1085,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1086,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1087,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: (PyAnyDict_Check(globals))
      pos:
        line_end: 1049
        line_start: 1049
        source_file: /src/cpython/Python/_warnings.c
    - condition: (globals != NULL)
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 1089
      start: 990
    functionDepth: 11
    functionLinenumber: 990
    functionLinenumberEnd: 1089
    functionName: setup_context
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - get_current_tstate
    - PyFrame_GetLineNumber
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyFrame_GetBack
    - PyUnicode_FromString
    - is_internal_frame
    - PyUnicode_Check
    - Py_XDECREF
    - PyAnyDict_Check
    - _PyFrame_GetCode
    - Py_IsNone
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_NewRef
    - PyDict_New
    - PyThreadState_GetFrame
    - next_external_frame
    - Py_SETREF
    - PyDict_SetItem
    - PyErr_Format
    - _Py_ID
    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:1094,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/_warnings.c:1096,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/_warnings.c:1103,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:1104,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/_warnings.c:1109,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:1110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - message
    - category
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1117
    functionName: get_category
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - PyType_IsSubtype
    - PyType_Check
    - 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:1126,1
    - Dst: setup_context
      Src: /src/cpython/Python/_warnings.c:1131,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:1135,1
    - Dst: warn_explicit
      Src: /src/cpython/Python/_warnings.c:1136,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:1138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1141,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: 1143
      start: 1119
    functionDepth: 19
    functionLinenumber: 1119
    functionLinenumberEnd: 1143
    functionName: do_warn
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_unlock
    - get_current_tstate
    - warn_explicit
    - warnings_lock
    - setup_context
    - Py_DECREF
    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:1171,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/_warnings.c:1175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1180,1
    - Dst: do_warn
      Src: /src/cpython/Python/_warnings.c:1184,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: 1185
      start: 1165
    functionDepth: 20
    functionLinenumber: 1165
    functionLinenumberEnd: 1185
    functionName: warnings_warn_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_category
    - do_warn
    - PyTuple_GET_SIZE
    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:1198,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/_warnings.c:1203,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1206,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/_warnings.c:1211,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/_warnings.c:1211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1212,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1214,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/_warnings.c:1218,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1225,1
    - Dst: PyUnicode_Splitlines
      Src: /src/cpython/Python/_warnings.c:1230,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1231,1
    - Dst: PyList_GetItem
      Src: /src/cpython/Python/_warnings.c:1237,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/_warnings.c:1238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - interp
    - module_globals
    - lineno
    argTypes:
    - PyInterpreterState*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1187
    functionDepth: 8
    functionLinenumber: 1187
    functionLinenumberEnd: 1241
    functionName: get_source_line
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - PyList_GetItem
    - _PyImport_BlessMyLoader
    - PyObject_GetOptionalAttr
    - PyUnicode_Splitlines
    - Py_DECREF
    - PyDict_GetItemRef
    - PyObject_CallOneArg
    - _Py_ID
    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:1268,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Python/_warnings.c:1274,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/_warnings.c:1275,1
    - Dst: get_source_line
      Src: /src/cpython/Python/_warnings.c:1282,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:1283,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:1288,1
    - Dst: warn_explicit
      Src: /src/cpython/Python/_warnings.c:1289,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:1291,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1292,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: 1294
      start: 1258
    functionDepth: 19
    functionLinenumber: 1258
    functionLinenumberEnd: 1294
    functionName: warnings_warn_explicit_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_unlock
    - PyAnyDict_Check
    - get_current_tstate
    - warn_explicit
    - warnings_lock
    - PyErr_Occurred
    - PyErr_Format
    - get_source_line
    - Py_XDECREF
    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:1305,1
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:1310,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:1311,1
    - Dst: warnings_lock_held
      Src: /src/cpython/Python/_warnings.c:1314,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/_warnings.c:1315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 1310
        line_start: 1310
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 1322
      start: 1301
    functionDepth: 3
    functionLinenumber: 1301
    functionLinenumberEnd: 1322
    functionName: warnings_filters_mutated_lock_held_impl
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - get_current_interp
    - warnings_lock_held
    - PyErr_SetString
    - assert
    - warnings_get_state
    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:1335,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1338,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: 1341
      start: 1326
    functionDepth: 20
    functionLinenumber: 1326
    functionLinenumberEnd: 1341
    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:1351,1
    - Dst: warn_unicode
      Src: /src/cpython/Python/_warnings.c:1355,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1356,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: 1358
      start: 1343
    functionDepth: 21
    functionLinenumber: 1343
    functionLinenumberEnd: 1358
    functionName: _PyErr_WarnFormatV
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormatV
    - warn_unicode
    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:1367,1
    - Dst: _PyErr_WarnFormatV
      Src: /src/cpython/Python/_warnings.c:1368,1
    - Dst: va_end
      Src: /src/cpython/Python/_warnings.c:1369,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: 1371
      start: 1360
    functionDepth: 22
    functionLinenumber: 1360
    functionLinenumberEnd: 1371
    functionName: PyErr_WarnFormat
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 20
    functionsReached:
    - va_end
    - _PyErr_WarnFormatV
    - va_start
    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:1380,1
    - Dst: _PyErr_WarnFormatV
      Src: /src/cpython/Python/_warnings.c:1381,1
    - Dst: va_end
      Src: /src/cpython/Python/_warnings.c:1382,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: 1384
      start: 1373
    functionDepth: 22
    functionLinenumber: 1373
    functionLinenumberEnd: 1384
    functionName: _PyErr_WarnFormat
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - va_end
    - _PyErr_WarnFormatV
    - va_start
    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:1393,1
    - Dst: _PyErr_WarnFormatV
      Src: /src/cpython/Python/_warnings.c:1394,1
    - Dst: va_end
      Src: /src/cpython/Python/_warnings.c:1396,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: 1398
      start: 1386
    functionDepth: 22
    functionLinenumber: 1386
    functionLinenumberEnd: 1398
    functionName: PyErr_ResourceWarning
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 3
    functionsReached:
    - va_end
    - _PyErr_WarnFormatV
    - va_start
    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:1405,1
    - Dst: warn_unicode
      Src: /src/cpython/Python/_warnings.c:1408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1409,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: 1411
      start: 1401
    functionDepth: 21
    functionLinenumber: 1401
    functionLinenumberEnd: 1411
    functionName: PyErr_WarnEx
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 91
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - warn_unicode
    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:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - category
    - text
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1418
    functionDepth: 22
    functionLinenumber: 1418
    functionLinenumberEnd: 1422
    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:1433,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:1438,1
    - Dst: warn_explicit
      Src: /src/cpython/Python/_warnings.c:1439,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:1441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1444,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: 1446
      start: 1425
    functionDepth: 19
    functionLinenumber: 1425
    functionLinenumberEnd: 1446
    functionName: PyErr_WarnExplicitObject
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 3
    functionsReached:
    - warnings_unlock
    - get_current_tstate
    - warn_explicit
    - warnings_lock
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int PyErr_WarnExplicitObject(PyObject *category, PyObject *message,\n
      \                        PyObject *filename, int lineno,\n                         PyObject
      *module, PyObject *registry)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1453,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/_warnings.c:1457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1459,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1464,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1467,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/cpython/Python/_warnings.c:1472,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1474,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1476,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: 1478
      start: 1448
    functionDepth: 20
    functionLinenumber: 1448
    functionLinenumberEnd: 1478
    functionName: PyErr_WarnExplicit
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_WarnExplicitObject
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: int
    signature: "int PyErr_WarnExplicit(PyObject *category, const char *text,\n                   const
      char *filename_str, int lineno,\n                   const char *module_str,
      PyObject *registry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/_warnings.c:1488,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/_warnings.c:1495,1
    - Dst: va_start
      Src: /src/cpython/Python/_warnings.c:1500,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/_warnings.c:1501,1
    - Dst: get_current_tstate
      Src: /src/cpython/Python/_warnings.c:1504,1
    - Dst: warnings_lock
      Src: /src/cpython/Python/_warnings.c:1506,1
    - Dst: warn_explicit
      Src: /src/cpython/Python/_warnings.c:1507,1
    - Dst: warnings_unlock
      Src: /src/cpython/Python/_warnings.c:1509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1512,1
    - Dst: va_end
      Src: /src/cpython/Python/_warnings.c:1517,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1519,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1520,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: 1522
      start: 1480
    functionDepth: 19
    functionLinenumber: 1480
    functionLinenumberEnd: 1522
    functionName: PyErr_WarnExplicitFormat
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 4
    functionsReached:
    - warnings_unlock
    - PyUnicode_FromString
    - get_current_tstate
    - PyUnicode_FromFormatV
    - warn_explicit
    - warnings_lock
    - va_start
    - va_end
    - Py_XDECREF
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    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:1527,1
    - Dst: _PyErr_WarnFormat
      Src: /src/cpython/Python/_warnings.c:1528,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/_warnings.c:1532,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/_warnings.c:1535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - agen
    - method
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1524
    functionDepth: 23
    functionLinenumber: 1524
    functionLinenumberEnd: 1536
    functionName: _PyErr_WarnUnawaitedAgenMethod
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 2
    functionsReached:
    - PyErr_GetRaisedException
    - PyErr_SetRaisedException
    - PyErr_FormatUnraisable
    - _PyErr_WarnFormat
    linkageType: ''
    returnType: void
    signature: void _PyErr_WarnUnawaitedAgenMethod(PyAsyncGenObject *agen, PyObject
      *method)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/_warnings.c:1562,1
    - Dst: assert
      Src: /src/cpython/Python/_warnings.c:1563,1
    - Dst: GET_WARNINGS_ATTR
      Src: /src/cpython/Python/_warnings.c:1564,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/_warnings.c:1566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/_warnings.c:1567,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/_warnings.c:1568,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/_warnings.c:1571,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/_warnings.c:1574,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/_warnings.c:1575,1
    - Dst: _PyErr_WarnFormat
      Src: /src/cpython/Python/_warnings.c:1580,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/_warnings.c:1584,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 1562
        line_start: 1562
        source_file: /src/cpython/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 1588
      start: 1539
    functionDepth: 23
    functionLinenumber: 1539
    functionLinenumberEnd: 1588
    functionName: _PyErr_WarnUnawaitedCoroutine
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 2
    functionsReached:
    - GET_WARNINGS_ATTR
    - _PyInterpreterState_GET
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyErr_Occurred
    - _PyErr_WarnFormat
    - PyErr_FormatUnraisable
    - PyObject_CallOneArg
    linkageType: ''
    returnType: void
    signature: void _PyErr_WarnUnawaitedCoroutine(PyObject *coro)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_current_interp
      Src: /src/cpython/Python/_warnings.c:1605,1
    - Dst: warnings_get_state
      Src: /src/cpython/Python/_warnings.c:1609,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/_warnings.c:1613,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/_warnings.c:1616,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/_warnings.c:1619,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/_warnings.c:1622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1602
    functionDepth: 3
    functionLinenumber: 1602
    functionLinenumberEnd: 1626
    functionName: warnings_module_exec
    functionSourceFile: /src/cpython/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - warnings_get_state
    - PyModule_AddObjectRef
    - get_current_interp
    linkageType: ''
    returnType: int
    signature: int warnings_module_exec(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Python/_warnings.c:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1647
    functionDepth: 2
    functionLinenumber: 1647
    functionLinenumberEnd: 1651
    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:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1654
    functionDepth: 2
    functionLinenumber: 1654
    functionLinenumberEnd: 1658
    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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: _PyExecutorObject_CAST
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyExecutorObject_CAST(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - code
    - instr
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 57
    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:71,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:73,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/optimizer.c:77,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:88,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: 70
        line_start: 70
        source_file: /src/cpython/Python/optimizer.c
    - condition: (size <= capacity)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/cpython/Python/optimizer.c
    - condition: (size < code->co_executors->capacity)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 90
    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:95,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:97,1
    - Dst: _Py_ExecutorDetach
      Src: /src/cpython/Python/optimizer.c:98,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:101,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:102,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:108,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - code
    - instr
    - index
    - executor
    argTypes:
    - PyCodeObject*
    - _Py_CODEUNIT*
    - int
    - _PyExecutorObject*
    assertStmts:
    - condition: (code->co_executors->size == index)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/cpython/Python/optimizer.c
    - condition: (code->co_executors->capacity > index)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/cpython/Python/optimizer.c
    - condition: (index == instr->op.arg)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/cpython/Python/optimizer.c
    - condition: (index < MAX_EXECUTORS_SIZE)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 113
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: insert_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyCode_CODE
    - _Py_ExecutorDetach
    - assert
    linkageType: ''
    returnType: void
    signature: void insert_executor(PyCodeObject *code, _Py_CODEUNIT *instr, int index,
      _PyExecutorObject *executor)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer.c:133,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:147,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:148,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:150,1
    - Dst: has_space_for_executor
      Src: /src/cpython/Python/optimizer.c:161,1
    - Dst: uop_optimize
      Src: /src/cpython/Python/optimizer.c:166,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:171,1
    - Dst: get_index_for_executor
      Src: /src/cpython/Python/optimizer.c:173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:181,1
    - Dst: insert_executor
      Src: /src/cpython/Python/optimizer.c:185,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:188,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - frame
    - tstate
    argTypes:
    - _PyInterpreterFrame*
    - PyThreadState*
    assertStmts:
    - condition: (_tstate->jit_tracer_state->initial_state.stack_depth >= 0)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_tstate->jit_tracer_state->initial_state.func != NULL)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/cpython/Python/optimizer.c
    - condition: (!interp->compiling)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/cpython/Python/optimizer.c
    - condition: (executor != NULL)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/cpython/Python/optimizer.c
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 203
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 203
    functionName: _PyOptimizer_Optimize
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - insert_executor
    - _PyInterpreterState_GET
    - uop_optimize
    - assert
    - Py_DECREF
    - get_index_for_executor
    - has_space_for_executor
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _PyOptimizer_Optimize(\n    _PyInterpreterFrame *frame,
      PyThreadState *tstate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Python/optimizer.c:208,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:210,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:211,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/optimizer.c:213,1
    - Dst: _PyInstruction_GetLength
      Src: /src/cpython/Python/optimizer.c:216,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/optimizer.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - code
    - offset
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: get_executor_lock_held
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _PyInstruction_GetLength
    - Py_INCREF
    - PyErr_SetString
    - _PyCode_CODE
    - Py_SIZE
    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:226,1
    - Dst: get_executor_lock_held
      Src: /src/cpython/Python/optimizer.c:227,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/optimizer.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - code
    - offset
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: _Py_GetExecutor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION
    - get_executor_lock_held
    - Py_END_CRITICAL_SECTION
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      _Py_GetExecutor(PyCodeObject *code, int offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/optimizer.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: is_valid
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 20
    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:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    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:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    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:258,1
    - Dst: PyObject_GC_Del
      Src: /src/cpython/Python/optimizer.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 261
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutor_GetColdExecutor
      Src: /src/cpython/Python/optimizer.c:268,1
    - Dst: _PyExecutor_GetColdDynamicExecutor
      Src: /src/cpython/Python/optimizer.c:269,1
    - Dst: initial_unreachable_backoff_counter
      Src: /src/cpython/Python/optimizer.c:272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: executor_clear_exits
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyExecutor_GetColdDynamicExecutor
    - initial_unreachable_backoff_counter
    - _PyExecutor_GetColdExecutor
    linkageType: ''
    returnType: void
    signature: void executor_clear_exits(_PyExecutorObject *executor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/optimizer.c:287,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/cpython/Python/optimizer.c:288,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/optimizer.c:291,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/optimizer.c:294,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/optimizer.c:299,1
    - Dst: _PyExecutor_Free
      Src: /src/cpython/Python/optimizer.c:300,1
    - Dst: HEAD_LOCK
      Src: /src/cpython/Python/optimizer.c:307,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/cpython/Python/optimizer.c:308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:312,1
    - Dst: HEAD_UNLOCK
      Src: /src/cpython/Python/optimizer.c:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 317
    functionName: _Py_ClearExecutorDeletionList
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 3
    functionsReached:
    - PyInterpreterState_ThreadHead
    - HEAD_LOCK
    - Py_REFCNT
    - _PyExecutor_Free
    - HEAD_UNLOCK
    - Py_DECREF
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void _Py_ClearExecutorDeletionList(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/optimizer.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: add_to_pending_deletion_list
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    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:334,1
    - Dst: executor_invalidate
      Src: /src/cpython/Python/optimizer.c:335,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:336,1
    - Dst: add_to_pending_deletion_list
      Src: /src/cpython/Python/optimizer.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->vm_data.code == NULL)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: uop_dealloc
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - add_to_pending_deletion_list
    - _PyExecutorObject_CAST
    - executor_invalidate
    - 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: 347
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: _PyUOpName
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyUOpName(int index)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUOpName
      Src: /src/cpython/Python/optimizer.c:353,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:355,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:358,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:362,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:369,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:376,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:379,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - uop
    argTypes:
    - _PyUOpInstruction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 383
    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:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 391
    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:396,1
    - Dst: uop_len
      Src: /src/cpython/Python/optimizer.c:397,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/optimizer.c:399,1
    - Dst: _PyUOpName
      Src: /src/cpython/Python/optimizer.c:404,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/cpython/Python/optimizer.c:408,1
    - Dst: strlen
      Src: /src/cpython/Python/optimizer.c:408,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/optimizer.c:412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:414,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/optimizer.c:417,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:419,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:420,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Python/optimizer.c:423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:427,1
    - Dst: _PyTuple_FromArraySteal
      Src: /src/cpython/Python/optimizer.c:431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - op
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 393
    functionDepth: 5
    functionLinenumber: 393
    functionLinenumberEnd: 432
    functionName: uop_item
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyUnicode_FromASCII
    - _PyTuple_FromArraySteal
    - _PyUOpName
    - strlen
    - PyLong_FromUnsignedLongLong
    - PyErr_SetNone
    - uop_len
    - _PyExecutorObject_CAST
    - PyLong_FromUnsignedLong
    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:442,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/optimizer.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 447
    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:453,1
    - Dst: _PyExecutorObject_CAST
      Src: /src/cpython/Python/optimizer.c:456,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/optimizer.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 462
    functionName: get_jit_code
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - _PyExecutorObject_CAST
    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:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 476
    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: 561
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 561
    functionName: DPRINTF
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(level, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - tracer
    - opcode
    - oparg
    - operand
    - target
    argTypes:
    - _PyJitTracerState*
    - uint16_t
    - uint16_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 586
    functionName: add_to_trace
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_to_trace(\n    _PyJitTracerState *tracer,\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: 597
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 597
    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: 600
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 600
    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: 604
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 604
    functionName: INSTR_IP
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTR_IP(INSTR, CODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_popcount32
      Src: /src/cpython/Python/optimizer.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - history
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 622
    functionName: compute_branch_penalty
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _Py_popcount32
    linkageType: ''
    returnType: int
    signature: int compute_branch_penalty(uint16_t history)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - target_instr
    - opcode
    - tracer
    argTypes:
    - _Py_CODEUNIT*
    - int
    - _PyJitTracerState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 645
    functionName: compute_exit_quality
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t compute_exit_quality(_Py_CODEUNIT *target_instr, int opcode,\n
      \                    const _PyJitTracerState *tracer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fitness_initial
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: compute_frame_penalty
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t compute_frame_penalty(uint16_t fitness_initial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - uop
    argTypes:
    - _PyUOpInstruction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 664
    functionName: is_terminator
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_terminator(const _PyUOpInstruction *uop)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/cpython/Python/optimizer.c:678,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/optimizer.c:694,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:696,1
    - Dst: adaptive_counter_cooldown
      Src: /src/cpython/Python/optimizer.c:726,1
    - Dst: trigger_backoff_counter
      Src: /src/cpython/Python/optimizer.c:727,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:728,1
    - Dst: OPCODE_HAS_UNPREDICTABLE_JUMP
      Src: /src/cpython/Python/optimizer.c:734,1
    - Dst: uop_buffer_length
      Src: /src/cpython/Python/optimizer.c:739,1
    - Dst: OPCODE_HAS_EXIT
      Src: /src/cpython/Python/optimizer.c:740,1
    - Dst: OPCODE_HAS_DEOPT
      Src: /src/cpython/Python/optimizer.c:740,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:743,1
    - Dst: OPCODE_HAS_EXIT
      Src: /src/cpython/Python/optimizer.c:743,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:744,1
    - Dst: OPCODE_HAS_DEOPT
      Src: /src/cpython/Python/optimizer.c:744,1
    - Dst: OPCODE_HAS_NEEDS_GUARD_IP
      Src: /src/cpython/Python/optimizer.c:747,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:749,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:762,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:766,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:767,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:771,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:775,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/optimizer.c:775,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:782,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:787,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:790,1
    - Dst: uop_buffer_length
      Src: /src/cpython/Python/optimizer.c:791,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:793,1
    - Dst: uop_get_target
      Src: /src/cpython/Python/optimizer.c:796,1
    - Dst: compute_exit_quality
      Src: /src/cpython/Python/optimizer.c:819,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:820,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:825,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:826,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:827,1
    - Dst: uop_buffer_remaining_space
      Src: /src/cpython/Python/optimizer.c:834,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:841,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:842,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/optimizer.c:842,1
    - Dst: OPCODE_HAS_EXIT
      Src: /src/cpython/Python/optimizer.c:845,1
    - Dst: OPCODE_HAS_ERROR
      Src: /src/cpython/Python/optimizer.c:849,1
    - Dst: OPCODE_HAS_DEOPT
      Src: /src/cpython/Python/optimizer.c:853,1
    - Dst: OPCODE_HAS_NO_SAVE_IP
      Src: /src/cpython/Python/optimizer.c:863,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:864,1
    - Dst: uop_buffer_remaining_space
      Src: /src/cpython/Python/optimizer.c:864,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:867,1
    - Dst: OPCODE_HAS_NO_SAVE_IP
      Src: /src/cpython/Python/optimizer.c:869,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:870,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:882,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:884,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:886,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:886,1
    - Dst: compute_branch_penalty
      Src: /src/cpython/Python/optimizer.c:887,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:889,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:899,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:909,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:917,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:920,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:933,1
    - Dst: read_u16
      Src: /src/cpython/Python/optimizer.c:936,1
    - Dst: read_u32
      Src: /src/cpython/Python/optimizer.c:939,1
    - Dst: read_u64
      Src: /src/cpython/Python/optimizer.c:942,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:945,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:949,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:954,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:958,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:968,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/optimizer.c:969,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/optimizer.c:970,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/optimizer.c:973,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:981,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:981,1
    - Dst: read_u16
      Src: /src/cpython/Python/optimizer.c:982,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:983,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:986,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:986,1
    - Dst: read_u32
      Src: /src/cpython/Python/optimizer.c:987,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:988,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:991,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:991,1
    - Dst: read_u64
      Src: /src/cpython/Python/optimizer.c:992,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:993,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:996,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/optimizer.c:1001,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1004,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1006,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1012,1
    - Dst: compute_frame_penalty
      Src: /src/cpython/Python/optimizer.c:1013,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1015,1
    - Dst: compute_frame_penalty
      Src: /src/cpython/Python/optimizer.c:1021,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1028,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1036,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1043,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1045,1
    - Dst: _PyOpcode_RecordTransformValue
      Src: /src/cpython/Python/optimizer.c:1050,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1056,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:1064,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1067,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer.c:1068,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/optimizer.c:1070,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/optimizer.c:1071,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1072,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1073,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/optimizer.c:1074,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/optimizer.c:1076,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:1077,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1078,1
    - Dst: uop_buffer_length
      Src: /src/cpython/Python/optimizer.c:1084,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1086,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1088,1
    - Dst: uop_buffer_remaining_space
      Src: /src/cpython/Python/optimizer.c:1094,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1096,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1099,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1102,1
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer.c:1103,1
    - Dst: uop_buffer_last
      Src: /src/cpython/Python/optimizer.c:1103,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1104,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 266
    argCount: 4
    argNames:
    - tstate
    - frame
    - next_instr
    - stop_tracing_opcode
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (!OPCODE_HAS_DEOPT(opcode))
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/cpython/Python/optimizer.c
    - condition: (opcode != ENTER_EXECUTOR && opcode != EXTENDED_ARG)
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_Py_GetBaseCodeUnit(old_code, target).op.code == EXTENDED_ARG)
      pos:
        line_end: 774
        line_start: 774
        source_file: /src/cpython/Python/optimizer.c
    - condition: (nuops > 0)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/cpython/Python/optimizer.c
    - condition: (ts_depth->frame_depth < MAX_ABSTRACT_FRAME_DEPTH)
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/cpython/Python/optimizer.c
    - condition: (orig_oparg <= 255)
      pos:
        line_end: 948
        line_start: 948
        source_file: /src/cpython/Python/optimizer.c
    - condition: (opcode != _JUMP_BACKWARD_NO_INTERRUPT && opcode != JUMP_BACKWARD)
      pos:
        line_end: 932
        line_start: 932
        source_file: /src/cpython/Python/optimizer.c
    - condition: (stop_tracing_opcode == _EXIT_TRACE)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/cpython/Python/optimizer.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/cpython/Python/optimizer.c
    - condition: (next->op.code == STORE_FAST)
      pos:
        line_end: 1005
        line_start: 1005
        source_file: /src/cpython/Python/optimizer.c
    - condition: '(jump_happened ? (next_instr == computed_jump_instr) : (next_instr
        == computed_next_instr))'
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/cpython/Python/optimizer.c
    - condition: (i + 1 == nuops)
      pos:
        line_end: 1003
        line_start: 1003
        source_file: /src/cpython/Python/optimizer.c
    - condition: (next_instr == computed_next_instr || next_instr == computed_jump_instr)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/cpython/Python/optimizer.c
    - condition: "((\n                                    _Py_GetBaseCodeUnit(old_code,
        jump_target).op.code == END_FOR &&\n                                    _Py_GetBaseCodeUnit(old_code,
        jump_target+1).op.code == POP_ITER\n                                )\n                                ||\n
        \                               _Py_GetBaseCodeUnit(old_code, jump_target).op.code
        == END_SEND\n                            )"
      pos:
        line_end: 973
        line_start: 967
        source_file: /src/cpython/Python/optimizer.c
    - condition: (orig_oparg <= 255)
      pos:
        line_end: 944
        line_start: 944
        source_file: /src/cpython/Python/optimizer.c
    - condition: (uop_buffer_remaining_space(trace) > space_needed)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/cpython/Python/optimizer.c
    - condition: (uop != 0)
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/cpython/Python/optimizer.c
    - condition: (!OPCODE_HAS_EXIT(opcode))
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/cpython/Python/optimizer.c
    - condition: (uop == _SAVE_RETURN_OFFSET)
      pos:
        line_end: 953
        line_start: 953
        source_file: /src/cpython/Python/optimizer.c
    - condition: (uop_buffer_last(trace)->opcode == uop)
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/cpython/Python/optimizer.c
    - condition: (record_slot < tracer->prev_state.recorded_count)
      pos:
        line_end: 1044
        line_start: 1044
        source_file: /src/cpython/Python/optimizer.c
    - condition: (uop_buffer_last(trace)->opcode == uop)
      pos:
        line_end: 985
        line_start: 985
        source_file: /src/cpython/Python/optimizer.c
    - condition: (record_idx < record_slot_map->count)
      pos:
        line_end: 1042
        line_start: 1042
        source_file: /src/cpython/Python/optimizer.c
    - condition: (uop_buffer_last(trace)->opcode == uop)
      pos:
        line_end: 990
        line_start: 990
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1107
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 1107
    functionName: _PyJit_translate_single_bytecode_to_trace
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - ADD_TO_TRACE
    - OPCODE_HAS_EXIT
    - OPT_STAT_INC
    - assert
    - OPCODE_HAS_DEOPT
    - _PyFrame_Stackbase
    - Py_GETENV
    - uop_get_target
    - DPRINTF
    - uop_buffer_remaining_space
    - Py_UNREACHABLE
    - adaptive_counter_cooldown
    - PyStackRef_AsPyObjectBorrow
    - compute_frame_penalty
    - read_u64
    - read_u32
    - Py_INCREF
    - read_u16
    - trigger_backoff_counter
    - INSTR_IP
    - OPCODE_HAS_UNPREDICTABLE_JUMP
    - Py_IsNone
    - OPCODE_HAS_NO_SAVE_IP
    - compute_branch_penalty
    - compute_exit_quality
    - Py_FatalError
    - PyCode_Check
    - uop_buffer_length
    - _PyOpcode_RecordTransformValue
    - uop_buffer_last
    - _Py_GetBaseCodeUnit
    - _PyErr_Occurred
    - is_terminator
    - fprintf
    - OPCODE_HAS_NEEDS_GUARD_IP
    - OPCODE_HAS_ERROR
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _PyJit_translate_single_bytecode_to_trace(\n    PyThreadState
      *tstate,\n    _PyInterpreterFrame *frame,\n    _Py_CODEUNIT *next_instr,\n    int
      stop_tracing_opcode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VirtualAlloc
      Src: /src/cpython/Python/optimizer.c:1119,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/optimizer.c:1134,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/optimizer.c:1135,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/optimizer.c:1138,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/optimizer.c:1140,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1145,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:1147,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/optimizer.c:1148,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:1150,1
    - Dst: uop_buffer_init
      Src: /src/cpython/Python/optimizer.c:1155,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1159,1
    - Dst: INSTR_IP
      Src: /src/cpython/Python/optimizer.c:1159,1
    - Dst: ADD_TO_TRACE
      Src: /src/cpython/Python/optimizer.c:1160,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/optimizer.c:1164,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/optimizer.c:1165,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/optimizer.c:1166,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/optimizer.c:1168,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/optimizer.c:1170,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/optimizer.c:1170,1
    - Dst: record_func
      Src: /src/cpython/Python/optimizer.c:1182,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1185,1
    - Dst: DPRINTF
      Src: /src/cpython/Python/optimizer.c:1188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 10
    argNames:
    - tstate
    - frame
    - curr_instr
    - start_instr
    - close_loop_instr
    - stack_pointer
    - chain_depth
    - exit
    - oparg
    - current_executor
    argTypes:
    - PyThreadState*
    - _PyInterpreterFrame*
    - _Py_CODEUNIT*
    - _Py_CODEUNIT*
    - _Py_CODEUNIT*
    - _PyStackRef*
    - int
    - _PyExitData*
    - int
    - _PyExecutorObject*
    assertStmts:
    - condition: (curr_instr->op.code == JUMP_BACKWARD_JIT || curr_instr->op.code
        == RESUME_CHECK_JIT || (exit != NULL))
      pos:
        line_end: 1184
        line_start: 1184
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1193
      start: 1111
    functionDepth: 6
    functionLinenumber: 1111
    functionLinenumberEnd: 1193
    functionName: _PyJit_TryInitializeTracing
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - Py_GETENV
    - PyFunction_Check
    - _PyObject_VirtualAlloc
    - ADD_TO_TRACE
    - _PyFrame_GetCode
    - record_func
    - DPRINTF
    - INSTR_IP
    - PyUnicode_AsUTF8
    - uop_buffer_init
    - _PyFrame_Stackbase
    - assert
    - PyStackRef_AsPyObjectBorrow
    - Py_XNewRef
    - Py_NewRef
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: "Py_NO_INLINE _PyJit_TryInitializeTracing(\n    PyThreadState *tstate,
      _PyInterpreterFrame *frame, _Py_CODEUNIT *curr_instr,\n    _Py_CODEUNIT *start_instr,
      _Py_CODEUNIT *close_loop_instr, _PyStackRef *stack_pointer, int chain_depth,\n
      \   _PyExitData *exit, int oparg, _PyExecutorObject *current_executor)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1201,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Python/optimizer.c:1207,1
    - Dst: initial_jump_backoff_counter
      Src: /src/cpython/Python/optimizer.c:1211,1
    - Dst: initial_resume_backoff_counter
      Src: /src/cpython/Python/optimizer.c:1214,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Python/optimizer.c:1222,1
    - Dst: initial_temperature_backoff_counter
      Src: /src/cpython/Python/optimizer.c:1225,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer.c:1232,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer.c:1235,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer.c:1236,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer.c:1237,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer.c:1238,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/optimizer.c:1240,1
    - Dst: uop_buffer_init
      Src: /src/cpython/Python/optimizer.c:1243,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - tstate
    - err
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (tracer != NULL)
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1245
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1245
    functionName: _PyJit_FinalizeTracing
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - initial_temperature_backoff_counter
    - Py_CLEAR
    - initial_jump_backoff_counter
    - Py_XDECREF
    - assert
    - uop_buffer_init
    - initial_resume_backoff_counter
    - restart_backoff_counter
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _PyJit_FinalizeTracing(PyThreadState *tstate, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - og_opcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1258
    functionName: _PyJit_EnterExecutorShouldStopTracing
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _PyJit_EnterExecutorShouldStopTracing(int og_opcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VirtualFree
      Src: /src/cpython/Python/optimizer.c:1264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _tstate
    argTypes:
    - _PyThreadStateImpl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1260
    functionDepth: 3
    functionLinenumber: 1260
    functionLinenumberEnd: 1267
    functionName: _PyJit_TracerFree
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - _PyObject_VirtualFree
    linkageType: ''
    returnType: void
    signature: void _PyJit_TracerFree(_PyThreadStateImpl *_tstate)
  - 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: 1275
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1275
    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: 1276
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1276
    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: 1277
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1277
    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: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - _PyUOpInstruction*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1291
    functionName: count_exits
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_exits(_PyUOpInstruction *buffer, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1302,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - inst
    argTypes:
    - _PyUOpInstruction*
    assertStmts:
    - condition: (base_opcode != 0)
      pos:
        line_end: 1301
        line_start: 1301
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1310
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1310
    functionName: get_cached_entries_for_side_exit
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - assert
    linkageType: ''
    returnType: int
    signature: int get_cached_entries_for_side_exit(_PyUOpInstruction *inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - inst
    - opcode
    - target
    - is_control_flow
    argTypes:
    - _PyUOpInstruction*
    - int
    - int
    - bool
    assertStmts:
    - condition: (opcode > MAX_UOP_ID && opcode <= MAX_UOP_REGS_ID)
      pos:
        line_end: 1313
        line_start: 1313
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1325
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1325
    functionName: make_exit
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void make_exit(_PyUOpInstruction *inst, int opcode, int target, bool
      is_control_flow)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1354,1
    - Dst: uop_get_target
      Src: /src/cpython/Python/optimizer.c:1355,1
    - Dst: get_cached_entries_for_side_exit
      Src: /src/cpython/Python/optimizer.c:1369,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1370,1
    - Dst: make_exit
      Src: /src/cpython/Python/optimizer.c:1374,1
    - Dst: _PyUop_num_popped
      Src: /src/cpython/Python/optimizer.c:1385,1
    - Dst: make_exit
      Src: /src/cpython/Python/optimizer.c:1390,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1401,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - _PyUOpInstruction*
    - int
    assertStmts:
    - condition: (inst->opcode != _NOP)
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_PyUop_Caching[base_exit_op].entries[exit_depth].opcode > 0)
      pos:
        line_end: 1369
        line_start: 1369
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_PyUop_Uncached[buffer[0].opcode] == _START_EXECUTOR)
      pos:
        line_end: 1400
        line_start: 1400
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1407
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1407
    functionName: prepare_for_execution
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - get_cached_entries_for_side_exit
    - uop_get_target
    - _PyUop_num_popped
    - make_exit
    - assert
    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:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - exit_count
    - length
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1424
    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: 1433
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1433
    functionName: CHECK
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 78
    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: 1438
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1438
    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:1445,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1449,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1456,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1457,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1458,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1459,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1462,1
    - Dst: target_unused
      Src: /src/cpython/Python/optimizer.c:1462,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1465,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1469,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1470,1
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer.c:1472,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1478,1
    - Dst: CHECK
      Src: /src/cpython/Python/optimizer.c:1482,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1489
    functionName: sanity_check
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - target_unused
    - CHECK
    - is_terminator
    linkageType: ''
    returnType: void
    signature: void sanity_check(_PyExecutorObject *executor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: count_exits
      Src: /src/cpython/Python/optimizer.c:1502,1
    - Dst: allocate_executor
      Src: /src/cpython/Python/optimizer.c:1503,1
    - Dst: _PyExecutor_GetColdExecutor
      Src: /src/cpython/Python/optimizer.c:1510,1
    - Dst: _PyExecutor_GetColdDynamicExecutor
      Src: /src/cpython/Python/optimizer.c:1511,1
    - Dst: initial_temperature_backoff_counter
      Src: /src/cpython/Python/optimizer.c:1516,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1520,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1536,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1537,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1538,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/cpython/Python/optimizer.c:1542,1
    - Dst: _Py_ExecutorInit
      Src: /src/cpython/Python/optimizer.c:1543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1544,1
    - Dst: Py_GETENV
      Src: /src/cpython/Python/optimizer.c:1548,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:1554,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:1556,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/optimizer.c:1557,1
    - Dst: printf
      Src: /src/cpython/Python/optimizer.c:1558,1
    - Dst: sanity_check
      Src: /src/cpython/Python/optimizer.c:1561,1
    - Dst: _PyJIT_Compile
      Src: /src/cpython/Python/optimizer.c:1569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1570,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 4
    argNames:
    - tstate
    - buffer
    - length
    - dependencies
    argTypes:
    - _PyThreadStateImpl*
    - _PyUOpInstruction*
    - int
    - _PyBloomFilter*
    assertStmts:
    - condition: (_PyUop_Uncached[dest->opcode] == _START_EXECUTOR)
      pos:
        line_end: 1537
        line_start: 1537
        source_file: /src/cpython/Python/optimizer.c
    - condition: (next_exit == -1)
      pos:
        line_end: 1535
        line_start: 1535
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_PyUop_Uncached[buffer[0].opcode] == _START_EXECUTOR)
      pos:
        line_end: 1519
        line_start: 1519
        source_file: /src/cpython/Python/optimizer.c
    - condition: (dest == executor->trace)
      pos:
        line_end: 1536
        line_start: 1536
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1575
      start: 1499
    functionDepth: 2
    functionLinenumber: 1499
    functionLinenumberEnd: 1575
    functionName: make_executor_from_uops
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_GETENV
    - _PyJIT_Compile
    - _PyObject_GC_TRACK
    - initial_temperature_backoff_counter
    - count_exits
    - allocate_executor
    - _PyExecutor_GetColdExecutor
    - sanity_check
    - _PyExecutor_GetColdDynamicExecutor
    - assert
    - Py_DECREF
    - _Py_ExecutorInit
    - printf
    - _PyUOpPrint
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      make_executor_from_uops(_PyThreadStateImpl *tstate, _PyUOpInstruction *buffer,
      int length, const _PyBloomFilter *dependencies)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer.c:1588,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/optimizer.c:1592,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/optimizer.c:1593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - _PyUOpInstruction*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1580
    functionDepth: 1
    functionLinenumber: 1580
    functionLinenumberEnd: 1594
    functionName: effective_trace_length
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - Py_FatalError
    - is_terminator
    linkageType: ''
    returnType: int
    signature: int effective_trace_length(_PyUOpInstruction *buffer, int length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1601,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1613,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1625,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - buffer
    - output
    - length
    argTypes:
    - _PyUOpInstruction*
    - _PyUOpInstruction*
    - int
    assertStmts:
    - condition: (buffer[0].opcode == _START_EXECUTOR)
      pos:
        line_end: 1600
        line_start: 1600
        source_file: /src/cpython/Python/optimizer.c
    - condition: (new_opcode != 0)
      pos:
        line_end: 1633
        line_start: 1633
        source_file: /src/cpython/Python/optimizer.c
    - condition: (output + UOP_MAX_TRACE_LENGTH == buffer)
      pos:
        line_end: 1612
        line_start: 1612
        source_file: /src/cpython/Python/optimizer.c
    - condition: (write->opcode != 0)
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1640
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1640
    functionName: stack_allocate
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int stack_allocate(_PyUOpInstruction *buffer, _PyUOpInstruction *output,
      int length)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1650,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:1652,1
    - Dst: uop_buffer_length
      Src: /src/cpython/Python/optimizer.c:1655,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1659,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1660,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:1661,1
    - Dst: _Py_BloomFilter_Init
      Src: /src/cpython/Python/optimizer.c:1664,1
    - Dst: _Py_uop_analyze_and_optimize
      Src: /src/cpython/Python/optimizer.c:1667,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1676,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1677,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1684,1
    - Dst: strncmp
      Src: /src/cpython/Python/optimizer.c:1684,1
    - Dst: strlen
      Src: /src/cpython/Python/optimizer.c:1684,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer.c:1687,1
    - Dst: is_terminator
      Src: /src/cpython/Python/optimizer.c:1690,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1693,1
    - Dst: OPT_HIST
      Src: /src/cpython/Python/optimizer.c:1700,1
    - Dst: effective_trace_length
      Src: /src/cpython/Python/optimizer.c:1700,1
    - Dst: stack_allocate
      Src: /src/cpython/Python/optimizer.c:1702,1
    - Dst: prepare_for_execution
      Src: /src/cpython/Python/optimizer.c:1704,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1705,1
    - Dst: make_executor_from_uops
      Src: /src/cpython/Python/optimizer.c:1706,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1711,1
    - Dst: _Py_set_eval_breaker_bit
      Src: /src/cpython/Python/optimizer.c:1716,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - frame
    - tstate
    - exec_ptr
    - progress_needed
    argTypes:
    - _PyInterpreterFrame*
    - PyThreadState*
    - _PyExecutorObject**
    - bool
    assertStmts:
    - condition: (_tstate->jit_tracer_state != NULL)
      pos:
        line_end: 1649
        line_start: 1649
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length <= UOP_MAX_TRACE_LENGTH)
      pos:
        line_end: 1704
        line_start: 1704
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length > 0)
      pos:
        line_end: 1658
        line_start: 1658
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length < UOP_MAX_TRACE_LENGTH)
      pos:
        line_end: 1675
        line_start: 1675
        source_file: /src/cpython/Python/optimizer.c
    - condition: (_PyOpcode_uop_name[buffer[pc].opcode])
      pos:
        line_end: 1692
        line_start: 1692
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length < UOP_MAX_TRACE_LENGTH)
      pos:
        line_end: 1659
        line_start: 1659
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length >= 1)
      pos:
        line_end: 1676
        line_start: 1676
        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: 1683
        line_start: 1683
        source_file: /src/cpython/Python/optimizer.c
    - condition: (length <= UOP_MAX_TRACE_LENGTH)
      pos:
        line_end: 1710
        line_start: 1710
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1721
      start: 1642
    functionDepth: 3
    functionLinenumber: 1642
    functionLinenumberEnd: 1721
    functionName: uop_optimize
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - stack_allocate
    - prepare_for_execution
    - uop_buffer_length
    - strncmp
    - _Py_uop_analyze_and_optimize
    - OPT_STAT_INC
    - is_terminator
    - OPT_HIST
    - make_executor_from_uops
    - _Py_set_eval_breaker_bit
    - strlen
    - assert
    - Py_XDECREF
    - effective_trace_length
    - _Py_BloomFilter_Init
    linkageType: ''
    returnType: int
    signature: "int uop_optimize(\n    _PyInterpreterFrame *frame,\n    PyThreadState
      *tstate,\n    _PyExecutorObject **exec_ptr,\n    bool progress_needed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer.c:1731,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/optimizer.c:1734,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/optimizer.c:1739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - executor
    - bloom
    argTypes:
    - _PyExecutorObject*
    - _PyBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1728
    functionDepth: 1
    functionLinenumber: 1728
    functionLinenumberEnd: 1756
    functionName: link_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyMem_Realloc
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: int
    signature: int link_executor(_PyExecutorObject *executor, const _PyBloomFilter
      *bloom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/optimizer.c:1761,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts:
    - condition: (idx >= 0 && (size_t)idx < interp->executor_count)
      pos:
        line_end: 1762
        line_start: 1762
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1772
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1772
    functionName: unlink_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Get
    - assert
    linkageType: ''
    returnType: void
    signature: void unlink_executor(_PyExecutorObject *executor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: link_executor
      Src: /src/cpython/Python/optimizer.c:1781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - executor
    - dependency_set
    argTypes:
    - _PyExecutorObject*
    - _PyBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1775
    functionDepth: 2
    functionLinenumber: 1775
    functionLinenumberEnd: 1785
    functionName: _Py_ExecutorInit
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - link_executor
    linkageType: ''
    returnType: int
    signature: int _Py_ExecutorInit(_PyExecutorObject *executor, const _PyBloomFilter
      *dependency_set)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: allocate_executor
      Src: /src/cpython/Python/optimizer.c:1790,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/optimizer.c:1792,1
    - Dst: _PyJIT_Compile
      Src: /src/cpython/Python/optimizer.c:1801,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1802,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/optimizer.c:1803,1
    - Dst: _Py_SetImmortal
      Src: /src/cpython/Python/optimizer.c:1806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1787
    functionDepth: 3
    functionLinenumber: 1787
    functionLinenumberEnd: 1808
    functionName: make_cold_executor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _Py_SetImmortal
    - Py_FatalError
    - _PyJIT_Compile
    - allocate_executor
    - Py_DECREF
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      make_cold_executor(uint16_t opcode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer.c:1813,1
    - Dst: make_cold_executor
      Src: /src/cpython/Python/optimizer.c:1815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1810
    functionDepth: 4
    functionLinenumber: 1810
    functionLinenumberEnd: 1818
    functionName: _PyExecutor_GetColdExecutor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - make_cold_executor
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      _PyExecutor_GetColdExecutor(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer.c:1823,1
    - Dst: make_cold_executor
      Src: /src/cpython/Python/optimizer.c:1825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1820
    functionDepth: 4
    functionLinenumber: 1820
    functionLinenumberEnd: 1828
    functionName: _PyExecutor_GetColdDynamicExecutor
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - make_cold_executor
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: _PyExecutorObject
    signature: '_PyExecutorObject *

      _PyExecutor_GetColdDynamicExecutor(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutor_GetColdDynamicExecutor
      Src: /src/cpython/Python/optimizer.c:1838,1
    - Dst: _PyExecutor_GetColdExecutor
      Src: /src/cpython/Python/optimizer.c:1841,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - exit
    argTypes:
    - _PyExitData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1830
    functionDepth: 5
    functionLinenumber: 1830
    functionLinenumberEnd: 1844
    functionName: _PyExecutor_ClearExit
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyExecutor_GetColdDynamicExecutor
    - _PyExecutor_GetColdExecutor
    linkageType: ''
    returnType: void
    signature: void _PyExecutor_ClearExit(_PyExitData *exit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:1855,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1856,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - executor
    argTypes:
    - _PyExecutorObject*
    assertStmts:
    - condition: (instruction->op.code == ENTER_EXECUTOR)
      pos:
        line_end: 1855
        line_start: 1855
        source_file: /src/cpython/Python/optimizer.c
    - condition: (code->co_executors->executors[index] == executor)
      pos:
        line_end: 1857
        line_start: 1857
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1864
      start: 1848
    functionDepth: 1
    functionLinenumber: 1848
    functionLinenumberEnd: 1864
    functionName: _Py_ExecutorDetach
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _PyCode_CODE
    - assert
    linkageType: ''
    returnType: void
    signature: void _Py_ExecutorDetach(_PyExecutorObject *executor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyExecutorObject_CAST
      Src: /src/cpython/Python/optimizer.c:1873,1
    - Dst: unlink_executor
      Src: /src/cpython/Python/optimizer.c:1878,1
    - Dst: executor_clear_exits
      Src: /src/cpython/Python/optimizer.c:1879,1
    - Dst: _Py_ExecutorDetach
      Src: /src/cpython/Python/optimizer.c:1880,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/cpython/Python/optimizer.c:1881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1870
    functionDepth: 2
    functionLinenumber: 1870
    functionLinenumberEnd: 1882
    functionName: executor_invalidate
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - _Py_ExecutorDetach
    - unlink_executor
    - executor_clear_exits
    - _PyObject_GC_UNTRACK
    - _PyExecutorObject_CAST
    linkageType: ''
    returnType: void
    signature: void executor_invalidate(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: executor_invalidate
      Src: /src/cpython/Python/optimizer.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1884
    functionDepth: 3
    functionLinenumber: 1884
    functionLinenumberEnd: 1889
    functionName: executor_clear
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - executor_invalidate
    linkageType: ''
    returnType: int
    signature: int executor_clear(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1894,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/optimizer.c:1895,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1897,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer.c:1898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - executor
    - obj
    argTypes:
    - _PyExecutorObject*
    - void*
    assertStmts:
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 1893
        line_start: 1893
        source_file: /src/cpython/Python/optimizer.c
    - condition: (idx >= 0 && (size_t)idx < interp->executor_count)
      pos:
        line_end: 1896
        line_start: 1896
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1899
      start: 1891
    functionDepth: 1
    functionLinenumber: 1891
    functionLinenumberEnd: 1899
    functionName: _Py_Executor_DependsOn
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - _Py_BloomFilter_Add
    - _PyInterpreterState_GET
    - assert
    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:1909,1
    - Dst: _Py_BloomFilter_Add
      Src: /src/cpython/Python/optimizer.c:1910,1
    - Dst: PyList_New
      Src: /src/cpython/Python/optimizer.c:1912,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1919,1
    - Dst: bloom_filter_may_contain
      Src: /src/cpython/Python/optimizer.c:1920,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/optimizer.c:1921,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/optimizer.c:1926,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/optimizer.c:1927,1
    - Dst: executor_invalidate
      Src: /src/cpython/Python/optimizer.c:1928,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:1930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1933,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/optimizer.c:1936,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer.c:1937,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/optimizer.c:1939,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - interp
    - obj
    - is_invalidation
    argTypes:
    - PyInterpreterState*
    - void*
    - int
    assertStmts:
    - condition: (interp->executor_ptrs[i]->vm_data.valid)
      pos:
        line_end: 1918
        line_start: 1918
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1940
      start: 1905
    functionDepth: 4
    functionLinenumber: 1905
    functionLinenumberEnd: 1940
    functionName: _Py_Executors_InvalidateDependency
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 6
    functionsReached:
    - OPT_STAT_INC
    - PyList_Append
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyErr_Clear
    - PyList_New
    - Py_XDECREF
    - assert
    - Py_DECREF
    - _Py_Executors_InvalidateAll
    - _Py_BloomFilter_Add
    - bloom_filter_may_contain
    - executor_invalidate
    - _Py_BloomFilter_Init
    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:1949,1
    - Dst: _PyCode_Clear_Executors
      Src: /src/cpython/Python/optimizer.c:1952,1
    - Dst: executor_invalidate
      Src: /src/cpython/Python/optimizer.c:1955,1
    - Dst: OPT_STAT_INC
      Src: /src/cpython/Python/optimizer.c:1958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - interp
    - is_invalidation
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts:
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 1948
        line_start: 1948
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1961
      start: 1943
    functionDepth: 4
    functionLinenumber: 1943
    functionLinenumberEnd: 1961
    functionName: _Py_Executors_InvalidateAll
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 6
    functionsReached:
    - _PyCode_Clear_Executors
    - OPT_STAT_INC
    - executor_invalidate
    - assert
    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:1967,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:1976,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/optimizer.c:1978,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/optimizer.c:1985,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/optimizer.c:1986,1
    - Dst: executor_invalidate
      Src: /src/cpython/Python/optimizer.c:1987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:1989,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/optimizer.c:1992,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/optimizer.c:1993,1
    - Dst: _Py_Executors_InvalidateAll
      Src: /src/cpython/Python/optimizer.c:1995,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (exec->vm_data.valid)
      pos:
        line_end: 1975
        line_start: 1975
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 1996
      start: 1963
    functionDepth: 4
    functionLinenumber: 1963
    functionLinenumberEnd: 1996
    functionName: _Py_Executors_InvalidateCold
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 1
    functionsReached:
    - assert
    - PyList_GET_ITEM
    - PyErr_Clear
    - PyList_New
    - Py_XDECREF
    - PyList_Append
    - Py_DECREF
    - _Py_Executors_InvalidateAll
    - PyList_GET_SIZE
    - executor_invalidate
    linkageType: ''
    returnType: void
    signature: void _Py_Executors_InvalidateCold(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - input
    - size
    - buffer
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2000
    functionDepth: 0
    functionLinenumber: 2000
    functionLinenumberEnd: 2016
    functionName: escape_angles
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int escape_angles(const char *input, Py_ssize_t size, char *buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/optimizer.c:2022,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/optimizer.c:2024,1
    - Dst: PyBytes_AsString
      Src: /src/cpython/Python/optimizer.c:2027,1
    - Dst: PyBytes_Size
      Src: /src/cpython/Python/optimizer.c:2028,1
    - Dst: escape_angles
      Src: /src/cpython/Python/optimizer.c:2035,1
    - Dst: fwrite
      Src: /src/cpython/Python/optimizer.c:2036,1
    - Dst: fwrite
      Src: /src/cpython/Python/optimizer.c:2038,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/optimizer.c:2040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - PyObject*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2018
    functionDepth: 5
    functionLinenumber: 2018
    functionLinenumberEnd: 2041
    functionName: write_str
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 5
    functionsReached:
    - PyUnicode_AsEncodedString
    - PyBytes_Size
    - PyErr_Clear
    - escape_angles
    - PyBytes_AsString
    - Py_DECREF
    - fwrite
    linkageType: ''
    returnType: void
    signature: void write_str(PyObject *str, FILE *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/cpython/Python/optimizer.c:2046,1
    - Dst: _PyCode_CODE
      Src: /src/cpython/Python/optimizer.c:2048,1
    - Dst: PyCode_Addr2Line
      Src: /src/cpython/Python/optimizer.c:2053,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/optimizer.c:2056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - code
    - executor
    argTypes:
    - PyCodeObject*
    - _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2043
    functionDepth: 2
    functionLinenumber: 2043
    functionLinenumberEnd: 2059
    functionName: find_line_number
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - _Py_GetBaseCodeUnit
    - PyCode_Addr2Line
    - _PyCode_CODE
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int find_line_number(PyCodeObject *code, _PyExecutorObject *executor)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inst
    - max_hotness
    argTypes:
    - _PyUOpInstruction*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2093
    functionName: get_background_color
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      get_background_color(_PyUOpInstruction const *inst, uint64_t max_hotness)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inst
    - max_hotness
    argTypes:
    - _PyUOpInstruction*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2107
    functionName: get_foreground_color
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      get_foreground_color(_PyUOpInstruction const *inst, uint64_t max_hotness)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_background_color
      Src: /src/cpython/Python/optimizer.c:2122,1
    - Dst: get_foreground_color
      Src: /src/cpython/Python/optimizer.c:2123,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2124,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - executor
    - i
    - out
    argTypes:
    - _PyExecutorObject*
    - uint32_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2130
    functionName: write_row_for_uop
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - fprintf
    - get_background_color
    - get_foreground_color
    linkageType: ''
    returnType: void
    signature: void write_row_for_uop(_PyExecutorObject *executor, uint32_t i, FILE
      *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - inst
    argTypes:
    - _PyUOpInstruction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2132
    functionDepth: 0
    functionLinenumber: 2132
    functionLinenumberEnd: 2137
    functionName: is_stop
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_stop(_PyUOpInstruction const *inst)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2151,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2152,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2155,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2156,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2158,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2161,1
    - Dst: write_str
      Src: /src/cpython/Python/optimizer.c:2162,1
    - Dst: find_line_number
      Src: /src/cpython/Python/optimizer.c:2163,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2164,1
    - Dst: write_row_for_uop
      Src: /src/cpython/Python/optimizer.c:2167,1
    - Dst: is_stop
      Src: /src/cpython/Python/optimizer.c:2168,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2172,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2173,1
    - Dst: _PyExecutor_GetColdExecutor
      Src: /src/cpython/Python/optimizer.c:2176,1
    - Dst: _PyExecutor_GetColdDynamicExecutor
      Src: /src/cpython/Python/optimizer.c:2177,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2184,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:2191,1
    - Dst: assert
      Src: /src/cpython/Python/optimizer.c:2195,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2204,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2205,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2210,1
    - Dst: is_stop
      Src: /src/cpython/Python/optimizer.c:2213,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - executor
    - out
    argTypes:
    - _PyExecutorObject*
    - FILE*
    assertStmts:
    - condition: (base_exit_opcode == _EXIT_TRACE || base_exit_opcode == _DYNAMIC_EXIT)
      pos:
        line_end: 2194
        line_start: 2194
        source_file: /src/cpython/Python/optimizer.c
    - condition: (inst->format == UOP_FORMAT_JUMP)
      pos:
        line_end: 2190
        line_start: 2190
        source_file: /src/cpython/Python/optimizer.c
    constantsTouched: []
    func_position:
      end: 2217
      start: 2147
    functionDepth: 5
    functionLinenumber: 2147
    functionLinenumberEnd: 2217
    functionName: executor_to_gv
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - write_row_for_uop
    - write_str
    - find_line_number
    - _PyExecutor_GetColdExecutor
    - is_stop
    - _PyExecutor_GetColdDynamicExecutor
    - assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: void executor_to_gv(_PyExecutorObject *executor, FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2223,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2224,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2225,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/optimizer.c:2226,1
    - Dst: executor_to_gv
      Src: /src/cpython/Python/optimizer.c:2228,1
    - Dst: fprintf
      Src: /src/cpython/Python/optimizer.c:2230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2220
    functionDepth: 6
    functionLinenumber: 2220
    functionLinenumberEnd: 2232
    functionName: _PyDumpExecutors
    functionSourceFile: /src/cpython/Python/optimizer.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PyInterpreterState_Get
    - executor_to_gv
    linkageType: ''
    returnType: int
    signature: int _PyDumpExecutors(FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/optimizer.c:2239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2241
    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:2247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct _PyExecutorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2243
    functionDepth: 1
    functionLinenumber: 2243
    functionLinenumberEnd: 2248
    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: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    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:42,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:45,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:47,1
    - Dst: _Py_Specialize_BinaryOp
      Src: /src/cpython/Python/generated_cases.c.h:48,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:49,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:50,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:52,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:53,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:55,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:56,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:61,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:62,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:63,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:64,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:66,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:68,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:70,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:79,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:80,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:81,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:87,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:88,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:89,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:90,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyEval_BinaryOps[oparg])
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (NB_ADD <= oparg)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg <= NB_OPARG_LAST)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 93
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 93
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_Specialize_BinaryOp
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - OPCODE_DEFERRED_INC
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:104,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:115,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:116,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:117,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:118,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:119,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:125,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:126,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:127,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:128,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:129,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:136,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:137,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:138,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:138,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:139,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:139,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:140,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/generated_cases.c.h:144,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:146,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:148,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:155,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:155,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:155,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:156,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:161,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:161,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:161,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:162,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:166,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyFloat_CheckExact(left_o))
      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: 117
        line_start: 117
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 168
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 168
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyFloat_FromDouble
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    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:179,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:190,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:191,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:192,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:193,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:194,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:200,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:201,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:202,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:203,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:204,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:211,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:212,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:213,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:213,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:214,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:214,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:215,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/generated_cases.c.h:215,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:216,1
    - Dst: _PyCompactLong_Add
      Src: /src/cpython/Python/generated_cases.c.h:217,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:218,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:219,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:220,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:221,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:229,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:229,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:229,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:230,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:235,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:235,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:235,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:236,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:240,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 242
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 242
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - _PyCompactLong_Add
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyLong_BothAreCompact
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    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:253,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:265,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:266,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:267,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:268,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:269,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:275,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:276,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:277,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:278,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:279,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:287,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:288,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:289,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:289,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:290,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:290,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:291,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/generated_cases.c.h:292,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:294,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:296,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:303,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:303,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:303,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:304,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:309,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:309,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:309,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:310,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:314,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(right_o))
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 316
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 316
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - PyUnicode_Concat
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_ADD_UNICODE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:327,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:340,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:341,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:342,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:344,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:345,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:346,1
    - Dst: _PyBinaryOpSpecializationDescr*::guard
      Src: /src/cpython/Python/generated_cases.c.h:348,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:349,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:349,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:350,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:352,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:353,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:354,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:360,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:361,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:362,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:363,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:365,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:366,1
    - Dst: _PyBinaryOpSpecializationDescr*::action
      Src: /src/cpython/Python/generated_cases.c.h:367,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:368,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:370,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:372,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:372,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:373,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/generated_cases.c.h:373,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/generated_cases.c.h:373,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:374,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:374,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/generated_cases.c.h:374,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:375,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:384,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:385,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:386,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:392,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:393,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:394,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:395,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!d->result_unique || Py_REFCNT(res_o) == 1 || _Py_IsImmortal(res_o))
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (d != NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (d->result_type == NULL || Py_TYPE(res_o) == d->result_type)
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!PyFloat_CheckExact(res_o) || Py_REFCNT(res_o) == 1)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 398
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 398
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - _PyBinaryOpSpecializationDescr*::action
    - read_obj
    - _PyBinaryOpSpecializationDescr*::guard
    - assert
    - Py_TYPE
    - PyFloat_CheckExact
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - Py_REFCNT
    - _Py_IsImmortal
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_EXTEND)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:409,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:419,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:420,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:421,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:422,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:423,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:429,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:430,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:431,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:432,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:433,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:441,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:442,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:442,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:443,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:443,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:443,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:446,1
    - Dst: CURRENT_OPERAND0_16
      Src: /src/cpython/Python/generated_cases.c.h:449,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:451,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:452,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:452,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:453,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:454,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:455,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:456,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:458,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:459,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/generated_cases.c.h:459,1
    - Dst: PyStackRef_IsHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:459,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:460,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:461,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:462,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:464,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:465,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Python/generated_cases.c.h:466,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:467,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:468,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:471,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:473,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:477,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (next_instr->op.code == STORE_FAST)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_REFCNT(left_o) >= 2 || !PyStackRef_IsHeapSafe(left))
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(right)))
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 451
        line_start: 451
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 479
      start: 400
    functionDepth: 5
    functionLinenumber: 400
    functionLinenumberEnd: 479
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - PyUnicode_Append
    - assert
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - CURRENT_OPERAND0_16
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsHeapSafe
    - Py_REFCNT
    - _Py_DECREF_SPECIALIZED
    - PyUnicode_CheckExact
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    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:490,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:501,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:502,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:503,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:504,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:505,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:511,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:512,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:513,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:514,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:515,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:522,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:523,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:524,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:524,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:525,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:525,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:526,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/generated_cases.c.h:530,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:532,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:534,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:541,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:541,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:541,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:542,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:547,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:547,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:547,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:548,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:552,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 554
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 554
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyFloat_FromDouble
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    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:565,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:576,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:577,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:578,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:579,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:580,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:586,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:587,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:588,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:589,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:590,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:597,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:598,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:599,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:599,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:600,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:600,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:601,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/generated_cases.c.h:601,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:602,1
    - Dst: _PyCompactLong_Multiply
      Src: /src/cpython/Python/generated_cases.c.h:603,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:604,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:605,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:606,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:607,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:615,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:615,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:615,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:616,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:621,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:621,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:621,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:622,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:626,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 628
      start: 556
    functionDepth: 4
    functionLinenumber: 556
    functionLinenumberEnd: 628
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - _PyLong_CheckExactAndCompact
    - _PyCompactLong_Multiply
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyLong_BothAreCompact
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    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:639,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:651,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:652,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:653,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:654,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:655,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:657,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:658,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:659,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:660,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:668,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:669,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:670,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:670,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:671,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:672,1
    - Dst: _PyDict_Subscript
      Src: /src/cpython/Python/generated_cases.c.h:673,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:674,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:676,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:678,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:687,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:688,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:689,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:695,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:696,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:697,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:698,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_TYPE(dict)->tp_as_mapping->mp_subscript == _PyDict_Subscript)
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 701
      start: 630
    functionDepth: 8
    functionLinenumber: 630
    functionLinenumberEnd: 701
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - _PyDict_Subscript
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    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:712,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:721,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:722,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:723,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:730,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:730,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/generated_cases.c.h:731,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:732,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:733,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:734,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:737,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:739,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:740,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:741,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:743,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:743,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:744,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:746,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:747,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:748,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:750,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:751,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:752,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:753,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:754,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:755,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:757,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:762,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:763,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:767,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:771,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:771,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:772,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:774,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:775,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:776,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:777,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:780,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:781,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:782,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:783,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:785,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 770
        line_start: 770
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 775
        line_start: 775
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 722
        line_start: 722
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFunction_Check(getitem_o))
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 786
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 786
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - _PyFrame_PushUnchecked
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - PyType_HasFeature
    - LOAD_SP
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    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:797,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:809,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:810,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:811,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:812,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:813,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:819,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:820,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:821,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:822,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:823,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:831,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:832,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:833,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:833,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:834,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:834,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/generated_cases.c.h:835,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:837,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:840,1
    - Dst: _PyList_GetItemRef
      Src: /src/cpython/Python/generated_cases.c.h:841,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:842,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:844,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:845,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:846,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:848,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:850,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:851,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:852,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:853,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:855,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:856,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:857,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:859,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:866,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:866,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:866,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:867,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:874,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:875,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:876,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:877,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:879,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 821
        line_start: 821
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (res_o != NULL)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 880
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 880
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyList_GET_ITEM
    - assert
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_FromPyObjectNew
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyLong_CheckExact
    - _PyLong_CompactValue
    - _PyList_GetItemRef
    - PyStackRef_XCLOSE
    - _PyFrame_GetStackPointer
    - _PyLong_CheckExactAndCompact
    - PyList_CheckExact
    - PyList_GET_SIZE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    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:891,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:904,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/generated_cases.c.h:905,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:906,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:907,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:908,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:914,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:915,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:916,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:917,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:918,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:927,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:928,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/generated_cases.c.h:928,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:929,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:929,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:930,1
    - Dst: _PyList_SliceSubscript
      Src: /src/cpython/Python/generated_cases.c.h:931,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:932,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:933,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:935,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:937,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:946,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:947,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:948,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:954,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:955,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:956,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:957,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 906
        line_start: 906
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 928
        line_start: 928
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PySlice_Check(sub))
      pos:
        line_end: 927
        line_start: 927
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 960
      start: 882
    functionDepth: 9
    functionLinenumber: 882
    functionLinenumberEnd: 960
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PySlice_Check
    - _PyList_SliceSubscript
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyList_CheckExact
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    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:971,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:983,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:984,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:985,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:986,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:987,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:993,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:994,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:995,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:996,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:997,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Python/generated_cases.c.h:999,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1000,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1001,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1002,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1010,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1011,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1012,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1012,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1013,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1013,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/generated_cases.c.h:1014,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1015,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1016,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1017,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/generated_cases.c.h:1020,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1021,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1022,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1023,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/generated_cases.c.h:1025,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1026,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1027,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/generated_cases.c.h:1028,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1031,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1036,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1036,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1036,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1037,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1042,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1042,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1042,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1043,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1047,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1035
        line_start: 1035
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 985
        line_start: 985
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1015
        line_start: 1015
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 995
        line_start: 995
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1041
        line_start: 1041
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1000
        line_start: 1000
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (c < 128)
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1049
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 1049
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - PyUnicode_1BYTE_DATA
    - JUMP_TO_PREDICTED
    - _PyLong_IsNonNegativeCompact
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - PyLong_CheckExact
    - PyUnicode_IS_COMPACT_ASCII
    - PyUnicode_GET_LENGTH
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_FromPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - _Py_SINGLETON
    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:1060,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1072,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:1073,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1074,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1075,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1076,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1082,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1083,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1084,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1085,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1086,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1093,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1094,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1095,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1095,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1096,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1096,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/generated_cases.c.h:1097,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1098,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1099,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1100,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:1103,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1104,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1105,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1106,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1112,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1113,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1114,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1114,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1115,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1115,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1116,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:1118,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1119,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1120,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1127,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1127,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1127,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1128,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1135,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1136,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1137,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1138,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1113
        line_start: 1113
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (res_o != NULL)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(tuple))
      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: 1074
        line_start: 1074
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 1114
        line_start: 1114
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1084
        line_start: 1084
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1094
        line_start: 1094
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1126
        line_start: 1126
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1141
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1141
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyTuple_GET_ITEM
    - _PyLong_IsNonNegativeCompact
    - DISPATCH
    - assert
    - PyStackRef_CLOSE_SPECIALIZED
    - PyTuple_GET_SIZE
    - PyStackRef_FromPyObjectNew
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_CheckExact
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyLong_CheckExact
    - _PyFrame_GetStackPointer
    - _PyLong_CheckExactAndCompact
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_TUPLE_INT)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1152,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1164,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:1165,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1166,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1167,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1168,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1174,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1175,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1176,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1177,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1178,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1186,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1187,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1188,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1188,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1189,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1189,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/generated_cases.c.h:1190,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1191,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1192,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1193,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/generated_cases.c.h:1196,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1197,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1198,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1199,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/generated_cases.c.h:1201,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/generated_cases.c.h:1202,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/generated_cases.c.h:1202,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1203,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1204,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1205,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1207,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/generated_cases.c.h:1208,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1211,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1216,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1216,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1216,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1217,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1222,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1222,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1222,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1223,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1227,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1187
        line_start: 1187
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1191
        line_start: 1191
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1215
        line_start: 1215
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1176
        line_start: 1176
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 1188
        line_start: 1188
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1203
        line_start: 1203
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1221
        line_start: 1221
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1166
        line_start: 1166
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1197
        line_start: 1197
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1229
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1229
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - PyUnicode_READ_CHAR
    - _PyLong_IsNonNegativeCompact
    - _PyLong_CheckExactAndCompact
    - Py_ARRAY_LENGTH
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - PyLong_CheckExact
    - PyUnicode_GET_LENGTH
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_FromPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - _Py_SINGLETON
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBSCR_USTR_INT)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1240,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1251,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1252,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1253,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1254,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1255,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1261,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1262,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1263,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1264,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1265,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1272,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1273,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1274,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1274,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1275,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1275,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1276,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/generated_cases.c.h:1280,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1282,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1284,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1291,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1291,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1291,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1292,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1297,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1297,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1297,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1298,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1302,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1263
        line_start: 1263
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1253
        line_start: 1253
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1290
        line_start: 1290
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1296
        line_start: 1296
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1304
      start: 1231
    functionDepth: 3
    functionLinenumber: 1231
    functionLinenumberEnd: 1304
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyFloat_FromDouble
    - PyStackRef_CLOSE_SPECIALIZED
    - JUMP_TO_LABEL
    - PyFloat_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    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:1315,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1326,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:1327,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1328,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1329,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1330,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1336,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:1337,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1338,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1339,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1340,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1347,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1348,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1349,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1349,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1350,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1350,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1351,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/generated_cases.c.h:1351,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1352,1
    - Dst: _PyCompactLong_Subtract
      Src: /src/cpython/Python/generated_cases.c.h:1353,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1354,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1355,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1356,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1357,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1365,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1365,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1365,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1366,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1371,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1371,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1371,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:1372,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1376,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 1348
        line_start: 1348
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1370
        line_start: 1370
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 1349
        line_start: 1349
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1355
        line_start: 1355
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (BINARY_OP))
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 1350
        line_start: 1350
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1378
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1378
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - _PyCompactLong_Subtract
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyLong_BothAreCompact
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_OP_SUBTRACT_INT)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1387,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:1395,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1403,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1404,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1405,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1407,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1408,1
    - Dst: _PyList_BinarySlice
      Src: /src/cpython/Python/generated_cases.c.h:1409,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1410,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1412,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1413,1
    - Dst: _PyTuple_BinarySlice
      Src: /src/cpython/Python/generated_cases.c.h:1414,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1415,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:1417,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1418,1
    - Dst: _PyUnicode_BinarySlice
      Src: /src/cpython/Python/generated_cases.c.h:1419,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1420,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/generated_cases.c.h:1423,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1428,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/generated_cases.c.h:1429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:1430,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1431,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1434,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1438,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1442,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1446,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1447,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1449,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1451,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1453,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1457,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1380
    functionDepth: 7
    functionLinenumber: 1380
    functionLinenumberEnd: 1459
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PySlice_New
    - OPCODE_DEFERRED_INC
    - _PyUnicode_BinarySlice
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - _PyList_BinarySlice
    - INSTRUCTION_STATS
    - PyObject_GetItem
    - JUMP_TO_LABEL
    - Py_DECREF
    - PyStackRef_CLOSE
    - PyUnicode_CheckExact
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyTuple_BinarySlice
    - PyList_CheckExact
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BINARY_SLICE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1468,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1476,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1477,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1481,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/generated_cases.c.h:1484,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1486,1
    - Dst: _PyInterpolation_Build
      Src: /src/cpython/Python/generated_cases.c.h:1487,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1488,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1491,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1492,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1493,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1494,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1500,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1501,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1502,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1503,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1505,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1506,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1507,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1508,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1510,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1512,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1515,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1461
    functionDepth: 2
    functionLinenumber: 1461
    functionLinenumberEnd: 1517
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - _Py_STR
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - _PyInterpolation_Build
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_INTERPOLATION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1526,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1530,1
    - Dst: _PyList_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/generated_cases.c.h:1531,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1532,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1534,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1536,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1539,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1519
    functionDepth: 5
    functionLinenumber: 1519
    functionLinenumberEnd: 1541
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - PyStackRef_FromPyObjectStealMortal
    - _PyFrame_GetStackPointer
    - _PyList_FromStackRefStealOnSuccess
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_LIST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1550,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1554,1
    - Dst: _Py_BuildMap_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:1555,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1556,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1559,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1560,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1562,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1565,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1543
    functionDepth: 14
    functionLinenumber: 1543
    functionLinenumberEnd: 1567
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _Py_BuildMap_StackRefSteal
    - PyStackRef_FromPyObjectStealMortal
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_MAP)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1576,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1580,1
    - Dst: PySet_New
      Src: /src/cpython/Python/generated_cases.c.h:1581,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1582,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1584,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1589,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1591,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1593,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1594,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1601,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:1602,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1602,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1603,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1606,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1607,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1608,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1613,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1614,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:1615,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1616,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1617,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1619,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1622,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1569
    functionDepth: 13
    functionLinenumber: 1569
    functionLinenumberEnd: 1624
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - _PySet_AddTakeRef
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PySet_New
    - PyStackRef_FromPyObjectStealMortal
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_SET)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1633,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1637,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1638,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1639,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/generated_cases.c.h:1640,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1641,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1646,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1648,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1650,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1652,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1654,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1657,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1626
    functionDepth: 3
    functionLinenumber: 1626
    functionLinenumberEnd: 1659
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PySlice_New
    - PyStackRef_FromPyObjectStealMortal
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_SLICE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1668,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1672,1
    - Dst: _Py_BuildString_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:1673,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1674,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1677,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1678,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1680,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1683,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1661
    functionDepth: 8
    functionLinenumber: 1661
    functionLinenumberEnd: 1685
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _Py_BuildString_StackRefSteal
    - _PyFrame_GetStackPointer
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_STRING)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1694,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1700,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1701,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1702,1
    - Dst: _PyTemplate_Build
      Src: /src/cpython/Python/generated_cases.c.h:1703,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1704,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1706,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1707,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1708,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1709,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1711,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1712,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1713,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1714,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1716,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1721,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1723
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyTemplate_Build
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_TEMPLATE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1732,1
    - Dst: _PyTuple_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/generated_cases.c.h:1736,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1738,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:1740,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1743,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1725
    functionDepth: 3
    functionLinenumber: 1725
    functionLinenumberEnd: 1745
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_FromPyObjectStealMortal
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyTuple_FromStackRefStealOnSuccess
    linkageType: ''
    returnType: void
    signature: void TARGET(BUILD_TUPLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1754,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1755,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/generated_cases.c.h:1756,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "Executing a cache.")
      pos:
        line_end: 1754
        line_start: 1754
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 1758
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1758
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - Py_FatalError
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(CACHE)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1767,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:1780,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:1783,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1785,1
    - Dst: _Py_Specialize_Call
      Src: /src/cpython/Python/generated_cases.c.h:1786,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1786,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1787,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:1788,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:1790,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:1791,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:1797,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1797,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1798,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1800,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1803,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1806,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1807,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1808,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1814,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1817,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:1821,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:1822,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:1825,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:1826,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:1826,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1829,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:1830,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1834,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1836,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1838,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:1841,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1845,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:1846,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1855,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1858,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1859,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1861,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1867,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1868,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:1869,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1870,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1872,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:1875,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1760
    functionDepth: 13
    functionLinenumber: 1760
    functionLinenumberEnd: 1876
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - DISPATCH
    - PyStackRef_TYPE
    - OPCODE_DEFERRED_INC
    - Py_TYPE
    - DISPATCH_SAME_OPARG
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - _Py_Specialize_Call
    - read_u16
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_VectorCallInstrumentation_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1887,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:1899,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1900,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1901,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1902,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:1909,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1910,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1911,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1912,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1913,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1914,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:1916,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1917,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1918,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1919,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:1922,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1923,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1924,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1925,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1931,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1932,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1933,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:1938,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1939,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:1939,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1940,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:1940,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1942,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1943,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1944,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:1946,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:1948,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:1949,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1950,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:1951,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:1953,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1954,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Python/generated_cases.c.h:1955,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1956,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1958,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:1960,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:1962,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1965,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:1966,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1967,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1974,1
    - Dst: _PyFrame_PushTrampolineUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:1975,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1977,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1978,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:1978,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:1979,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:1979,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:1980,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1981,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:1982,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1984,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:1986,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1988,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/generated_cases.c.h:1989,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:1990,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:1991,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:1995,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2000,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:2000,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:2001,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2002,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2003,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2004,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:2007,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:2008,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:2009,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:2010,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2012,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1923
        line_start: 1923
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyType_Check(callable_o))
      pos:
        line_end: 1939
        line_start: 1939
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyFrame_GetBytecode(shim)[1].op.code == RETURN_VALUE)
      pos:
        line_end: 1978
        line_start: 1978
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1900
        line_start: 1900
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tp->tp_flags & Py_TPFLAGS_HEAPTYPE)
      pos:
        line_end: 1942
        line_start: 1942
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2002
        line_start: 2002
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyFrame_GetBytecode(shim)[0].op.code == EXIT_INIT_CHECK)
      pos:
        line_end: 1977
        line_start: 1977
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1917
        line_start: 1917
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 1938
        line_start: 1938
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tp->tp_new == PyBaseObject_Type.tp_new)
      pos:
        line_end: 1941
        line_start: 1941
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tp->tp_alloc == PyType_GenericAlloc)
      pos:
        line_end: 1943
        line_start: 1943
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 1949
        line_start: 1949
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 1999
        line_start: 1999
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2013
      start: 1878
    functionDepth: 13
    functionLinenumber: 1878
    functionLinenumberEnd: 2013
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyType_Check
    - DISPATCH
    - _PyFrame_GetBytecode
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - _PyFrame_PushTrampolineUnchecked
    - PyStackRef_FromPyObjectSteal
    - read_u32
    - STAT_INC
    - PyStackRef_DUP
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyEval_FrameClearAndPop
    - LOAD_SP
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - PyType_GenericAlloc
    - _PyThreadState_HasStackSpace
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    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:2024,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:2034,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2035,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2036,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2037,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2044,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2045,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2046,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2047,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2049,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2049,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2050,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2051,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2052,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2058,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2058,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2059,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2060,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:2061,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:2063,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2066,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2067,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2068,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:2073,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2074,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:2075,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2076,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2077,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2078,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2082,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2083,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2084,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2089,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2090,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:2090,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2093,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2094,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2095,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2096,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2101,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:2104,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2105,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2106,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2107,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2113,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2114,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2115,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2121,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2122,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:2123,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:2129,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2142,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:2142,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:2143,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2145,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2146,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2147,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2148,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:2151,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:2152,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:2153,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:2154,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 2057
        line_start: 2057
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2076
        line_start: 2076
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2113
        line_start: 2113
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 2141
        line_start: 2141
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2105
        line_start: 2105
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFunction_Check(callable_o))
      pos:
        line_end: 2089
        line_start: 2089
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2082
        line_start: 2082
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2094
        line_start: 2094
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2035
        line_start: 2035
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2045
        line_start: 2045
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2050
        line_start: 2050
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2146
        line_start: 2146
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2157
      start: 2015
    functionDepth: 1
    functionLinenumber: 2015
    functionLinenumberEnd: 2157
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_Check
    - DISPATCH
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - read_u32
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - LOAD_SP
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    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:2168,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:2178,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2179,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2180,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2181,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:2188,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2189,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2190,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2191,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2192,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2193,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:2196,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2197,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2198,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2199,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2202,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2203,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2204,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2206,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2207,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2208,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2209,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2215,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2216,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2216,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2217,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2217,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:2218,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:2220,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2221,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/generated_cases.c.h:2221,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2224,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2225,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2226,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2232,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2233,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2234,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2240,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2242,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2246,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2246,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:2247,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:2248,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:2248,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2249,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:2250,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2254,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2256,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2258,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:2260,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2273,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:2273,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:2274,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2275,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2276,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2277,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:2280,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:2281,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:2282,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:2283,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2191
        line_start: 2191
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2202
        line_start: 2202
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2207
        line_start: 2207
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 2215
        line_start: 2215
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2275
        line_start: 2275
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyMethod_Type)
      pos:
        line_end: 2216
        line_start: 2216
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2179
        line_start: 2179
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_FunctionCheck(callable))
      pos:
        line_end: 2220
        line_start: 2220
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2232
        line_start: 2232
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 2245
        line_start: 2245
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 2272
        line_start: 2272
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2286
      start: 2159
    functionDepth: 13
    functionLinenumber: 2159
    functionLinenumberEnd: 2286
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - PyStackRef_FunctionCheck
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - read_u32
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BOUND_METHOD_GENERAL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2297,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2308,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:2309,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2310,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2311,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2312,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2316,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2317,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2318,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2327,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2331,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2332,1
    - Dst: _Py_CallBuiltinClass_StackRef
      Src: /src/cpython/Python/generated_cases.c.h:2333,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2337,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2339,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2342,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2344,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2345,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2346,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2351,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Python/generated_cases.c.h:2352,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2353,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2359,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2360,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2361,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2362,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2366,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2367,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2368,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2370,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2316
        line_start: 2316
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2310
        line_start: 2310
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2374
      start: 2288
    functionDepth: 2
    functionLinenumber: 2288
    functionLinenumberEnd: 2374
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyType_Check
    - DISPATCH
    - assert
    - _Py_CallBuiltinClass_StackRef
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_CLASS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2385,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2396,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2397,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2398,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2399,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2400,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/generated_cases.c.h:2402,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2403,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2404,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2405,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2414,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2418,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2419,1
    - Dst: _Py_BuiltinCallFast_StackRef
      Src: /src/cpython/Python/generated_cases.c.h:2420,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2425,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2427,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2430,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2432,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2433,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2434,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2439,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Python/generated_cases.c.h:2440,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2441,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2447,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2448,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2449,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2450,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2454,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2455,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2456,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2458,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2403
        line_start: 2403
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2398
        line_start: 2398
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2462
      start: 2376
    functionDepth: 2
    functionLinenumber: 2376
    functionLinenumberEnd: 2462
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyCFunction_GET_FLAGS
    - assert
    - _Py_BuiltinCallFast_StackRef
    - PyCFunction_CheckExact
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_FAST)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2473,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2484,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2485,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2486,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2487,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2488,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/generated_cases.c.h:2490,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2491,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2492,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2493,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2502,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2506,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2507,1
    - Dst: _Py_BuiltinCallFastWithKeywords_StackRef
      Src: /src/cpython/Python/generated_cases.c.h:2508,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2509,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2511,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2514,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2516,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2517,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2518,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2523,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Python/generated_cases.c.h:2524,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2525,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2531,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2532,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2533,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2534,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2538,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2539,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2540,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2542,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2486
        line_start: 2486
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2491
        line_start: 2491
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2546
      start: 2464
    functionDepth: 2
    functionLinenumber: 2464
    functionLinenumberEnd: 2546
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyCFunction_GET_FLAGS
    - assert
    - PyCFunction_CheckExact
    - _Py_BuiltinCallFastWithKeywords_StackRef
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_FAST_WITH_KEYWORDS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2557,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2572,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2573,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2574,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2575,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2576,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/generated_cases.c.h:2578,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2579,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2580,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2581,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2584,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2588,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2589,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2590,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/generated_cases.c.h:2595,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2596,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2597,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2598,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2604,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2605,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2608,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Python/generated_cases.c.h:2609,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2611,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/generated_cases.c.h:2612,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Python/generated_cases.c.h:2612,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2612,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2613,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/generated_cases.c.h:2614,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2615,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:2615,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2617,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2621,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2629,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2630,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2631,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2632,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2638,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2639,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2640,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2641,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2645,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2646,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2647,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2649,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2579
        line_start: 2579
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2574
        line_start: 2574
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2588
        line_start: 2588
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 2596
        line_start: 2596
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 2614
        line_start: 2614
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2653
      start: 2548
    functionDepth: 1
    functionLinenumber: 2548
    functionLinenumberEnd: 2653
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyCFunction_GET_FLAGS
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyCFunction_CheckExact
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - INSTRUCTION_STATS
    - _Py_ReachedRecursionLimit
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyCFunction_GET_SELF
    - PyStackRef_IsNull
    - _PyCFunction_TrampolineCall
    - PyCFunction_GET_FUNCTION
    - _PyErr_Occurred
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - _Py_LeaveRecursiveCallTstate
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_BUILTIN_O)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2664,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2677,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2678,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2679,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2680,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2681,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2688,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2689,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2690,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Python/generated_cases.c.h:2691,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2691,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2692,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2694,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2696,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/generated_cases.c.h:2697,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2698,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2700,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2703,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2705,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2706,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2707,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2716,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2717,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2719,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2719,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2720,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2721,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2721,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2723,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:2724,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2725,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2727,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2728,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2729,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2730,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2732,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2733,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2734,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2735,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2737,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2738,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2739,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2740,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2742,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2744,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2750,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2751,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:2752,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2753,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2755,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2758,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_FUNCTION_EX))
      pos:
        line_end: 2679
        line_start: 2679
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2718
        line_start: 2718
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2720
        line_start: 2720
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2759
      start: 2655
    functionDepth: 5
    functionLinenumber: 2655
    functionLinenumberEnd: 2759
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PySequence_Tuple
    - DISPATCH
    - PyObject_Call
    - assert
    - Py_TYPE
    - _Py_Check_ArgsIterable
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - PyStackRef_CLOSE
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_EX_NON_PY_GENERAL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2770,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:2782,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2783,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2784,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2785,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2792,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2793,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2794,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Python/generated_cases.c.h:2795,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2795,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2796,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2798,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2800,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/generated_cases.c.h:2801,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2802,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2804,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2807,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2809,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2810,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2811,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2817,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2818,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2819,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2820,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2821,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2824,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2825,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:2826,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2833,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2834,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2835,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2835,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2836,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2836,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2837,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:2838,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2838,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2839,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2839,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:2840,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:2841,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:2842,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:2842,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2844,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2845,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Python/generated_cases.c.h:2846,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2849,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:2851,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2853,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:2855,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2869,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:2869,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:2870,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2871,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2872,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:2873,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:2876,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:2877,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:2878,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:2879,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:2881,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_FUNCTION_EX))
      pos:
        line_end: 2783
        line_start: 2783
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(func) == &PyFunction_Type)
      pos:
        line_end: 2835
        line_start: 2835
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (((PyFunctionObject *)func)->vectorcall == _PyFunction_Vectorcall)
      pos:
        line_end: 2836
        line_start: 2836
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2838
        line_start: 2838
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_FUNCTION_EX))
      pos:
        line_end: 2819
        line_start: 2819
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 2871
        line_start: 2871
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 2868
        line_start: 2868
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_FUNCTION_EX))
      pos:
        line_end: 2824
        line_start: 2824
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2834
        line_start: 2834
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 2882
      start: 2761
    functionDepth: 14
    functionLinenumber: 2761
    functionLinenumberEnd: 2882
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyStackRef_AsPyObjectSteal
    - PySequence_Tuple
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - _Py_Check_ArgsIterable
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - JUMP_TO_PREDICTED
    - _PyEvalFramePushAndInit_Ex
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_EX_PY)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:2891,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:2906,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:2909,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2911,1
    - Dst: _Py_Specialize_CallFunctionEx
      Src: /src/cpython/Python/generated_cases.c.h:2912,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2913,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:2914,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:2916,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:2917,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2923,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2924,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2925,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Python/generated_cases.c.h:2926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2926,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2927,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2929,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2931,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/generated_cases.c.h:2932,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2933,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2935,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:2938,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2940,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:2941,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2942,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2952,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Python/generated_cases.c.h:2953,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2955,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:2955,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2957,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:2958,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2959,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2959,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:2960,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:2960,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:2961,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:2962,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2964,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:2965,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2968,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:2970,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2972,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:2973,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2974,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:2975,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/generated_cases.c.h:2975,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2977,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:2978,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2981,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2984,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:2985,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2988,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2990,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:2991,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:2992,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:2998,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:2999,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3001,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3002,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:3002,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3003,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3003,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3004,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:3004,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:3005,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:3006,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:3007,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:3007,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3009,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3010,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Python/generated_cases.c.h:3011,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3014,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3016,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3018,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3020,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:3022,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3024,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3025,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:3025,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3026,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3027,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:3027,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3029,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:3030,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3031,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3034,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3035,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3036,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3037,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3039,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3040,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3041,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3042,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3044,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3045,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3046,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3047,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3049,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3051,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3057,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3058,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:3059,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3060,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3062,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3065,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 129
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 2959
        line_start: 2959
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 3003
        line_start: 3003
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 2u == 1 + INLINE_CACHE_ENTRIES_CALL_FUNCTION_EX)
      pos:
        line_end: 3019
        line_start: 3019
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 2958
        line_start: 2958
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 3001
        line_start: 3001
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 3024
        line_start: 3024
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 2954
        line_start: 2954
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 3026
        line_start: 3026
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3066
      start: 2884
    functionDepth: 14
    functionLinenumber: 2884
    functionLinenumberEnd: 3066
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyFunction_Check
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - PyObject_Call
    - PyMethod_Check
    - assert
    - OPCODE_DEFERRED_INC
    - PyTuple_GET_SIZE
    - Py_TYPE
    - DISPATCH_SAME_OPARG
    - _Py_call_instrumentation_2args
    - _Py_Check_ArgsIterable
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - read_u16
    - _PyEvalFramePushAndInit_Ex
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - _Py_Specialize_CallFunctionEx
    - PyDict_CheckExact
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyErr_Occurred
    - Py_CLEAR
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_call_instrumentation_exc2
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_FUNCTION_EX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3075,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3082,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3083,1
    - Dst: func
      Src: /src/cpython/Python/generated_cases.c.h:3084,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3084,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3085,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3087,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3090,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3096,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3097,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3098,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= MAX_INTRINSIC_1)
      pos:
        line_end: 3081
        line_start: 3081
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3101
      start: 3068
    functionDepth: 1
    functionLinenumber: 3068
    functionLinenumberEnd: 3101
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - func
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_INTRINSIC_1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3110,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3121,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3122,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3123,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3124,1
    - Dst: func
      Src: /src/cpython/Python/generated_cases.c.h:3125,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3126,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3128,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3130,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3139,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3140,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3141,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3147,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3148,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3149,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3150,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= MAX_INTRINSIC_2)
      pos:
        line_end: 3120
        line_start: 3120
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3153
      start: 3103
    functionDepth: 1
    functionLinenumber: 3103
    functionLinenumberEnd: 3153
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - func
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_INTRINSIC_2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3164,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3176,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3177,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3178,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3179,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3185,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3188,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3189,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3190,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3197,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3198,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3199,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3200,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/generated_cases.c.h:3201,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3202,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3204,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3208,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3209,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3210,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3211,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3213,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3214,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3215,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3216,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3218,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3219,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3220,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3221,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3223,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3223,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:3223,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3227,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3188
        line_start: 3188
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3177
        line_start: 3177
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((!PyStackRef_IsNull(res)) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3222
        line_start: 3222
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3229
      start: 3155
    functionDepth: 7
    functionLinenumber: 3155
    functionLinenumberEnd: 3229
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    - PyObject_IsInstance
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_ISINSTANCE)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3238,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:3252,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:3255,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3257,1
    - Dst: _Py_Specialize_CallKw
      Src: /src/cpython/Python/generated_cases.c.h:3258,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3258,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3259,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:3260,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:3262,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:3263,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3269,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3269,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3270,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:3272,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:3275,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3278,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3279,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3280,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3287,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3288,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3291,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:3295,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3296,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:3297,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:3300,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:3301,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:3301,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3304,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:3305,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3309,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3311,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3312,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3313,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3314,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3316,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3318,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:3320,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3324,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:3325,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3334,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3337,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3338,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3340,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3344,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3345,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( 4u == 1 + INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 3317
        line_start: 3317
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3346
      start: 3231
    functionDepth: 13
    functionLinenumber: 3231
    functionLinenumberEnd: 3346
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - _Py_Specialize_CallKw
    - DISPATCH
    - assert
    - PyStackRef_TYPE
    - OPCODE_DEFERRED_INC
    - PyTuple_GET_SIZE
    - Py_TYPE
    - DISPATCH_SAME_OPARG
    - PyStackRef_FromPyObjectNew
    - _PyEvalFramePushAndInit
    - PyStackRef_FromPyObjectSteal
    - read_u16
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_VectorCallInstrumentation_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3357,1
    - Dst: IS_PEP523_HOOKED
      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: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:3378,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3379,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3380,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3381,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3382,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3383,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:3386,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3387,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3388,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3389,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3392,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3393,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3394,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3396,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3397,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3398,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3399,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3405,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3405,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3407,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3408,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3408,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:3409,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:3410,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3411,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/generated_cases.c.h:3411,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3414,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3415,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3416,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3423,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3426,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3430,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:3431,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3432,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3432,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:3433,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:3434,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:3434,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3435,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:3436,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3440,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3442,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3443,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3444,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3445,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3447,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3449,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:3451,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3464,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:3464,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:3465,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3466,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3467,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3468,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:3471,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:3472,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:3473,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:3474,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3476,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3369
        line_start: 3369
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 3404
        line_start: 3404
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3397
        line_start: 3397
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyMethod_Type)
      pos:
        line_end: 3407
        line_start: 3407
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_FunctionCheck(callable))
      pos:
        line_end: 3410
        line_start: 3410
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 3463
        line_start: 3463
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 3431
        line_start: 3431
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3381
        line_start: 3381
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3392
        line_start: 3392
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3387
        line_start: 3387
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 3466
        line_start: 3466
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3477
      start: 3348
    functionDepth: 13
    functionLinenumber: 3348
    functionLinenumberEnd: 3477
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyStackRef_FunctionCheck
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - read_u32
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW_BOUND_METHOD)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3488,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3501,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:3502,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3503,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3504,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3505,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3507,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3508,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3509,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3510,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3519,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3523,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3527,1
    - Dst: _Py_VectorCall_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:3528,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3533,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3536,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3537,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3539,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3545,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3546,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:3547,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3548,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3550,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3503
        line_start: 3503
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (opcode != INSTRUMENTED_CALL)
      pos:
        line_end: 3518
        line_start: 3518
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3508
        line_start: 3508
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3554
      start: 3479
    functionDepth: 3
    functionLinenumber: 3479
    functionLinenumberEnd: 3554
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_Check
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_IsNull
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - check_periodics
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - _Py_VectorCall_StackRefSteal
    - UPDATE_MISS_STATS
    - Py_TYPE
    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:3565,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:3575,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3576,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3577,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3578,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:3584,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3585,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:3586,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3587,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3588,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3589,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3593,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3594,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3595,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3601,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3602,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3603,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3611,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3614,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3618,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:3619,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3620,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3620,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:3621,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:3622,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:3622,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3623,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:3624,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3628,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3630,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3631,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3632,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3633,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3635,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3637,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:3639,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3652,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:3652,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:3653,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3654,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3655,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3656,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:3659,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:3660,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:3661,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:3662,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3664,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3587
        line_start: 3587
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3593
        line_start: 3593
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 3654
        line_start: 3654
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3576
        line_start: 3576
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 3651
        line_start: 3651
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL_KW))
      pos:
        line_end: 3601
        line_start: 3601
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 3619
        line_start: 3619
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3665
      start: 3556
    functionDepth: 13
    functionLinenumber: 3556
    functionLinenumberEnd: 3665
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - read_u32
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_KW_PY)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3676,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3690,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3691,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3692,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3693,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3699,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3702,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3703,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3704,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3710,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3711,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3712,1
    - Dst: PyObject_Length
      Src: /src/cpython/Python/generated_cases.c.h:3713,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3714,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3716,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/generated_cases.c.h:3718,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3719,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:3719,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3721,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3725,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3733,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3734,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3735,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3736,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3742,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3743,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3744,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3745,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3691
        line_start: 3691
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 3718
        line_start: 3718
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3702
        line_start: 3702
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3748
      start: 3667
    functionDepth: 3
    functionLinenumber: 3667
    functionLinenumberEnd: 3748
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - PyObject_Length
    - PyLong_FromSsize_t
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_LEN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3759,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3774,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3777,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3778,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3779,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3785,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3786,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3787,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3788,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3793,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:3794,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3795,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3796,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3797,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3804,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3805,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:3806,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3807,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3808,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3809,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3811,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:3812,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3812,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:3813,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3815,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3827,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3828,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3829,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3830,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3836,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3837,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3838,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3839,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3841,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3786
        line_start: 3786
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3795
        line_start: 3795
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 3803
        line_start: 3803
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3807
        line_start: 3807
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3777
        line_start: 3777
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3842
      start: 3750
    functionDepth: 1
    functionLinenumber: 3750
    functionLinenumberEnd: 3842
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyList_AppendTakeRef
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - UNLOCK_OBJECT
    - UPDATE_MISS_STATS
    - LOCK_OBJECT
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_LIST_APPEND)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3853,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3866,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3868,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3869,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3870,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3871,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3874,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3875,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3876,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3879,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3883,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3884,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3885,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3887,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3888,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3889,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3890,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3891,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3892,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3897,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3901,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3905,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3906,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:3907,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3908,1
    - Dst: _PyCFunctionFast_CAST
      Src: /src/cpython/Python/generated_cases.c.h:3909,1
    - Dst: _PyCallMethodDescriptorFast_StackRef
      Src: /src/cpython/Python/generated_cases.c.h:3910,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3917,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3919,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:3922,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3924,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3925,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3926,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3930,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Python/generated_cases.c.h:3931,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3932,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:3938,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3939,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:3940,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3941,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3945,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:3946,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:3947,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:3949,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:3952,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3883
        line_start: 3883
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3890
        line_start: 3890
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3874
        line_start: 3874
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (self != NULL)
      pos:
        line_end: 3905
        line_start: 3905
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3869
        line_start: 3869
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 3953
      start: 3844
    functionDepth: 2
    functionLinenumber: 3844
    functionLinenumberEnd: 3953
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - _PyCFunctionFast_CAST
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyCallMethodDescriptorFast_StackRef
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    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:3964,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:3977,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:3979,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3980,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3981,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3982,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3985,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3986,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3987,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:3991,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:3996,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:3997,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:3998,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4000,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4001,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4002,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4003,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4004,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4009,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4013,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4017,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4018,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4019,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4020,1
    - Dst: _PyCFunctionFastWithKeywords_CAST
      Src: /src/cpython/Python/generated_cases.c.h:4021,1
    - Dst: _PyCallMethodDescriptorFastWithKeywords_StackRef
      Src: /src/cpython/Python/generated_cases.c.h:4022,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4029,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4031,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4034,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4036,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4037,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4038,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4042,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Python/generated_cases.c.h:4043,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4044,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4050,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4051,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4052,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4053,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4057,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4058,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4059,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4061,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4064,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3985
        line_start: 3985
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3996
        line_start: 3996
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4002
        line_start: 4002
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (self != NULL)
      pos:
        line_end: 4017
        line_start: 4017
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 3980
        line_start: 3980
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4065
      start: 3955
    functionDepth: 2
    functionLinenumber: 3955
    functionLinenumberEnd: 4065
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - check_periodics
    - _PyCFunctionFastWithKeywords_CAST
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - _PyCallMethodDescriptorFastWithKeywords_StackRef
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - PyStackRef_IsNull
    - PyStackRef_CLOSE
    - _PyStackRef_CloseStack
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4076,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4092,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4094,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4095,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4096,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4097,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4100,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4101,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4102,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4105,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4109,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4110,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4111,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4113,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4114,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4115,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4116,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4117,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4118,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/generated_cases.c.h:4123,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4124,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4125,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4126,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4131,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4133,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4133,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4134,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4138,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4139,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4141,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/generated_cases.c.h:4142,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4143,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/generated_cases.c.h:4144,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4145,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:4145,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4147,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4151,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4159,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4160,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4161,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4162,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4168,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4169,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4170,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4171,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4175,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4176,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4177,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4179,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4095
        line_start: 4095
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 1 || !PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 4132
        line_start: 4132
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4116
        line_start: 4116
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4100
        line_start: 4100
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4109
        line_start: 4109
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4124
        line_start: 4124
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 4144
        line_start: 4144
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4183
      start: 4067
    functionDepth: 1
    functionLinenumber: 4067
    functionLinenumberEnd: 4183
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - _Py_ReachedRecursionLimit
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - _Py_LeaveRecursiveCallTstate
    - PyStackRef_IsNull
    - _PyCFunction_TrampolineCall
    - _PyErr_Occurred
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_NOARGS)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4194,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4211,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4213,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4214,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4215,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4216,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4219,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4220,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4221,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4224,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4228,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4229,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4230,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:4233,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4234,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4235,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4236,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4237,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/generated_cases.c.h:4242,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4243,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4244,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4245,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4250,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4253,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4256,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4258,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4259,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4260,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/generated_cases.c.h:4261,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4262,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/generated_cases.c.h:4263,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4264,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:4264,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4266,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4271,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4280,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4281,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4282,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4283,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4289,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4290,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4291,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4292,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4298,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4299,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4300,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4301,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4305,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4306,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4307,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4309,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4312,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4219
        line_start: 4219
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4228
        line_start: 4228
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4243
        line_start: 4243
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4214
        line_start: 4214
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4235
        line_start: 4235
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 4263
        line_start: 4263
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4313
      start: 4185
    functionDepth: 1
    functionLinenumber: 4185
    functionLinenumberEnd: 4313
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - _Py_ReachedRecursionLimit
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - _Py_LeaveRecursiveCallTstate
    - PyStackRef_IsNull
    - _PyCFunction_TrampolineCall
    - _PyErr_Occurred
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_METHOD_DESCRIPTOR_O)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4324,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4336,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:4337,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4338,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4339,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4340,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4342,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4343,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4344,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4345,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4353,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4357,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4361,1
    - Dst: _Py_VectorCall_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:4362,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4367,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4370,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4371,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4373,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4379,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4380,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4381,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4382,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4384,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4338
        line_start: 4338
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (opcode != INSTRUMENTED_CALL)
      pos:
        line_end: 4352
        line_start: 4352
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4343
        line_start: 4343
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4388
      start: 4315
    functionDepth: 3
    functionLinenumber: 4315
    functionLinenumberEnd: 4388
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_Check
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_IsNull
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - check_periodics
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - _Py_VectorCall_StackRefSteal
    - UPDATE_MISS_STATS
    - Py_TYPE
    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:4399,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:4408,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4409,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4410,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4411,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:4417,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4418,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:4419,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4420,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4421,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4422,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4426,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4427,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4428,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4434,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4435,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:4435,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4438,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4439,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4440,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4441,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4446,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:4449,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4450,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4451,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4452,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4458,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4459,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4460,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4466,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4467,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:4468,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:4474,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4487,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:4487,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:4488,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4490,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4491,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4492,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4493,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:4496,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:4497,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:4498,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:4499,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4409
        line_start: 4409
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4458
        line_start: 4458
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 4486
        line_start: 4486
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4439
        line_start: 4439
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4420
        line_start: 4420
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4450
        line_start: 4450
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 4491
        line_start: 4491
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4426
        line_start: 4426
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFunction_Check(callable_o))
      pos:
        line_end: 4434
        line_start: 4434
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4502
      start: 4390
    functionDepth: 1
    functionLinenumber: 4390
    functionLinenumberEnd: 4502
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_Check
    - DISPATCH
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - read_u32
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - LOAD_SP
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    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:4513,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:4522,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4523,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4524,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4525,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:4531,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4532,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:4533,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4534,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4535,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4536,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4540,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4541,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4542,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4548,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4549,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4550,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4557,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4559,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4563,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4563,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:4564,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:4565,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:4565,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4566,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:4567,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4571,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4573,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4575,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:4577,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4590,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:4590,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:4591,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4592,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4593,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4594,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:4597,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:4598,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:4599,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:4600,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4540
        line_start: 4540
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 4562
        line_start: 4562
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 4592
        line_start: 4592
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4523
        line_start: 4523
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4548
        line_start: 4548
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 4589
        line_start: 4589
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4534
        line_start: 4534
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4603
      start: 4504
    functionDepth: 13
    functionLinenumber: 4504
    functionLinenumberEnd: 4603
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyFunction_Check
    - DISPATCH
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - CALL_STAT_INC
    - _PyEvalFramePushAndInit
    - PyStackRef_Unwrap
    - read_u32
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - LOAD_SP
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_PY_GENERAL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4614,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4627,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4628,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4629,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4630,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4636,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4638,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4639,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4640,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4646,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4647,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4648,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4649,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/generated_cases.c.h:4650,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4651,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4653,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4656,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4663,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4664,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4665,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4666,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4670,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4671,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4672,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4674,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4628
        line_start: 4628
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 4646
        line_start: 4646
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4638
        line_start: 4638
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4678
      start: 4605
    functionDepth: 4
    functionLinenumber: 4605
    functionLinenumberEnd: 4678
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyObject_Str
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - check_periodics
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_STR_1)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4689,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4702,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4703,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4704,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4705,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4711,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4713,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4714,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4715,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4721,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4722,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4723,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4724,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/generated_cases.c.h:4725,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4726,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4728,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4731,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4738,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4739,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4740,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4741,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4745,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:4746,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4747,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4749,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4703
        line_start: 4703
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 4721
        line_start: 4721
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4713
        line_start: 4713
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4753
      start: 4680
    functionDepth: 2
    functionLinenumber: 4680
    functionLinenumberEnd: 4753
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PySequence_Tuple
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - check_periodics
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_TUPLE_1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4764,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:4777,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4778,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4779,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4780,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4786,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4788,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4789,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:4790,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4796,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4797,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:4798,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:4800,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:4800,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4807,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4808,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4809,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4810,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4778
        line_start: 4778
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CALL))
      pos:
        line_end: 4788
        line_start: 4788
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 1)
      pos:
        line_end: 4796
        line_start: 4796
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4813
      start: 4755
    functionDepth: 1
    functionLinenumber: 4755
    functionLinenumberEnd: 4813
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(CALL_TYPE_1)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4822,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4829,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4830,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4831,1
    - Dst: _PyEval_CheckExceptStarTypeValid
      Src: /src/cpython/Python/generated_cases.c.h:4832,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4833,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4835,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4839,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4843,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4844,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4846,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4847,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4851,1
    - Dst: _PyEval_ExceptionGroupMatch
      Src: /src/cpython/Python/generated_cases.c.h:4852,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4857,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4861,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4862,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4864,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4866,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4868,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4870,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:4872,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4873,1
    - Dst: PyErr_SetHandledException
      Src: /src/cpython/Python/generated_cases.c.h:4874,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4875,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4877,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:4878,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4882,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((match_o == NULL) == (rest_o == NULL))
      pos:
        line_end: 4867
        line_start: 4867
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4884
      start: 4815
    functionDepth: 8
    functionLinenumber: 4815
    functionLinenumberEnd: 4884
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_CLOSE
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - Py_IsNone
    - _PyEval_CheckExceptStarTypeValid
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyEval_ExceptionGroupMatch
    - PyErr_SetHandledException
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(CHECK_EG_MATCH)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4893,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4899,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4900,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4901,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:4901,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4902,1
    - Dst: _PyEval_CheckExceptTypeValid
      Src: /src/cpython/Python/generated_cases.c.h:4903,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4904,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4906,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4908,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:4909,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4910,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4912,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4913,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4914,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4915,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4919,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyExceptionInstance_Check(left_o))
      pos:
        line_end: 4900
        line_start: 4900
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4921
      start: 4886
    functionDepth: 2
    functionLinenumber: 4886
    functionLinenumberEnd: 4921
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - _PyEval_CheckExceptTypeValid
    linkageType: ''
    returnType: void
    signature: void TARGET(CHECK_EXC_MATCH)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4932,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:4944,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4946,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:4948,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:4948,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4949,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:4950,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4951,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:4953,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4954,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4958,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4962,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4966,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:4970,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4971,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4973,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:4978,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:4979,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:4979,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:4980,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:4981,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:4987,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:4988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (throwflag)
      pos:
        line_end: 4945
        line_start: 4945
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (exc_value && PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 4947
        line_start: 4947
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 4989
      start: 4923
    functionDepth: 1
    functionLinenumber: 4923
    functionLinenumberEnd: 4989
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - PyStackRef_FromPyObjectNew
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - _PyErr_SetRaisedException
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - Py_NewRef
    linkageType: ''
    returnType: void
    signature: void TARGET(CLEANUP_THROW)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:4998,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:5009,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:5012,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5014,1
    - Dst: _Py_Specialize_CompareOp
      Src: /src/cpython/Python/generated_cases.c.h:5015,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5016,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:5017,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:5019,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:5020,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5025,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5026,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5027,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5028,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Python/generated_cases.c.h:5029,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5033,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5037,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5038,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5040,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5042,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5045,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:5046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:5047,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5048,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5050,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:5055,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5060,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5061,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((oparg >> 5) <= Py_GE)
      pos:
        line_end: 5026
        line_start: 5026
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5062
      start: 4991
    functionDepth: 3
    functionLinenumber: 4991
    functionLinenumberEnd: 5062
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - OPCODE_DEFERRED_INC
    - DISPATCH_SAME_OPARG
    - PyObject_IsTrue
    - PyObject_RichCompare
    - PyStackRef_FromPyObjectSteal
    - read_u16
    - INSTRUCTION_STATS
    - _Py_Specialize_CompareOp
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - Py_DECREF
    - PyStackRef_CLOSE
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5073,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5084,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5085,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5086,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5087,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5088,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5094,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5095,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5096,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5097,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5098,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5105,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5106,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5107,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/generated_cases.c.h:5108,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/generated_cases.c.h:5109,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Python/generated_cases.c.h:5110,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5118,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5118,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5118,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:5119,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5124,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5124,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5124,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:5125,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5129,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5096
        line_start: 5096
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5123
        line_start: 5123
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5117
        line_start: 5117
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5086
        line_start: 5086
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5131
      start: 5064
    functionDepth: 1
    functionLinenumber: 5064
    functionLinenumberEnd: 5131
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - PyFloat_AS_DOUBLE
    - DISPATCH
    - INSTRUCTION_STATS
    - COMPARISON_BIT
    - PyFloat_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_FLOAT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5142,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5153,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:5154,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5155,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5156,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5157,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5163,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:5164,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5165,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5166,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5167,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5174,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5175,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5176,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/generated_cases.c.h:5176,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5177,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/generated_cases.c.h:5177,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5178,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5179,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Python/generated_cases.c.h:5179,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Python/generated_cases.c.h:5180,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/generated_cases.c.h:5181,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/generated_cases.c.h:5182,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Python/generated_cases.c.h:5183,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5191,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5191,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5191,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:5192,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5197,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5197,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5197,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:5198,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5202,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5165
        line_start: 5165
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyLong_IsCompact((PyLongObject *)right_o))
      pos:
        line_end: 5176
        line_start: 5176
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyLong_IsCompact((PyLongObject *)left_o))
      pos:
        line_end: 5175
        line_start: 5175
        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: 5179
        line_start: 5178
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5196
        line_start: 5196
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5190
        line_start: 5190
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5155
        line_start: 5155
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5204
      start: 5133
    functionDepth: 1
    functionLinenumber: 5133
    functionLinenumberEnd: 5204
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyLong_CompactValue
    - JUMP_TO_PREDICTED
    - _PyLong_IsCompact
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - COMPARISON_BIT
    - _PyLong_DigitCount
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_INT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5215,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5227,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5228,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5229,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5230,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5231,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5237,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5238,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5239,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5240,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5241,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5249,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5250,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5251,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/generated_cases.c.h:5252,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5253,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5256,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5257,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5258,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5264,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5264,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5264,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:5265,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5270,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5270,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5270,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:5271,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5275,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5239
        line_start: 5239
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (eq == 0 || eq == 1)
      pos:
        line_end: 5255
        line_start: 5255
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS)
      pos:
        line_end: 5257
        line_start: 5257
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (COMPARE_OP))
      pos:
        line_end: 5229
        line_start: 5229
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg >> 5) == Py_EQ || (oparg >> 5) == Py_NE)
      pos:
        line_end: 5252
        line_start: 5252
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5269
        line_start: 5269
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 0xf) == COMPARISON_NOT_EQUALS || (oparg & 0xf) == COMPARISON_EQUALS)
      pos:
        line_end: 5256
        line_start: 5256
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 5263
        line_start: 5263
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5277
      start: 5206
    functionDepth: 2
    functionLinenumber: 5206
    functionLinenumberEnd: 5277
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - _PyUnicode_Equal
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(COMPARE_OP_STR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5286,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:5299,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:5302,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5304,1
    - Dst: _Py_Specialize_ContainsOp
      Src: /src/cpython/Python/generated_cases.c.h:5305,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5306,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:5307,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:5309,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:5310,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5316,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5317,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5318,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/generated_cases.c.h:5319,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5320,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5322,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5333,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5334,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5335,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5341,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5342,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5343,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5344,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5279
    functionDepth: 6
    functionLinenumber: 5279
    functionLinenumberEnd: 5347
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PySequence_Contains
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - PyStackRef_XCLOSE
    - _Py_Specialize_ContainsOp
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5358,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5370,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5371,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5372,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5373,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5374,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5382,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5383,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5384,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5384,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5385,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5386,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/generated_cases.c.h:5387,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5388,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5390,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5401,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5402,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5403,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5409,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5410,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5411,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5412,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyAnyDict_CheckExact(right_o))
      pos:
        line_end: 5383
        line_start: 5383
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (CONTAINS_OP))
      pos:
        line_end: 5372
        line_start: 5372
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5415
      start: 5349
    functionDepth: 2
    functionLinenumber: 5349
    functionLinenumberEnd: 5415
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyAnyDict_CheckExact
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - PyDict_Contains
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP_DICT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5426,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5438,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5439,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5440,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5441,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:5442,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5450,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5451,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5452,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:5452,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:5453,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5454,1
    - Dst: _PySet_Contains
      Src: /src/cpython/Python/generated_cases.c.h:5455,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5456,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5458,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5469,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5470,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5471,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5477,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5478,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5479,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5480,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (CONTAINS_OP))
      pos:
        line_end: 5440
        line_start: 5440
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyAnySet_CheckExact(right_o))
      pos:
        line_end: 5451
        line_start: 5451
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5483
      start: 5417
    functionDepth: 6
    functionLinenumber: 5417
    functionLinenumberEnd: 5483
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyAnySet_CheckExact
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - _PySet_Contains
    linkageType: ''
    returnType: void
    signature: void TARGET(CONTAINS_OP_SET)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5492,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5497,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5499,1
    - Dst: conv_fn
      Src: /src/cpython/Python/generated_cases.c.h:5500,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5500,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5501,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5503,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5504,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5505,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5506,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5508,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:5510,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5513,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg >= FVC_STR && oparg <= FVC_ASCII)
      pos:
        line_end: 5496
        line_start: 5496
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5515
      start: 5485
    functionDepth: 1
    functionLinenumber: 5485
    functionLinenumberEnd: 5515
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - conv_fn
    linkageType: ''
    returnType: void
    signature: void TARGET(CONVERT_VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5524,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:5528,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5531,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5533
      start: 5517
    functionDepth: 1
    functionLinenumber: 5517
    functionLinenumberEnd: 5533
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - PyStackRef_DUP
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(COPY)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5542,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:5543,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5544,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/generated_cases.c.h:5544,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5545,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5547,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:5550,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:5551,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 5543
        line_start: 5543
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == co->co_nfreevars)
      pos:
        line_end: 5546
        line_start: 5546
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5554
      start: 5535
    functionDepth: 1
    functionLinenumber: 5535
    functionLinenumberEnd: 5554
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FunctionCheck
    - PyStackRef_FromPyObjectNew
    - PyTuple_GET_ITEM
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_AsPyObjectBorrow
    linkageType: ''
    returnType: void
    signature: void TARGET(COPY_FREE_VARS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5563,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:5566,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5567,1
    - Dst: PyObject_DelAttr
      Src: /src/cpython/Python/generated_cases.c.h:5568,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5568,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5569,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5571,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5572,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5573,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5574,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5576,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5579
      start: 5556
    functionDepth: 1
    functionLinenumber: 5556
    functionLinenumberEnd: 5579
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyObject_DelAttr
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5588,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5589,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:5589,1
    - Dst: PyCell_SwapTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:5590,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5592,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/generated_cases.c.h:5593,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:5593,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5594,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5595,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:5598,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5599,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5601
      start: 5581
    functionDepth: 8
    functionLinenumber: 5581
    functionLinenumberEnd: 5601
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - _PyFrame_GetCode
    - DISPATCH
    - PyCell_SwapTakeRef
    - INSTRUCTION_STATS
    - _PyEval_FormatExcUnbound
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_DEREF)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5610,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:5611,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:5612,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5613,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:5614,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/generated_cases.c.h:5616,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:5616,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5618,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5619,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:5621,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:5622,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5623,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5624,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5625,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5627
      start: 5603
    functionDepth: 7
    functionLinenumber: 5603
    functionLinenumberEnd: 5627
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - _PyEval_FormatExcCheckArg
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyTuple_GetItem
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_FAST)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5636,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:5637,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5638,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/generated_cases.c.h:5639,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:5639,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5640,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5642,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5645,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:5646,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5648,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5649,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5652
      start: 5629
    functionDepth: 8
    functionLinenumber: 5629
    functionLinenumberEnd: 5652
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_FormatExcCheckArg
    - GLOBALS
    - DISPATCH
    - PyDict_Pop
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_GLOBAL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5661,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:5662,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:5663,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5666,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:5667,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5669,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5670,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5672,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Python/generated_cases.c.h:5673,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5674,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5676,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:5677,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5680,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5681,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5654
    functionDepth: 7
    functionLinenumber: 5654
    functionLinenumberEnd: 5684
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - LOCALS
    - _PyEval_FormatExcCheckArg
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - PyObject_DelItem
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5693,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5698,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Python/generated_cases.c.h:5699,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5699,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5700,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5704,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5708,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5709,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5711,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5713,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5716
      start: 5686
    functionDepth: 3
    functionLinenumber: 5686
    functionLinenumberEnd: 5716
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyObject_DelItem
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(DELETE_SUBSCR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5725,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5736,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5737,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5738,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5740,1
    - Dst: _PyDict_MergeUniq
      Src: /src/cpython/Python/generated_cases.c.h:5741,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5742,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5744,1
    - Dst: _PyEval_FormatKwargsError
      Src: /src/cpython/Python/generated_cases.c.h:5745,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:5746,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5747,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5748,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5756,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5757,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5758,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5759,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5762
      start: 5718
    functionDepth: 6
    functionLinenumber: 5718
    functionLinenumberEnd: 5762
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_FormatKwargsError
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyDict_MergeUniq
    - JUMP_TO_LABEL
    - Py_XDECREF
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(DICT_MERGE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5771,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5780,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5781,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5782,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/generated_cases.c.h:5783,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5784,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:5786,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5788,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:5789,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/generated_cases.c.h:5790,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/generated_cases.c.h:5790,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5791,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5793,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:5794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:5797,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5798,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5801,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/generated_cases.c.h:5802,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5803,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5806,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5814,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5815,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5816,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5817,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5820
      start: 5764
    functionDepth: 3
    functionLinenumber: 5764
    functionLinenumberEnd: 5820
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyObject_HasAttrWithError
    - _PyErr_Format
    - PyDict_Update
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_ExceptionMatches
    - JUMP_TO_LABEL
    - _PyErr_ChainExceptions1
    - PyStackRef_XCLOSE
    - _PyErr_GetRaisedException
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void TARGET(DICT_UPDATE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5831,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:5836,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:5838,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5839,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:5839,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5840,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:5841,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5842,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5844,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5848,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5852,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5853,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5855,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/generated_cases.c.h:5858,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5859,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:5860,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:5861,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5862,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 5838
        line_start: 5838
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5865
      start: 5822
    functionDepth: 1
    functionLinenumber: 5822
    functionLinenumberEnd: 5865
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - Py_INCREF
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - _PyErr_SetRaisedException
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(END_ASYNC_FOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5873,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5877,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5878,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5879,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5880,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5882
      start: 5867
    functionDepth: 1
    functionLinenumber: 5867
    functionLinenumberEnd: 5882
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(END_FOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5891,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5903,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5904,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:5905,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5906,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5908
      start: 5884
    functionDepth: 1
    functionLinenumber: 5884
    functionLinenumberEnd: 5908
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(END_SEND)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5919,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:5922,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:5924,1
    - Dst: _PyJit_EnterExecutorShouldStopTracing
      Src: /src/cpython/Python/generated_cases.c.h:5928,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:5930,1
    - Dst: DISPATCH_GOTO_NON_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:5934,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:5936,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5938,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:5938,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5939,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5940,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5941,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:5942,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:5943,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:5948,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:5950,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5952,1
    - Dst: TIER1_TO_TIER2
      Src: /src/cpython/Python/generated_cases.c.h:5954,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/generated_cases.c.h:5956,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (executor->vm_data.code == code)
      pos:
        line_end: 5938
        line_start: 5938
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 5940
        line_start: 5940
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (executor->vm_data.index == INSTR_OFFSET() - 1)
      pos:
        line_end: 5937
        line_start: 5937
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 5939
        line_start: 5939
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (executor != tstate->interp->cold_executor)
      pos:
        line_end: 5951
        line_start: 5951
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5958
      start: 5910
    functionDepth: 1
    functionLinenumber: 5910
    functionLinenumberEnd: 5958
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - Py_FatalError
    - TIER1_TO_TIER2
    - _PyFrame_GetCode
    - assert
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _Py_atomic_load_uintptr_relaxed
    - INSTR_OFFSET
    - DISPATCH_GOTO
    - DISPATCH_GOTO_NON_TRACING
    - PAUSE_ADAPTIVE_COUNTER
    - IS_JIT_TRACING
    - _PyJit_EnterExecutorShouldStopTracing
    linkageType: ''
    returnType: void
    signature: void TARGET(ENTER_EXECUTOR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5967,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:5970,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:5971,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:5972,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:5974,1
    - Dst: PyStackRef_AsPyObjectBorrow
      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: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:5979,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:5980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5981
      start: 5960
    functionDepth: 1
    functionLinenumber: 5960
    functionLinenumberEnd: 5981
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyErr_Format
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(EXIT_INIT_CHECK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:5990,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:5992,1
    - Dst: PRE_DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:5995,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:5996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg)
      pos:
        line_end: 5991
        line_start: 5991
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 5997
      start: 5983
    functionDepth: 1
    functionLinenumber: 5983
    functionLinenumberEnd: 5997
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH_GOTO
    - INSTRUCTION_STATS
    - PRE_DISPATCH_GOTO
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(EXTENDED_ARG)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6006,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6010,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6011,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6012,1
    - Dst: PyObject_Format
      Src: /src/cpython/Python/generated_cases.c.h:6013,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6014,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6016,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6017,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6018,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6019,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6021,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6023,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6031,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6033
      start: 5999
    functionDepth: 5
    functionLinenumber: 5999
    functionLinenumberEnd: 6033
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - PyObject_Format
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(FORMAT_SIMPLE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6042,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6048,1
    - Dst: PyObject_Format
      Src: /src/cpython/Python/generated_cases.c.h:6049,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6049,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6049,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6053,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6057,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6058,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6060,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6062,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6064,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6067,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6069
      start: 6035
    functionDepth: 5
    functionLinenumber: 6035
    functionLinenumberEnd: 6069
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - PyObject_Format
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(FORMAT_WITH_SPEC)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6078,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:6089,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:6092,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6094,1
    - Dst: _Py_Specialize_ForIter
      Src: /src/cpython/Python/generated_cases.c.h:6095,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6096,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:6097,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:6099,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:6100,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6105,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/generated_cases.c.h:6106,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6107,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/generated_cases.c.h:6108,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/generated_cases.c.h:6109,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6110,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:6112,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6114,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6121,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6123
      start: 6071
    functionDepth: 3
    functionLinenumber: 6071
    functionLinenumberEnd: 6123
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - PyStackRef_IsError
    - read_u16
    - DISPATCH
    - _PyForIter_VirtualIteratorNext
    - _Py_Specialize_ForIter
    - INSTRUCTION_STATS
    - PyStackRef_IsValid
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6134,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:6142,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6143,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6144,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6145,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6151,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6152,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6153,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6154,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6155,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Python/generated_cases.c.h:6157,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6158,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6159,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6160,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:6162,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:6164,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:6169,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6174,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:6174,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:6175,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6176,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6177,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:6178,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:6181,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:6182,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:6183,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:6184,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 6173
        line_start: 6173
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6153
        line_start: 6153
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6158
        line_start: 6158
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6143
        line_start: 6143
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 6176
        line_start: 6176
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6187
      start: 6125
    functionDepth: 1
    functionLinenumber: 6125
    functionLinenumberEnd: 6187
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - gen_try_set_executing
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - _PyFrame_StackPush
    - LOAD_SP
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_GEN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6198,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6208,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6209,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6210,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6211,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6212,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6214,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/generated_cases.c.h:6214,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/generated_cases.c.h:6216,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/generated_cases.c.h:6216,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6217,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6218,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6219,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6228,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6229,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6229,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:6230,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:6231,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:6231,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:6232,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:6233,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6235,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6241,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6242,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6242,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6244,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/generated_cases.c.h:6244,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/generated_cases.c.h:6245,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:6246,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6247,1
    - Dst: _PyList_GetItemRefNoLock
      Src: /src/cpython/Python/generated_cases.c.h:6248,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:6248,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6249,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6251,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6252,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6253,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:6256,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:6257,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6259,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:6262,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:6262,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:6262,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Python/generated_cases.c.h:6264,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6269,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyList_CheckExact(list_o))
      pos:
        line_end: 6241
        line_start: 6241
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6210
        line_start: 6210
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsTaggedInt(null_or_index))
      pos:
        line_end: 6213
        line_start: 6213
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6217
        line_start: 6217
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(list_o) == &PyList_Type)
      pos:
        line_end: 6228
        line_start: 6228
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: "(_Py_IsOwnedByCurrentThread(list_o) ||\n                  _PyObject_GC_IS_SHARED(list_o))"
      pos:
        line_end: 6244
        line_start: 6243
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6251
        line_start: 6251
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6271
      start: 6189
    functionDepth: 3
    functionLinenumber: 6189
    functionLinenumberEnd: 6271
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyList_GET_ITEM
    - assert
    - _PyObject_GC_IS_SHARED
    - Py_TYPE
    - JUMPBY
    - PyStackRef_FromPyObjectNew
    - PyStackRef_IsTaggedInt
    - _PyList_GetItemRefNoLock
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _Py_IsOwnedByCurrentThread
    - PyStackRef_UntagInt
    - PyStackRef_TagInt
    - PyStackRef_IncrementTaggedIntNoOverflow
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyList_GET_SIZE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_LIST)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6282,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6291,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6292,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6293,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6294,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/generated_cases.c.h:6297,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6298,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6299,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6300,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6306,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6307,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6307,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6309,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/generated_cases.c.h:6309,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:6311,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:6313,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6314,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6319,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6320,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6320,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6322,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/generated_cases.c.h:6322,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6324,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/generated_cases.c.h:6328,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6330,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6332,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6336,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyObject_IsUniquelyReferenced((PyObject *)r))
      pos:
        line_end: 6308
        line_start: 6308
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6292
        line_start: 6292
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6298
        line_start: 6298
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (r->len > 0)
      pos:
        line_end: 6323
        line_start: 6323
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 6306
        line_start: 6306
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 6319
        line_start: 6319
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyObject_IsUniquelyReferenced((PyObject *)r))
      pos:
        line_end: 6321
        line_start: 6321
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6338
      start: 6273
    functionDepth: 1
    functionLinenumber: 6273
    functionLinenumberEnd: 6338
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - PyLong_FromLong
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyObject_IsUniquelyReferenced
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_RANGE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6349,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6359,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6360,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6361,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6362,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6363,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6365,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/generated_cases.c.h:6365,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6369,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6371,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6371,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:6372,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:6373,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:6373,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:6374,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:6375,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6377,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6382,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6383,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6383,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:6384,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6385,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:6385,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:6386,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:6386,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Python/generated_cases.c.h:6387,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6392,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((size_t)i < (size_t)PyTuple_GET_SIZE(tuple_o))
      pos:
        line_end: 6384
        line_start: 6384
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 6370
        line_start: 6370
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 6382
        line_start: 6382
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6361
        line_start: 6361
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsTaggedInt(null_or_index))
      pos:
        line_end: 6364
        line_start: 6364
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6394
      start: 6340
    functionDepth: 1
    functionLinenumber: 6340
    functionLinenumberEnd: 6394
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - PyTuple_GET_ITEM
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_IsTaggedInt
    - PyStackRef_TagInt
    - JUMPBY
    - PyStackRef_IncrementTaggedIntNoOverflow
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - PyStackRef_UntagInt
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_TUPLE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6405,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6414,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6415,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6416,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6417,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6423,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:6424,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6425,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6426,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6427,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6432,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:6434,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6435,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:6437,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6438,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6443,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (FOR_ITER))
      pos:
        line_end: 6415
        line_start: 6415
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6445
      start: 6396
    functionDepth: 1
    functionLinenumber: 6396
    functionLinenumberEnd: 6445
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - Py_TYPE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - JUMP_TO_LABEL
    - JUMPBY
    - PyStackRef_TagInt
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    - PyStackRef_UntagInt
    linkageType: ''
    returnType: void
    signature: void TARGET(FOR_ITER_VIRTUAL)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6454,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6459,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6461,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6466,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:6467,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6471,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6473,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6474,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6475,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6476,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6477,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6479,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6481,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6483,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6484,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6485,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6486,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6488,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6490,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6491,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6492,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:6493,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:6497,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:6499,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6501,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6504,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6505,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6506
      start: 6447
    functionDepth: 1
    functionLinenumber: 6447
    functionLinenumberEnd: 6506
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_AITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6515,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6519,1
    - Dst: _PyEval_GetANext
      Src: /src/cpython/Python/generated_cases.c.h:6520,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6520,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6521,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6523,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6525,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6528,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6530
      start: 6508
    functionDepth: 5
    functionLinenumber: 6508
    functionLinenumberEnd: 6530
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyEval_GetANext
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ANEXT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6539,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6543,1
    - Dst: _PyEval_GetAwaitable
      Src: /src/cpython/Python/generated_cases.c.h:6544,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6544,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6545,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6547,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6548,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6549,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6550,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6552,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6554,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6557,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6559
      start: 6532
    functionDepth: 5
    functionLinenumber: 6532
    functionLinenumberEnd: 6559
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyEval_GetAwaitable
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_AWAITABLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6568,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:6578,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:6581,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6583,1
    - Dst: _Py_Specialize_GetIter
      Src: /src/cpython/Python/generated_cases.c.h:6584,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6585,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:6586,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:6588,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:6589,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6594,1
    - Dst: _PyEval_GetIter
      Src: /src/cpython/Python/generated_cases.c.h:6595,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6596,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/generated_cases.c.h:6597,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6598,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6605,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6607
      start: 6561
    functionDepth: 4
    functionLinenumber: 6561
    functionLinenumberEnd: 6607
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - _Py_Specialize_GetIter
    - _PyEval_GetIter
    - read_u16
    - PyStackRef_IsError
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6618,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6626,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6626,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6628,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6629,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6630,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:6632,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6640,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (GET_ITER))
      pos:
        line_end: 6628
        line_start: 6628
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6642
      start: 6609
    functionDepth: 1
    functionLinenumber: 6609
    functionLinenumberEnd: 6642
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ITER_SELF)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6653,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6661,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6661,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6663,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6664,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:6665,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:6667,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:6671,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6675,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (GET_ITER))
      pos:
        line_end: 6663
        line_start: 6663
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 6677
      start: 6644
    functionDepth: 1
    functionLinenumber: 6644
    functionLinenumberEnd: 6677
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_TagInt
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_ITER_VIRTUAL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6686,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6690,1
    - Dst: PyObject_Length
      Src: /src/cpython/Python/generated_cases.c.h:6691,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6691,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6692,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6694,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/generated_cases.c.h:6696,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6698,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6700,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6703,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6705
      start: 6679
    functionDepth: 3
    functionLinenumber: 6679
    functionLinenumberEnd: 6705
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyObject_Length
    - PyLong_FromSsize_t
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(GET_LEN)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6714,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:6718,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6720,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6720,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6721,1
    - Dst: _PyEval_LazyImportFrom
      Src: /src/cpython/Python/generated_cases.c.h:6722,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6723,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6724,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6727,1
    - Dst: _PyEval_ImportFrom
      Src: /src/cpython/Python/generated_cases.c.h:6728,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6729,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6730,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6733,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6735,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6738,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6740
      start: 6707
    functionDepth: 11
    functionLinenumber: 6707
    functionLinenumberEnd: 6740
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_ImportFrom
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyEval_LazyImportFrom
    - GETITEM
    - JUMP_TO_LABEL
    - PyLazyImport_CheckExact
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(IMPORT_FROM)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6749,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:6755,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6758,1
    - Dst: _PyEval_LazyImportName
      Src: /src/cpython/Python/generated_cases.c.h:6759,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:6759,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:6759,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:6760,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6761,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6762,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6764,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6767,1
    - Dst: _PyEval_ImportName
      Src: /src/cpython/Python/generated_cases.c.h:6768,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:6768,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:6768,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:6769,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6770,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6771,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6772,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6774,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6778,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6782,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6783,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6785,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6787,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6789,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6792,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6794
      start: 6742
    functionDepth: 11
    functionLinenumber: 6742
    functionLinenumberEnd: 6794
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_ImportName
    - LOCALS
    - PyStackRef_FromPyObjectSteal
    - GLOBALS
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - BUILTINS
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyEval_LazyImportName
    linkageType: ''
    returnType: void
    signature: void TARGET(IMPORT_NAME)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6805,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6818,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6818,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6819,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:6821,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:6824,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6827,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6828,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6829,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6837,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6838,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6841,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6844,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6851,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:6852,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6856,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6858,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6866,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:6869,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:6873,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:6874,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:6877,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:6878,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:6878,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6879,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:6880,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6884,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6886,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6888,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:6891,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6893,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:6894,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6903,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6906,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6907,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6909,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:6915,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6916,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:6917,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6918,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6920,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:6923,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6924
      start: 6796
    functionDepth: 13
    functionLinenumber: 6796
    functionLinenumberEnd: 6924
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - DISPATCH
    - PyStackRef_TYPE
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _Py_call_instrumentation_2args
    - _PyEvalFramePushAndInit
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_VectorCallInstrumentation_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:6935,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6949,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6950,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6951,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Python/generated_cases.c.h:6952,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6952,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6953,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6955,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6957,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/generated_cases.c.h:6958,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6959,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6961,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:6964,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6966,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:6967,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6968,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6978,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Python/generated_cases.c.h:6979,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6981,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:6981,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6983,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:6984,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6985,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6985,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:6986,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:6986,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:6987,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:6988,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6990,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:6991,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6994,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:6996,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:6998,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:6999,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7000,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:7001,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/generated_cases.c.h:7001,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7003,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:7004,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7007,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7010,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:7011,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7014,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7016,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:7017,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7018,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:7024,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:7025,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7027,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7028,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:7028,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:7029,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7029,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7030,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:7030,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:7031,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:7032,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:7033,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:7033,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7035,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7036,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Python/generated_cases.c.h:7037,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7040,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7042,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7044,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7046,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:7048,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7050,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7051,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:7051,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7052,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7053,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:7053,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7055,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/generated_cases.c.h:7056,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7057,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7060,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7061,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7062,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7063,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7065,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7066,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7067,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7068,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7070,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7071,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7072,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7073,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7075,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7077,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7083,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7084,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:7085,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7086,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7088,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7091,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 7027
        line_start: 7027
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 7052
        line_start: 7052
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 6984
        line_start: 6984
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 7029
        line_start: 7029
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 2u == 1 + INLINE_CACHE_ENTRIES_CALL_FUNCTION_EX)
      pos:
        line_end: 7045
        line_start: 7045
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 7050
        line_start: 7050
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 6980
        line_start: 6980
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 6985
        line_start: 6985
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7092
      start: 6926
    functionDepth: 14
    functionLinenumber: 6926
    functionLinenumberEnd: 7092
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - PyFunction_Check
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - PyObject_Call
    - PyMethod_Check
    - assert
    - PyTuple_GET_SIZE
    - Py_TYPE
    - _Py_call_instrumentation_2args
    - _Py_Check_ArgsIterable
    - check_periodics
    - PyStackRef_FromPyObjectSteal
    - PyTuple_CheckExact
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - _PyEvalFramePushAndInit_Ex
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyErr_Occurred
    - Py_CLEAR
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_call_instrumentation_exc2
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL_FUNCTION_EX)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7103,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:7116,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:7116,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7117,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:7119,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:7122,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7125,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7126,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7127,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:7133,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7136,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7139,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7144,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7147,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:7148,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7151,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7153,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7160,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7161,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:7164,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:7168,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:7169,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:7170,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/generated_cases.c.h:7173,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:7174,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:7174,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7175,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/generated_cases.c.h:7176,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7180,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7182,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7183,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7184,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7185,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7187,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7189,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:7191,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7193,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:7194,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7203,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7206,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7207,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7209,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7213,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7214,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( 4u == 1 + INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 7188
        line_start: 7188
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7215
      start: 7094
    functionDepth: 13
    functionLinenumber: 7094
    functionLinenumberEnd: 7215
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyFunction_GET_GLOBALS
    - PyFunction_GET_CODE
    - DISPATCH
    - assert
    - PyStackRef_TYPE
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _Py_call_instrumentation_2args
    - _PyEvalFramePushAndInit
    - PyStackRef_FromPyObjectSteal
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - Py_NewRef
    - PyStackRef_IsNull
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_VectorCallInstrumentation_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_CALL_KW)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7226,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7231,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7232,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:7238,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7240,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7241,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:7241,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7242,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:7243,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7244,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7246,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7250,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7254,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7255,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7257,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/generated_cases.c.h:7260,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7261,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:7262,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:7263,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7264,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 7240
        line_start: 7240
        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: 7230
        line_start: 7230
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7268
      start: 7217
    functionDepth: 1
    functionLinenumber: 7217
    functionLinenumberEnd: 7268
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - Py_INCREF
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - _PyErr_SetRaisedException
    - INSTRUMENTED_JUMP
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMPBY
    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:7278,1
    - Dst: PyStackRef_GenCheck
      Src: /src/cpython/Python/generated_cases.c.h:7283,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7284,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Python/generated_cases.c.h:7285,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7285,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7286,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7288,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7292,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7293,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7294,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7295,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7297
      start: 7270
    functionDepth: 1
    functionLinenumber: 7270
    functionLinenumberEnd: 7297
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - monitor_stop_iteration
    - JUMP_TO_LABEL
    - PyStackRef_GenCheck
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_END_FOR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7308,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7316,1
    - Dst: PyGen_Check
      Src: /src/cpython/Python/generated_cases.c.h:7317,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:7317,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7318,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Python/generated_cases.c.h:7319,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7319,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7320,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7322,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7329,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7330,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7331,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7332,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7334
      start: 7299
    functionDepth: 1
    functionLinenumber: 7299
    functionLinenumberEnd: 7334
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyCoro_CheckExact
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - monitor_stop_iteration
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyGen_Check
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_END_SEND)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7345,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7352,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/generated_cases.c.h:7353,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7354,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/generated_cases.c.h:7355,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/generated_cases.c.h:7356,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7357,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:7359,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7361,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7364,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7368,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7370
      start: 7336
    functionDepth: 3
    functionLinenumber: 7336
    functionLinenumberEnd: 7370
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_IsError
    - DISPATCH
    - _PyForIter_VirtualIteratorNext
    - INSTRUCTION_STATS
    - PyStackRef_IsValid
    - JUMP_TO_LABEL
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_FOR_ITER)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7381,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7383,1
    - Dst: _Py_call_instrumentation_instruction
      Src: /src/cpython/Python/generated_cases.c.h:7384,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7386,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7388,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:7392,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7394,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:7396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (next_opcode > 0 && next_opcode < 256)
      pos:
        line_end: 7393
        line_start: 7393
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7397
      start: 7372
    functionDepth: 5
    functionLinenumber: 7372
    functionLinenumberEnd: 7397
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PAUSE_ADAPTIVE_COUNTER
    - assert
    - _Py_call_instrumentation_instruction
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - DISPATCH_GOTO
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_INSTRUCTION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7408,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7412,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:7413,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7414,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7416,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7421,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7424
      start: 7399
    functionDepth: 1
    functionLinenumber: 7399
    functionLinenumberEnd: 7424
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - INSTRUMENTED_JUMP
    - check_periodics
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_JUMP_BACKWARD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7435,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7436,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7438
      start: 7426
    functionDepth: 1
    functionLinenumber: 7426
    functionLinenumberEnd: 7438
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUMENTED_JUMP
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_JUMP_FORWARD)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7450,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7454,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:7455,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7459,1
    - Dst: _Py_call_instrumentation_line
      Src: /src/cpython/Python/generated_cases.c.h:7460,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:7465,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7469,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:7474,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/generated_cases.c.h:7477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7478
      start: 7440
    functionDepth: 5
    functionLinenumber: 7440
    functionLinenumberEnd: 7478
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PAUSE_ADAPTIVE_COUNTER
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetBytecode
    - JUMP_TO_LABEL
    - _Py_call_instrumentation_line
    - DISPATCH_GOTO
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_LINE)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7489,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7502,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7503,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7504,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7507,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:7508,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7511,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7513,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7517,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7521,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7525,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7526,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7528,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7529,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7535,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:7536,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7537,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7542,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:7543,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7546,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7549,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:7550,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7553,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7555,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:7556,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7557,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7561,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7565,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7569,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7573,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7574,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7576,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7578,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:7580,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7581,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/generated_cases.c.h:7582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:7583,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7584,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7586,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7588,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7599,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7601
      start: 7480
    functionDepth: 8
    functionLinenumber: 7480
    functionLinenumberEnd: 7601
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - PyObject_Vectorcall
    - INSTRUCTION_STATS
    - _Py_call_instrumentation_2args
    - PyObject_GetAttr
    - JUMP_TO_LABEL
    - GETITEM
    - Py_CLEAR
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - _Py_call_instrumentation_exc2
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    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:7613,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7615,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7617
      start: 7603
    functionDepth: 1
    functionLinenumber: 7603
    functionLinenumberEnd: 7617
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUMENTED_JUMP
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_NOT_TAKEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7629,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7635,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7637,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7638,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7639,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7640,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7642
      start: 7619
    functionDepth: 1
    functionLinenumber: 7619
    functionLinenumberEnd: 7642
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_POP_ITER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7653,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7657,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:7657,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/generated_cases.c.h:7658,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:7659,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7661,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7664,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 7656
        line_start: 7656
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7666
      start: 7644
    functionDepth: 1
    functionLinenumber: 7644
    functionLinenumberEnd: 7666
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_IsFalse
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - INSTRUMENTED_JUMP
    - assert
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    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:7677,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:7681,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:7682,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7684,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7688,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7689,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7690,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7691,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7695,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7697
      start: 7668
    functionDepth: 1
    functionLinenumber: 7668
    functionLinenumberEnd: 7697
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - RECORD_BRANCH_TAKEN
    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:7708,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:7712,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:7713,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7716,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7717,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:7718,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7719,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7720,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7726
      start: 7699
    functionDepth: 1
    functionLinenumber: 7699
    functionLinenumberEnd: 7726
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - INSTRUMENTED_JUMP
    - _PyFrame_GetStackPointer
    - RECORD_BRANCH_TAKEN
    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:7737,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7741,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:7741,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:7742,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:7743,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/generated_cases.c.h:7745,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7748,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 7740
        line_start: 7740
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7750
      start: 7728
    functionDepth: 1
    functionLinenumber: 7728
    functionLinenumberEnd: 7750
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsTrue
    - INSTRUMENTED_JUMP
    - assert
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    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:7761,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7768,1
    - Dst: _PyEval_GetExecutableCode
      Src: /src/cpython/Python/generated_cases.c.h:7770,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7770,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7771,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7773,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:7775,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7779,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:7792,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:7793,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7793,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7795,1
    - Dst: _Py_Instrument
      Src: /src/cpython/Python/generated_cases.c.h:7796,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7796,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7797,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7799,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7802,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7809,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:7810,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7811,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7813,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7819,1
    - Dst: _Py_call_instrumentation
      Src: /src/cpython/Python/generated_cases.c.h:7820,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7822,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7824,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7830,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7831
      start: 7752
    functionDepth: 7
    functionLinenumber: 7752
    functionLinenumberEnd: 7831
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _Py_Instrument
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetBytecode
    - JUMP_TO_LABEL
    - _Py_atomic_load_uintptr_relaxed
    - check_periodics
    - _PyEval_GetExecutableCode
    - _PyFrame_GetStackPointer
    - _Py_call_instrumentation
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_RESUME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7842,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7850,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/generated_cases.c.h:7851,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7853,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7854,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7856,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:7862,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7867,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7870,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7871,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7872,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:7872,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Python/generated_cases.c.h:7873,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:7874,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/generated_cases.c.h:7877,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7878,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:7879,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:7881,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7885,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7866
        line_start: 7866
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 7871
        line_start: 7871
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7887
      start: 7833
    functionDepth: 7
    functionLinenumber: 7833
    functionLinenumberEnd: 7887
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - LOAD_IP
    - PyStackRef_MakeHeapSafe
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_call_instrumentation_arg
    - _Py_LeaveRecursiveCallPy
    - JUMP_TO_LABEL
    - DTRACE_FUNCTION_RETURN
    - LLTRACE_RESUME_FRAME
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyEval_FrameClearAndPop
    - ASSERT_WITHIN_STACK_BOUNDS
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_RETURN_VALUE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7898,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7906,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/generated_cases.c.h:7907,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7909,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7910,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:7912,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7916,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:7922,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7927,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/generated_cases.c.h:7929,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7930,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7931,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7934,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7935,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Python/generated_cases.c.h:7936,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:7939,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:7944,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7945,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:7947,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:7948,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7949,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/generated_cases.c.h:7950,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:7950,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7951,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7954,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:7955,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:7957,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:7961,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:7962,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 7930
        line_start: 7930
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (opcode == SEND || opcode == FOR_ITER)
      pos:
        line_end: 7950
        line_start: 7950
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (i >= 0 && i <= INT_MAX)
      pos:
        line_end: 7948
        line_start: 7948
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7926
        line_start: 7926
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 7944
        line_start: 7944
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1)
      pos:
        line_end: 7929
        line_start: 7929
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7963
      start: 7889
    functionDepth: 7
    functionLinenumber: 7889
    functionLinenumberEnd: 7963
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_MakeHeapSafe
    - DISPATCH
    - PyStackRef_IsNone
    - _PyFrame_GetBytecode
    - assert
    - _PyGen_GetGeneratorFromFrame
    - _Py_call_instrumentation_arg
    - _PyFrame_GetCode
    - INSTRUCTION_STATS
    - _Py_LeaveRecursiveCallPy
    - JUMP_TO_LABEL
    - _Py_GetBaseCodeUnit
    - DTRACE_FUNCTION_RETURN
    - LLTRACE_RESUME_FRAME
    - FT_ATOMIC_STORE_INT8_RELEASE
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(INSTRUMENTED_YIELD_VALUE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:7972,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7975,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7976,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/generated_cases.c.h:7976,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7978,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:7978,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:7979,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7981,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:7985,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:7986,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:7987,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      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:7991,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:7992,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:7996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner == FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 7974
        line_start: 7974
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 7977
        line_start: 7977
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 7975
        line_start: 7975
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame == &entry.frame)
      pos:
        line_end: 7980
        line_start: 7980
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 7984
        line_start: 7984
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 7998
      start: 7965
    functionDepth: 1
    functionLinenumber: 7965
    functionLinenumberEnd: 7998
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_CLOSE
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _PyErr_Occurred
    - _PyFrame_IsIncomplete
    - LLTRACE_RESUME_FRAME
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(INTERPRETER_EXIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8007,1
    - Dst: Py_Is
      Src: /src/cpython/Python/generated_cases.c.h:8018,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8018,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8018,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8028,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8029,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8030,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8036,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8037,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8038,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8039,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8042
      start: 8000
    functionDepth: 1
    functionLinenumber: 8000
    functionLinenumberEnd: 8042
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - Py_Is
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(IS_OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8051,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8061,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:8063,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8069,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:8070,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8071,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8073,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8078,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:8078,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:8079,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 8077
        line_start: 8077
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8082
      start: 8044
    functionDepth: 1
    functionLinenumber: 8044
    functionLinenumberEnd: 8082
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - INSTR_OFFSET
    - check_periodics
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8093,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8098,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:8099,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8100,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8102,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8107,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:8107,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:8108,1
    - Dst: backoff_counter_triggers
      Src: /src/cpython/Python/generated_cases.c.h:8115,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:8116,1
    - Dst: _PyJit_TryInitializeTracing
      Src: /src/cpython/Python/generated_cases.c.h:8124,1
    - Dst: ENTER_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:8127,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Python/generated_cases.c.h:8130,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:8134,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 8106
        line_start: 8106
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8139
      start: 8084
    functionDepth: 7
    functionLinenumber: 8084
    functionLinenumberEnd: 8139
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - ENTER_TRACING
    - JUMP_TO_LABEL
    - backoff_counter_triggers
    - INSTR_OFFSET
    - restart_backoff_counter
    - ADVANCE_ADAPTIVE_COUNTER
    - check_periodics
    - _PyFrame_GetStackPointer
    - IS_JIT_TRACING
    - _PyJit_TryInitializeTracing
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_BACKWARD_JIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8148,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8149,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:8149,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:8150,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 8148
        line_start: 8148
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8152
      start: 8141
    functionDepth: 1
    functionLinenumber: 8141
    functionLinenumberEnd: 8152
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - INSTR_OFFSET
    - assert
    - JUMPBY
    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:8161,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8166,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:8167,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8168,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8170,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8175,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:8175,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:8176,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 8174
        line_start: 8174
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8179
      start: 8154
    functionDepth: 1
    functionLinenumber: 8154
    functionLinenumberEnd: 8179
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - INSTR_OFFSET
    - check_periodics
    - _PyFrame_GetStackPointer
    - JUMPBY
    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:8188,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:8189,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8191
      start: 8181
    functionDepth: 1
    functionLinenumber: 8181
    functionLinenumberEnd: 8191
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(JUMP_FORWARD)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8200,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:8205,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8205,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:8206,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8208,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8211,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8213
      start: 8193
    functionDepth: 1
    functionLinenumber: 8193
    functionLinenumberEnd: 8213
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyList_AppendTakeRef
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LIST_APPEND)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8222,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8231,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8232,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8233,1
    - Dst: _PyList_Extend
      Src: /src/cpython/Python/generated_cases.c.h:8234,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8235,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/generated_cases.c.h:8237,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8239,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/generated_cases.c.h:8239,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8241,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/generated_cases.c.h:8242,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:8243,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8245,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8246,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8248,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8250,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:8250,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8257,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8258,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8259,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8260,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_IsNone(none_val))
      pos:
        line_end: 8249
        line_start: 8249
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8263
      start: 8215
    functionDepth: 2
    functionLinenumber: 8215
    functionLinenumberEnd: 8263
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PySequence_Check
    - _PyErr_Format
    - _PyList_Extend
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_ExceptionMatches
    - JUMP_TO_LABEL
    - Py_IsNone
    - _PyErr_Clear
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(LIST_EXTEND)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8272,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8282,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:8285,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:8286,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8288,1
    - Dst: _Py_Specialize_LoadAttr
      Src: /src/cpython/Python/generated_cases.c.h:8289,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8290,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:8291,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:8293,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:8294,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:8301,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8303,1
    - Dst: _Py_LoadAttr_StackRefSteal
      Src: /src/cpython/Python/generated_cases.c.h:8304,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8305,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:8306,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8307,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8311,1
    - Dst: _PyObject_GetAttrStackRef
      Src: /src/cpython/Python/generated_cases.c.h:8312,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8312,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8313,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8316,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8317,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8318,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8319,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:8320,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:8321,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8328,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8330
      start: 8265
    functionDepth: 5
    functionLinenumber: 8265
    functionLinenumberEnd: 8330
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyObject_GetAttrStackRef
    - GETITEM
    - JUMP_TO_LABEL
    - _Py_LoadAttr_StackRefSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - _Py_Specialize_LoadAttr
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8341,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8350,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8351,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:8352,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8353,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8354,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8355,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8357,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8358,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8359,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8360,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8361,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8367,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8368,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8369,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8370,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8371,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8375,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8376,1
    - Dst: ASSERT_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: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8359
        line_start: 8359
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8356
        line_start: 8356
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8353
        line_start: 8353
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8368
        line_start: 8368
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8388
      start: 8332
    functionDepth: 1
    functionLinenumber: 8332
    functionLinenumberEnd: 8388
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyType_Check
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_CLASS)
  - BBCount: 5
    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:8408,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8409,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8409,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8410,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8411,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8412,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8413,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8414,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8419,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8420,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:8421,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8422,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8423,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8424,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8426,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8427,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8428,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8429,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8430,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8435,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8436,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8437,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8438,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8439,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8443,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8444,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8454,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 8425
        line_start: 8425
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8436
        line_start: 8436
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8409
        line_start: 8409
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8412
        line_start: 8412
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8428
        line_start: 8428
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8422
        line_start: 8422
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8456
      start: 8390
    functionDepth: 1
    functionLinenumber: 8390
    functionLinenumberEnd: 8456
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyType_Check
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    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:8467,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8475,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8476,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8476,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8477,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8478,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8479,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8480,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8481,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:8486,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8487,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8488,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8489,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8494,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8495,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8496,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8497,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8497,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8499,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8501,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8502,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8503,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8506,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:8507,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8508,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8509,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8510,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8512,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:8513,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:8514,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8515,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8517,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:8518,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8531,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:8531,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:8532,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8534,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8535,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8536,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8537,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:8540,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:8541,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:8542,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:8543,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 8505
        line_start: 8505
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 8530
        line_start: 8530
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8476
        line_start: 8476
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8487
        line_start: 8487
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8508
        line_start: 8508
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_IS_TYPE(getattribute, &PyFunction_Type))
      pos:
        line_end: 8496
        line_start: 8496
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (func_version != 0)
      pos:
        line_end: 8498
        line_start: 8498
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8501
        line_start: 8501
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8479
        line_start: 8479
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8495
        line_start: 8495
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 8535
        line_start: 8535
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8546
      start: 8458
    functionDepth: 1
    functionLinenumber: 8458
    functionLinenumberEnd: 8546
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - read_obj
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - PyStackRef_Unwrap
    - read_u32
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - LOAD_SP
    - IS_PEP523_HOOKED
    - GETITEM
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    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:8557,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8568,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8569,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8569,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8570,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8571,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8572,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8573,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8574,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8579,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8580,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8580,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8581,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8581,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/generated_cases.c.h:8582,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:8582,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8583,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8584,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8585,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8590,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8591,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:8593,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8595,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8596,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8597,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:8600,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8603,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8604,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8605,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8609,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8611,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8618,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8619,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8620,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8631,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8603
        line_start: 8603
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8583
        line_start: 8583
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8595
        line_start: 8595
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8569
        line_start: 8569
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8572
        line_start: 8572
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 8579
        line_start: 8579
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8580
        line_start: 8580
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8633
      start: 8548
    functionDepth: 1
    functionLinenumber: 8548
    functionLinenumberEnd: 8633
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyObject_InlineValues
    - DISPATCH
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _Py_TryIncrefCompareStackRef
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - FT_ATOMIC_LOAD_UINT8
    - read_u32
    - STAT_INC
    - read_u16
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    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:8644,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8653,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8654,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8654,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8655,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8656,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8657,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8658,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8659,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8664,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8665,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:8666,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8668,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8669,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8670,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8676,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8677,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8678,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8679,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8680,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/generated_cases.c.h:8680,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8680,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8681,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8687,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 8654
        line_start: 8654
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8657
        line_start: 8657
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8678
        line_start: 8678
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 8676
        line_start: 8676
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8668
        line_start: 8668
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8679
        line_start: 8679
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8689
      start: 8635
    functionDepth: 1
    functionLinenumber: 8635
    functionLinenumberEnd: 8689
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyType_HasFeature
    - PyStackRef_FromPyObjectNew
    - read_u16
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    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:8700,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8709,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8710,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8710,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8711,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8712,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8713,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8714,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8715,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8721,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8722,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8723,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8723,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8723,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8724,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8725,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8726,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/generated_cases.c.h:8726,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8726,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8727,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8733,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg & 1)
      pos:
        line_end: 8721
        line_start: 8721
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(PyStackRef_AsPyObjectBorrow(owner))->tp_dictoffset == 0)
      pos:
        line_end: 8722
        line_start: 8722
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8725
        line_start: 8725
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8724
        line_start: 8724
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      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: 8713
        line_start: 8713
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8735
      start: 8691
    functionDepth: 1
    functionLinenumber: 8691
    functionLinenumberEnd: 8735
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyType_HasFeature
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    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:8746,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8755,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8756,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8756,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8757,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8758,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8759,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8760,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8761,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8766,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8767,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8767,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:8768,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/generated_cases.c.h:8769,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8770,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8771,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8772,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8777,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8778,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8778,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8781,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8782,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8783,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8784,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8789,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8790,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8791,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8792,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8793,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/generated_cases.c.h:8793,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8793,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8794,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8800,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (descr != NULL)
      pos:
        line_end: 8791
        line_start: 8791
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8766
        line_start: 8766
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8782
        line_start: 8782
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg & 1)
      pos:
        line_end: 8789
        line_start: 8789
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 8792
        line_start: 8792
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8770
        line_start: 8770
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 8756
        line_start: 8756
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8759
        line_start: 8759
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8802
      start: 8737
    functionDepth: 1
    functionLinenumber: 8737
    functionLinenumberEnd: 8802
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyObject_InlineValues
    - _PyType_HasFeature
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - FT_ATOMIC_LOAD_UINT8
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    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:8813,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8824,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:8825,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8826,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8827,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8828,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8829,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8830,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8833,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:8834,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8835,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8836,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8837,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8838,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8840,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8841,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8841,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:8842,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8843,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8845,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8846,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8847,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:8850,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8853,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8854,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8855,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8859,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8861,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8868,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8869,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8870,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8881,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8845
        line_start: 8845
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (dict != NULL)
      pos:
        line_end: 8832
        line_start: 8832
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 8839
        line_start: 8839
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8853
        line_start: 8853
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8828
        line_start: 8828
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (index < FT_ATOMIC_LOAD_SSIZE_RELAXED(keys->dk_nentries))
      pos:
        line_end: 8840
        line_start: 8840
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8836
        line_start: 8836
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8883
      start: 8804
    functionDepth: 1
    functionLinenumber: 8804
    functionLinenumberEnd: 8883
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - DK_UNICODE_ENTRIES
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _Py_TryIncrefCompareStackRef
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - read_u32
    - STAT_INC
    - read_u16
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_MODULE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8894,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8902,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8903,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8903,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8904,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8905,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8906,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8907,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8908,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8914,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8915,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8916,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8916,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8916,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8917,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8918,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8920,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8921,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8922,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8923,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8924,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8928,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 8903
        line_start: 8903
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8917
        line_start: 8917
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8906
        line_start: 8906
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8914
        line_start: 8914
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(PyStackRef_AsPyObjectBorrow(owner))->tp_dictoffset == 0)
      pos:
        line_end: 8915
        line_start: 8915
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8930
      start: 8885
    functionDepth: 1
    functionLinenumber: 8885
    functionLinenumberEnd: 8930
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - read_obj
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    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:8941,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8949,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8950,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8950,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8951,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8952,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8953,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8954,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8955,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8960,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8961,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8961,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:8962,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/generated_cases.c.h:8963,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8964,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8965,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8966,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:8971,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:8972,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:8972,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:8975,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:8976,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8977,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:8978,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:8983,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8984,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:8985,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:8986,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8988,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8989,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:8990,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:8991,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:8992,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:8996,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:8997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 8950
        line_start: 8950
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8953
        line_start: 8953
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8976
        line_start: 8976
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (descr != NULL)
      pos:
        line_end: 8985
        line_start: 8985
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 8964
        line_start: 8964
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 8960
        line_start: 8960
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 8983
        line_start: 8983
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 8998
      start: 8932
    functionDepth: 1
    functionLinenumber: 8932
    functionLinenumberEnd: 8998
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyObject_InlineValues
    - DISPATCH
    - read_obj
    - assert
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - FT_ATOMIC_LOAD_UINT8
    - read_u32
    - STAT_INC
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyStackRef_CLOSE
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9009,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:9017,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:9018,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9018,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9019,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9020,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9021,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9022,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9023,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:9028,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9029,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9030,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9031,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:9036,1
    - Dst: read_obj
      Src: /src/cpython/Python/generated_cases.c.h:9037,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9038,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9039,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:9039,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9042,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9043,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9044,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/generated_cases.c.h:9047,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9048,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9049,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9050,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9052,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/generated_cases.c.h:9053,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9053,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:9055,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9068,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:9068,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:9069,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9071,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9072,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9073,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9074,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:9077,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:9078,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:9079,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:9080,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9029
        line_start: 9029
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9042
        line_start: 9042
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 9072
        line_start: 9072
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_IS_TYPE(fget, &PyFunction_Type))
      pos:
        line_end: 9038
        line_start: 9038
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9048
        line_start: 9048
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 9018
        line_start: 9018
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9021
        line_start: 9021
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 9037
        line_start: 9037
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 9067
        line_start: 9067
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9083
      start: 9000
    functionDepth: 1
    functionLinenumber: 9000
    functionLinenumberEnd: 9083
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - read_obj
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - CALL_STAT_INC
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - PyStackRef_Unwrap
    - read_u32
    - STAT_INC
    - Py_IS_TYPE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - LOAD_SP
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_HasStackSpace
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_PROPERTY)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9094,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:9105,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:9106,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9106,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9107,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9108,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9109,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9110,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9111,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9116,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9117,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/generated_cases.c.h:9119,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9121,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9122,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9123,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9126,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9128,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9129,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9130,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9133,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9135,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9142,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9143,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9144,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9155,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 9106
        line_start: 9106
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9109
        line_start: 9109
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9128
        line_start: 9128
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9121
        line_start: 9121
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9157
      start: 9085
    functionDepth: 1
    functionLinenumber: 9085
    functionLinenumberEnd: 9157
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - FT_ATOMIC_LOAD_PTR
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - _PyFrame_SetStackPointer
    - read_u16
    - JUMP_TO_PREDICTED
    - _Py_TryIncrefCompareStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_ATTR_SLOT)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9168,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:9179,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:9180,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9180,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9181,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9182,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9183,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9184,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9185,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9190,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9191,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9192,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:9192,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/generated_cases.c.h:9193,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9195,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9196,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9197,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/generated_cases.c.h:9199,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9200,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9200,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/generated_cases.c.h:9202,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/generated_cases.c.h:9202,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9203,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9204,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9205,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9209,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9211,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9212,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9213,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9216,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9219,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9220,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9221,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:9224,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9225,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9227,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9228,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9229,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/generated_cases.c.h:9232,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9235,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9236,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9237,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9240,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9242,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9245,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9246,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9247,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9251,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9259,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9260,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9261,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9272,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9273,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9195
        line_start: 9195
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 9199
        line_start: 9199
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9203
        line_start: 9203
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9219
        line_start: 9219
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 9180
        line_start: 9180
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9183
        line_start: 9183
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9227
        line_start: 9227
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9235
        line_start: 9235
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9245
        line_start: 9245
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 9191
        line_start: 9191
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_ATTR))
      pos:
        line_end: 9211
        line_start: 9211
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9274
      start: 9159
    functionDepth: 1
    functionLinenumber: 9159
    functionLinenumberEnd: 9274
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - assert
    - DK_UNICODE_ENTRIES
    - _PyObject_GC_IS_SHARED
    - Py_TYPE
    - PyStackRef_FromPyObjectNew
    - _PyObject_GetManagedDict
    - _Py_TryIncrefCompareStackRef
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - read_u32
    - STAT_INC
    - read_u16
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _Py_IsOwnedByCurrentThread
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - FT_ATOMIC_LOAD_PTR
    - GETITEM
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    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:9283,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9286,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/generated_cases.c.h:9287,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9287,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/generated_cases.c.h:9287,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9288,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9290,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9293,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/generated_cases.c.h:9294,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9296,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9297,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9299,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9302,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9304
      start: 9276
    functionDepth: 10
    functionLinenumber: 9276
    functionLinenumberEnd: 9304
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyMapping_GetOptionalItem2
    - PyStackRef_FromPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_SetString
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - BUILTINS
    - ASSERT_WITHIN_STACK_BOUNDS
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_BUILD_CLASS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9313,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9315,1
    - Dst: PyStackRef_DupImmortal
      Src: /src/cpython/Python/generated_cases.c.h:9316,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9319,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg < NUM_COMMON_CONSTANTS)
      pos:
        line_end: 9314
        line_start: 9314
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9321
      start: 9306
    functionDepth: 1
    functionLinenumber: 9306
    functionLinenumberEnd: 9321
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_DupImmortal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_COMMON_CONSTANT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9330,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9332,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9333,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9336,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9338
      start: 9323
    functionDepth: 1
    functionLinenumber: 9323
    functionLinenumberEnd: 9338
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - ASSERT_WITHIN_STACK_BOUNDS
    - 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:9347,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9349,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9349,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9350,1
    - Dst: _PyCell_GetStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9351,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9352,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:9353,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9356,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9357,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/generated_cases.c.h:9358,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:9358,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9359,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9360,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9364,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9366
      start: 9340
    functionDepth: 8
    functionLinenumber: 9340
    functionLinenumberEnd: 9366
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyEval_FormatExcUnbound
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _PyCell_GetStackRef
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_DEREF)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9375,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9377,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:9377,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9377,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:9378,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9378,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9381,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 9376
        line_start: 9376
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9383
      start: 9368
    functionDepth: 1
    functionLinenumber: 9368
    functionLinenumberEnd: 9383
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - GETLOCAL
    - PyStackRef_DUP
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9392,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9394,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9395,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9398,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9400
      start: 9385
    functionDepth: 1
    functionLinenumber: 9385
    functionLinenumberEnd: 9400
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - GETLOCAL
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    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:9409,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9411,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:9411,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9411,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/generated_cases.c.h:9412,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9412,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9415,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 9410
        line_start: 9410
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9417
      start: 9402
    functionDepth: 1
    functionLinenumber: 9402
    functionLinenumberEnd: 9417
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - GETLOCAL
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_Borrow
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_BORROW)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9426,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/generated_cases.c.h:9431,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9431,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/generated_cases.c.h:9432,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9432,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9436,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9438
      start: 9419
    functionDepth: 1
    functionLinenumber: 9419
    functionLinenumberEnd: 9438
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - GETLOCAL
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_Borrow
    - ASSERT_WITHIN_STACK_BOUNDS
    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:9447,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9449,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:9450,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9451,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:9452,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/generated_cases.c.h:9454,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:9454,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9456,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9457,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:9459,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9462,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9464
      start: 9440
    functionDepth: 7
    functionLinenumber: 9440
    functionLinenumberEnd: 9464
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - _PyEval_FormatExcCheckArg
    - PyStackRef_DUP
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyTuple_GetItem
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FAST_CHECK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9473,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:9478,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9478,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:9479,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9479,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9483,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9485
      start: 9466
    functionDepth: 1
    functionLinenumber: 9466
    functionLinenumberEnd: 9485
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - GETLOCAL
    - PyStackRef_DUP
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    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:9494,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9499,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9500,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9501,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:9501,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:9502,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:9502,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9504,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/generated_cases.c.h:9505,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9506,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9508,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9511,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:9511,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Python/generated_cases.c.h:9512,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9514,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/generated_cases.c.h:9515,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:9515,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9516,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9517,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9521,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9522,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9523,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9524,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9525,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9528,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus)
      pos:
        line_end: 9500
        line_start: 9500
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (class_dict)
      pos:
        line_end: 9499
        line_start: 9499
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9530
      start: 9487
    functionDepth: 10
    functionLinenumber: 9487
    functionLinenumberEnd: 9530
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyMapping_GetOptionalItem2
    - GETLOCAL
    - PyTuple_GET_ITEM
    - PyCell_GetRef
    - _PyFrame_GetCode
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _PyEval_FormatExcUnbound
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_FROM_DICT_OR_DEREF)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9539,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9543,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9545,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/generated_cases.c.h:9546,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9546,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9547,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9549,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9550,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:9551,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9552,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9554,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9557,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9557,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9558,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9558,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9560,1
    - Dst: _PyDict_LoadGlobal
      Src: /src/cpython/Python/generated_cases.c.h:9561,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9561,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9562,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9564,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:9566,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9567,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:9568,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9570,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9572,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9574,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9575,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Python/generated_cases.c.h:9576,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/generated_cases.c.h:9577,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9578,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9580,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9585,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/generated_cases.c.h:9586,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9586,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9587,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9589,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9592,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/generated_cases.c.h:9593,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9593,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9594,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9596,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9599,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/generated_cases.c.h:9600,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9603,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9604,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9607,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9608,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Python/generated_cases.c.h:9609,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/generated_cases.c.h:9610,1
    - Dst: _PyFrame_GetStackPointer
      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:9618,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9621,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9622,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9623
      start: 9532
    functionDepth: 19
    functionLinenumber: 9532
    functionLinenumberEnd: 9623
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - BUILTINS
    - PyStackRef_FromPyObjectSteal
    - _PyMapping_GetOptionalItem2
    - _PyEval_FormatExcCheckArg
    - GLOBALS
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyDict_CheckExact
    - _PyImport_LoadLazyImportTstate
    - PyStackRef_CLOSE
    - _PyErr_Occurred
    - _PyDict_LoadGlobal
    - GETITEM
    - Py_SETREF
    - PyLazyImport_CheckExact
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    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:9632,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9640,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:9643,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9644,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9646,1
    - Dst: _Py_Specialize_LoadGlobal
      Src: /src/cpython/Python/generated_cases.c.h:9647,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9647,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9647,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9648,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:9649,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:9651,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:9652,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9661,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9662,1
    - Dst: _PyEval_LoadGlobalStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9663,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9663,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9663,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9664,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:9665,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9666,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9677,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9679
      start: 9625
    functionDepth: 11
    functionLinenumber: 9625
    functionLinenumberEnd: 9679
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - GLOBALS
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - _PyEval_LoadGlobalStackRef
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _Py_Specialize_LoadGlobal
    - _PyFrame_GetStackPointer
    - BUILTINS
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9690,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9697,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9698,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9699,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9700,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9701,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9702,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:9704,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9705,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9706,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9707,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9708,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9710,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9714,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9715,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/generated_cases.c.h:9716,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9717,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9718,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9719,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9720,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:9722,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9723,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9724,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9725,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9726,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9728,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:9729,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9730,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9732,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9733,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9734,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9737,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9739,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9740,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9741,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9744,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9746,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9757,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9758,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9739
        line_start: 9739
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9706
        line_start: 9706
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 9727
        line_start: 9727
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9700
        line_start: 9700
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 9709
        line_start: 9709
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9724
        line_start: 9724
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9718
        line_start: 9718
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9732
        line_start: 9732
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9759
      start: 9681
    functionDepth: 1
    functionLinenumber: 9681
    functionLinenumberEnd: 9759
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - STAT_INC
    - PyStackRef_FromPyObjectNew
    - read_u16
    - JUMP_TO_PREDICTED
    - GLOBALS
    - _Py_TryIncrefCompareStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - DK_UNICODE_ENTRIES
    - UPDATE_MISS_STATS
    - BUILTINS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL_BUILTIN)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9770,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9780,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9781,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9782,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9783,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9784,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9785,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9786,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:9788,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9789,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9790,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9791,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9792,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9794,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:9795,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9796,1
    - Dst: DK_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:9796,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:9797,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9799,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9800,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9801,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/generated_cases.c.h:9804,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9806,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9807,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:9808,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9811,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:9813,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9824,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9825,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9790
        line_start: 9790
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9784
        line_start: 9784
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 9793
        line_start: 9793
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9799
        line_start: 9799
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (index < DK_SIZE(keys))
      pos:
        line_end: 9795
        line_start: 9795
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_GLOBAL))
      pos:
        line_end: 9806
        line_start: 9806
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9826
      start: 9761
    functionDepth: 1
    functionLinenumber: 9761
    functionLinenumberEnd: 9826
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - DK_SIZE
    - PyStackRef_FromPyObjectNew
    - read_u16
    - JUMP_TO_PREDICTED
    - GLOBALS
    - _Py_TryIncrefCompareStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - assert
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - DK_UNICODE_ENTRIES
    - UPDATE_MISS_STATS
    - FT_ATOMIC_LOAD_PTR_RELAXED
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_GLOBAL_MODULE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9835,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:9837,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9839,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/generated_cases.c.h:9840,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9842,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9843,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:9845,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9848,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9850
      start: 9828
    functionDepth: 1
    functionLinenumber: 9828
    functionLinenumberEnd: 9850
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - LOCALS
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_SetString
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_LOCALS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9859,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:9861,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9862,1
    - Dst: _PyEval_LoadName
      Src: /src/cpython/Python/generated_cases.c.h:9863,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9864,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9866,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:9868,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9869,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Python/generated_cases.c.h:9870,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9871,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:9874,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9875,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9876,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9878,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:9879,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:9879,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9880,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:9883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:9884,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9885,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9886,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9888,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/generated_cases.c.h:9889,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9890,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:9892,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9895,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9896,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9897
      start: 9852
    functionDepth: 19
    functionLinenumber: 9852
    functionLinenumberEnd: 9897
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyImport_LoadLazyImportTstate
    - GLOBALS
    - DISPATCH
    - INSTRUCTION_STATS
    - Py_SETREF
    - GETITEM
    - JUMP_TO_LABEL
    - _PyEval_LoadName
    - PyDict_SetItem
    - PyLazyImport_CheckExact
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9906,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9908,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9910,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9913,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg < _PY_NSMALLPOSINTS)
      pos:
        line_end: 9907
        line_start: 9907
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9915
      start: 9899
    functionDepth: 1
    functionLinenumber: 9899
    functionLinenumberEnd: 9915
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    - 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:9924,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:9939,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9940,1
    - Dst: _PyObject_LookupSpecialMethod
      Src: /src/cpython/Python/generated_cases.c.h:9941,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9942,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:9945,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9946,1
    - Dst: _PyEval_SpecialMethodCanSuggest
      Src: /src/cpython/Python/generated_cases.c.h:9947,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9950,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9951,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:9951,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:9952,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9953,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:9954,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9955,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:9957,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:9960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 9950
        line_start: 9950
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (errfmt != NULL)
      pos:
        line_end: 9951
        line_start: 9951
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 9961
      start: 9917
    functionDepth: 5
    functionLinenumber: 9917
    functionLinenumberEnd: 9961
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - assert
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyErr_Occurred
    - _PyEval_SpecialMethodCanSuggest
    - JUMP_TO_LABEL
    - _PyObject_LookupSpecialMethod
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SPECIAL)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:9970,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:9984,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:9988,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9990,1
    - Dst: _Py_Specialize_LoadSuperAttr
      Src: /src/cpython/Python/generated_cases.c.h:9991,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:9992,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:9993,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:9995,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:9996,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10002,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10003,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10004,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10007,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:10008,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10011,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10013,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10017,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10021,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10025,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10026,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10028,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10029,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10035,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:10036,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10037,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10042,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/generated_cases.c.h:10043,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10046,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10049,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/generated_cases.c.h:10050,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10053,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10055,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:10056,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10057,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10061,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10065,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10069,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10073,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10074,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10076,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10078,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:10080,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10081,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/generated_cases.c.h:10082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:10083,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10084,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10086,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10088,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10099,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10101
      start: 9963
    functionDepth: 8
    functionLinenumber: 9963
    functionLinenumberEnd: 10101
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - OPCODE_DEFERRED_INC
    - DISPATCH_SAME_OPARG
    - _Py_call_instrumentation_2args
    - PyStackRef_FromPyObjectSteal
    - read_u16
    - _Py_Specialize_LoadSuperAttr
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - Py_DECREF
    - PyStackRef_CLOSE
    - PyObject_Vectorcall
    - PyObject_GetAttr
    - GETITEM
    - Py_CLEAR
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - _Py_call_instrumentation_exc2
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(LOAD_SUPER_ATTR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10112,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10122,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10123,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10124,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10125,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10127,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10128,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10129,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:10131,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10132,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10133,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10134,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:10136,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:10137,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10138,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Python/generated_cases.c.h:10139,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10143,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10147,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10151,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10152,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10154,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10156,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10158,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10161,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!(oparg & 1))
      pos:
        line_end: 10124
        line_start: 10124
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 10127
        line_start: 10127
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 10132
        line_start: 10132
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10163
      start: 10103
    functionDepth: 11
    functionLinenumber: 10103
    functionLinenumberEnd: 10163
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - _PySuper_Lookup
    - PyType_Check
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    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:10174,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10186,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10187,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10188,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10190,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10191,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10192,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/generated_cases.c.h:10194,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10195,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10196,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10197,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10203,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10204,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:10205,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:10206,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10212,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Python/generated_cases.c.h:10213,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10214,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10215,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10218,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10224,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10225,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10226,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10227,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10232,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10233,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10237,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10241,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10242,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10244,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10245,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10250,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg & 1)
      pos:
        line_end: 10187
        line_start: 10187
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 10195
        line_start: 10195
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (LOAD_SUPER_ATTR))
      pos:
        line_end: 10190
        line_start: 10190
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10252
      start: 10165
    functionDepth: 11
    functionLinenumber: 10165
    functionLinenumberEnd: 10252
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - _PySuper_Lookup
    - PyType_Check
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - UPDATE_MISS_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - Py_TYPE
    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:10261,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10262,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:10262,1
    - Dst: PyCell_New
      Src: /src/cpython/Python/generated_cases.c.h:10263,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10265,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:10267,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:10268,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10268,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10269,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10270,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10271,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10273
      start: 10254
    functionDepth: 2
    functionLinenumber: 10254
    functionLinenumberEnd: 10273
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - PyCell_New
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(MAKE_CELL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10282,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10290,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10291,1
    - Dst: PyFunction_New
      Src: /src/cpython/Python/generated_cases.c.h:10293,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:10293,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10294,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10296,1
    - Dst: _PyFunction_SetVersion
      Src: /src/cpython/Python/generated_cases.c.h:10299,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10301,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10307,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10308,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10309,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10312
      start: 10275
    functionDepth: 10
    functionLinenumber: 10275
    functionLinenumberEnd: 10312
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GLOBALS
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyFunction_New
    - _PyFunction_SetVersion
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(MAKE_FUNCTION)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10321,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10328,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10329,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:10329,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10330,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Python/generated_cases.c.h:10331,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10333,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10334,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10336,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10338,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10341,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 10328
        line_start: 10328
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10343
      start: 10314
    functionDepth: 9
    functionLinenumber: 10314
    functionLinenumberEnd: 10343
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyDict_CheckExact
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyDict_SetItem_Take2
    linkageType: ''
    returnType: void
    signature: void TARGET(MAP_ADD)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10352,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10366,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:10366,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10366,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10367,1
    - Dst: _PyEval_MatchClass
      Src: /src/cpython/Python/generated_cases.c.h:10368,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10369,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10370,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10371,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10372,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10374,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:10374,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10375,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:10378,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10379,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10393,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10394,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10395,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10401,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10402,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10403,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10404,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10410,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10411,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10412,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10413,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(PyStackRef_AsPyObjectBorrow(names)))
      pos:
        line_end: 10365
        line_start: 10365
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(attrs_o))
      pos:
        line_end: 10373
        line_start: 10373
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10416
      start: 10345
    functionDepth: 14
    functionLinenumber: 10345
    functionLinenumberEnd: 10416
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _PyErr_Occurred
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - _PyEval_MatchClass
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    - 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:10425,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10431,1
    - Dst: _PyEval_MatchKeys
      Src: /src/cpython/Python/generated_cases.c.h:10432,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10433,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:10433,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10434,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10436,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10438,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10441,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10443
      start: 10418
    functionDepth: 14
    functionLinenumber: 10418
    functionLinenumberEnd: 10443
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_MatchKeys
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_KEYS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10452,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10456,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10460,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10462
      start: 10445
    functionDepth: 1
    functionLinenumber: 10445
    functionLinenumberEnd: 10462
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - PyStackRef_TYPE
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_MAPPING)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10471,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:10475,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10479,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10481
      start: 10464
    functionDepth: 1
    functionLinenumber: 10464
    functionLinenumberEnd: 10481
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - PyStackRef_TYPE
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(MATCH_SEQUENCE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10490,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10492
      start: 10483
    functionDepth: 1
    functionLinenumber: 10483
    functionLinenumberEnd: 10492
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(NOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10501,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10503
      start: 10494
    functionDepth: 1
    functionLinenumber: 10494
    functionLinenumberEnd: 10503
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(NOT_TAKEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10512,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10516,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/generated_cases.c.h:10517,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:10518,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10519,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10520,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10522,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10524
      start: 10505
    functionDepth: 1
    functionLinenumber: 10505
    functionLinenumberEnd: 10524
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - Py_XSETREF
    - INSTRUCTION_STATS
    - PyStackRef_IsNone
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_EXCEPT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10533,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10540,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10541,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10542,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10543,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10545
      start: 10526
    functionDepth: 1
    functionLinenumber: 10526
    functionLinenumberEnd: 10545
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_ITER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10556,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10560,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:10560,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/generated_cases.c.h:10561,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:10562,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:10563,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10565,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10559
        line_start: 10559
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10567
      start: 10547
    functionDepth: 1
    functionLinenumber: 10547
    functionLinenumberEnd: 10567
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_IsFalse
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - assert
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    - JUMPBY
    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:10578,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:10586,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10591,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10595,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10596,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10602,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:10602,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:10603,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:10604,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:10605,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10608,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10601
        line_start: 10601
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10610
      start: 10569
    functionDepth: 1
    functionLinenumber: 10569
    functionLinenumberEnd: 10610
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - assert
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsTrue
    - _PyFrame_GetStackPointer
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    - JUMPBY
    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:10621,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:10629,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10634,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10638,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10639,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10645,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:10645,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/generated_cases.c.h:10646,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:10647,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:10648,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10651,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10644
        line_start: 10644
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10653
      start: 10612
    functionDepth: 1
    functionLinenumber: 10612
    functionLinenumberEnd: 10653
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_CLOSE
    - assert
    - PyStackRef_IsFalse
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyFrame_GetStackPointer
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    - JUMPBY
    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:10664,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10668,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:10668,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:10669,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/generated_cases.c.h:10670,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:10671,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10673,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 10667
        line_start: 10667
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10675
      start: 10655
    functionDepth: 1
    functionLinenumber: 10655
    functionLinenumberEnd: 10675
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsTrue
    - assert
    - RECORD_BRANCH_TAKEN
    - PyStackRef_BoolCheck
    - JUMPBY
    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:10684,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10688,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10689,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:10690,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10691,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10693
      start: 10677
    functionDepth: 1
    functionLinenumber: 10677
    functionLinenumberEnd: 10693
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(POP_TOP)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10702,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10709,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10714,1
    - Dst: PyStackRef_ExceptionInstanceCheck
      Src: /src/cpython/Python/generated_cases.c.h:10714,1
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:10715,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10720,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_ExceptionInstanceCheck(exc))
      pos:
        line_end: 10713
        line_start: 10713
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10722
      start: 10695
    functionDepth: 1
    functionLinenumber: 10695
    functionLinenumberEnd: 10722
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_ExceptionInstanceCheck
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_AsPyObjectNew
    - assert
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(PUSH_EXC_INFO)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10731,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10736,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10738
      start: 10724
    functionDepth: 1
    functionLinenumber: 10724
    functionLinenumberEnd: 10738
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(PUSH_NULL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10749,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10752,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10753,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10754,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10756,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10757,1
    - Dst: do_raise
      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: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10762,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:10763,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10764,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg < 3)
      pos:
        line_end: 10751
        line_start: 10751
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 0)
      pos:
        line_end: 10760
        line_start: 10760
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10767
      start: 10740
    functionDepth: 1
    functionLinenumber: 10740
    functionLinenumberEnd: 10767
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - PyStackRef_AsPyObjectSteal
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - do_raise
    - assert
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(RAISE_VARARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10778,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:10783,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10784,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:10786,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:10786,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10788,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:10788,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:10790,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10791,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:10792,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/generated_cases.c.h:10793,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg >= 0 && oparg <= 2)
      pos:
        line_end: 10783
        line_start: 10783
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 10787
        line_start: 10787
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10795
      start: 10769
    functionDepth: 1
    functionLinenumber: 10769
    functionLinenumberEnd: 10795
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - monitor_reraise
    - PyStackRef_AsPyObjectSteal
    - INSTRUCTION_STATS
    - _PyFrame_GetBytecode
    - JUMP_TO_LABEL
    - _PyErr_SetRaisedException
    - assert
    - PyExceptionInstance_Check
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_UntagInt
    linkageType: ''
    returnType: void
    signature: void TARGET(RERAISE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10804,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10805,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/generated_cases.c.h:10806,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "Executing RESERVED instruction.")
      pos:
        line_end: 10804
        line_start: 10804
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10808
      start: 10797
    functionDepth: 1
    functionLinenumber: 10797
    functionLinenumberEnd: 10808
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - Py_FatalError
    - INSTRUCTION_STATS
    - assert
    linkageType: ''
    returnType: void
    signature: void TARGET(RESERVED)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10817,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10826,1
    - Dst: _PyEval_GetExecutableCode
      Src: /src/cpython/Python/generated_cases.c.h:10828,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10828,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10829,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10831,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:10833,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10837,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:10850,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:10851,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10851,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10853,1
    - Dst: _Py_Instrument
      Src: /src/cpython/Python/generated_cases.c.h:10854,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10854,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10855,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10857,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10860,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:10866,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10868,1
    - Dst: _Py_Specialize_Resume
      Src: /src/cpython/Python/generated_cases.c.h:10869,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10870,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10875,1
    - Dst: check_periodics
      Src: /src/cpython/Python/generated_cases.c.h:10876,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:10877,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:10879,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10883,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10884
      start: 10810
    functionDepth: 7
    functionLinenumber: 10810
    functionLinenumberEnd: 10884
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _Py_Instrument
    - read_u16
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetBytecode
    - JUMP_TO_LABEL
    - _Py_atomic_load_uintptr_relaxed
    - _Py_Specialize_Resume
    - check_periodics
    - _PyEval_GetExecutableCode
    - _PyFrame_GetStackPointer
    linkageType: ''
    returnType: void
    signature: void TARGET(RESUME)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10895,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10900,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10901,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10902,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:10906,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:10907,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10907,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10908,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10910,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10911,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10912,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: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10900
        line_start: 10900
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((version & _PY_EVAL_EVENTS_MASK) == 0)
      pos:
        line_end: 10907
        line_start: 10907
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10910
        line_start: 10910
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10917
        line_start: 10917
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10923
      start: 10886
    functionDepth: 1
    functionLinenumber: 10886
    functionLinenumberEnd: 10923
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _Py_atomic_load_uintptr_relaxed
    - assert
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(RESUME_CHECK)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10934,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10941,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10942,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10943,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/generated_cases.c.h:10947,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/generated_cases.c.h:10948,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:10948,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10949,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10951,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10952,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10953,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:10958,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:10959,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:10960,1
    - Dst: backoff_counter_triggers
      Src: /src/cpython/Python/generated_cases.c.h:10969,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:10970,1
    - Dst: _PyJit_TryInitializeTracing
      Src: /src/cpython/Python/generated_cases.c.h:10978,1
    - Dst: ENTER_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:10981,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Python/generated_cases.c.h:10984,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:10988,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:10992,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10941
        line_start: 10941
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ((version & _PY_EVAL_EVENTS_MASK) == 0)
      pos:
        line_end: 10948
        line_start: 10948
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10951
        line_start: 10951
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (RESUME))
      pos:
        line_end: 10958
        line_start: 10958
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 10993
      start: 10925
    functionDepth: 7
    functionLinenumber: 10925
    functionLinenumberEnd: 10993
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - ENTER_TRACING
    - UPDATE_MISS_STATS
    - _Py_atomic_load_uintptr_relaxed
    - backoff_counter_triggers
    - ADVANCE_ADAPTIVE_COUNTER
    - assert
    - IS_JIT_TRACING
    - _PyJit_TryInitializeTracing
    - JUMP_TO_PREDICTED
    - restart_backoff_counter
    linkageType: ''
    returnType: void
    signature: void TARGET(RESUME_CHECK_JIT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11002,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11004,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/generated_cases.c.h:11004,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11005,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11006,1
    - Dst: _Py_MakeCoro
      Src: /src/cpython/Python/generated_cases.c.h:11007,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11008,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11010,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11012,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:11012,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11013,1
    - Dst: _PyFrame_Copy
      Src: /src/cpython/Python/generated_cases.c.h:11016,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11017,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:11020,1
    - Dst: _PyThreadState_PopFrame
      Src: /src/cpython/Python/generated_cases.c.h:11022,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:11024,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11025,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/generated_cases.c.h:11026,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:11027,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11030,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (STACK_LEVEL() <= 2)
      pos:
        line_end: 11011
        line_start: 11011
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 11003
        line_start: 11003
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->frame_obj == NULL)
      pos:
        line_end: 11016
        line_start: 11016
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11032
      start: 10995
    functionDepth: 4
    functionLinenumber: 10995
    functionLinenumberEnd: 11032
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_FunctionCheck
    - _PyFrame_SetStackPointer
    - LOAD_IP
    - _Py_MakeCoro
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _Py_LeaveRecursiveCallPy
    - JUMP_TO_LABEL
    - LLTRACE_RESUME_FRAME
    - _PyThreadState_PopFrame
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyFrame_Copy
    - PyStackRef_FromPyObjectStealMortal
    - ASSERT_WITHIN_STACK_BOUNDS
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void TARGET(RETURN_GENERATOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11041,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:11048,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11053,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11056,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11057,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11058,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:11058,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Python/generated_cases.c.h:11059,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:11060,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/generated_cases.c.h:11063,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11064,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:11065,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:11067,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11071,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 11052
        line_start: 11052
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 11057
        line_start: 11057
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11073
      start: 11034
    functionDepth: 3
    functionLinenumber: 11034
    functionLinenumberEnd: 11073
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - LOAD_IP
    - PyStackRef_MakeHeapSafe
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_LeaveRecursiveCallPy
    - _PyFrame_GetStackPointer
    - DTRACE_FUNCTION_RETURN
    - LLTRACE_RESUME_FRAME
    - assert
    - _PyEval_FrameClearAndPop
    - ASSERT_WITHIN_STACK_BOUNDS
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void TARGET(RETURN_VALUE)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11082,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:11093,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:11096,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11098,1
    - Dst: _Py_Specialize_Send
      Src: /src/cpython/Python/generated_cases.c.h:11099,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11100,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:11101,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:11103,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:11104,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11111,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11112,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:11113,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11114,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11114,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Python/generated_cases.c.h:11115,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:11119,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:11119,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11121,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11124,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11126,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/generated_cases.c.h:11128,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:11130,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:11130,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11131,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/generated_cases.c.h:11132,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11133,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/generated_cases.c.h:11134,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/generated_cases.c.h:11135,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11136,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:11138,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11140,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11145,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11146,1
    - Dst: _PyIter_Send
      Src: /src/cpython/Python/generated_cases.c.h:11147,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11148,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11150,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11153,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11154,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11155,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11156,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11157,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:11159,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11166,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (gen_frame->previous == NULL)
      pos:
        line_end: 11125
        line_start: 11125
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 2u + oparg <= UINT16_MAX)
      pos:
        line_end: 11123
        line_start: 11123
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 11111
        line_start: 11111
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11167
      start: 11075
    functionDepth: 3
    functionLinenumber: 11075
    functionLinenumberEnd: 11167
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_IsError
    - PyStackRef_MakeHeapSafe
    - DISPATCH
    - PyStackRef_IsNone
    - gen_try_set_executing
    - assert
    - OPCODE_DEFERRED_INC
    - Py_TYPE
    - JUMPBY
    - DISPATCH_SAME_OPARG
    - PyStackRef_FromPyObjectSteal
    - read_u16
    - _PyForIter_VirtualIteratorNext
    - INSTRUCTION_STATS
    - PyStackRef_IsValid
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - _PyFrame_StackPush
    - PyStackRef_IsNull
    - _Py_Specialize_Send
    - IS_PEP523_HOOKED
    - PyStackRef_CLOSE
    - DISPATCH_INLINED
    - _PyIter_Send
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11178,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11190,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11191,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11192,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11193,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11194,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11201,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11202,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11202,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11203,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11205,1
    - Dst: _PyAsyncGenASend_Send
      Src: /src/cpython/Python/generated_cases.c.h:11206,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11207,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11209,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11212,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11213,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11214,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11215,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11218,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:11220,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11227,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11192
        line_start: 11192
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyAsyncGenASend_CheckExact(iter_o))
      pos:
        line_end: 11201
        line_start: 11201
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11229
      start: 11169
    functionDepth: 6
    functionLinenumber: 11169
    functionLinenumberEnd: 11229
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyAsyncGenASend_CheckExact
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - _PyAsyncGenASend_Send
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - JUMPBY
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND_ASYNC_GEN)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11240,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:11249,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11250,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11251,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11252,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11259,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11260,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11260,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11261,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11262,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11263,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Python/generated_cases.c.h:11265,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11266,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11267,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11268,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11270,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:11272,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:11272,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11275,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/generated_cases.c.h:11278,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11283,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/generated_cases.c.h:11283,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/generated_cases.c.h:11284,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11286,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11287,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11288,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11289,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/generated_cases.c.h:11292,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:11293,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:11294,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:11295,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11261
        line_start: 11261
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: ( 2u + oparg <= UINT16_MAX)
      pos:
        line_end: 11274
        line_start: 11274
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11266
        line_start: 11266
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 11282
        line_start: 11282
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11250
        line_start: 11250
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 11287
        line_start: 11287
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11298
      start: 11231
    functionDepth: 1
    functionLinenumber: 11231
    functionLinenumberEnd: 11298
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_MakeHeapSafe
    - DISPATCH
    - gen_try_set_executing
    - DTRACE_FUNCTION_ENTRY
    - PyStackRef_Wrap
    - assert
    - Py_TYPE
    - CALL_STAT_INC
    - PyStackRef_Unwrap
    - STAT_INC
    - JUMP_TO_PREDICTED
    - INSTRUCTION_STATS
    - _PyFrame_StackPush
    - LOAD_SP
    - IS_PEP523_HOOKED
    - LLTRACE_RESUME_FRAME
    - PyStackRef_AsPyObjectBorrow
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND_GEN)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11309,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:11321,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11322,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11323,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11324,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:11330,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11331,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11332,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11333,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11341,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/generated_cases.c.h:11342,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11343,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11344,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11345,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11350,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/generated_cases.c.h:11353,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11354,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11356,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:11357,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11331
        line_start: 11331
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (SEND))
      pos:
        line_end: 11322
        line_start: 11322
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11362
      start: 11300
    functionDepth: 1
    functionLinenumber: 11300
    functionLinenumberEnd: 11362
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - Py_TYPE
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - JUMPBY
    - PyStackRef_TagInt
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - JUMP_TO_PREDICTED
    - PyStackRef_IsNull
    - PyStackRef_UntagInt
    linkageType: ''
    returnType: void
    signature: void TARGET(SEND_VIRTUAL)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11371,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:11372,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11373,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:11374,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11376,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11377,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11380,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/generated_cases.c.h:11381,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:11381,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/generated_cases.c.h:11381,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11382,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11384,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11387,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/generated_cases.c.h:11388,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11389,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11391,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11393,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11394,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:11394,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/generated_cases.c.h:11394,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:11396,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11397,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11399,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:11404,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11405,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11407,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11408
      start: 11364
    functionDepth: 11
    functionLinenumber: 11364
    functionLinenumberEnd: 11408
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - _PyMapping_GetOptionalItem2
    - LOCALS
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyDict_New
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - PyObject_SetItem
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void TARGET(SETUP_ANNOTATIONS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11417,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11422,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:11423,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11423,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11424,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11425,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11427,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11430,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11432
      start: 11410
    functionDepth: 6
    functionLinenumber: 11410
    functionLinenumberEnd: 11432
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - _PySet_AddTakeRef
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_ADD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11441,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11447,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11448,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11450,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/generated_cases.c.h:11450,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11452,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11454,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11458,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 11449
        line_start: 11449
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (offset != 0)
      pos:
        line_end: 11451
        line_start: 11451
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (*ptr == NULL)
      pos:
        line_end: 11453
        line_start: 11453
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11460
      start: 11434
    functionDepth: 1
    functionLinenumber: 11434
    functionLinenumberEnd: 11460
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyFunction_Check
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_FUNCTION_ATTRIBUTE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11469,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11478,1
    - Dst: _PySet_Update
      Src: /src/cpython/Python/generated_cases.c.h:11479,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11479,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11480,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11481,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11483,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11491,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11492,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11493,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11494,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11497
      start: 11462
    functionDepth: 12
    functionLinenumber: 11462
    functionLinenumberEnd: 11497
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - _PySet_Update
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(SET_UPDATE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11506,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:11515,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:11518,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:11519,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11521,1
    - Dst: _Py_Specialize_StoreAttr
      Src: /src/cpython/Python/generated_cases.c.h:11522,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11523,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:11524,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:11526,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:11527,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:11534,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11535,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/generated_cases.c.h:11536,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11536,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11537,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11541,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11545,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11546,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11548,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11550,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11554
      start: 11499
    functionDepth: 2
    functionLinenumber: 11499
    functionLinenumberEnd: 11554
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyObject_SetAttr
    - PyStackRef_CLOSE
    - DISPATCH
    - _Py_Specialize_StoreAttr
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11565,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11574,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11574,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11575,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11576,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11577,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:11583,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11584,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11585,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11586,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:11587,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11588,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11590,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11591,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11592,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11598,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11599,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11599,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11600,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11600,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/generated_cases.c.h:11601,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/generated_cases.c.h:11602,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:11602,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11603,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11605,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11606,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11607,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:11614,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11615,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11616,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11617,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/generated_cases.c.h:11617,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:11620,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11620,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/generated_cases.c.h:11622,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Python/generated_cases.c.h:11624,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11626,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11630,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11631,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:11632,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11633,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11639,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11640,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11641,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11642,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11644,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11575
        line_start: 11575
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 11598
        line_start: 11598
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyObject_GetManagedDict(owner_o) == NULL)
      pos:
        line_end: 11616
        line_start: 11616
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11590
        line_start: 11590
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 11599
        line_start: 11599
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 11584
        line_start: 11584
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11605
        line_start: 11605
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11645
      start: 11556
    functionDepth: 1
    functionLinenumber: 11556
    functionLinenumberEnd: 11645
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyObject_InlineValues
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - assert
    - Py_TYPE
    - _PyObject_GetManagedDict
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - Py_XDECREF
    - FT_ATOMIC_LOAD_UINT8
    - read_u32
    - STAT_INC
    - read_u16
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - UNLOCK_OBJECT
    - _PyDictValues_AddToInsertionOrder
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - LOCK_OBJECT
    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:11656,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:11665,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11666,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11666,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11667,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:11668,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11669,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11670,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11671,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:11677,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11678,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11679,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11680,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11681,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11682,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11685,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:11687,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11687,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11688,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11692,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11693,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:11694,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11695,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11701,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11702,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11703,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11704,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11680
        line_start: 11680
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11669
        line_start: 11669
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 11666
        line_start: 11666
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11707
      start: 11647
    functionDepth: 1
    functionLinenumber: 11647
    functionLinenumberEnd: 11707
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - assert
    - Py_TYPE
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - Py_XDECREF
    - read_u32
    - STAT_INC
    - read_u16
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - UNLOCK_OBJECT
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - LOCK_OBJECT
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_ATTR_SLOT)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11718,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:11727,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11728,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11728,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11729,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:11730,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11731,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11732,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11733,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:11739,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11740,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11741,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:11741,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/generated_cases.c.h:11742,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11744,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11745,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11746,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11748,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11749,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11750,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11751,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11753,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11753,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:11754,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11757,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11759,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11760,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11761,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/generated_cases.c.h:11764,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11766,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11768,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11769,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11770,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11775,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11777,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:11778,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:11779,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11782,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Python/generated_cases.c.h:11783,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11783,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11784,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:11785,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11785,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:11786,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:11787,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11791,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11792,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:11793,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11794,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11800,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11801,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11802,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11803,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11805,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 11740
        line_start: 11740
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11759
        line_start: 11759
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 11752
        line_start: 11752
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11777
        line_start: 11777
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (type_version != 0)
      pos:
        line_end: 11728
        line_start: 11728
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11731
        line_start: 11731
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11744
        line_start: 11744
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11749
        line_start: 11749
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_ATTR))
      pos:
        line_end: 11768
        line_start: 11768
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 11806
      start: 11709
    functionDepth: 1
    functionLinenumber: 11709
    functionLinenumberEnd: 11806
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - assert
    - DK_UNICODE_ENTRIES
    - Py_TYPE
    - _PyObject_GetManagedDict
    - _PyDict_NotifyEvent
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - Py_XDECREF
    - read_u32
    - STAT_INC
    - read_u16
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyDict_CheckExact
    - UNLOCK_OBJECT
    - GETITEM
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - LOCK_OBJECT
    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:11815,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11818,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11818,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11819,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Python/generated_cases.c.h:11820,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:11820,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11821,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11823,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11825
      start: 11808
    functionDepth: 1
    functionLinenumber: 11808
    functionLinenumberEnd: 11825
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - INSTRUCTION_STATS
    - PyCell_SetTakeRef
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_DEREF)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11834,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11840,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11841,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11848,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11849,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11850,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11851,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11854
      start: 11827
    functionDepth: 1
    functionLinenumber: 11827
    functionLinenumberEnd: 11854
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_FAST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11863,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11869,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11870,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/generated_cases.c.h:11871,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11871,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11873,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11874,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11875,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11877
      start: 11856
    functionDepth: 1
    functionLinenumber: 11856
    functionLinenumberEnd: 11877
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - PyStackRef_DUP
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    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:11886,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11893,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11894,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11896,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11897,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11898,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11899,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11900,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/generated_cases.c.h:11901,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11903,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11904,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11905,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11906,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11879
    functionDepth: 1
    functionLinenumber: 11879
    functionLinenumberEnd: 11908
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GETLOCAL
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    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:11917,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:11920,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11921,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11922,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:11922,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11922,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11923,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11925,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11926,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11927,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11928,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11930,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11933
      start: 11910
    functionDepth: 10
    functionLinenumber: 11910
    functionLinenumberEnd: 11933
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - GLOBALS
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - PyDict_SetItem
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_GLOBAL)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11942,1
    - Dst: GETITEM
      Src: /src/cpython/Python/generated_cases.c.h:11945,1
    - Dst: LOCALS
      Src: /src/cpython/Python/generated_cases.c.h:11946,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11949,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/generated_cases.c.h:11950,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11952,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11954,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11955,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11956,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11957,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11958,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:11960,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11961,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11962,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11962,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11963,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11966,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:11967,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:11967,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11968,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:11971,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11972,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:11973,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:11974,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:11976,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:11978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11979
      start: 11935
    functionDepth: 10
    functionLinenumber: 11935
    functionLinenumberEnd: 11979
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyErr_Format
    - LOCALS
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - GETITEM
    - JUMP_TO_LABEL
    - PyDict_SetItem
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyDict_CheckExact
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyObject_SetItem
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_NAME)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:11988,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:11996,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12005,1
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Python/generated_cases.c.h:12006,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12006,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12007,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12009,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12016,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12017,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:12018,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12018,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12018,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:12019,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12020,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12023,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12027,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12031,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12032,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12034,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12036,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12040
      start: 11981
    functionDepth: 3
    functionLinenumber: 11981
    functionLinenumberEnd: 12040
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyBuildSlice_ConsumeRefs
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyObject_SetItem
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SLICE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12049,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:12060,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:12063,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12065,1
    - Dst: _Py_Specialize_StoreSubscr
      Src: /src/cpython/Python/generated_cases.c.h:12066,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12067,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:12068,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:12070,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:12071,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12077,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/generated_cases.c.h:12078,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12078,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12078,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12078,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12082,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12086,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12090,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12091,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12093,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12095,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12099
      start: 12042
    functionDepth: 3
    functionLinenumber: 12042
    functionLinenumberEnd: 12099
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_Specialize_StoreSubscr
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyObject_SetItem
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SUBSCR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12110,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12120,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:12121,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12122,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12123,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12124,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:12126,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12127,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12128,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12129,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12138,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12139,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:12139,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12140,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12141,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Python/generated_cases.c.h:12142,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12143,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12144,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12145,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12148,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12149,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12150,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12151,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12152,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12160,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12161,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12162,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12163,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12122
        line_start: 12122
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12127
        line_start: 12127
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (Py_TYPE(dict)->tp_as_mapping->mp_ass_subscript == _PyDict_StoreSubscript)
      pos:
        line_end: 12138
        line_start: 12138
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12166
      start: 12101
    functionDepth: 9
    functionLinenumber: 12101
    functionLinenumberEnd: 12166
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - _PyDict_SetItem_Take2
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - ASSERT_WITHIN_STACK_BOUNDS
    - UPDATE_MISS_STATS
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TARGET(STORE_SUBSCR_DICT)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12177,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12188,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:12189,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12190,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12191,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12192,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12198,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12199,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12200,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12201,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12202,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12211,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12212,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12213,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12213,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12214,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12214,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/generated_cases.c.h:12215,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:12216,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12217,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12218,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12219,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:12221,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:12226,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12228,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12229,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12230,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12233,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:12234,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:12235,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Python/generated_cases.c.h:12235,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12236,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12237,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:12238,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12244,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:12246,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12247,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12252,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12252,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12252,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:12253,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12259,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12260,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12261,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12262,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 12212
        line_start: 12212
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12217
        line_start: 12217
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 12251
        line_start: 12251
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12200
        line_start: 12200
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 12213
        line_start: 12213
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12190
        line_start: 12190
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (STORE_SUBSCR))
      pos:
        line_end: 12228
        line_start: 12228
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (old_value != NULL)
      pos:
        line_end: 12236
        line_start: 12236
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12265
      start: 12168
    functionDepth: 1
    functionLinenumber: 12168
    functionLinenumberEnd: 12265
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - DISPATCH
    - PyList_GET_ITEM
    - assert
    - PyStackRef_CLOSE_SPECIALIZED
    - PyStackRef_AsPyObjectBorrow
    - STAT_INC
    - FT_ATOMIC_STORE_PTR_RELEASE
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - PyLong_CheckExact
    - Py_DECREF
    - _PyLong_CompactValue
    - _PyList_ITEMS
    - UNLOCK_OBJECT
    - PyStackRef_XCLOSE
    - _PyFrame_GetStackPointer
    - _PyLong_CheckExactAndCompact
    - PyList_CheckExact
    - PyList_GET_SIZE
    - ASSERT_WITHIN_STACK_BOUNDS
    - JUMP_TO_PREDICTED
    - LOCK_OBJECT
    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:12274,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12285
      start: 12267
    functionDepth: 1
    functionLinenumber: 12267
    functionLinenumberEnd: 12285
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - DISPATCH
    - INSTRUCTION_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(SWAP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12294,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:12303,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:12306,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12308,1
    - Dst: _Py_Specialize_ToBool
      Src: /src/cpython/Python/generated_cases.c.h:12309,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12310,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:12311,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:12313,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:12314,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12320,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/generated_cases.c.h:12321,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12321,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12322,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12324,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12325,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12326,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12327,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12329,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12335,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12337
      start: 12287
    functionDepth: 2
    functionLinenumber: 12287
    functionLinenumberEnd: 12337
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - read_u16
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyObject_IsTrue
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _Py_Specialize_ToBool
    - PyStackRef_AsPyObjectBorrow
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12348,1
    - Dst: read_u32
      Src: /src/cpython/Python/generated_cases.c.h:12358,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/generated_cases.c.h:12359,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12359,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12360,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/generated_cases.c.h:12361,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12362,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12363,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12364,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12377,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12378,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12379,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (type_version != 0)
      pos:
        line_end: 12359
        line_start: 12359
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12362
        line_start: 12362
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12382
      start: 12339
    functionDepth: 1
    functionLinenumber: 12339
    functionLinenumberEnd: 12382
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_XCLOSE
    - UPDATE_MISS_STATS
    - Py_TYPE
    - read_u32
    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:12393,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:12399,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12400,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12401,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12402,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12404,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12400
        line_start: 12400
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12406
      start: 12384
    functionDepth: 1
    functionLinenumber: 12384
    functionLinenumberEnd: 12406
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - PyStackRef_BoolCheck
    - assert
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_BOOL)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12417,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12425,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/generated_cases.c.h:12426,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12427,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12428,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12429,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12436,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12437,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/generated_cases.c.h:12438,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12444,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12444,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12444,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:12445,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12427
        line_start: 12427
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 12443
        line_start: 12443
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12449
      start: 12408
    functionDepth: 1
    functionLinenumber: 12408
    functionLinenumberEnd: 12449
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyLong_IsZero
    - JUMP_TO_PREDICTED
    - _PyLong_CheckExactAndCompact
    - DISPATCH
    - INSTRUCTION_STATS
    - PyLong_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_INT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12460,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12469,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12470,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12471,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12472,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12473,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12481,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12482,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12482,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12483,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:12484,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12491,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12492,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12493,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12471
        line_start: 12471
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(value_o))
      pos:
        line_end: 12481
        line_start: 12481
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12496
      start: 12451
    functionDepth: 1
    functionLinenumber: 12451
    functionLinenumberEnd: 12496
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - JUMP_TO_PREDICTED
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - PyStackRef_XCLOSE
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyList_GET_SIZE
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_LIST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12507,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:12514,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12515,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12516,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12517,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12519,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12515
        line_start: 12515
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12523
      start: 12498
    functionDepth: 1
    functionLinenumber: 12498
    functionLinenumberEnd: 12523
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - DISPATCH
    - PyStackRef_IsNone
    - INSTRUCTION_STATS
    - UPDATE_MISS_STATS
    - assert
    - JUMP_TO_PREDICTED
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12534,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12542,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12543,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12544,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12545,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12546,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12553,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12554,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/generated_cases.c.h:12555,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12561,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12561,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12561,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/generated_cases.c.h:12562,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (TO_BOOL))
      pos:
        line_end: 12544
        line_start: 12544
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 12560
        line_start: 12560
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12566
      start: 12525
    functionDepth: 1
    functionLinenumber: 12525
    functionLinenumberEnd: 12566
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - JUMP_TO_PREDICTED
    - _Py_STR
    - DISPATCH
    - INSTRUCTION_STATS
    - PyUnicode_CheckExact
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_CLOSE_SPECIALIZED
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(TO_BOOL_STR)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12578,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12581,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:12581,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12595,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12596,1
    - Dst: _PyJit_translate_single_bytecode_to_trace
      Src: /src/cpython/Python/generated_cases.c.h:12597,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12598,1
    - Dst: LEAVE_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:12600,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12601,1
    - Dst: stop_tracing_and_jit
      Src: /src/cpython/Python/generated_cases.c.h:12602,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12603,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12605,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12607,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12610,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/generated_cases.c.h:12611,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12612,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12616,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12618,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/generated_cases.c.h:12619,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/generated_cases.c.h:12619,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12620,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:12624,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:12624,1
    - Dst: IS_CONDITIONAL_JUMP_OPCODE
      Src: /src/cpython/Python/generated_cases.c.h:12628,1
    - Dst: trigger_backoff_counter
      Src: /src/cpython/Python/generated_cases.c.h:12629,1
    - Dst: doesnt_escape
      Src: /src/cpython/Python/generated_cases.c.h:12634,1
    - Dst: DISPATCH_GOTO_NON_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:12637,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/generated_cases.c.h:12640,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (IS_JIT_TRACING())
      pos:
        line_end: 12580
        line_start: 12580
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tracer != NULL)
      pos:
        line_end: 12594
        line_start: 12594
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12642
      start: 12568
    functionDepth: 3
    functionLinenumber: 12568
    functionLinenumberEnd: 12642
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyJit_translate_single_bytecode_to_trace
    - stop_tracing_and_jit
    - LEAVE_TRACING
    - DISPATCH
    - PyStackRef_IsNone
    - assert
    - IS_JIT_TRACING
    - INSTRUCTION_STATS
    - trigger_backoff_counter
    - JUMP_TO_LABEL
    - IS_CONDITIONAL_JUMP_OPCODE
    - Py_NewRef
    - Py_FatalError
    - doesnt_escape
    - Py_SETREF
    - Py_CLEAR
    - DISPATCH_GOTO_NON_TRACING
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void TARGET(TRACE_RECORD)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12651,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12658,1
    - Dst: PyNumber_Invert
      Src: /src/cpython/Python/generated_cases.c.h:12659,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12659,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12660,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12662,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12664,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12671,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12672,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12673,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12676
      start: 12644
    functionDepth: 1
    functionLinenumber: 12644
    functionLinenumberEnd: 12676
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - PyStackRef_XCLOSE
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyNumber_Invert
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_INVERT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12685,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12692,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Python/generated_cases.c.h:12693,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12693,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12694,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12696,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12698,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12705,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12706,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12707,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12710
      start: 12678
    functionDepth: 1
    functionLinenumber: 12678
    functionLinenumberEnd: 12710
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyNumber_Negative
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyStackRef_XCLOSE
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_NEGATIVE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12719,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12723,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/generated_cases.c.h:12723,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/generated_cases.c.h:12724,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyStackRef_BoolCheck(value))
      pos:
        line_end: 12722
        line_start: 12722
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12728
      start: 12712
    functionDepth: 1
    functionLinenumber: 12712
    functionLinenumberEnd: 12728
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - PyStackRef_IsFalse
    - DISPATCH
    - INSTRUCTION_STATS
    - assert
    - PyStackRef_BoolCheck
    linkageType: ''
    returnType: void
    signature: void TARGET(UNARY_NOT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12737,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12742,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12744,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12745,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Python/generated_cases.c.h:12746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:12747,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12748,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12750,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12753,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12755
      start: 12730
    functionDepth: 4
    functionLinenumber: 12730
    functionLinenumberEnd: 12755
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - PyStackRef_AsPyObjectSteal
    - _PyEval_UnpackIterableStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_EX)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12764,1
    - Dst: read_u16
      Src: /src/cpython/Python/generated_cases.c.h:12773,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/generated_cases.c.h:12776,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12778,1
    - Dst: _Py_Specialize_UnpackSequence
      Src: /src/cpython/Python/generated_cases.c.h:12779,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12780,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/generated_cases.c.h:12781,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/generated_cases.c.h:12783,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/generated_cases.c.h:12784,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:12792,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12794,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12795,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Python/generated_cases.c.h:12796,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/generated_cases.c.h:12797,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12798,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:12800,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12804,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12806
      start: 12757
    functionDepth: 4
    functionLinenumber: 12757
    functionLinenumberEnd: 12806
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH_SAME_OPARG
    - PyStackRef_AsPyObjectSteal
    - read_u16
    - _Py_Specialize_UnpackSequence
    - _PyEval_UnpackIterableStackRef
    - DISPATCH
    - INSTRUCTION_STATS
    - JUMP_TO_LABEL
    - ADVANCE_ADAPTIVE_COUNTER
    - ADAPTIVE_COUNTER_TRIGGERS
    - _PyFrame_GetStackPointer
    - Py_DECREF
    - OPCODE_DEFERRED_INC
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12817,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12825,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12826,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12827,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12828,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12829,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12837,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12838,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12838,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:12839,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12840,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12841,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12842,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:12844,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:12845,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12847,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12848,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12849,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12852,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Python/generated_cases.c.h:12853,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:12855,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/generated_cases.c.h:12857,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12859,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12860,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12861,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12862,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12827
        line_start: 12827
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12840
        line_start: 12840
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12847
        line_start: 12847
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyList_CheckExact(seq_o))
      pos:
        line_end: 12837
        line_start: 12837
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12865
      start: 12808
    functionDepth: 1
    functionLinenumber: 12808
    functionLinenumberEnd: 12865
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - UNLOCK_OBJECT
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - PyList_GET_SIZE
    - _PyList_ITEMS
    - UPDATE_MISS_STATS
    - LOCK_OBJECT
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE_LIST)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12876,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12884,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12885,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12886,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12887,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12888,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12896,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12897,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12897,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:12898,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12899,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12900,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12901,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12903,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/generated_cases.c.h:12904,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:12906,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12909,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12910,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12911,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12912,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 12896
        line_start: 12896
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12886
        line_start: 12886
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12899
        line_start: 12899
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12915
      start: 12867
    functionDepth: 1
    functionLinenumber: 12867
    functionLinenumberEnd: 12915
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - _PyTuple_ITEMS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - UPDATE_MISS_STATS
    linkageType: ''
    returnType: void
    signature: void TARGET(UNPACK_SEQUENCE_TUPLE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12935,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12936,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12937,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12938,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12939,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12946,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12947,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12948,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/generated_cases.c.h:12948,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/generated_cases.c.h:12949,1
    - Dst: UPDATE_MISS_STATS
      Src: /src/cpython/Python/generated_cases.c.h:12950,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12951,1
    - Dst: JUMP_TO_PREDICTED
      Src: /src/cpython/Python/generated_cases.c.h:12952,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/generated_cases.c.h:12954,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:12955,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:12955,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/generated_cases.c.h:12956,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/generated_cases.c.h:12956,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:12960,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12961,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:12962,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:12963,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:12965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (oparg == 2)
      pos:
        line_end: 12945
        line_start: 12945
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12950
        line_start: 12950
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyOpcode_Deopt[opcode] == (UNPACK_SEQUENCE))
      pos:
        line_end: 12937
        line_start: 12937
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 12947
        line_start: 12947
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 12966
      start: 12917
    functionDepth: 1
    functionLinenumber: 12917
    functionLinenumberEnd: 12966
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - STAT_INC
    - _PyFrame_SetStackPointer
    - PyStackRef_FromPyObjectNew
    - PyTuple_GET_ITEM
    - JUMP_TO_PREDICTED
    - PyStackRef_CLOSE
    - DISPATCH
    - INSTRUCTION_STATS
    - _PyFrame_GetStackPointer
    - ASSERT_WITHIN_STACK_BOUNDS
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - UPDATE_MISS_STATS
    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:12975,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12986,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12987,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12988,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/generated_cases.c.h:12988,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/generated_cases.c.h:12989,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/generated_cases.c.h:12990,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:12994,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/generated_cases.c.h:12994,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:12998,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:12999,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13000,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/generated_cases.c.h:13001,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13003,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13005,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/generated_cases.c.h:13006,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13007,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13009,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:13011,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:13014,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:13015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (val_o && PyExceptionInstance_Check(val_o))
      pos:
        line_end: 12987
        line_start: 12987
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (PyStackRef_IsTaggedInt(lasti))
      pos:
        line_end: 12993
        line_start: 12993
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13016
      start: 12968
    functionDepth: 3
    functionLinenumber: 12968
    functionLinenumberEnd: 13016
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - DISPATCH
    - PyObject_Vectorcall
    - PyExceptionInstance_Class
    - INSTRUCTION_STATS
    - PyStackRef_IsTaggedInt
    - _PyFrame_GetStackPointer
    - JUMP_TO_LABEL
    - PyException_GetTraceback
    - Py_XDECREF
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyStackRef_FromPyObjectSteal
    - PyExceptionInstance_Check
    - ASSERT_WITHIN_STACK_BOUNDS
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void TARGET(WITH_EXCEPT_START)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INSTRUCTION_STATS
      Src: /src/cpython/Python/generated_cases.c.h:13025,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/generated_cases.c.h:13032,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13037,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/generated_cases.c.h:13039,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13040,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13041,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:13044,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13045,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Python/generated_cases.c.h:13046,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:13049,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Python/generated_cases.c.h:13054,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13055,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/generated_cases.c.h:13057,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:13058,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13059,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/generated_cases.c.h:13060,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:13060,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13061,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13064,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/generated_cases.c.h:13065,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/generated_cases.c.h:13067,1
    - Dst: ASSERT_WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:13071,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:13072,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1)
      pos:
        line_end: 13039
        line_start: 13039
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 13036
        line_start: 13036
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 13054
        line_start: 13054
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 13040
        line_start: 13040
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (opcode == SEND || opcode == FOR_ITER)
      pos:
        line_end: 13060
        line_start: 13060
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (i >= 0 && i <= INT_MAX)
      pos:
        line_end: 13058
        line_start: 13058
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13073
      start: 13018
    functionDepth: 2
    functionLinenumber: 13018
    functionLinenumberEnd: 13073
    functionName: TARGET
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 15
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyGen_GetGeneratorFromFrame
    - PyStackRef_MakeHeapSafe
    - _PyFrame_GetCode
    - DISPATCH
    - INSTRUCTION_STATS
    - _Py_LeaveRecursiveCallPy
    - PyStackRef_IsNone
    - _PyFrame_GetBytecode
    - DTRACE_FUNCTION_RETURN
    - _Py_GetBaseCodeUnit
    - _PyFrame_GetStackPointer
    - LLTRACE_RESUME_FRAME
    - FT_ATOMIC_STORE_INT8_RELEASE
    - assert
    - LOAD_IP
    - ASSERT_WITHIN_STACK_BOUNDS
    linkageType: ''
    returnType: void
    signature: void TARGET(YIELD_VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13104,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:13104,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 13103
        line_start: 13103
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13106
      start: 13101
    functionDepth: 1
    functionLinenumber: 13101
    functionLinenumberEnd: 13106
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 318
    functionsReached:
    - WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(pop_2_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13111,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/generated_cases.c.h:13111,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 13110
        line_start: 13110
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13113
      start: 13108
    functionDepth: 1
    functionLinenumber: 13108
    functionLinenumberEnd: 13113
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 319
    functionsReached:
    - WITHIN_STACK_BOUNDS
    - JUMP_TO_LABEL
    - 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:13118,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13119,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/generated_cases.c.h:13120,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13122,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13125,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:13125,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13127,1
    - Dst: STOP_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:13128,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13129,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13130,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/generated_cases.c.h:13131,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13132,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/generated_cases.c.h:13133,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13134,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13136,1
    - Dst: PyTraceBack_Here
      Src: /src/cpython/Python/generated_cases.c.h:13137,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13138,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13141,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/generated_cases.c.h:13142,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 13129
        line_start: 13129
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 13124
        line_start: 13124
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13144
      start: 13115
    functionDepth: 4
    functionLinenumber: 13115
    functionLinenumberEnd: 13144
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 320
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyEval_MonitorRaise
    - STOP_TRACING
    - _PyFrame_GetStackPointer
    - _PyErr_SetString
    - _PyErr_Occurred
    - _PyFrame_IsIncomplete
    - JUMP_TO_LABEL
    - assert
    - _PyFrame_GetFrameObject
    - PyTraceBack_Here
    linkageType: ''
    returnType: void
    signature: void LABEL(error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STOP_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:13148,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/generated_cases.c.h:13149,1
    - Dst: get_exception_handler
      Src: /src/cpython/Python/generated_cases.c.h:13151,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/generated_cases.c.h:13151,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13153,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:13153,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/generated_cases.c.h:13154,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Python/generated_cases.c.h:13156,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:13157,1
    - Dst: monitor_unwind
      Src: /src/cpython/Python/generated_cases.c.h:13159,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13160,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13162,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/generated_cases.c.h:13162,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/generated_cases.c.h:13163,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13164,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Python/generated_cases.c.h:13166,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/generated_cases.c.h:13167,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Python/generated_cases.c.h:13170,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/generated_cases.c.h:13171,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:13172,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/generated_cases.c.h:13174,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/generated_cases.c.h:13175,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/generated_cases.c.h:13175,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/generated_cases.c.h:13176,1
    - Dst: monitor_handled
      Src: /src/cpython/Python/generated_cases.c.h:13177,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13179,1
    - Dst: lltrace_resume_frame
      Src: /src/cpython/Python/generated_cases.c.h:13183,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13186,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:13190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (STACK_LEVEL() >= level)
      pos:
        line_end: 13161
        line_start: 13161
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 13152
        line_start: 13152
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->stackpointer >= new_top)
      pos:
        line_end: 13163
        line_start: 13163
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13191
      start: 13146
    functionDepth: 1
    functionLinenumber: 13146
    functionLinenumberEnd: 13191
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 321
    functionsReached:
    - DISPATCH
    - _PyFrame_GetBytecode
    - _PyErr_GetRaisedException
    - assert
    - _PyFrame_Stackbase
    - monitor_unwind
    - INSTR_OFFSET
    - _PyInterpreterFrame_LASTI
    - PyStackRef_FromPyObjectSteal
    - get_exception_handler
    - STOP_TRACING
    - _PyFrame_GetCode
    - JUMP_TO_LABEL
    - _PyFrame_StackPush
    - _PyErr_Occurred
    - _PyFrame_StackPop
    - PyStackRef_TagInt
    - PyStackRef_XCLOSE
    - lltrace_resume_frame
    - _PyFrame_GetStackPointer
    - monitor_handled
    - STACK_LEVEL
    linkageType: ''
    returnType: void
    signature: void LABEL(exception_unwind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13195,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:13195,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Python/generated_cases.c.h:13196,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 13194
        line_start: 13194
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13198
      start: 13193
    functionDepth: 1
    functionLinenumber: 13193
    functionLinenumberEnd: 13198
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 322
    functionsReached:
    - DTRACE_FUNCTION_RETURN
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(exit_unwind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13202,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:13202,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/generated_cases.c.h:13203,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13204,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/generated_cases.c.h:13207,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13212,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13216,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/generated_cases.c.h:13217,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/generated_cases.c.h:13218,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/generated_cases.c.h:13219,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13225,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 13201
        line_start: 13201
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 13203
        line_start: 13203
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (frame == &entry.frame)
      pos:
        line_end: 13211
        line_start: 13211
        source_file: /src/cpython/Python/generated_cases.c.h
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 13215
        line_start: 13215
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13227
      start: 13200
    functionDepth: 3
    functionLinenumber: 13200
    functionLinenumberEnd: 13227
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 323
    functionsReached:
    - PyStackRef_CLOSE
    - _PyFrame_GetStackPointer
    - _Py_LeaveRecursiveCallPy
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyEval_FrameClearAndPop
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void LABEL(exit_unwind_notrace)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursivePy
      Src: /src/cpython/Python/generated_cases.c.h:13231,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13233,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/generated_cases.c.h:13235,1
    - Dst: maybe_lltrace_resume_frame
      Src: /src/cpython/Python/generated_cases.c.h:13238,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/generated_cases.c.h:13238,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13240,1
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13243,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/generated_cases.c.h:13243,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13245,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/generated_cases.c.h:13249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 13242
        line_start: 13242
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13250
      start: 13229
    functionDepth: 1
    functionLinenumber: 13229
    functionLinenumberEnd: 13250
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 324
    functionsReached:
    - maybe_lltrace_resume_frame
    - GLOBALS
    - DISPATCH
    - _PyFrame_GetStackPointer
    - _Py_EnterRecursivePy
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - DTRACE_FUNCTION_ENTRY
    - assert
    linkageType: ''
    returnType: void
    signature: void LABEL(start_frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/generated_cases.c.h:13258,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:13258,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13260,1
    - Dst: _PyJit_translate_single_bytecode_to_trace
      Src: /src/cpython/Python/generated_cases.c.h:13261,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13262,1
    - Dst: LEAVE_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:13263,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13264,1
    - Dst: stop_tracing_and_jit
      Src: /src/cpython/Python/generated_cases.c.h:13265,1
    - Dst: _PyFrame_GetStackPointer
      Src: /src/cpython/Python/generated_cases.c.h:13266,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/generated_cases.c.h:13268,1
    - Dst: DISPATCH_GOTO_NON_TRACING
      Src: /src/cpython/Python/generated_cases.c.h:13270,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/generated_cases.c.h:13272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (IS_JIT_TRACING())
      pos:
        line_end: 13257
        line_start: 13257
        source_file: /src/cpython/Python/generated_cases.c.h
    constantsTouched: []
    func_position:
      end: 13274
      start: 13255
    functionDepth: 3
    functionLinenumber: 13255
    functionLinenumberEnd: 13274
    functionName: LABEL
    functionSourceFile: /src/cpython/Python/generated_cases.c.h
    functionUses: 325
    functionsReached:
    - _PyFrame_SetStackPointer
    - _PyJit_translate_single_bytecode_to_trace
    - Py_FatalError
    - stop_tracing_and_jit
    - LEAVE_TRACING
    - assert
    - JUMP_TO_LABEL
    - DISPATCH_GOTO_NON_TRACING
    - _PyFrame_GetStackPointer
    - IS_JIT_TRACING
    linkageType: ''
    returnType: void
    signature: void LABEL(stop_tracing)
  - 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:
    - PyMem_RawFree
    - _PyMem_RawStrdup
    - _Py_ClearFileSystemEncoding
    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_OK
    - _PyWideStringList_Clear
    - _PyWideStringList_Copy
    - PyMem_RawMalloc
    - Py_DecodeLocale
    - _PyStatus_NO_MEMORY
    - DECODE_LOCALE_ERR
    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:
    - _PyStatus_EXCEPTION
    - _PyWideStringList_Extend
    - _PyStatus_OK
    - COPY_ATTR
    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:
    - _PyOS_GetOpt
    - _PyStatus_OK
    - _PyOS_ResetGetOpt
    - PyWideStringList_Append
    - _PyStatus_EXCEPTION
    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:
    - _PyStatus_OK
    - _Py_GetEnv
    - precmdline_get_preconfig
    - _PyStatus_EXCEPTION
    - assert
    - _Py_get_xoption
    - precmdline_parse_cmdline
    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:
    - preconfig_copy
    - PyPreConfig_InitPythonConfig
    - _PyStatus_OK
    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_InitCompatConfig
    - PyPreConfig_InitPythonConfig
    - _PyPreConfig_GetConfig
    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: 11
    functionLinenumber: 402
    functionLinenumberEnd: 445
    functionName: _PyPreConfig_AsDict
    functionSourceFile: /src/cpython/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - SET_ITEM_INT
    - Py_DECREF
    - PyDict_New
    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:
    - wcschr
    - wcsncmp
    - wcslen
    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:
    - wcschr
    - _PyStatus_OK
    - strcmp
    - _Py_GetEnv
    - _PyStatus_ERR
    - _Py_get_xoption
    - wcscmp
    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:
    - _Py_LegacyLocaleDetected
    - _Py_GetEnv
    - strcmp
    linkageType: ''
    returnType: void
    signature: void preconfig_init_coerce_c_locale(PyPreConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/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:
    - _PyMem_GetAllocatorName
    - _Py_GetEnv
    - _PyStatus_OK
    - _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->coerce_c_locale_warn >= 0)
      pos:
        line_end: 761
        line_start: 761
        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->legacy_windows_fs_encoding >= 0)
      pos:
        line_end: 763
        line_start: 763
        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->isolated >= 0)
      pos:
        line_end: 766
        line_start: 766
        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
    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:
    - _PyPreCmdline_Read
    - _PyStatus_OK
    - preconfig_init_allocator
    - preconfig_init_utf8_mode
    - _Py_get_env_flag
    - preconfig_init_coerce_c_locale
    - _PyStatus_EXCEPTION
    - assert
    - precmdline_set_preconfig
    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:
    - _PyPreConfig_InitFromPreConfig
    - _PyStatus_OK
    - _PyMem_RawStrdup
    - preconfig_read
    - preconfig_get_global_vars
    - _Py_SetLocaleFromEnv
    - _Py_CoerceLegacyLocale
    - _PyPreCmdline_Clear
    - _PyStatus_EXCEPTION
    - PyMem_RawFree
    - _PyPreCmdline_SetArgv
    - _PyStatus_ERR
    - setlocale
    - preconfig_copy
    - _PyRuntime_Initialize
    - _PyStatus_NO_MEMORY
    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: _Py_IsCoreInitialized
      Src: /src/cpython/Python/preconfig.c:931,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:
    - _PyPreConfig_InitFromPreConfig
    - _PyStatus_OK
    - preconfig_set_global_vars
    - _Py_SetLocaleFromEnv
    - _Py_CoerceLegacyLocale
    - _Py_IsCoreInitialized
    - _PyStatus_EXCEPTION
    - _PyStatus_ERR
    - _PyMem_SetupAllocators
    - preconfig_copy
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreConfig_Write(const PyPreConfig *src_config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyIndex_Check
      Src: /src/cpython/Python/modsupport.c:21,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Python/modsupport.c:22,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/modsupport.c:23,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/modsupport.c:28,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/modsupport.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - result
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 35
    functionName: _Py_convert_optional_to_ssize_t
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 20
    functionsReached:
    - PyNumber_AsSsize_t
    - _PyIndex_Check
    - PyErr_Format
    - PyErr_Occurred
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _Py_convert_optional_to_ssize_t(PyObject *obj, void *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/cpython/Python/modsupport.c:40,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - result
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: _Py_convert_optional_to_non_negative_ssize_t
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 2
    functionsReached:
    - PyErr_SetString
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: int
    signature: int _Py_convert_optional_to_non_negative_ssize_t(PyObject *obj, void
      *result)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - format
    - endchar
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 93
    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:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - p_format
    - endchar
    argTypes:
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 122
    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:127,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/modsupport.c:127,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/modsupport.c:128,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/modsupport.c:130,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:131,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/modsupport.c:132,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/modsupport.c:135,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:138,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/modsupport.c:142,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:143,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: 126
        line_start: 126
        source_file: /src/cpython/Python/modsupport.c
    constantsTouched: []
    func_position:
      end: 146
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 146
    functionName: do_ignore
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - check_end
    - do_mkvalue
    - PyTuple_SET_ITEM
    - PyErr_SetRaisedException
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_GetRaisedException
    - Py_XDECREF
    - PyTuple_New
    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:156,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:158,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/modsupport.c:163,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:164,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:170,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:173,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:176,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/modsupport.c:177,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:179,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/modsupport.c:180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:184,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:185,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:188,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: 192
      start: 148
    functionDepth: 11
    functionLinenumber: 148
    functionLinenumberEnd: 192
    functionName: do_mkdict
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - check_end
    - do_mkvalue
    - PyDict_SetItem
    - do_ignore
    - Py_XDECREF
    - Py_DECREF
    - 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:203,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:205,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:209,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:212,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/modsupport.c:215,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:218,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: 222
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 222
    functionName: do_mklist
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - check_end
    - do_mkvalue
    - do_ignore
    - PyList_New
    - Py_DECREF
    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:236,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:238,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:251,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: 254
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 254
    functionName: do_mkstack
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - do_mkvalue
    - do_ignore
    - Py_DECREF
    - check_end
    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:265,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:266,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:270,1
    - Dst: do_ignore
      Src: /src/cpython/Python/modsupport.c:272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:273,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/modsupport.c:276,1
    - Dst: check_end
      Src: /src/cpython/Python/modsupport.c:278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:279,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: 283
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 283
    functionName: do_mktuple
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - check_end
    - do_mkvalue
    - PyTuple_SET_ITEM
    - do_ignore
    - Py_DECREF
    - PyTuple_New
    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:291,1
    - Dst: countformat
      Src: /src/cpython/Python/modsupport.c:292,1
    - Dst: do_mklist
      Src: /src/cpython/Python/modsupport.c:295,1
    - Dst: countformat
      Src: /src/cpython/Python/modsupport.c:296,1
    - Dst: do_mkdict
      Src: /src/cpython/Python/modsupport.c:299,1
    - Dst: countformat
      Src: /src/cpython/Python/modsupport.c:300,1
    - Dst: PyLong_FromLong
      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:309,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:309,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:314,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/modsupport.c:315,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/modsupport.c:320,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:320,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/modsupport.c:325,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:325,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:330,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/modsupport.c:331,1
    - Dst: PyLong_FromLongLong
      Src: /src/cpython/Python/modsupport.c:335,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:335,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/cpython/Python/modsupport.c:338,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:339,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:344,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:348,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/modsupport.c:353,1
    - Dst: wcslen
      Src: /src/cpython/Python/modsupport.c:357,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/modsupport.c:358,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/modsupport.c:364,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:365,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Python/modsupport.c:368,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:369,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:374,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/modsupport.c:375,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:379,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/modsupport.c:380,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:384,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/modsupport.c:385,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:393,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:397,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/modsupport.c:402,1
    - Dst: strlen
      Src: /src/cpython/Python/modsupport.c:406,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:408,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/modsupport.c:414,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:422,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:426,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/modsupport.c:431,1
    - Dst: strlen
      Src: /src/cpython/Python/modsupport.c:435,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:437,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/modsupport.c:443,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:453,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:454,1
    - Dst: va_arg
      Src: /src/cpython/Python/modsupport.c:460,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/modsupport.c:463,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/modsupport.c:465,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:474,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:486,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 131
    argCount: 2
    argNames:
    - p_format
    - p_va
    argTypes:
    - char**
    - va_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 285
    functionDepth: 12
    functionLinenumber: 285
    functionLinenumberEnd: 492
    functionName: do_mkvalue
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 5
    functionsReached:
    - PyLong_FromLong
    - do_mkdict
    - PyBytes_FromStringAndSize
    - do_mklist
    - PyFloat_FromDouble
    - PyBool_FromLong
    - PyErr_Occurred
    - va_arg
    - PyLong_FromUnsignedLong
    - PyUnicode_FromStringAndSize
    - PyLong_FromLongLong
    - countformat
    - PyLong_FromSsize_t
    - PyComplex_FromCComplex
    - strlen
    - PyUnicode_FromWideChar
    - Py_INCREF
    - PyErr_SetString
    - do_mktuple
    - PyUnicode_FromOrdinal
    - Py_NewRef
    - PyLong_FromUnsignedLongLong
    - wcslen
    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:500,1
    - Dst: va_build_value
      Src: /src/cpython/Python/modsupport.c:501,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 504
    functionName: Py_BuildValue
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 252
    functionsReached:
    - va_end
    - va_build_value
    - va_start
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_BuildValue(const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/modsupport.c:511,1
    - Dst: va_build_value
      Src: /src/cpython/Python/modsupport.c:512,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 515
    functionName: _Py_BuildValue_SizeT
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_build_value
    - va_start
    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:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - format
    - va
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 521
    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:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - format
    - va
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    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:533,1
    - Dst: va_copy
      Src: /src/cpython/Python/modsupport.c:542,1
    - Dst: do_mkvalue
      Src: /src/cpython/Python/modsupport.c:544,1
    - Dst: do_mktuple
      Src: /src/cpython/Python/modsupport.c:546,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - format
    - va
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 529
    functionDepth: 13
    functionLinenumber: 529
    functionLinenumberEnd: 550
    functionName: va_build_value
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 4
    functionsReached:
    - va_copy
    - do_mktuple
    - countformat
    - do_mkvalue
    - 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:562,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/modsupport.c:577,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/modsupport.c:579,1
    - Dst: va_copy
      Src: /src/cpython/Python/modsupport.c:584,1
    - Dst: do_mkstack
      Src: /src/cpython/Python/modsupport.c:586,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:587,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/modsupport.c:591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 552
    functionDepth: 5
    functionLinenumber: 552
    functionLinenumberEnd: 598
    functionName: _Py_VaBuildStack
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 1
    functionsReached:
    - va_copy
    - PyErr_NoMemory
    - countformat
    - do_mkstack
    - va_end
    - PyMem_Free
    - 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:604,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:605,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/modsupport.c:611,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/modsupport.c:612,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/modsupport.c:619,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/modsupport.c:622,1
    - Dst: PyModule_GetName
      Src: /src/cpython/Python/modsupport.c:623,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/modsupport.c:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - mod
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 601
    functionDepth: 11
    functionLinenumber: 601
    functionLinenumberEnd: 627
    functionName: PyModule_AddObjectRef
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 48
    functionsReached:
    - PyErr_SetString
    - PyModule_GetName
    - PyModule_GetDict
    - PyModule_Check
    - PyDict_SetItemString
    - PyErr_Format
    - PyErr_Occurred
    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:632,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/modsupport.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 12
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: PyModule_Add
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 45
    functionsReached:
    - PyModule_AddObjectRef
    - Py_XDECREF
    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:640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mod
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 12
    functionLinenumber: 637
    functionLinenumberEnd: 645
    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:650,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/modsupport.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 13
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: PyModule_AddIntConstant
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 32
    functionsReached:
    - PyLong_FromLong
    - PyModule_Add
    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:656,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/modsupport.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 13
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: PyModule_AddStringConstant
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 19
    functionsReached:
    - PyUnicode_FromString
    - PyModule_Add
    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:662,1
    - Dst: PyType_Ready
      Src: /src/cpython/Python/modsupport.c:662,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/modsupport.c:666,1
    - Dst: assert
      Src: /src/cpython/Python/modsupport.c:667,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/modsupport.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/cpython/Python/modsupport.c
    constantsTouched: []
    func_position:
      end: 670
      start: 659
    functionDepth: 19
    functionLinenumber: 659
    functionLinenumberEnd: 670
    functionName: PyModule_AddType
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 61
    functionsReached:
    - _PyType_IsReady
    - assert
    - _PyType_Name
    - PyModule_AddObjectRef
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int PyModule_AddType(PyObject *module, PyTypeObject *type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/modsupport.c:674,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Python/modsupport.c:679,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/modsupport.c:680,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/modsupport.c:683,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/modsupport.c:684,1
    - Dst: va_start
      Src: /src/cpython/Python/modsupport.c:689,1
    - Dst: _PyUnicodeWriter_FormatV
      Src: /src/cpython/Python/modsupport.c:690,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:691,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/modsupport.c:692,1
    - Dst: va_end
      Src: /src/cpython/Python/modsupport.c:696,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/modsupport.c:697,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/modsupport.c:701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/modsupport.c:702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - module_name
    - format
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 672
    functionDepth: 9
    functionLinenumber: 672
    functionLinenumberEnd: 704
    functionName: _abiinfo_raise
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyUnicodeWriter_Create
    - _PyUnicodeWriter_FormatV
    - PyUnicodeWriter_Discard
    - PyErr_SetObject
    - va_start
    - va_end
    - PyUnicodeWriter_Finish
    - PyUnicodeWriter_WriteUTF8
    - PyUnicodeWriter_WriteASCII
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _abiinfo_raise(const char *module_name, const char *format, ...)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:709,1
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:717,1
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:723,1
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:735,1
    - Dst: Py_PACK_VERSION
      Src: /src/cpython/Python/modsupport.c:741,1
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:742,1
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:750,1
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:758,1
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:772,1
    - Dst: _abiinfo_raise
      Src: /src/cpython/Python/modsupport.c:777,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - info
    - module_name
    argTypes:
    - PyABIInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 706
    functionDepth: 10
    functionLinenumber: 706
    functionLinenumberEnd: 783
    functionName: PyABIInfo_Check
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 5
    functionsReached:
    - _abiinfo_raise
    - Py_PACK_VERSION
    linkageType: ''
    returnType: int
    signature: int PyABIInfo_Check(PyABIInfo *info, const char *module_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PACK_FULL_VERSION
      Src: /src/cpython/Python/modsupport.c:792,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: 793
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 793
    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:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: Py_PACK_VERSION
    functionSourceFile: /src/cpython/Python/modsupport.c
    functionUses: 3
    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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    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: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    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: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: label(name)
  - BBCount: 259
    BranchProfiles: []
    Callsites:
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:151,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:156,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:158,1
    - Dst: check_periodics
      Src: /src/cpython/Python/bytecodes.c:159,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:160,1
    - Dst: check_periodics
      Src: /src/cpython/Python/bytecodes.c:164,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:165,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:168,1
    - Dst: check_periodics
      Src: /src/cpython/Python/bytecodes.c:170,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:171,1
    - Dst: _Py_Specialize_Resume
      Src: /src/cpython/Python/bytecodes.c:176,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/bytecodes.c:189,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:190,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:190,1
    - Dst: _Py_Instrument
      Src: /src/cpython/Python/bytecodes.c:192,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:192,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:194,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:197,1
    - Dst: _PyEval_GetExecutableCode
      Src: /src/cpython/Python/bytecodes.c:207,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:207,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:208,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:209,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:215,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:220,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:226,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:230,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:232,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/bytecodes.c:235,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:236,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:236,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:237,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:238,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:240,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:245,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:250,1
    - Dst: _Py_call_instrumentation
      Src: /src/cpython/Python/bytecodes.c:251,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:253,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:260,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:267,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:271,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:272,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:273,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:274,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/bytecodes.c:276,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:276,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:278,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:280,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:283,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:284,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:284,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:284,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:285,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:285,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:288,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:289,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:289,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:289,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/bytecodes.c:290,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:290,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:293,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:294,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:295,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:298,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:301,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:301,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:302,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:302,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:305,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/bytecodes.c:308,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:308,1
    - Dst: PyStackRef_Borrow
      Src: /src/cpython/Python/bytecodes.c:309,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:309,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:312,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:313,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:314,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:317,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:317,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:318,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:320,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:323,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:325,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:325,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:326,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:327,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:328,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:332,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:336,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:339,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:340,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:341,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:342,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:342,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:343,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:346,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:349,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:350,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:351,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:352,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:353,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:354,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:355,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:356,1
    - Dst: PyStackRef_XCLOSE
      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: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:364,1
    - Dst: PyStackRef_RefcountOnObject
      Src: /src/cpython/Python/bytecodes.c:364,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/bytecodes.c:365,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:365,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:366,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:369,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:370,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:370,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:370,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:371,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:374,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:375,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:375,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:375,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:376,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:379,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:380,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:380,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:380,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:381,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:384,1
    - Dst: _PyStackRef_CloseStack
      Src: /src/cpython/Python/bytecodes.c:385,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:386,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:399,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:403,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:405,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:406,1
    - Dst: PyStackRef_GenCheck
      Src: /src/cpython/Python/bytecodes.c:412,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Python/bytecodes.c:413,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:413,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:415,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:418,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:423,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:424,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:425,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:431,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:432,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:433,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:437,1
    - Dst: PyGen_Check
      Src: /src/cpython/Python/bytecodes.c:438,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/bytecodes.c:438,1
    - Dst: monitor_stop_iteration
      Src: /src/cpython/Python/bytecodes.c:439,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:439,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:441,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:446,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:447,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:448,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:451,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:453,1
    - Dst: PyNumber_Negative
      Src: /src/cpython/Python/bytecodes.c:454,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:454,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:456,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:458,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:460,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:466,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:467,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:467,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:468,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/bytecodes.c:468,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:469,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:474,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:477,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:478,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/bytecodes.c:478,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/bytecodes.c:479,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:481,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:484,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:495,1
    - Dst: _Py_Specialize_ToBool
      Src: /src/cpython/Python/bytecodes.c:497,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:498,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:500,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:501,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:505,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bytecodes.c:506,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:506,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:507,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:508,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:512,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:514,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:515,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/bytecodes.c:515,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:516,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:519,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:520,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:521,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/bytecodes.c:522,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:524,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:527,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:530,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:531,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:532,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:532,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:535,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:536,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:537,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:537,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:540,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:541,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:542,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/bytecodes.c:542,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:545,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:547,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:548,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:549,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:549,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:550,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:551,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:553,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:556,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:558,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:558,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:559,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:560,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:564,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:565,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:566,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:566,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:567,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/cpython/Python/bytecodes.c:567,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:570,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:571,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:572,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:572,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:575,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:576,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:577,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:577,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:580,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:581,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:582,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/bytecodes.c:583,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:585,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:588,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:591,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:594,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:597,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:604,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:606,1
    - Dst: PyNumber_Invert
      Src: /src/cpython/Python/bytecodes.c:607,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:607,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:609,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:611,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:613,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:616,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:635,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:636,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:637,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/bytecodes.c:637,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:640,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:641,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:642,1
    - Dst: _PyLong_CheckExactAndCompact
      Src: /src/cpython/Python/bytecodes.c:642,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:645,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:646,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:647,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:647,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:648,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bytecodes.c:648,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:651,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:652,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:653,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:653,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:654,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bytecodes.c:654,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:658,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:659,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:660,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:660,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:661,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:661,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:662,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/bytecodes.c:662,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:664,1
    - Dst: _PyCompactLong_Multiply
      Src: /src/cpython/Python/bytecodes.c:665,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:666,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:666,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:669,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:673,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:674,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:675,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:675,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:676,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:676,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:677,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/bytecodes.c:677,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:679,1
    - Dst: _PyCompactLong_Add
      Src: /src/cpython/Python/bytecodes.c:680,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:681,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:681,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:684,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:688,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:689,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:690,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:690,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:691,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:691,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:692,1
    - Dst: _PyLong_BothAreCompact
      Src: /src/cpython/Python/bytecodes.c:692,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:694,1
    - Dst: _PyCompactLong_Subtract
      Src: /src/cpython/Python/bytecodes.c:695,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:696,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:696,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:699,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:702,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:705,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:708,1
    - Dst: INT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:715,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:716,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:716,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:720,1
    - Dst: INT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:724,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:725,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:725,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:729,1
    - Dst: INT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:733,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:734,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:734,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:738,1
    - Dst: INT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:742,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:743,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:743,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:747,1
    - Dst: INT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:751,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:752,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:752,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:756,1
    - Dst: INT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:760,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:761,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:761,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:765,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:768,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:769,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:770,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:770,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:773,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:774,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:775,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:775,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:779,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:780,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:781,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:781,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:782,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:782,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:784,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bytecodes.c:788,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:790,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:792,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:795,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:799,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:800,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:801,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:801,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:802,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:802,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:804,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bytecodes.c:808,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:810,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:812,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:815,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:819,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:820,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:821,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:821,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:822,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:822,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:824,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bytecodes.c:828,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:830,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:832,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:835,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:838,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:840,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:842,1
    - Dst: FLOAT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:850,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:854,1
    - Dst: FLOAT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:858,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:862,1
    - Dst: FLOAT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:866,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:870,1
    - Dst: FLOAT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:875,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:879,1
    - Dst: FLOAT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:883,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:887,1
    - Dst: FLOAT_INPLACE_OP
      Src: /src/cpython/Python/bytecodes.c:891,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:895,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:901,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:902,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:903,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:903,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:904,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:904,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:905,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bytecodes.c:908,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:910,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bytecodes.c:913,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:915,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:917,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:920,1
    - Dst: FLOAT_INPLACE_DIVOP
      Src: /src/cpython/Python/bytecodes.c:924,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:926,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:931,1
    - Dst: FLOAT_INPLACE_DIVOP
      Src: /src/cpython/Python/bytecodes.c:935,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:937,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:942,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:946,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:947,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:948,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:948,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:949,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:949,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:951,1
    - Dst: PyUnicode_Concat
      Src: /src/cpython/Python/bytecodes.c:952,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:954,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:956,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:959,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:962,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:968,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:969,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:970,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:970,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:971,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:971,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:971,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:975,1
    - Dst: CURRENT_OPERAND0_16
      Src: /src/cpython/Python/bytecodes.c:978,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:980,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:981,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:981,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:982,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:982,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:983,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:995,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/bytecodes.c:995,1
    - Dst: PyStackRef_IsHeapSafe
      Src: /src/cpython/Python/bytecodes.c:995,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:996,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:997,1
    - Dst: PyStackRef_CLOSE_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:1002,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1003,1
    - Dst: PyUnicode_Append
      Src: /src/cpython/Python/bytecodes.c:1004,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Python/bytecodes.c:1005,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1007,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1008,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1012,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1014,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1015,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1016,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1016,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1020,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1022,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1023,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1024,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1024,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1027,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1028,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1029,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1031,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1032,1
    - Dst: _PyBinaryOpSpecializationDescr*::guard
      Src: /src/cpython/Python/bytecodes.c:1034,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1035,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1035,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1036,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1039,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1040,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1041,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1042,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1045,1
    - Dst: _PyBinaryOpSpecializationDescr*::action
      Src: /src/cpython/Python/bytecodes.c:1047,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1049,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1051,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1051,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1052,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/bytecodes.c:1052,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/bytecodes.c:1052,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1057,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1057,1
    - Dst: Py_REFCNT
      Src: /src/cpython/Python/bytecodes.c:1057,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1059,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1062,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1063,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1066,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1069,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1075,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1079,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1080,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1081,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1082,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1084,1
    - Dst: _PyList_BinarySlice
      Src: /src/cpython/Python/bytecodes.c:1085,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1087,1
    - Dst: _PyTuple_BinarySlice
      Src: /src/cpython/Python/bytecodes.c:1088,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1090,1
    - Dst: _PyUnicode_BinarySlice
      Src: /src/cpython/Python/bytecodes.c:1091,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/bytecodes.c:1094,1
    - Dst: PyObject_GetItem
      Src: /src/cpython/Python/bytecodes.c:1099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1100,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1103,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1104,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1105,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1108,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1113,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1117,1
    - Dst: _PyBuildSlice_ConsumeRefs
      Src: /src/cpython/Python/bytecodes.c:1118,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1118,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1119,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/bytecodes.c:1126,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1126,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1126,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1127,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1129,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1130,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1133,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1135,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1138,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1139,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1140,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1142,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1142,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1143,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1143,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/bytecodes.c:1145,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1147,1
    - Dst: _PyList_GetItemRef
      Src: /src/cpython/Python/bytecodes.c:1150,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1151,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1152,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1154,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1154,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1155,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1156,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1157,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1159,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1162,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1165,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1168,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1169,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1170,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1172,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/bytecodes.c:1172,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1173,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1173,1
    - Dst: _PyList_SliceSubscript
      Src: /src/cpython/Python/bytecodes.c:1175,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1176,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1178,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1180,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1183,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1186,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1189,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1190,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1191,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1193,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1193,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1194,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1194,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1195,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/bytecodes.c:1195,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1197,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/bytecodes.c:1197,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/bytecodes.c:1198,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1199,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1200,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/bytecodes.c:1201,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1204,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1205,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1208,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1211,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1212,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1213,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1215,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1215,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1216,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1216,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1217,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/bytecodes.c:1217,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1219,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/bytecodes.c:1219,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/bytecodes.c:1221,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1222,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/bytecodes.c:1222,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/bytecodes.c:1222,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1223,1
    - Dst: _Py_SINGLETON
      Src: /src/cpython/Python/bytecodes.c:1224,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1227,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1228,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1231,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1232,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1233,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1233,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1236,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1237,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1238,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1238,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1241,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1251,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1252,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1253,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1255,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1255,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1256,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1256,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1259,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/bytecodes.c:1259,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1261,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1261,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1264,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1265,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1266,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1268,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1268,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1269,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1269,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1271,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1273,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1274,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1275,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1278,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1281,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1282,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1283,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1283,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1284,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1284,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1287,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1288,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1289,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1289,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1290,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1293,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1294,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1295,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1295,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1298,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1299,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1300,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1300,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1303,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1304,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1305,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1305,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1308,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1313,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1314,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1315,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1315,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1316,1
    - Dst: _PyDict_SubscriptKnownHash
      Src: /src/cpython/Python/bytecodes.c:1317,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1319,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1321,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1324,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1327,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1328,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1329,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1330,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1330,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1331,1
    - Dst: _PyDict_Subscript
      Src: /src/cpython/Python/bytecodes.c:1332,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1334,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1336,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1339,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1342,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1343,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1343,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1344,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/bytecodes.c:1344,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:1346,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1347,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1348,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:1348,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:1349,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1350,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/bytecodes.c:1351,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1352,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1353,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:1353,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1354,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1357,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1358,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/bytecodes.c:1359,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1362,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:1364,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1367,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1375,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Python/bytecodes.c:1376,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1376,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1377,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1378,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1381,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Python/bytecodes.c:1382,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1382,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1383,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1384,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:1387,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:1394,1
    - Dst: _Py_Specialize_StoreSubscr
      Src: /src/cpython/Python/bytecodes.c:1396,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:1397,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1399,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:1400,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1404,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/bytecodes.c:1406,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1406,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1406,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1406,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1407,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1408,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1411,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1413,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1416,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1417,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1418,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1420,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1420,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1421,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1421,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/bytecodes.c:1423,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1424,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1424,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:1425,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1431,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:1432,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1434,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:1436,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/bytecodes.c:1437,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Python/bytecodes.c:1437,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1438,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1439,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:1440,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1444,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1447,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1451,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1452,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1453,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1453,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1454,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Python/bytecodes.c:1455,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1456,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1457,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1459,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1460,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1462,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1467,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1468,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1468,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1469,1
    - Dst: _PyDict_SetItem_Take2_KnownHash
      Src: /src/cpython/Python/bytecodes.c:1470,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1471,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1472,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1476,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1477,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1479,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1483,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Python/bytecodes.c:1485,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1485,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1486,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1487,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1488,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1491,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1492,1
    - Dst: func
      Src: /src/cpython/Python/bytecodes.c:1493,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1493,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1495,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1498,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1499,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1502,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1504,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1505,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1506,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1507,1
    - Dst: func
      Src: /src/cpython/Python/bytecodes.c:1509,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1512,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1515,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:1519,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1522,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1525,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1526,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1527,1
    - Dst: do_raise
      Src: /src/cpython/Python/bytecodes.c:1528,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1530,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/bytecodes.c:1531,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1534,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1538,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1539,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/bytecodes.c:1539,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1542,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:1542,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1543,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1545,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1549,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:1550,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1551,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1552,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/bytecodes.c:1555,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1559,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/bytecodes.c:1560,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1566,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1567,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1569,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/bytecodes.c:1570,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1571,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/bytecodes.c:1571,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Python/bytecodes.c:1572,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/bytecodes.c:1573,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/bytecodes.c:1577,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:1578,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/bytecodes.c:1579,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/bytecodes.c:1581,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1584,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/bytecodes.c:1589,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1591,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1592,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1595,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1600,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1604,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:1611,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1615,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1616,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1620,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1621,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1623,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1624,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:1626,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:1630,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1631,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1633,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1636,1
    - Dst: _PyEval_GetANext
      Src: /src/cpython/Python/bytecodes.c:1637,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1637,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1639,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1641,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1644,1
    - Dst: _PyEval_GetAwaitable
      Src: /src/cpython/Python/bytecodes.c:1645,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1645,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1646,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1647,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1648,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:1651,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:1659,1
    - Dst: _Py_Specialize_Send
      Src: /src/cpython/Python/bytecodes.c:1661,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:1662,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:1664,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:1665,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1670,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1671,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/bytecodes.c:1672,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1673,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1673,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Python/bytecodes.c:1674,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:1678,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/bytecodes.c:1678,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1679,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:1680,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1683,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1685,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/bytecodes.c:1687,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:1689,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:1689,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/bytecodes.c:1690,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/bytecodes.c:1691,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/bytecodes.c:1692,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1693,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:1695,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:1696,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1699,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1702,1
    - Dst: _PyIter_Send
      Src: /src/cpython/Python/bytecodes.c:1703,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1705,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1707,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1708,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:1710,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1715,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1717,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1718,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1719,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1719,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1719,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1720,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Python/bytecodes.c:1720,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:1721,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:1723,1
    - Dst: PyStackRef_MakeHeapSafe
      Src: /src/cpython/Python/bytecodes.c:1723,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1724,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1727,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:1730,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1733,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1740,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1741,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:1741,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1744,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1746,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1747,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:1747,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1751,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:1752,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:1753,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1758,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1761,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:1762,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:1763,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1765,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1766,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:1767,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1770,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1771,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:1771,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1772,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:1773,1
    - Dst: CALL_TP_ITERITEM_NO_ESCAPE
      Src: /src/cpython/Python/bytecodes.c:1774,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1779,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1782,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1783,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1785,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1786,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:1787,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1790,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1796,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1797,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1798,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1798,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1802,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1803,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1803,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1804,1
    - Dst: _PyAsyncGenASend_Send
      Src: /src/cpython/Python/bytecodes.c:1807,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1809,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1811,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1813,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1815,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1816,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:1818,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1822,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1828,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1829,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Python/bytecodes.c:1829,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1830,1
    - Dst: _PyAsyncGenASend_Send
      Src: /src/cpython/Python/bytecodes.c:1833,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1835,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1837,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1839,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1841,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1842,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:1843,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:1846,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1850,1
    - Dst: _PyGen_GetGeneratorFromFrame
      Src: /src/cpython/Python/bytecodes.c:1852,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1853,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1854,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:1856,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/bytecodes.c:1857,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Python/bytecodes.c:1858,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/bytecodes.c:1861,1
    - Dst: FT_ATOMIC_STORE_INT8_RELEASE
      Src: /src/cpython/Python/bytecodes.c:1866,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1868,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:1870,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:1871,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1872,1
    - Dst: _Py_GetBaseCodeUnit
      Src: /src/cpython/Python/bytecodes.c:1873,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:1873,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1874,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:1877,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/bytecodes.c:1878,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/bytecodes.c:1880,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1883,1
    - Dst: _Py_call_instrumentation_arg
      Src: /src/cpython/Python/bytecodes.c:1888,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1890,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:1892,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:1896,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1900,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1905,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/bytecodes.c:1907,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:1908,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1909,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1913,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1915,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:1917,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:1917,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1919,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:1919,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/bytecodes.c:1920,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/bytecodes.c:1921,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:1926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1928,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1930,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:1930,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:1931,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1933,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bytecodes.c:1936,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/bytecodes.c:1937,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/bytecodes.c:1938,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1944,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:1945,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1948,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:1952,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:1955,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1957,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1959,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:1959,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:1960,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:1962,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:1963,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/bytecodes.c:1968,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bytecodes.c:1968,1
    - Dst: monitor_reraise
      Src: /src/cpython/Python/bytecodes.c:1969,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1974,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:1976,1
    - Dst: PyStackRef_DupImmortal
      Src: /src/cpython/Python/bytecodes.c:1977,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1980,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/bytecodes.c:1982,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:1982,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bytecodes.c:1982,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1983,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/bytecodes.c:1985,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:1987,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:1989,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:1992,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:1993,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:1994,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:1997,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:1999,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2000,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2002,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/bytecodes.c:2003,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2003,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/bytecodes.c:2006,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2006,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2008,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2009,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2012,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2013,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:2014,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:2017,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2019,1
    - Dst: PyObject_DelItem
      Src: /src/cpython/Python/bytecodes.c:2021,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:2024,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2027,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2031,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2039,1
    - Dst: _Py_Specialize_UnpackSequence
      Src: /src/cpython/Python/bytecodes.c:2041,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2042,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2044,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2045,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2051,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2052,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Python/bytecodes.c:2053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2054,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2055,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2058,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2060,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2063,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2064,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2065,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2066,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2066,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2067,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:2067,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2068,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2069,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2069,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2070,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2070,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2071,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2074,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2075,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2076,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2077,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2077,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2078,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2078,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bytecodes.c:2079,1
    - Dst: _PyStolenTuple_Free
      Src: /src/cpython/Python/bytecodes.c:2080,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2083,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2084,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2085,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2086,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2086,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2087,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2087,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2088,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2088,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bytecodes.c:2089,1
    - Dst: _PyStolenTuple_Free
      Src: /src/cpython/Python/bytecodes.c:2090,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2093,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2096,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2097,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2098,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2098,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2099,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:2099,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2100,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/bytecodes.c:2101,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2103,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2105,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2108,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2109,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2110,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2110,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2111,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:2111,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2112,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/bytecodes.c:2112,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2113,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/bytecodes.c:2114,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2116,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bytecodes.c:2118,1
    - Dst: _PyStolenTuple_Free
      Src: /src/cpython/Python/bytecodes.c:2119,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2122,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2125,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2126,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2127,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2127,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2128,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2128,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:2129,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2130,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2131,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2133,1
    - Dst: _PyList_ITEMS
      Src: /src/cpython/Python/bytecodes.c:2134,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2136,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2138,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2139,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2142,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2143,1
    - Dst: _PyEval_UnpackIterableStackRef
      Src: /src/cpython/Python/bytecodes.c:2144,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2145,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2146,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2149,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2157,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2158,1
    - Dst: _Py_Specialize_StoreAttr
      Src: /src/cpython/Python/bytecodes.c:2160,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2161,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2163,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2164,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2168,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2169,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/bytecodes.c:2170,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2170,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2171,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2172,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2173,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2176,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2178,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2179,1
    - Dst: PyObject_DelAttr
      Src: /src/cpython/Python/bytecodes.c:2180,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2180,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2181,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2182,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2185,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2186,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/bytecodes.c:2187,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2187,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2187,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2188,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2189,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2192,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2193,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/bytecodes.c:2194,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2194,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2197,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:2200,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2202,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2206,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:2207,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/bytecodes.c:2209,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2211,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2213,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2216,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2217,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/bytecodes.c:2219,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2219,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2221,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2222,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2224,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2224,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2225,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:2225,1
    - Dst: _PyDict_LoadGlobal
      Src: /src/cpython/Python/bytecodes.c:2227,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2227,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:2228,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:2231,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:2234,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2237,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2240,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Python/bytecodes.c:2241,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bytecodes.c:2242,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2243,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/bytecodes.c:2249,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2249,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2250,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/bytecodes.c:2253,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:2253,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2254,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:2256,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2259,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2262,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Python/bytecodes.c:2263,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bytecodes.c:2264,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2265,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2269,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2272,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2273,1
    - Dst: _PyEval_LoadName
      Src: /src/cpython/Python/bytecodes.c:2274,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2275,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2276,1
    - Dst: _PyImport_LoadLazyImportTstate
      Src: /src/cpython/Python/bytecodes.c:2277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2280,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2281,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/bytecodes.c:2283,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2286,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2287,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bytecodes.c:2289,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2292,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2295,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2302,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2303,1
    - Dst: _Py_Specialize_LoadGlobal
      Src: /src/cpython/Python/bytecodes.c:2305,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2305,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:2305,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2306,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2308,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2309,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2314,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2315,1
    - Dst: _PyEval_LoadGlobalStackRef
      Src: /src/cpython/Python/bytecodes.c:2316,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2316,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:2316,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2318,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:2318,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2321,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2327,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2335,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2336,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2337,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2337,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:2338,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2339,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2339,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2340,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2343,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:2345,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2346,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2346,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:2347,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2348,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2348,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2349,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:2350,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2351,1
    - Dst: DK_SIZE
      Src: /src/cpython/Python/bytecodes.c:2351,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2352,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2353,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:2355,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2356,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2358,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2360,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2363,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:2365,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2366,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2366,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:2367,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2368,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2368,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2369,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:2370,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2371,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2372,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:2374,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2375,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2377,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2379,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2382,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2388,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2394,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2395,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:2396,1
    - Dst: _PyEval_FormatExcCheckArg
      Src: /src/cpython/Python/bytecodes.c:2397,1
    - Dst: PyTuple_GetItem
      Src: /src/cpython/Python/bytecodes.c:2399,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:2399,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2401,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2403,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2404,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:2405,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2408,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2411,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2411,1
    - Dst: PyCell_New
      Src: /src/cpython/Python/bytecodes.c:2412,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2414,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2416,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2417,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2417,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:2418,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2421,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2422,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2422,1
    - Dst: PyCell_SwapTakeRef
      Src: /src/cpython/Python/bytecodes.c:2425,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/bytecodes.c:2427,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:2427,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2430,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2433,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2435,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2437,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2438,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:2438,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2439,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:2439,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/bytecodes.c:2441,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2443,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2446,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2446,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Python/bytecodes.c:2447,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/bytecodes.c:2449,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:2449,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2450,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2453,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2454,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2457,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2458,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2458,1
    - Dst: _PyCell_GetStackRef
      Src: /src/cpython/Python/bytecodes.c:2459,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:2460,1
    - Dst: _PyEval_FormatExcUnbound
      Src: /src/cpython/Python/bytecodes.c:2461,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:2461,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2462,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2466,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2467,1
    - Dst: GETLOCAL
      Src: /src/cpython/Python/bytecodes.c:2467,1
    - Dst: PyCell_SetTakeRef
      Src: /src/cpython/Python/bytecodes.c:2468,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2468,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2471,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:2473,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2474,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/bytecodes.c:2474,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2475,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2477,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:2480,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2481,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2485,1
    - Dst: _Py_BuildString_StackRefSteal
      Src: /src/cpython/Python/bytecodes.c:2486,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2487,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2488,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2489,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2492,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2493,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2494,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2498,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/bytecodes.c:2501,1
    - Dst: _PyInterpolation_Build
      Src: /src/cpython/Python/bytecodes.c:2503,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2505,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2508,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2510,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2511,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2512,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2513,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2516,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2517,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2518,1
    - Dst: _PyTemplate_Build
      Src: /src/cpython/Python/bytecodes.c:2519,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2520,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2521,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2522,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2526,1
    - Dst: _PyTuple_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/bytecodes.c:2527,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2529,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:2531,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:2532,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2535,1
    - Dst: _PyList_FromStackRefStealOnSuccess
      Src: /src/cpython/Python/bytecodes.c:2536,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2538,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:2540,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:2541,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2544,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2545,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2546,1
    - Dst: _PyList_Extend
      Src: /src/cpython/Python/bytecodes.c:2548,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:2550,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2552,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/bytecodes.c:2552,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/bytecodes.c:2554,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:2555,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2557,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2559,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2561,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/bytecodes.c:2561,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2563,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2566,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2568,1
    - Dst: _PySet_Update
      Src: /src/cpython/Python/bytecodes.c:2569,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2569,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2570,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2572,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2575,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2578,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2580,1
    - Dst: PySet_New
      Src: /src/cpython/Python/bytecodes.c:2581,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2583,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2584,1
    - Dst: _PySet_AddTakeRef
      Src: /src/cpython/Python/bytecodes.c:2592,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2592,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2595,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2598,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2600,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2601,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:2604,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:2605,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2608,1
    - Dst: _Py_BuildMap_StackRefSteal
      Src: /src/cpython/Python/bytecodes.c:2610,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2611,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2612,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:2613,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2616,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:2617,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:2618,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2620,1
    - Dst: _PyMapping_GetOptionalItem2
      Src: /src/cpython/Python/bytecodes.c:2624,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:2624,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bytecodes.c:2624,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2625,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/bytecodes.c:2627,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2628,1
    - Dst: PyObject_SetItem
      Src: /src/cpython/Python/bytecodes.c:2629,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:2629,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bytecodes.c:2629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2631,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2635,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:2639,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2643,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2644,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2645,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/bytecodes.c:2647,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:2649,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/bytecodes.c:2651,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/bytecodes.c:2652,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bytecodes.c:2652,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:2654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2657,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/bytecodes.c:2660,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2663,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2666,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2669,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2671,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2672,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2673,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2674,1
    - Dst: _PyDict_MergeUniq
      Src: /src/cpython/Python/bytecodes.c:2677,1
    - Dst: _PyEval_FormatKwargsError
      Src: /src/cpython/Python/bytecodes.c:2679,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bytecodes.c:2680,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2681,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2684,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2687,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2689,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2690,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2691,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2691,1
    - Dst: _PyDict_SetItem_Take2
      Src: /src/cpython/Python/bytecodes.c:2694,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2696,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2697,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2699,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2702,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2707,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2715,1
    - Dst: _Py_Specialize_LoadSuperAttr
      Src: /src/cpython/Python/bytecodes.c:2717,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2718,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2720,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2721,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2726,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2727,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2728,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/bytecodes.c:2732,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2736,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2737,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/bytecodes.c:2746,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/bytecodes.c:2751,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/bytecodes.c:2756,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bytecodes.c:2760,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2764,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2765,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2766,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bytecodes.c:2767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:2768,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2769,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2770,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2773,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:2778,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2779,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2780,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2781,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2783,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2784,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2785,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:2785,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2786,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2787,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Python/bytecodes.c:2788,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2789,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2790,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2791,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2794,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2800,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2801,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2802,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2803,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:2803,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2804,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2804,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2807,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2808,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2809,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2810,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2811,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2812,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:2812,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2815,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2816,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2817,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2819,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2820,1
    - Dst: _PySuper_Lookup
      Src: /src/cpython/Python/bytecodes.c:2827,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2828,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:2831,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2835,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2837,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:2840,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:2842,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:2845,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:2863,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2864,1
    - Dst: _Py_Specialize_LoadAttr
      Src: /src/cpython/Python/bytecodes.c:2866,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:2867,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:2869,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:2870,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2874,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2875,1
    - Dst: _Py_LoadAttr_StackRefSteal
      Src: /src/cpython/Python/bytecodes.c:2878,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2879,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2880,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:2880,1
    - Dst: _PyObject_GetAttrStackRef
      Src: /src/cpython/Python/bytecodes.c:2884,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2884,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:2885,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:2886,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:2886,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2890,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2895,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2896,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2896,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2897,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2898,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2898,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2901,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2902,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2903,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2904,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2905,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:2906,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2907,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2911,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2912,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2912,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2913,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2916,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2917,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2918,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2918,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2919,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2919,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2920,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/bytecodes.c:2920,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/bytecodes.c:2920,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2923,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2924,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:2926,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2927,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:2929,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:2931,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2934,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2936,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2938,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2941,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2951,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2952,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2953,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2953,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2955,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:2956,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2957,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2957,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2958,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2959,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2959,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:2960,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2961,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2962,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:2964,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2966,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:2969,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:2971,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:2973,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:2976,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:2983,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:2984,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2985,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:2985,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/bytecodes.c:2986,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2987,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/bytecodes.c:2988,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:2989,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:2989,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2991,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/bytecodes.c:2991,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/bytecodes.c:2991,1
    - Dst: FT_ATOMIC_LOAD_SSIZE_RELAXED
      Src: /src/cpython/Python/bytecodes.c:2994,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:2995,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:2998,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3000,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:3002,1
    - Dst: FT_ATOMIC_LOAD_PTR_RELAXED
      Src: /src/cpython/Python/bytecodes.c:3003,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3004,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/bytecodes.c:3006,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3008,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3010,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:3012,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3014,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:3017,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3020,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3023,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3032,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3033,1
    - Dst: FT_ATOMIC_LOAD_PTR
      Src: /src/cpython/Python/bytecodes.c:3036,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3037,1
    - Dst: _Py_TryIncrefCompareStackRef
      Src: /src/cpython/Python/bytecodes.c:3039,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3040,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:3042,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3044,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3046,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3049,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3058,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3059,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3061,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:3061,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3062,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3063,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/bytecodes.c:3063,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3066,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3067,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3068,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:3069,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:3070,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3073,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3081,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3089,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3090,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3091,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:3091,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3093,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3095,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:3095,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3096,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/bytecodes.c:3097,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:3097,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3099,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:3100,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3103,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3112,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3113,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3114,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:3114,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3116,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3117,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3119,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3120,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:3120,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3121,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:3122,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/bytecodes.c:3123,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:3124,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3126,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:3127,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:3128,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3131,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3140,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3141,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3143,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3143,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3144,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3144,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/bytecodes.c:3145,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/bytecodes.c:3146,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/bytecodes.c:3146,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3147,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3148,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3152,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3153,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3155,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3156,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/bytecodes.c:3156,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/bytecodes.c:3159,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3159,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/bytecodes.c:3161,1
    - Dst: _PyDictValues_AddToInsertionOrder
      Src: /src/cpython/Python/bytecodes.c:3163,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3165,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3167,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bytecodes.c:3168,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3171,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:3172,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3172,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3172,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3175,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3184,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3185,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3186,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3186,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/bytecodes.c:3187,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:3188,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:3189,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3189,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3190,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3190,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:3191,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3194,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:3195,1
    - Dst: DK_UNICODE_ENTRIES
      Src: /src/cpython/Python/bytecodes.c:3197,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3199,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:3200,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3204,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:3205,1
    - Dst: _PyDict_NotifyEvent
      Src: /src/cpython/Python/bytecodes.c:3207,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3207,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/bytecodes.c:3208,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3208,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3209,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3213,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3215,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bytecodes.c:3216,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3219,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3226,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3227,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:3229,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3229,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3231,1
    - Dst: FT_ATOMIC_STORE_PTR_RELEASE
      Src: /src/cpython/Python/bytecodes.c:3233,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3233,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:3234,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:3235,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bytecodes.c:3237,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3240,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:3247,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:3255,1
    - Dst: _Py_Specialize_CompareOp
      Src: /src/cpython/Python/bytecodes.c:3257,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:3258,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:3260,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:3261,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3265,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3266,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3267,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3269,1
    - Dst: PyObject_RichCompare
      Src: /src/cpython/Python/bytecodes.c:3270,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:3271,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3272,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bytecodes.c:3274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bytecodes.c:3275,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3276,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3280,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3284,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3286,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3289,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3292,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3295,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3296,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3297,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3299,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bytecodes.c:3300,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bytecodes.c:3301,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Python/bytecodes.c:3303,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3306,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3307,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3313,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3314,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3315,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3317,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bytecodes.c:3317,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3318,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bytecodes.c:3318,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3319,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3320,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Python/bytecodes.c:3320,1
    - Dst: _PyLong_DigitCount
      Src: /src/cpython/Python/bytecodes.c:3321,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/bytecodes.c:3322,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/bytecodes.c:3323,1
    - Dst: COMPARISON_BIT
      Src: /src/cpython/Python/bytecodes.c:3325,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3328,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3329,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3335,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3336,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3337,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3339,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/bytecodes.c:3340,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3341,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3344,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3345,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3346,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3347,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3348,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3353,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3355,1
    - Dst: Py_Is
      Src: /src/cpython/Python/bytecodes.c:3356,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3356,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3356,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:3360,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:3363,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3368,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3369,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3370,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/bytecodes.c:3372,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3374,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:3379,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:3384,1
    - Dst: _Py_Specialize_ContainsOp
      Src: /src/cpython/Python/bytecodes.c:3386,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:3387,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:3389,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:3390,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3394,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3396,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3397,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3398,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3398,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3401,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3402,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3403,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3403,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3406,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3407,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3408,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3408,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3411,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3413,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3414,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3415,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3417,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3417,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3418,1
    - Dst: _PySet_Contains
      Src: /src/cpython/Python/bytecodes.c:3420,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3422,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:3427,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3430,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3432,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3433,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3434,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3436,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3436,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3437,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/bytecodes.c:3438,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3440,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:3445,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3448,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3449,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3450,1
    - Dst: _PyEval_CheckExceptStarTypeValid
      Src: /src/cpython/Python/bytecodes.c:3451,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:3453,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3454,1
    - Dst: _PyEval_ExceptionGroupMatch
      Src: /src/cpython/Python/bytecodes.c:3459,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:3461,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3462,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3464,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3465,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/bytecodes.c:3467,1
    - Dst: PyErr_SetHandledException
      Src: /src/cpython/Python/bytecodes.c:3468,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3470,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3471,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3474,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3475,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3476,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3478,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:3478,1
    - Dst: _PyEval_CheckExceptTypeValid
      Src: /src/cpython/Python/bytecodes.c:3479,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3481,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:3484,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:3485,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3489,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:3490,1
    - Dst: _PyEval_LazyImportName
      Src: /src/cpython/Python/bytecodes.c:3493,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:3493,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:3493,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:3494,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3495,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3496,1
    - Dst: _PyEval_ImportName
      Src: /src/cpython/Python/bytecodes.c:3501,1
    - Dst: BUILTINS
      Src: /src/cpython/Python/bytecodes.c:3501,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:3501,1
    - Dst: LOCALS
      Src: /src/cpython/Python/bytecodes.c:3502,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3503,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3504,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:3506,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3507,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3508,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3511,1
    - Dst: GETITEM
      Src: /src/cpython/Python/bytecodes.c:3512,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3514,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3514,1
    - Dst: _PyEval_LazyImportFrom
      Src: /src/cpython/Python/bytecodes.c:3515,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3516,1
    - Dst: _PyEval_ImportFrom
      Src: /src/cpython/Python/bytecodes.c:3519,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3520,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3523,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3524,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:3528,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:3531,1
    - Dst: FT_ATOMIC_STORE_UINT8_RELAXED
      Src: /src/cpython/Python/bytecodes.c:3540,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:3543,1
    - Dst: backoff_counter_triggers
      Src: /src/cpython/Python/bytecodes.c:3552,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Python/bytecodes.c:3553,1
    - Dst: _PyJit_TryInitializeTracing
      Src: /src/cpython/Python/bytecodes.c:3562,1
    - Dst: ENTER_TRACING
      Src: /src/cpython/Python/bytecodes.c:3565,1
    - Dst: restart_backoff_counter
      Src: /src/cpython/Python/bytecodes.c:3568,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:3572,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3577,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3583,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3588,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:3594,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:3599,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:3604,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:3614,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Python/bytecodes.c:3616,1
    - Dst: _PyJit_EnterExecutorShouldStopTracing
      Src: /src/cpython/Python/bytecodes.c:3620,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:3622,1
    - Dst: DISPATCH_GOTO_NON_TRACING
      Src: /src/cpython/Python/bytecodes.c:3626,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/bytecodes.c:3630,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3631,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3632,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3633,1
    - Dst: FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:3636,1
    - Dst: _Py_atomic_load_uintptr_relaxed
      Src: /src/cpython/Python/bytecodes.c:3637,1
    - Dst: this_instr
      Src: /src/cpython/Python/bytecodes.c:3640,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:3642,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3663,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/bytecodes.c:3663,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/bytecodes.c:3664,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3665,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/bytecodes.c:3666,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:3667,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3670,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:3671,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3673,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:3677,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3681,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3683,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3685,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3687,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3695,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/bytecodes.c:3695,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:3696,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3699,1
    - Dst: PyObject_Length
      Src: /src/cpython/Python/bytecodes.c:3701,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3701,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3702,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bytecodes.c:3703,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3704,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3705,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3708,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3711,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3711,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3711,1
    - Dst: _PyEval_MatchClass
      Src: /src/cpython/Python/bytecodes.c:3712,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3713,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3714,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3715,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3717,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3717,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3718,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:3721,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3722,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:3729,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3732,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3734,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/bytecodes.c:3735,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3739,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/bytecodes.c:3740,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3744,1
    - Dst: _PyEval_MatchKeys
      Src: /src/cpython/Python/bytecodes.c:3746,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3747,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3747,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3748,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3749,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:3752,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:3759,1
    - Dst: _Py_Specialize_GetIter
      Src: /src/cpython/Python/bytecodes.c:3761,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:3762,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:3764,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:3765,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3769,1
    - Dst: _PyEval_GetIter
      Src: /src/cpython/Python/bytecodes.c:3770,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:3771,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3772,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/bytecodes.c:3772,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3776,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3781,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3782,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3782,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3783,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3784,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3787,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3793,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3794,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3794,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3795,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3796,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3799,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:3800,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3803,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3809,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bytecodes.c:3810,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3810,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:3811,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:3812,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3813,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:3823,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:3833,1
    - Dst: _Py_Specialize_ForIter
      Src: /src/cpython/Python/bytecodes.c:3835,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:3836,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:3838,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:3839,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/bytecodes.c:3844,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/bytecodes.c:3845,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/bytecodes.c:3846,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3847,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:3850,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:3851,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3856,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3858,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/bytecodes.c:3859,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/bytecodes.c:3860,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/bytecodes.c:3861,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3862,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3866,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3872,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3873,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3873,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3877,1
    - Dst: iternext_v
      Src: /src/cpython/Python/bytecodes.c:3879,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3879,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:3881,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/bytecodes.c:3882,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/bytecodes.c:3883,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/bytecodes.c:3884,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3887,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3890,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3892,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3893,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3896,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3897,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3898,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3898,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3901,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3902,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:3902,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3906,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:3907,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3908,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3913,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:3916,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:3917,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:3919,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3920,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:3923,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3928,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3929,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:3930,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3931,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3936,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3940,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:3942,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:3943,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:3946,1
    - Dst: _PyForIter_VirtualIteratorNext
      Src: /src/cpython/Python/bytecodes.c:3947,1
    - Dst: PyStackRef_IsValid
      Src: /src/cpython/Python/bytecodes.c:3948,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/bytecodes.c:3949,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:3950,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:3953,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:3954,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:3957,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3960,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3961,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3962,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3962,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3963,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/bytecodes.c:3963,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3965,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/bytecodes.c:3965,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/bytecodes.c:3965,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3976,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3977,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3977,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:3978,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:3979,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:3979,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:3980,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:3982,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:3983,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:3989,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3991,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3992,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:3992,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:3993,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:3993,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:3993,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:3998,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:3999,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:3999,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4001,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/bytecodes.c:4001,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/bytecodes.c:4002,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4003,1
    - Dst: _PyList_GetItemRefNoLock
      Src: /src/cpython/Python/bytecodes.c:4004,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:4004,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:4007,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:4009,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:4011,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:4012,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4015,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:4015,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:4015,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Python/bytecodes.c:4017,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4021,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4022,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4023,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/bytecodes.c:4023,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4025,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/bytecodes.c:4025,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/bytecodes.c:4026,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4027,1
    - Dst: _PyList_GetItemRefNoLock
      Src: /src/cpython/Python/bytecodes.c:4028,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:4028,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:4031,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4033,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:4033,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:4033,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4034,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:4034,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:4034,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Python/bytecodes.c:4036,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4039,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4045,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4046,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4047,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4047,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4048,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/bytecodes.c:4048,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4052,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4054,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4054,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4055,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:4056,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:4056,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:4057,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:4059,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:4060,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4065,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4066,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4067,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4067,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4068,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:4068,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:4068,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4071,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4072,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4073,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4073,1
    - Dst: PyStackRef_UntagInt
      Src: /src/cpython/Python/bytecodes.c:4074,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4075,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:4075,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4076,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:4076,1
    - Dst: PyStackRef_IncrementTaggedIntNoOverflow
      Src: /src/cpython/Python/bytecodes.c:4077,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4080,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4086,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4087,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4088,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4088,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4090,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/bytecodes.c:4090,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4095,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4096,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4096,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4098,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/bytecodes.c:4098,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4100,1
    - Dst: JUMPBY
      Src: /src/cpython/Python/bytecodes.c:4103,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:4104,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4109,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4110,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4111,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4111,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4112,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4115,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4116,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4117,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4117,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4119,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/bytecodes.c:4119,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4121,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bytecodes.c:4125,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:4126,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4127,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4130,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4136,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4137,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4138,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4138,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4139,1
    - Dst: gen_try_set_executing
      Src: /src/cpython/Python/bytecodes.c:4139,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4140,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:4142,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:4148,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4151,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4158,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4161,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4164,1
    - Dst: _PyObject_LookupSpecialMethod
      Src: /src/cpython/Python/bytecodes.c:4166,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4169,1
    - Dst: _PyEval_SpecialMethodCanSuggest
      Src: /src/cpython/Python/bytecodes.c:4170,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4173,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:4173,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4174,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:4175,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4177,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4181,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:4186,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4198,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4199,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4201,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/bytecodes.c:4201,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/bytecodes.c:4202,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/bytecodes.c:4203,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4207,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/bytecodes.c:4207,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4212,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4213,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/bytecodes.c:4214,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bytecodes.c:4217,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:4218,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4219,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:4222,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:4229,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:4234,1
    - Dst: pseudo
      Src: /src/cpython/Python/bytecodes.c:4242,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:4246,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4250,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4255,1
    - Dst: PyStackRef_ExceptionInstanceCheck
      Src: /src/cpython/Python/bytecodes.c:4255,1
    - Dst: PyStackRef_AsPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4256,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4258,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4261,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4262,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4263,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4263,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/bytecodes.c:4264,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4265,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/bytecodes.c:4265,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4268,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4269,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4269,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4272,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:4272,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4275,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4276,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4278,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4279,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4280,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/bytecodes.c:4280,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4280,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4281,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4283,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4286,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4294,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4295,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4296,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4296,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4296,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4297,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4298,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4299,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/bytecodes.c:4299,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4299,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4300,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4302,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4305,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4312,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4313,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4314,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4315,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:4316,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4317,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4320,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4328,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4329,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4330,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4330,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4330,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4331,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4332,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:4333,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4334,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4337,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4344,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4345,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:4346,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4348,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4351,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4352,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4353,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4354,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4355,1
    - Dst: _PyType_HasFeature
      Src: /src/cpython/Python/bytecodes.c:4355,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4355,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4356,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4358,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4361,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:4371,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:4396,1
    - Dst: _Py_Specialize_Call
      Src: /src/cpython/Python/bytecodes.c:4398,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4398,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:4399,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:4401,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:4402,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4406,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/bytecodes.c:4407,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4407,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4408,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4410,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4413,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:4414,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4419,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4420,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4425,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4430,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/bytecodes.c:4431,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/bytecodes.c:4434,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bytecodes.c:4435,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/bytecodes.c:4435,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/bytecodes.c:4436,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4440,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4441,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4442,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:4444,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4448,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/bytecodes.c:4451,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Python/bytecodes.c:4453,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4462,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4463,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4464,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:4465,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4466,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4469,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4470,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4471,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4474,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4477,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:4482,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/bytecodes.c:4483,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:4487,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4490,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4491,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4493,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4494,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4498,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4502,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4502,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/bytecodes.c:4503,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bytecodes.c:4504,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/bytecodes.c:4504,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/bytecodes.c:4505,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:4510,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:4511,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4513,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:4515,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4518,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4519,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4520,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:4520,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4522,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4526,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:4526,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4528,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4531,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4541,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4542,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4544,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4544,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4546,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:4546,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4547,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4548,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4548,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4551,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4552,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4553,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4553,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4554,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4554,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4555,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4557,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4558,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/bytecodes.c:4558,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:4559,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4562,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4574,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4575,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4576,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:4576,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4577,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4577,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4580,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4582,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4586,1
    - Dst: _Py_VectorCall_StackRefSteal
      Src: /src/cpython/Python/bytecodes.c:4590,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4595,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4596,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4597,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:4598,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4599,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4602,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4610,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4611,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4611,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4612,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4612,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4612,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4615,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4616,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4616,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4617,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4618,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4619,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4621,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:4622,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4625,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:4626,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/bytecodes.c:4626,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4629,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4630,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4631,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:4631,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4634,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4634,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4637,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4638,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:4641,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:4641,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4644,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:4645,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:4648,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4649,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4650,1
    - Dst: _PyFrame_PushUnchecked
      Src: /src/cpython/Python/bytecodes.c:4651,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:4657,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:4658,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4661,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4662,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/bytecodes.c:4662,1
    - Dst: PyStackRef_Unwrap
      Src: /src/cpython/Python/bytecodes.c:4663,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4664,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:4665,1
    - Dst: _PyFrame_SetStackPointer
      Src: /src/cpython/Python/bytecodes.c:4666,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4667,1
    - Dst: CALL_STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4668,1
    - Dst: LOAD_SP
      Src: /src/cpython/Python/bytecodes.c:4671,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/bytecodes.c:4672,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/bytecodes.c:4673,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/bytecodes.c:4674,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4677,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4692,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4704,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4705,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4705,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4708,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4709,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4709,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4712,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4713,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4714,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4717,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4718,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4720,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4721,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:4723,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4724,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4724,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4727,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4735,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4736,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4737,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4740,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4741,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4743,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4744,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/bytecodes.c:4745,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4747,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:4750,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4751,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4754,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4763,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4764,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4765,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4768,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4769,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4771,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4772,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/bytecodes.c:4773,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4775,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:4778,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4779,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4782,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4791,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4792,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4793,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4793,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4794,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:4794,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4796,1
    - Dst: FT_ATOMIC_LOAD_UINT32_RELAXED
      Src: /src/cpython/Python/bytecodes.c:4796,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4799,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4800,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4801,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4801,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4802,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:4802,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4804,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4805,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4806,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/bytecodes.c:4809,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4811,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:4811,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4812,1
    - Dst: PyType_GenericAlloc
      Src: /src/cpython/Python/bytecodes.c:4813,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4815,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4817,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:4819,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:4820,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4823,1
    - Dst: _PyFrame_PushTrampolineUnchecked
      Src: /src/cpython/Python/bytecodes.c:4824,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4826,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:4826,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4827,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:4827,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:4829,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/bytecodes.c:4830,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4832,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4833,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4834,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:4835,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/bytecodes.c:4837,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4838,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:4845,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4848,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:4858,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:4859,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bytecodes.c:4860,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:4862,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4862,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4863,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:4865,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4868,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4869,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4870,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bytecodes.c:4870,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4872,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4875,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4878,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4882,1
    - Dst: _Py_CallBuiltinClass_StackRef
      Src: /src/cpython/Python/bytecodes.c:4883,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4888,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4891,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:4892,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4895,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4905,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4906,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4907,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/bytecodes.c:4907,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4908,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/bytecodes.c:4908,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4910,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4913,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4916,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4918,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4920,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4923,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/cpython/Python/bytecodes.c:4924,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/bytecodes.c:4926,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/cpython/Python/bytecodes.c:4926,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4926,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/bytecodes.c:4927,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:4928,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:4928,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4930,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:4934,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4935,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4938,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4949,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4950,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4951,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/bytecodes.c:4951,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4952,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/bytecodes.c:4952,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4955,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4959,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:4963,1
    - Dst: _Py_BuiltinCallFast_StackRef
      Src: /src/cpython/Python/bytecodes.c:4964,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:4970,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:4973,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:4974,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:4977,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4987,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:4988,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4989,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/bytecodes.c:4989,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:4990,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/bytecodes.c:4990,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:4993,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:4997,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5001,1
    - Dst: _Py_BuiltinCallFastWithKeywords_StackRef
      Src: /src/cpython/Python/bytecodes.c:5002,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5004,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5007,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5008,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5011,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5021,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5030,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5031,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5033,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5036,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5038,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5039,1
    - Dst: PyObject_Length
      Src: /src/cpython/Python/bytecodes.c:5040,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5042,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bytecodes.c:5044,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5045,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5045,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5047,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:5051,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5052,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5055,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5056,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5058,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5061,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5063,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5064,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5065,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/bytecodes.c:5066,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5068,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5071,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5072,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5073,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5074,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5076,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5076,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5076,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5079,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5086,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5096,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5097,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5099,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5102,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5103,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5104,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:5106,1
    - Dst: LOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:5106,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5107,1
    - Dst: _PyList_AppendTakeRef
      Src: /src/cpython/Python/bytecodes.c:5108,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5108,1
    - Dst: UNLOCK_OBJECT
      Src: /src/cpython/Python/bytecodes.c:5109,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5111,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5115,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5116,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5120,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5121,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5123,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:5123,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5124,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5126,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5129,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5130,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5131,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5132,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:5132,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5135,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5136,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5140,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5143,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5145,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5146,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/bytecodes.c:5147,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/bytecodes.c:5148,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5149,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5149,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5151,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:5156,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5157,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5160,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5161,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/bytecodes.c:5161,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5165,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5166,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5168,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5169,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/bytecodes.c:5170,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/bytecodes.c:5171,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5172,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5172,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5174,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:5179,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5180,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5183,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5195,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5196,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5198,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:5198,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5199,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5202,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5206,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5207,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5208,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:5208,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5211,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5212,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5217,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5221,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5222,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5223,1
    - Dst: _PyCFunctionFastWithKeywords_CAST
      Src: /src/cpython/Python/bytecodes.c:5224,1
    - Dst: _PyCallMethodDescriptorFastWithKeywords_StackRef
      Src: /src/cpython/Python/bytecodes.c:5225,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5233,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5236,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5237,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5241,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5242,1
    - Dst: _PyCFunctionFastWithKeywords_CAST
      Src: /src/cpython/Python/bytecodes.c:5243,1
    - Dst: _PyCallMethodDescriptorFastWithKeywords_StackRef
      Src: /src/cpython/Python/bytecodes.c:5244,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5252,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5255,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5256,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5259,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5269,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5270,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5272,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:5272,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5273,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5275,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5278,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5279,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5280,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5281,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:5281,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5284,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5285,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5288,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5288,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5289,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5293,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5294,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/bytecodes.c:5296,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/bytecodes.c:5297,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5298,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5298,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5300,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:5304,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5305,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5309,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5311,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5312,1
    - Dst: _PyCFunction_TrampolineCall
      Src: /src/cpython/Python/bytecodes.c:5314,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/bytecodes.c:5315,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5316,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5316,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5318,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:5322,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5323,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5326,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5337,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5338,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5341,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:5341,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5342,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5344,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5347,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5348,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5349,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5350,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/bytecodes.c:5350,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5353,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5354,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5359,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5363,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5364,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5365,1
    - Dst: _PyCFunctionFast_CAST
      Src: /src/cpython/Python/bytecodes.c:5366,1
    - Dst: _PyCallMethodDescriptorFast_StackRef
      Src: /src/cpython/Python/bytecodes.c:5367,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5375,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5378,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5379,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5383,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5384,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/bytecodes.c:5385,1
    - Dst: _PyCFunctionFast_CAST
      Src: /src/cpython/Python/bytecodes.c:5386,1
    - Dst: _PyCallMethodDescriptorFast_StackRef
      Src: /src/cpython/Python/bytecodes.c:5387,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5395,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5398,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5399,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5402,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:5412,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5418,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5419,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5422,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5425,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5430,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/bytecodes.c:5431,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5434,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5437,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/bytecodes.c:5438,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5438,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5439,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:5441,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:5444,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5445,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5449,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5450,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5451,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5456,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:5460,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5462,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/bytecodes.c:5463,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/bytecodes.c:5466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bytecodes.c:5467,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/bytecodes.c:5467,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/bytecodes.c:5468,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5472,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5473,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5474,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5475,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:5477,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5481,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5483,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/bytecodes.c:5485,1
    - Dst: _Py_VectorCallInstrumentation_StackRefSteal
      Src: /src/cpython/Python/bytecodes.c:5487,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5496,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5497,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5498,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5499,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5500,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5501,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5504,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5505,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5510,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5514,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:5515,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5516,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5516,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/bytecodes.c:5517,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bytecodes.c:5518,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/bytecodes.c:5518,1
    - Dst: _PyEvalFramePushAndInit
      Src: /src/cpython/Python/bytecodes.c:5519,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5523,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5526,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5527,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5528,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:5529,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5530,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:5531,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5534,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5535,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5536,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:5536,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5538,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5541,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5551,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5552,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5554,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5554,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5556,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:5556,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5557,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5558,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5558,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5561,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5562,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5562,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5564,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5565,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5565,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:5566,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:5567,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5568,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/bytecodes.c:5568,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5569,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5572,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:5585,1
    - Dst: _Py_Specialize_CallKw
      Src: /src/cpython/Python/bytecodes.c:5587,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5587,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:5588,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:5590,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:5591,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5595,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5601,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5608,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5609,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5610,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:5610,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5611,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5611,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5615,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5617,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5621,1
    - Dst: _Py_VectorCall_StackRefSteal
      Src: /src/cpython/Python/bytecodes.c:5625,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5630,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5631,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5632,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5633,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5634,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5635,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5638,1
    - Dst: family
      Src: /src/cpython/Python/bytecodes.c:5645,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5650,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5651,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5652,1
    - Dst: _Py_Check_ArgsIterable
      Src: /src/cpython/Python/bytecodes.c:5653,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5653,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5655,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/bytecodes.c:5657,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5659,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5662,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5663,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5667,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5669,1
    - Dst: EVAL_CALL_STAT_INC_IF_FUNCTION
      Src: /src/cpython/Python/bytecodes.c:5673,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5675,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:5675,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5677,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5678,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5679,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5679,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5680,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5680,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:5681,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bytecodes.c:5682,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/bytecodes.c:5683,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5687,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/bytecodes.c:5689,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:5691,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/bytecodes.c:5691,1
    - Dst: _Py_call_instrumentation_exc2
      Src: /src/cpython/Python/bytecodes.c:5693,1
    - Dst: _Py_call_instrumentation_2args
      Src: /src/cpython/Python/bytecodes.c:5698,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bytecodes.c:5702,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5708,1
    - Dst: IS_PEP523_HOOKED
      Src: /src/cpython/Python/bytecodes.c:5709,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5711,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5712,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5712,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5713,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5713,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5714,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5714,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:5715,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/bytecodes.c:5716,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bytecodes.c:5717,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/bytecodes.c:5717,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Python/bytecodes.c:5719,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:5723,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:5724,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5726,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5728,1
    - Dst: DISPATCH_INLINED
      Src: /src/cpython/Python/bytecodes.c:5730,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5732,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5733,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5733,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5734,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5735,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5735,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/bytecodes.c:5736,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:5738,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5739,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5740,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5741,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5742,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5743,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:5748,1
    - Dst: _Py_Specialize_CallFunctionEx
      Src: /src/cpython/Python/bytecodes.c:5750,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:5751,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:5753,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:5754,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5758,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5764,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5765,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5766,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5766,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5767,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5770,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5771,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5772,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5773,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5773,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5774,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5774,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5775,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:5776,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5776,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5777,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5777,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bytecodes.c:5778,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/bytecodes.c:5779,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bytecodes.c:5780,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/cpython/Python/bytecodes.c:5780,1
    - Dst: _PyEvalFramePushAndInit_Ex
      Src: /src/cpython/Python/bytecodes.c:5782,1
    - Dst: INPUTS_DEAD
      Src: /src/cpython/Python/bytecodes.c:5785,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:5786,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5788,1
    - Dst: PyStackRef_Wrap
      Src: /src/cpython/Python/bytecodes.c:5790,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5793,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5803,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5804,1
    - Dst: EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:5805,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bytecodes.c:5805,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5808,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5809,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5810,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5812,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5812,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5813,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5814,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5814,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/bytecodes.c:5815,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:5816,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5817,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5818,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5819,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5820,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5821,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5824,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5831,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5837,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5838,1
    - Dst: PyFunction_New
      Src: /src/cpython/Python/bytecodes.c:5841,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:5841,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5844,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5847,1
    - Dst: _PyFunction_SetVersion
      Src: /src/cpython/Python/bytecodes.c:5849,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5851,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5854,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5856,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5857,1
    - Dst: PyStackRef_AsPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5858,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5860,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5861,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bytecodes.c:5861,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5863,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5865,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5869,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5870,1
    - Dst: PyStackRef_FunctionCheck
      Src: /src/cpython/Python/bytecodes.c:5870,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5871,1
    - Dst: _Py_MakeCoro
      Src: /src/cpython/Python/bytecodes.c:5872,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5873,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5874,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/bytecodes.c:5874,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/bytecodes.c:5875,1
    - Dst: _PyFrame_Copy
      Src: /src/cpython/Python/bytecodes.c:5878,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5879,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/bytecodes.c:5882,1
    - Dst: _PyThreadState_PopFrame
      Src: /src/cpython/Python/bytecodes.c:5884,1
    - Dst: LOAD_IP
      Src: /src/cpython/Python/bytecodes.c:5886,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:5887,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:5888,1
    - Dst: LLTRACE_RESUME_FRAME
      Src: /src/cpython/Python/bytecodes.c:5889,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5892,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5893,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5894,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5895,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/bytecodes.c:5896,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:5897,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5898,1
    - Dst: PyStackRef_FromPyObjectStealMortal
      Src: /src/cpython/Python/bytecodes.c:5899,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5902,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5904,1
    - Dst: conv_fn
      Src: /src/cpython/Python/bytecodes.c:5906,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5906,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5907,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5908,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5909,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5912,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5913,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/bytecodes.c:5916,1
    - Dst: PyObject_Format
      Src: /src/cpython/Python/bytecodes.c:5917,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:5918,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5919,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5920,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5924,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5928,1
    - Dst: PyObject_Format
      Src: /src/cpython/Python/bytecodes.c:5929,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5929,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5929,1
    - Dst: DECREF_INPUTS
      Src: /src/cpython/Python/bytecodes.c:5930,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:5931,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5932,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5935,1
    - Dst: PyStackRef_DUP
      Src: /src/cpython/Python/bytecodes.c:5936,1
    - Dst: ADAPTIVE_COUNTER_TRIGGERS
      Src: /src/cpython/Python/bytecodes.c:5941,1
    - Dst: _Py_Specialize_BinaryOp
      Src: /src/cpython/Python/bytecodes.c:5943,1
    - Dst: DISPATCH_SAME_OPARG
      Src: /src/cpython/Python/bytecodes.c:5944,1
    - Dst: OPCODE_DEFERRED_INC
      Src: /src/cpython/Python/bytecodes.c:5946,1
    - Dst: ADVANCE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:5947,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5949,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5950,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:5953,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5954,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:5955,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:5957,1
    - Dst: ERROR_NO_POP
      Src: /src/cpython/Python/bytecodes.c:5960,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:5962,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5965,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:5966,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:5969,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5971,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:5978,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:5981,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:5982,1
    - Dst: _Py_call_instrumentation_line
      Src: /src/cpython/Python/bytecodes.c:5986,1
    - Dst: SYNC_SP
      Src: /src/cpython/Python/bytecodes.c:5994,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:5995,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:6002,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/bytecodes.c:6005,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:6008,1
    - Dst: _Py_call_instrumentation_instruction
      Src: /src/cpython/Python/bytecodes.c:6009,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:6011,1
    - Dst: PAUSE_ADAPTIVE_COUNTER
      Src: /src/cpython/Python/bytecodes.c:6014,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6016,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/bytecodes.c:6018,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:6021,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:6022,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:6025,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:6026,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:6029,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:6031,1
    - Dst: macro
      Src: /src/cpython/Python/bytecodes.c:6034,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:6039,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6040,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/bytecodes.c:6040,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/bytecodes.c:6041,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6042,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/bytecodes.c:6043,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:6045,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:6049,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6050,1
    - Dst: PyStackRef_BoolCheck
      Src: /src/cpython/Python/bytecodes.c:6050,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/bytecodes.c:6051,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6052,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/bytecodes.c:6053,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:6055,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:6059,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:6060,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/bytecodes.c:6061,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6063,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:6064,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:6067,1
    - Dst: inst
      Src: /src/cpython/Python/bytecodes.c:6071,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:6072,1
    - Dst: RECORD_BRANCH_TAKEN
      Src: /src/cpython/Python/bytecodes.c:6073,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:6075,1
    - Dst: INSTRUMENTED_JUMP
      Src: /src/cpython/Python/bytecodes.c:6076,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6079,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6084,1
    - Dst: PRE_DISPATCH_GOTO
      Src: /src/cpython/Python/bytecodes.c:6087,1
    - Dst: DISPATCH_GOTO
      Src: /src/cpython/Python/bytecodes.c:6088,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6092,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/bytecodes.c:6093,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6097,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/bytecodes.c:6098,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:6103,1
    - Dst: PyStackRef_IsTrue
      Src: /src/cpython/Python/bytecodes.c:6104,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6105,1
    - Dst: AT_END_EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:6106,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:6109,1
    - Dst: PyStackRef_IsFalse
      Src: /src/cpython/Python/bytecodes.c:6110,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6111,1
    - Dst: AT_END_EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:6112,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:6115,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6122,1
    - Dst: AT_END_EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:6123,1
    - Dst: replicate
      Src: /src/cpython/Python/bytecodes.c:6126,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6133,1
    - Dst: AT_END_EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:6134,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:6137,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:6138,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:6140,1
    - Dst: AT_END_EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:6141,1
    - Dst: DEAD
      Src: /src/cpython/Python/bytecodes.c:6143,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:6146,1
    - Dst: PyStackRef_IsNone
      Src: /src/cpython/Python/bytecodes.c:6147,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:6148,1
    - Dst: AT_END_EXIT_IF
      Src: /src/cpython/Python/bytecodes.c:6149,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:6152,1
    - Dst: JUMP_TO_JUMP_TARGET
      Src: /src/cpython/Python/bytecodes.c:6153,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6161,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:6162,1
    - Dst: _PyThreadState_HasStackSpace
      Src: /src/cpython/Python/bytecodes.c:6162,1
    - Dst: op
      Src: /src/cpython/Python/bytecodes.c:6165,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:6178,1
    - Dst: OPT_HIST
      Src: /src/cpython/Python/bytecodes.c:6180,1
    - Dst: printf
      Src: /src/cpython/Python/bytecodes.c:6182,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/bytecodes.c:6183,1
    - Dst: printf
      Src: /src/cpython/Python/bytecodes.c:6184,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:6186,1
    - Dst: TIER2_TO_TIER2
      Src: /src/cpython/Python/bytecodes.c:6191,1
    - Dst: OPT_HIST
      Src: /src/cpython/Python/bytecodes.c:6198,1
    - Dst: printf
      Src: /src/cpython/Python/bytecodes.c:6200,1
    - Dst: _PyUOpPrint
      Src: /src/cpython/Python/bytecodes.c:6201,1
    - Dst: printf
      Src: /src/cpython/Python/bytecodes.c:6202,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:6204,1
    - Dst: GOTO_TIER_ONE
      Src: /src/cpython/Python/bytecodes.c:6210,1
    - Dst: DEOPT_IF
      Src: /src/cpython/Python/bytecodes.c:6214,1
    - Dst: PyStackRef_FromPyObjectNew
      Src: /src/cpython/Python/bytecodes.c:6218,1
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:6222,1
    CyclomaticComplexity: 344
    EdgeCount: 344
    ICount: 3321
    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: (PyAnySet_CheckExact(right_o))
      pos:
        line_end: 3416
        line_start: 3416
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 5515
        line_start: 5515
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1419
        line_start: 1419
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (STACK_LEVEL() == 0)
      pos:
        line_end: 1570
        line_start: 1570
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg >= FVC_STR && oparg <= FVC_ASCII)
      pos:
        line_end: 5903
        line_start: 5903
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 675
        line_start: 675
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 2984
        line_start: 2984
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 2473
        line_start: 2473
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 800
        line_start: 800
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 2065
        line_start: 2065
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (index < DK_SIZE(keys))
      pos:
        line_end: 2350
        line_start: 2350
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->frame_obj == NULL)
      pos:
        line_end: 5878
        line_start: 5878
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyObject_IsUniquelyReferenced((PyObject *)r))
      pos:
        line_end: 4097
        line_start: 4097
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 3662
        line_start: 3662
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (executor->vm_data.code == code)
      pos:
        line_end: 3630
        line_start: 3630
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 3632
        line_start: 3632
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 5561
        line_start: 5561
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!(oparg & 1))
      pos:
        line_end: 2782
        line_start: 2782
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyAsyncGenASend_CheckExact(iter_o))
      pos:
        line_end: 1828
        line_start: 1828
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (r->len > 0)
      pos:
        line_end: 4120
        line_start: 4120
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(attrs_o))
      pos:
        line_end: 3716
        line_start: 3716
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg >= 0 && oparg <= 2)
      pos:
        line_end: 1914
        line_start: 1914
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == co->co_nfreevars)
      pos:
        line_end: 2476
        line_start: 2476
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (descr != NULL)
      pos:
        line_end: 4297
        line_start: 4297
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(callable_o) == &PyMethod_Type)
      pos:
        line_end: 5564
        line_start: 5564
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_MANAGED_DICT)
      pos:
        line_end: 3185
        line_start: 3185
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg <= NB_OPARG_LAST)
      pos:
        line_end: 5949
        line_start: 5949
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 1)
      pos:
        line_end: 5102
        line_start: 5102
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (descr != NULL)
      pos:
        line_end: 4314
        line_start: 4314
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 6039
        line_start: 6039
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFunction_Check(getitem_o))
      pos:
        line_end: 1347
        line_start: 1347
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 1420
        line_start: 1420
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((!PyStackRef_IsNull(res)) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 5075
        line_start: 5075
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg < NUM_COMMON_CONSTANTS)
      pos:
        line_end: 1975
        line_start: 1975
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 5734
        line_start: 5734
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(list_o) == &PyList_Type)
      pos:
        line_end: 3976
        line_start: 3976
        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: 1943
        line_start: 1943
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1214
        line_start: 1214
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (func_version != 0)
      pos:
        line_end: 3115
        line_start: 3115
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(list_o))
      pos:
        line_end: 3998
        line_start: 3998
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_FunctionCheck(frame->f_funcobj))
      pos:
        line_end: 5869
        line_start: 5869
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 5776
        line_start: 5776
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (i >= 0 && i <= INT_MAX)
      pos:
        line_end: 1871
        line_start: 1871
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_GET_SIZE(seq_o) == oparg)
      pos:
        line_end: 2110
        line_start: 2110
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 947
        line_start: 947
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg <= INSTR_OFFSET())
      pos:
        line_end: 3694
        line_start: 3694
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyFrame_IsIncomplete(frame))
      pos:
        line_end: 1538
        line_start: 1538
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (throwflag)
      pos:
        line_end: 1956
        line_start: 1956
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyEval_BinaryOps[oparg])
      pos:
        line_end: 5956
        line_start: 5956
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1849
        line_start: 1849
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 1541
        line_start: 1541
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(value_o))
      pos:
        line_end: 548
        line_start: 548
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 2690
        line_start: 2690
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_FunctionCheck(callable))
      pos:
        line_end: 5567
        line_start: 5567
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 1)
      pos:
        line_end: 4719
        line_start: 4719
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg & 1)
      pos:
        line_end: 4351
        line_start: 4351
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 4615
        line_start: 4615
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (gen_frame->previous == NULL)
      pos:
        line_end: 1684
        line_start: 1684
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_IS_TYPE(getattribute, &PyFunction_Type))
      pos:
        line_end: 3113
        line_start: 3113
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_IsCompact((PyLongObject *)left_o))
      pos:
        line_end: 3316
        line_start: 3316
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (opcode != INSTRUMENTED_CALL)
      pos:
        line_end: 4581
        line_start: 4581
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (val_o && PyExceptionInstance_Check(val_o))
      pos:
        line_end: 4200
        line_start: 4200
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 4053
        line_start: 4053
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 3189
        line_start: 3189
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((size_t)i < (size_t)PyTuple_GET_SIZE(tuple_o))
      pos:
        line_end: 4074
        line_start: 4074
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (framesize <= INT_MAX)
      pos:
        line_end: 6160
        line_start: 6160
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 1)
      pos:
        line_end: 4742
        line_start: 4742
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(seq_o))
      pos:
        line_end: 2126
        line_start: 2126
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (res_o != NULL)
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 1 || !PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 5287
        line_start: 5287
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_IsTaggedInt(null_or_index))
      pos:
        line_end: 4047
        line_start: 4047
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!PyFloat_CheckExact(res_o) || Py_REFCNT(res_o) == 1)
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INLINE_CACHE_ENTRIES_SEND == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 1867
        line_start: 1867
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (STACK_LEVEL() <= 2)
      pos:
        line_end: 5873
        line_start: 5873
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 5811
        line_start: 5811
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_REFCNT(left_o) >= 2 || !PyStackRef_IsHeapSafe(left))
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 4328
        line_start: 4328
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 4354
        line_start: 4354
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 1)
      pos:
        line_end: 5308
        line_start: 5308
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (res_o != NULL)
      pos:
        line_end: 1155
        line_start: 1155
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(dict)->tp_as_mapping->mp_ass_subscript == _PyDict_StoreSubscript)
      pos:
        line_end: 1467
        line_start: 1467
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 5315
        line_start: 5315
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 1268
        line_start: 1268
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (next_opcode > 0 && next_opcode < 256)
      pos:
        line_end: 6015
        line_start: 6015
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFunction_Check(callable_o))
      pos:
        line_end: 4525
        line_start: 4525
        source_file: /src/cpython/Python/bytecodes.c
    - condition: "(_Py_IsOwnedByCurrentThread(list_o) ||\n                   _PyObject_GC_IS_SHARED(list_o))"
      pos:
        line_end: 4001
        line_start: 4000
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 4312
        line_start: 4312
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 691
        line_start: 691
        source_file: /src/cpython/Python/bytecodes.c
    - condition: "(_PyLong_DigitCount((PyLongObject *)left_o) <= 1 &&\n                   _PyLong_DigitCount((PyLongObject
        *)right_o) <= 1)"
      pos:
        line_end: 3320
        line_start: 3319
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 821
        line_start: 821
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1141
        line_start: 1141
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 969
        line_start: 969
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 1193
        line_start: 1193
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (next_instr->op.code == STORE_FAST)
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFunction_Check(callable_o))
      pos:
        line_end: 4630
        line_start: 4630
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 1)
      pos:
        line_end: 4770
        line_start: 4770
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (type_version != 0)
      pos:
        line_end: 3061
        line_start: 3061
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyDict_CheckExact((PyObject *)dict))
      pos:
        line_end: 2988
        line_start: 2988
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 5711
        line_start: 5711
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyObject_IsUniquelyReferenced(seq_o))
      pos:
        line_end: 2111
        line_start: 2111
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tp->tp_flags & Py_TPFLAGS_HEAPTYPE)
      pos:
        line_end: 4804
        line_start: 4804
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyExceptionInstance_Check(left_o))
      pos:
        line_end: 3477
        line_start: 3477
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((match_o == NULL) == (rest_o == NULL))
      pos:
        line_end: 3463
        line_start: 3463
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tp->tp_new == PyBaseObject_Type.tp_new)
      pos:
        line_end: 4803
        line_start: 4803
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(left_o) == &PyLong_Type)
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (type_version != 0)
      pos:
        line_end: 2902
        line_start: 2902
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(PyStackRef_AsPyObjectBorrow(owner))->tp_dictoffset == 0)
      pos:
        line_end: 4295
        line_start: 4295
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tp->tp_alloc == PyType_GenericAlloc)
      pos:
        line_end: 4805
        line_start: 4805
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(callable_o) == &PyMethod_Type)
      pos:
        line_end: 4553
        line_start: 4553
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 4066
        line_start: 4066
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_IsNone(none))
      pos:
        line_end: 1770
        line_start: 1770
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (0 && "Executing RESERVED instruction.")
      pos:
        line_end: 6096
        line_start: 6096
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (opcode != INSTRUMENTED_CALL)
      pos:
        line_end: 5616
        line_start: 5616
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 5044
        line_start: 5044
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg >> 5) == Py_EQ || (oparg >> 5) == Py_NE)
      pos:
        line_end: 3340
        line_start: 3340
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 4262
        line_start: 4262
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(list_o))
      pos:
        line_end: 4022
        line_start: 4022
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INSTRUCTION_SIZE + oparg <= UINT16_MAX)
      pos:
        line_end: 1682
        line_start: 1682
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(PyStackRef_AsPyObjectBorrow(owner))->tp_dictoffset == 0)
      pos:
        line_end: 4329
        line_start: 4329
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_BoolCheck(cond))
      pos:
        line_end: 6049
        line_start: 6049
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(callable_o) == &PyFunction_Type)
      pos:
        line_end: 4501
        line_start: 4501
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 4279
        line_start: 4279
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner == FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1537
        line_start: 1537
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (index < FT_ATOMIC_LOAD_SSIZE_RELAXED(keys->dk_nentries))
      pos:
        line_end: 2958
        line_start: 2958
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(dict)->tp_as_mapping->mp_subscript == _PyDict_Subscript)
      pos:
        line_end: 1329
        line_start: 1329
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg < _PY_NSMALLPOSINTS)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 3112
        line_start: 3112
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(value_o) == &PyLong_Type)
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(right_o))
      pos:
        line_end: 781
        line_start: 781
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INSTRUCTION_SIZE + oparg <= UINT16_MAX)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (descr != NULL)
      pos:
        line_end: 3067
        line_start: 3067
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (self != NULL)
      pos:
        line_end: 5363
        line_start: 5363
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (*ptr == NULL)
      pos:
        line_end: 5864
        line_start: 5864
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (0 && "Executing a cache.")
      pos:
        line_end: 6091
        line_start: 6091
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg < 3)
      pos:
        line_end: 1524
        line_start: 1524
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_FunctionCheck(callable))
      pos:
        line_end: 4557
        line_start: 4557
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyFrame_GetBytecode(shim)[1].op.code == RETURN_VALUE)
      pos:
        line_end: 4826
        line_start: 4826
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg & 1) == 0)
      pos:
        line_end: 3089
        line_start: 3089
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(tuple))
      pos:
        line_end: 1255
        line_start: 1255
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyAnyDict_CheckExact(right_o))
      pos:
        line_end: 3435
        line_start: 3435
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 5813
        line_start: 5813
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_BothAreCompact((PyLongObject *)left_o, (PyLongObject *)right_o))
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (opcode == SEND || opcode == FOR_ITER)
      pos:
        line_end: 1873
        line_start: 1873
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 3118
        line_start: 3118
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (self != NULL)
      pos:
        line_end: 5221
        line_start: 5221
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (d && d->guard == NULL && d->lhs_type != NULL)
      pos:
        line_end: 1014
        line_start: 1014
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg & 1)
      pos:
        line_end: 2809
        line_start: 2809
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 2957
        line_start: 2957
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 2109
        line_start: 2109
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (NB_ADD <= oparg)
      pos:
        line_end: 5948
        line_start: 5948
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(dict)->tp_as_mapping->mp_ass_subscript == _PyDict_StoreSubscript)
      pos:
        line_end: 1452
        line_start: 1452
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_IS_TYPE(fget, &PyFunction_Type))
      pos:
        line_end: 3090
        line_start: 3090
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(tuple_o) == &PyTuple_Type)
      pos:
        line_end: 4072
        line_start: 4072
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!PyStackRef_IsNull(GETLOCAL(oparg)))
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 1918
        line_start: 1918
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (d && d->guard == NULL && d->rhs_type != NULL)
      pos:
        line_end: 1022
        line_start: 1022
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (c < 128)
      pos:
        line_end: 1198
        line_start: 1198
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg >= 0 && oparg < _PyFrame_GetCode(frame)->co_nlocalsplus)
      pos:
        line_end: 2437
        line_start: 2437
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (temp->previous == frame || temp->previous->previous == frame)
      pos:
        line_end: 4666
        line_start: 4666
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 660
        line_start: 660
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1670
        line_start: 1670
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 4800
        line_start: 4800
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (self != NULL)
      pos:
        line_end: 5383
        line_start: 5383
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 5732
        line_start: 5732
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 2348
        line_start: 2348
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 1548
        line_start: 1548
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INSTRUCTION_SIZE == 1 + INLINE_CACHE_ENTRIES_CALL_FUNCTION_EX)
      pos:
        line_end: 5727
        line_start: 5727
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg & 1)
      pos:
        line_end: 4294
        line_start: 4294
        source_file: /src/cpython/Python/bytecodes.c
    - condition: "(PyStackRef_IsNull(value) || (!PyStackRef_RefcountOnObject(value))
        ||\n                _Py_IsImmortal((PyStackRef_AsPyObjectBorrow(value))))"
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 2339
        line_start: 2339
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(PyStackRef_AsPyObjectBorrow(names)))
      pos:
        line_end: 3710
        line_start: 3710
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(dict)->tp_as_mapping->mp_subscript == _PyDict_Subscript)
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (errfmt != NULL)
      pos:
        line_end: 4173
        line_start: 4173
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(right_o))
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (type_version != 0)
      pos:
        line_end: 2801
        line_start: 2801
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 5674
        line_start: 5674
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 5860
        line_start: 5860
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg & 1)
      pos:
        line_end: 4275
        line_start: 4275
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)))
      pos:
        line_end: 374
        line_start: 374
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 1041
        line_start: 1041
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (COMPARISON_NOT_EQUALS + 1 == COMPARISON_EQUALS)
      pos:
        line_end: 3347
        line_start: 3347
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 5713
        line_start: 5713
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyObject_GetManagedDict(owner_o) == NULL)
      pos:
        line_end: 3155
        line_start: 3155
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_IsTaggedInt(null_or_index))
      pos:
        line_end: 3962
        line_start: 3962
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 4095
        line_start: 4095
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyLong_IsCompact((PyLongObject *)right_o))
      pos:
        line_end: 3317
        line_start: 3317
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(val_o))
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 0 || oparg == 1)
      pos:
        line_end: 1853
        line_start: 1853
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 2)
      pos:
        line_end: 5164
        line_start: 5164
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!d->result_unique || Py_REFCNT(res_o) == 1 || _Py_IsImmortal(res_o))
      pos:
        line_end: 1051
        line_start: 1051
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (code->co_argcount == 2)
      pos:
        line_end: 1351
        line_start: 1351
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyFrame_GetBytecode(shim)[0].op.code == EXIT_INIT_CHECK)
      pos:
        line_end: 4825
        line_start: 4825
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 2)
      pos:
        line_end: 2063
        line_start: 2063
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (((PyFunctionObject *)func)->vectorcall == _PyFunction_Vectorcall)
      pos:
        line_end: 5774
        line_start: 5774
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(right)))
      pos:
        line_end: 970
        line_start: 970
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyObject_IsUniquelyReferenced(val_o))
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 3143
        line_start: 3143
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_IsTaggedInt(lasti))
      pos:
        line_end: 4206
        line_start: 4206
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (type_version != 0)
      pos:
        line_end: 2896
        line_start: 2896
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (exc && PyExceptionInstance_Check(exc))
      pos:
        line_end: 1929
        line_start: 1929
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (exc_value && PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 1958
        line_start: 1958
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
      pos:
        line_end: 4298
        line_start: 4298
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyType_Check(callable_o))
      pos:
        line_end: 4801
        line_start: 4801
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (d->result_type == NULL || Py_TYPE(res_o) == d->result_type)
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_flags & Py_TPFLAGS_INLINE_VALUES)
      pos:
        line_end: 2918
        line_start: 2918
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(list_o) == &PyList_Type)
      pos:
        line_end: 3991
        line_start: 3991
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (executor->vm_data.valid)
      pos:
        line_end: 3631
        line_start: 3631
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyList_CheckExact(list))
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyAsyncGenASend_CheckExact(iter_o))
      pos:
        line_end: 1802
        line_start: 1802
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg == 0)
      pos:
        line_end: 1529
        line_start: 1529
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 5678
        line_start: 5678
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 4927
        line_start: 4927
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 1215
        line_start: 1215
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg <= MAX_INTRINSIC_2)
      pos:
        line_end: 1504
        line_start: 1504
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((version & _PY_EVAL_EVENTS_MASK) == 0)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(seq_o))
      pos:
        line_end: 2097
        line_start: 2097
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INSTRUCTION_SIZE == 1 + INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 5482
        line_start: 5482
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(right_o))
      pos:
        line_end: 948
        line_start: 948
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 4110
        line_start: 4110
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (sizeof(iternextfunc) == sizeof(uintptr_t))
      pos:
        line_end: 3876
        line_start: 3876
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg <= MAX_INTRINSIC_1)
      pos:
        line_end: 1491
        line_start: 1491
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_ExceptionInstanceCheck(exc))
      pos:
        line_end: 4254
        line_start: 4254
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_IsNone(none_val))
      pos:
        line_end: 2560
        line_start: 2560
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 5171
        line_start: 5171
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (dict != NULL)
      pos:
        line_end: 2954
        line_start: 2954
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg >> 5) <= Py_GE)
      pos:
        line_end: 3268
        line_start: 3268
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PySlice_Check(sub))
      pos:
        line_end: 1171
        line_start: 1171
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (descr != NULL)
      pos:
        line_end: 4278
        line_start: 4278
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 5772
        line_start: 5772
        source_file: /src/cpython/Python/bytecodes.c
    - condition: "(_Py_IsOwnedByCurrentThread((PyObject *)list_o) ||\n                   _PyObject_GC_IS_SHARED(list_o))"
      pos:
        line_end: 4025
        line_start: 4024
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(sub))
      pos:
        line_end: 1254
        line_start: 1254
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((oparg & 0xf) == COMPARISON_NOT_EQUALS || (oparg & 0xf) == COMPARISON_EQUALS)
      pos:
        line_end: 3346
        line_start: 3346
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (d != NULL)
      pos:
        line_end: 1031
        line_start: 1031
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame == &entry.frame)
      pos:
        line_end: 1544
        line_start: 1544
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1)
      pos:
        line_end: 1852
        line_start: 1852
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyUnicode_CheckExact(left_o))
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyFloat_CheckExact(left_o))
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_BoolCheck(value))
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 5148
        line_start: 5148
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (offset != 0)
      pos:
        line_end: 5862
        line_start: 5862
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_UntagInt(null_or_index) < PyList_GET_SIZE(list_o))
      pos:
        line_end: 4032
        line_start: 4032
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 2917
        line_start: 2917
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(owner_o)->tp_dictoffset < 0)
      pos:
        line_end: 3142
        line_start: 3142
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (descr != NULL)
      pos:
        line_end: 4331
        line_start: 4331
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyStackRef_IsNull(self_or_null))
      pos:
        line_end: 4552
        line_start: 4552
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(func) == &PyFunction_Type)
      pos:
        line_end: 5773
        line_start: 5773
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (class_dict)
      pos:
        line_end: 2436
        line_start: 2436
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyTuple_CheckExact(callargs))
      pos:
        line_end: 5679
        line_start: 5679
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (_PyObject_IsUniquelyReferenced((PyObject *)r))
      pos:
        line_end: 4118
        line_start: 4118
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (oparg)
      pos:
        line_end: 6083
        line_start: 6083
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (eq == 0 || eq == 1)
      pos:
        line_end: 3345
        line_start: 3345
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (descr != NULL)
      pos:
        line_end: 4353
        line_start: 4353
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (keys->dk_kind == DICT_KEYS_UNICODE)
      pos:
        line_end: 2368
        line_start: 2368
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!IS_PEP523_HOOKED(tstate))
      pos:
        line_end: 4661
        line_start: 4661
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (INLINE_CACHE_ENTRIES_BINARY_OP == 5)
      pos:
        line_end: 1030
        line_start: 1030
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (Py_TYPE(r) == &PyRangeIter_Type)
      pos:
        line_end: 4116
        line_start: 4116
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 4172
        line_start: 4172
        source_file: /src/cpython/Python/bytecodes.c
    - condition: ((res_o != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 5297
        line_start: 5297
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (old_value != NULL)
      pos:
        line_end: 1438
        line_start: 1438
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (PyLong_CheckExact(left_o))
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6223
      start: 84
    functionDepth: 19
    functionLinenumber: 84
    functionLinenumberEnd: 6223
    functionName: dummy_func
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 0
    functionsReached:
    - _Py_Specialize_BinaryOp
    - PyStackRef_TYPE
    - GOTO_TIER_ONE
    - PyStackRef_FromPyObjectNew
    - _PyEval_LoadGlobalStackRef
    - Py_INCREF
    - SAVE_STACK
    - _PyTuple_ITEMS
    - op
    - AT_END_EXIT_IF
    - PyLong_FromLong
    - _Py_Specialize_StoreAttr
    - _PyFrame_GetBytecode
    - PyObject_Call
    - _PyBinaryOpSpecializationDescr*::guard
    - ERROR_IF
    - _PyList_GetItemRefNoLock
    - PyStackRef_FromPyObjectSteal
    - _PyTemplate_Build
    - STAT_INC
    - _PyCompactLong_Multiply
    - _PyForIter_VirtualIteratorNext
    - _Py_atomic_load_uintptr_relaxed
    - PyStackRef_IsHeapSafe
    - _PyEval_SpecialMethodCanSuggest
    - _Py_SINGLETON
    - PyObject_SetItem
    - _PyLong_CompactValue
    - TIER2_TO_TIER2
    - _PyEval_FormatKwargsError
    - SYNC_SP
    - _PyFrame_IsIncomplete
    - _PyCallMethodDescriptorFast_StackRef
    - DEOPT_IF
    - PyStackRef_FromPyObjectStealMortal
    - PyList_GET_SIZE
    - PyStackRef_XCLOSE
    - backoff_counter_triggers
    - Py_TYPE
    - FLOAT_INPLACE_DIVOP
    - PyStackRef_ExceptionInstanceCheck
    - _PyEval_LoadName
    - _Py_Check_ArgsIterable
    - FT_ATOMIC_LOAD_UINT8
    - EVAL_CALL_STAT_INC_IF_FUNCTION
    - PySet_New
    - _Py_Specialize_ContainsOp
    - _Py_Specialize_Send
    - PyObject_Str
    - _PyThreadState_HasStackSpace
    - FT_ATOMIC_STORE_UINT8_RELAXED
    - PyFunction_Check
    - _PyLong_IsZero
    - _PyLong_IsNonNegativeCompact
    - _PyDict_Subscript
    - PAUSE_ADAPTIVE_COUNTER
    - _Py_BuiltinCallFast_StackRef
    - do_raise
    - _PyCFunctionFastWithKeywords_CAST
    - _PyJit_EnterExecutorShouldStopTracing
    - Py_ARRAY_LENGTH
    - INSTRUMENTED_JUMP
    - _Py_Specialize_Resume
    - _Py_Specialize_LoadGlobal
    - FT_ATOMIC_LOAD_PTR
    - monitor_stop_iteration
    - _PyDict_LoadGlobal
    - PyStackRef_TagInt
    - PyDict_SetItem
    - LLTRACE_RESUME_FRAME
    - PyType_GenericAlloc
    - PyErr_Format
    - Py_Is
    - _Py_VectorCallInstrumentation_StackRefSteal
    - _PyFrame_SetStackPointer
    - _Py_Specialize_CallKw
    - _PyEval_ImportFrom
    - PyCFunction_GET_FLAGS
    - _PyEval_MonitorRaise
    - PyStackRef_CLOSE_SPECIALIZED
    - PyErr_SetHandledException
    - _Py_BuiltinCallFastWithKeywords_StackRef
    - JUMP_TO_JUMP_TARGET
    - PyObject_IsTrue
    - _Py_LoadAttr_StackRefSteal
    - check_periodics
    - _PyEval_GetIter
    - _Py_STR
    - PyErr_SetString
    - DISPATCH_GOTO
    - _PyEval_FrameClearAndPop
    - PyObject_HasAttrWithError
    - PyStackRef_CLOSE
    - _PyEval_MatchKeys
    - Py_SETREF
    - GETITEM
    - PyStackRef_IsTrue
    - _PyErr_Clear
    - FT_ATOMIC_STORE_INT8_RELEASE
    - GETLOCAL
    - _PyDict_SetItem_Take2_KnownHash
    - _PyErr_SetRaisedException
    - assert
    - conv_fn
    - JUMPBY
    - EXIT_IF
    - _PyDict_NotifyEvent
    - restart_backoff_counter
    - FT_ATOMIC_LOAD_UINTPTR_ACQUIRE
    - _PyMapping_GetOptionalItem2
    - FT_ATOMIC_STORE_PTR_RELEASE
    - _Py_LeaveRecursiveCallPy
    - _PyEval_GetExecutableCode
    - _PyEval_LazyImportName
    - PyStackRef_UntagInt
    - PyDict_New
    - Py_FatalError
    - PyNumber_Negative
    - PyObject_GetAttr
    - PyStackRef_IncrementTaggedIntNoOverflow
    - _PyEval_CheckExceptStarTypeValid
    - LOCK_OBJECT
    - _Py_ID
    - _PySet_AddTakeRef
    - PyExceptionInstance_Class
    - PyCell_SetTakeRef
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - PyStackRef_Wrap
    - DECREF_INPUTS
    - _PyLong_BothAreCompact
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - _PyEvalFramePushAndInit
    - _Py_CallBuiltinClass_StackRef
    - replicate
    - Py_XDECREF
    - _PyObject_IsUniquelyReferenced
    - PyFrozenDict_CheckExact
    - PyStackRef_DUP
    - _Py_ReachedRecursionLimit
    - Py_REFCNT
    - PyCFunction_GET_SELF
    - _Py_DECREF_SPECIALIZED
    - PyDict_CheckExact
    - _PyList_GetItemRef
    - PyCell_SwapTakeRef
    - PyUnicode_CheckExact
    - DTRACE_FUNCTION_RETURN
    - PyStackRef_GenCheck
    - _PyDictValues_AddToInsertionOrder
    - PyList_CheckExact
    - _Py_call_instrumentation_exc2
    - RECORD_BRANCH_TAKEN
    - _PyBinaryOpSpecializationDescr*::action
    - _PyCompactLong_Subtract
    - PyFloat_FromDouble
    - _PyEval_LazyImportFrom
    - PyTuple_GET_SIZE
    - _PyEval_GetAwaitable
    - PyUnicode_1BYTE_DATA
    - PyUnicode_READ_CHAR
    - PyStackRef_IsTaggedInt
    - PyObject_Format
    - PyStackRef_Unwrap
    - PyLong_FromSsize_t
    - _PyFrame_PushTrampolineUnchecked
    - _PyFunction_SetVersion
    - PyObject_GC_UnTrack
    - _PyFrame_Copy
    - _PyAsyncGenASend_Send
    - _Py_Specialize_CompareOp
    - iternext_v
    - PyLong_CheckExact
    - PyExceptionInstance_Check
    - printf
    - _PyList_SliceSubscript
    - pseudo
    - DISPATCH_GOTO_NON_TRACING
    - PyStackRef_AsPyObjectBorrow
    - PyUnicode_Concat
    - _PySet_Update
    - _PyEval_MatchClass
    - BUILTINS
    - PyStackRef_IsFalse
    - PyObject_Length
    - _PyLong_DigitCount
    - PyException_GetTraceback
    - _PyInterpolation_Build
    - PySequence_Check
    - LOCALS
    - _Py_Specialize_LoadSuperAttr
    - _PyBuildSlice_ConsumeRefs
    - _Py_Specialize_CallFunctionEx
    - Py_DECREF
    - _PyTuple_FromStackRefStealOnSuccess
    - IS_PEP523_HOOKED
    - _PyList_AppendTakeRef
    - _PyImport_LoadLazyImportTstate
    - _Py_Specialize_GetIter
    - Py_XSETREF
    - _PyErr_Occurred
    - ADAPTIVE_COUNTER_TRIGGERS
    - PyStackRef_BoolCheck
    - _PySuper_Lookup
    - PyStackRef_MakeHeapSafe
    - PyFloat_AS_DOUBLE
    - ENTER_TRACING
    - PyList_GET_ITEM
    - _Py_Specialize_LoadAttr
    - _PyObject_GC_IS_SHARED
    - _PyEval_GetANext
    - inst
    - PyUnicode_IS_COMPACT_ASCII
    - PySet_CheckExact
    - _PyStolenTuple_Free
    - _Py_Specialize_Call
    - PyObject_DelAttr
    - DEAD
    - _PySet_Contains
    - PyCFunction_GET_FUNCTION
    - family
    - _PyObject_LookupSpecialMethod
    - LOAD_IP
    - PyErr_GivenExceptionMatches
    - _PyList_FromStackRefStealOnSuccess
    - PyCell_GetRef
    - PyFunction_GET_CODE
    - PyStackRef_AsPyObjectSteal
    - PyCell_New
    - PyFrozenSet_CheckExact
    - PyObject_DelItem
    - _PyErr_GetRaisedException
    - _PyCell_GetStackRef
    - PyNumber_Invert
    - PyStackRef_FromPyObjectBorrow
    - PyStackRef_FunctionCheck
    - _Py_Specialize_UnpackSequence
    - _PyCFunctionFast_CAST
    - OPT_HIST
    - _Py_call_instrumentation_2args
    - PyTuple_GetItem
    - PyFloat_CheckExact
    - IS_JIT_TRACING
    - FT_ATOMIC_LOAD_PTR_RELAXED
    - RELOAD_STACK
    - _PyType_HasFeature
    - PyCoro_CheckExact
    - _PyLong_IsCompact
    - COMPARISON_BIT
    - _Py_IsImmortal
    - ERROR_NO_POP
    - PySequence_Contains
    - _PyStackRef_CloseStack
    - PRE_DISPATCH_GOTO
    - _PyCompactLong_Add
    - DISPATCH
    - _PyErr_SetString
    - PyObject_GetIter
    - _PyGen_GetGeneratorFromFrame
    - _Py_Specialize_StoreSubscr
    - PyDict_Contains
    - PyStackRef_AsPyObjectNew
    - _Py_MakeCoro
    - _PyFrame_GetCode
    - GLOBALS
    - Py_IsNone
    - PyStackRef_RefcountOnObject
    - FT_ATOMIC_LOAD_SSIZE_RELAXED
    - PyLazyImport_CheckExact
    - func
    - _Py_BuildMap_StackRefSteal
    - _PyLong_CheckExactAndCompact
    - _PyTuple_BinarySlice
    - _Py_LeaveRecursiveCallTstate
    - PyFunction_GET_GLOBALS
    - PySequence_Tuple
    - PyType_Check
    - PyStackRef_IsNone
    - this_instr
    - PySlice_New
    - _Py_Specialize_ToBool
    - DK_UNICODE_ENTRIES
    - CALL_STAT_INC
    - _PyObject_GetManagedDict
    - _Py_call_instrumentation_line
    - _PyThreadState_PopFrame
    - DK_SIZE
    - CURRENT_OPERAND0_16
    - PyDict_Update
    - Py_IS_TYPE
    - _Py_Specialize_ForIter
    - PyObject_GetItem
    - _Py_IsOwnedByCurrentThread
    - LOAD_SP
    - _Py_Instrument
    - DISPATCH_INLINED
    - Py_CLEAR
    - _PyList_ITEMS
    - CALL_TP_ITERITEM_NO_ESCAPE
    - PyObject_IsInstance
    - _PyUOpPrint
    - PyStackRef_IsError
    - _PyFrame_PushUnchecked
    - DTRACE_FUNCTION_ENTRY
    - PyUnicode_Append
    - _Py_BuildString_StackRefSteal
    - _PyJit_TryInitializeTracing
    - PyCFunction_CheckExact
    - _PyDict_SubscriptKnownHash
    - _PyUnicode_BinarySlice
    - _PyObject_GetAttrStackRef
    - _PyList_BinarySlice
    - _PyCallMethodDescriptorFastWithKeywords_StackRef
    - _PyEval_FormatExcCheckArg
    - PyDict_Pop
    - PyType_HasFeature
    - PyStackRef_IsValid
    - _PyDict_MergeUniq
    - PyStackRef_IsNull
    - _PyCFunction_TrampolineCall
    - FLOAT_INPLACE_OP
    - _PyUnicode_Equal
    - UNLOCK_OBJECT
    - PyUnicode_GET_LENGTH
    - _PyEval_CheckExceptTypeValid
    - PySlice_Check
    - _PyEval_ImportName
    - FT_ATOMIC_LOAD_UINT32_RELAXED
    - PyGen_Check
    - PyAnyDict_CheckExact
    - _PyList_Extend
    - PyAnySet_CheckExact
    - PyTuple_CheckExact
    - INPUTS_DEAD
    - _Py_call_instrumentation_instruction
    - PyStackRef_DupImmortal
    - Py_NewRef
    - _PyErr_Format
    - PyObject_Vectorcall
    - _PyDict_SetItem_Take2
    - _PyObject_InlineValues
    - PyTuple_GET_ITEM
    - _PyEval_UnpackIterableStackRef
    - gen_try_set_executing
    - _PyErr_ExceptionMatches
    - PyStackRef_Borrow
    - PyMethod_Check
    - OPCODE_DEFERRED_INC
    - monitor_reraise
    - DISPATCH_SAME_OPARG
    - PyAsyncGenASend_CheckExact
    - _Py_TryIncrefCompareStackRef
    - macro
    - _Py_call_instrumentation_arg
    - _PyErr_ChainExceptions1
    - INSTR_OFFSET
    - PyFunction_New
    - PyObject_RichCompare
    - _PyEval_ExceptionGroupMatch
    - _Py_call_instrumentation
    - _PyEvalFramePushAndInit_Ex
    - ADVANCE_ADAPTIVE_COUNTER
    - INT_INPLACE_OP
    - _PyFrame_StackPush
    - _Py_VectorCall_StackRefSteal
    - PyObject_SetAttr
    - _PyEval_FormatExcUnbound
    - _Py_GetBaseCodeUnit
    - _PyIter_Send
    - STACK_LEVEL
    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:6474,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/bytecodes.c:6474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6473
        line_start: 6473
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6476
      start: 6472
    functionDepth: 1
    functionLinenumber: 6472
    functionLinenumberEnd: 6476
    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:6480,1
    - Dst: WITHIN_STACK_BOUNDS
      Src: /src/cpython/Python/bytecodes.c:6480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (WITHIN_STACK_BOUNDS())
      pos:
        line_end: 6479
        line_start: 6479
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6482
      start: 6478
    functionDepth: 1
    functionLinenumber: 6478
    functionLinenumberEnd: 6482
    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:6487,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/bytecodes.c:6488,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6492,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:6492,1
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/bytecodes.c:6494,1
    - Dst: STOP_TRACING
      Src: /src/cpython/Python/bytecodes.c:6495,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:6496,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6499,1
    - Dst: _PyFrame_IsIncomplete
      Src: /src/cpython/Python/bytecodes.c:6500,1
    - Dst: _PyFrame_GetFrameObject
      Src: /src/cpython/Python/bytecodes.c:6501,1
    - Dst: PyTraceBack_Here
      Src: /src/cpython/Python/bytecodes.c:6503,1
    - Dst: _PyEval_MonitorRaise
      Src: /src/cpython/Python/bytecodes.c:6506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 6491
        line_start: 6491
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 6498
        line_start: 6498
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6508
      start: 6484
    functionDepth: 4
    functionLinenumber: 6484
    functionLinenumberEnd: 6508
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - _PyEval_MonitorRaise
    - STOP_TRACING
    - _PyErr_SetString
    - _PyErr_Occurred
    - _PyFrame_IsIncomplete
    - SAVE_STACK
    - assert
    - _PyFrame_GetFrameObject
    - PyTraceBack_Here
    - RELOAD_STACK
    linkageType: ''
    returnType: void
    signature: void label(error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SAVE_STACK
      Src: /src/cpython/Python/bytecodes.c:6511,1
    - Dst: STOP_TRACING
      Src: /src/cpython/Python/bytecodes.c:6512,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:6513,1
    - Dst: INSTR_OFFSET
      Src: /src/cpython/Python/bytecodes.c:6515,1
    - Dst: get_exception_handler
      Src: /src/cpython/Python/bytecodes.c:6517,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/bytecodes.c:6517,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6520,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:6520,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/bytecodes.c:6522,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Python/bytecodes.c:6524,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:6525,1
    - Dst: monitor_unwind
      Src: /src/cpython/Python/bytecodes.c:6527,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6530,1
    - Dst: STACK_LEVEL
      Src: /src/cpython/Python/bytecodes.c:6530,1
    - Dst: _PyFrame_Stackbase
      Src: /src/cpython/Python/bytecodes.c:6531,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6532,1
    - Dst: _PyFrame_StackPop
      Src: /src/cpython/Python/bytecodes.c:6534,1
    - Dst: PyStackRef_XCLOSE
      Src: /src/cpython/Python/bytecodes.c:6535,1
    - Dst: _PyInterpreterFrame_LASTI
      Src: /src/cpython/Python/bytecodes.c:6538,1
    - Dst: PyStackRef_TagInt
      Src: /src/cpython/Python/bytecodes.c:6539,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:6540,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/bytecodes.c:6547,1
    - Dst: _PyFrame_StackPush
      Src: /src/cpython/Python/bytecodes.c:6548,1
    - Dst: PyStackRef_FromPyObjectSteal
      Src: /src/cpython/Python/bytecodes.c:6548,1
    - Dst: _PyFrame_GetBytecode
      Src: /src/cpython/Python/bytecodes.c:6549,1
    - Dst: monitor_handled
      Src: /src/cpython/Python/bytecodes.c:6551,1
    - Dst: lltrace_resume_frame
      Src: /src/cpython/Python/bytecodes.c:6558,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:6561,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:6565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 6519
        line_start: 6519
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->stackpointer >= new_top)
      pos:
        line_end: 6531
        line_start: 6531
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (STACK_LEVEL() >= level)
      pos:
        line_end: 6529
        line_start: 6529
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6566
      start: 6510
    functionDepth: 1
    functionLinenumber: 6510
    functionLinenumberEnd: 6566
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - DISPATCH
    - _PyFrame_GetBytecode
    - _PyErr_GetRaisedException
    - assert
    - _PyFrame_Stackbase
    - monitor_unwind
    - INSTR_OFFSET
    - _PyInterpreterFrame_LASTI
    - PyStackRef_FromPyObjectSteal
    - get_exception_handler
    - RELOAD_STACK
    - STOP_TRACING
    - _PyFrame_GetCode
    - SAVE_STACK
    - _PyFrame_StackPush
    - monitor_handled
    - _PyErr_Occurred
    - _PyFrame_StackPop
    - PyStackRef_TagInt
    - lltrace_resume_frame
    - PyStackRef_XCLOSE
    - STACK_LEVEL
    linkageType: ''
    returnType: spilled
    signature: spilled label(exception_unwind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6569,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:6569,1
    - Dst: DTRACE_FUNCTION_RETURN
      Src: /src/cpython/Python/bytecodes.c:6570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 6568
        line_start: 6568
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6572
      start: 6568
    functionDepth: 1
    functionLinenumber: 6568
    functionLinenumberEnd: 6572
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - DTRACE_FUNCTION_RETURN
    - _PyErr_Occurred
    - assert
    linkageType: ''
    returnType: spilled
    signature: spilled label(exit_unwind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6575,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:6575,1
    - Dst: _Py_LeaveRecursiveCallPy
      Src: /src/cpython/Python/bytecodes.c:6576,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6577,1
    - Dst: _PyEval_FrameClearAndPop
      Src: /src/cpython/Python/bytecodes.c:6581,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6587,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6591,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/bytecodes.c:6592,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/bytecodes.c:6593,1
    - Dst: PyStackRef_CLOSE
      Src: /src/cpython/Python/bytecodes.c:6594,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:6600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 6574
        line_start: 6574
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame->owner != FRAME_OWNED_BY_INTERPRETER)
      pos:
        line_end: 6576
        line_start: 6576
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (frame == &entry.frame)
      pos:
        line_end: 6586
        line_start: 6586
        source_file: /src/cpython/Python/bytecodes.c
    - condition: (tstate->current_executor == NULL)
      pos:
        line_end: 6590
        line_start: 6590
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6602
      start: 6574
    functionDepth: 3
    functionLinenumber: 6574
    functionLinenumberEnd: 6602
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - PyStackRef_CLOSE
    - _Py_LeaveRecursiveCallPy
    - _PyErr_Occurred
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyEval_FrameClearAndPop
    - PyStackRef_IsNull
    - RELOAD_STACK
    linkageType: ''
    returnType: spilled
    signature: spilled label(exit_unwind_notrace)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EnterRecursivePy
      Src: /src/cpython/Python/bytecodes.c:6605,1
    - Dst: DTRACE_FUNCTION_ENTRY
      Src: /src/cpython/Python/bytecodes.c:6609,1
    - Dst: maybe_lltrace_resume_frame
      Src: /src/cpython/Python/bytecodes.c:6612,1
    - Dst: GLOBALS
      Src: /src/cpython/Python/bytecodes.c:6612,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/bytecodes.c:6614,1
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6620,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bytecodes.c:6620,1
    - Dst: RELOAD_STACK
      Src: /src/cpython/Python/bytecodes.c:6622,1
    - Dst: DISPATCH
      Src: /src/cpython/Python/bytecodes.c:6626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 6619
        line_start: 6619
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6627
      start: 6604
    functionDepth: 1
    functionLinenumber: 6604
    functionLinenumberEnd: 6627
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - maybe_lltrace_resume_frame
    - GLOBALS
    - DISPATCH
    - _Py_EnterRecursivePy
    - _PyErr_Occurred
    - JUMP_TO_LABEL
    - DTRACE_FUNCTION_ENTRY
    - assert
    - RELOAD_STACK
    linkageType: ''
    returnType: spilled
    signature: spilled label(start_frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/bytecodes.c:6688,1
    - Dst: IS_JIT_TRACING
      Src: /src/cpython/Python/bytecodes.c:6688,1
    - Dst: _PyJit_translate_single_bytecode_to_trace
      Src: /src/cpython/Python/bytecodes.c:6690,1
    - Dst: LEAVE_TRACING
      Src: /src/cpython/Python/bytecodes.c:6691,1
    - Dst: stop_tracing_and_jit
      Src: /src/cpython/Python/bytecodes.c:6692,1
    - Dst: ERROR_IF
      Src: /src/cpython/Python/bytecodes.c:6693,1
    - Dst: DISPATCH_GOTO_NON_TRACING
      Src: /src/cpython/Python/bytecodes.c:6694,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/bytecodes.c:6696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (IS_JIT_TRACING())
      pos:
        line_end: 6687
        line_start: 6687
        source_file: /src/cpython/Python/bytecodes.c
    constantsTouched: []
    func_position:
      end: 6698
      start: 6686
    functionDepth: 3
    functionLinenumber: 6686
    functionLinenumberEnd: 6698
    functionName: label
    functionSourceFile: /src/cpython/Python/bytecodes.c
    functionUses: 3
    functionsReached:
    - _PyJit_translate_single_bytecode_to_trace
    - Py_FatalError
    - stop_tracing_and_jit
    - LEAVE_TRACING
    - DISPATCH_GOTO_NON_TRACING
    - assert
    - IS_JIT_TRACING
    - ERROR_IF
    linkageType: ''
    returnType: void
    signature: void label(stop_tracing)
  - 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_init
    - pthread_condattr_setclock
    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_MonotonicRaw
    - _PyTime_FromMicrosecondsClamp
    - PyTime_TimeRaw
    - _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_create
    - pthread_attr_destroy
    - defined
    - PyMem_RawFree
    - _PyThreadState_GET
    - PyThread_init_thread
    - pthread_attr_setstacksize
    - PyMem_RawMalloc
    - pthread_attr_setscope
    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: 2
    functionsReached:
    - assert
    - do_start_joinable_thread
    - _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: 2
    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:
    - PyThread_init_thread
    - pthread_self
    - _pthread_t_to_ident
    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
    - lwp_gettid
    - getpid
    - thr_self
    - pthread_threadid_np
    - PyThread_init_thread
    - thread_self
    - _lwp_self
    - syscall
    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:
    - pthread_exit
    - abort
    - 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:
    - pause
    - sleep
    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_destroy
    - pthread_attr_init
    - pthread_attr_setstacksize
    - _PyInterpreterState_GET
    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:
    - fflush
    - va_start
    - vfprintf
    - va_end
    - fprintf
    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_get
    - PyThread_tss_is_created
    - assert
    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: (!get_reentrant())
      pos:
        line_end: 117
        line_start: 117
        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: 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
    - PyThread_tss_is_created
    - get_reentrant
    - 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: 2
    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: 7
    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: _PyFrame_GetCode
      Src: /src/cpython/Python/tracemalloc.c:228,1
    - Dst: _PyFrame_SafeGetLasti
      Src: /src/cpython/Python/tracemalloc.c:231,1
    - Dst: _PyCode_SafeAddr2Line
      Src: /src/cpython/Python/tracemalloc.c:233,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:243,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/tracemalloc.c:248,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:250,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/tracemalloc.c:257,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:264,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/tracemalloc.c:264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:266,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    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: 276
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 276
    functionName: tracemalloc_get_frame
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _PyFrame_GetCode
    - tracemalloc_error
    - _Py_STR
    - _Py_hashtable_set
    - PyUnicode_Check
    - _PyCode_SafeAddr2Line
    - PyStackRef_CodeCheck
    - assert
    - _PyFrame_SafeGetLasti
    - _Py_hashtable_get_entry
    - Py_DECREF
    - Py_NewRef
    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:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - traceback
    argTypes:
    - traceback_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 302
    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:308,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:309,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/cpython/Python/tracemalloc.c:311,1
    - Dst: tracemalloc_get_frame
      Src: /src/cpython/Python/tracemalloc.c:314,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:315,1
    - Dst: _PyFrame_GetFirstComplete
      Src: /src/cpython/Python/tracemalloc.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - traceback
    argTypes:
    - traceback_t*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (traceback->frames[traceback->nframe].filename != NULL)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 323
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 323
    functionName: traceback_get_frames
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_get_frame
    - _PyThreadState_GET
    - assert
    - _PyFrame_GetFirstComplete
    - _PyThreadState_GetFrame
    linkageType: ''
    returnType: void
    signature: void traceback_get_frames(traceback_t *traceback)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/tracemalloc.c:332,1
    - Dst: traceback_get_frames
      Src: /src/cpython/Python/tracemalloc.c:338,1
    - Dst: traceback_hash
      Src: /src/cpython/Python/tracemalloc.c:342,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/tracemalloc.c:345,1
    - Dst: TRACEBACK_SIZE
      Src: /src/cpython/Python/tracemalloc.c:353,1
    - Dst: raw_malloc
      Src: /src/cpython/Python/tracemalloc.c:355,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:358,1
    - Dst: memcpy
      Src: /src/cpython/Python/tracemalloc.c:362,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:364,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:365,1
    - Dst: tracemalloc_error
      Src: /src/cpython/Python/tracemalloc.c:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 374
    functionName: traceback_new
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw_free
    - _Py_hashtable_set
    - tracemalloc_error
    - traceback_hash
    - TRACEBACK_SIZE
    - traceback_get_frames
    - raw_malloc
    - memcpy
    - _Py_AssertHoldsTstate
    - _Py_hashtable_get_entry
    linkageType: ''
    returnType: traceback_t
    signature: 'traceback_t *

      traceback_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 383
    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:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 391
    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:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 401
    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:411,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: tracemalloc_get_traces_table
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_get
    - TO_PTR
    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:419,1
    - Dst: tracemalloc_get_traces_table
      Src: /src/cpython/Python/tracemalloc.c:421,1
    - Dst: _Py_hashtable_steal
      Src: /src/cpython/Python/tracemalloc.c:426,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:426,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:430,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:432,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: 418
        line_start: 418
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (tracemalloc_traced_memory >= trace->size)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 433
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 433
    functionName: tracemalloc_remove_trace_unlocked
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw_free
    - _Py_hashtable_steal
    - tracemalloc_get_traces_table
    - TO_PTR
    - 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: 437
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 437
    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:443,1
    - Dst: traceback_new
      Src: /src/cpython/Python/tracemalloc.c:445,1
    - Dst: tracemalloc_get_traces_table
      Src: /src/cpython/Python/tracemalloc.c:450,1
    - Dst: tracemalloc_create_traces_table
      Src: /src/cpython/Python/tracemalloc.c:452,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:457,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:457,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:458,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/tracemalloc.c:463,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:463,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:466,1
    - Dst: raw_malloc
      Src: /src/cpython/Python/tracemalloc.c:473,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:480,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:480,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:482,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:487,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: 442
        line_start: 442
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (tracemalloc_traced_memory >= trace->size)
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (tracemalloc_traced_memory <= SIZE_MAX - size)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 493
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 493
    functionName: tracemalloc_add_trace_unlocked
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_create_traces_table
    - raw_free
    - _Py_hashtable_set
    - tracemalloc_get_traces_table
    - TO_PTR
    - _Py_hashtable_get
    - raw_malloc
    - assert
    - _Py_hashtable_destroy
    - traceback_new
    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: 497
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 497
    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:503,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:505,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:516,1
    - Dst: PyMemAllocatorEx*::calloc
      Src: /src/cpython/Python/tracemalloc.c:522,1
    - Dst: PyMemAllocatorEx*::malloc
      Src: /src/cpython/Python/tracemalloc.c:525,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Python/tracemalloc.c:537,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:539,1
    - Dst: ADD_TRACE
      Src: /src/cpython/Python/tracemalloc.c:542,1
    - Dst: PyMemAllocatorEx*::free
      Src: /src/cpython/Python/tracemalloc.c:544,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:550,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Python/tracemalloc.c:552,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:557,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: 502
        line_start: 502
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 560
      start: 499
    functionDepth: 10
    functionLinenumber: 499
    functionLinenumberEnd: 560
    functionName: tracemalloc_alloc
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyMemAllocatorEx*::free
    - get_reentrant
    - ADD_TRACE
    - TABLES_UNLOCK
    - PyGILState_Ensure
    - TABLES_LOCK
    - PyMemAllocatorEx*::malloc
    - PyMemAllocatorEx*::calloc
    - PyGILState_Release
    - assert
    - set_reentrant
    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:566,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:572,1
    - Dst: PyMemAllocatorEx*::realloc
      Src: /src/cpython/Python/tracemalloc.c:576,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Python/tracemalloc.c:587,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:589,1
    - Dst: REMOVE_TRACE
      Src: /src/cpython/Python/tracemalloc.c:602,1
    - Dst: ADD_TRACE
      Src: /src/cpython/Python/tracemalloc.c:605,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/tracemalloc.c:615,1
    - Dst: ADD_TRACE
      Src: /src/cpython/Python/tracemalloc.c:621,1
    - Dst: PyMemAllocatorEx*::free
      Src: /src/cpython/Python/tracemalloc.c:623,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:629,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Python/tracemalloc.c:631,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:636,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: 639
      start: 563
    functionDepth: 10
    functionLinenumber: 563
    functionLinenumberEnd: 639
    functionName: tracemalloc_realloc
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyMemAllocatorEx*::free
    - get_reentrant
    - ADD_TRACE
    - REMOVE_TRACE
    - PyGILState_Ensure
    - TABLES_UNLOCK
    - TABLES_LOCK
    - PyGILState_Release
    - PyMemAllocatorEx*::realloc
    - set_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:650,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:652,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:656,1
    - Dst: REMOVE_TRACE
      Src: /src/cpython/Python/tracemalloc.c:659,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 664
    functionName: tracemalloc_free
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyMemAllocatorEx*::free
    - get_reentrant
    - REMOVE_TRACE
    - TABLES_UNLOCK
    - TABLES_LOCK
    linkageType: ''
    returnType: void
    signature: void tracemalloc_free(void *ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_alloc
      Src: /src/cpython/Python/tracemalloc.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 11
    functionLinenumber: 667
    functionLinenumberEnd: 671
    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:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 11
    functionLinenumber: 674
    functionLinenumberEnd: 678
    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:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 11
    functionLinenumber: 681
    functionLinenumberEnd: 685
    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:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 11
    functionLinenumber: 688
    functionLinenumberEnd: 692
    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:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 11
    functionLinenumber: 695
    functionLinenumberEnd: 699
    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:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 11
    functionLinenumber: 702
    functionLinenumberEnd: 706
    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:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 714
    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:721,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:723,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Python/tracemalloc.c:725,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Python/tracemalloc.c:726,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Python/tracemalloc.c:727,1
    - Dst: _Py_hashtable_clear
      Src: /src/cpython/Python/tracemalloc.c:728,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 734
    functionName: tracemalloc_clear_traces_unlocked
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_AssertHoldsTstate
    - _Py_hashtable_clear
    - set_reentrant
    linkageType: ''
    returnType: void
    signature: void tracemalloc_clear_traces_unlocked(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:740,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Python/tracemalloc.c:742,1
    - Dst: PyThread_tss_create
      Src: /src/cpython/Python/tracemalloc.c:744,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/tracemalloc.c:745,1
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:748,1
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:752,1
    - Dst: tracemalloc_create_traces_table
      Src: /src/cpython/Python/tracemalloc.c:756,1
    - Dst: tracemalloc_create_domains_table
      Src: /src/cpython/Python/tracemalloc.c:757,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/tracemalloc.c:762,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:765,1
    - Dst: raw_malloc
      Src: /src/cpython/Python/tracemalloc.c:766,1
    - Dst: TRACEBACK_SIZE
      Src: /src/cpython/Python/tracemalloc.c:766,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/cpython/Python/tracemalloc.c:768,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/tracemalloc.c:774,1
    - Dst: traceback_hash
      Src: /src/cpython/Python/tracemalloc.c:776,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/tracemalloc.c:779,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (tracemalloc_config.initialized == TRACEMALLOC_NOT_INITIALIZED)
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/cpython/Python/tracemalloc.c
    - condition: (tracemalloc_empty_traceback == NULL)
      pos:
        line_end: 764
        line_start: 764
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 780
      start: 737
    functionDepth: 4
    functionLinenumber: 737
    functionLinenumberEnd: 780
    functionName: _PyTraceMalloc_Init
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_create_traces_table
    - _PyStatus_OK
    - hashtable_new
    - _Py_STR
    - PyThread_tss_create
    - tracemalloc_create_domains_table
    - traceback_hash
    - PyMem_GetAllocator
    - TRACEBACK_SIZE
    - raw_malloc
    - assert
    - _PyStatus_NO_MEMORY
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyTraceMalloc_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_Stop
      Src: /src/cpython/Python/tracemalloc.c:790,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:793,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:794,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:795,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:796,1
    - Dst: PyThread_tss_delete
      Src: /src/cpython/Python/tracemalloc.c:798,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 802
    functionName: tracemalloc_deinit
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw_free
    - _PyTraceMalloc_Stop
    - _Py_hashtable_destroy
    - PyThread_tss_delete
    linkageType: ''
    returnType: void
    signature: void tracemalloc_deinit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/tracemalloc.c:809,1
    - Dst: _PyTraceMalloc_IsTracing
      Src: /src/cpython/Python/tracemalloc.c:815,1
    - Dst: TRACEBACK_SIZE
      Src: /src/cpython/Python/tracemalloc.c:823,1
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:824,1
    - Dst: raw_malloc
      Src: /src/cpython/Python/tracemalloc.c:825,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/tracemalloc.c:827,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Python/tracemalloc.c:838,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:839,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Python/tracemalloc.c:847,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:848,1
    - Dst: PyMem_GetAllocator
      Src: /src/cpython/Python/tracemalloc.c:851,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:852,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Python/tracemalloc.c:854,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:859,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/tracemalloc.c:860,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 1
    argNames:
    - max_nframe
    argTypes:
    - int
    assertStmts:
    - condition: (tracemalloc_traceback == NULL)
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 864
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 864
    functionName: _PyTraceMalloc_Start
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - TABLES_UNLOCK
    - PyRefTracer_SetTracer
    - TABLES_LOCK
    - PyMem_GetAllocator
    - TRACEBACK_SIZE
    - _Py_atomic_store_int_relaxed
    - raw_malloc
    - PyErr_Format
    - assert
    - _PyTraceMalloc_IsTracing
    - PyMem_SetAllocator
    linkageType: ''
    returnType: int
    signature: int _PyTraceMalloc_Start(int max_nframe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:870,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:873,1
    - Dst: _Py_atomic_store_int_relaxed
      Src: /src/cpython/Python/tracemalloc.c:878,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:881,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:882,1
    - Dst: PyMem_SetAllocator
      Src: /src/cpython/Python/tracemalloc.c:883,1
    - Dst: tracemalloc_clear_traces_unlocked
      Src: /src/cpython/Python/tracemalloc.c:885,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:888,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:891,1
    - Dst: PyRefTracer_SetTracer
      Src: /src/cpython/Python/tracemalloc.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 867
    functionDepth: 4
    functionLinenumber: 867
    functionLinenumberEnd: 897
    functionName: _PyTraceMalloc_Stop
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - raw_free
    - TABLES_UNLOCK
    - PyRefTracer_SetTracer
    - TABLES_LOCK
    - _Py_atomic_store_int_relaxed
    - tracemalloc_clear_traces_unlocked
    - PyMem_SetAllocator
    linkageType: ''
    returnType: void
    signature: void _PyTraceMalloc_Stop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/tracemalloc.c:904,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:904,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/tracemalloc.c:906,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:911,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/tracemalloc.c:911,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/tracemalloc.c:913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:915,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - frame
    argTypes:
    - frame_t*
    assertStmts:
    - condition: (get_reentrant())
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 921
      start: 901
    functionDepth: 3
    functionLinenumber: 901
    functionLinenumberEnd: 921
    functionName: frame_to_pyobject
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - get_reentrant
    - PyLong_FromUnsignedLong
    - PyTuple_SET_ITEM
    - assert
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    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:929,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/tracemalloc.c:931,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/tracemalloc.c:935,1
    - Dst: frame_to_pyobject
      Src: /src/cpython/Python/tracemalloc.c:941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:943,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:946,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:951,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/tracemalloc.c:952,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/tracemalloc.c:956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - traceback
    - intern_table
    argTypes:
    - traceback_t*
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 924
    functionDepth: 4
    functionLinenumber: 924
    functionLinenumberEnd: 959
    functionName: traceback_to_pyobject
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _Py_hashtable_set
    - PyErr_NoMemory
    - _Py_hashtable_get
    - PyTuple_SET_ITEM
    - frame_to_pyobject
    - Py_DECREF
    - Py_NewRef
    - PyTuple_New
    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:966,1
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:966,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/tracemalloc.c:968,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Python/tracemalloc.c:973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:975,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:978,1
    - Dst: PyLong_FromSize_t
      Src: /src/cpython/Python/tracemalloc.c:980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:982,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:985,1
    - Dst: traceback_to_pyobject
      Src: /src/cpython/Python/tracemalloc.c:987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:989,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:992,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/cpython/Python/tracemalloc.c:994,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:996,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/tracemalloc.c:999,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: 965
        line_start: 965
        source_file: /src/cpython/Python/tracemalloc.c
    constantsTouched: []
    func_position:
      end: 1002
      start: 962
    functionDepth: 5
    functionLinenumber: 962
    functionLinenumberEnd: 1002
    functionName: trace_to_pyobject
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - traceback_to_pyobject
    - get_reentrant
    - PyLong_FromUnsignedLong
    - PyTuple_SET_ITEM
    - assert
    - Py_DECREF
    - PyTuple_New
    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:1022,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:1027,1
    - Dst: raw_free
      Src: /src/cpython/Python/tracemalloc.c:1028,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: 1032
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1032
    functionName: tracemalloc_copy_trace
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw_free
    - raw_malloc
    - _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:1038,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1043,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - traces
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1035
    functionDepth: 3
    functionLinenumber: 1035
    functionLinenumberEnd: 1051
    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:1060,1
    - Dst: tracemalloc_copy_traces
      Src: /src/cpython/Python/tracemalloc.c:1063,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/tracemalloc.c:1067,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:1067,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1068,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: 1072
      start: 1054
    functionDepth: 4
    functionLinenumber: 1054
    functionLinenumberEnd: 1072
    functionName: tracemalloc_copy_domain
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - FROM_PTR
    - _Py_hashtable_set
    - tracemalloc_copy_traces
    - TO_PTR
    - _Py_hashtable_destroy
    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:1078,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1083,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - domains
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1075
    functionDepth: 3
    functionLinenumber: 1075
    functionLinenumberEnd: 1091
    functionName: tracemalloc_copy_domains
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_foreach
    - tracemalloc_create_domains_table
    - _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:1102,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/tracemalloc.c:1108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/tracemalloc.c:1109,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: 1114
      start: 1094
    functionDepth: 6
    functionLinenumber: 1094
    functionLinenumberEnd: 1114
    functionName: tracemalloc_get_traces_fill
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - trace_to_pyobject
    - PyList_Append
    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:1123,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1127,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: 1130
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1130
    functionName: tracemalloc_get_traces_domain
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_foreach
    - FROM_PTR
    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:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1138
    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:1148,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/tracemalloc.c:1153,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:1153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1158
    functionName: tracemalloc_get_traceback_unlocked
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_get
    - tracemalloc_get_traces_table
    - TO_PTR
    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: 1162
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1162
    functionName: PUTS
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTS(fd, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1166,1
    - Dst: _Py_DumpASCII
      Src: /src/cpython/Python/tracemalloc.c:1167,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1168,1
    - Dst: _Py_DumpDecimal
      Src: /src/cpython/Python/tracemalloc.c:1169,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - frame
    argTypes:
    - int
    - frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1163
    functionDepth: 4
    functionLinenumber: 1163
    functionLinenumberEnd: 1171
    functionName: _PyMem_DumpFrame
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_DumpASCII
    - _Py_DumpDecimal
    - PUTS
    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:1178,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1180,1
    - Dst: tracemalloc_get_traceback_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1186,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1192,1
    - Dst: _PyMem_DumpFrame
      Src: /src/cpython/Python/tracemalloc.c:1194,1
    - Dst: PUTS
      Src: /src/cpython/Python/tracemalloc.c:1196,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - ptr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1175
    functionDepth: 5
    functionLinenumber: 1175
    functionLinenumberEnd: 1200
    functionName: _PyMem_DumpTraceback
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - _PyMem_DumpFrame
    - TABLES_UNLOCK
    - TABLES_LOCK
    - tracemalloc_get_traceback_unlocked
    - 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:1212,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: 1214
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1214
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/tracemalloc.c:1220,1
    - Dst: PyGILState_Ensure
      Src: /src/cpython/Python/tracemalloc.c:1224,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1225,1
    - Dst: tracemalloc_add_trace_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1229,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1236,1
    - Dst: PyGILState_Release
      Src: /src/cpython/Python/tracemalloc.c:1237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - domain
    - ptr
    - size
    argTypes:
    - unsigned int
    - uintptr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1216
    functionDepth: 10
    functionLinenumber: 1216
    functionLinenumberEnd: 1239
    functionName: PyTraceMalloc_Track
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - TABLES_UNLOCK
    - PyGILState_Ensure
    - TABLES_LOCK
    - tracemalloc_add_trace_unlocked
    - PyGILState_Release
    - _Py_atomic_load_int_relaxed
    linkageType: ''
    returnType: int
    signature: "int PyTraceMalloc_Track(unsigned int domain, uintptr_t ptr,\n                    size_t
      size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_int_relaxed
      Src: /src/cpython/Python/tracemalloc.c:1245,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1250,1
    - Dst: tracemalloc_remove_trace_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1254,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1242
    functionDepth: 3
    functionLinenumber: 1242
    functionLinenumberEnd: 1264
    functionName: PyTraceMalloc_Untrack
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - TABLES_UNLOCK
    - _Py_atomic_load_int_relaxed
    - TABLES_LOCK
    - tracemalloc_remove_trace_unlocked
    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:1270,1
    - Dst: tracemalloc_deinit
      Src: /src/cpython/Python/tracemalloc.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1267
    functionDepth: 3
    functionLinenumber: 1267
    functionLinenumberEnd: 1272
    functionName: _PyTraceMalloc_Fini
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_AssertHoldsTstate
    - tracemalloc_deinit
    linkageType: ''
    returnType: void
    signature: void _PyTraceMalloc_Fini(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1287,1
    - Dst: _Py_AssertHoldsTstate
      Src: /src/cpython/Python/tracemalloc.c:1291,1
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1292,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/tracemalloc.c:1298,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/tracemalloc.c:1299,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/tracemalloc.c:1302,1
    - Dst: TO_PTR
      Src: /src/cpython/Python/tracemalloc.c:1302,1
    - Dst: traceback_new
      Src: /src/cpython/Python/tracemalloc.c:1305,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - op
    - event
    - Py_UNUSED(ignore)
    argTypes:
    - PyObject*
    - PyRefTracerEvent
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1280
    functionDepth: 5
    functionLinenumber: 1280
    functionLinenumberEnd: 1315
    functionName: _PyTraceMalloc_TraceRef
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 0
    functionsReached:
    - get_reentrant
    - TABLES_UNLOCK
    - _PyType_PreHeaderSize
    - TABLES_LOCK
    - TO_PTR
    - _Py_hashtable_get
    - _Py_AssertHoldsTstate
    - Py_TYPE
    - traceback_new
    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:1321,1
    - Dst: tracemalloc_get_traceback_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1323,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1326,1
    - Dst: traceback_to_pyobject
      Src: /src/cpython/Python/tracemalloc.c:1327,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1328,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/tracemalloc.c:1331,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1318
    functionDepth: 5
    functionLinenumber: 1318
    functionLinenumberEnd: 1336
    functionName: _PyTraceMalloc_GetTraceback
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - traceback_to_pyobject
    - TABLES_UNLOCK
    - TABLES_LOCK
    - tracemalloc_get_traceback_unlocked
    - Py_NewRef
    - set_reentrant
    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:1341,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1345
    functionName: _PyTraceMalloc_IsTracing
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 2
    functionsReached:
    - TABLES_UNLOCK
    - TABLES_LOCK
    linkageType: ''
    returnType: int
    signature: int _PyTraceMalloc_IsTracing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1350,1
    - Dst: tracemalloc_clear_traces_unlocked
      Src: /src/cpython/Python/tracemalloc.c:1352,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1347
    functionDepth: 4
    functionLinenumber: 1347
    functionLinenumberEnd: 1355
    functionName: _PyTraceMalloc_ClearTraces
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_UNLOCK
    - TABLES_LOCK
    - tracemalloc_clear_traces_unlocked
    linkageType: ''
    returnType: void
    signature: void _PyTraceMalloc_ClearTraces(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1360,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1361,1
    - Dst: PyList_New
      Src: /src/cpython/Python/tracemalloc.c:1368,1
    - Dst: hashtable_new
      Src: /src/cpython/Python/tracemalloc.c:1379,1
    - Dst: tracemalloc_copy_traces
      Src: /src/cpython/Python/tracemalloc.c:1389,1
    - Dst: tracemalloc_copy_domains
      Src: /src/cpython/Python/tracemalloc.c:1394,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1400,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1404,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/tracemalloc.c:1410,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/tracemalloc.c:1416,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/tracemalloc.c:1417,1
    - Dst: set_reentrant
      Src: /src/cpython/Python/tracemalloc.c:1421,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1422,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1425,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1428,1
    - Dst: _Py_hashtable_destroy
      Src: /src/cpython/Python/tracemalloc.c:1431,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1357
    functionDepth: 4
    functionLinenumber: 1357
    functionLinenumberEnd: 1435
    functionName: _PyTraceMalloc_GetTraces
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - hashtable_new
    - tracemalloc_copy_traces
    - PyErr_NoMemory
    - _Py_hashtable_foreach
    - TABLES_UNLOCK
    - TABLES_LOCK
    - tracemalloc_copy_domains
    - Py_CLEAR
    - PyList_New
    - _Py_hashtable_destroy
    - set_reentrant
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceMalloc_GetTraces(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/tracemalloc.c:1441,1
    - Dst: _PyType_PreHeaderSize
      Src: /src/cpython/Python/tracemalloc.c:1442,1
    - Dst: _PyTraceMalloc_GetTraceback
      Src: /src/cpython/Python/tracemalloc.c:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1437
    functionDepth: 6
    functionLinenumber: 1437
    functionLinenumberEnd: 1445
    functionName: _PyTraceMalloc_GetObjectTraceback
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - _PyTraceMalloc_GetTraceback
    - _PyType_PreHeaderSize
    - Py_TYPE
    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: 1450
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1450
    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:1455,1
    - Dst: _Py_hashtable_size
      Src: /src/cpython/Python/tracemalloc.c:1458,1
    - Dst: _Py_hashtable_size
      Src: /src/cpython/Python/tracemalloc.c:1459,1
    - Dst: _Py_hashtable_size
      Src: /src/cpython/Python/tracemalloc.c:1461,1
    - Dst: _Py_hashtable_foreach
      Src: /src/cpython/Python/tracemalloc.c:1462,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1452
    functionDepth: 2
    functionLinenumber: 1452
    functionLinenumberEnd: 1470
    functionName: _PyTraceMalloc_GetMemory
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - _Py_hashtable_size
    - _Py_hashtable_foreach
    - TABLES_LOCK
    - TABLES_UNLOCK
    linkageType: ''
    returnType: size_t
    signature: size_t _PyTraceMalloc_GetMemory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1476,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1486,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/tracemalloc.c:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1473
    functionDepth: 2
    functionLinenumber: 1473
    functionLinenumberEnd: 1489
    functionName: _PyTraceMalloc_GetTracedMemory
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_UNLOCK
    - TABLES_LOCK
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceMalloc_GetTracedMemory(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/cpython/Python/tracemalloc.c:1494,1
    - Dst: TABLES_UNLOCK
      Src: /src/cpython/Python/tracemalloc.c:1498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1491
    functionDepth: 1
    functionLinenumber: 1491
    functionLinenumberEnd: 1499
    functionName: _PyTraceMalloc_ResetPeak
    functionSourceFile: /src/cpython/Python/tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_UNLOCK
    - TABLES_LOCK
    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_FatalErrorFormat
      Src: /src/cpython/Python/parking_lot.c:64,1
    - Dst: GetLastError
      Src: /src/cpython/Python/parking_lot.c:66,1
    - Dst: sem_init
      Src: /src/cpython/Python/parking_lot.c:69,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:70,1
    - Dst: pthread_mutex_init
      Src: /src/cpython/Python/parking_lot.c:73,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:74,1
    - Dst: pthread_cond_init
      Src: /src/cpython/Python/parking_lot.c:76,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - sema
    argTypes:
    - _PySemaphore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: _PySemaphore_Init
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - Py_FatalError
    - pthread_cond_init
    - pthread_mutex_init
    - sem_init
    - CreateSemaphore
    - GetLastError
    - _Py_FatalErrorFormat
    linkageType: ''
    returnType: void
    signature: void _PySemaphore_Init(_PySemaphore *sema)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/cpython/Python/parking_lot.c:87,1
    - Dst: sem_destroy
      Src: /src/cpython/Python/parking_lot.c:89,1
    - Dst: pthread_mutex_destroy
      Src: /src/cpython/Python/parking_lot.c:91,1
    - Dst: pthread_cond_destroy
      Src: /src/cpython/Python/parking_lot.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sema
    argTypes:
    - _PySemaphore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: _PySemaphore_Destroy
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - CloseHandle
    - sem_destroy
    - pthread_mutex_destroy
    - 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:107,1
    - Dst: _Py_IsMainThread
      Src: /src/cpython/Python/parking_lot.c:120,1
    - Dst: _PyOS_SigintEvent
      Src: /src/cpython/Python/parking_lot.c:126,1
    - Dst: WaitForMultipleObjects
      Src: /src/cpython/Python/parking_lot.c:132,1
    - Dst: assert
      Src: /src/cpython/Python/parking_lot.c:137,1
    - Dst: ResetEvent
      Src: /src/cpython/Python/parking_lot.c:138,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/parking_lot.c:145,1
    - Dst: GetLastError
      Src: /src/cpython/Python/parking_lot.c:147,1
    - Dst: PyTime_MonotonicRaw
      Src: /src/cpython/Python/parking_lot.c:157,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/parking_lot.c:158,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/parking_lot.c:159,1
    - Dst: sem_clockwait
      Src: /src/cpython/Python/parking_lot.c:161,1
    - Dst: PyTime_TimeRaw
      Src: /src/cpython/Python/parking_lot.c:165,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/parking_lot.c:166,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/parking_lot.c:168,1
    - Dst: sem_timedwait
      Src: /src/cpython/Python/parking_lot.c:170,1
    - Dst: sem_wait
      Src: /src/cpython/Python/parking_lot.c:174,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/parking_lot.c:185,1
    - Dst: pthread_mutex_lock
      Src: /src/cpython/Python/parking_lot.c:194,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/parking_lot.c:200,1
    - Dst: pthread_cond_timedwait_relative_np
      Src: /src/cpython/Python/parking_lot.c:201,1
    - Dst: PyTime_TimeRaw
      Src: /src/cpython/Python/parking_lot.c:204,1
    - Dst: _PyTime_Add
      Src: /src/cpython/Python/parking_lot.c:205,1
    - Dst: _PyTime_AsTimespec_clamp
      Src: /src/cpython/Python/parking_lot.c:206,1
    - Dst: pthread_cond_timedwait
      Src: /src/cpython/Python/parking_lot.c:208,1
    - Dst: pthread_cond_wait
      Src: /src/cpython/Python/parking_lot.c:212,1
    - Dst: pthread_mutex_unlock
      Src: /src/cpython/Python/parking_lot.c:225,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 2
    argNames:
    - sema
    - timeout
    argTypes:
    - _PySemaphore*
    - PyTime_t
    assertStmts:
    - condition: (sigint_event != NULL)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/cpython/Python/parking_lot.c
    constantsTouched: []
    func_position:
      end: 228
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 228
    functionName: _PySemaphore_Wait
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - PyTime_MonotonicRaw
    - GetLastError
    - pthread_cond_wait
    - assert
    - _PyTime_AsMilliseconds
    - _PyOS_SigintEvent
    - pthread_mutex_unlock
    - _Py_FatalErrorFormat
    - _Py_IsMainThread
    - pthread_cond_timedwait
    - sem_clockwait
    - sem_timedwait
    - PyTime_TimeRaw
    - ResetEvent
    - sem_wait
    - _PyTime_Add
    - WaitForMultipleObjects
    - pthread_mutex_lock
    - pthread_cond_timedwait_relative_np
    - _PyTime_AsTimespec_clamp
    linkageType: ''
    returnType: int
    signature: int _PySemaphore_Wait(_PySemaphore *sema, PyTime_t timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSemaphore
      Src: /src/cpython/Python/parking_lot.c:234,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/parking_lot.c:235,1
    - Dst: GetLastError
      Src: /src/cpython/Python/parking_lot.c:237,1
    - Dst: sem_post
      Src: /src/cpython/Python/parking_lot.c:240,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/parking_lot.c:242,1
    - Dst: pthread_mutex_lock
      Src: /src/cpython/Python/parking_lot.c:245,1
    - Dst: pthread_cond_signal
      Src: /src/cpython/Python/parking_lot.c:247,1
    - Dst: pthread_mutex_unlock
      Src: /src/cpython/Python/parking_lot.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - sema
    argTypes:
    - _PySemaphore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 250
    functionName: _PySemaphore_Wakeup
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 1
    functionsReached:
    - Py_FatalError
    - pthread_cond_signal
    - ReleaseSemaphore
    - GetLastError
    - pthread_mutex_unlock
    - sem_post
    - _Py_FatalErrorFormat
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void _PySemaphore_Wakeup(_PySemaphore *sema)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_insert_tail
      Src: /src/cpython/Python/parking_lot.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bucket
    - address
    - wait
    argTypes:
    - Bucket*
    - void*
    - struct wait_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 257
    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:266,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - bucket
    - address
    argTypes:
    - Bucket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 275
    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:266,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 273
    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:284,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:286,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Python/parking_lot.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - bucket
    - address
    - dst
    argTypes:
    - Bucket*
    - void*
    - struct llist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 292
    functionName: dequeue_all
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached:
    - llist_insert_tail
    - llist_remove
    - llist_data
    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:284,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:286,1
    - Dst: llist_insert_tail
      Src: /src/cpython/Python/parking_lot.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: llist_for_each_safe
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 3
    functionsReached:
    - llist_insert_tail
    - llist_remove
    - llist_data
    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:299,1
    - Dst: _Py_atomic_load_uint16
      Src: /src/cpython/Python/parking_lot.c:300,1
    - Dst: _Py_atomic_load_uint32
      Src: /src/cpython/Python/parking_lot.c:301,1
    - Dst: _Py_atomic_load_uint64
      Src: /src/cpython/Python/parking_lot.c:302,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/parking_lot.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - addr
    - expected
    - addr_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 305
    functionName: atomic_memcmp
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_uint8
    - Py_UNREACHABLE
    - _Py_atomic_load_uint64
    - _Py_atomic_load_uint16
    - _Py_atomic_load_uint32
    linkageType: ''
    returnType: int
    signature: int atomic_memcmp(const void *addr, const void *expected, size_t addr_size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyRawMutex_Lock
      Src: /src/cpython/Python/parking_lot.c:319,1
    - Dst: atomic_memcmp
      Src: /src/cpython/Python/parking_lot.c:320,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:321,1
    - Dst: _PySemaphore_Init
      Src: /src/cpython/Python/parking_lot.c:324,1
    - Dst: enqueue
      Src: /src/cpython/Python/parking_lot.c:325,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:326,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/parking_lot.c:330,1
    - Dst: _PyThreadState_IsAttached
      Src: /src/cpython/Python/parking_lot.c:331,1
    - Dst: PyEval_ReleaseThread
      Src: /src/cpython/Python/parking_lot.c:333,1
    - Dst: _PySemaphore_Wait
      Src: /src/cpython/Python/parking_lot.c:340,1
    - Dst: _PyRawMutex_Lock
      Src: /src/cpython/Python/parking_lot.c:346,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:348,1
    - Dst: _PySemaphore_Wait
      Src: /src/cpython/Python/parking_lot.c:352,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:357,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:360,1
    - Dst: _PySemaphore_Destroy
      Src: /src/cpython/Python/parking_lot.c:363,1
    - Dst: PyEval_AcquireThread
      Src: /src/cpython/Python/parking_lot.c:365,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    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: 369
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 369
    functionName: _PyParkingLot_Park
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 6
    functionsReached:
    - enqueue
    - _PyRawMutex_Lock
    - _PyThreadState_IsAttached
    - _PySemaphore_Destroy
    - PyEval_ReleaseThread
    - _PyRawMutex_Unlock
    - llist_remove
    - _PySemaphore_Init
    - _PyThreadState_GET
    - atomic_memcmp
    - _PySemaphore_Wait
    - PyEval_AcquireThread
    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:377,1
    - Dst: dequeue
      Src: /src/cpython/Python/parking_lot.c:378,1
    - Dst: fn
      Src: /src/cpython/Python/parking_lot.c:381,1
    - Dst: fn
      Src: /src/cpython/Python/parking_lot.c:384,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:386,1
    - Dst: _PySemaphore_Wakeup
      Src: /src/cpython/Python/parking_lot.c:390,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: 392
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 392
    functionName: _PyParkingLot_Unpark
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 2
    functionsReached:
    - _PyRawMutex_Lock
    - _PySemaphore_Wakeup
    - _PyRawMutex_Unlock
    - fn
    - 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:397,1
    - Dst: _PyRawMutex_Lock
      Src: /src/cpython/Python/parking_lot.c:400,1
    - Dst: dequeue_all
      Src: /src/cpython/Python/parking_lot.c:401,1
    - Dst: _PyRawMutex_Unlock
      Src: /src/cpython/Python/parking_lot.c:402,1
    - Dst: llist_for_each_safe
      Src: /src/cpython/Python/parking_lot.c:405,1
    - Dst: llist_data
      Src: /src/cpython/Python/parking_lot.c:406,1
    - Dst: llist_remove
      Src: /src/cpython/Python/parking_lot.c:407,1
    - Dst: _PySemaphore_Wakeup
      Src: /src/cpython/Python/parking_lot.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 410
    functionName: _PyParkingLot_UnparkAll
    functionSourceFile: /src/cpython/Python/parking_lot.c
    functionUses: 9
    functionsReached:
    - dequeue_all
    - _PyRawMutex_Lock
    - _PySemaphore_Wakeup
    - llist_for_each_safe
    - _PyRawMutex_Unlock
    - llist_remove
    - LLIST_INIT
    - llist_data
    linkageType: ''
    returnType: void
    signature: void _PyParkingLot_UnparkAll(const void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/cpython/Python/parking_lot.c:417,1
    - Dst: llist_init
      Src: /src/cpython/Python/parking_lot.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 421
    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:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:12,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: _PyOpcode_RecordFunction_TOS
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_TOS(_PyInterpreterFrame *frame, _PyStackRef
      *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/record_functions.c.h:19,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:19,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: _PyOpcode_RecordFunction_TOS_TYPE
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_TOS_TYPE(_PyInterpreterFrame *frame,
      _PyStackRef *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:26,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: _PyOpcode_RecordFunction_NOS
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_NOS(_PyInterpreterFrame *frame, _PyStackRef
      *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/record_functions.c.h:33,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:33,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: _PyOpcode_RecordFunction_NOS_TYPE
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_NOS_TYPE(_PyInterpreterFrame *frame,
      _PyStackRef *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:40,1
    - Dst: PyGen_Check
      Src: /src/cpython/Python/record_functions.c.h:41,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/record_functions.c.h:44,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:45,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: _PyOpcode_RecordFunction_NOS_GEN_FUNC
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    - PyGen_Check
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_NOS_GEN_FUNC(_PyInterpreterFrame *frame,
      _PyStackRef *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:54,1
    - Dst: PyGen_Check
      Src: /src/cpython/Python/record_functions.c.h:55,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/record_functions.c.h:58,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:59,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: _PyOpcode_RecordFunction_3OS_GEN_FUNC
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    - PyGen_Check
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_3OS_GEN_FUNC(_PyInterpreterFrame *frame,
      _PyStackRef *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:68,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: _PyOpcode_RecordFunction_4OS
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_4OS(_PyInterpreterFrame *frame, _PyStackRef
      *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:75,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: _PyOpcode_RecordFunction_CALLABLE
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_CALLABLE(_PyInterpreterFrame *frame,
      _PyStackRef *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:82,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: _PyOpcode_RecordFunction_CALLABLE_KW
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_CALLABLE_KW(_PyInterpreterFrame *frame,
      _PyStackRef *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:89,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/record_functions.c.h:90,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: _PyOpcode_RecordFunction_BOUND_METHOD
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_INCREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_BOUND_METHOD(_PyInterpreterFrame *frame,
      _PyStackRef *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/cpython/Python/record_functions.c.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - frame
    - stack_pointer
    - oparg
    - recorded_value
    argTypes:
    - _PyInterpreterFrame*
    - _PyStackRef*
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: _PyOpcode_RecordFunction_CODE
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _PyOpcode_RecordFunction_CODE(_PyInterpreterFrame *frame, _PyStackRef
      *stack_pointer, int oparg, PyObject **recorded_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:267,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/record_functions.c.h:268,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:268,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/record_functions.c.h:269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/record_functions.c.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - recorded_value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: _PyOpcode_RecordTransform_NOS_TYPE
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    - PyStackRef_FromPyObjectBorrow
    - Py_TYPE
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyOpcode_RecordTransform_NOS_TYPE(PyObject *recorded_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:279,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/record_functions.c.h:280,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:280,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/record_functions.c.h:281,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/record_functions.c.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - recorded_value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: _PyOpcode_RecordTransform_TOS_TYPE
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    - PyStackRef_FromPyObjectBorrow
    - Py_TYPE
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyOpcode_RecordTransform_TOS_TYPE(PyObject *recorded_value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:291,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:292,1
    - Dst: PyGen_Check
      Src: /src/cpython/Python/record_functions.c.h:293,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/record_functions.c.h:296,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:297,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/record_functions.c.h:298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/record_functions.c.h:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - recorded_value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 303
    functionName: _PyOpcode_RecordTransform_NOS_GEN_FUNC
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    - PyGen_Check
    - PyStackRef_FromPyObjectBorrow
    - PyStackRef_IsNull
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyOpcode_RecordTransform_NOS_GEN_FUNC(PyObject *recorded_value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_FromPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:310,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/record_functions.c.h:311,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/record_functions.c.h:312,1
    - Dst: Py_XINCREF
      Src: /src/cpython/Python/record_functions.c.h:314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/record_functions.c.h:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - recorded_value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: _PyOpcode_RecordTransform_BOUND_METHOD
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 0
    functionsReached:
    - PyStackRef_AsPyObjectBorrow
    - Py_DECREF
    - PyStackRef_FromPyObjectBorrow
    - Py_TYPE
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyOpcode_RecordTransform_BOUND_METHOD(PyObject *recorded_value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyOpcode_RecordTransform_NOS_TYPE
      Src: /src/cpython/Python/record_functions.c.h:325,1
    - Dst: _PyOpcode_RecordTransform_TOS_TYPE
      Src: /src/cpython/Python/record_functions.c.h:327,1
    - Dst: _PyOpcode_RecordTransform_NOS_GEN_FUNC
      Src: /src/cpython/Python/record_functions.c.h:329,1
    - Dst: _PyOpcode_RecordTransform_BOUND_METHOD
      Src: /src/cpython/Python/record_functions.c.h:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - uop
    - value
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 335
    functionName: _PyOpcode_RecordTransformValue
    functionSourceFile: /src/cpython/Python/record_functions.c.h
    functionUses: 1
    functionsReached:
    - _PyOpcode_RecordTransform_NOS_GEN_FUNC
    - _PyOpcode_RecordTransform_TOS_TYPE
    - _PyOpcode_RecordTransform_BOUND_METHOD
    - _PyOpcode_RecordTransform_NOS_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyOpcode_RecordTransformValue(int uop, PyObject *value)'
  - 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:
    - assert
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    - PyErr_Format
    - PyErr_Occurred
    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:
    - asdl_seq_GET
    - validate_exprs
    - PyErr_SetString
    - PyErr_Occurred
    - assert
    - asdl_seq_LEN
    - validate_expr
    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:
    - asdl_seq_GET
    - PyErr_Occurred
    - assert
    - asdl_seq_LEN
    - validate_expr
    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:
    - asdl_seq_GET
    - assert
    - PyErr_Occurred
    - VALIDATE_POSITIONS
    - asdl_seq_LEN
    - validate_expr
    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_exprs
    - PyErr_SetString
    - PyErr_Occurred
    - assert
    - validate_args
    - asdl_seq_LEN
    - validate_expr
    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
    - ENTER_RECURSIVE
    - PyObject_GetIter
    - PyComplex_CheckExact
    - PyErr_Occurred
    - assert
    - PyIter_Next
    - Py_TYPE
    - PyBytes_CheckExact
    - PyFloat_CheckExact
    - _PyType_Name
    - PyTuple_CheckExact
    - PyLong_CheckExact
    - Py_DECREF
    - PyBool_Check
    - validate_constant
    - PyUnicode_CheckExact
    - LEAVE_RECURSIVE
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_constant(PyObject *value)
  - BBCount: 49
    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:310,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:314,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:317,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:320,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:323,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:324,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:327,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:328,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:329,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:333,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:334,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:337,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:338,1
    - Dst: validate_keywords
      Src: /src/cpython/Python/ast.c:339,1
    - Dst: validate_constant
      Src: /src/cpython/Python/ast.c:342,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:348,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:351,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:354,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:357,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:363,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:366,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:372,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:375,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:376,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:379,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:382,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:383,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:384,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:387,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:394,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:398,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:407,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast.c:410,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 165
    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: 412
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 412
    functionName: validate_expr
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 5
    functionsReached:
    - expr_context_name
    - validate_arguments
    - validate_expr
    - validate_keywords
    - assert
    - validate_constant
    - PyErr_SetString
    - ENTER_RECURSIVE
    - validate_comprehension
    - validate_name
    - PyErr_Occurred
    - VALIDATE_POSITIONS
    - PyErr_Format
    - LEAVE_RECURSIVE
    - asdl_seq_LEN
    - COMP
    - validate_exprs
    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:421,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/ast.c:423,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/ast.c:424,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/ast.c:425,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: 420
        line_start: 420
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 426
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 426
    functionName: ensure_literal_number
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - PyFloat_CheckExact
    - PyComplex_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:431,1
    - Dst: ensure_literal_number
      Src: /src/cpython/Python/ast.c:442,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: 430
        line_start: 430
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 443
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 443
    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:448,1
    - Dst: ensure_literal_number
      Src: /src/cpython/Python/ast.c:459,1
    - Dst: ensure_literal_negative
      Src: /src/cpython/Python/ast.c:464,1
    - Dst: ensure_literal_number
      Src: /src/cpython/Python/ast.c:475,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - exp
    argTypes:
    - expr_ty
    assertStmts:
    - condition: (exp->kind == BinOp_kind)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 483
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 483
    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:488,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:488,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:489,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:499,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/ast.c:503,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/ast.c:503,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/ast.c:504,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/ast.c:504,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ast.c:505,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:508,1
    - Dst: ensure_literal_negative
      Src: /src/cpython/Python/ast.c:517,1
    - Dst: ensure_literal_complex
      Src: /src/cpython/Python/ast.c:524,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:535,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - exp
    argTypes:
    - expr_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 538
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 538
    functionName: validate_pattern_match_value
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_CheckExact
    - PyBytes_CheckExact
    - PyLong_CheckExact
    - PyFloat_CheckExact
    - PyComplex_CheckExact
    - ensure_literal_negative
    - PyErr_Occurred
    - assert
    - ensure_literal_complex
    - validate_expr
    linkageType: ''
    returnType: int
    signature: int validate_pattern_match_value(expr_ty exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:543,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:543,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/ast.c:544,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ast.c:545,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: validate_capture
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyUnicode_EqualToASCIIString
    - validate_name
    - PyErr_Format
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int validate_capture(PyObject *name)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:554,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:554,1
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:555,1
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast.c:557,1
    - Dst: validate_pattern_match_value
      Src: /src/cpython/Python/ast.c:560,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/ast.c:563,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:565,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:570,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:573,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:573,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:574,1
    - Dst: validate_capture
      Src: /src/cpython/Python/ast.c:580,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:586,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:587,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/ast.c:590,1
    - Dst: validate_pattern_match_value
      Src: /src/cpython/Python/ast.c:598,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:606,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:609,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:609,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:610,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:615,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:630,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:640,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:641,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:642,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:651,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:656,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:660,1
    - Dst: validate_capture
      Src: /src/cpython/Python/ast.c:664,1
    - Dst: validate_capture
      Src: /src/cpython/Python/ast.c:667,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:675,1
    - Dst: validate_pattern
      Src: /src/cpython/Python/ast.c:680,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:684,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:685,1
    - Dst: validate_patterns
      Src: /src/cpython/Python/ast.c:690,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:696,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast.c:699,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 122
    argCount: 2
    argNames:
    - p
    - star_ok
    argTypes:
    - pattern_ty
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 701
      start: 551
    functionDepth: 6
    functionLinenumber: 551
    functionLinenumberEnd: 701
    functionName: validate_pattern
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 1
    functionsReached:
    - validate_pattern_match_value
    - PyBool_Check
    - validate_patterns
    - asdl_seq_GET
    - assert
    - PyErr_SetString
    - ENTER_RECURSIVE
    - validate_name
    - PyErr_Occurred
    - VALIDATE_POSITIONS
    - LEAVE_RECURSIVE
    - asdl_seq_LEN
    - validate_pattern
    - validate_expr
    - validate_capture
    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:706,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/ast.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - seq
    - what
    - owner
    argTypes:
    - asdl_seq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 710
    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: 712
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 712
    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:716,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:716,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:717,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:718,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: 715
        line_start: 715
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 719
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 719
    functionName: validate_assignlist
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_exprs
    - validate_nonempty_seq
    - PyErr_Occurred
    - assert
    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:724,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:724,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:725,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - body
    - owner
    argTypes:
    - asdl_stmt_seq*
    - char*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 723
        line_start: 723
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: validate_body
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_stmts
    - validate_nonempty_seq
    - PyErr_Occurred
    - assert
    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:731,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:731,1
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:732,1
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast.c:734,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:737,1
    - Dst: validate_type_params
      Src: /src/cpython/Python/ast.c:738,1
    - Dst: validate_arguments
      Src: /src/cpython/Python/ast.c:739,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:740,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:742,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:745,1
    - Dst: validate_type_params
      Src: /src/cpython/Python/ast.c:746,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:747,1
    - Dst: validate_keywords
      Src: /src/cpython/Python/ast.c:748,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:749,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:752,1
    - Dst: validate_assignlist
      Src: /src/cpython/Python/ast.c:755,1
    - Dst: validate_assignlist
      Src: /src/cpython/Python/ast.c:758,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:759,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:762,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:763,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:768,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:772,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:774,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:775,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:779,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:783,1
    - Dst: validate_type_params
      Src: /src/cpython/Python/ast.c:784,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:785,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:788,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:789,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:790,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:791,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:794,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:795,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:796,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:797,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:800,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:801,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:802,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:805,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:806,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:807,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:810,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:812,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:813,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:814,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:815,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:818,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:821,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:823,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:824,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:825,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:826,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:829,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:832,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:833,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:836,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:837,1
    - Dst: validate_pattern
      Src: /src/cpython/Python/ast.c:838,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:839,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:840,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:848,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:849,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:853,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:859,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:861,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:862,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:863,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:866,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:867,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:868,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:871,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:872,1
    - Dst: VALIDATE_POSITIONS
      Src: /src/cpython/Python/ast.c:873,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:875,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:876,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: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:881,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:882,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:885,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:887,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:888,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:889,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:892,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:893,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:894,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:897,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:898,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:900,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:901,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: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:906,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:907,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:910,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:911,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:914,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:918,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:921,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:924,1
    - Dst: validate_nonempty_seq
      Src: /src/cpython/Python/ast.c:927,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:930,1
    - Dst: validate_body
      Src: /src/cpython/Python/ast.c:933,1
    - Dst: validate_type_params
      Src: /src/cpython/Python/ast.c:934,1
    - Dst: validate_arguments
      Src: /src/cpython/Python/ast.c:935,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:936,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:938,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:948,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast.c:951,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 161
    argCount: 1
    argNames:
    - stmt
    argTypes:
    - stmt_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 730
        line_start: 730
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 953
      start: 728
    functionDepth: 7
    functionLinenumber: 728
    functionLinenumberEnd: 953
    functionName: validate_stmt
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_arguments
    - validate_expr
    - validate_nonempty_seq
    - validate_keywords
    - asdl_seq_GET
    - assert
    - validate_type_params
    - PyErr_SetString
    - ENTER_RECURSIVE
    - validate_body
    - validate_assignlist
    - PyErr_Occurred
    - VALIDATE_POSITIONS
    - LEAVE_RECURSIVE
    - validate_stmts
    - asdl_seq_LEN
    - validate_pattern
    - validate_exprs
    linkageType: ''
    returnType: int
    signature: int validate_stmt(stmt_ty stmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:958,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:958,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:959,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:960,1
    - Dst: validate_stmt
      Src: /src/cpython/Python/ast.c:962,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - seq
    argTypes:
    - asdl_stmt_seq*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 972
      start: 955
    functionDepth: 8
    functionLinenumber: 955
    functionLinenumberEnd: 972
    functionName: validate_stmts
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 2
    functionsReached:
    - asdl_seq_GET
    - PyErr_SetString
    - validate_stmt
    - PyErr_Occurred
    - assert
    - asdl_seq_LEN
    linkageType: ''
    returnType: int
    signature: int validate_stmts(asdl_stmt_seq *seq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/ast.c:977,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:977,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:978,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:979,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:981,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:985,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: 976
        line_start: 976
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 992
      start: 974
    functionDepth: 5
    functionLinenumber: 974
    functionLinenumberEnd: 992
    functionName: validate_exprs
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 5
    functionsReached:
    - asdl_seq_GET
    - PyErr_SetString
    - PyErr_Occurred
    - assert
    - asdl_seq_LEN
    - validate_expr
    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:997,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:997,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:998,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:999,1
    - Dst: validate_pattern
      Src: /src/cpython/Python/ast.c:1000,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: 996
        line_start: 996
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1005
      start: 994
    functionDepth: 7
    functionLinenumber: 994
    functionLinenumberEnd: 1005
    functionName: validate_patterns
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 1
    functionsReached:
    - asdl_seq_GET
    - PyErr_Occurred
    - assert
    - 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:1010,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:1014,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1016,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1018,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:1021,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1023,1
    - Dst: validate_name
      Src: /src/cpython/Python/ast.c:1026,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1028,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 1
    argNames:
    - tp
    argTypes:
    - type_param_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1007
    functionDepth: 5
    functionLinenumber: 1007
    functionLinenumberEnd: 1032
    functionName: validate_typeparam
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_name
    - validate_expr
    - VALIDATE_POSITIONS
    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:1038,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:1039,1
    - Dst: validate_typeparam
      Src: /src/cpython/Python/ast.c:1041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tps
    argTypes:
    - asdl_type_param_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1034
    functionDepth: 6
    functionLinenumber: 1034
    functionLinenumberEnd: 1046
    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:1051,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast.c:1051,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:1056,1
    - Dst: validate_stmts
      Src: /src/cpython/Python/ast.c:1059,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1062,1
    - Dst: validate_exprs
      Src: /src/cpython/Python/ast.c:1065,1
    - Dst: validate_expr
      Src: /src/cpython/Python/ast.c:1066,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/ast.c:1072,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - mod
    argTypes:
    - mod_ty
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/cpython/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1076
      start: 1048
    functionDepth: 9
    functionLinenumber: 1048
    functionLinenumberEnd: 1076
    functionName: _PyAST_Validate
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 2
    functionsReached:
    - validate_exprs
    - PyErr_SetString
    - PyErr_Occurred
    - assert
    - validate_stmts
    - validate_expr
    linkageType: ''
    returnType: int
    signature: int _PyAST_Validate(mod_ty mod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast.c:1081,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast.c:1084,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/ast.c:1089,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - body
    argTypes:
    - asdl_stmt_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1093
    functionName: _PyAST_GetDocString
    functionSourceFile: /src/cpython/Python/ast.c
    functionUses: 4
    functionsReached:
    - asdl_seq_LEN
    - PyUnicode_CheckExact
    - 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:33,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/bltinmodule.c:33,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bltinmodule.c:37,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/bltinmodule.c:41,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:47,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:47,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/bltinmodule.c:52,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/bltinmodule.c:58,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:59,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/bltinmodule.c:63,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:64,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:66,1
    - Dst: PyList_New
      Src: /src/cpython/Python/bltinmodule.c:72,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:73,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:78,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:78,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:81,1
    - Dst: PyList_SetSlice
      Src: /src/cpython/Python/bltinmodule.c:82,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:83,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:86,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Python/bltinmodule.c:91,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:92,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:96,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: 32
        line_start: 32
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 98
      start: 28
    functionDepth: 12
    functionLinenumber: 28
    functionLinenumberEnd: 98
    functionName: update_bases
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - PyType_Check
    - assert
    - PyErr_SetString
    - PyObject_GetOptionalAttr
    - PyList_GET_SIZE
    - PyList_SetSlice
    - PyList_AsTuple
    - PyList_New
    - PyTuple_Check
    - PyList_Append
    - Py_DECREF
    - Py_XDECREF
    - PyObject_CallOneArg
    - Py_NewRef
    - _Py_ID
    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:111,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/bltinmodule.c:116,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:117,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:122,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:123,1
    - Dst: PyTuple_FromArray
      Src: /src/cpython/Python/bltinmodule.c:127,1
    - Dst: update_bases
      Src: /src/cpython/Python/bltinmodule.c:131,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:133,1
    - Dst: _PyStack_AsDict
      Src: /src/cpython/Python/bltinmodule.c:142,1
    - Dst: PyDict_Pop
      Src: /src/cpython/Python/bltinmodule.c:147,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:147,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bltinmodule.c:152,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:157,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:162,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:163,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:165,1
    - Dst: _PyType_CalculateMetaclass
      Src: /src/cpython/Python/bltinmodule.c:172,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:178,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:178,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:183,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:183,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/bltinmodule.c:187,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Python/bltinmodule.c:191,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:192,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/bltinmodule.c:197,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:198,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:201,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:204,1
    - Dst: EVAL_CALL_STAT_INC
      Src: /src/cpython/Python/bltinmodule.c:205,1
    - Dst: _PyEval_Vector
      Src: /src/cpython/Python/bltinmodule.c:206,1
    - Dst: PyMapping_SetItemString
      Src: /src/cpython/Python/bltinmodule.c:209,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Python/bltinmodule.c:214,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/bltinmodule.c:215,1
    - Dst: PyCell_Check
      Src: /src/cpython/Python/bltinmodule.c:215,1
    - Dst: PyCell_GetRef
      Src: /src/cpython/Python/bltinmodule.c:216,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:222,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:226,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:228,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:233,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_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:243,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:245,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: 247
      start: 101
    functionDepth: 14
    functionLinenumber: 101
    functionLinenumberEnd: 247
    functionName: builtin___build_class__
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyCell_GetRef
    - PyFunction_Check
    - PyTuple_GET_ITEM
    - PyType_Check
    - _PyStack_AsDict
    - update_bases
    - _PyType_CalculateMetaclass
    - _PyThreadState_GET
    - PyTuple_GET_SIZE
    - EVAL_CALL_STAT_INC
    - Py_TYPE
    - PyObject_VectorcallDict
    - PyTuple_FromArray
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - PyCell_Check
    - Py_XDECREF
    - _PyEval_Vector
    - Py_INCREF
    - PyMapping_SetItemString
    - PyDict_Pop
    - PyErr_SetString
    - Py_DECREF
    - Py_NewRef
    - PyDict_New
    - Py_SETREF
    - PyMapping_Check
    - PyErr_Format
    - _Py_ID
    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:286,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: 288
      start: 281
    functionDepth: 13
    functionLinenumber: 281
    functionLinenumberEnd: 288
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:313,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/bltinmodule.c:315,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/bltinmodule.c:321,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:322,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/bltinmodule.c:327,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:327,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:331,1
    - Dst: PyModule_Check
      Src: /src/cpython/Python/bltinmodule.c:335,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/bltinmodule.c:336,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/bltinmodule.c:336,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:338,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:339,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:343,1
    - Dst: _PyImport_LazyImportModuleLevelObject
      Src: /src/cpython/Python/bltinmodule.c:346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - module
    - name
    - globals
    - locals
    - fromlist
    - level
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 306
    functionDepth: 17
    functionLinenumber: 306
    functionLinenumberEnd: 350
    functionName: builtin___lazy_import___impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_SETREF
    - PyThreadState_GET
    - PyEval_GetGlobals
    - PyModule_Check
    - PyModule_GetDict
    - PyDict_Check
    - PyErr_Format
    - _PyImport_LazyImportModuleLevelObject
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_XNewRef
    - _Py_ID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin___lazy_import___impl(PyObject *module, PyObject
      *name,\n                             PyObject *globals, PyObject *locals,\n
      \                            PyObject *fromlist, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Absolute
      Src: /src/cpython/Python/bltinmodule.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 366
    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:387,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:390,1
    - Dst: iternext
      Src: /src/cpython/Python/bltinmodule.c:393,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:397,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:399,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:403,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:407,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:408,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:409,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 415
    functionName: builtin_all
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - iternext
    - PyObject_GetIter
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - Py_DECREF
    - 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:436,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:439,1
    - Dst: iternext
      Src: /src/cpython/Python/bltinmodule.c:442,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:452,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:456,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:457,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:458,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:459,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 464
    functionName: builtin_any
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - iternext
    - PyObject_GetIter
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - Py_DECREF
    - 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:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 485
    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:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - integer
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 505
    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:524,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/bltinmodule.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 525
    functionName: builtin_callable
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_callable(PyObject *module, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetAttrString
      Src: /src/cpython/Python/bltinmodule.c:530,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:535,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:536,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/bltinmodule.c:540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:541,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: 543
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 543
    functionName: builtin_breakpoint
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySys_Audit
    - PySys_GetAttrString
    - PyObject_Vectorcall
    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: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    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:570,1
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Python/bltinmodule.c:573,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:577,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:584,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:588,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 592
    functionName: filter_new
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - _PyArg_NoKeywords
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyArg_UnpackTuple
    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:598,1
    - Dst: _PyArg_NoKwnames
      Src: /src/cpython/Python/bltinmodule.c:599,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/bltinmodule.c:603,1
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/bltinmodule.c:604,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:608,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:616,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:620,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: 624
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 624
    functionName: filter_vectorcall
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyObject_GetIter
    - _PyArg_NoKwnames
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyVectorcall_NARGS
    - Py_NewRef
    - _PyType_CAST
    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:629,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bltinmodule.c:630,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:631,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:632,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 634
    functionName: filter_dealloc
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _filterobject_CAST
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void filter_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _filterobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:639,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:640,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 643
    functionName: filter_traverse
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _filterobject_CAST
    - Py_VISIT
    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:648,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:655,1
    - Dst: iternext
      Src: /src/cpython/Python/bltinmodule.c:657,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:662,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/bltinmodule.c:665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:667,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/bltinmodule.c:670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 679
    functionName: filter_next
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _filterobject_CAST
    - PyObject_IsTrue
    - iternext
    - Py_DECREF
    - Py_TYPE
    - PyObject_CallOneArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filter_next(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _filterobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:684,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/bltinmodule.c:685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 686
    functionName: filter_reduce
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _filterobject_CAST
    - Py_TYPE
    - Py_BuildValue
    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:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - value
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 766
    functionDepth: 5
    functionLinenumber: 766
    functionLinenumberEnd: 771
    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:788,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:789,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/cpython/Python/bltinmodule.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - i
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 783
    functionDepth: 6
    functionLinenumber: 783
    functionLinenumberEnd: 805
    functionName: builtin_chr
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyUnicode_FromOrdinal
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_chr(PyObject *module, PyObject *i)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:859,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:866,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:873,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:874,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/cpython/Python/bltinmodule.c:881,1
    - Dst: strcmp
      Src: /src/cpython/Python/bltinmodule.c:884,1
    - Dst: strcmp
      Src: /src/cpython/Python/bltinmodule.c:886,1
    - Dst: strcmp
      Src: /src/cpython/Python/bltinmodule.c:888,1
    - Dst: strcmp
      Src: /src/cpython/Python/bltinmodule.c:890,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:892,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:904,1
    - Dst: PyAST_Check
      Src: /src/cpython/Python/bltinmodule.c:908,1
    - Dst: _PyArena_New
      Src: /src/cpython/Python/bltinmodule.c:912,1
    - Dst: PyAST_obj2mod
      Src: /src/cpython/Python/bltinmodule.c:918,1
    - Dst: _PyAST_Validate
      Src: /src/cpython/Python/bltinmodule.c:919,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/bltinmodule.c:920,1
    - Dst: _PyCompile_AstPreprocess
      Src: /src/cpython/Python/bltinmodule.c:924,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/bltinmodule.c:927,1
    - Dst: PyAST_mod2obj
      Src: /src/cpython/Python/bltinmodule.c:930,1
    - Dst: PyAST_obj2mod
      Src: /src/cpython/Python/bltinmodule.c:933,1
    - Dst: _PyAST_Validate
      Src: /src/cpython/Python/bltinmodule.c:934,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/bltinmodule.c:935,1
    - Dst: _PyAST_Compile
      Src: /src/cpython/Python/bltinmodule.c:938,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/bltinmodule.c:941,1
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Python/bltinmodule.c:945,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:953,1
    - Dst: _Py_CompileStringObjectWithModule
      Src: /src/cpython/Python/bltinmodule.c:957,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:965,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 9
    argNames:
    - module
    - source
    - filename
    - mode
    - flags
    - dont_inherit
    - optimize
    - modname
    - feature_version
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    - int
    - int
    - int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 837
    functionDepth: 16
    functionLinenumber: 837
    functionLinenumberEnd: 972
    functionName: builtin_compile_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyAST_Validate
    - strcmp
    - _PyAST_Compile
    - PyAST_mod2obj
    - PyErr_SetString
    - _Py_CompileStringObjectWithModule
    - _PyArena_Free
    - PyUnicode_Check
    - _PyCompile_AstPreprocess
    - _PyThreadState_GET
    - _Py_SourceAsString
    - PyErr_Format
    - Py_XDECREF
    - PyAST_obj2mod
    - PyEval_MergeCompilerFlags
    - _PyArena_New
    - PyAST_Check
    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, PyObject *modname, int feature_version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/cpython/Python/bltinmodule.c:980,1
    - Dst: PyObject_Dir
      Src: /src/cpython/Python/bltinmodule.c:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 975
    functionDepth: 3
    functionLinenumber: 975
    functionLinenumberEnd: 983
    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:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1014
    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:1039,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/bltinmodule.c:1043,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1044,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Python/bltinmodule.c:1047,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1048,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/bltinmodule.c:1048,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1057,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/bltinmodule.c:1059,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/bltinmodule.c:1061,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1062,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1063,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:1066,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1068,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1069,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1075,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1079,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:1082,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1084,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1084,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1085,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1090,1
    - Dst: _PyEval_EnsureBuiltins
      Src: /src/cpython/Python/bltinmodule.c:1093,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/bltinmodule.c:1097,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:1098,1
    - Dst: PyCode_GetNumFree
      Src: /src/cpython/Python/bltinmodule.c:1102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1103,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Python/bltinmodule.c:1107,1
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Python/bltinmodule.c:1112,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/cpython/Python/bltinmodule.c:1119,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1123,1
    - Dst: PyRun_StringFlags
      Src: /src/cpython/Python/bltinmodule.c:1126,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1130,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1134,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1135,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: 1061
        line_start: 1061
        source_file: /src/cpython/Python/bltinmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1137
      start: 1034
    functionDepth: 13
    functionLinenumber: 1034
    functionLinenumberEnd: 1137
    functionName: builtin_eval_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyErr_Occurred
    - assert
    - PyEval_MergeCompilerFlags
    - _PyEval_GetFrame
    - PySys_Audit
    - _PyEval_EnsureBuiltins
    - Py_XDECREF
    - PyAnyDict_Check
    - Py_INCREF
    - PyErr_SetString
    - PyCode_GetNumFree
    - _Py_SourceAsString
    - Py_DECREF
    - PyRun_StringFlags
    - Py_NewRef
    - PyEval_EvalCode
    - PyCode_Check
    - PyMapping_Check
    - _PyErr_Occurred
    - PyEval_GetGlobals
    - _PyEval_GetFrameLocals
    - _PyEval_GetGlobalsFromRunningMain
    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:1165,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1170,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/bltinmodule.c:1172,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/bltinmodule.c:1174,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1175,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1176,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:1179,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1181,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1182,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1187,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:1191,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:1194,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1196,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1197,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1202,1
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Python/bltinmodule.c:1205,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1206,1
    - Dst: PyMapping_Check
      Src: /src/cpython/Python/bltinmodule.c:1211,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1212,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1214,1
    - Dst: _PyEval_EnsureBuiltins
      Src: /src/cpython/Python/bltinmodule.c:1218,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/bltinmodule.c:1226,1
    - Dst: PyCode_GetNumFree
      Src: /src/cpython/Python/bltinmodule.c:1227,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1230,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:1237,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:1238,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1241,1
    - Dst: PyCell_Check
      Src: /src/cpython/Python/bltinmodule.c:1242,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1249,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:1256,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Python/bltinmodule.c:1261,1
    - Dst: PyEval_EvalCodeEx
      Src: /src/cpython/Python/bltinmodule.c:1263,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1273,1
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Python/bltinmodule.c:1281,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/cpython/Python/bltinmodule.c:1286,1
    - Dst: PyRun_StringFlags
      Src: /src/cpython/Python/bltinmodule.c:1287,1
    - Dst: PyRun_String
      Src: /src/cpython/Python/bltinmodule.c:1290,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1297,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1301,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1302,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 109
    argCount: 5
    argNames:
    - module
    - source
    - globals
    - locals
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1195
        line_start: 1195
        source_file: /src/cpython/Python/bltinmodule.c
    - condition: (globals != NULL)
      pos:
        line_end: 1174
        line_start: 1174
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1304
      start: 1160
    functionDepth: 15
    functionLinenumber: 1160
    functionLinenumberEnd: 1304
    functionName: builtin_exec_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyEval_EvalCodeEx
    - _PyThreadState_GET
    - PyErr_Occurred
    - assert
    - PyTuple_GET_SIZE
    - PyEval_MergeCompilerFlags
    - Py_TYPE
    - _PyEval_GetFrame
    - PySys_Audit
    - _PyEval_EnsureBuiltins
    - PyCell_Check
    - Py_XDECREF
    - PyTuple_CheckExact
    - PyAnyDict_Check
    - Py_INCREF
    - PyRun_String
    - PyErr_SetString
    - PyCode_GetNumFree
    - _Py_SourceAsString
    - Py_DECREF
    - PyRun_StringFlags
    - Py_NewRef
    - PyEval_EvalCode
    - PyCode_Check
    - _PyErr_Occurred
    - PyMapping_Check
    - PyEval_GetGlobals
    - PyErr_Format
    - _PyEval_GetFrameLocals
    - _PyEval_GetGlobalsFromRunningMain
    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:1313,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:1319,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1321,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:1325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1308
    functionDepth: 3
    functionLinenumber: 1308
    functionLinenumberEnd: 1328
    functionName: builtin_getattr
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - Py_NewRef
    - PyObject_GetAttr
    - 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:1354,1
    - Dst: PyEval_GetGlobals
      Src: /src/cpython/Python/bltinmodule.c:1355,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1356,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1357,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1359,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:1360,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1362,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (globals != NULL)
      pos:
        line_end: 1355
        line_start: 1355
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1368
      start: 1349
    functionDepth: 3
    functionLinenumber: 1349
    functionLinenumberEnd: 1368
    functionName: builtin_globals_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetFrame
    - _PyErr_Occurred
    - PyEval_GetGlobals
    - _PyThreadState_GET
    - assert
    - Py_NewRef
    - _PyEval_GetGlobalsFromRunningMain
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_globals_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:1389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1383
    functionDepth: 2
    functionLinenumber: 1383
    functionLinenumberEnd: 1397
    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:1421,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:1423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyModuleDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1417
    functionDepth: 2
    functionLinenumber: 1417
    functionLinenumberEnd: 1429
    functionName: builtin_id_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySys_Audit
    - PyLong_FromVoidPtr
    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: 1442
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1442
    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:1452,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Python/bltinmodule.c:1457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1459,1
    - Dst: PyTuple_Size
      Src: /src/cpython/Python/bltinmodule.c:1465,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1467,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:1472,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:1478,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1480,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1483,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:1487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1489,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1493,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1494,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1498
    functionName: map_new
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 8
    functionsReached:
    - PyTuple_Size
    - PyTuple_GET_ITEM
    - PyErr_SetString
    - PyObject_GetIter
    - PyTuple_SET_ITEM
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyTuple_New
    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:1504,1
    - Dst: PyVectorcall_NARGS
      Src: /src/cpython/Python/bltinmodule.c:1506,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:1507,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1509,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/cpython/Python/bltinmodule.c:1510,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1514,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:1519,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:1525,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1527,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1530,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:1533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1535,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1539,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: 1543
      start: 1500
    functionDepth: 4
    functionLinenumber: 1500
    functionLinenumberEnd: 1543
    functionName: map_vectorcall
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_MakeTpCall
    - PyTuple_New
    - PyErr_SetString
    - PyObject_GetIter
    - _PyThreadState_GET
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - PyVectorcall_NARGS
    - Py_NewRef
    - _PyType_CAST
    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:1548,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bltinmodule.c:1549,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1550,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:1551,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1553
    functionName: map_dealloc
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - _mapobject_CAST
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void map_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mapobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:1558,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:1559,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:1560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1562
    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:1567,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:1572,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:1574,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/cpython/Python/bltinmodule.c:1575,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/bltinmodule.c:1579,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/bltinmodule.c:1581,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1588,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1589,1
    - Dst: _PyObject_VectorcallTstate
      Src: /src/cpython/Python/bltinmodule.c:1600,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1604,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:1605,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:1609,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1615,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1621,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1624,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1626,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1631,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:1632,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:1636,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1647,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/bltinmodule.c:1650,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (result == NULL)
      pos:
        line_end: 1642
        line_start: 1642
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1653
      start: 1564
    functionDepth: 7
    functionLinenumber: 1564
    functionLinenumberEnd: 1653
    functionName: map_next
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyObject_VectorcallTstate
    - assert
    - Py_ARRAY_LENGTH
    - _PyThreadState_GET
    - PyErr_Clear
    - _PyErr_NoMemory
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - PyMem_Malloc
    - PyErr_Format
    - PyMem_Free
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _mapobject_CAST
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_next(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mapobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:1658,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:1659,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:1660,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1664,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1664,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1666,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:1667,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1667,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/bltinmodule.c:1671,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1671,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/bltinmodule.c:1673,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1655
    functionDepth: 3
    functionLinenumber: 1655
    functionLinenumberEnd: 1674
    functionName: map_reduce
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_BuildValue
    - PyTuple_SET_ITEM
    - PyTuple_GET_SIZE
    - _mapobject_CAST
    - Py_NewRef
    - PyTuple_New
    - 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:1681,1
    - Dst: _mapobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1678
    functionDepth: 2
    functionLinenumber: 1678
    functionLinenumberEnd: 1688
    functionName: map_setstate
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _mapobject_CAST
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_setstate(PyObject *self, PyObject *state)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/cpython/Python/bltinmodule.c:1759,1
    - Dst: PyIter_Check
      Src: /src/cpython/Python/bltinmodule.c:1763,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1764,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1766,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:1770,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1775,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:1776,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:1778,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:1780,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1781,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/bltinmodule.c:1784,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1787
    functionName: builtin_next
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyIter_Check
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - PyErr_Format
    - PyErr_SetNone
    - Py_NewRef
    - 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:1814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1809
    functionDepth: 2
    functionLinenumber: 1809
    functionLinenumberEnd: 1817
    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:1836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1840
    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:1863,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bltinmodule.c:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1857
    functionDepth: 3
    functionLinenumber: 1857
    functionLinenumberEnd: 1867
    functionName: builtin_hash
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_hash(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_ToBase
      Src: /src/cpython/Python/bltinmodule.c:1886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - integer
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1882
    functionDepth: 3
    functionLinenumber: 1882
    functionLinenumberEnd: 1887
    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:1896,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:1900,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/bltinmodule.c:1901,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:1902,1
    - Dst: PyCallIter_New
      Src: /src/cpython/Python/bltinmodule.c:1907,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1891
    functionDepth: 3
    functionLinenumber: 1891
    functionLinenumberEnd: 1908
    functionName: builtin_iter
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyCallIter_New
    - PyCallable_Check
    - PyErr_SetString
    - PyObject_GetIter
    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:1933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - async_iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1929
    functionDepth: 3
    functionLinenumber: 1929
    functionLinenumberEnd: 1934
    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:1959,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:1961,1
    - Dst: PyAnextAwaitable_New
      Src: /src/cpython/Python/bltinmodule.c:1975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:1977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - aiterator
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1951
    functionDepth: 2
    functionLinenumber: 1951
    functionLinenumberEnd: 1979
    functionName: builtin_anext_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Format
    - PyAnextAwaitable_New
    - Py_TYPE
    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:1997,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:1999,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:1999,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bltinmodule.c:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1998
        line_start: 1998
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2003
      start: 1991
    functionDepth: 2
    functionLinenumber: 1991
    functionLinenumberEnd: 2003
    functionName: builtin_len
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyObject_Size
    - PyErr_Occurred
    - 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:2022,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:2023,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2024,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2024,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:2027,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:2028,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2030,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:2035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (locals != NULL || PyErr_Occurred())
      pos:
        line_end: 2023
        line_start: 2023
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2036
      start: 2017
    functionDepth: 13
    functionLinenumber: 2017
    functionLinenumberEnd: 2036
    functionName: builtin_locals_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetFrame
    - Py_NewRef
    - _PyErr_Occurred
    - _PyThreadState_GET
    - PyErr_Occurred
    - assert
    - _PyEval_GetFrameLocals
    - _PyEval_GetGlobalsFromRunningMain
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_locals_impl(PyObject *module)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2051,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/cpython/Python/bltinmodule.c:2055,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2062,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:2069,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:2087,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:2090,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2092,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/bltinmodule.c:2101,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:2107,1
    - Dst: PyObject_RichCompareBool
      Src: /src/cpython/Python/bltinmodule.c:2117,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2121,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2128,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2133,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:2135,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2142,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2143,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2149,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2151,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2152,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2153,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: 2132
        line_start: 2132
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2155
      start: 2039
    functionDepth: 4
    functionLinenumber: 2039
    functionLinenumberEnd: 2155
    functionName: min_max
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_RichCompareBool
    - assert
    - _PyArg_ParseStackAndKeywords
    - PyObject_GetIter
    - PyErr_Format
    - PyErr_Occurred
    - Py_DECREF
    - Py_XDECREF
    - PyIter_Next
    - Py_NewRef
    - PyObject_CallOneArg
    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:2161,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: 2162
      start: 2158
    functionDepth: 5
    functionLinenumber: 2158
    functionLinenumberEnd: 2162
    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:2178,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: 2179
      start: 2175
    functionDepth: 5
    functionLinenumber: 2175
    functionLinenumberEnd: 2179
    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:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - integer
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2203
    functionDepth: 3
    functionLinenumber: 2203
    functionLinenumberEnd: 2208
    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:2233,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:2234,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/bltinmodule.c:2236,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bltinmodule.c:2237,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2240,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/bltinmodule.c:2241,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/bltinmodule.c:2243,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bltinmodule.c:2244,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/bltinmodule.c:2247,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:2249,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Python/bltinmodule.c:2251,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bltinmodule.c:2252,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2256,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:2258,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - module
    - c
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2267
    functionName: builtin_ord
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_READ_CHAR
    - PyBytes_Check
    - PyUnicode_Check
    - PyByteArray_GET_SIZE
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_AS_STRING
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_ord(PyObject *module, PyObject *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Power
      Src: /src/cpython/Python/bltinmodule.c:2289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - base
    - exp
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2284
    functionDepth: 3
    functionLinenumber: 2284
    functionLinenumberEnd: 2290
    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:2318,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2325,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:2330,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2336,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2337,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:2339,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2340,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2346,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2347,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:2349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2350,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/bltinmodule.c:2357,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/bltinmodule.c:2360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2363,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/bltinmodule.c:2367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2369,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/bltinmodule.c:2375,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/bltinmodule.c:2378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2381,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/bltinmodule.c:2386,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2387,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2391,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: 2394
      start: 2309
    functionDepth: 6
    functionLinenumber: 2309
    functionLinenumberEnd: 2394
    functionName: builtin_print_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PySys_GetAttr
    - PyFile_WriteString
    - PyUnicode_Check
    - _PyFile_Flush
    - PyErr_Format
    - Py_DECREF
    - PyFile_WriteObject
    - Py_TYPE
    - _Py_ID
    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:2425,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2425,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2430,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2433,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2433,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2438,1
    - Dst: PySys_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2441,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2441,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2446,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:2450,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/bltinmodule.c:2455,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2456,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/bltinmodule.c:2462,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2462,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2464,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/bltinmodule.c:2468,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2469,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2470,1
    - Dst: fileno
      Src: /src/cpython/Python/bltinmodule.c:2473,1
    - Dst: isatty
      Src: /src/cpython/Python/bltinmodule.c:2473,1
    - Dst: PyObject_CallMethodNoArgs
      Src: /src/cpython/Python/bltinmodule.c:2476,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2476,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2478,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/bltinmodule.c:2482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2483,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2484,1
    - Dst: fileno
      Src: /src/cpython/Python/bltinmodule.c:2486,1
    - Dst: isatty
      Src: /src/cpython/Python/bltinmodule.c:2486,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2502,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2502,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2507,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2507,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2512,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2513,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/bltinmodule.c:2518,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/bltinmodule.c:2522,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/bltinmodule.c:2526,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2527,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2533,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2533,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2538,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2538,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2543,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2544,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/bltinmodule.c:2549,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/bltinmodule.c:2553,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/bltinmodule.c:2557,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/bltinmodule.c:2560,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bltinmodule.c:2562,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bltinmodule.c:2563,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/bltinmodule.c:2564,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2567,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/bltinmodule.c:2567,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/bltinmodule.c:2568,1
    - Dst: strlen
      Src: /src/cpython/Python/bltinmodule.c:2569,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:2569,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2570,1
    - Dst: PyOS_Readline
      Src: /src/cpython/Python/bltinmodule.c:2579,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/bltinmodule.c:2581,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2582,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/bltinmodule.c:2583,1
    - Dst: strlen
      Src: /src/cpython/Python/bltinmodule.c:2587,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/bltinmodule.c:2589,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2594,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Python/bltinmodule.c:2602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2607,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2608,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/bltinmodule.c:2609,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/bltinmodule.c:2612,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2618,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2619,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2623,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2624,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2625,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2626,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2627,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2631,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/bltinmodule.c:2636,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/bltinmodule.c:2639,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:2640,1
    - Dst: PyFile_GetLine
      Src: /src/cpython/Python/bltinmodule.c:2642,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2645,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2649,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2650,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:2651,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 214
    argCount: 2
    argNames:
    - module
    - prompt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(po))
      pos:
        line_end: 2566
        line_start: 2566
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2653
      start: 2413
    functionDepth: 6
    functionLinenumber: 2413
    functionLinenumberEnd: 2653
    functionName: builtin_input_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyErr_Occurred
    - assert
    - PyErr_SetNone
    - PyUnicode_Decode
    - fileno
    - PySys_Audit
    - PySys_GetAttr
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - PyLong_AsLong
    - strlen
    - PyBytes_AS_STRING
    - Py_XDECREF
    - PyMem_Free
    - PyUnicode_AsEncodedString
    - PyErr_SetString
    - isatty
    - _PyFile_Flush
    - PyErr_Clear
    - Py_DECREF
    - PyObject_CallMethodNoArgs
    - PyBytes_GET_SIZE
    - PyFile_WriteObject
    - PyFile_GetLine
    - PyObject_Str
    - PyErr_CheckSignals
    - PyObject_GetAttr
    - Py_CLEAR
    - PyOS_Readline
    - _Py_ID
    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:2671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2667
    functionDepth: 3
    functionLinenumber: 2667
    functionLinenumberEnd: 2672
    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:2694,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2694,1
    - Dst: _PyObject_MaybeCallSpecialOneArg
      Src: /src/cpython/Python/bltinmodule.c:2697,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2697,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2700,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:2701,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:2703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - number
    - ndigits
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2688
    functionDepth: 5
    functionLinenumber: 2688
    functionLinenumberEnd: 2706
    functionName: builtin_round_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_MaybeCallSpecialOneArg
    - _PyObject_MaybeCallSpecialNoArgs
    - PyErr_Format
    - PyErr_Occurred
    - Py_TYPE
    - _Py_ID
    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:2745,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/bltinmodule.c:2748,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/bltinmodule.c:2752,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2754,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2758,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/bltinmodule.c:2759,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2765,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: 2757
        line_start: 2757
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2767
      start: 2738
    functionDepth: 3
    functionLinenumber: 2738
    functionLinenumberEnd: 2767
    functionName: builtin_sorted
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - PyObject_Vectorcall
    - PyObject_GetAttr
    - _PyArg_UnpackStack
    - assert
    - Py_DECREF
    - _Py_ID
    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:2777,1
    - Dst: _PyEval_GetFrame
      Src: /src/cpython/Python/bltinmodule.c:2780,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:2781,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/bltinmodule.c:2784,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/bltinmodule.c:2785,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2787,1
    - Dst: _PyEval_GetFrameLocals
      Src: /src/cpython/Python/bltinmodule.c:2788,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:2789,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2789,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:2793,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/bltinmodule.c:2798,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/bltinmodule.c:2798,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 2788
        line_start: 2788
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2804
      start: 2771
    functionDepth: 13
    functionLinenumber: 2771
    functionLinenumberEnd: 2804
    functionName: builtin_vars
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetFrame
    - Py_INCREF
    - PyErr_SetString
    - _PyErr_Occurred
    - PyObject_GetOptionalAttr
    - _PyThreadState_GET
    - _Py_ID
    - assert
    - _PyEval_GetFrameLocals
    - _PyEval_GetGlobalsFromRunningMain
    - PyArg_UnpackTuple
    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: 2829
      start: 2825
    functionDepth: 0
    functionLinenumber: 2825
    functionLinenumberEnd: 2829
    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:2835,1
    - Dst: fabs
      Src: /src/cpython/Python/bltinmodule.c:2835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - total
    - x
    argTypes:
    - CompensatedSum
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2831
    functionDepth: 0
    functionLinenumber: 2831
    functionLinenumberEnd: 2842
    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:2850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - total
    argTypes:
    - CompensatedSum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2844
    functionDepth: 0
    functionLinenumber: 2844
    functionLinenumberEnd: 2854
    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:2878,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/bltinmodule.c:2883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2885,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/bltinmodule.c:2890,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2893,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/bltinmodule.c:2896,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2899,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/bltinmodule.c:2902,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/bltinmodule.c:2903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2905,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:2908,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2916,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/bltinmodule.c:2918,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:2921,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: PyLong_FromSsize_t
      Src: /src/cpython/Python/bltinmodule.c:2929,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2931,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/bltinmodule.c:2931,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/bltinmodule.c:2935,1
    - Dst: _PyLong_CompactValue
      Src: /src/cpython/Python/bltinmodule.c:2936,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/bltinmodule.c:2939,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2946,1
    - Dst: PyLong_FromSsize_t
      Src: /src/cpython/Python/bltinmodule.c:2951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2953,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2954,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/bltinmodule.c:2957,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2962,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2968,1
    - Dst: cs_from_double
      Src: /src/cpython/Python/bltinmodule.c:2969,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bltinmodule.c:2969,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:2970,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:2972,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2974,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2975,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bltinmodule.c:2977,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:2977,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:2979,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:2980,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bltinmodule.c:2980,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Python/bltinmodule.c:2981,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/bltinmodule.c:2984,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Python/bltinmodule.c:2985,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:2986,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:2987,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2993,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/bltinmodule.c:2997,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:2997,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:2999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3000,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/bltinmodule.c:3003,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3008,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:3014,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Python/bltinmodule.c:3015,1
    - Dst: cs_from_double
      Src: /src/cpython/Python/bltinmodule.c:3016,1
    - Dst: cs_from_double
      Src: /src/cpython/Python/bltinmodule.c:3017,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:3018,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:3020,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3022,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:3023,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Python/bltinmodule.c:3026,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:3026,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:3027,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/bltinmodule.c:3029,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Python/bltinmodule.c:3030,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:3031,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:3032,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3033,1
    - Dst: PyLong_Check
      Src: /src/cpython/Python/bltinmodule.c:3036,1
    - Dst: PyLong_AsDouble
      Src: /src/cpython/Python/bltinmodule.c:3037,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:3038,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:3039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3040,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3044,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3045,1
    - Dst: PyFloat_Check
      Src: /src/cpython/Python/bltinmodule.c:3049,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/bltinmodule.c:3050,1
    - Dst: cs_add
      Src: /src/cpython/Python/bltinmodule.c:3051,1
    - Dst: _Py_DECREF_SPECIALIZED
      Src: /src/cpython/Python/bltinmodule.c:3052,1
    - Dst: PyComplex_FromDoubles
      Src: /src/cpython/Python/bltinmodule.c:3055,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:3055,1
    - Dst: cs_to_double
      Src: /src/cpython/Python/bltinmodule.c:3056,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3059,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/bltinmodule.c:3062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3067,1
    - Dst: PyIter_Next
      Src: /src/cpython/Python/bltinmodule.c:3075,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:3078,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/bltinmodule.c:3079,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/bltinmodule.c:3096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3103,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 178
    argCount: 3
    argNames:
    - module
    - iterable
    - start
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 2871
    functionDepth: 5
    functionLinenumber: 2871
    functionLinenumberEnd: 3105
    functionName: builtin_sum_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyLong_FromLong
    - PyFloat_AS_DOUBLE
    - PyBytes_Check
    - PyFloat_FromDouble
    - PyObject_GetIter
    - cs_from_double
    - PyComplex_CheckExact
    - PyErr_Occurred
    - PyComplex_FromDoubles
    - PyComplex_AsCComplex
    - PyIter_Next
    - cs_to_double
    - PyNumber_Add
    - PyUnicode_Check
    - PyLong_Check
    - PyFloat_CheckExact
    - PyLong_FromSsize_t
    - Py_INCREF
    - _PyLong_IsCompact
    - PyErr_SetString
    - PyLong_AsDouble
    - PyFloat_Check
    - PyLong_CheckExact
    - Py_DECREF
    - _Py_DECREF_SPECIALIZED
    - _PyLong_CompactValue
    - PyBool_Check
    - Py_SETREF
    - cs_add
    - PyByteArray_Check
    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:3130,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/bltinmodule.c:3133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - obj
    - class_or_tuple
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3123
    functionDepth: 7
    functionLinenumber: 3123
    functionLinenumberEnd: 3134
    functionName: builtin_isinstance_impl
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyObject_IsInstance
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_isinstance_impl(PyObject *module, PyObject *obj,\n
      \                       PyObject *class_or_tuple)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/bltinmodule.c:3158,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/bltinmodule.c:3161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - cls
    - class_or_tuple
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3151
    functionDepth: 7
    functionLinenumber: 3151
    functionLinenumberEnd: 3162
    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: 3173
      start: 3172
    functionDepth: 0
    functionLinenumber: 3172
    functionLinenumberEnd: 3173
    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:3185,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/cpython/Python/bltinmodule.c:3190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3192,1
    - Dst: assert
      Src: /src/cpython/Python/bltinmodule.c:3199,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/bltinmodule.c:3199,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/bltinmodule.c:3200,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:3203,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3207,1
    - Dst: PyObject_GetIter
      Src: /src/cpython/Python/bltinmodule.c:3208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3210,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3213,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:3217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3219,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3223,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/bltinmodule.c:3223,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/cpython/Python/bltinmodule.c:3227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3230,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: 3198
        line_start: 3198
        source_file: /src/cpython/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 3239
      start: 3174
    functionDepth: 3
    functionLinenumber: 3174
    functionLinenumberEnd: 3239
    functionName: zip_new
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyArg_ParseTupleAndKeywords
    - PyObject_GetIter
    - PyTuple_SET_ITEM
    - PyTuple_Check
    - assert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - Py_NewRef
    - PyTuple_New
    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:3244,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/bltinmodule.c:3245,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:3246,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/bltinmodule.c:3247,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3241
    functionDepth: 1
    functionLinenumber: 3241
    functionLinenumberEnd: 3249
    functionName: zip_dealloc
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - _zipobject_CAST
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void zip_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _zipobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:3254,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:3255,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/bltinmodule.c:3256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3251
    functionDepth: 1
    functionLinenumber: 3251
    functionLinenumberEnd: 3258
    functionName: zip_traverse
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _zipobject_CAST
    - Py_VISIT
    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:3263,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/bltinmodule.c:3275,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/bltinmodule.c:3276,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3281,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3287,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3289,1
    - Dst: _PyTuple_Recycle
      Src: /src/cpython/Python/bltinmodule.c:3293,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/bltinmodule.c:3295,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3299,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3302,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3308,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:3313,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:3314,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:3318,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:3324,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/bltinmodule.c:3329,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3332,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/bltinmodule.c:3334,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/bltinmodule.c:3338,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/bltinmodule.c:3339,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/bltinmodule.c:3343,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3260
    functionDepth: 3
    functionLinenumber: 3260
    functionLinenumberEnd: 3349
    functionName: zip_next
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - Py_INCREF
    - _zipobject_CAST
    - PyTuple_New
    - _PyTuple_Recycle
    - PyTuple_SET_ITEM
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - PyErr_Format
    - Py_DECREF
    - _PyObject_IsUniquelyReferenced
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_next(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _zipobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:3354,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/bltinmodule.c:3357,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3357,1
    - Dst: _PyTuple_FromPair
      Src: /src/cpython/Python/bltinmodule.c:3359,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/bltinmodule.c:3359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3351
    functionDepth: 3
    functionLinenumber: 3351
    functionLinenumberEnd: 3360
    functionName: zip_reduce
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromPair
    - _zipobject_CAST
    - PyTuple_Pack
    - Py_TYPE
    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:3365,1
    - Dst: _zipobject_CAST
      Src: /src/cpython/Python/bltinmodule.c:3369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3372
      start: 3362
    functionDepth: 2
    functionLinenumber: 3362
    functionLinenumberEnd: 3372
    functionName: zip_setstate
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _zipobject_CAST
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_setstate(PyObject *self, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/bltinmodule.c:3520,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/cpython/Python/bltinmodule.c:3522,1
    - Dst: PyUnstable_Module_SetGIL
      Src: /src/cpython/Python/bltinmodule.c:3526,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/bltinmodule.c:3528,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3547,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3548,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3549,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3550,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3551,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3552,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3553,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3554,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3555,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3556,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3557,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3558,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3559,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3560,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3561,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3562,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3563,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3564,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3565,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3566,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3567,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3568,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3569,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3570,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3571,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3572,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3573,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3574,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3575,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3576,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3577,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3578,1
    - Dst: SETBUILTIN
      Src: /src/cpython/Python/bltinmodule.c:3579,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/bltinmodule.c:3580,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/bltinmodule.c:3581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/bltinmodule.c:3585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3515
    functionDepth: 15
    functionLinenumber: 3515
    functionLinenumberEnd: 3590
    functionName: _PyBuiltin_Init
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Module_SetGIL
    - _PyInterpreterState_GetConfig
    - _PyModule_CreateInitialized
    - PyModule_GetDict
    - SETBUILTIN
    - PyDict_SetItemString
    - PyBool_FromLong
    - Py_DECREF
    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: 3538
      start: 3537
    functionDepth: 0
    functionLinenumber: 3537
    functionLinenumberEnd: 3538
    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: 3540
      start: 3539
    functionDepth: 0
    functionLinenumber: 3539
    functionLinenumberEnd: 3540
    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: 3546
      start: 3542
    functionDepth: 0
    functionLinenumber: 3542
    functionLinenumberEnd: 3546
    functionName: SETBUILTIN
    functionSourceFile: /src/cpython/Python/bltinmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBUILTIN(NAME, OBJECT)
  - 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_Format
    - PyErr_Occurred
    - _config_dict_get
    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: 11
    functionLinenumber: 54
    functionLinenumberEnd: 102
    functionName: _PyInterpreterConfig_AsDict
    functionSourceFile: /src/cpython/Python/interpconfig.c
    functionUses: 2
    functionsReached:
    - gil_flag_to_str
    - ADD_BOOL
    - ADD_STR
    - Py_DECREF
    - PyDict_New
    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: 20
    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:
    - Py_DECREF
    - config_dict_invalid_type
    - _config_dict_get
    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:
    - strncpy
    - PyUnicode_Check
    - _config_dict_get
    - config_dict_invalid_type
    - PyUnicode_AsUTF8
    - Py_DECREF
    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:
    - PyDict_Update
    - gil_flag_from_str
    - CHECK
    - _config_dict_copy_str
    - PyErr_Format
    - COPY_BOOL
    - Py_DECREF
    - PyDict_GET_SIZE
    - PyDict_PopString
    - PyDict_New
    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: 80
    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:
    - PyErr_SetString
    - PyDict_Check
    - 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:
    - PyErr_SetString
    - PyDict_Check
    - 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: 531
    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:
    - wcschr
    - _PyStatus_OK
    - _PyMem_DefaultRawFree
    - wcscpy
    - _PyStatus_NO_MEMORY
    - COPY_INT
    - _PyMem_DefaultRawMalloc
    - COPY
    - COPY2
    - wcslen
    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
    - _PyPathConfig_ClearGlobal
    - _PyMem_DefaultRawFree
    - path_out_of_memory
    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
    - _PyMem_DefaultRawFree
    - path_out_of_memory
    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: 0
    functionsReached:
    - _PyMem_DefaultRawWcsdup
    - _PyMem_DefaultRawFree
    - path_out_of_memory
    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:
    - PyUnicode_FromWideChar
    - wcslen
    - wcschr
    - _Py_wreadlink
    - GetFullPathNameW
    - Py_ARRAY_LENGTH
    - _Py_wgetcwd
    - _PyWideStringList_CheckConsistency
    - _Py_wrealpath
    - wcsncpy
    - assert
    - wcsrchr
    - wcscmp
    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:771,1
    - Dst: _PyFrame_GetCode
      Src: /src/cpython/Python/opcode_targets.h:773,1
    - Dst: PyUnstable_InterpreterFrame_GetLine
      Src: /src/cpython/Python/opcode_targets.h:774,1
    - Dst: JUMP_TO_LABEL
      Src: /src/cpython/Python/opcode_targets.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 777
    functionName: Py_PRESERVE_NONE_CC::_TAIL_CALL_UNKNOWN_OPCODE
    functionSourceFile: /src/cpython/Python/opcode_targets.h
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - PyUnstable_InterpreterFrame_GetLine
    - _PyFrame_GetCode
    - JUMP_TO_LABEL
    linkageType: ''
    returnType: PyObject
    signature: PyObject *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:
    - PyMem_RawMalloc
    - _Py_FREELIST_POP_MEM
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - ELFObjectContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: elfctx_append_string
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 171
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: elfctx_append_sleb128
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 192
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: elfctx_append_uleb128
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: DWRF_U8
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: DWRF_I8
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: DWRF_U16
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: DWRF_U32
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: DWRF_ADDR
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: DWRF_UV
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: DWRF_SV
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: DWRF_STR
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: DWRF_ALIGNNOP
    functionSourceFile: /src/cpython/Python/jit_unwind.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: 223
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: DWRF_SECTION
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWRF_SECTION(name, stmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_init_ehframe_gdb
      Src: /src/cpython/Python/jit_unwind.c:236,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/jit_unwind.c:238,1
    - Dst: elf_init_ehframe_perf
      Src: /src/cpython/Python/jit_unwind.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - absolute_addr
    argTypes:
    - ELFObjectContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: elf_init_ehframe
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - elf_init_ehframe_gdb
    - elf_init_ehframe_perf
    linkageType: ''
    returnType: void
    signature: void elf_init_ehframe(ELFObjectContext* ctx, int absolute_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Static_assert
      Src: /src/cpython/Python/jit_unwind.c:251,1
    - Dst: elf_init_ehframe
      Src: /src/cpython/Python/jit_unwind.c:259,1
    - Dst: assert
      Src: /src/cpython/Python/jit_unwind.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - absolute_addr
    argTypes:
    - int
    assertStmts:
    - condition: (size <= (ptrdiff_t)sizeof(scratch))
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/cpython/Python/jit_unwind.c
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: _PyJitUnwind_EhFrameSize
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 0
    functionsReached:
    - elf_init_ehframe
    - _Static_assert
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t _PyJitUnwind_EhFrameSize(int absolute_addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyJitUnwind_EhFrameSize
      Src: /src/cpython/Python/jit_unwind.c:274,1
    - Dst: elf_init_ehframe
      Src: /src/cpython/Python/jit_unwind.c:283,1
    - Dst: assert
      Src: /src/cpython/Python/jit_unwind.c:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - buffer
    - buffer_size
    - code_addr
    - code_size
    - absolute_addr
    argTypes:
    - uint8_t*
    - size_t
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (written == required)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/cpython/Python/jit_unwind.c
    constantsTouched: []
    func_position:
      end: 288
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 288
    functionName: _PyJitUnwind_BuildEhFrame
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 0
    functionsReached:
    - elf_init_ehframe
    - _PyJitUnwind_EhFrameSize
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t _PyJitUnwind_BuildEhFrame(uint8_t *buffer, size_t buffer_size,\n
      \                       const void *code_addr, size_t code_size,\n                        int
      absolute_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DWRF_SECTION
      Src: /src/cpython/Python/jit_unwind.c:488,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/jit_unwind.c:489,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:490,1
    - Dst: DWRF_STR
      Src: /src/cpython/Python/jit_unwind.c:491,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:493,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:495,1
    - Dst: DWRF_SV
      Src: /src/cpython/Python/jit_unwind.c:497,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:498,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:499,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:500,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:505,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:506,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:507,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:508,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:509,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:512,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:513,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:514,1
    - Dst: DWRF_ALIGNNOP
      Src: /src/cpython/Python/jit_unwind.c:517,1
    - Dst: DWRF_SECTION
      Src: /src/cpython/Python/jit_unwind.c:529,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/jit_unwind.c:530,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/jit_unwind.c:538,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/jit_unwind.c:539,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:540,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:552,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:554,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:555,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:556,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:557,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:558,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:559,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:560,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:561,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:562,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:563,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:564,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:565,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:570,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:573,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:575,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:576,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:577,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:578,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:579,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:580,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:581,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:582,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:584,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:586,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:587,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:588,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:589,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:590,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:591,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:592,1
    - Dst: DWRF_ALIGNNOP
      Src: /src/cpython/Python/jit_unwind.c:598,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/jit_unwind.c:646,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ELFObjectContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 649
    functionName: elf_init_ehframe_perf
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 1
    functionsReached:
    - DWRF_ALIGNNOP
    - DWRF_STR
    - DWRF_SECTION
    - DWRF_U32
    - DWRF_SV
    - _Py_SIZE_ROUND_UP
    - DWRF_UV
    - DWRF_U8
    linkageType: ''
    returnType: void
    signature: void elf_init_ehframe_perf(ELFObjectContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DWRF_SECTION
      Src: /src/cpython/Python/jit_unwind.c:668,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/jit_unwind.c:669,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:670,1
    - Dst: DWRF_STR
      Src: /src/cpython/Python/jit_unwind.c:671,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:672,1
    - Dst: DWRF_SV
      Src: /src/cpython/Python/jit_unwind.c:673,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:674,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:675,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:676,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:679,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:680,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:681,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:682,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:683,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:684,1
    - Dst: DWRF_UV
      Src: /src/cpython/Python/jit_unwind.c:685,1
    - Dst: DWRF_ALIGNNOP
      Src: /src/cpython/Python/jit_unwind.c:686,1
    - Dst: DWRF_SECTION
      Src: /src/cpython/Python/jit_unwind.c:689,1
    - Dst: DWRF_U32
      Src: /src/cpython/Python/jit_unwind.c:690,1
    - Dst: DWRF_ADDR
      Src: /src/cpython/Python/jit_unwind.c:691,1
    - Dst: DWRF_ADDR
      Src: /src/cpython/Python/jit_unwind.c:692,1
    - Dst: DWRF_U8
      Src: /src/cpython/Python/jit_unwind.c:693,1
    - Dst: DWRF_ALIGNNOP
      Src: /src/cpython/Python/jit_unwind.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ELFObjectContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 698
    functionName: elf_init_ehframe_gdb
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 1
    functionsReached:
    - DWRF_ALIGNNOP
    - DWRF_STR
    - DWRF_SECTION
    - DWRF_U32
    - DWRF_SV
    - DWRF_UV
    - DWRF_ADDR
    - DWRF_U8
    linkageType: ''
    returnType: void
    signature: void elf_init_ehframe_gdb(ELFObjectContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 737
    functionName: __jit_debug_register_code
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __jit_debug_register_code(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 750
    functionName: gdb_jit_machine_id
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t gdb_jit_machine_id(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gdb_jit_machine_id
      Src: /src/cpython/Python/jit_unwind.c:769,1
    - Dst: _Static_assert
      Src: /src/cpython/Python/jit_unwind.c:785,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/jit_unwind.c:796,1
    - Dst: strlen
      Src: /src/cpython/Python/jit_unwind.c:797,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/jit_unwind.c:801,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/jit_unwind.c:810,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/cpython/Python/jit_unwind.c:813,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/jit_unwind.c:818,1
    - Dst: memset
      Src: /src/cpython/Python/jit_unwind.c:822,1
    - Dst: memcpy
      Src: /src/cpython/Python/jit_unwind.c:825,1
    - Dst: memcpy
      Src: /src/cpython/Python/jit_unwind.c:841,1
    - Dst: memcpy
      Src: /src/cpython/Python/jit_unwind.c:842,1
    - Dst: memcpy
      Src: /src/cpython/Python/jit_unwind.c:845,1
    - Dst: memcpy
      Src: /src/cpython/Python/jit_unwind.c:849,1
    - Dst: strlen
      Src: /src/cpython/Python/jit_unwind.c:849,1
    - Dst: memset
      Src: /src/cpython/Python/jit_unwind.c:853,1
    - Dst: ELF64_ST_INFO
      Src: /src/cpython/Python/jit_unwind.c:855,1
    - Dst: ELF64_ST_INFO
      Src: /src/cpython/Python/jit_unwind.c:859,1
    - Dst: memset
      Src: /src/cpython/Python/jit_unwind.c:867,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/jit_unwind.c:907,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_unwind.c:909,1
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/jit_unwind.c:916,1
    - Dst: __jit_debug_register_code
      Src: /src/cpython/Python/jit_unwind.c:925,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/jit_unwind.c:928,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 5
    argNames:
    - code_addr
    - code_size
    - symname
    - eh_frame
    - eh_frame_size
    argTypes:
    - void*
    - size_t
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 752
    functionDepth: 8
    functionLinenumber: 752
    functionLinenumberEnd: 930
    functionName: gdb_jit_register_code
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 0
    functionsReached:
    - gdb_jit_machine_id
    - PyMutex_Unlock
    - __jit_debug_register_code
    - _Py_SIZE_ROUND_UP
    - ELF64_ST_INFO
    - PyMem_RawFree
    - PyMem_RawMalloc
    - memset
    - memcpy
    - strlen
    - PyMutex_Lock
    - _Static_assert
    linkageType: ''
    returnType: struct jit_code_entry
    signature: "struct jit_code_entry *\ngdb_jit_register_code(\n    const void *code_addr,\n
      \   size_t code_size,\n    const char *symname,\n    const uint8_t *eh_frame,\n
      \   size_t eh_frame_size\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/cpython/Python/jit_unwind.c:947,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/jit_unwind.c:948,1
    - Dst: snprintf
      Src: /src/cpython/Python/jit_unwind.c:952,1
    - Dst: _PyJitUnwind_BuildEhFrame
      Src: /src/cpython/Python/jit_unwind.c:955,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_unwind.c:958,1
    - Dst: gdb_jit_register_code
      Src: /src/cpython/Python/jit_unwind.c:962,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_unwind.c:964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - code_addr
    - code_size
    - entry
    - filename
    argTypes:
    - void*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 933
    functionDepth: 9
    functionLinenumber: 933
    functionLinenumberEnd: 973
    functionName: _PyJitUnwind_GdbRegisterCode
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 1
    functionsReached:
    - _PyJitUnwind_BuildEhFrame
    - gdb_jit_register_code
    - PyMem_RawFree
    - PyMem_RawMalloc
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void *\n_PyJitUnwind_GdbRegisterCode(const void *code_addr,\n                             size_t
      code_size,\n                             const char *entry,\n                             const
      char *filename)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMutex_Lock
      Src: /src/cpython/Python/jit_unwind.c:984,1
    - Dst: __jit_debug_register_code
      Src: /src/cpython/Python/jit_unwind.c:997,1
    - Dst: PyMutex_Unlock
      Src: /src/cpython/Python/jit_unwind.c:1001,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_unwind.c:1003,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_unwind.c:1004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 975
    functionDepth: 8
    functionLinenumber: 975
    functionLinenumberEnd: 1008
    functionName: _PyJitUnwind_GdbUnregisterCode
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 1
    functionsReached:
    - PyMem_RawFree
    - PyMutex_Lock
    - PyMutex_Unlock
    - __jit_debug_register_code
    linkageType: ''
    returnType: void
    signature: void _PyJitUnwind_GdbUnregisterCode(void *handle)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyJitUnwind_EhFrameSize
      Src: /src/cpython/Python/jit_unwind.c:1018,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/jit_unwind.c:1037,1
    - Dst: _PyJitUnwind_BuildEhFrame
      Src: /src/cpython/Python/jit_unwind.c:1041,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_unwind.c:1043,1
    - Dst: __register_frame
      Src: /src/cpython/Python/jit_unwind.c:1047,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - code_addr
    - code_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1011
    functionDepth: 4
    functionLinenumber: 1011
    functionLinenumberEnd: 1049
    functionName: _PyJitUnwind_GnuBacktraceRegisterCode
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 1
    functionsReached:
    - _PyJitUnwind_BuildEhFrame
    - _PyJitUnwind_EhFrameSize
    - PyMem_RawCalloc
    - PyMem_RawFree
    - __register_frame
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyJitUnwind_GnuBacktraceRegisterCode(const void *code_addr, size_t code_size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __deregister_frame
      Src: /src/cpython/Python/jit_unwind.c:1057,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/jit_unwind.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1059
    functionName: _PyJitUnwind_GnuBacktraceUnregisterCode
    functionSourceFile: /src/cpython/Python/jit_unwind.c
    functionUses: 1
    functionsReached:
    - PyMem_RawFree
    - __deregister_frame
    linkageType: ''
    returnType: void
    signature: void _PyJitUnwind_GnuBacktraceUnregisterCode(void *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/cpython/Python/stackrefs.c:29,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/stackrefs.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - obj
    - filename
    - linenumber
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: make_table_entry
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - malloc
    - Py_TYPE
    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:47,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:47,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:51,1
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:52,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:54,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:57,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _PyStackRef
    assertStmts:
    - condition: (!PyStackRef_IsError(ref))
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/cpython/Python/stackrefs.c
    - condition: (interp != NULL)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 63
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: _Py_stackref_get_object
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - PyStackRef_IsError
    - PyInterpreterState_Get
    - _Py_hashtable_get
    - assert
    - _Py_FatalErrorFormat
    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:68,1
    - Dst: _Py_stackref_get_object
      Src: /src/cpython/Python/stackrefs.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - _PyStackRef
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 69
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:74,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:74,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:75,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:77,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:84,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:89,1
    - Dst: _Py_hashtable_steal
      Src: /src/cpython/Python/stackrefs.c:93,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:96,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:98,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:103,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/stackrefs.c:107,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:109,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:111,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:118,1
    - Dst: free
      Src: /src/cpython/Python/stackrefs.c:123,1
    - Dst: make_table_entry
      Src: /src/cpython/Python/stackrefs.c:125,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:127,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/stackrefs.c:129,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ref
    - filename
    - linenumber
    argTypes:
    - _PyStackRef
    - char*
    - int
    assertStmts:
    - condition: (!PyStackRef_IsError(ref))
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 135
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 135
    functionName: _Py_stackref_close
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyStackRef_IsError
    - _Py_hashtable_steal
    - free
    - _Py_hashtable_set
    - make_table_entry
    - PyInterpreterState_Get
    - _Py_hashtable_get
    - assert
    - _Py_FatalErrorFormat
    - PyStackRef_IsNull
    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:141,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:143,1
    - Dst: make_table_entry
      Src: /src/cpython/Python/stackrefs.c:146,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:148,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/stackrefs.c:151,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - obj
    - flags
    - filename
    - linenumber
    argTypes:
    - PyObject*
    - uint16_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: _Py_stackref_create
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - make_table_entry
    - Py_FatalError
    - PyInterpreterState_Get
    - _Py_hashtable_set
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _Py_stackref_create(PyObject *obj, uint16_t flags, const
      char *filename, int linenumber)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:160,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:160,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:164,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:165,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:168,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:170,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:175,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: 159
        line_start: 159
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 181
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 181
    functionName: _Py_stackref_record_borrow
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - PyStackRef_IsError
    - PyInterpreterState_Get
    - _Py_hashtable_get
    - assert
    - _Py_FatalErrorFormat
    linkageType: ''
    returnType: void
    signature: void _Py_stackref_record_borrow(_PyStackRef ref, const char *filename,
      int linenumber)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:186,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:186,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:187,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:189,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ref
    - filename
    - linenumber
    argTypes:
    - _PyStackRef
    - char*
    - int
    assertStmts:
    - condition: (!PyStackRef_IsError(ref))
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: _Py_stackref_get_borrowed_from
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - PyStackRef_IsError
    - PyInterpreterState_Get
    - _Py_hashtable_get
    - assert
    - _Py_FatalErrorFormat
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef _Py_stackref_get_borrowed_from(_PyStackRef ref, const char
      *filename, int linenumber)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:203,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:203,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/stackrefs.c:204,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:206,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:208,1
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:213,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/stackrefs.c:213,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/stackrefs.c:214,1
    - Dst: _Py_hashtable_get
      Src: /src/cpython/Python/stackrefs.c:218,1
    - Dst: _Py_FatalErrorFormat
      Src: /src/cpython/Python/stackrefs.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ref
    - borrowed_from
    - filename
    - linenumber
    argTypes:
    - _PyStackRef
    - _PyStackRef
    - char*
    - int
    assertStmts:
    - condition: (!PyStackRef_IsError(ref))
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/cpython/Python/stackrefs.c
    - condition: (PyStackRef_IsNull(entry->borrowed_from))
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 227
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 227
    functionName: _Py_stackref_set_borrowed_from
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 0
    functionsReached:
    - PyStackRef_IsError
    - PyInterpreterState_Get
    - _Py_hashtable_get
    - assert
    - _Py_FatalErrorFormat
    - PyStackRef_IsNull
    linkageType: ''
    returnType: void
    signature: void _Py_stackref_set_borrowed_from(_PyStackRef ref, _PyStackRef borrowed_from,
      const char *filename, int linenumber)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:232,1
    - Dst: PyStackRef_IsError
      Src: /src/cpython/Python/stackrefs.c:232,1
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:233,1
    - Dst: make_table_entry
      Src: /src/cpython/Python/stackrefs.c:234,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:236,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/stackrefs.c:238,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:239,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: 231
        line_start: 231
        source_file: /src/cpython/Python/stackrefs.c
    - condition: (ref.index < INITIAL_STACKREF_INDEX)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 241
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 241
    functionName: _Py_stackref_associate
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 1
    functionsReached:
    - Py_FatalError
    - PyStackRef_IsError
    - _Py_hashtable_set
    - make_table_entry
    - 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:248,1
    - Dst: printf
      Src: /src/cpython/Python/stackrefs.c:250,1
    - Dst: printf
      Src: /src/cpython/Python/stackrefs.c:253,1
    - Dst: printf
      Src: /src/cpython/Python/stackrefs.c:255,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: 258
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 258
    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:264,1
    - Dst: fflush
      Src: /src/cpython/Python/stackrefs.c:266,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/stackrefs.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: _Py_stackref_report_leaks
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 1
    functionsReached:
    - fflush
    - _Py_hashtable_foreach
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void _Py_stackref_report_leaks(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: PyStackRef_TagInt
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef PyStackRef_TagInt(intptr_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:280,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/stackrefs.c:280,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Python/stackrefs.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - _PyStackRef
    assertStmts:
    - condition: (PyStackRef_IsTaggedInt(i))
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: PyStackRef_UntagInt
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 12
    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:288,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/stackrefs.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: PyStackRef_IsNullOrInt
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 3
    functionsReached:
    - PyStackRef_IsTaggedInt
    - PyStackRef_IsNull
    linkageType: ''
    returnType: bool
    signature: bool PyStackRef_IsNullOrInt(_PyStackRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:294,1
    - Dst: PyStackRef_IsTaggedInt
      Src: /src/cpython/Python/stackrefs.c:294,1
    - Dst: assert
      Src: /src/cpython/Python/stackrefs.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _PyStackRef
    assertStmts:
    - condition: (PyStackRef_IsTaggedInt(ref))
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/cpython/Python/stackrefs.c
    - condition: ((ref.index & (~Py_TAG_BITS)) != (INTPTR_MAX & (~Py_TAG_BITS)))
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/cpython/Python/stackrefs.c
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: PyStackRef_IncrementTaggedIntNoOverflow
    functionSourceFile: /src/cpython/Python/stackrefs.c
    functionUses: 5
    functionsReached:
    - PyStackRef_IsTaggedInt
    - assert
    linkageType: ''
    returnType: _PyStackRef
    signature: _PyStackRef PyStackRef_IncrementTaggedIntNoOverflow(_PyStackRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:83,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:84,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: PyArg_Parse
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 64
    functionsReached:
    - vgetargs1
    - va_end
    - va_start
    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:95,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:96,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: _PyArg_Parse_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargs1
    - va_end
    - va_start
    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:108,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:109,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: PyArg_ParseTuple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 544
    functionsReached:
    - vgetargs1
    - va_end
    - va_start
    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:120,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:121,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: _PyArg_ParseTuple_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargs1
    - va_end
    - va_start
    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:133,1
    - Dst: vgetargs1_impl
      Src: /src/cpython/Python/getargs.c:134,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - nargs
    - format
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: _PyArg_ParseStack
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 32
    functionsReached:
    - va_end
    - vgetargs1_impl
    - va_start
    linkageType: ''
    returnType: int
    signature: int _PyArg_ParseStack(PyObject *const *args, Py_ssize_t nargs, const
      char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:143,1
    - Dst: vgetargs1_impl
      Src: /src/cpython/Python/getargs.c:144,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - args
    - nargs
    - format
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: PyArg_ParseArray
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - va_end
    - vgetargs1_impl
    - va_start
    linkageType: ''
    returnType: int
    signature: int PyArg_ParseArray(PyObject *const *args, Py_ssize_t nargs, const
      char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:156,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:160,1
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:165,1
    - Dst: vgetargskeywords_impl
      Src: /src/cpython/Python/getargs.c:166,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - args
    - nargs
    - kwnames
    - format
    - kwlist
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 170
    functionName: PyArg_ParseArrayAndKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - vgetargskeywords_impl
    - va_start
    - PyErr_BadInternalCall
    - va_end
    - PyTuple_Check
    linkageType: ''
    returnType: int
    signature: "int PyArg_ParseArrayAndKeywords(PyObject *const *args, Py_ssize_t
      nargs,\n                            PyObject *kwnames,\n                            const
      char *format,\n                            const char * const *kwlist, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/cpython/Python/getargs.c:179,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:181,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - format
    - va
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 184
    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:192,1
    - Dst: vgetargs1
      Src: /src/cpython/Python/getargs.c:194,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - format
    - va
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 197
    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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 209
    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:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    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: 233
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 233
    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:245,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/getargs.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - retval
    - freelist
    argTypes:
    - int
    - freelist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 252
    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:274,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/getargs.c:290,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/getargs.c:295,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Python/getargs.c:316,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/getargs.c:325,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:333,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:335,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:345,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:349,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:353,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:357,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:359,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:362,1
    - Dst: seterror
      Src: /src/cpython/Python/getargs.c:363,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:364,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:367,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:369,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:375,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:385,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:386,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:392,1
    - Dst: seterror
      Src: /src/cpython/Python/getargs.c:396,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:397,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Python/getargs.c:401,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:404,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:406,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:409,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: 273
        line_start: 273
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 410
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 410
    functionName: vgetargs1_impl
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - Py_ISALPHA
    - Py_FatalError
    - PyErr_NoMemory
    - PyMem_NEW
    - seterror
    - cleanreturn
    - PyErr_SetString
    - PyErr_Format
    - assert
    - convertitem
    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:419,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:421,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:422,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/getargs.c:427,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:428,1
    - Dst: vgetargs1_impl
      Src: /src/cpython/Python/getargs.c:435,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: 418
        line_start: 418
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 436
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 436
    functionName: vgetargs1
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 6
    functionsReached:
    - vgetargs1_impl
    - PyErr_SetString
    - _PyTuple_ITEMS
    - PyTuple_Check
    - assert
    - PyTuple_GET_SIZE
    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:447,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:451,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:452,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:455,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:458,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:460,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:462,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:467,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:468,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:470,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:474,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:477,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: 479
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 479
    functionName: seterror
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 6
    functionsReached:
    - PyErr_SetString
    - strlen
    - PyOS_snprintf
    - PyErr_Occurred
    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:510,1
    - Dst: Py_ISALPHA
      Src: /src/cpython/Python/getargs.c:528,1
    - Dst: PySequence_Check
      Src: /src/cpython/Python/getargs.c:562,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:563,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:563,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/getargs.c:563,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:566,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:569,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/getargs.c:574,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/getargs.c:580,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:583,1
    - Dst: PySequence_Tuple
      Src: /src/cpython/Python/getargs.c:588,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:594,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:601,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:609,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:610,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:623,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: 626
      start: 500
    functionDepth: 23
    functionLinenumber: 500
    functionLinenumberEnd: 626
    functionName: converttuple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - Py_ISALPHA
    - PySequence_Check
    - PyTuple_GET_ITEM
    - PySequence_Tuple
    - convertitem
    - PyBytes_Check
    - PyUnicode_Check
    - PyErr_WarnFormat
    - PyTuple_Check
    - PySequence_Size
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyByteArray_Check
    - PyOS_snprintf
    - 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:640,1
    - Dst: convertsimple
      Src: /src/cpython/Python/getargs.c:646,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: 654
      start: 631
    functionDepth: 24
    functionLinenumber: 631
    functionLinenumberEnd: 654
    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:666,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fname
    - displayname
    - expected
    - arg
    argTypes:
    - char*
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 670
    functionName: _PyArg_BadArgument
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 318
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    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:675,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:676,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:678,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:682,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:684,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: 674
        line_start: 674
        source_file: /src/cpython/Python/getargs.c
    - condition: (arg != NULL)
      pos:
        line_end: 675
        line_start: 675
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 687
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 687
    functionName: converterr
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyOS_snprintf
    - 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:693,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/getargs.c:694,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: 692
        line_start: 692
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 698
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 698
    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:724,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/getargs.c:725,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:726,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:729,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:734,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:745,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:746,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:754,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:764,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/getargs.c:765,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:766,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:769,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:774,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:785,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:786,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:794,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:804,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/getargs.c:805,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:806,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:809,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:814,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:825,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:826,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:834,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:846,1
    - Dst: _PyNumber_Index
      Src: /src/cpython/Python/getargs.c:848,1
    - Dst: PyLong_AsSsize_t
      Src: /src/cpython/Python/getargs.c:850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:851,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:853,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:859,1
    - Dst: PyLong_AsLong
      Src: /src/cpython/Python/getargs.c:860,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:861,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:869,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Python/getargs.c:870,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:871,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:873,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:881,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:891,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/getargs.c:892,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:893,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:901,1
    - Dst: PyIndex_Check
      Src: /src/cpython/Python/getargs.c:902,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:903,1
    - Dst: PyLong_AsNativeBytes
      Src: /src/cpython/Python/getargs.c:905,1
    - Dst: PyErr_WarnEx
      Src: /src/cpython/Python/getargs.c:913,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:923,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/getargs.c:924,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:925,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:933,1
    - Dst: PyFloat_AsDouble
      Src: /src/cpython/Python/getargs.c:934,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:935,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:943,1
    - Dst: PyComplex_AsCComplex
      Src: /src/cpython/Python/getargs.c:945,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/getargs.c:946,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:954,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:955,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/getargs.c:956,1
    - Dst: convertcharerr
      Src: /src/cpython/Python/getargs.c:957,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/getargs.c:958,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/getargs.c:961,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/getargs.c:963,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/getargs.c:964,1
    - Dst: convertcharerr
      Src: /src/cpython/Python/getargs.c:965,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/getargs.c:966,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Python/getargs.c:969,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:972,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:977,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:981,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:982,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/getargs.c:984,1
    - Dst: convertcharerr
      Src: /src/cpython/Python/getargs.c:985,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/getargs.c:986,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/getargs.c:990,1
    - Dst: PyUnicode_DATA
      Src: /src/cpython/Python/getargs.c:991,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/getargs.c:992,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:997,1
    - Dst: PyObject_IsTrue
      Src: /src/cpython/Python/getargs.c:998,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1012,1
    - Dst: getbuffer
      Src: /src/cpython/Python/getargs.c:1016,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1017,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1019,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1020,1
    - Dst: convertbuffer
      Src: /src/cpython/Python/getargs.c:1026,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1028,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1030,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:1034,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1035,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1047,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Python/getargs.c:1050,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1051,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/getargs.c:1053,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1055,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Python/getargs.c:1057,1
    - Dst: getbuffer
      Src: /src/cpython/Python/getargs.c:1061,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1062,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1064,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1065,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1072,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1073,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1079,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/getargs.c:1081,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1083,1
    - Dst: convertbuffer
      Src: /src/cpython/Python/getargs.c:1091,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1093,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1099,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1105,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/getargs.c:1106,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1108,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:1110,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1111,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1117,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1132,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/cpython/Python/getargs.c:1134,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1145,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1148,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1151,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:1156,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/getargs.c:1156,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:1157,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:1158,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1159,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/getargs.c:1160,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1163,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Python/getargs.c:1164,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1167,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/getargs.c:1169,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1173,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1175,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:1175,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1176,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/getargs.c:1177,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1182,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1214,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1215,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:1220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1222,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:1223,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1227,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1228,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1234,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1235,1
    - Dst: memcpy
      Src: /src/cpython/Python/getargs.c:1242,1
    - Dst: strlen
      Src: /src/cpython/Python/getargs.c:1260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1261,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1262,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:1266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1268,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:1269,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1273,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1274,1
    - Dst: memcpy
      Src: /src/cpython/Python/getargs.c:1277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1279,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1284,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/getargs.c:1285,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1288,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1293,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/getargs.c:1294,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1297,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1302,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1303,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1307,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1315,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1316,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/getargs.c:1318,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/getargs.c:1318,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1321,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1326,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1327,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1331,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1334,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1335,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1339,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:1347,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1350,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/getargs.c:1358,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/getargs.c:1359,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1360,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1363,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Python/getargs.c:1363,1
    - Dst: addcleanup
      Src: /src/cpython/Python/getargs.c:1364,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1365,1
    - Dst: converterr
      Src: /src/cpython/Python/getargs.c:1373,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: 1362
        line_start: 1362
        source_file: /src/cpython/Python/getargs.c
    - condition: (PyBytes_Check(s))
      pos:
        line_end: 1174
        line_start: 1174
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 1381
      start: 711
    functionDepth: 22
    functionLinenumber: 711
    functionLinenumberEnd: 1381
    functionName: convertsimple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - convertcharerr
    - PyBytes_Check
    - PyUnicode_AsUTF8AndSize
    - PyUnicode_GetDefaultEncoding
    - memcpy
    - PyErr_Occurred
    - assert
    - va_arg
    - PyComplex_AsCComplex
    - PyBuffer_IsContiguous
    - converterr
    - PyObject_GetBuffer
    - Py_TYPE
    - PyType_IsSubtype
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_NoMemory
    - PyObject_IsTrue
    - PyLong_AsLongLong
    - PyUnicode_Check
    - PyLong_AsLong
    - strlen
    - PyBytes_AS_STRING
    - _PyNumber_Index
    - PyIndex_Check
    - PyLong_AsSsize_t
    - PyBuffer_FillInfo
    - PyUnicode_AsEncodedString
    - PyMem_NEW
    - PyErr_WarnEx
    - PyFloat_AsDouble
    - getbuffer
    - PyUnicode_READ
    - PyErr_SetString
    - PyByteArray_GET_SIZE
    - PyErr_Clear
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_NewRef
    - PyLong_AsNativeBytes
    - addcleanup
    - PyUnicode_GET_LENGTH
    - PyErr_Format
    - convertbuffer
    - PyByteArray_Check
    - PyByteArray_AS_STRING
    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:1386,1
    - Dst: getbuffer
      Src: /src/cpython/Python/getargs.c:1397,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/getargs.c:1401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - arg
    - p
    - errmsg
    argTypes:
    - PyObject*
    - void**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1403
    functionName: convertbuffer
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - PyBuffer_Release
    - Py_TYPE
    - 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:1409,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1413,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/cpython/Python/getargs.c:1413,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: 1412
        line_start: 1412
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 1415
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1415
    functionName: getbuffer
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - PyBuffer_IsContiguous
    - PyObject_GetBuffer
    - 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:1430,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1431,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1435,1
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:1439,1
    - Dst: vgetargskeywords
      Src: /src/cpython/Python/getargs.c:1440,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1441,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - args
    - keywords
    - format
    - kwlist
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1443
    functionName: PyArg_ParseTupleAndKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 74
    functionsReached:
    - vgetargskeywords
    - va_start
    - PyErr_BadInternalCall
    - va_end
    - PyDict_Check
    - PyTuple_Check
    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:1454,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1455,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1459,1
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:1463,1
    - Dst: vgetargskeywords
      Src: /src/cpython/Python/getargs.c:1464,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - args
    - keywords
    - format
    - kwlist
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1468
    functionName: _PyArg_ParseTupleAndKeywords_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargskeywords
    - va_start
    - PyErr_BadInternalCall
    - va_end
    - PyDict_Check
    - PyTuple_Check
    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:1480,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1481,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1485,1
    - Dst: va_copy
      Src: /src/cpython/Python/getargs.c:1489,1
    - Dst: vgetargskeywords
      Src: /src/cpython/Python/getargs.c:1491,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1492,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: 1494
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1494
    functionName: PyArg_VaParseTupleAndKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_copy
    - vgetargskeywords
    - PyErr_BadInternalCall
    - va_end
    - PyDict_Check
    - PyTuple_Check
    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:1505,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1506,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1510,1
    - Dst: va_copy
      Src: /src/cpython/Python/getargs.c:1514,1
    - Dst: vgetargskeywords
      Src: /src/cpython/Python/getargs.c:1516,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1518,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: 1520
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1520
    functionName: _PyArg_VaParseTupleAndKeywords_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_copy
    - vgetargskeywords
    - PyErr_BadInternalCall
    - va_end
    - PyDict_Check
    - PyTuple_Check
    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:1529,1
    - Dst: vgetargskeywordsfast
      Src: /src/cpython/Python/getargs.c:1530,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - keywords
    - parser
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1533
    functionName: _PyArg_ParseTupleAndKeywordsFast
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - vgetargskeywordsfast
    - va_end
    - va_start
    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:1542,1
    - Dst: vgetargskeywordsfast
      Src: /src/cpython/Python/getargs.c:1543,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - keywords
    - parser
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1546
    functionName: _PyArg_ParseTupleAndKeywordsFast_SizeT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargskeywordsfast
    - va_end
    - va_start
    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:1555,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/cpython/Python/getargs.c:1556,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1557,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: 1559
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1559
    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:1568,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/cpython/Python/getargs.c:1569,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:1570,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: 1572
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1572
    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:1583,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1587,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:1589,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1592,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1593,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/getargs.c:1598,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/getargs.c:1601,1
    - Dst: _Py_CalculateSuggestions
      Src: /src/cpython/Python/getargs.c:1605,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1606,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1616,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1619,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1632,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - kwargs
    - kwnames
    - kwtuple
    - fname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1575
    functionDepth: 6
    functionLinenumber: 1575
    functionLinenumberEnd: 1636
    functionName: error_unexpected_keyword_arg
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PySequence_Contains
    - PySequence_List
    - PyErr_SetString
    - _Py_CalculateSuggestions
    - PyUnicode_Check
    - PyDict_Next
    - PyErr_Format
    - Py_DECREF
    - PyTuple_GET_SIZE
    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:1641,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:1642,1
    - Dst: _PyDict_HasOnlyStringKeys
      Src: /src/cpython/Python/getargs.c:1645,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - kwargs
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1638
    functionDepth: 2
    functionLinenumber: 1638
    functionLinenumberEnd: 1651
    functionName: PyArg_ValidateKeywordArguments
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - PyErr_BadInternalCall
    - PyErr_SetString
    - PyDict_Check
    - _PyDict_HasOnlyStringKeys
    linkageType: ''
    returnType: int
    signature: int PyArg_ValidateKeywordArguments(PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1659,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:1661,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1662,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1662,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Python/getargs.c:1663,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:1664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - kwnames
    - kwstack
    - key
    argTypes:
    - PyObject*
    - PyObject**
    - char*
    assertStmts:
    - condition: (PyUnicode_Check(kwname))
      pos:
        line_end: 1661
        line_start: 1661
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 1668
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1668
    functionName: find_keyword_str
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyUnicode_Check
    - PyUnicode_EqualToUTF8
    - assert
    - PyTuple_GET_SIZE
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      find_keyword_str(PyObject *kwnames, PyObject *const *kwstack, const char *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1671
    functionName: IS_END_OF_FORMAT
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_END_OF_FORMAT(c)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1694,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1695,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:1695,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1696,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:1696,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1697,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1698,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1699,1
    - Dst: strchr
      Src: /src/cpython/Python/getargs.c:1702,1
    - Dst: strchr
      Src: /src/cpython/Python/getargs.c:1708,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1719,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1721,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:1726,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:1728,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1735,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:1738,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1747,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1755,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1762,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1764,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1771,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1773,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1778,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1780,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1787,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1789,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1799,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1805,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1815,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:1818,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1819,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1822,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:1827,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/getargs.c:1831,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1832,1
    - Dst: find_keyword_str
      Src: /src/cpython/Python/getargs.c:1836,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:1847,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1849,1
    - Dst: seterror
      Src: /src/cpython/Python/getargs.c:1851,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1852,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1859,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:1860,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1868,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1873,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1881,1
    - Dst: skipitem
      Src: /src/cpython/Python/getargs.c:1887,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1889,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1891,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1896,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:1901,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:1902,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:1903,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1905,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:1908,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1909,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1912,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/getargs.c:1922,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1923,1
    - Dst: find_keyword_str
      Src: /src/cpython/Python/getargs.c:1927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1930,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1932,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1938,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/getargs.c:1945,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:1953,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:1958,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:1959,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1961,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Python/getargs.c:1964,1
    - Dst: new_kwtuple
      Src: /src/cpython/Python/getargs.c:1970,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1972,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/getargs.c:1974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1975,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1977,1
    - Dst: _Py_CalculateSuggestions
      Src: /src/cpython/Python/getargs.c:1979,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1980,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:1990,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:1993,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:1999,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2004,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2008,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2011,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 203
    argCount: 8
    argNames:
    - args
    - nargs
    - kwargs
    - kwnames
    - format
    - kwlist
    - p_va
    - flags
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - PyObject*
    - char*
    - char**
    - va_list*
    - int
    assertStmts:
    - condition: (min == INT_MAX)
      pos:
        line_end: 1858
        line_start: 1858
        source_file: /src/cpython/Python/getargs.c
    - condition: (format != NULL)
      pos:
        line_end: 1696
        line_start: 1696
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwnames == NULL || PyTuple_Check(kwnames))
      pos:
        line_end: 1695
        line_start: 1695
        source_file: /src/cpython/Python/getargs.c
    - condition: (p_va != NULL)
      pos:
        line_end: 1698
        line_start: 1698
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwlist != NULL)
      pos:
        line_end: 1697
        line_start: 1697
        source_file: /src/cpython/Python/getargs.c
    - condition: (max == INT_MAX)
      pos:
        line_end: 1859
        line_start: 1859
        source_file: /src/cpython/Python/getargs.c
    - condition: (args != NULL || nargs == 0)
      pos:
        line_end: 1693
        line_start: 1693
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 1694
        line_start: 1694
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2012
      start: 1672
    functionDepth: 25
    functionLinenumber: 1672
    functionLinenumberEnd: 2012
    functionName: vgetargskeywords_impl
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_ITEM
    - PySequence_List
    - _Py_CalculateSuggestions
    - Py_MIN
    - PyTuple_Check
    - assert
    - IS_END_OF_FORMAT
    - PyTuple_GET_SIZE
    - PyErr_NoMemory
    - PyUnicode_Check
    - strchr
    - PyDict_GET_SIZE
    - PyDict_GetItemStringRef
    - skipitem
    - PyMem_NEW
    - find_keyword_str
    - PyErr_SetString
    - PyDict_Next
    - PyUnicode_EqualToUTF8
    - convertitem
    - seterror
    - Py_DECREF
    - new_kwtuple
    - Py_NewRef
    - cleanreturn
    - PyDict_Check
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int vgetargskeywords_impl(PyObject *const *args, Py_ssize_t nargs,\n
      \                     PyObject *kwargs, PyObject *kwnames,\n                      const
      char *format, const char * const *kwlist,\n                      va_list *p_va,
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/getargs.c:2019,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2020,1
    - Dst: vgetargskeywords_impl
      Src: /src/cpython/Python/getargs.c:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argstuple
    - kwargs
    - format
    - kwlist
    - p_va
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    - va_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2014
    functionDepth: 26
    functionLinenumber: 2014
    functionLinenumberEnd: 2023
    functionName: vgetargskeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 4
    functionsReached:
    - vgetargskeywords_impl
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    linkageType: ''
    returnType: int
    signature: "int vgetargskeywords(PyObject *argstuple, PyObject *kwargs,\n                 const
      char *format, const char * const *kwlist,\n                 va_list *p_va, int
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:2037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - keywords
    - ptotal
    - pposonly
    argTypes:
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2025
    functionDepth: 1
    functionLinenumber: 2025
    functionLinenumberEnd: 2044
    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:2053,1
    - Dst: strchr
      Src: /src/cpython/Python/getargs.c:2059,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:2070,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:2075,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:2084,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:2089,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2096,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2097,1
    - Dst: skipitem
      Src: /src/cpython/Python/getargs.c:2103,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2105,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2110,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2111,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2113,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2114,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: 2125
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2125
    functionName: parse_format
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - skipitem
    - PyErr_SetString
    - strchr
    - Py_MIN
    - PyErr_Format
    - IS_END_OF_FORMAT
    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:2131,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/getargs.c:2137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2139,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/getargs.c:2142,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/getargs.c:2143,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/getargs.c:2144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - keywords
    - total
    - pos
    argTypes:
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2127
    functionDepth: 10
    functionLinenumber: 2127
    functionLinenumberEnd: 2147
    functionName: new_kwtuple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - _PyInterpreterState_GET
    - PyTuple_SET_ITEM
    - Py_DECREF
    - _PyUnicode_InternImmortal
    - PyTuple_New
    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:2154,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2155,1
    - Dst: scan_keywords
      Src: /src/cpython/Python/getargs.c:2162,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2169,1
    - Dst: parse_format
      Src: /src/cpython/Python/getargs.c:2170,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2176,1
    - Dst: _Py_IsMainInterpreter
      Src: /src/cpython/Python/getargs.c:2187,1
    - Dst: PyInterpreterState_Get
      Src: /src/cpython/Python/getargs.c:2187,1
    - Dst: PyThreadState_New
      Src: /src/cpython/Python/getargs.c:2188,1
    - Dst: _PyInterpreterState_Main
      Src: /src/cpython/Python/getargs.c:2188,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/getargs.c:2192,1
    - Dst: new_kwtuple
      Src: /src/cpython/Python/getargs.c:2194,1
    - Dst: PyThreadState_Clear
      Src: /src/cpython/Python/getargs.c:2196,1
    - Dst: PyThreadState_Swap
      Src: /src/cpython/Python/getargs.c:2197,1
    - Dst: PyThreadState_Delete
      Src: /src/cpython/Python/getargs.c:2198,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2217,1
    - Dst: _Py_atomic_load_ptr
      Src: /src/cpython/Python/getargs.c:2218,1
    - Dst: _Py_atomic_compare_exchange_ptr
      Src: /src/cpython/Python/getargs.c:2221,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (keywords != NULL)
      pos:
        line_end: 2153
        line_start: 2153
        source_file: /src/cpython/Python/getargs.c
    - condition: (parser->fname == NULL)
      pos:
        line_end: 2168
        line_start: 2168
        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: 2158
        line_start: 2154
        source_file: /src/cpython/Python/getargs.c
    - condition: (parser->fname != NULL)
      pos:
        line_end: 2175
        line_start: 2175
        source_file: /src/cpython/Python/getargs.c
    - condition: (parser->next == NULL)
      pos:
        line_end: 2216
        line_start: 2216
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2224
      start: 2149
    functionDepth: 11
    functionLinenumber: 2149
    functionLinenumberEnd: 2224
    functionName: _parser_init
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Clear
    - _Py_IsMainInterpreter
    - PyInterpreterState_Get
    - PyThreadState_Swap
    - _Py_atomic_load_ptr
    - scan_keywords
    - PyThreadState_New
    - _Py_atomic_compare_exchange_ptr
    - assert
    - _PyInterpreterState_Main
    - PyThreadState_Delete
    - new_kwtuple
    - parse_format
    linkageType: ''
    returnType: int
    signature: int _parser_init(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyOnceFlag_CallOnce
      Src: /src/cpython/Python/getargs.c:2229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2230
    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:2236,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct _PyArg_Parser*
    assertStmts:
    - condition: (parser->fname != NULL)
      pos:
        line_end: 2242
        line_start: 2242
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2251
      start: 2232
    functionDepth: 1
    functionLinenumber: 2232
    functionLinenumberEnd: 2251
    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:2258,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2260,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:2265,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2270,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2271,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/getargs.c:2271,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/getargs.c:2272,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:2273,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: 2270
        line_start: 2270
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2277
      start: 2253
    functionDepth: 2
    functionLinenumber: 2253
    functionLinenumberEnd: 2277
    functionName: find_keyword
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - _PyUnicode_Equal
    - PyUnicode_Check
    - assert
    - PyTuple_GET_SIZE
    - Py_NewRef
    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:2302,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:2302,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2303,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2304,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2307,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:2311,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2312,1
    - Dst: parser_init
      Src: /src/cpython/Python/getargs.c:2316,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2322,1
    - Dst: PyMem_NEW
      Src: /src/cpython/Python/getargs.c:2325,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/getargs.c:2327,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2334,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2337,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2346,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2354,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2358,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2364,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2373,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2377,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2386,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2386,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/getargs.c:2390,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2393,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/getargs.c:2395,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2396,1
    - Dst: find_keyword
      Src: /src/cpython/Python/getargs.c:2400,1
    - Dst: convertitem
      Src: /src/cpython/Python/getargs.c:2411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2413,1
    - Dst: seterror
      Src: /src/cpython/Python/getargs.c:2415,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2416,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2424,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2425,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2436,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2437,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2443,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2450,1
    - Dst: skipitem
      Src: /src/cpython/Python/getargs.c:2455,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2456,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2459,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2459,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2465,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/getargs.c:2467,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2468,1
    - Dst: find_keyword
      Src: /src/cpython/Python/getargs.c:2472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2475,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2477,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2483,1
    - Dst: error_unexpected_keyword_arg
      Src: /src/cpython/Python/getargs.c:2487,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2488,1
    - Dst: cleanreturn
      Src: /src/cpython/Python/getargs.c:2491,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: (p_va != NULL)
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/cpython/Python/getargs.c
    - condition: (!IS_END_OF_FORMAT(*format))
      pos:
        line_end: 2385
        line_start: 2385
        source_file: /src/cpython/Python/getargs.c
    - condition: (msg == NULL)
      pos:
        line_end: 2455
        line_start: 2455
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwargs == NULL || kwnames == NULL)
      pos:
        line_end: 2302
        line_start: 2302
        source_file: /src/cpython/Python/getargs.c
    - condition: (format != NULL || len == 0)
      pos:
        line_end: 2376
        line_start: 2376
        source_file: /src/cpython/Python/getargs.c
    - condition: (IS_END_OF_FORMAT(*format) || (*format == '|') || (*format == '$'))
      pos:
        line_end: 2458
        line_start: 2458
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 2301
        line_start: 2301
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2492
      start: 2279
    functionDepth: 25
    functionLinenumber: 2279
    functionLinenumberEnd: 2492
    functionName: vgetargskeywordsfast_impl
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_ITEM
    - parser_init
    - find_keyword
    - Py_MIN
    - PyTuple_Check
    - assert
    - IS_END_OF_FORMAT
    - PyTuple_GET_SIZE
    - PyErr_NoMemory
    - PyDict_GET_SIZE
    - skipitem
    - PyMem_NEW
    - PyErr_BadInternalCall
    - error_unexpected_keyword_arg
    - convertitem
    - seterror
    - PyDict_GetItemRef
    - Py_DECREF
    - Py_NewRef
    - cleanreturn
    - PyDict_Check
    - PyErr_Format
    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:2502,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:2503,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2505,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/getargs.c:2509,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2510,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/cpython/Python/getargs.c:2511,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: 2513
      start: 2494
    functionDepth: 26
    functionLinenumber: 2494
    functionLinenumberEnd: 2513
    functionName: vgetargskeywordsfast
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - vgetargskeywordsfast_impl
    - PyErr_BadInternalCall
    - PyDict_Check
    - _PyTuple_ITEMS
    - PyTuple_Check
    - PyTuple_GET_SIZE
    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:2532,1
    - Dst: PyDict_Check
      Src: /src/cpython/Python/getargs.c:2532,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2533,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2536,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:2540,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2541,1
    - Dst: parser_init
      Src: /src/cpython/Python/getargs.c:2549,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2555,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2556,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2559,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2562,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2575,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2587,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2593,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2605,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/getargs.c:2618,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/getargs.c:2626,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2629,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/getargs.c:2631,1
    - Dst: find_keyword
      Src: /src/cpython/Python/getargs.c:2636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2649,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2654,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2655,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/getargs.c:2668,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/getargs.c:2670,1
    - Dst: find_keyword
      Src: /src/cpython/Python/getargs.c:2675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/getargs.c:2678,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2680,1
    - Dst: error_unexpected_keyword_arg
      Src: /src/cpython/Python/getargs.c:2690,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (kwargs == NULL || kwnames == NULL)
      pos:
        line_end: 2532
        line_start: 2532
        source_file: /src/cpython/Python/getargs.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 2531
        line_start: 2531
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2695
      start: 2518
    functionDepth: 8
    functionLinenumber: 2518
    functionLinenumberEnd: 2695
    functionName: _PyArg_UnpackKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 715
    functionsReached:
    - PyTuple_GET_ITEM
    - parser_init
    - find_keyword
    - Py_MAX
    - PyErr_BadInternalCall
    - Py_MIN
    - PyDict_Check
    - PyDict_GetItemRef
    - PyTuple_Check
    - assert
    - PyErr_Format
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - Py_DECREF
    - error_unexpected_keyword_arg
    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:2732,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2742,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2757,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2766,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2782,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2783,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2789,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2790,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2796,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/cpython/Python/getargs.c:2808,1
    - Dst: skipitem
      Src: /src/cpython/Python/getargs.c:2811,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: 2830
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2830
    functionName: skipitem
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 4
    functionsReached:
    - va_arg
    - IS_END_OF_FORMAT
    - skipitem
    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:2839,1
    - Dst: assert
      Src: /src/cpython/Python/getargs.c:2840,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2844,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2849,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2863,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2868,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: 2838
        line_start: 2838
        source_file: /src/cpython/Python/getargs.c
    - condition: (min <= max)
      pos:
        line_end: 2839
        line_start: 2839
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2877
      start: 2835
    functionDepth: 1
    functionLinenumber: 2835
    functionLinenumberEnd: 2877
    functionName: _PyArg_CheckPositional
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 560
    functionsReached:
    - PyErr_Format
    - assert
    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:2886,1
    - Dst: va_arg
      Src: /src/cpython/Python/getargs.c:2891,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: 2895
      start: 2879
    functionDepth: 0
    functionLinenumber: 2879
    functionLinenumberEnd: 2895
    functionName: unpack_stack
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - va_arg
    linkageType: ''
    returnType: int
    signature: "int unpack_stack(PyObject *const *args, Py_ssize_t nargs, const char
      *name,\n             Py_ssize_t min, Py_ssize_t max, va_list vargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/getargs.c:2905,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/getargs.c:2906,1
    - Dst: _PyTuple_ITEMS
      Src: /src/cpython/Python/getargs.c:2910,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2911,1
    - Dst: va_start
      Src: /src/cpython/Python/getargs.c:2913,1
    - Dst: unpack_stack
      Src: /src/cpython/Python/getargs.c:2914,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:2915,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: 2917
      start: 2897
    functionDepth: 1
    functionLinenumber: 2897
    functionLinenumberEnd: 2917
    functionName: PyArg_UnpackTuple
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 47
    functionsReached:
    - PyErr_SetString
    - va_start
    - unpack_stack
    - va_end
    - _PyTuple_ITEMS
    - PyTuple_Check
    - PyTuple_GET_SIZE
    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:2926,1
    - Dst: unpack_stack
      Src: /src/cpython/Python/getargs.c:2927,1
    - Dst: va_end
      Src: /src/cpython/Python/getargs.c:2928,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: 2930
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2930
    functionName: _PyArg_UnpackStack
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 2
    functionsReached:
    - va_end
    - va_start
    - unpack_stack
    linkageType: ''
    returnType: int
    signature: "int _PyArg_UnpackStack(PyObject *const *args, Py_ssize_t nargs, const
      char *name,\n                   Py_ssize_t min, Py_ssize_t max, ...)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/getargs.c:2948,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2949,1
    - Dst: PyDict_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2952,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - funcname
    - kwargs
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2942
    functionDepth: 1
    functionLinenumber: 2942
    functionLinenumberEnd: 2959
    functionName: _PyArg_NoKeywords
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 63
    functionsReached:
    - PyErr_BadInternalCall
    - PyDict_CheckExact
    - PyDict_GET_SIZE
    - 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:2966,1
    - Dst: PyErr_BadInternalCall
      Src: /src/cpython/Python/getargs.c:2967,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2970,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - funcname
    - args
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2961
    functionDepth: 1
    functionLinenumber: 2961
    functionLinenumberEnd: 2976
    functionName: _PyArg_NoPositional
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 11
    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:2985,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/getargs.c:2985,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/getargs.c:2987,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/getargs.c:2991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - funcname
    - kwnames
    argTypes:
    - char*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(kwnames))
      pos:
        line_end: 2984
        line_start: 2984
        source_file: /src/cpython/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2993
      start: 2978
    functionDepth: 1
    functionLinenumber: 2978
    functionLinenumberEnd: 2993
    functionName: _PyArg_NoKwnames
    functionSourceFile: /src/cpython/Python/getargs.c
    functionUses: 16
    functionsReached:
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    - PyErr_Format
    - assert
    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:3002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 2995
    functionDepth: 2
    functionLinenumber: 2995
    functionLinenumberEnd: 3006
    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: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    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: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    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: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    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: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    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: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    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: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    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: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    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: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    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:345,1
    - Dst: MALLOC
      Src: /src/cpython/Python/dtoa.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 369
    functionName: Balloc
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - MALLOC
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      Balloc(int k)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/cpython/Python/dtoa.c:378,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dtoa.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 385
    functionName: Bfree
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - FREE
    - _PyInterpreterState_GET
    linkageType: ''
    returnType: void
    signature: void Bfree(Bigint *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/cpython/Python/dtoa.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 419
    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:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 429
    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: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    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:460,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:462,1
    - Dst: Bcopy
      Src: /src/cpython/Python/dtoa.c:465,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - b
    - m
    - a
    argTypes:
    - Bigint*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 473
    functionName: multadd
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Bcopy
    - Bfree
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      multadd(Bigint *b, int m, int a)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:490,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:501,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:507,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - s
    - nd0
    - nd
    - y9
    argTypes:
    - char*
    - int
    - int
    - ULong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 512
    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: 543
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 543
    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: 589
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 589
    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:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 604
    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:619,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:638,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 665
    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:685,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:688,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dtoa.c:695,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:698,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:702,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:703,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts:
    - condition: (0 <= k && k < 1024)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/cpython/Python/dtoa.c
    - condition: (p5s != interp->dtoa.p5s + Bigint_Pow5size)
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/cpython/Python/dtoa.c
    constantsTouched: []
    func_position:
      end: 712
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 712
    functionName: pow5mult
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - mult
    - _PyInterpreterState_GET
    - assert
    - Bfree
    - multadd
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      pow5mult(Bigint *b, int k)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:727,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:734,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:736,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:742,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:743,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:746,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:752,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:753,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:756,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:760,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 762
    functionName: pow5mult
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - mult
    - i2b
    - Bfree
    - multadd
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      pow5mult(Bigint *b, int k)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:785,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:787,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:810,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 812
    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:827,1
    - Dst: Bug
      Src: /src/cpython/Python/dtoa.c:829,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 844
    functionName: cmp
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 178
    functionsReached:
    - Bug
    linkageType: ''
    returnType: int
    signature: int cmp(Bigint *a, Bigint *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:858,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:860,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:875,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 902
    functionName: diff
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 1
    functionsReached:
    - cmp
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      diff(Bigint *a, Bigint *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:913,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:914,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:915,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 917
    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:932,1
    - Dst: hi0bits
      Src: /src/cpython/Python/dtoa.c:934,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:937,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:939,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:944,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:946,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:949,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:950,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - a
    - e
    argTypes:
    - Bigint*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 954
    functionName: b2d
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - hi0bits
    - word0
    - dval
    - Bug
    - word1
    linkageType: ''
    returnType: double
    signature: double b2d(Bigint *a, int *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:982,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:988,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:989,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:990,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:1003,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:1006,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:1013,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: 1002
        line_start: 1002
        source_file: /src/cpython/Python/dtoa.c
    - condition: (b->x[0] == 0)
      pos:
        line_end: 1005
        line_start: 1005
        source_file: /src/cpython/Python/dtoa.c
    - condition: (b->x[0] << (32 - scale) == 0)
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/cpython/Python/dtoa.c
    constantsTouched: []
    func_position:
      end: 1024
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 1024
    functionName: sd2b
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - assert
    - word0
    - word1
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      sd2b(U *d, int scale, int *e)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:1043,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1048,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1049,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1050,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1052,1
    - Dst: lo0bits
      Src: /src/cpython/Python/dtoa.c:1053,1
    - Dst: lo0bits
      Src: /src/cpython/Python/dtoa.c:1063,1
    - Dst: hi0bits
      Src: /src/cpython/Python/dtoa.c:1075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - d
    - e
    - bits
    argTypes:
    - U*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1078
    functionName: d2b
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - hi0bits
    - word0
    - Balloc
    - lo0bits
    - word1
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      d2b(U *d, int *e, int *bits)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1089,1
    - Dst: b2d
      Src: /src/cpython/Python/dtoa.c:1089,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1090,1
    - Dst: b2d
      Src: /src/cpython/Python/dtoa.c:1090,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1093,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1096,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1098,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1099
    functionName: ratio
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - b2d
    - dval
    - word0
    linkageType: ''
    returnType: double
    signature: double ratio(Bigint *a, Bigint *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi0bits
      Src: /src/cpython/Python/dtoa.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - p2
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1131
    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:1147,1
    - Dst: Bug
      Src: /src/cpython/Python/dtoa.c:1158,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:1178,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - b
    - S
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1201
    functionName: quorem
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - cmp
    - Bug
    linkageType: ''
    returnType: int
    signature: int quorem(Bigint *b, Bigint *S)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1214,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1216,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1217,1
    - Dst: assert
      Src: /src/cpython/Python/dtoa.c:1221,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1221,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1221,1
    - Dst: ulp
      Src: /src/cpython/Python/dtoa.c:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - x
    - bc
    argTypes:
    - U*
    - BCinfo*
    assertStmts:
    - condition: (word0(x) || word1(x))
      pos:
        line_end: 1220
        line_start: 1220
        source_file: /src/cpython/Python/dtoa.c
    constantsTouched: []
    func_position:
      end: 1224
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1224
    functionName: sulp
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - assert
    - ulp
    - word1
    - word0
    linkageType: ''
    returnType: double
    signature: double sulp(U *x, BCinfo *bc)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sd2b
      Src: /src/cpython/Python/dtoa.c:1281,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1291,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:1298,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1300,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:1307,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1309,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:1314,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1316,1
    - Dst: dshift
      Src: /src/cpython/Python/dtoa.c:1328,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1330,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1332,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1337,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1339,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:1347,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:1353,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1355,1
    - Dst: quorem
      Src: /src/cpython/Python/dtoa.c:1358,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1375,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1376,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1378,1
    - Dst: sulp
      Src: /src/cpython/Python/dtoa.c:1378,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 3
    argNames:
    - rv
    - s0
    - bc
    argTypes:
    - U*
    - char*
    - BCinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1380
    functionName: bigcomp
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - sd2b
    - pow5mult
    - dshift
    - cmp
    - quorem
    - dval
    - sulp
    - i2b
    - lshift
    - Bfree
    - multadd
    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:1398,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1584,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1586,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1586,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1595,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1604,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1605,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1610,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1622,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1629,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1631,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1632,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1633,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1639,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1640,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1643,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1659,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1667,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1668,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1672,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1674,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1676,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1679,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1681,1
    - Dst: s2b
      Src: /src/cpython/Python/dtoa.c:1723,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:1755,1
    - Dst: Bcopy
      Src: /src/cpython/Python/dtoa.c:1759,1
    - Dst: sd2b
      Src: /src/cpython/Python/dtoa.c:1760,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:1769,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:1819,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:1823,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:1824,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1831,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:1837,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1843,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1849,1
    - Dst: diff
      Src: /src/cpython/Python/dtoa.c:1859,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:1865,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1881,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1881,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1884,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1888,1
    - Dst: sulp
      Src: /src/cpython/Python/dtoa.c:1888,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1903,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1903,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1904,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:1912,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:1916,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1923,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1924,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1926,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1930,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1930,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1933,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1938,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1938,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1942,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1954,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1955,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1956,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:1962,1
    - Dst: sulp
      Src: /src/cpython/Python/dtoa.c:1962,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:1965,1
    - Dst: ratio
      Src: /src/cpython/Python/dtoa.c:1974,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1977,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1977,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:1978,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:1978,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2003,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2008,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2008,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2009,1
    - Dst: ulp
      Src: /src/cpython/Python/dtoa.c:2010,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2011,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2012,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2014,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2014,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2017,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2018,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2022,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2032,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2033,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2034,1
    - Dst: ulp
      Src: /src/cpython/Python/dtoa.c:2036,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2037,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2039,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2047,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2047,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2056,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2057,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2058,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2059,1
    - Dst: bigcomp
      Src: /src/cpython/Python/dtoa.c:2062,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2068,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2069,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2070,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2070,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2074,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2074,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2093,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2094,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2095,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2095,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2099,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2100,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
    CyclomaticComplexity: 204
    EdgeCount: 204
    ICount: 505
    argCount: 2
    argNames:
    - s00
    - se
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 1383
    functionDepth: 5
    functionLinenumber: 1383
    functionLinenumberEnd: 2106
    functionName: _Py_dg_strtod
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - sd2b
    - pow5mult
    - cmp
    - Balloc
    - word0
    - dval
    - mult
    - ratio
    - ulp
    - i2b
    - bigcomp
    - Bcopy
    - s2b
    - lshift
    - diff
    - word1
    - Bfree
    - sulp
    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:2118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2108
    functionDepth: 2
    functionLinenumber: 2108
    functionLinenumberEnd: 2123
    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:2130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - rve
    - n
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2125
    functionDepth: 3
    functionLinenumber: 2125
    functionLinenumberEnd: 2138
    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:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2146
    functionDepth: 2
    functionLinenumber: 2146
    functionLinenumberEnd: 2152
    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:2247,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2250,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2256,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2260,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2260,1
    - Dst: nrv_alloc
      Src: /src/cpython/Python/dtoa.c:2261,1
    - Dst: nrv_alloc
      Src: /src/cpython/Python/dtoa.c:2262,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2264,1
    - Dst: nrv_alloc
      Src: /src/cpython/Python/dtoa.c:2266,1
    - Dst: d2b
      Src: /src/cpython/Python/dtoa.c:2271,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2274,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2275,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2275,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2276,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2277,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2308,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2308,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2309,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2310,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2311,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2315,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2322,1
    - Dst: rv_alloc
      Src: /src/cpython/Python/dtoa.c:2381,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2392,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2392,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2402,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2410,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2413,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2417,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2420,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2425,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2428,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2428,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2429,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2432,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2433,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2433,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:2443,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2443,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2445,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2446,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2448,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:2454,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2455,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2460,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2461,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:2467,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2467,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:2480,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2480,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2492,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2496,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2497,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2498,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2500,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2504,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2504,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2505,1
    - Dst: dval
      Src: /src/cpython/Python/dtoa.c:2505,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:2537,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:2550,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:2553,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2554,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:2560,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:2566,1
    - Dst: i2b
      Src: /src/cpython/Python/dtoa.c:2571,1
    - Dst: pow5mult
      Src: /src/cpython/Python/dtoa.c:2575,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2585,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2585,1
    - Dst: word0
      Src: /src/cpython/Python/dtoa.c:2586,1
    - Dst: dshift
      Src: /src/cpython/Python/dtoa.c:2603,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2608,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2613,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2618,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2620,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2624,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2639,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2642,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2652,1
    - Dst: Balloc
      Src: /src/cpython/Python/dtoa.c:2663,1
    - Dst: Bcopy
      Src: /src/cpython/Python/dtoa.c:2666,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2667,1
    - Dst: quorem
      Src: /src/cpython/Python/dtoa.c:2673,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2677,1
    - Dst: diff
      Src: /src/cpython/Python/dtoa.c:2678,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2681,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2682,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2683,1
    - Dst: word1
      Src: /src/cpython/Python/dtoa.c:2693,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2699,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2702,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2723,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2727,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2732,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2735,1
    - Dst: quorem
      Src: /src/cpython/Python/dtoa.c:2743,1
    - Dst: multadd
      Src: /src/cpython/Python/dtoa.c:2749,1
    - Dst: lshift
      Src: /src/cpython/Python/dtoa.c:2756,1
    - Dst: cmp
      Src: /src/cpython/Python/dtoa.c:2759,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2775,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2778,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2779,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2782,1
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2790,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: _Py_dg_freedtoa
      Src: /src/cpython/Python/dtoa.c:2798,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: 2800
      start: 2192
    functionDepth: 4
    functionLinenumber: 2192
    functionLinenumberEnd: 2800
    functionName: _Py_dg_dtoa
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - d2b
    - dshift
    - cmp
    - i2b
    - lshift
    - multadd
    - pow5mult
    - dval
    - diff
    - quorem
    - word0
    - Balloc
    - _Py_dg_freedtoa
    - nrv_alloc
    - Bcopy
    - word1
    - rv_alloc
    - mult
    - Bfree
    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:2811,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/dtoa.c:2813,1
    - Dst: mult
      Src: /src/cpython/Python/dtoa.c:2819,1
    - Dst: PyStatus_NoMemory
      Src: /src/cpython/Python/dtoa.c:2821,1
    - Dst: PyStatus_Ok
      Src: /src/cpython/Python/dtoa.c:2827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2804
    functionDepth: 3
    functionLinenumber: 2804
    functionLinenumberEnd: 2828
    functionName: _PyDtoa_Init
    functionSourceFile: /src/cpython/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - mult
    - PyStatus_Ok
    - PyStatus_NoMemory
    - i2b
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyDtoa_Init(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bfree
      Src: /src/cpython/Python/dtoa.c:2838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2830
    functionDepth: 2
    functionLinenumber: 2830
    functionLinenumberEnd: 2841
    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*
    - uintptr_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, uintptr_t remote_address, size_t
      len, void* dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RemoteDebug_WriteRemoteMemory
      Src: /src/cpython/Python/remote_debugging.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - remote_address
    - len
    - src
    argTypes:
    - proc_handle_t*
    - uintptr_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: write_memory
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_WriteRemoteMemory
    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: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    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:43,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:45,1
    - Dst: is_prerelease_version
      Src: /src/cpython/Python/remote_debugging.c:53,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:54,1
    - Dst: is_prerelease_version
      Src: /src/cpython/Python/remote_debugging.c:61,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:62,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/remote_debugging.c:73,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:82,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:90,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - debug_offsets
    argTypes:
    - _Py_DebugOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 98
    functionName: ensure_debug_offset_compatibility
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - memcmp
    - is_prerelease_version
    - PyErr_SetString
    - PyErr_Format
    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:106,1
    - Dst: ensure_debug_offset_compatibility
      Src: /src/cpython/Python/remote_debugging.c:109,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: 113
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: read_offsets
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - _Py_RemoteDebug_ReadDebugOffsets
    - ensure_debug_offset_compatibility
    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:121,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:128,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:138,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:143,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:153,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:163,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:172,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:185,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:196,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:202,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:212,1
    - Dst: strlen
      Src: /src/cpython/Python/remote_debugging.c:220,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:221,1
    - Dst: write_memory
      Src: /src/cpython/Python/remote_debugging.c:229,1
    - Dst: strlen
      Src: /src/cpython/Python/remote_debugging.c:232,1
    - Dst: write_memory
      Src: /src/cpython/Python/remote_debugging.c:243,1
    - Dst: read_memory
      Src: /src/cpython/Python/remote_debugging.c:254,1
    - Dst: write_memory
      Src: /src/cpython/Python/remote_debugging.c:265,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: 276
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 276
    functionName: send_exec_to_proc_handle
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - read_memory
    - PyErr_SetString
    - write_memory
    - read_offsets
    - strlen
    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:284,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:287,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/remote_debugging.c:291,1
    - Dst: _PyInterpreterState_GetConfig
      Src: /src/cpython/Python/remote_debugging.c:292,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/remote_debugging.c:294,1
    - Dst: init_proc_handle
      Src: /src/cpython/Python/remote_debugging.c:299,1
    - Dst: send_exec_to_proc_handle
      Src: /src/cpython/Python/remote_debugging.c:303,1
    - Dst: cleanup_proc_handle
      Src: /src/cpython/Python/remote_debugging.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - pid
    - tid
    - debugger_script_path
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 307
    functionName: _PySysRemoteDebug_SendExec
    functionSourceFile: /src/cpython/Python/remote_debugging.c
    functionUses: 0
    functionsReached:
    - cleanup_proc_handle
    - _PyInterpreterState_GetConfig
    - send_exec_to_proc_handle
    - PyErr_SetString
    - _PyThreadState_GET
    - init_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:
    - _PyXI_GET_STATE
    - _PyXI_GET_GLOBAL_STATE
    - PyErr_Occurred
    - 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:
    - va_end
    - va_start
    - format_notshareableerror_v
    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:
    - PyException_GetCause
    - _PyXI_InitFailure
    - _PyErr_ExceptionMatches
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - PyException_GetContext
    - assert
    - Py_DECREF
    - get_notshareableerror_type
    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:
    - get_lookup_context
    - lookup_getdata
    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:
    - _register_builtins_for_crossinterpreter_data
    - assert
    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
    - _PyWeakref_GET_REF
    - _xidregistry_remove_entry
    - assert
    - Py_DECREF
    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:
    - _xidregistry_unlock
    - _xidregistry_lock
    - _get_xidregistry_for_type
    - _xidregistry_find_type
    - Py_TYPE
    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
    - PyMem_RawMalloc
    - PyWeakref_NewRef
    - 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:
    - PyMem_RawFree
    - Py_XDECREF
    - 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:
    - PyMem_RawFree
    - Py_XDECREF
    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:
    - get_lookup_context
    - _xidregistry_unlock
    - _xidregistry_lock
    - _get_xidregistry_for_type
    - PyType_Check
    - _xidregistry_add_type
    - PyErr_Format
    - assert
    - _xidregistry_find_type
    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
    - _xidregistry_unlock
    - _xidregistry_lock
    - _get_xidregistry_for_type
    - _xidregistry_remove_entry
    - assert
    - _xidregistry_find_type
    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
    - _PyXIData_OBJ
    - assert
    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:
    - _bytes_shared
    - PyBytes_Check
    - 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:
    - _bytes_shared
    - PyBytes_Check
    - PyErr_SetString
    - 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:
    - _PyXIData_InitWithSize
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_KIND
    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:
    - _PyXIData_Init
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyErr_Occurred
    - 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:
    - _PyXIData_InitWithSize
    - PyFloat_AsDouble
    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:
    - Py_DECREF
    - _PyXIData_NewObject
    - PyTuple_SET_ITEM
    - PyTuple_New
    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:
    - _PyXIData_INTERPID
    - _PyInterpreterState_GET
    - PyMem_RawFree
    - PyMem_Free
    - assert
    - PyInterpreterState_GetID
    - _PyXIData_Release
    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: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp_data_lookup.h:660,1
    - Dst: _PyXIData_New
      Src: /src/cpython/Python/crossinterp_data_lookup.h:665,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/crossinterp_data_lookup.h:669,1
    - Dst: _Py_EnterRecursiveCallTstate
      Src: /src/cpython/Python/crossinterp_data_lookup.h:672,1
    - Dst: _PyObject_GetXIData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:673,1
    - Dst: _Py_LeaveRecursiveCallTstate
      Src: /src/cpython/Python/crossinterp_data_lookup.h:674,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp_data_lookup.h:677,1
    - Dst: _PyXIData_Init
      Src: /src/cpython/Python/crossinterp_data_lookup.h:682,1
    - Dst: _PyXIData_SET_FREE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:683,1
    - Dst: _tuple_shared_free
      Src: /src/cpython/Python/crossinterp_data_lookup.h:687,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - tstate
    - obj
    - fallback
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - xidata_fallback_t
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 689
    functionName: _tuple_shared
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyMem_Calloc
    - PyTuple_GET_ITEM
    - PyErr_NoMemory
    - _PyObject_GetXIData
    - _PyXIData_Init
    - _tuple_shared_free
    - _PyXIData_SET_FREE
    - PyMem_RawFree
    - PyMem_RawMalloc
    - _Py_LeaveRecursiveCallTstate
    - _PyXIData_New
    - PyTuple_GET_SIZE
    - _Py_EnterRecursiveCallTstate
    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:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 697
    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:702,1
    - Dst: _PyXIData_FormatNotShareableError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:703,1
    - Dst: _PyMarshal_GetXIData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:706,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:709,1
    - Dst: _PyXIData_CHECK_NEW_OBJECT
      Src: /src/cpython/Python/crossinterp_data_lookup.h:709,1
    - Dst: _PyXIData_SET_NEW_OBJECT
      Src: /src/cpython/Python/crossinterp_data_lookup.h:710,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: 708
        line_start: 708
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 712
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 712
    functionName: _PyCode_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - PyCode_Check
    - _PyXIData_SET_NEW_OBJECT
    - _PyXIData_FormatNotShareableError
    - _PyMarshal_GetXIData
    - assert
    - _PyXIData_CHECK_NEW_OBJECT
    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:721,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:728,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/crossinterp_data_lookup.h:728,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/crossinterp_data_lookup.h:729,1
    - Dst: _PyEval_GetGlobalsFromRunningMain
      Src: /src/cpython/Python/crossinterp_data_lookup.h:730,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp_data_lookup.h:732,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:733,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/crossinterp_data_lookup.h:736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:738,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:743,1
    - Dst: _PyEval_EnsureBuiltins
      Src: /src/cpython/Python/crossinterp_data_lookup.h:745,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:746,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:747,1
    - Dst: PyFunction_New
      Src: /src/cpython/Python/crossinterp_data_lookup.h:750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:752,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (PyCode_Check(code))
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 754
      start: 716
    functionDepth: 12
    functionLinenumber: 716
    functionLinenumberEnd: 754
    functionName: _PyFunction_FromXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - Py_INCREF
    - _PyErr_Occurred
    - _PyEval_EnsureBuiltins
    - _PyMarshal_ReadObjectFromXIData
    - _PyThreadState_GET
    - PyFunction_New
    - assert
    - Py_DECREF
    - _PyEval_GetGlobalsFromRunningMain
    - PyDict_New
    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:760,1
    - Dst: format_notshareableerror
      Src: /src/cpython/Python/crossinterp_data_lookup.h:762,1
    - Dst: _PyFunction_VerifyStateless
      Src: /src/cpython/Python/crossinterp_data_lookup.h:765,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp_data_lookup.h:766,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp_data_lookup.h:767,1
    - Dst: set_notshareableerror
      Src: /src/cpython/Python/crossinterp_data_lookup.h:769,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp_data_lookup.h:770,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:773,1
    - Dst: _PyMarshal_GetXIData
      Src: /src/cpython/Python/crossinterp_data_lookup.h:777,1
    - Dst: _PyXIData_SET_NEW_OBJECT
      Src: /src/cpython/Python/crossinterp_data_lookup.h:782,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: 766
        line_start: 766
        source_file: /src/cpython/Python/crossinterp_data_lookup.h
    constantsTouched: []
    func_position:
      end: 784
      start: 756
    functionDepth: 16
    functionLinenumber: 756
    functionLinenumberEnd: 784
    functionName: _PyFunction_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 2
    functionsReached:
    - _PyFunction_VerifyStateless
    - set_notshareableerror
    - PyFunction_Check
    - PyFunction_GET_CODE
    - _PyXIData_SET_NEW_OBJECT
    - format_notshareableerror
    - _PyErr_GetRaisedException
    - _PyMarshal_GetXIData
    - assert
    - Py_DECREF
    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:799,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/crossinterp_data_lookup.h:799,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:800,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:804,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:805,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:809,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:810,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:814,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:815,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:819,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:820,1
    - Dst: REGISTER
      Src: /src/cpython/Python/crossinterp_data_lookup.h:824,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:825,1
    - Dst: REGISTER_FALLBACK
      Src: /src/cpython/Python/crossinterp_data_lookup.h:829,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp_data_lookup.h:830,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - xidregistry
    argTypes:
    - dlregistry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 836
    functionName: _register_builtins_for_crossinterpreter_data
    functionSourceFile: /src/cpython/Python/crossinterp_data_lookup.h
    functionUses: 1
    functionsReached:
    - REGISTER_FALLBACK
    - Py_FatalError
    - REGISTER
    - Py_TYPE
    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: 795
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 795
    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: 798
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 798
    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: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    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: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    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: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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:46,1
    - Dst: get_cf_finally_top
      Src: /src/cpython/Python/ast_preprocess.c:51,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: 57
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 57
    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:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - _PyASTPreprocessState*
    assertStmts:
    - condition: (state->cf_finally_used > 0)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/cpython/Python/ast_preprocess.c
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    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:69,1
    - Dst: _PyErr_EmitSyntaxWarning
      Src: /src/cpython/Python/ast_preprocess.c:73,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_preprocess.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - kw
    - n
    - state
    argTypes:
    - char*
    - stmt_ty
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 10
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: control_flow_in_finally_warning
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyErr_EmitSyntaxWarning
    - PyUnicode_FromFormat
    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:85,1
    - Dst: control_flow_in_finally_warning
      Src: /src/cpython/Python/ast_preprocess.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - state
    - node_
    argTypes:
    - _PyASTPreprocessState*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 11
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: before_return
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - get_cf_finally_top
    - control_flow_in_finally_warning
    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:99,1
    - Dst: control_flow_in_finally_warning
      Src: /src/cpython/Python/ast_preprocess.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - state
    - node_
    - kw
    argTypes:
    - _PyASTPreprocessState*
    - stmt_ty
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 11
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: before_loop_exit
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - get_cf_finally_top
    - control_flow_in_finally_warning
    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: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    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: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    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: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    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: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    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: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    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: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    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: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    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: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    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: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    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:139,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/ast_preprocess.c:142,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Python/ast_preprocess.c:145,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_preprocess.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - node
    - val
    - arena
    argTypes:
    - expr_ty
    - PyObject*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 153
    functionName: make_const
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 5
    functionsReached:
    - Py_DECREF
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - _PyArena_AddPyObject
    linkageType: ''
    returnType: int
    signature: int make_const(expr_ty node, PyObject *val, PyArena *arena)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TO
    - ','
    - FROM
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    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:160,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - elts
    argTypes:
    - asdl_expr_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 168
    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:173,1
    - Dst: PyUnicode_KIND
      Src: /src/cpython/Python/ast_preprocess.c:174,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/ast_preprocess.c:175,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/ast_preprocess.c:180,1
    - Dst: PyUnicode_READ
      Src: /src/cpython/Python/ast_preprocess.c:183,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/ast_preprocess.c:195,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/ast_preprocess.c:198,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/ast_preprocess.c:199,1
    - Dst: PyUnicode_Replace
      Src: /src/cpython/Python/ast_preprocess.c:199,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/ast_preprocess.c:199,1
    - Dst: _Py_LATIN1_CHR
      Src: /src/cpython/Python/ast_preprocess.c:200,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Python/ast_preprocess.c:206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_preprocess.c:207,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Python/ast_preprocess.c:210,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - fmt
    - ppos
    - arena
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 170
    functionDepth: 8
    functionLinenumber: 170
    functionLinenumberEnd: 211
    functionName: parse_literal
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_DATA
    - _Py_STR
    - PyUnicode_READ
    - _Py_DECLARE_STR
    - Py_SETREF
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - _Py_LATIN1_CHR
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PyUnicode_Replace
    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:219,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: 273
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 273
    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:279,1
    - Dst: snprintf
      Src: /src/cpython/Python/ast_preprocess.c:289,1
    - Dst: snprintf
      Src: /src/cpython/Python/ast_preprocess.c:292,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/ast_preprocess.c:296,1
    - Dst: _PyArena_AddPyObject
      Src: /src/cpython/Python/ast_preprocess.c:300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/ast_preprocess.c:301,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Python/ast_preprocess.c:304,1
    - Dst: _PyAST_FormattedValue
      Src: /src/cpython/Python/ast_preprocess.c:309,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: 316
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 316
    functionName: parse_format
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - _PyAST_FormattedValue
    - _PyArena_AddPyObject
    - _PyAST_Constant
    - simple_format_arg_parse
    - Py_DECREF
    - snprintf
    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:323,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:323,1
    - Dst: parse_literal
      Src: /src/cpython/Python/ast_preprocess.c:330,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:332,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast_preprocess.c:334,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/ast_preprocess.c:338,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:341,1
    - Dst: assert
      Src: /src/cpython/Python/ast_preprocess.c:345,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/cpython/Python/ast_preprocess.c:345,1
    - Dst: parse_format
      Src: /src/cpython/Python/ast_preprocess.c:347,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:347,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast_preprocess.c:350,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:352,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:354,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Python/ast_preprocess.c:358,1
    - Dst: COPY_NODE
      Src: /src/cpython/Python/ast_preprocess.c:365,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: 344
        line_start: 344
        source_file: /src/cpython/Python/ast_preprocess.c
    constantsTouched: []
    func_position:
      end: 368
      start: 318
    functionDepth: 9
    functionLinenumber: 318
    functionLinenumberEnd: 368
    functionName: optimize_format
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - asdl_seq_GET
    - COPY_NODE
    - parse_literal
    - asdl_seq_SET
    - _Py_asdl_expr_seq_new
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - assert
    - asdl_seq_LEN
    - _PyAST_JoinedStr
    - parse_format
    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:386,1
    - Dst: has_starred
      Src: /src/cpython/Python/ast_preprocess.c:387,1
    - Dst: optimize_format
      Src: /src/cpython/Python/ast_preprocess.c:389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - node
    - arena
    - state
    argTypes:
    - expr_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 370
    functionDepth: 10
    functionLinenumber: 370
    functionLinenumberEnd: 393
    functionName: fold_binop
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - optimize_format
    - has_starred
    - PyUnicode_Check
    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: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: CALL
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 2
    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: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    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:430,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:433,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:434,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - stmts
    - idx
    argTypes:
    - asdl_stmt_seq*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 439
    functionName: stmt_seq_remove_item
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - asdl_seq_SET
    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:444,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/ast_preprocess.c:444,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/ast_preprocess.c:447,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:448,1
    - Dst: _PyAST_Pass
      Src: /src/cpython/Python/ast_preprocess.c:449,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:459,1
    - Dst: stmt_seq_remove_item
      Src: /src/cpython/Python/ast_preprocess.c:463,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: 443
        line_start: 443
        source_file: /src/cpython/Python/ast_preprocess.c
    constantsTouched: []
    func_position:
      end: 464
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 464
    functionName: remove_docstring
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - asdl_seq_SET
    - stmt_seq_remove_item
    - _PyAST_GetDocString
    - _PyAST_Pass
    - assert
    - asdl_seq_LEN
    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:469,1
    - Dst: remove_docstring
      Src: /src/cpython/Python/ast_preprocess.c:472,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:477,1
    - Dst: _PyAST_GetDocString
      Src: /src/cpython/Python/ast_preprocess.c:478,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/ast_preprocess.c:479,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/ast_preprocess.c:480,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/ast_preprocess.c:484,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Python/ast_preprocess.c:485,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - stmts
    - ctx_
    - state
    argTypes:
    - asdl_stmt_seq*
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 494
    functionName: astfold_body
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - CALL_SEQ
    - _PyAST_GetDocString
    - _Py_asdl_expr_seq_new
    - asdl_seq_SET
    - _PyAST_JoinedStr
    - remove_docstring
    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:501,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:504,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:507,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - mod_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 516
    functionName: astfold_mod
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_SEQ
    - CALL
    linkageType: ''
    returnType: int
    signature: int astfold_mod(mod_ty node_, PyArena *ctx_, _PyASTPreprocessState
      *state)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:521,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:524,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:527,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:528,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:535,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:536,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:539,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:540,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:541,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:544,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:545,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:548,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:551,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:552,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:555,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:556,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:559,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:561,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:563,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:566,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:567,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:570,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:573,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:576,1
    - Dst: CALL
      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_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:584,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:585,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:588,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:589,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:592,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:593,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:596,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:599,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:602,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:605,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:606,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:609,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:612,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:613,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:614,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:617,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:620,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/cpython/Python/ast_preprocess.c:627,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:628,1
    - Dst: make_const
      Src: /src/cpython/Python/ast_preprocess.c:629,1
    - Dst: PyBool_FromLong
      Src: /src/cpython/Python/ast_preprocess.c:629,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:633,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:641,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 119
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - expr_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 643
    functionName: astfold_expr
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_SEQ
    - ENTER_RECURSIVE
    - _PyUnicode_EqualToASCIIString
    - make_const
    - PyBool_FromLong
    - LEAVE_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:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - keyword_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 650
    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:655,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:656,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - comprehension_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 659
    functionName: astfold_comprehension
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_SEQ
    - CALL
    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:664,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:665,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:666,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:667,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:668,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:669,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - arguments_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 672
    functionName: astfold_arguments
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_SEQ
    - CALL_OPT
    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:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - arg_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 681
    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:686,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:689,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:690,1
    - Dst: BEFORE_FUNC_BODY
      Src: /src/cpython/Python/ast_preprocess.c:691,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:692,1
    - Dst: AFTER_FUNC_BODY
      Src: /src/cpython/Python/ast_preprocess.c:693,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:694,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:696,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:701,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:702,1
    - Dst: BEFORE_FUNC_BODY
      Src: /src/cpython/Python/ast_preprocess.c:703,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:704,1
    - Dst: AFTER_FUNC_BODY
      Src: /src/cpython/Python/ast_preprocess.c:705,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:706,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:708,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:713,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:714,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:715,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:716,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:717,1
    - Dst: BEFORE_RETURN
      Src: /src/cpython/Python/ast_preprocess.c:720,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:721,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:724,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:727,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:728,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:731,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:732,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:735,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:737,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:739,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:742,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:743,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:744,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:747,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:748,1
    - Dst: BEFORE_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:749,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:750,1
    - Dst: AFTER_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:751,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:752,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:756,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:757,1
    - Dst: BEFORE_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:758,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:759,1
    - Dst: AFTER_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:760,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:761,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:765,1
    - Dst: BEFORE_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:766,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:767,1
    - Dst: AFTER_LOOP_BODY
      Src: /src/cpython/Python/ast_preprocess.c:768,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:769,1
    - Dst: CALL
      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:775,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:778,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:779,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:782,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:783,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:786,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:787,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:790,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:791,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:792,1
    - Dst: BEFORE_FINALLY
      Src: /src/cpython/Python/ast_preprocess.c:793,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:794,1
    - Dst: AFTER_FINALLY
      Src: /src/cpython/Python/ast_preprocess.c:795,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:799,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:800,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:801,1
    - Dst: BEFORE_FINALLY
      Src: /src/cpython/Python/ast_preprocess.c:802,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:803,1
    - Dst: AFTER_FINALLY
      Src: /src/cpython/Python/ast_preprocess.c:804,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:808,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:809,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:812,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:815,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:816,1
    - Dst: BEFORE_LOOP_EXIT
      Src: /src/cpython/Python/ast_preprocess.c:819,1
    - Dst: BEFORE_LOOP_EXIT
      Src: /src/cpython/Python/ast_preprocess.c:822,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:834,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 148
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - stmt_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 836
    functionName: astfold_stmt
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - BEFORE_FINALLY
    - BEFORE_LOOP_EXIT
    - CALL
    - CALL_SEQ
    - BEFORE_FUNC_BODY
    - ENTER_RECURSIVE
    - AFTER_LOOP_BODY
    - AFTER_FUNC_BODY
    - BEFORE_LOOP_BODY
    - AFTER_FINALLY
    - LEAVE_RECURSIVE
    - BEFORE_RETURN
    - 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:843,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - excepthandler_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 850
    functionName: astfold_excepthandler
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_SEQ
    - CALL_OPT
    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:855,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - withitem_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 858
    functionName: astfold_withitem
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_OPT
    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:874,1
    - Dst: make_const
      Src: /src/cpython/Python/ast_preprocess.c:875,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:885,1
    - Dst: PyNumber_Add
      Src: /src/cpython/Python/ast_preprocess.c:889,1
    - Dst: PyNumber_Subtract
      Src: /src/cpython/Python/ast_preprocess.c:889,1
    - Dst: make_const
      Src: /src/cpython/Python/ast_preprocess.c:890,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - node
    - ctx_
    - state
    argTypes:
    - expr_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 860
    functionDepth: 3
    functionLinenumber: 860
    functionLinenumberEnd: 899
    functionName: fold_const_match_patterns
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - PyNumber_Negative
    - CALL
    - PyNumber_Add
    - make_const
    - PyNumber_Subtract
    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:907,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:910,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:915,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:922,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:923,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:924,1
    - Dst: CALL
      Src: /src/cpython/Python/ast_preprocess.c:930,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:934,1
    - Dst: LEAVE_RECURSIVE
      Src: /src/cpython/Python/ast_preprocess.c:939,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - pattern_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 941
    functionName: astfold_pattern
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - LEAVE_RECURSIVE
    - CALL_SEQ
    - CALL
    - ENTER_RECURSIVE
    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:946,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:947,1
    - Dst: CALL_SEQ
      Src: /src/cpython/Python/ast_preprocess.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - match_case_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 950
    functionName: astfold_match_case
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 0
    functionsReached:
    - CALL_SEQ
    - CALL
    - CALL_OPT
    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:957,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:958,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:961,1
    - Dst: CALL_OPT
      Src: /src/cpython/Python/ast_preprocess.c:964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - node_
    - ctx_
    - state
    argTypes:
    - type_param_ty
    - PyArena*
    - _PyASTPreprocessState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 968
    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:980,1
    - Dst: _Py_CArray_Init
      Src: /src/cpython/Python/ast_preprocess.c:987,1
    - Dst: astfold_mod
      Src: /src/cpython/Python/ast_preprocess.c:991,1
    - Dst: assert
      Src: /src/cpython/Python/ast_preprocess.c:992,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/ast_preprocess.c:992,1
    - Dst: _Py_CArray_Fini
      Src: /src/cpython/Python/ast_preprocess.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 8
    argNames:
    - mod
    - arena
    - filename
    - optimize
    - ff_features
    - syntax_check_only
    - enable_warnings
    - module
    argTypes:
    - mod_ty
    - PyArena*
    - PyObject*
    - int
    - int
    - int
    - int
    - PyObject*
    assertStmts:
    - condition: (ret || PyErr_Occurred())
      pos:
        line_end: 991
        line_start: 991
        source_file: /src/cpython/Python/ast_preprocess.c
    constantsTouched: []
    func_position:
      end: 996
      start: 974
    functionDepth: 3
    functionLinenumber: 974
    functionLinenumberEnd: 996
    functionName: _PyAST_Preprocess
    functionSourceFile: /src/cpython/Python/ast_preprocess.c
    functionUses: 2
    functionsReached:
    - _Py_CArray_Fini
    - _Py_CArray_Init
    - memset
    - astfold_mod
    - PyErr_Occurred
    - 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, int
      enable_warnings,\n                  PyObject *module)"
  - 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: 16
    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: 18
    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:
    - _PyMutex_LockTimed
    - _PyTime_FromMicrosecondsClamp
    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: 61
    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: 47
    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:
    - _PyTime_AsMicroseconds
    - _PyTime_FromSeconds
    - _PyTime_FromSecondsObject
    - PyErr_SetString
    - 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:
    - _PyTime_AsMicroseconds
    - _PyDeadline_Init
    - PyThread_acquire_lock_timed
    - _PyDeadline_Get
    - _PyThreadState_GET
    - _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:
    - PyMem_RawFree
    - PyThread_tss_delete
    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: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/thread.c:344,1
    - Dst: confstr
      Src: /src/cpython/Python/thread.c:349,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/cpython/Python/thread.c:351,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/thread.c:353,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/thread.c:358,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/cpython/Python/thread.c:360,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 362
    functionName: PyThread_GetInfo
    functionSourceFile: /src/cpython/Python/thread.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyStructSequence_New
    - _PyStructSequence_InitBuiltin
    - PyUnicode_DecodeFSDefaultAndSize
    - PyStructSequence_SET_ITEM
    - _PyInterpreterState_GET
    - PyErr_Clear
    - confstr
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThread_GetInfo(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/thread.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 369
    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
    - PyErr_SetString
    - _PyThreadState_GET
    - Py_DECREF
    - PyThreadState*::c_profilefunc
    - PyEval_GetFrame
    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:
    - assert
    - call_profile_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    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: (kwnames == NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 69
        line_start: 69
        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:
    - assert
    - call_profile_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    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:
    - assert
    - call_profile_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    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: (kwnames == NULL)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 91
        line_start: 91
        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:
    - assert
    - call_profile_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    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:
    - call_profile_func
    - _PyLegacyEventHandler_CAST
    - PyCFunction_Check
    - assert
    - Py_DECREF
    - PyVectorcall_NARGS
    - Py_TYPE
    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:
    - _PyMonitoring_GetLocalEvents
    - _PyFrame_GetCode
    - _PyEval_StartTheWorld
    - set_opcode_trace_world_stopped
    - _PyInterpreterState_GET
    - _PyEval_StopTheWorld
    - assert
    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
    - PyErr_SetString
    - _PyEval_SetOpcodeTrace
    - _PyThreadState_GET
    - PyThreadState*::c_tracefunc
    - Py_DECREF
    - PyEval_GetFrame
    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: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 214
        line_start: 214
        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
    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:
    - call_trace_func
    - _PyLegacyEventHandler_CAST
    - PyException_GetTraceback
    - PyTuple_Pack
    - assert
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyVectorcall_NARGS
    - Py_NewRef
    - Py_TYPE
    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:
    - assert
    - call_trace_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    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:
    - assert
    - call_trace_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    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:
    - assert
    - call_trace_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    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: (PyVectorcall_NARGS(nargsf) == 3)
      pos:
        line_end: 271
        line_start: 271
        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: (kwnames == NULL)
      pos:
        line_end: 270
        line_start: 270
        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:
    - PyCode_Check
    - call_trace_func
    - _PyLegacyEventHandler_CAST
    - PyErr_Occurred
    - assert
    - PyVectorcall_NARGS
    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:
    - assert
    - call_trace_func
    - PyVectorcall_NARGS
    - _PyLegacyEventHandler_CAST
    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: (PyVectorcall_NARGS(nargsf) == 2)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (kwnames == NULL)
      pos:
        line_end: 295
        line_start: 295
        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
    - PyThreadState*::c_tracefunc
    - PyErr_SetString
    - _PyEval_SetOpcodeTrace
    - _PyLegacyEventHandler_CAST
    - _PyThreadState_GET
    - assert
    - Py_DECREF
    - PyVectorcall_NARGS
    - PyEval_GetFrame
    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:
    - Py_DECREF
    - Py_INCREF
    - PyThreadState*::c_tracefunc
    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:
    - _PyFrame_GetCode
    - PyLong_AsInt
    - PyErr_SetString
    - trace_line
    - _PyLegacyEventHandler_CAST
    - _PyThreadState_GET
    - assert
    - PyVectorcall_NARGS
    - PyEval_GetFrame
    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:
    - PyCode_Check
    - _Py_Instrumentation_GetLine
    - PyLong_AsInt
    - PyErr_SetString
    - trace_line
    - _PyLegacyEventHandler_CAST
    - _PyThreadState_GET
    - assert
    - PyVectorcall_NARGS
    - PyEval_GetFrame
    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:
    - Py_XNewRef
    - assert
    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:
    - is_tstate_valid
    - set_monitoring_profile_events
    - swap_profile_func_arg
    - _PyEval_StartTheWorld
    - _PyOnceFlag_CallOnce
    - _PySys_Audit
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - Py_XDECREF
    - assert
    - _Py_AssertHoldsTstate
    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: (is_tstate_valid(current_tstate))
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/cpython/Python/legacy_tracing.c
    - condition: (current_tstate->interp == interp)
      pos:
        line_end: 556
        line_start: 556
        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:
    - is_tstate_valid
    - set_monitoring_profile_events
    - _PyEval_StartTheWorld
    - swap_profile_func_arg
    - HEAD_LOCK
    - _PyOnceFlag_CallOnce
    - _PySys_Audit
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - HEAD_UNLOCK
    - PyTuple_SET_ITEM
    - Py_XDECREF
    - assert
    - PyTuple_New
    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:
    - Py_XNewRef
    - assert
    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:
    - is_tstate_valid
    - _PyEval_StartTheWorld
    - _PyOnceFlag_CallOnce
    - _PySys_Audit
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - set_monitoring_trace_events
    - maybe_set_opcode_trace
    - Py_XDECREF
    - assert
    - _Py_AssertHoldsTstate
    - swap_trace_func_arg
    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:
    - is_tstate_valid
    - _PyEval_StartTheWorld
    - HEAD_LOCK
    - _PyOnceFlag_CallOnce
    - _PySys_Audit
    - _PyEval_StopTheWorld
    - _PyThreadState_GET
    - HEAD_UNLOCK
    - PyTuple_SET_ITEM
    - maybe_set_opcode_trace
    - Py_XDECREF
    - assert
    - set_monitoring_trace_events
    - swap_trace_func_arg
    - PyTuple_New
    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:
    - maybe_set_opcode_trace
    - Py_XDECREF
    - _PyEval_StartTheWorld
    - HEAD_UNLOCK
    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: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    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:131,1
    - Dst: fwrite
      Src: /src/cpython/Python/marshal.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - WFILE*
    assertStmts:
    - condition: (p->fp != NULL)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    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:143,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:146,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/marshal.c:148,1
    - Dst: Py_MAX
      Src: /src/cpython/Python/marshal.c:153,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/marshal.c:159,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:164,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: 145
        line_start: 145
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 169
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 169
    functionName: w_reserve
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyBytes_AS_STRING
    - Py_MAX
    - w_flush
    - assert
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    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:180,1
    - Dst: w_flush
      Src: /src/cpython/Python/marshal.c:184,1
    - Dst: fwrite
      Src: /src/cpython/Python/marshal.c:185,1
    - Dst: w_reserve
      Src: /src/cpython/Python/marshal.c:189,1
    - Dst: memcpy
      Src: /src/cpython/Python/marshal.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - void*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 171
    functionDepth: 7
    functionLinenumber: 171
    functionLinenumberEnd: 194
    functionName: w_string
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 5
    functionsReached:
    - w_reserve
    - fwrite
    - memcpy
    - w_flush
    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:199,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - p
    argTypes:
    - int
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 201
    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:206,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:207,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:208,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - p
    argTypes:
    - long
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 210
    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: 223
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 223
    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:230,1
    - Dst: w_string
      Src: /src/cpython/Python/marshal.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - void*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 8
    functionLinenumber: 227
    functionLinenumberEnd: 232
    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:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - void*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 8
    functionLinenumber: 234
    functionLinenumberEnd: 239
    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: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    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: 261
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 261
    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:300,1
    - Dst: _PyLong_IsZero
      Src: /src/cpython/Python/marshal.c:301,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:302,1
    - Dst: PyLong_Export
      Src: /src/cpython/Python/marshal.c:308,1
    - Dst: _Py_ABS_CAST
      Src: /src/cpython/Python/marshal.c:315,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:324,1
    - Dst: w_short
      Src: /src/cpython/Python/marshal.c:328,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Python/marshal.c:334,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:338,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:339,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:342,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:343,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:344,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:345,1
    - Dst: _r_digits32
      Src: /src/cpython/Python/marshal.c:348,1
    - Dst: _r_digits16
      Src: /src/cpython/Python/marshal.c:352,1
    - Dst: PyLong_FreeExport
      Src: /src/cpython/Python/marshal.c:355,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: 337
        line_start: 337
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->bits_per_digit >= PyLong_MARSHAL_SHIFT)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->digit_size == 2 || layout->digit_size == 4)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->bits_per_digit <= 32)
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->digits_order == -1)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/cpython/Python/marshal.c
    - condition: '(layout->digit_endianness == (PY_LITTLE_ENDIAN ? -1 : 1))'
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 356
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 356
    functionName: w_PyLong
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_short
    - _PyLong_IsZero
    - w_long
    - assert
    - _r_digits16
    - PyLong_GetNativeLayout
    - PyLong_FreeExport
    - _r_digits32
    - W_TYPE
    - PyLong_Export
    - _Py_ABS_CAST
    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:362,1
    - Dst: w_string
      Src: /src/cpython/Python/marshal.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - double
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 358
    functionDepth: 8
    functionLinenumber: 358
    functionLinenumberEnd: 367
    functionName: w_float_bin
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyFloat_Pack8
    - w_string
    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:372,1
    - Dst: w_short_pstring
      Src: /src/cpython/Python/marshal.c:377,1
    - Dst: strlen
      Src: /src/cpython/Python/marshal.c:377,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - double
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 9
    functionLinenumber: 369
    functionLinenumberEnd: 379
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/marshal.c:393,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/marshal.c:394,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/marshal.c:394,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/marshal.c:398,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/marshal.c:403,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:407,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:408,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:409,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:415,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/marshal.c:420,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/marshal.c:420,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Python/marshal.c:420,1
    - Dst: _Py_hashtable_set
      Src: /src/cpython/Python/marshal.c:423,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/marshal.c:423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:425,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - v
    - flag
    - p
    argTypes:
    - PyObject*
    - char*
    - WFILE*
    assertStmts:
    - condition: (w <= 0x7fffffff)
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 434
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 434
    functionName: w_ref
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyFrozenDict_CheckExact
    - PySlice_Check
    - PyCode_Check
    - w_long
    - _Py_hashtable_set
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_CheckExact
    - PyErr_SetString
    - w_byte
    - PyErr_Format
    - assert
    - Py_DECREF
    - _Py_hashtable_get_entry
    - Py_NewRef
    - _PyObject_IsUniquelyReferenced
    linkageType: ''
    returnType: int
    signature: int w_ref(PyObject *v, char *flag, WFILE *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/marshal.c:442,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/cpython/Python/marshal.c:446,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:450,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - WFILE*
    assertStmts:
    - condition: (entry != NULL)
      pos:
        line_end: 449
        line_start: 449
        source_file: /src/cpython/Python/marshal.c
    - condition: (w & 0x80000000LU)
      pos:
        line_end: 451
        line_start: 451
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 455
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 455
    functionName: w_complete
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_get_entry
    - _PyObject_IsUniquelyReferenced
    - assert
    linkageType: ''
    returnType: void
    signature: void w_complete(PyObject *v, WFILE *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:475,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:478,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:481,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:484,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:487,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:490,1
    - Dst: w_ref
      Src: /src/cpython/Python/marshal.c:492,1
    - Dst: w_complex_object
      Src: /src/cpython/Python/marshal.c:493,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 496
    functionName: w_object
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 7
    functionsReached:
    - w_complex_object
    - w_byte
    - w_ref
    linkageType: ''
    returnType: void
    signature: void w_object(PyObject *v, WFILE *p)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/marshal.c:503,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/cpython/Python/marshal.c:505,1
    - Dst: w_PyLong
      Src: /src/cpython/Python/marshal.c:507,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/cpython/Python/marshal.c:511,1
    - Dst: w_PyLong
      Src: /src/cpython/Python/marshal.c:514,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:519,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:520,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/marshal.c:524,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:526,1
    - Dst: w_float_bin
      Src: /src/cpython/Python/marshal.c:527,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/marshal.c:527,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:530,1
    - Dst: w_float_str
      Src: /src/cpython/Python/marshal.c:531,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/cpython/Python/marshal.c:531,1
    - Dst: PyComplex_CheckExact
      Src: /src/cpython/Python/marshal.c:534,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:536,1
    - Dst: w_float_bin
      Src: /src/cpython/Python/marshal.c:537,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/cpython/Python/marshal.c:537,1
    - Dst: w_float_bin
      Src: /src/cpython/Python/marshal.c:538,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/cpython/Python/marshal.c:538,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:541,1
    - Dst: w_float_str
      Src: /src/cpython/Python/marshal.c:542,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/cpython/Python/marshal.c:542,1
    - Dst: w_float_str
      Src: /src/cpython/Python/marshal.c:543,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/cpython/Python/marshal.c:543,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/marshal.c:546,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:547,1
    - Dst: w_pstring
      Src: /src/cpython/Python/marshal.c:548,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:548,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/marshal.c:548,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/marshal.c:550,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/cpython/Python/marshal.c:551,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/marshal.c:552,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/marshal.c:554,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:555,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:557,1
    - Dst: w_short_pstring
      Src: /src/cpython/Python/marshal.c:558,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/marshal.c:558,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/marshal.c:559,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/marshal.c:562,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:563,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:565,1
    - Dst: w_pstring
      Src: /src/cpython/Python/marshal.c:566,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/cpython/Python/marshal.c:566,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/cpython/Python/marshal.c:567,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/cpython/Python/marshal.c:572,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/cpython/Python/marshal.c:578,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:579,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:581,1
    - Dst: w_pstring
      Src: /src/cpython/Python/marshal.c:582,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:582,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/marshal.c:582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:583,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/marshal.c:586,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/marshal.c:587,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:589,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:590,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:593,1
    - Dst: W_SIZE
      Src: /src/cpython/Python/marshal.c:594,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:597,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/marshal.c:597,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/marshal.c:600,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:601,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/marshal.c:602,1
    - Dst: W_SIZE
      Src: /src/cpython/Python/marshal.c:603,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:605,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/marshal.c:605,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Python/marshal.c:608,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Python/marshal.c:611,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:613,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:618,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:621,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/marshal.c:625,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:626,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:627,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:629,1
    - Dst: PyFrozenDict_CheckExact
      Src: /src/cpython/Python/marshal.c:630,1
    - Dst: w_complete
      Src: /src/cpython/Python/marshal.c:631,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/marshal.c:634,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/marshal.c:639,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:640,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:642,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Python/marshal.c:643,1
    - Dst: W_SIZE
      Src: /src/cpython/Python/marshal.c:644,1
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:649,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/marshal.c:655,1
    - Dst: _PySet_NextEntryRef
      Src: /src/cpython/Python/marshal.c:656,1
    - Dst: _PyMarshal_WriteObjectToString
      Src: /src/cpython/Python/marshal.c:657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:661,1
    - Dst: _PyTuple_FromPairSteal
      Src: /src/cpython/Python/marshal.c:664,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/marshal.c:669,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/marshal.c:671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:673,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:676,1
    - Dst: PyList_Sort
      Src: /src/cpython/Python/marshal.c:677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:679,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/marshal.c:683,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/marshal.c:684,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:687,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/marshal.c:689,1
    - Dst: _PyCode_GetCode
      Src: /src/cpython/Python/marshal.c:695,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:700,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:701,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:702,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:703,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:704,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:705,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:706,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:707,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:708,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:709,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:710,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:711,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:712,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:713,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:714,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:715,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:717,1
    - Dst: w_complete
      Src: /src/cpython/Python/marshal.c:718,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Python/marshal.c:720,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/marshal.c:723,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:724,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:729,1
    - Dst: w_pstring
      Src: /src/cpython/Python/marshal.c:730,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/marshal.c:731,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/marshal.c:733,1
    - Dst: w_byte
      Src: /src/cpython/Python/marshal.c:735,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:740,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:741,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:742,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:743,1
    - Dst: w_complete
      Src: /src/cpython/Python/marshal.c:744,1
    - Dst: W_TYPE
      Src: /src/cpython/Python/marshal.c:747,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 201
    argCount: 3
    argNames:
    - v
    - flag
    - p
    argTypes:
    - PyObject*
    - char
    - WFILE*
    assertStmts:
    - condition: (i == n)
      pos:
        line_end: 675
        line_start: 675
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 750
      start: 498
    functionDepth: 10
    functionLinenumber: 498
    functionLinenumberEnd: 750
    functionName: w_complex_object
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PySlice_Check
    - PyTuple_GET_ITEM
    - PyUnicode_IS_ASCII
    - PyFloat_AS_DOUBLE
    - W_SIZE
    - PyFrozenSet_CheckExact
    - w_pstring
    - Py_END_CRITICAL_SECTION
    - PyList_GET_ITEM
    - PyComplex_CheckExact
    - W_TYPE
    - assert
    - PyTuple_GET_SIZE
    - PyObject_GetBuffer
    - PyUnicode_1BYTE_DATA
    - PyAnyDict_CheckExact
    - PyAnySet_CheckExact
    - _PySet_NextEntryRef
    - PyBytes_CheckExact
    - PyFloat_CheckExact
    - PyList_New
    - w_float_str
    - PyBytes_AS_STRING
    - w_float_bin
    - PyTuple_CheckExact
    - _PyMarshal_WriteObjectToString
    - PyObject_CheckBuffer
    - PyUnicode_AsEncodedString
    - PyFrozenDict_CheckExact
    - PyComplex_RealAsDouble
    - PyDict_Next
    - _PyCode_GetCode
    - PyLong_CheckExact
    - w_complete
    - PyList_Sort
    - Py_DECREF
    - w_short_pstring
    - w_PyLong
    - PyBytes_GET_SIZE
    - PyComplex_ImagAsDouble
    - PyList_SET_ITEM
    - PyCode_Check
    - w_long
    - Py_ARITHMETIC_RIGHT_SHIFT
    - Py_BEGIN_CRITICAL_SECTION
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_CheckExact
    - PySet_GET_SIZE
    - PyBuffer_Release
    - w_byte
    - PyUnicode_GET_LENGTH
    - w_object
    - _PyTuple_FromPairSteal
    - PyList_CheckExact
    - PyList_GET_SIZE
    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:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 757
    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:763,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/marshal.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - wf
    - version
    argTypes:
    - WFILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 772
    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:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - wf
    argTypes:
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 780
    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:792,1
    - Dst: w_long
      Src: /src/cpython/Python/marshal.c:798,1
    - Dst: w_flush
      Src: /src/cpython/Python/marshal.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - fp
    - version
    argTypes:
    - long
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 800
    functionName: PyMarshal_WriteLongToFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - memset
    - w_flush
    - w_long
    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:807,1
    - Dst: memset
      Src: /src/cpython/Python/marshal.c:810,1
    - Dst: w_init_refs
      Src: /src/cpython/Python/marshal.c:817,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:820,1
    - Dst: w_clear_refs
      Src: /src/cpython/Python/marshal.c:821,1
    - Dst: w_flush
      Src: /src/cpython/Python/marshal.c:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - x
    - fp
    - version
    argTypes:
    - PyObject*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 823
    functionName: PyMarshal_WriteObjectToFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - PySys_Audit
    - w_clear_refs
    - memset
    - w_object
    - w_init_refs
    - w_flush
    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:847,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/marshal.c:855,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/marshal.c:857,1
    - Dst: PyMem_Realloc
      Src: /src/cpython/Python/marshal.c:863,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/marshal.c:865,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:873,1
    - Dst: fread
      Src: /src/cpython/Python/marshal.c:874,1
    - Dst: PyBuffer_FillInfo
      Src: /src/cpython/Python/marshal.c:880,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/cpython/Python/marshal.c:882,1
    - Dst: _PyObject_CallMethod
      Src: /src/cpython/Python/marshal.c:886,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/marshal.c:886,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/cpython/Python/marshal.c:888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:889,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:893,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/marshal.c:895,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:900,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: 872
        line_start: 872
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 906
      start: 837
    functionDepth: 5
    functionLinenumber: 837
    functionLinenumberEnd: 906
    functionName: r_string
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 5
    functionsReached:
    - fread
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyMem_Realloc
    - PyErr_SetString
    - PyNumber_AsSsize_t
    - _PyObject_CallMethod
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - PyErr_Format
    - PyBuffer_FillInfo
    - PyMemoryView_FromBuffer
    - _Py_ID
    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:917,1
    - Dst: getc
      Src: /src/cpython/Python/marshal.c:918,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:924,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:930,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts:
    - condition: (p->fp)
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 933
      start: 908
    functionDepth: 6
    functionLinenumber: 908
    functionLinenumberEnd: 933
    functionName: r_byte
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - getc
    - r_string
    - 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:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 935
    functionDepth: 6
    functionLinenumber: 935
    functionLinenumberEnd: 949
    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:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 951
    functionDepth: 6
    functionLinenumber: 951
    functionLinenumberEnd: 969
    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:975,1
    - Dst: _PyLong_FromByteArray
      Src: /src/cpython/Python/marshal.c:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 972
    functionDepth: 6
    functionLinenumber: 972
    functionLinenumberEnd: 982
    functionName: r_long64
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromByteArray
    - r_string
    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: 1011
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 1011
    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:1039,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1040,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1044,1
    - Dst: PyLong_GetNativeLayout
      Src: /src/cpython/Python/marshal.c:1049,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1053,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1054,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1057,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1058,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1059,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1060,1
    - Dst: Py_ABS
      Src: /src/cpython/Python/marshal.c:1062,1
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1064,1
    - Dst: Py_ABS
      Src: /src/cpython/Python/marshal.c:1066,1
    - Dst: PyLongWriter_Create
      Src: /src/cpython/Python/marshal.c:1068,1
    - Dst: _w_digits32
      Src: /src/cpython/Python/marshal.c:1077,1
    - Dst: _w_digits16
      Src: /src/cpython/Python/marshal.c:1080,1
    - Dst: PyLongWriter_Discard
      Src: /src/cpython/Python/marshal.c:1083,1
    - Dst: PyLongWriter_Finish
      Src: /src/cpython/Python/marshal.c:1086,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: 1052
        line_start: 1052
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->bits_per_digit >= PyLong_MARSHAL_SHIFT)
      pos:
        line_end: 1053
        line_start: 1053
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->bits_per_digit <= 32)
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->digits_order == -1)
      pos:
        line_end: 1057
        line_start: 1057
        source_file: /src/cpython/Python/marshal.c
    - condition: '(layout->digit_endianness == (PY_LITTLE_ENDIAN ? -1 : 1))'
      pos:
        line_end: 1058
        line_start: 1058
        source_file: /src/cpython/Python/marshal.c
    - condition: (layout->digit_size == 2 || layout->digit_size == 4)
      pos:
        line_end: 1059
        line_start: 1059
        source_file: /src/cpython/Python/marshal.c
    - condition: (size >= 1)
      pos:
        line_end: 1063
        line_start: 1063
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 1087
      start: 1036
    functionDepth: 7
    functionLinenumber: 1036
    functionLinenumberEnd: 1087
    functionName: r_PyLong
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyLong_GetNativeLayout
    - PyErr_SetString
    - PyLongWriter_Finish
    - r_long
    - _w_digits16
    - PyLongWriter_Create
    - PyErr_Occurred
    - assert
    - PyLongWriter_Discard
    - _w_digits32
    - Py_ABS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_PyLong(RFILE *p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1092,1
    - Dst: PyFloat_Unpack8
      Src: /src/cpython/Python/marshal.c:1095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1089
    functionDepth: 6
    functionLinenumber: 1089
    functionLinenumberEnd: 1096
    functionName: r_float_bin
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyFloat_Unpack8
    - r_string
    linkageType: ''
    returnType: double
    signature: double r_float_bin(RFILE *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: r_byte
      Src: /src/cpython/Python/marshal.c:1106,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1110,1
    - Dst: memcpy
      Src: /src/cpython/Python/marshal.c:1114,1
    - Dst: PyOS_string_to_double
      Src: /src/cpython/Python/marshal.c:1116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1100
    functionDepth: 7
    functionLinenumber: 1100
    functionLinenumberEnd: 1117
    functionName: r_float_str
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - r_byte
    - r_string
    - memcpy
    - PyOS_string_to_double
    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:1124,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1126,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/marshal.c:1129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - flag
    - p
    argTypes:
    - int
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1120
    functionDepth: 2
    functionLinenumber: 1120
    functionLinenumberEnd: 1134
    functionName: r_ref_reserve
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyList_GET_SIZE
    - PyList_Append
    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:1148,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/marshal.c:1149,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/marshal.c:1149,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1150,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: 1153
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1153
    functionName: r_ref_insert
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_SET_ITEM
    - Py_NewRef
    - PyList_GET_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:1162,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/marshal.c:1165,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1166,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: 1161
        line_start: 1161
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 1170
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1170
    functionName: r_ref
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_Append
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_ref(PyObject *o, int flag, RFILE *p)'
  - BBCount: 116
    BranchProfiles: []
    Callsites:
    - Dst: r_byte
      Src: /src/cpython/Python/marshal.c:1180,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/marshal.c:1185,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1186,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1196,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/marshal.c:1218,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1234,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1235,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/marshal.c:1238,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1239,1
    - Dst: r_long64
      Src: /src/cpython/Python/marshal.c:1243,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1244,1
    - Dst: r_PyLong
      Src: /src/cpython/Python/marshal.c:1248,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1249,1
    - Dst: r_float_str
      Src: /src/cpython/Python/marshal.c:1254,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1255,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/marshal.c:1257,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1258,1
    - Dst: r_float_bin
      Src: /src/cpython/Python/marshal.c:1264,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1265,1
    - Dst: PyFloat_FromDouble
      Src: /src/cpython/Python/marshal.c:1267,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1268,1
    - Dst: r_float_str
      Src: /src/cpython/Python/marshal.c:1275,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1276,1
    - Dst: r_float_str
      Src: /src/cpython/Python/marshal.c:1278,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1279,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Python/marshal.c:1281,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1282,1
    - Dst: r_float_bin
      Src: /src/cpython/Python/marshal.c:1289,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1290,1
    - Dst: r_float_bin
      Src: /src/cpython/Python/marshal.c:1292,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1293,1
    - Dst: PyComplex_FromCComplex
      Src: /src/cpython/Python/marshal.c:1295,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1296,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1303,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1306,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/marshal.c:1311,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1316,1
    - Dst: memcpy
      Src: /src/cpython/Python/marshal.c:1319,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:1319,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1321,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1329,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1331,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1332,1
    - Dst: r_byte
      Src: /src/cpython/Python/marshal.c:1343,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1350,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/cpython/Python/marshal.c:1353,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/marshal.c:1359,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/marshal.c:1360,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1363,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1374,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1376,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1377,1
    - Dst: r_string
      Src: /src/cpython/Python/marshal.c:1383,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/cpython/Python/marshal.c:1386,1
    - Dst: Py_GetConstant
      Src: /src/cpython/Python/marshal.c:1389,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/marshal.c:1396,1
    - Dst: _PyUnicode_InternImmortal
      Src: /src/cpython/Python/marshal.c:1397,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1400,1
    - Dst: r_byte
      Src: /src/cpython/Python/marshal.c:1405,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1411,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1413,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1414,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/marshal.c:1420,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1421,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1426,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1428,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1429,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/marshal.c:1431,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/marshal.c:1434,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1440,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1442,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1443,1
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:1448,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1449,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1453,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1455,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1456,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/marshal.c:1458,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/marshal.c:1461,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/marshal.c:1468,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1473,1
    - Dst: r_ref_reserve
      Src: /src/cpython/Python/marshal.c:1476,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/marshal.c:1478,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1484,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1489,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/marshal.c:1492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1494,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1497,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1498,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1500,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/marshal.c:1501,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/marshal.c:1504,1
    - Dst: PyFrozenDict_New
      Src: /src/cpython/Python/marshal.c:1504,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1511,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1513,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1514,1
    - Dst: _PyObject_CallNoArgs
      Src: /src/cpython/Python/marshal.c:1522,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1525,1
    - Dst: PySet_New
      Src: /src/cpython/Python/marshal.c:1529,1
    - Dst: PyFrozenSet_New
      Src: /src/cpython/Python/marshal.c:1529,1
    - Dst: R_REF
      Src: /src/cpython/Python/marshal.c:1531,1
    - Dst: r_ref_reserve
      Src: /src/cpython/Python/marshal.c:1536,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/marshal.c:1538,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1544,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1546,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1547,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/marshal.c:1549,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/marshal.c:1552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1554,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1558,1
    - Dst: r_ref_insert
      Src: /src/cpython/Python/marshal.c:1561,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1586,1
    - Dst: r_ref_reserve
      Src: /src/cpython/Python/marshal.c:1590,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1597,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1598,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1600,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1601,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1604,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1605,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1607,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1608,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1610,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1611,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1613,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1616,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1619,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1622,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1625,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1628,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1631,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1634,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1637,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1638,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1640,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1643,1
    - Dst: _PyCode_Validate
      Src: /src/cpython/Python/marshal.c:1672,1
    - Dst: _PyCode_New
      Src: /src/cpython/Python/marshal.c:1676,1
    - Dst: r_ref_insert
      Src: /src/cpython/Python/marshal.c:1681,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1684,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1685,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1688,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1689,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1690,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1691,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1692,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1693,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1694,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1695,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1696,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1697,1
    - Dst: r_long
      Src: /src/cpython/Python/marshal.c:1703,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/marshal.c:1704,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1705,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1706,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/marshal.c:1711,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1713,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/marshal.c:1716,1
    - Dst: r_ref_reserve
      Src: /src/cpython/Python/marshal.c:1721,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1727,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1731,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1735,1
    - Dst: PySlice_New
      Src: /src/cpython/Python/marshal.c:1739,1
    - Dst: r_ref_insert
      Src: /src/cpython/Python/marshal.c:1740,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1742,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1743,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1744,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1751,1
    CyclomaticComplexity: 198
    EdgeCount: 198
    ICount: 464
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1172
    functionDepth: 16
    functionLinenumber: 1172
    functionLinenumberEnd: 1757
    functionName: r_object
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 6
    functionsReached:
    - PyLong_FromLong
    - r_float_bin
    - R_REF
    - PyBytes_FromStringAndSize
    - r_byte
    - PyFloat_FromDouble
    - PyUnicode_DecodeUTF8
    - PyList_GET_ITEM
    - r_long64
    - PyFrozenDict_New
    - memcpy
    - PyErr_Occurred
    - PySlice_New
    - r_object
    - PyComplex_FromCComplex
    - r_ref_reserve
    - PyList_New
    - r_ref_insert
    - PyBytes_AS_STRING
    - Py_XDECREF
    - _PyObject_CallNoArgs
    - r_string
    - PyErr_SetString
    - PySet_New
    - PyTuple_SET_ITEM
    - Py_DECREF
    - _PyCode_New
    - Py_NewRef
    - PyTuple_New
    - r_PyLong
    - Py_GetConstant
    - PyList_SET_ITEM
    - PyDict_New
    - _PyCode_Validate
    - PySet_Add
    - Py_SETREF
    - _PyInterpreterState_GET
    - PyDict_SetItem
    - r_long
    - Py_CLEAR
    - PyErr_ExceptionMatches
    - r_float_str
    - PyUnicode_FromKindAndData
    - PyFrozenSet_New
    - PyList_GET_SIZE
    - _PyUnicode_InternImmortal
    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: 1207
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1207
    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:1763,1
    - Dst: fprintf
      Src: /src/cpython/Python/marshal.c:1764,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/marshal.c:1768,1
    - Dst: PySys_Audit
      Src: /src/cpython/Python/marshal.c:1772,1
    - Dst: r_object
      Src: /src/cpython/Python/marshal.c:1776,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/marshal.c:1777,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1778,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1759
    functionDepth: 17
    functionLinenumber: 1759
    functionLinenumberEnd: 1780
    functionName: read_object
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - r_object
    - PySys_Audit
    - PyErr_SetString
    - PyErr_Occurred
    - fprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_object(RFILE *p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/marshal.c:1787,1
    - Dst: r_short
      Src: /src/cpython/Python/marshal.c:1792,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts:
    - condition: (fp)
      pos:
        line_end: 1786
        line_start: 1786
        source_file: /src/cpython/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 1796
      start: 1782
    functionDepth: 7
    functionLinenumber: 1782
    functionLinenumberEnd: 1796
    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:1807,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1798
    functionDepth: 7
    functionLinenumber: 1798
    functionLinenumberEnd: 1811
    functionName: PyMarshal_ReadLongFromFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - r_long
    - PyMem_Free
    linkageType: ''
    returnType: long
    signature: long PyMarshal_ReadLongFromFile(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_fstat_noraise
      Src: /src/cpython/Python/marshal.c:1818,1
    - Dst: fileno
      Src: /src/cpython/Python/marshal.c:1818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1814
    functionDepth: 4
    functionLinenumber: 1814
    functionLinenumberEnd: 1826
    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:1840,1
    - Dst: PyMem_Malloc
      Src: /src/cpython/Python/marshal.c:1842,1
    - Dst: fread
      Src: /src/cpython/Python/marshal.c:1844,1
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/cpython/Python/marshal.c:1845,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1846,1
    - Dst: PyMarshal_ReadObjectFromFile
      Src: /src/cpython/Python/marshal.c:1854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1834
    functionDepth: 5
    functionLinenumber: 1834
    functionLinenumberEnd: 1857
    functionName: PyMarshal_ReadLastObjectFromFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - fread
    - PyMem_Malloc
    - PyMarshal_ReadObjectFromFile
    - PyMarshal_ReadObjectFromString
    - PyMem_Free
    - getfilesize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_ReadLastObjectFromFile(FILE *fp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:1870,1
    - Dst: read_object
      Src: /src/cpython/Python/marshal.c:1873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1874,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1859
    functionDepth: 18
    functionLinenumber: 1859
    functionLinenumberEnd: 1878
    functionName: PyMarshal_ReadObjectFromFile
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyMem_Free
    - PyList_New
    - read_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_ReadObjectFromFile(FILE *fp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:1892,1
    - Dst: read_object
      Src: /src/cpython/Python/marshal.c:1895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1896,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:1898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1880
    functionDepth: 18
    functionLinenumber: 1880
    functionLinenumberEnd: 1900
    functionName: PyMarshal_ReadObjectFromString
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyMem_Free
    - PyList_New
    - read_object
    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:1907,1
    - Dst: memset
      Src: /src/cpython/Python/marshal.c:1910,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/marshal.c:1911,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:1914,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/marshal.c:1915,1
    - Dst: w_init_refs
      Src: /src/cpython/Python/marshal.c:1919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1920,1
    - Dst: w_object
      Src: /src/cpython/Python/marshal.c:1923,1
    - Dst: w_clear_refs
      Src: /src/cpython/Python/marshal.c:1924,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/marshal.c:1926,1
    - Dst: _PyBytes_Resize
      Src: /src/cpython/Python/marshal.c:1927,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/marshal.c:1931,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/marshal.c:1934,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1937,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1941,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/marshal.c:1946,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - x
    - version
    - allow_code
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1902
    functionDepth: 6
    functionLinenumber: 1902
    functionLinenumberEnd: 1953
    functionName: _PyMarshal_WriteObjectToString
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - PyBytes_FromStringAndSize
    - PySys_Audit
    - PyErr_SetString
    - w_clear_refs
    - _PyBytes_Resize
    - memset
    - w_init_refs
    - w_object
    - PyBytes_AS_STRING
    - Py_DECREF
    - Py_XDECREF
    - PyBytes_GET_SIZE
    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:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1955
    functionDepth: 7
    functionLinenumber: 1955
    functionLinenumberEnd: 1959
    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:1992,1
    - Dst: PyObject_CallMethodOneArg
      Src: /src/cpython/Python/marshal.c:1995,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/marshal.c:1995,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:1996,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: 1998
      start: 1983
    functionDepth: 7
    functionLinenumber: 1983
    functionLinenumberEnd: 1998
    functionName: marshal_dump_impl
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_ID
    - _PyMarshal_WriteObjectToString
    - PyObject_CallMethodOneArg
    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:2034,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/marshal.c:2034,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/marshal.c:2037,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/marshal.c:2038,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/marshal.c:2040,1
    - Dst: PyList_New
      Src: /src/cpython/Python/marshal.c:2050,1
    - Dst: read_object
      Src: /src/cpython/Python/marshal.c:2051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:2052,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/marshal.c:2054,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:2058,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - module
    - file
    - allow_code
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2020
    functionDepth: 18
    functionLinenumber: 2020
    functionLinenumberEnd: 2060
    functionName: marshal_load_impl
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - read_object
    - PyBytes_Check
    - _PyObject_CallMethod
    - PyErr_Format
    - PyList_New
    - Py_DECREF
    - PyMem_Free
    - Py_TYPE
    - _Py_ID
    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:2086,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: 2087
      start: 2081
    functionDepth: 7
    functionLinenumber: 2081
    functionLinenumberEnd: 2087
    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:2118,1
    - Dst: read_object
      Src: /src/cpython/Python/marshal.c:2120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/marshal.c:2121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - module
    - bytes
    - allow_code
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2104
    functionDepth: 18
    functionLinenumber: 2104
    functionLinenumberEnd: 2123
    functionName: marshal_loads_impl
    functionSourceFile: /src/cpython/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_New
    - read_object
    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:2167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2164
    functionDepth: 14
    functionLinenumber: 2164
    functionLinenumberEnd: 2171
    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:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2189
    functionDepth: 2
    functionLinenumber: 2189
    functionLinenumberEnd: 2193
    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_GetCause
    - PyException_SetCause
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - assert
    - Py_NewRef
    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:
    - PyErr_Clear
    - _PyXI_GET_STATE
    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_SetObject
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - assert
    - _PyErr_ChainExceptions1Tstate
    - _ensure_current_cause
    - Py_TYPE
    - get_notshareableerror_type
    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:
    - PyUnicode_FromString
    - _PyErr_Occurred
    - _ensure_notshareableerror
    - assert
    - Py_DECREF
    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:
    - PyUnicode_FromFormatV
    - _PyErr_Occurred
    - _ensure_notshareableerror
    - assert
    - Py_DECREF
    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:
    - va_end
    - va_start
    - format_notshareableerror_v
    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: 20
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: init_static_exctypes
    functionSourceFile: /src/cpython/Python/crossinterp_exceptions.h
    functionUses: 0
    functionsReached:
    - _PyStaticType_InitBuiltin
    - _PyXI_GET_STATE
    - fini_static_exctypes
    - assert
    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:
    - _PyXI_GET_STATE
    - _PyStaticType_FiniBuiltin
    - 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:
    - _init_notshareableerror
    - fini_heap_exctypes
    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:
    - strcmp
    - asdl_seq_GET
    - PyErr_SetString
    - PyUnicode_AsUTF8
    - PyErr_Format
    - assert
    - asdl_seq_LEN
    - PyErr_RangedSyntaxLocationObject
    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:
    - SRC_LOCATION_FROM_AST
    - asdl_seq_GET
    - future_check_features
    - _PyUnicode_EqualToASCIIString
    - _PyAST_GetDocString
    - asdl_seq_LEN
    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:
    - assert
    - _PyOnceFlag_CallOnce
    - _PyInterpreterState_GET
    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
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:282,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 251
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 287
    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: 90
    BranchProfiles: []
    Callsites:
    - 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
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:377,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:378,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:379,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 180
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ast_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 289
    functionDepth: 11
    functionLinenumber: 289
    functionLinenumberEnd: 381
    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: 656
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:825,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:832,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:838,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:847,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:850,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:854,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:861,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:864,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:867,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:870,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:871,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:878,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:884,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:888,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:891,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:897,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:900,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:901,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:905,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:906,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:907,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:909,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:916,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:925,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:926,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:933,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:936,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:940,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:946,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:951,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:955,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:958,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:961,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:967,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:968,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:972,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:976,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:982,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:986,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:995,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:999,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1001,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1010,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1017,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1023,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1026,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1031,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1033,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1042,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1049,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1055,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1058,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1061,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1065,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1072,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1075,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1078,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1081,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1082,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1086,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1087,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1089,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1091,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1097,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1100,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1102,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1108,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1111,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1114,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1118,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1127,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1130,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1134,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1143,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1150,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1156,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1159,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1166,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1175,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1182,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1189,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1196,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1199,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1200,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1204,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1205,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1208,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1217,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1223,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1229,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1232,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1235,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1237,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1239,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1245,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1248,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1251,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1254,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1263,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1270,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1279,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1286,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1293,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1302,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1303,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1310,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1316,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1320,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1323,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1326,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1332,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1333,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1340,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1346,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1350,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1353,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1362,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1363,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1370,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1373,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1376,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1382,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1384,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1386,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1395,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1398,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1400,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1402,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1409,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1418,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1419,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1423,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1425,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1427,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1436,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1439,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1443,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1449,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1453,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1460,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1469,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1470,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1474,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1478,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1484,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1488,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1494,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1496,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1498,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1505,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1514,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1515,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1519,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1523,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1529,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1532,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1534,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1543,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1549,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1555,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1556,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1557,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1559,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1563,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1566,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1572,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1575,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1576,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1580,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1582,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1584,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1590,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1594,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1603,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1609,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1618,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1624,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1630,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1633,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1637,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1639,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1643,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1646,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1652,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1655,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1656,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1660,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1661,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1664,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1670,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1674,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1683,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1686,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1689,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1695,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1698,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1701,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1704,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1710,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1713,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1718,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1720,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1727,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1733,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1736,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1737,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1741,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1745,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1754,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1757,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1760,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1766,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1769,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1772,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1775,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1782,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1785,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1791,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1792,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1796,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1798,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1800,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1806,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1809,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1815,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1821,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1824,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1830,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1837,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1840,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1843,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1846,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1847,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1851,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1854,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1857,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1860,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1869,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1875,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1884,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1891,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1898,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1901,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1904,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1907,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1908,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1912,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1915,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1918,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1921,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1927,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1930,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1933,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1934,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1936,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:1942,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1945,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1948,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1952,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1959,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1965,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1968,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:1969,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:1973,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1977,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:1983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1986,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:1989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1992,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:1996,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:1999,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2002,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2008,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2009,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2016,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2020,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2022,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2031,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2035,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2037,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2044,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2050,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2053,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2054,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2061,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2065,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2067,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2076,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2082,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2091,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2095,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2097,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2106,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2112,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2116,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2119,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2125,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2128,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2129,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2136,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2142,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2151,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2157,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2166,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2172,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2178,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2181,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2184,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2188,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2195,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2198,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2201,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2204,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2205,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2209,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2213,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2222,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2225,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2228,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2235,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2241,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2244,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2245,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2252,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2256,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2258,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2264,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2267,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2270,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2273,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2277,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2280,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2286,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2289,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2290,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2294,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2297,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2300,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2302,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2304,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2313,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2319,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2325,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2328,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2331,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2334,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2340,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2343,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2346,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2348,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2350,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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2363,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2366,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2367,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2371,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2374,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2378,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2380,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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2393,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2396,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2397,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2404,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2407,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2410,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2417,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2426,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2427,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2431,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2435,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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2445,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2451,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2452,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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2466,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2467,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2472,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2481,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2482,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2484,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2487,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2490,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2496,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2497,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2501,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2505,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2511,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2514,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2520,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2527,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2530,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2536,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2537,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2541,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2545,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2551,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2555,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2559,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2562,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2571,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2572,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2576,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2580,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2586,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2587,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2588,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2590,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2596,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2598,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2600,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2604,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2607,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2610,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2613,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2616,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2617,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2621,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2625,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2631,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2633,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2635,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2639,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2642,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2648,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2651,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2652,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2656,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2657,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2658,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2660,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2666,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2668,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2670,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2674,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2677,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2686,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2687,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2691,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2693,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2695,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2701,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2702,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2705,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2711,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2712,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2715,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2722,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2731,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2732,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2739,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2742,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2745,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2751,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2754,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2757,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2760,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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2776,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2777,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2781,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2784,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2790,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2797,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2800,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2806,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2807,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2811,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2813,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2815,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2821,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2824,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2831,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2835,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2838,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2841,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2847,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2848,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2852,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2853,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2854,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2856,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2862,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2865,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2868,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2872,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2876,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2879,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2882,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2888,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2889,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2893,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2897,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:2903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2906,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: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:2959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2962,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2965,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2967,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2969,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2976,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2979,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2985,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:2986,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:2990,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:2991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:2994,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:2998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3001,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3010,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3011,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3015,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3018,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3021,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3024,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3031,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3040,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3041,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3045,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3046,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3049,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3053,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3056,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3059,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3062,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3065,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3066,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3070,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3071,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3072,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3074,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3080,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3083,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:3103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3105,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3112,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3115,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3121,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3122,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3126,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3128,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3130,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3139,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3142,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_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3154,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3158,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3160,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3164,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3167,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3170,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3173,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3176,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3177,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3181,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3182,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3184,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3186,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3192,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3193,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3195,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3197,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3203,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3206,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3209,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3211,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3213,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3220,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3223,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3230,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3231,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3235,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3238,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3240,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3246,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3247,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3251,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3257,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3258,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3262,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3271,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3278,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3285,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3294,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3295,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3302,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3305,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3306,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3308,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3312,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3315,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3324,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3325,1
    - Dst: Py_GenericAlias
      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:3337,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3339,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3343,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3346,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3349,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3355,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3356,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3360,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3364,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3370,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3373,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3376,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3379,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3383,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3386,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3389,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3395,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3396,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3400,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3402,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3404,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3410,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3412,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3414,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3420,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3422,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3424,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3428,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3431,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3440,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3441,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3445,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3446,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3449,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3455,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3459,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3465,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3466,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3469,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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3479,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3485,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3486,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3490,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3491,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3494,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3500,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3501,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3504,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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3517,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3520,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3521,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3525,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3526,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3527,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3529,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3535,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3536,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3537,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3539,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3546,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3552,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3555,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3556,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3560,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3563,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3566,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3569,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3575,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3576,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3579,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3583,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3586,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3589,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3595,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3596,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:3600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3603,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3607,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3609,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:3615,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3617,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3619,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3623,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3626,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3629,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3635,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3636,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3643,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3649,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3658,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3661,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3662,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3664,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:3670,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3673,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:3676,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3677,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3679,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3683,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3686,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3689,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3695,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3696,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3701,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3707,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3710,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3711,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3716,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3719,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3725,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3726,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3728,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3731,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3734,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3740,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3741,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3746,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3752,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3755,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3756,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3758,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3761,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3764,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3767,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3770,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3771,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3773,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3776,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3779,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3782,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3785,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3786,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3788,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3791,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3794,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3797,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3800,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3801,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3803,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3806,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3809,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3815,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3816,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3818,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3821,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3824,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3827,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3830,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3831,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3833,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3836,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3842,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3845,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3846,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3851,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3854,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3857,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3860,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3861,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3866,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3869,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3875,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3876,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3878,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3881,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3887,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3890,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3891,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3893,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3896,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3899,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3902,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3905,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3906,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3908,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3911,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3914,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3917,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3920,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3921,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3923,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3926,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3929,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3932,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3935,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3936,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3938,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3941,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3950,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3951,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3953,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3956,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3965,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3966,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3971,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3974,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3980,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3981,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3983,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3986,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3992,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:3995,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:3996,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:3998,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4001,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4004,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4010,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4011,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4016,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4019,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4025,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4026,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4028,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4031,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4040,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4041,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4046,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4049,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4055,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4056,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4058,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4061,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4064,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4067,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4070,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4071,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4076,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4085,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4086,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4088,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4091,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4100,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4101,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4106,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4112,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4115,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4116,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4118,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4121,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4130,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4131,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4133,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4136,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4139,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4142,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4145,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4146,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4151,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4154,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4157,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4160,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4161,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4166,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4169,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4175,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4176,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4180,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4181,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4183,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4185,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4191,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4194,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4196,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4205,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4208,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4210,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4212,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4218,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4219,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4223,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4227,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4230,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4233,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4236,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4239,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4240,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4247,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4250,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4254,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4260,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4263,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4268,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4270,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4276,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4279,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4282,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4284,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4286,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4290,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4293,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4299,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4302,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4303,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4310,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4315,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4317,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4326,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4329,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4330,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4332,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4341,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4344,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4347,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4353,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4356,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4359,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4363,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4369,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4372,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4375,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4377,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4379,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4388,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_GenericAlias
      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:4408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4410,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4414,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4417,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4420,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4426,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4427,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4431,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4432,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4435,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4441,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4444,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4448,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4450,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4456,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4459,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4462,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4463,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4465,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4469,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4472,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4478,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4481,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4482,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4486,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4489,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4493,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4495,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4501,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4502,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4503,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4505,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4512,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4515,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4518,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4521,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4522,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4526,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4527,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:4543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4545,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4552,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4555,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4558,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4561,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4562,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4566,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4567,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4571,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4580,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4583,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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4594,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4597,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4600,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4603,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4604,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4608,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4609,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4613,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4619,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4622,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4625,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4626,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4628,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4634,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4637,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4640,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4641,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4643,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4647,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4650,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4653,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4659,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4660,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4664,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4668,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4672,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4675,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4678,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4684,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4685,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4689,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4690,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4692,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4694,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4701,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4704,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4711,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4712,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4719,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4722,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4724,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4726,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4730,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4733,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4739,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4742,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4743,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4747,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4750,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4753,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4757,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4763,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4766,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4769,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_union_type_or
      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: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4793,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4796,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4799,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4805,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4806,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4810,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4814,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4820,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4823,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4826,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4828,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4830,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4836,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4839,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4842,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4846,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4855,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4862,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4869,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4878,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4879,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4883,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4886,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4892,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4896,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4899,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4902,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4908,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4909,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4916,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4919,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4922,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:4928,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4931,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4934,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4935,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4937,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4941,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4944,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4953,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4954,1
    - Dst: Py_GenericAlias
      Src: /src/cpython/Python/Python-ast.c:4958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4961,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4964,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4965,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4967,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4971,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4974,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:4977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4983,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:4984,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4988,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:4989,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4991,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:4993,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:4999,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5003,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5007,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5010,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5013,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5016,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5019,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:5020,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:5024,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5026,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5028,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:5034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5037,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:5082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5084,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:5090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5093,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5096,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5098,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5100,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5104,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5107,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5113,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5116,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:5117,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/Python-ast.c:5121,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5122,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5126,1
    - Dst: _Py_union_type_or
      Src: /src/cpython/Python/Python-ast.c:5132,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5135,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/Python-ast.c:5138,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5140,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5142,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5149,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:5152,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5158,1
    CyclomaticComplexity: 655
    EdgeCount: 655
    ICount: 3645
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ast_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5161
      start: 821
    functionDepth: 11
    functionLinenumber: 821
    functionLinenumberEnd: 5161
    functionName: add_ast_annotations
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_GenericAlias
    - PyDict_SetItemString
    - PyObject_SetAttrString
    - Py_DECREF
    - _Py_union_type_or
    - PyDict_New
    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:5175,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/cpython/Python/Python-ast.c:5176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:5177,1
    - Dst: PyType_GetSlot
      Src: /src/cpython/Python/Python-ast.c:5178,1
    - Dst: assert
      Src: /src/cpython/Python/Python-ast.c:5179,1
    - Dst: free_func
      Src: /src/cpython/Python/Python-ast.c:5180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (free_func != NULL)
      pos:
        line_end: 5178
        line_start: 5178
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 5182
      start: 5170
    functionDepth: 2
    functionLinenumber: 5170
    functionLinenumberEnd: 5182
    functionName: ast_dealloc
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_CLEAR
    - assert
    - PyObject_GC_UnTrack
    - free_func
    - PyType_GetSlot
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ast_dealloc(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/cpython/Python/Python-ast.c:5188,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5188,1
    - Dst: Py_VISIT
      Src: /src/cpython/Python/Python-ast.c:5189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5191
      start: 5184
    functionDepth: 1
    functionLinenumber: 5184
    functionLinenumberEnd: 5191
    functionName: ast_traverse
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_TYPE
    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:5197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5199
      start: 5193
    functionDepth: 1
    functionLinenumber: 5193
    functionLinenumberEnd: 5199
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5216,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:5220,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/Python-ast.c:5221,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5228,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/Python-ast.c:5232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5234,1
    - Dst: PyUnicodeWriter_Format
      Src: /src/cpython/Python/Python-ast.c:5252,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5253,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5257,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/Python-ast.c:5259,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/Python-ast.c:5261,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - missing
    - fields
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5263
      start: 5212
    functionDepth: 6
    functionLinenumber: 5212
    functionLinenumberEnd: 5263
    functionName: format_missing
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PySet_GET_SIZE
    - PySequence_GetItem
    - PyUnicodeWriter_Format
    - PySet_Contains
    - PyUnicodeWriter_Finish
    - PySequence_Size
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      format_missing(PyObject *missing, PyObject *fields)'
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:5268,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/Python-ast.c:5273,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5273,1
    - Dst: PyErr_WarnFormat
      Src: /src/cpython/Python/Python-ast.c:5278,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/Python-ast.c:5290,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5290,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5295,1
    - Dst: PySet_New
      Src: /src/cpython/Python/Python-ast.c:5299,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:5305,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5306,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:5308,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5308,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:5313,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5315,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5320,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:5320,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/Python-ast.c:5321,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5323,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5326,1
    - Dst: PyDict_Next
      Src: /src/cpython/Python/Python-ast.c:5333,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/Python-ast.c:5334,1
    - Dst: PySet_Discard
      Src: /src/cpython/Python/Python-ast.c:5340,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5346,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/Python-ast.c:5356,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5356,1
    - Dst: PySequence_Contains
      Src: /src/cpython/Python/Python-ast.c:5362,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5368,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5375,1
    - Dst: PySet_Size
      Src: /src/cpython/Python/Python-ast.c:5381,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5384,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5384,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/Python-ast.c:5384,1
    - Dst: PySequence_List
      Src: /src/cpython/Python/Python-ast.c:5395,1
    - Dst: PySet_New
      Src: /src/cpython/Python/Python-ast.c:5399,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:5404,1
    - Dst: PyDict_GetItemWithError
      Src: /src/cpython/Python/Python-ast.c:5405,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/Python-ast.c:5407,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5411,1
    - Dst: _PyUnion_Check
      Src: /src/cpython/Python/Python-ast.c:5417,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/Python-ast.c:5421,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:5423,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5427,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5428,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5435,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:5442,1
    - Dst: PySet_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:5448,1
    - Dst: format_missing
      Src: /src/cpython/Python/Python-ast.c:5450,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:5454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5457,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5461,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5462,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5465,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5466,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5467,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5470,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5471,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5472,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 188
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5475
      start: 5265
    functionDepth: 23
    functionLinenumber: 5265
    functionLinenumberEnd: 5475
    functionName: ast_type_init
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PySequence_List
    - PyList_GET_ITEM
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyDict_GetItemWithError
    - get_ast_state
    - PySet_Discard
    - PySet_Size
    - PyObject_GetOptionalAttr
    - PyList_New
    - _PyUnion_Check
    - Py_XDECREF
    - _PyType_Name
    - Py_IS_TYPE
    - PySequence_GetItem
    - PyErr_WarnFormat
    - PySet_New
    - PyDict_Next
    - format_missing
    - Py_DECREF
    - PyObject_SetAttr
    - PySequence_Contains
    - PySet_Add
    - PySet_GET_SIZE
    - PyObject_GetAttr
    - PySet_Contains
    - PySequence_Size
    - PyErr_Format
    - _Py_ID
    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:5481,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5487,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5502,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5502,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5506,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5508,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:5511,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5516,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/Python-ast.c:5521,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5522,1
    - Dst: PyList_Append
      Src: /src/cpython/Python/Python-ast.c:5529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5530,1
    - Dst: PyList_AsTuple
      Src: /src/cpython/Python/Python-ast.c:5535,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/Python-ast.c:5539,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5539,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/Python-ast.c:5542,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5542,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/Python-ast.c:5546,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5546,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5549,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5550,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5552
      start: 5478
    functionDepth: 8
    functionLinenumber: 5478
    functionLinenumberEnd: 5552
    functionName: ast_type_reduce
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - get_ast_state
    - PySequence_GetItem
    - PyObject_GetOptionalAttr
    - Py_BuildValue
    - PyList_AsTuple
    - PyList_New
    - PySequence_Size
    - PyList_Append
    - Py_DECREF
    - PyDict_GetItemRef
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast_type_reduce(PyObject *self, PyObject *unused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/Python-ast.c:5577,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5581,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5586,1
    - Dst: PyDict_GetItemRef
      Src: /src/cpython/Python/Python-ast.c:5591,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5592,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5596,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/Python-ast.c:5602,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5603,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5604,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - payload
    - keys
    - dict
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 5576
        line_start: 5576
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 5610
      start: 5572
    functionDepth: 10
    functionLinenumber: 5572
    functionLinenumberEnd: 5610
    functionName: ast_type_replace_update_payload
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - PyDict_SetItem
    - PySequence_Size
    - assert
    - Py_DECREF
    - PyDict_GetItemRef
    linkageType: ''
    returnType: int
    signature: "int ast_type_replace_update_payload(PyObject *payload,\n                                PyObject
      *keys,\n                                PyObject *dict)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/cpython/Python/Python-ast.c:5616,1
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:5620,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5633,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5634,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5637,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5640,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/Python-ast.c:5643,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/Python-ast.c:5647,1
    - Dst: ast_type_replace_update_payload
      Src: /src/cpython/Python/Python-ast.c:5653,1
    - Dst: ast_type_replace_update_payload
      Src: /src/cpython/Python/Python-ast.c:5657,1
    - Dst: PyDict_Update
      Src: /src/cpython/Python/Python-ast.c:5661,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/Python-ast.c:5664,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5666,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5667,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5668,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5669,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5670,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5672
      start: 5613
    functionDepth: 11
    functionLinenumber: 5613
    functionLinenumberEnd: 5672
    functionName: ast_type_replace
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - get_ast_state
    - PyDict_Update
    - PyObject_GetOptionalAttr
    - _PyArg_NoPositional
    - PyObject_Call
    - PyDict_New
    - Py_XDECREF
    - ast_type_replace_update_payload
    - PyTuple_New
    - Py_TYPE
    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:5704,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:5704,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/Python-ast.c:5704,1
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:5706,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5711,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/Python-ast.c:5716,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/Python-ast.c:5720,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5725,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5730,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:5736,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5737,1
    - Dst: Py_MIN
      Src: /src/cpython/Python/Python-ast.c:5741,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/Python-ast.c:5743,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/Python-ast.c:5749,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5749,1
    - Dst: ast_repr_max_depth
      Src: /src/cpython/Python/Python-ast.c:5751,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/Python-ast.c:5755,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5756,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5759,1
    - Dst: PyUnicodeWriter_WriteRepr
      Src: /src/cpython/Python/Python-ast.c:5761,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/Python-ast.c:5767,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5773,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5777,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5778,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/Python-ast.c:5779,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5782,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:5783,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/Python-ast.c:5784,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: 5703
        line_start: 5703
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 5786
      start: 5701
    functionDepth: 5
    functionLinenumber: 5701
    functionLinenumberEnd: 5786
    functionName: ast_repr_list
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast_repr_max_depth
    - Py_MIN
    - PyUnicodeWriter_Finish
    - PyTuple_Check
    - assert
    - Py_TYPE
    - PyUnicodeWriter_WriteStr
    - get_ast_state
    - PyType_IsSubtype
    - Py_XDECREF
    - PyUnicodeWriter_WriteRepr
    - PyUnicodeWriter_WriteASCII
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - PySequence_GetItem
    - PyObject_Repr
    - PyList_Check
    - Py_DECREF
    - PyUnicodeWriter_WriteChar
    - PySequence_Size
    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:5791,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/Python-ast.c:5797,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5797,1
    - Dst: Py_ReprEnter
      Src: /src/cpython/Python/Python-ast.c:5800,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/Python-ast.c:5805,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5805,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:5809,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5809,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5810,1
    - Dst: PySequence_Size
      Src: /src/cpython/Python/Python-ast.c:5814,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5816,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5817,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5823,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/Python-ast.c:5824,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5824,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5827,1
    - Dst: PyUnicodeWriter_Create
      Src: /src/cpython/Python/Python-ast.c:5828,1
    - Dst: PyUnicodeWriter_WriteUTF8
      Src: /src/cpython/Python/Python-ast.c:5833,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5836,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/Python-ast.c:5841,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/Python-ast.c:5846,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5848,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:5853,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/Python-ast.c:5853,1
    - Dst: ast_repr_list
      Src: /src/cpython/Python/Python-ast.c:5854,1
    - Dst: PyType_IsSubtype
      Src: /src/cpython/Python/Python-ast.c:5856,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:5856,1
    - Dst: ast_repr_max_depth
      Src: /src/cpython/Python/Python-ast.c:5857,1
    - Dst: PyObject_Repr
      Src: /src/cpython/Python/Python-ast.c:5860,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5866,1
    - Dst: PyUnicodeWriter_WriteASCII
      Src: /src/cpython/Python/Python-ast.c:5871,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5873,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/Python-ast.c:5877,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5878,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5879,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5883,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5885,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5886,1
    - Dst: PyUnicodeWriter_WriteStr
      Src: /src/cpython/Python/Python-ast.c:5889,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5890,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5894,1
    - Dst: PyUnicodeWriter_WriteChar
      Src: /src/cpython/Python/Python-ast.c:5897,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5901,1
    - Dst: PyUnicodeWriter_Finish
      Src: /src/cpython/Python/Python-ast.c:5902,1
    - Dst: Py_ReprLeave
      Src: /src/cpython/Python/Python-ast.c:5905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5906,1
    - Dst: PyUnicodeWriter_Discard
      Src: /src/cpython/Python/Python-ast.c:5907,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 103
    argCount: 2
    argNames:
    - self
    - depth
    argTypes:
    - AST_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5909
      start: 5788
    functionDepth: 10
    functionLinenumber: 5788
    functionLinenumberEnd: 5909
    functionName: ast_repr_max_depth
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - ast_repr_max_depth
    - PyUnicodeWriter_Finish
    - PyTuple_Check
    - Py_TYPE
    - PyUnicodeWriter_WriteStr
    - get_ast_state
    - PyType_IsSubtype
    - PyObject_GetOptionalAttr
    - PyUnicodeWriter_WriteUTF8
    - PyUnicodeWriter_WriteASCII
    - PyUnicodeWriter_Create
    - PyUnicodeWriter_Discard
    - Py_ReprEnter
    - PySequence_GetItem
    - PyObject_Repr
    - PyList_Check
    - ast_repr_list
    - Py_DECREF
    - Py_ReprLeave
    - PyUnicodeWriter_WriteChar
    - PyUnicode_FromFormat
    - PyObject_GetAttr
    - PySequence_Size
    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:5914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5915
      start: 5911
    functionDepth: 11
    functionLinenumber: 5911
    functionLinenumberEnd: 5915
    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:5948,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:5951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5953,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:5956,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/Python-ast.c:5958,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5965,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: 5967
      start: 5942
    functionDepth: 11
    functionLinenumber: 5942
    functionLinenumberEnd: 5967
    functionName: make_type
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    - PyObject_CallFunction
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    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:5973,1
    - Dst: PyUnicode_InternFromString
      Src: /src/cpython/Python/Python-ast.c:5977,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5979,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:5982,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:5984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:5985,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: 5987
      start: 5969
    functionDepth: 11
    functionLinenumber: 5969
    functionLinenumberEnd: 5987
    functionName: add_attributes
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - PyUnicode_InternFromString
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    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:5994,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:5995,1
    - Dst: func
      Src: /src/cpython/Python/Python-ast.c:6000,1
    - Dst: asdl_seq_GET_UNTYPED
      Src: /src/cpython/Python/Python-ast.c:6000,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:6002,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:6005,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: 6008
      start: 5991
    functionDepth: 4
    functionLinenumber: 5991
    functionLinenumberEnd: 6008
    functionName: ast2obj_list
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - asdl_seq_GET_UNTYPED
    - PyList_New
    - func
    - Py_DECREF
    - asdl_seq_LEN
    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:6016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Py_UNUSED(state)
    - o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6017
      start: 6010
    functionDepth: 0
    functionLinenumber: 6010
    functionLinenumberEnd: 6017
    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:6024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(state)
    - b
    argTypes:
    - struct ast_state*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6025
      start: 6022
    functionDepth: 0
    functionLinenumber: 6022
    functionLinenumberEnd: 6025
    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:6034,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:6038,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: 6044
      start: 6029
    functionDepth: 3
    functionLinenumber: 6029
    functionLinenumberEnd: 6044
    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:6048,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:6052,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: 6054
      start: 6046
    functionDepth: 3
    functionLinenumber: 6046
    functionLinenumberEnd: 6054
    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:6058,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:6059,1
    - Dst: obj2ast_object
      Src: /src/cpython/Python/Python-ast.c:6062,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: 6063
      start: 6056
    functionDepth: 4
    functionLinenumber: 6056
    functionLinenumberEnd: 6063
    functionName: obj2ast_identifier
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_CheckExact
    - obj2ast_object
    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:6067,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/Python-ast.c:6067,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:6068,1
    - Dst: obj2ast_object
      Src: /src/cpython/Python/Python-ast.c:6071,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: 6072
      start: 6065
    functionDepth: 4
    functionLinenumber: 6065
    functionLinenumberEnd: 6072
    functionName: obj2ast_string
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyBytes_CheckExact
    - PyErr_SetString
    - PyUnicode_CheckExact
    - obj2ast_object
    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:6077,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:6078,1
    - Dst: PyLong_AsInt
      Src: /src/cpython/Python/Python-ast.c:6082,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/Python-ast.c:6083,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: 6087
      start: 6074
    functionDepth: 4
    functionLinenumber: 6074
    functionLinenumberEnd: 6087
    functionName: obj2ast_int
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyLong_AsInt
    - PyLong_Check
    - PyErr_Occurred
    - 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:6092,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:6094,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:6095,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/Python-ast.c:6096,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:6097,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:6100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ast_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6102
      start: 6089
    functionDepth: 3
    functionLinenumber: 6089
    functionLinenumberEnd: 6102
    functionName: add_ast_fields
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_SetAttrString
    - PyTuple_New
    linkageType: ''
    returnType: int
    signature: int add_ast_fields(struct ast_state *state)
  - BBCount: 251
    BranchProfiles: []
    Callsites:
    - Dst: init_identifiers
      Src: /src/cpython/Python/Python-ast.c:6110,1
    - Dst: PyType_FromSpec
      Src: /src/cpython/Python/Python-ast.c:6113,1
    - Dst: PySet_New
      Src: /src/cpython/Python/Python-ast.c:6117,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6121,1
    - Dst: add_ast_fields
      Src: /src/cpython/Python/Python-ast.c:6124,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6127,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6133,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6134,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6135,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6139,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6143,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6147,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6152,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6182,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6184,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6185,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6187,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6190,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6194,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6197,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6200,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6205,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6208,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6211,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6215,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6219,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6221,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6225,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6229,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6232,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6236,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6240,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6244,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6246,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6249,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6251,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: make_type
      Src: /src/cpython/Python/Python-ast.c:6265,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6269,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6271,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6275,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6278,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6282,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6286,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6288,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6290,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6293,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6297,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6301,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6303,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6307,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6309,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6313,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6315,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6317,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6319,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6323,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6327,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6331,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6334,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6337,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6341,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6372,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6374,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6375,1
    - Dst: PyObject_SetAttr
      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: make_type
      Src: /src/cpython/Python/Python-ast.c:6388,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6392,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6396,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6400,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6404,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6408,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6411,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6415,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6419,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6423,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6425,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: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6438,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6440,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6444,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6448,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6452,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6457,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6460,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6465,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6468,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6472,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6476,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6480,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6482,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6486,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6490,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6494,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6498,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6502,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6506,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6510,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6512,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6514,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6516,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6520,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6521,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6523,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6527,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6530,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6534,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6537,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6540,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6543,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6546,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6547,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6548,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6551,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6554,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6557,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6560,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6564,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6565,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6566,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6569,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6572,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6575,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6578,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6581,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6584,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6588,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6592,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6595,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6598,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6601,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6604,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6607,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6610,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6614,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6618,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6622,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6626,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6629,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6632,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6636,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6640,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6644,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6648,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6652,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6656,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6659,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6660,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6661,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6665,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6669,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6672,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6675,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6678,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6681,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6684,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6687,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6690,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6691,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6692,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6695,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6698,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6701,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: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6725,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6728,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6731,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6734,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6737,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6740,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6743,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6746,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:6749,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6752,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6757,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6759,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6763,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6765,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6767,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6770,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6773,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6778,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6780,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6782,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6786,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6787,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6789,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6791,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6794,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6796,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6798,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6800,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6802,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6804,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6808,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: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6814,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6817,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6821,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6823,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6825,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6827,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6830,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6834,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6835,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6838,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6842,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6843,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6845,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6855,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6857,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6858,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6863,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6868,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6873,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6878,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6880,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6885,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6889,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6891,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6895,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6897,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6899,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6903,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6907,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6908,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6910,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6915,1
    - Dst: add_attributes
      Src: /src/cpython/Python/Python-ast.c:6921,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/Python-ast.c:6923,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6924,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6928,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6930,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6933,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6938,1
    - Dst: make_type
      Src: /src/cpython/Python/Python-ast.c:6941,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:6946,1
    - Dst: add_ast_annotations
      Src: /src/cpython/Python/Python-ast.c:6950,1
    CyclomaticComplexity: 250
    EdgeCount: 250
    ICount: 667
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6954
      start: 6106
    functionDepth: 13
    functionLinenumber: 6106
    functionLinenumberEnd: 6954
    functionName: init_types
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PySet_Add
    - PyObject_SetAttr
    - add_attributes
    - init_identifiers
    - PySet_New
    - make_type
    - add_ast_annotations
    - PyType_GenericNew
    - PyType_FromSpec
    - add_ast_fields
    linkageType: ''
    returnType: int
    signature: int init_types(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7000,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: 7007
      start: 6995
    functionDepth: 5
    functionLinenumber: 6995
    functionLinenumberEnd: 7007
    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:7013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - body
    - arena
    argTypes:
    - asdl_stmt_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7019
      start: 7009
    functionDepth: 5
    functionLinenumber: 7009
    functionLinenumberEnd: 7019
    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:7026,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - body
    - arena
    argTypes:
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7036
      start: 7021
    functionDepth: 5
    functionLinenumber: 7021
    functionLinenumberEnd: 7036
    functionName: _PyAST_Expression
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7043,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7047,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: 7054
      start: 7038
    functionDepth: 5
    functionLinenumber: 7038
    functionLinenumberEnd: 7054
    functionName: _PyAST_FunctionType
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7065,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7070,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7074,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: 7090
      start: 7056
    functionDepth: 5
    functionLinenumber: 7056
    functionLinenumberEnd: 7090
    functionName: _PyAST_FunctionDef
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7101,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7106,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7110,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: 7126
      start: 7092
    functionDepth: 5
    functionLinenumber: 7092
    functionLinenumberEnd: 7126
    functionName: _PyAST_AsyncFunctionDef
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7136,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7140,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: 7155
      start: 7128
    functionDepth: 5
    functionLinenumber: 7128
    functionLinenumberEnd: 7155
    functionName: _PyAST_ClassDef
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7162,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: 7172
      start: 7157
    functionDepth: 5
    functionLinenumber: 7157
    functionLinenumberEnd: 7172
    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:7179,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: 7189
      start: 7174
    functionDepth: 5
    functionLinenumber: 7174
    functionLinenumberEnd: 7189
    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:7198,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7202,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: 7214
      start: 7191
    functionDepth: 5
    functionLinenumber: 7191
    functionLinenumberEnd: 7214
    functionName: _PyAST_Assign
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7223,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7228,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7232,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: 7244
      start: 7216
    functionDepth: 5
    functionLinenumber: 7216
    functionLinenumberEnd: 7244
    functionName: _PyAST_TypeAlias
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7252,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7257,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7262,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7266,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: 7278
      start: 7246
    functionDepth: 5
    functionLinenumber: 7246
    functionLinenumberEnd: 7278
    functionName: _PyAST_AugAssign
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7287,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7292,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7296,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: 7309
      start: 7280
    functionDepth: 5
    functionLinenumber: 7280
    functionLinenumberEnd: 7309
    functionName: _PyAST_AnnAssign
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7318,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7323,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7327,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: 7341
      start: 7311
    functionDepth: 5
    functionLinenumber: 7311
    functionLinenumberEnd: 7341
    functionName: _PyAST_For
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7350,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7355,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7359,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: 7373
      start: 7343
    functionDepth: 5
    functionLinenumber: 7343
    functionLinenumberEnd: 7373
    functionName: _PyAST_AsyncFor
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7382,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7386,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: 7398
      start: 7375
    functionDepth: 5
    functionLinenumber: 7375
    functionLinenumberEnd: 7398
    functionName: _PyAST_While
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7407,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7411,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: 7423
      start: 7400
    functionDepth: 5
    functionLinenumber: 7400
    functionLinenumberEnd: 7423
    functionName: _PyAST_If
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7431,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: 7443
      start: 7425
    functionDepth: 5
    functionLinenumber: 7425
    functionLinenumberEnd: 7443
    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:7451,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: 7463
      start: 7445
    functionDepth: 5
    functionLinenumber: 7445
    functionLinenumberEnd: 7463
    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:7471,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7475,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: 7486
      start: 7465
    functionDepth: 5
    functionLinenumber: 7465
    functionLinenumberEnd: 7486
    functionName: _PyAST_Match
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7493,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: 7504
      start: 7488
    functionDepth: 5
    functionLinenumber: 7488
    functionLinenumberEnd: 7504
    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:7512,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: 7525
      start: 7506
    functionDepth: 5
    functionLinenumber: 7506
    functionLinenumberEnd: 7525
    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:7534,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: 7547
      start: 7527
    functionDepth: 5
    functionLinenumber: 7527
    functionLinenumberEnd: 7547
    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:7555,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7559,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: 7570
      start: 7549
    functionDepth: 5
    functionLinenumber: 7549
    functionLinenumberEnd: 7570
    functionName: _PyAST_Assert
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - names
    - is_lazy
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_alias_seq*
    - int
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7588
      start: 7572
    functionDepth: 5
    functionLinenumber: 7572
    functionLinenumberEnd: 7588
    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 is_lazy, 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:7596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 9
    argNames:
    - module
    - names
    - level
    - is_lazy
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - asdl_alias_seq*
    - int
    - int
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7609
      start: 7590
    functionDepth: 5
    functionLinenumber: 7590
    functionLinenumberEnd: 7609
    functionName: _PyAST_ImportFrom
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty _PyAST_ImportFrom(identifier module, asdl_alias_seq * names,
      int level, int\n                  is_lazy, 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:7616,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: 7626
      start: 7611
    functionDepth: 5
    functionLinenumber: 7611
    functionLinenumberEnd: 7626
    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:7633,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: 7643
      start: 7628
    functionDepth: 5
    functionLinenumber: 7628
    functionLinenumberEnd: 7643
    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:7651,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7655,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: 7665
      start: 7645
    functionDepth: 5
    functionLinenumber: 7645
    functionLinenumberEnd: 7665
    functionName: _PyAST_Expr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7672,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: 7681
      start: 7667
    functionDepth: 5
    functionLinenumber: 7667
    functionLinenumberEnd: 7681
    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:7688,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: 7697
      start: 7683
    functionDepth: 5
    functionLinenumber: 7683
    functionLinenumberEnd: 7697
    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:7704,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: 7713
      start: 7699
    functionDepth: 5
    functionLinenumber: 7699
    functionLinenumberEnd: 7713
    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:7721,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7725,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: 7736
      start: 7715
    functionDepth: 5
    functionLinenumber: 7715
    functionLinenumberEnd: 7736
    functionName: _PyAST_BoolOp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7744,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7749,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7753,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: 7764
      start: 7738
    functionDepth: 5
    functionLinenumber: 7738
    functionLinenumberEnd: 7764
    functionName: _PyAST_NamedExpr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7772,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7777,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7782,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7786,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: 7798
      start: 7766
    functionDepth: 5
    functionLinenumber: 7766
    functionLinenumberEnd: 7798
    functionName: _PyAST_BinOp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 8
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7806,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7811,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7815,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: 7826
      start: 7800
    functionDepth: 5
    functionLinenumber: 7800
    functionLinenumberEnd: 7826
    functionName: _PyAST_UnaryOp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7834,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7839,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7843,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: 7854
      start: 7828
    functionDepth: 5
    functionLinenumber: 7828
    functionLinenumberEnd: 7854
    functionName: _PyAST_Lambda
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7862,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7867,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7872,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7876,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: 7888
      start: 7856
    functionDepth: 5
    functionLinenumber: 7856
    functionLinenumberEnd: 7888
    functionName: _PyAST_IfExp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7895,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: 7906
      start: 7890
    functionDepth: 5
    functionLinenumber: 7890
    functionLinenumberEnd: 7906
    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:7913,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: 7923
      start: 7908
    functionDepth: 5
    functionLinenumber: 7908
    functionLinenumberEnd: 7923
    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:7932,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7936,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: 7947
      start: 7925
    functionDepth: 5
    functionLinenumber: 7925
    functionLinenumberEnd: 7947
    functionName: _PyAST_ListComp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:7956,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7960,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: 7971
      start: 7949
    functionDepth: 5
    functionLinenumber: 7949
    functionLinenumberEnd: 7971
    functionName: _PyAST_SetComp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:7980,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:7984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    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: 7996
      start: 7973
    functionDepth: 5
    functionLinenumber: 7973
    functionLinenumberEnd: 7996
    functionName: _PyAST_DictComp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8005,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8009,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: 8020
      start: 7998
    functionDepth: 5
    functionLinenumber: 7998
    functionLinenumberEnd: 8020
    functionName: _PyAST_GeneratorExp
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8028,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8032,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: 8042
      start: 8022
    functionDepth: 5
    functionLinenumber: 8022
    functionLinenumberEnd: 8042
    functionName: _PyAST_Await
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8049,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: 8059
      start: 8044
    functionDepth: 5
    functionLinenumber: 8044
    functionLinenumberEnd: 8059
    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:8067,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8071,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: 8081
      start: 8061
    functionDepth: 5
    functionLinenumber: 8061
    functionLinenumberEnd: 8081
    functionName: _PyAST_YieldFrom
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8090,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8094,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: 8106
      start: 8083
    functionDepth: 5
    functionLinenumber: 8083
    functionLinenumberEnd: 8106
    functionName: _PyAST_Compare
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8115,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8119,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: 8131
      start: 8108
    functionDepth: 5
    functionLinenumber: 8108
    functionLinenumberEnd: 8131
    functionName: _PyAST_Call
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8140,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8144,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: 8156
      start: 8133
    functionDepth: 5
    functionLinenumber: 8133
    functionLinenumberEnd: 8156
    functionName: _PyAST_FormattedValue
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8165,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8170,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8174,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: 8187
      start: 8158
    functionDepth: 5
    functionLinenumber: 8158
    functionLinenumberEnd: 8187
    functionName: _PyAST_Interpolation
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8194,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: 8204
      start: 8189
    functionDepth: 5
    functionLinenumber: 8189
    functionLinenumberEnd: 8204
    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:8211,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: 8221
      start: 8206
    functionDepth: 5
    functionLinenumber: 8206
    functionLinenumberEnd: 8221
    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:8229,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8233,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: 8244
      start: 8223
    functionDepth: 5
    functionLinenumber: 8223
    functionLinenumberEnd: 8244
    functionName: _PyAST_Constant
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 14
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8253,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8258,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8263,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8267,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: 8279
      start: 8246
    functionDepth: 5
    functionLinenumber: 8246
    functionLinenumberEnd: 8279
    functionName: _PyAST_Attribute
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 7
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8293,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8298,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8302,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: 8314
      start: 8281
    functionDepth: 5
    functionLinenumber: 8281
    functionLinenumberEnd: 8314
    functionName: _PyAST_Subscript
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 6
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8322,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8327,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8331,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: 8342
      start: 8316
    functionDepth: 5
    functionLinenumber: 8316
    functionLinenumberEnd: 8342
    functionName: _PyAST_Starred
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 5
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8350,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8355,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8359,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: 8370
      start: 8344
    functionDepth: 5
    functionLinenumber: 8344
    functionLinenumberEnd: 8370
    functionName: _PyAST_Name
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8378,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8382,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: 8393
      start: 8372
    functionDepth: 5
    functionLinenumber: 8372
    functionLinenumberEnd: 8393
    functionName: _PyAST_List
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8401,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8405,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: 8416
      start: 8395
    functionDepth: 5
    functionLinenumber: 8395
    functionLinenumberEnd: 8416
    functionName: _PyAST_Tuple
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 9
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8423,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: 8435
      start: 8418
    functionDepth: 5
    functionLinenumber: 8418
    functionLinenumberEnd: 8435
    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:8443,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:8448,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8452,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: 8460
      start: 8437
    functionDepth: 5
    functionLinenumber: 8437
    functionLinenumberEnd: 8460
    functionName: _PyAST_comprehension
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8468,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: 8480
      start: 8462
    functionDepth: 5
    functionLinenumber: 8462
    functionLinenumberEnd: 8480
    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:8489,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: 8500
      start: 8482
    functionDepth: 5
    functionLinenumber: 8482
    functionLinenumberEnd: 8500
    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:8508,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8512,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: 8523
      start: 8502
    functionDepth: 5
    functionLinenumber: 8502
    functionLinenumberEnd: 8523
    functionName: _PyAST_arg
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8531,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8535,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: 8545
      start: 8525
    functionDepth: 5
    functionLinenumber: 8525
    functionLinenumberEnd: 8545
    functionName: _PyAST_keyword
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8553,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8557,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: 8567
      start: 8547
    functionDepth: 5
    functionLinenumber: 8547
    functionLinenumberEnd: 8567
    functionName: _PyAST_alias
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8574,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8578,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: 8584
      start: 8569
    functionDepth: 5
    functionLinenumber: 8569
    functionLinenumberEnd: 8584
    functionName: _PyAST_withitem
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8592,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8596,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: 8603
      start: 8586
    functionDepth: 5
    functionLinenumber: 8586
    functionLinenumberEnd: 8603
    functionName: _PyAST_match_case
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8611,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8615,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: 8625
      start: 8605
    functionDepth: 5
    functionLinenumber: 8605
    functionLinenumberEnd: 8625
    functionName: _PyAST_MatchValue
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8633,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8637,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: 8647
      start: 8627
    functionDepth: 5
    functionLinenumber: 8627
    functionLinenumberEnd: 8647
    functionName: _PyAST_MatchSingleton
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8654,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: 8664
      start: 8649
    functionDepth: 5
    functionLinenumber: 8649
    functionLinenumberEnd: 8664
    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:8672,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: 8684
      start: 8666
    functionDepth: 5
    functionLinenumber: 8666
    functionLinenumberEnd: 8684
    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:8694,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8698,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: 8711
      start: 8686
    functionDepth: 5
    functionLinenumber: 8686
    functionLinenumberEnd: 8711
    functionName: _PyAST_MatchClass
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8718,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: 8728
      start: 8713
    functionDepth: 5
    functionLinenumber: 8713
    functionLinenumberEnd: 8728
    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:8735,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: 8746
      start: 8730
    functionDepth: 5
    functionLinenumber: 8730
    functionLinenumberEnd: 8746
    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:8753,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: 8763
      start: 8748
    functionDepth: 5
    functionLinenumber: 8748
    functionLinenumberEnd: 8763
    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:8770,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - lineno
    - tag
    - arena
    argTypes:
    - int
    - string
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8781
      start: 8765
    functionDepth: 5
    functionLinenumber: 8765
    functionLinenumberEnd: 8781
    functionName: _PyAST_TypeIgnore
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8790,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8794,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: 8806
      start: 8783
    functionDepth: 5
    functionLinenumber: 8783
    functionLinenumberEnd: 8806
    functionName: _PyAST_TypeVar
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8814,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8818,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: 8829
      start: 8808
    functionDepth: 5
    functionLinenumber: 8808
    functionLinenumberEnd: 8829
    functionName: _PyAST_ParamSpec
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8838,1
    - Dst: _PyArena_Malloc
      Src: /src/cpython/Python/Python-ast.c:8842,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: 8853
      start: 8831
    functionDepth: 5
    functionLinenumber: 8831
    functionLinenumberEnd: 8853
    functionName: _PyAST_TypeVarTuple
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyArena_Malloc
    - PyErr_SetString
    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:8865,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8871,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8873,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8875,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8877,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8878,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8881,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8883,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8887,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8889,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8892,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8894,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8898,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:8900,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8902,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8904,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8908,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8910,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8913,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8915,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:8916,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8918,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8920,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:8923,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:8926,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:8927,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:8928,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 93
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8930
      start: 8856
    functionDepth: 5
    functionLinenumber: 8856
    functionLinenumberEnd: 8930
    functionName: ast2obj_mod
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_list
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_expr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_mod(struct ast_state *state, void* _o)'
  - BBCount: 227
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:8941,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8947,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:8949,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8951,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8953,1
    - Dst: ast2obj_arguments
      Src: /src/cpython/Python/Python-ast.c:8954,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8956,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8958,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8959,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8962,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8964,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8965,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8968,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8970,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:8971,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8973,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8975,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:8976,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8978,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8980,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:8981,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8986,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:8990,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:8992,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:8994,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:8996,1
    - Dst: ast2obj_arguments
      Src: /src/cpython/Python/Python-ast.c:8997,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_list
      Src: /src/cpython/Python/Python-ast.c:9002,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9007,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9008,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9012,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9014,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9015,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9017,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9019,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9020,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9022,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9024,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9025,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9029,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9031,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9035,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:9037,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9039,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9041,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9042,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9045,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9047,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9048,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9053,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9054,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9057,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9059,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9060,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9063,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9065,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9066,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9071,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9075,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9077,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9079,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9081,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9085,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9087,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9090,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9092,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9096,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9098,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9101,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9103,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9104,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9106,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9108,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9109,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9113,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9117,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9119,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: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9124,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9127,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9129,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9130,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: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9138,1
    - Dst: ast2obj_expr
      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: ast2obj_operator
      Src: /src/cpython/Python/Python-ast.c:9145,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9147,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9149,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: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9158,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9160,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9162,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9164,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9165,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9167,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9169,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9170,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9172,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9174,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9175,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9179,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9183,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9185,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9187,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9189,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9190,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9192,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9194,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9195,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9197,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9199,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9200,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9202,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9204,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9205,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9207,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9209,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9213,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9215,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9217,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9219,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9220,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9222,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9224,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9225,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:9234,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9236,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9237,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9241,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9245,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9247,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9251,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9252,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9256,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9257,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: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9265,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9267,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9269,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9271,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9272,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9276,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9277,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9279,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9281,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9285,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9287,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: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9293,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9295,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9297,1
    - Dst: ast2obj_string
      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: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9306,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9308,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9311,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9313,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9314,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9317,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9319,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9320,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9322,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9324,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9328,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9330,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9334,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9335,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9338,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9340,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9344,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9346,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_expr
      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_list
      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: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9372,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9374,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9376,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9377,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9380,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9382,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9386,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9388,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9390,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9392,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9393,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9396,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9398,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9399,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9402,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9404,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9405,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9408,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9410,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9414,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9416,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9418,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9420,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9421,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9423,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9425,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9429,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9431,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9434,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9436,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9437,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_identifier
      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_list
      Src: /src/cpython/Python/Python-ast.c:9452,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9457,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9458,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9462,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9463,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_list
      Src: /src/cpython/Python/Python-ast.c:9473,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9476,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9478,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9482,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9484,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9487,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9489,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9493,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9495,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: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9508,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9513,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9517,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9519,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9521,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9522,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9526,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9527,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9529,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9531,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9532,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9534,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9536,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:9537,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:9540,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:9541,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:9542,1
    CyclomaticComplexity: 423
    EdgeCount: 423
    ICount: 885
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9544
      start: 8932
    functionDepth: 5
    functionLinenumber: 8932
    functionLinenumberEnd: 9544
    functionName: ast2obj_stmt
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast2obj_operator
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_arguments
    - ast2obj_list
    - ast2obj_int
    - ast2obj_identifier
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_string
    - ast2obj_expr
    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:9555,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9561,1
    - Dst: ast2obj_boolop
      Src: /src/cpython/Python/Python-ast.c:9563,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9565,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9567,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9568,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9573,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9577,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9579,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9581,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9583,1
    - Dst: ast2obj_expr
      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: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9592,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9594,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9596,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9598,1
    - Dst: ast2obj_operator
      Src: /src/cpython/Python/Python-ast.c:9599,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9601,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9603,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9604,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9608,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9612,1
    - Dst: ast2obj_unaryop
      Src: /src/cpython/Python/Python-ast.c:9614,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9618,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9619,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9621,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9623,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9627,1
    - Dst: ast2obj_arguments
      Src: /src/cpython/Python/Python-ast.c:9629,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9633,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9634,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9636,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9638,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9642,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9644,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9646,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9648,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9649,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9651,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9653,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9654,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9656,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9658,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9662,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9664,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9668,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9669,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9671,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9673,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9677,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9679,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9681,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9683,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9687,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9689,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9693,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9694,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9697,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9699,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9703,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9705,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9707,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9709,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9710,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9715,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9719,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9721,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9723,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9725,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_list
      Src: /src/cpython/Python/Python-ast.c:9747,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9750,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9752,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9756,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9758,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9760,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9762,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9766,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9768,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9770,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9772,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9776,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9778,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9780,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9782,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9786,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9788,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9790,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9792,1
    - Dst: asdl_seq_LEN
      Src: /src/cpython/Python/Python-ast.c:9794,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:9795,1
    - Dst: PyList_SET_ITEM
      Src: /src/cpython/Python/Python-ast.c:9798,1
    - Dst: ast2obj_cmpop
      Src: /src/cpython/Python/Python-ast.c:9798,1
    - Dst: asdl_seq_GET
      Src: /src/cpython/Python/Python-ast.c:9798,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: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9804,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9809,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9813,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9815,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9819,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9820,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_int
      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_expr
      Src: /src/cpython/Python/Python-ast.c:9846,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9848,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9850,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9854,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9856,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9858,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9860,1
    - Dst: ast2obj_constant
      Src: /src/cpython/Python/Python-ast.c:9861,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9863,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9865,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:9866,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9868,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9870,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9871,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9873,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9875,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9879,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9881,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: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9890,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9892,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9897,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9901,1
    - Dst: ast2obj_constant
      Src: /src/cpython/Python/Python-ast.c:9903,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: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:9908,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9910,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9912,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9916,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9918,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9920,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9922,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:9923,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9925,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9927,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9928,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9930,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9932,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9936,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9938,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9940,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9942,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9943,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9945,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9947,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9948,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9950,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9952,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9956,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:9958,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9962,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9963,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9965,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9967,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9971,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:9973,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9975,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9977,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9978,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9980,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9982,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:9986,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:9988,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9990,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9992,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:9993,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:9995,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:9997,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10001,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10003,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10007,1
    - Dst: ast2obj_expr_context
      Src: /src/cpython/Python/Python-ast.c:10008,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10010,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10012,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10016,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10018,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10020,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10022,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10023,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10025,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10027,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10028,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10030,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10032,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10035,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10037,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10039,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10040,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10042,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10044,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10045,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10047,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10049,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10050,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10052,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10054,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10055,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10058,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10059,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10060,1
    CyclomaticComplexity: 361
    EdgeCount: 361
    ICount: 762
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10062
      start: 9546
    functionDepth: 5
    functionLinenumber: 9546
    functionLinenumberEnd: 10062
    functionName: ast2obj_expr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - ast2obj_unaryop
    - ast2obj_constant
    - Py_EnterRecursiveCall
    - ast2obj_expr
    - ast2obj_operator
    - asdl_seq_GET
    - ast2obj_expr_context
    - ast2obj_int
    - PyList_New
    - Py_XDECREF
    - ast2obj_identifier
    - PyType_GenericNew
    - ast2obj_cmpop
    - Py_DECREF
    - ast2obj_string
    - Py_LeaveRecursiveCall
    - PyList_SET_ITEM
    - PyObject_SetAttr
    - ast2obj_list
    - ast2obj_arguments
    - ast2obj_boolop
    - asdl_seq_LEN
    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:10068,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10070,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10072,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10075
      start: 10064
    functionDepth: 1
    functionLinenumber: 10064
    functionLinenumberEnd: 10075
    functionName: ast2obj_expr_context
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_UNREACHABLE
    - Py_NewRef
    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:10080,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10082,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - boolop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10085
      start: 10076
    functionDepth: 1
    functionLinenumber: 10076
    functionLinenumberEnd: 10085
    functionName: ast2obj_boolop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_UNREACHABLE
    - Py_NewRef
    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:10090,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10092,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10094,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10096,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10098,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10100,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10102,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10104,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10106,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10108,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10110,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10112,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10114,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - operator_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10117
      start: 10086
    functionDepth: 1
    functionLinenumber: 10086
    functionLinenumberEnd: 10117
    functionName: ast2obj_operator
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - Py_UNREACHABLE
    - Py_NewRef
    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:10122,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10124,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10126,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10128,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - unaryop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10131
      start: 10118
    functionDepth: 1
    functionLinenumber: 10118
    functionLinenumberEnd: 10131
    functionName: ast2obj_unaryop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_UNREACHABLE
    - Py_NewRef
    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:10136,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10138,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10140,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10142,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10144,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10146,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10148,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10150,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10152,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10154,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/Python-ast.c:10156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - state
    - o
    argTypes:
    - struct ast_state*
    - cmpop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10157
      start: 10132
    functionDepth: 1
    functionLinenumber: 10132
    functionLinenumberEnd: 10157
    functionName: ast2obj_cmpop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_UNREACHABLE
    - Py_NewRef
    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:10167,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10171,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10173,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10177,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10178,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10182,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10183,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10185,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10187,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10188,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10190,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10192,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10193,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10196,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10197,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10198,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10200
      start: 10158
    functionDepth: 6
    functionLinenumber: 10158
    functionLinenumberEnd: 10200
    functionName: ast2obj_comprehension
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_list
    - ast2obj_int
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_expr
    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:10211,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10217,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10219,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10221,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10223,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10224,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10226,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10228,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10229,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10232,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10234,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10237,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10239,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10241,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10242,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10246,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10247,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10249,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10251,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10252,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10254,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10256,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10257,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10260,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10261,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10262,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 80
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10264
      start: 10202
    functionDepth: 6
    functionLinenumber: 10202
    functionLinenumberEnd: 10264
    functionName: ast2obj_excepthandler
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_list
    - ast2obj_int
    - ast2obj_identifier
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_expr
    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:10275,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10279,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10281,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10283,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10285,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10286,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10288,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10290,1
    - Dst: ast2obj_arg
      Src: /src/cpython/Python/Python-ast.c:10291,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10293,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10295,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10296,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10298,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10300,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10301,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10303,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10305,1
    - Dst: ast2obj_arg
      Src: /src/cpython/Python/Python-ast.c:10306,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10308,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10310,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10311,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10313,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10315,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10316,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10319,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10320,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10321,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 75
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10323
      start: 10266
    functionDepth: 5
    functionLinenumber: 10266
    functionLinenumberEnd: 10323
    functionName: ast2obj_arguments
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_list
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_arg
    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:10334,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10338,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10340,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10342,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10344,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10345,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10347,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10349,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:10350,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10352,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10354,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10355,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10357,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10359,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10360,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10362,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10364,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10365,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10367,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10369,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10370,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10372,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10374,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10375,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10378,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10379,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10380,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 75
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10382
      start: 10325
    functionDepth: 6
    functionLinenumber: 10325
    functionLinenumberEnd: 10382
    functionName: ast2obj_arg
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_int
    - ast2obj_identifier
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_string
    - ast2obj_expr
    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:10393,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10397,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10399,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10401,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10403,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10404,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10406,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10408,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10409,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10411,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10413,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10414,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10416,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10418,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10419,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10421,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10423,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10424,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10426,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10428,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10429,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10432,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10433,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10434,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10436
      start: 10384
    functionDepth: 6
    functionLinenumber: 10384
    functionLinenumberEnd: 10436
    functionName: ast2obj_keyword
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_int
    - ast2obj_identifier
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_expr
    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:10447,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10451,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10453,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10455,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10457,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10458,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10462,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10463,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10467,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10468,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10470,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10472,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10473,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10477,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10478,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10480,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10482,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10483,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10486,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10487,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10488,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10490
      start: 10438
    functionDepth: 2
    functionLinenumber: 10438
    functionLinenumberEnd: 10490
    functionName: ast2obj_alias
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - ast2obj_int
    - ast2obj_identifier
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - 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:10501,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10505,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10507,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10509,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10511,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10512,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10514,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10516,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10517,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10520,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10521,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10522,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10524
      start: 10492
    functionDepth: 6
    functionLinenumber: 10492
    functionLinenumberEnd: 10524
    functionName: ast2obj_withitem
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_expr
    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:10535,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10539,1
    - Dst: ast2obj_pattern
      Src: /src/cpython/Python/Python-ast.c:10541,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10543,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10545,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10546,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10548,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10550,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10551,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10553,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10555,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10556,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10559,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10560,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10561,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10563
      start: 10526
    functionDepth: 6
    functionLinenumber: 10526
    functionLinenumberEnd: 10563
    functionName: ast2obj_match_case
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_LeaveRecursiveCall
    - ast2obj_pattern
    - PyObject_SetAttr
    - ast2obj_list
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_expr
    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:10574,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10580,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10582,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10586,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10590,1
    - Dst: ast2obj_constant
      Src: /src/cpython/Python/Python-ast.c:10592,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10594,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10596,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10600,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10602,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_list
      Src: /src/cpython/Python/Python-ast.c:10613,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10616,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10618,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10619,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10622,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10624,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10625,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10627,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10629,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10633,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10635,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_list
      Src: /src/cpython/Python/Python-ast.c:10646,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10649,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10651,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10652,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10655,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10657,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10661,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10663,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10667,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10671,1
    - Dst: ast2obj_pattern
      Src: /src/cpython/Python/Python-ast.c:10673,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10675,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10677,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10678,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10682,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10686,1
    - Dst: ast2obj_list
      Src: /src/cpython/Python/Python-ast.c:10688,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10691,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10693,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10696,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10700,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10701,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10703,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10705,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10706,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10708,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10710,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10711,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10713,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10715,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10716,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10719,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10720,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10721,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 217
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10723
      start: 10565
    functionDepth: 6
    functionLinenumber: 10565
    functionLinenumberEnd: 10723
    functionName: ast2obj_pattern
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_list
    - ast2obj_pattern
    - ast2obj_constant
    - ast2obj_int
    - ast2obj_identifier
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_expr
    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:10734,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10740,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10742,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10746,1
    - Dst: ast2obj_string
      Src: /src/cpython/Python/Python-ast.c:10747,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10749,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10751,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10754,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10757,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10758,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10759,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10761
      start: 10725
    functionDepth: 2
    functionLinenumber: 10725
    functionLinenumberEnd: 10761
    functionName: ast2obj_type_ignore
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - ast2obj_int
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_string
    - 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:10772,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10778,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10780,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10782,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10784,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10785,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10787,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10789,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10790,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10794,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10798,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10800,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10802,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10804,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10805,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10807,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10809,1
    - Dst: PyType_GenericNew
      Src: /src/cpython/Python/Python-ast.c:10813,1
    - Dst: ast2obj_identifier
      Src: /src/cpython/Python/Python-ast.c:10815,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10817,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10819,1
    - Dst: ast2obj_expr
      Src: /src/cpython/Python/Python-ast.c:10820,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10824,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10827,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10829,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10831,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10832,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10834,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10836,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10837,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10841,1
    - Dst: ast2obj_int
      Src: /src/cpython/Python/Python-ast.c:10842,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/Python-ast.c:10844,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10846,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10847,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10850,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10851,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:10852,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 126
    argCount: 2
    argNames:
    - state
    - _o
    argTypes:
    - struct ast_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10854
      start: 10763
    functionDepth: 6
    functionLinenumber: 10763
    functionLinenumberEnd: 10854
    functionName: ast2obj_type_param
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_LeaveRecursiveCall
    - PyObject_SetAttr
    - ast2obj_int
    - ast2obj_identifier
    - PyType_GenericNew
    - Py_EnterRecursiveCall
    - Py_XDECREF
    - Py_DECREF
    - ast2obj_expr
    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:10870,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:10878,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:10882,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:10891,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:10892,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:10892,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:10892,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10895,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:10896,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10900,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:10900,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10901,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:10904,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10905,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10906,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10908,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:10909,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:10912,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:10914,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:10916,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:10920,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:10929,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:10930,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:10930,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:10930,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10933,1
    - Dst: _Py_asdl_type_ignore_seq_new
      Src: /src/cpython/Python/Python-ast.c:10934,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10938,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:10938,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10939,1
    - Dst: obj2ast_type_ignore
      Src: /src/cpython/Python/Python-ast.c:10942,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10944,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10946,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:10947,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:10950,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:10952,1
    - Dst: _PyAST_Module
      Src: /src/cpython/Python/Python-ast.c:10954,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:10959,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:10966,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:10970,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:10979,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:10980,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:10980,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:10980,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10983,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:10984,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:10988,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:10988,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10989,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:10992,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:10993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:10994,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:10996,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:10997,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11000,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11002,1
    - Dst: _PyAST_Interactive
      Src: /src/cpython/Python/Python-ast.c:11004,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11009,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11016,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11020,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11025,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11028,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11029,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11031,1
    - Dst: _PyAST_Expression
      Src: /src/cpython/Python/Python-ast.c:11033,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11038,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11046,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11050,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11059,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11060,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11060,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11060,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11063,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11064,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11068,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11068,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11069,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11072,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11073,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11074,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11076,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11077,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11080,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11082,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11084,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11088,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11093,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11096,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11097,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11099,1
    - Dst: _PyAST_FunctionType
      Src: /src/cpython/Python/Python-ast.c:11101,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11106,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:11108,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: 11110
      start: 10857
    functionDepth: 7
    functionLinenumber: 10857
    functionLinenumberEnd: 11110
    functionName: obj2ast_mod
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - obj2ast_type_ignore
    - PyList_GET_ITEM
    - Py_TYPE
    - _Py_asdl_stmt_seq_new
    - _PyAST_FunctionType
    - _Py_EnterRecursiveCall
    - PyObject_GetOptionalAttr
    - PyList_New
    - Py_XDECREF
    - _PyType_Name
    - _PyAST_Interactive
    - PyErr_SetString
    - PyList_Check
    - _Py_asdl_expr_seq_new
    - Py_DECREF
    - obj2ast_expr
    - asdl_seq_SET
    - _PyAST_Module
    - Py_NewRef
    - _PyAST_Expression
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    - PyErr_Format
    - obj2ast_stmt
    - PyList_GET_SIZE
    - _Py_asdl_type_ignore_seq_new
    - PyObject_IsInstance
    linkageType: ''
    returnType: int
    signature: int obj2ast_mod(struct ast_state *state, PyObject* obj, mod_ty* out,
      PyArena* arena)
  - BBCount: 578
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11129,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11133,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11138,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:11141,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11142,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11144,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11146,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11150,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11155,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:11158,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11159,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11161,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11163,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11167,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11172,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:11175,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11176,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11178,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11180,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11184,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11189,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:11192,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11193,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11195,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11198,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11211,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11215,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11220,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:11223,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11224,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11226,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11228,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11232,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11237,1
    - Dst: obj2ast_arguments
      Src: /src/cpython/Python/Python-ast.c:11240,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11241,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11243,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11245,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11249,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11258,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11259,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11259,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11259,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11262,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:11263,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11267,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11267,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11268,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:11271,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11273,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11275,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11276,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11279,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11281,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11283,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11287,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11296,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11297,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11297,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11297,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11300,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11301,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11305,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11305,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11306,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11309,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11310,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11311,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11313,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11314,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11317,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11319,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11321,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11325,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11330,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11333,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11334,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11336,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11338,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11342,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11347,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:11350,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11351,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11353,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11355,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11359,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11368,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11369,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11369,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11369,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11372,1
    - Dst: _Py_asdl_type_param_seq_new
      Src: /src/cpython/Python/Python-ast.c:11373,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11377,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11377,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11378,1
    - Dst: obj2ast_type_param
      Src: /src/cpython/Python/Python-ast.c:11381,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11382,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11383,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11385,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11386,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11389,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11391,1
    - Dst: _PyAST_FunctionDef
      Src: /src/cpython/Python/Python-ast.c:11393,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11401,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11414,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11418,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11423,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:11426,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11427,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11429,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11431,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11435,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11440,1
    - Dst: obj2ast_arguments
      Src: /src/cpython/Python/Python-ast.c:11443,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11444,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11446,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11448,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11452,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11461,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11462,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11462,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11462,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11465,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:11466,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11470,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11470,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11471,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:11474,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11475,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11476,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11478,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11479,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11482,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11484,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11486,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11490,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11499,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11500,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11500,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11500,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11503,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11504,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11508,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11508,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11509,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11512,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11513,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11514,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11516,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11517,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11520,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11522,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11524,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11528,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11533,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11536,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11537,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11539,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11541,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11545,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11550,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:11553,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11554,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11556,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11558,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11562,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11571,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11572,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11572,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11572,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11575,1
    - Dst: _Py_asdl_type_param_seq_new
      Src: /src/cpython/Python/Python-ast.c:11576,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11580,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11580,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11581,1
    - Dst: obj2ast_type_param
      Src: /src/cpython/Python/Python-ast.c:11584,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11586,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11588,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11589,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11592,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11594,1
    - Dst: _PyAST_AsyncFunctionDef
      Src: /src/cpython/Python/Python-ast.c:11596,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11604,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11616,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11620,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11625,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:11628,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11629,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11631,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11633,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11637,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11646,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11647,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11647,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11647,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11650,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11651,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11655,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11655,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11656,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11659,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11660,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11661,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11663,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11664,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11667,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11669,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11671,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11675,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11684,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11685,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11685,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11685,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11688,1
    - Dst: _Py_asdl_keyword_seq_new
      Src: /src/cpython/Python/Python-ast.c:11689,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11693,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11693,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11694,1
    - Dst: obj2ast_keyword
      Src: /src/cpython/Python/Python-ast.c:11697,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11698,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11699,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11701,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11702,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11705,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11707,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11709,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11713,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11722,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11723,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11723,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11723,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11726,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:11727,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11731,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11731,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11732,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:11735,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11736,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11737,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11739,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11740,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11743,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11745,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11747,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11751,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11760,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11761,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11761,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11761,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11764,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11765,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11769,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11769,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11770,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11773,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11774,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11775,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11777,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11778,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11781,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11783,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11785,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11789,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11798,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11799,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11799,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11799,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11802,1
    - Dst: _Py_asdl_type_param_seq_new
      Src: /src/cpython/Python/Python-ast.c:11803,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11807,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11807,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11808,1
    - Dst: obj2ast_type_param
      Src: /src/cpython/Python/Python-ast.c:11811,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11812,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11813,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11815,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11816,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11819,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11821,1
    - Dst: _PyAST_ClassDef
      Src: /src/cpython/Python/Python-ast.c:11823,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11830,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11837,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11841,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11846,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11849,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11850,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11852,1
    - Dst: _PyAST_Return
      Src: /src/cpython/Python/Python-ast.c:11854,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11860,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11867,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11871,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11880,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11881,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11881,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11881,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11884,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11885,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11889,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11889,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11890,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11893,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11894,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11895,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11897,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11898,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11901,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11903,1
    - Dst: _PyAST_Delete
      Src: /src/cpython/Python/Python-ast.c:11905,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11911,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11920,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:11924,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:11933,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:11934,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:11934,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:11934,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11937,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:11938,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:11942,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:11942,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11943,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11946,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11947,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:11948,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:11950,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11951,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:11954,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11956,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11958,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:11962,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11967,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:11970,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11971,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11973,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:11975,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11979,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11984,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:11987,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:11988,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:11990,1
    - Dst: _PyAST_Assign
      Src: /src/cpython/Python/Python-ast.c:11992,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:11998,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12007,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12011,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12016,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12019,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12020,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12022,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12024,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12028,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12037,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12038,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12038,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12038,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12041,1
    - Dst: _Py_asdl_type_param_seq_new
      Src: /src/cpython/Python/Python-ast.c:12042,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12046,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12046,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12047,1
    - Dst: obj2ast_type_param
      Src: /src/cpython/Python/Python-ast.c:12050,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12052,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12054,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12055,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12058,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12060,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12062,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12066,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12071,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12074,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12075,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12077,1
    - Dst: _PyAST_TypeAlias
      Src: /src/cpython/Python/Python-ast.c:12079,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12085,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12094,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12098,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12103,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12106,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12107,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12109,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12111,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12115,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12120,1
    - Dst: obj2ast_operator
      Src: /src/cpython/Python/Python-ast.c:12123,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12124,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12126,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12128,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12132,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12137,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12140,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12141,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12143,1
    - Dst: _PyAST_AugAssign
      Src: /src/cpython/Python/Python-ast.c:12145,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12151,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12161,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12165,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12170,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12173,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12174,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12176,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12178,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12182,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12187,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12190,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12191,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12193,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12195,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12199,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12204,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12207,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12208,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12210,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12212,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12216,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12221,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:12224,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12225,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12227,1
    - Dst: _PyAST_AnnAssign
      Src: /src/cpython/Python/Python-ast.c:12229,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12235,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12246,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12250,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12255,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12258,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12259,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12261,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12263,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12267,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12272,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12275,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12276,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12278,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12280,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12284,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12293,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12294,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12294,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12294,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12297,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12298,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12302,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12302,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12303,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12306,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12308,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12310,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12311,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12314,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12316,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12318,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12322,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12331,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12332,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12332,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12332,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12335,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12336,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12340,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12340,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12341,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12344,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12345,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12346,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12348,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12349,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12352,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12354,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12356,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12360,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12365,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12368,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12369,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12371,1
    - Dst: _PyAST_For
      Src: /src/cpython/Python/Python-ast.c:12373,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12379,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12390,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12394,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12399,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12402,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12403,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12405,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12407,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12411,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12416,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12419,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12420,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12422,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12424,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12428,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12437,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12438,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12438,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12438,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12441,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12442,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12446,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12446,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12447,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12450,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12452,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12454,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12455,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12458,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12460,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12462,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12466,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12475,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12476,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12476,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12476,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12479,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12480,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12484,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12484,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12485,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12488,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12489,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12490,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12492,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12493,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12496,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12498,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12500,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12504,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12509,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12512,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12513,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12515,1
    - Dst: _PyAST_AsyncFor
      Src: /src/cpython/Python/Python-ast.c:12517,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12524,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12533,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12537,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12542,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12545,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12546,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12548,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12550,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12554,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12563,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12564,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12564,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12564,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12567,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12568,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12572,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12572,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12573,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12576,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12577,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12578,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12580,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12581,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12584,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12586,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12588,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12592,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12601,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12602,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12602,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12605,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12606,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12610,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12610,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12611,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12614,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12616,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12618,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12619,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12622,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12624,1
    - Dst: _PyAST_While
      Src: /src/cpython/Python/Python-ast.c:12626,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12632,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12641,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12645,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12650,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12653,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12654,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12656,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12658,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12662,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12671,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12672,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12672,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12672,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12675,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12676,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12680,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12680,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12681,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12684,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12686,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12688,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12689,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12692,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12694,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12696,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12700,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12709,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12710,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12710,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12710,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12713,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12714,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12718,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12718,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12719,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12722,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12723,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12724,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12726,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12727,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12730,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12732,1
    - Dst: _PyAST_If
      Src: /src/cpython/Python/Python-ast.c:12734,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12740,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12749,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12753,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12762,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12763,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12763,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12763,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12766,1
    - Dst: _Py_asdl_withitem_seq_new
      Src: /src/cpython/Python/Python-ast.c:12767,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12771,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12771,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12772,1
    - Dst: obj2ast_withitem
      Src: /src/cpython/Python/Python-ast.c:12775,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12776,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12777,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12779,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12780,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12783,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12785,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12787,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12791,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12800,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12801,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12801,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12801,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12804,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12805,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12809,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12809,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12810,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12813,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12815,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12818,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12821,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12823,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12825,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12829,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12834,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12837,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12838,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12840,1
    - Dst: _PyAST_With
      Src: /src/cpython/Python/Python-ast.c:12842,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12848,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12857,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12861,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12870,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12871,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12871,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12871,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12874,1
    - Dst: _Py_asdl_withitem_seq_new
      Src: /src/cpython/Python/Python-ast.c:12875,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12879,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12879,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12880,1
    - Dst: obj2ast_withitem
      Src: /src/cpython/Python/Python-ast.c:12883,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12884,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12885,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12887,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12888,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12891,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12893,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12895,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12899,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12908,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12909,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12909,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12909,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12912,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:12913,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:12917,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:12917,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12918,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:12921,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:12923,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12925,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12926,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:12929,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12931,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12933,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12937,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12942,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:12945,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12946,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12948,1
    - Dst: _PyAST_AsyncWith
      Src: /src/cpython/Python/Python-ast.c:12950,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:12956,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12964,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:12968,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12973,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:12976,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:12977,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:12979,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:12981,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:12985,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:12994,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:12995,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:12995,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:12995,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:12998,1
    - Dst: _Py_asdl_match_case_seq_new
      Src: /src/cpython/Python/Python-ast.c:12999,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13003,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13003,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13004,1
    - Dst: obj2ast_match_case
      Src: /src/cpython/Python/Python-ast.c:13007,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13009,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13011,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13012,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13015,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13017,1
    - Dst: _PyAST_Match
      Src: /src/cpython/Python/Python-ast.c:13019,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13025,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13033,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13037,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13042,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13045,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13046,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13048,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13050,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13054,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13059,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13062,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13063,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13065,1
    - Dst: _PyAST_Raise
      Src: /src/cpython/Python/Python-ast.c:13067,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13073,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13083,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13087,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13096,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13097,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13097,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13097,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13100,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13101,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13105,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13105,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13106,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13109,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13111,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13113,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13114,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13117,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13119,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13121,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13125,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13134,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13135,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13135,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13135,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13138,1
    - Dst: _Py_asdl_excepthandler_seq_new
      Src: /src/cpython/Python/Python-ast.c:13139,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13143,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13143,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13144,1
    - Dst: obj2ast_excepthandler
      Src: /src/cpython/Python/Python-ast.c:13147,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13148,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13149,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13151,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13152,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13155,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13157,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13159,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13163,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13172,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13173,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13173,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13173,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13176,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13177,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13181,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13181,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13182,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13185,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13186,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13187,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13189,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13190,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13193,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13195,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13197,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13201,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13210,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13211,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13211,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13211,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13214,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13215,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13219,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13219,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13220,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13223,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13224,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13225,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13227,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13228,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13231,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13233,1
    - Dst: _PyAST_Try
      Src: /src/cpython/Python/Python-ast.c:13235,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13241,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13251,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13255,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13264,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13265,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13265,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13265,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13268,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13269,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13273,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13273,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13274,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13277,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13278,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13279,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13281,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13282,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13285,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13287,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13289,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13293,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13302,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13303,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13303,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13303,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13306,1
    - Dst: _Py_asdl_excepthandler_seq_new
      Src: /src/cpython/Python/Python-ast.c:13307,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13311,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13311,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13312,1
    - Dst: obj2ast_excepthandler
      Src: /src/cpython/Python/Python-ast.c:13315,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13317,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13319,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13320,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13323,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13325,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13327,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13331,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13340,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13341,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13341,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13341,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13344,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13345,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13349,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13349,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13350,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13353,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13355,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13357,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13358,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13361,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13363,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13365,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13369,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13378,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13379,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13379,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13379,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13382,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:13383,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13387,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13387,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13388,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:13391,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13393,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13395,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13396,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13399,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13401,1
    - Dst: _PyAST_TryStar
      Src: /src/cpython/Python/Python-ast.c:13403,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13409,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13417,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13421,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13426,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13429,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13430,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13432,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13434,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13438,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13443,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13446,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13447,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13449,1
    - Dst: _PyAST_Assert
      Src: /src/cpython/Python/Python-ast.c:13451,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13457,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13465,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13469,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13478,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13479,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13479,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13479,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13482,1
    - Dst: _Py_asdl_alias_seq_new
      Src: /src/cpython/Python/Python-ast.c:13483,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13487,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13487,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13488,1
    - Dst: obj2ast_alias
      Src: /src/cpython/Python/Python-ast.c:13491,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13492,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13493,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13495,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13496,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13499,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13501,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13503,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13507,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13512,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13515,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13516,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13518,1
    - Dst: _PyAST_Import
      Src: /src/cpython/Python/Python-ast.c:13520,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13526,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13536,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13540,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13545,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:13548,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13549,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13551,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13553,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13557,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13566,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13567,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13567,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13567,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13570,1
    - Dst: _Py_asdl_alias_seq_new
      Src: /src/cpython/Python/Python-ast.c:13571,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13575,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13575,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13576,1
    - Dst: obj2ast_alias
      Src: /src/cpython/Python/Python-ast.c:13579,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13581,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13583,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13584,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13587,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13589,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13591,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13595,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13600,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13603,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13604,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13606,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13608,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13612,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13617,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13620,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13621,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13623,1
    - Dst: _PyAST_ImportFrom
      Src: /src/cpython/Python/Python-ast.c:13625,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13631,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13638,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13642,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13651,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13652,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13652,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13652,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13655,1
    - Dst: _Py_asdl_identifier_seq_new
      Src: /src/cpython/Python/Python-ast.c:13656,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13660,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13660,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13661,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:13664,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13665,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13666,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13668,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13669,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13672,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13674,1
    - Dst: _PyAST_Global
      Src: /src/cpython/Python/Python-ast.c:13676,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13682,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13689,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13693,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13702,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13703,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13703,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13703,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13706,1
    - Dst: _Py_asdl_identifier_seq_new
      Src: /src/cpython/Python/Python-ast.c:13707,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13711,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13711,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13712,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:13715,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13716,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13717,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13719,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13720,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13723,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13725,1
    - Dst: _PyAST_Nonlocal
      Src: /src/cpython/Python/Python-ast.c:13727,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13733,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13740,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13744,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13749,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13752,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13753,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13755,1
    - Dst: _PyAST_Expr
      Src: /src/cpython/Python/Python-ast.c:13757,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13763,1
    - Dst: _PyAST_Pass
      Src: /src/cpython/Python/Python-ast.c:13769,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13775,1
    - Dst: _PyAST_Break
      Src: /src/cpython/Python/Python-ast.c:13781,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13787,1
    - Dst: _PyAST_Continue
      Src: /src/cpython/Python/Python-ast.c:13793,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13799,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:13801,1
    CyclomaticComplexity: 949
    EdgeCount: 949
    ICount: 2677
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - stmt_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13803
      start: 11112
    functionDepth: 7
    functionLinenumber: 11112
    functionLinenumberEnd: 13803
    functionName: obj2ast_stmt
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyAST_Break
    - _Py_asdl_withitem_seq_new
    - _PyAST_Try
    - PyList_GET_ITEM
    - _PyAST_Expr
    - _PyAST_Pass
    - _PyAST_While
    - _PyAST_Continue
    - Py_TYPE
    - _PyAST_ImportFrom
    - obj2ast_operator
    - _Py_asdl_stmt_seq_new
    - _PyAST_Match
    - obj2ast_string
    - obj2ast_int
    - _Py_EnterRecursiveCall
    - _PyAST_TypeAlias
    - _Py_asdl_type_param_seq_new
    - _PyAST_Delete
    - _PyAST_If
    - _Py_asdl_keyword_seq_new
    - _PyAST_Global
    - _PyAST_FunctionDef
    - PyObject_GetOptionalAttr
    - obj2ast_identifier
    - obj2ast_alias
    - PyList_New
    - Py_XDECREF
    - obj2ast_type_param
    - _PyType_Name
    - _PyAST_AnnAssign
    - _Py_asdl_identifier_seq_new
    - _PyAST_TryStar
    - _PyAST_AsyncFunctionDef
    - _PyAST_Import
    - obj2ast_withitem
    - _Py_asdl_alias_seq_new
    - PyErr_SetString
    - _PyAST_AsyncWith
    - PyList_Check
    - _Py_asdl_expr_seq_new
    - _PyAST_With
    - Py_DECREF
    - obj2ast_expr
    - asdl_seq_SET
    - _PyAST_For
    - _PyAST_AsyncFor
    - Py_NewRef
    - _Py_asdl_match_case_seq_new
    - _PyAST_ClassDef
    - obj2ast_match_case
    - _PyAST_Assign
    - obj2ast_keyword
    - _PyAST_Raise
    - obj2ast_arguments
    - obj2ast_excepthandler
    - _PyAST_Nonlocal
    - _Py_LeaveRecursiveCall
    - _PyAST_Assert
    - Py_CLEAR
    - PyErr_Format
    - _PyAST_AugAssign
    - _Py_asdl_excepthandler_seq_new
    - obj2ast_stmt
    - PyList_GET_SIZE
    - _PyAST_Return
    - PyObject_IsInstance
    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:13822,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13826,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13831,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13834,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13835,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13837,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13839,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13843,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13848,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13851,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13852,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13854,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13856,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13860,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13865,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13868,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13869,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13871,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13873,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13877,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13882,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:13885,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13886,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13888,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13891,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13899,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13903,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13908,1
    - Dst: obj2ast_boolop
      Src: /src/cpython/Python/Python-ast.c:13911,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13912,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13914,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13916,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:13920,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:13929,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:13930,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:13930,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:13930,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13933,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:13934,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:13938,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:13938,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13939,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13942,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13943,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:13944,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:13946,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13947,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:13950,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13952,1
    - Dst: _PyAST_BoolOp
      Src: /src/cpython/Python/Python-ast.c:13954,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:13960,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13968,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13972,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13977,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13980,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13981,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:13983,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:13985,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:13989,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13994,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:13997,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:13998,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14000,1
    - Dst: _PyAST_NamedExpr
      Src: /src/cpython/Python/Python-ast.c:14002,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14008,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14017,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14021,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14026,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14029,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14030,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14032,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14034,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14038,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14043,1
    - Dst: obj2ast_operator
      Src: /src/cpython/Python/Python-ast.c:14046,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14047,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14049,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14051,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14055,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14060,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14063,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14064,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14066,1
    - Dst: _PyAST_BinOp
      Src: /src/cpython/Python/Python-ast.c:14068,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14074,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14082,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14086,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14091,1
    - Dst: obj2ast_unaryop
      Src: /src/cpython/Python/Python-ast.c:14094,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14095,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14097,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14099,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14103,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14108,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14111,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14112,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14114,1
    - Dst: _PyAST_UnaryOp
      Src: /src/cpython/Python/Python-ast.c:14116,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14122,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14130,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14134,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14139,1
    - Dst: obj2ast_arguments
      Src: /src/cpython/Python/Python-ast.c:14142,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14143,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14145,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14147,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14151,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14156,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14159,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14160,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14162,1
    - Dst: _PyAST_Lambda
      Src: /src/cpython/Python/Python-ast.c:14164,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14170,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14179,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14183,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14188,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14191,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14192,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14194,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14196,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14200,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14205,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14208,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14209,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14211,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14213,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14217,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14222,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14225,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14226,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14228,1
    - Dst: _PyAST_IfExp
      Src: /src/cpython/Python/Python-ast.c:14230,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14236,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14244,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14248,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14257,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14258,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14258,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14258,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14261,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14262,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14266,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14266,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14267,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14270,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14271,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14272,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14274,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14275,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14278,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14280,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14282,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14286,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14295,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14296,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14296,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14296,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14299,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14300,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14304,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14304,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14305,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14308,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14309,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14310,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14312,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14313,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14316,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14318,1
    - Dst: _PyAST_Dict
      Src: /src/cpython/Python/Python-ast.c:14320,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14326,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14333,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14337,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14346,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14347,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14347,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14347,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14350,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14351,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14355,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14355,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14356,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14359,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14360,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14361,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14363,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14364,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14367,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14369,1
    - Dst: _PyAST_Set
      Src: /src/cpython/Python/Python-ast.c:14371,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14377,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14385,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14389,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14394,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14397,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14398,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14400,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14402,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14406,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14415,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14416,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14416,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14416,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14419,1
    - Dst: _Py_asdl_comprehension_seq_new
      Src: /src/cpython/Python/Python-ast.c:14420,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14424,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14424,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14425,1
    - Dst: obj2ast_comprehension
      Src: /src/cpython/Python/Python-ast.c:14428,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14429,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14430,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14432,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14433,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14436,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14438,1
    - Dst: _PyAST_ListComp
      Src: /src/cpython/Python/Python-ast.c:14440,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14446,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14454,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14458,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14463,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14466,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14467,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14469,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14471,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14475,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14484,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14485,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14485,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14485,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14488,1
    - Dst: _Py_asdl_comprehension_seq_new
      Src: /src/cpython/Python/Python-ast.c:14489,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14493,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14493,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14494,1
    - Dst: obj2ast_comprehension
      Src: /src/cpython/Python/Python-ast.c:14497,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14498,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14499,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14501,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14502,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14505,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14507,1
    - Dst: _PyAST_SetComp
      Src: /src/cpython/Python/Python-ast.c:14509,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14515,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14524,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14528,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14533,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14536,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14537,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14539,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14541,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14545,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14550,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14553,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14554,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14556,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14558,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14562,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14571,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14572,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14572,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14572,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14575,1
    - Dst: _Py_asdl_comprehension_seq_new
      Src: /src/cpython/Python/Python-ast.c:14576,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14580,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14580,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14581,1
    - Dst: obj2ast_comprehension
      Src: /src/cpython/Python/Python-ast.c:14584,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14585,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14586,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14588,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14589,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14592,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14594,1
    - Dst: _PyAST_DictComp
      Src: /src/cpython/Python/Python-ast.c:14596,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14602,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14610,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14614,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14619,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14622,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14623,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14625,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14627,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14631,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14640,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14641,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14641,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14641,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14644,1
    - Dst: _Py_asdl_comprehension_seq_new
      Src: /src/cpython/Python/Python-ast.c:14645,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14649,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14649,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14650,1
    - Dst: obj2ast_comprehension
      Src: /src/cpython/Python/Python-ast.c:14653,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14655,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14657,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14658,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14661,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14663,1
    - Dst: _PyAST_GeneratorExp
      Src: /src/cpython/Python/Python-ast.c:14665,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14671,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14678,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14682,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14687,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14690,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14691,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14693,1
    - Dst: _PyAST_Await
      Src: /src/cpython/Python/Python-ast.c:14695,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14701,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14708,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14712,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14717,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14720,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14721,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14723,1
    - Dst: _PyAST_Yield
      Src: /src/cpython/Python/Python-ast.c:14725,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14731,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14738,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14742,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14747,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14750,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14751,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14753,1
    - Dst: _PyAST_YieldFrom
      Src: /src/cpython/Python/Python-ast.c:14755,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14761,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14770,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14774,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14779,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14782,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14783,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14785,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14787,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14791,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14800,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14801,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14801,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14801,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14804,1
    - Dst: _Py_asdl_int_seq_new
      Src: /src/cpython/Python/Python-ast.c:14805,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14809,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14809,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14810,1
    - Dst: obj2ast_cmpop
      Src: /src/cpython/Python/Python-ast.c:14813,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14814,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14815,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14817,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14818,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14821,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14823,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14825,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14829,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14838,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14839,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14839,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14839,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14842,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14843,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14847,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14847,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14848,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14851,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14853,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14855,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14856,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14859,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14861,1
    - Dst: _PyAST_Compare
      Src: /src/cpython/Python/Python-ast.c:14863,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14869,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14878,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14882,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14887,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14890,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14891,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14893,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14895,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14899,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14908,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14909,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14909,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14909,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14912,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:14913,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14917,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14917,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14918,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14921,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14922,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14923,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14925,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14926,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14929,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14931,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14933,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:14937,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:14946,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:14947,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:14947,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:14947,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14950,1
    - Dst: _Py_asdl_keyword_seq_new
      Src: /src/cpython/Python/Python-ast.c:14951,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:14955,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:14955,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14956,1
    - Dst: obj2ast_keyword
      Src: /src/cpython/Python/Python-ast.c:14959,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14960,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:14961,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:14963,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14964,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:14967,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:14969,1
    - Dst: _PyAST_Call
      Src: /src/cpython/Python/Python-ast.c:14971,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:14977,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:14986,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:14990,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14995,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:14998,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:14999,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15001,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15003,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15007,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15012,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:15015,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15016,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15018,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15020,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15024,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15029,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15032,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15033,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15035,1
    - Dst: _PyAST_FormattedValue
      Src: /src/cpython/Python/Python-ast.c:15037,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15044,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15054,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15058,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15063,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15066,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15067,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15069,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15071,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15075,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15080,1
    - Dst: obj2ast_constant
      Src: /src/cpython/Python/Python-ast.c:15083,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15084,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15086,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15088,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15092,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15097,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:15100,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15101,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15103,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15105,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15109,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15114,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15117,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15118,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15120,1
    - Dst: _PyAST_Interpolation
      Src: /src/cpython/Python/Python-ast.c:15122,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15129,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15136,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:15140,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:15149,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15150,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:15150,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:15150,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15153,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:15154,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:15158,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:15158,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15159,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15162,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15163,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:15164,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15166,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15167,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:15170,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15172,1
    - Dst: _PyAST_JoinedStr
      Src: /src/cpython/Python/Python-ast.c:15174,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15180,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15187,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:15191,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:15200,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15201,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:15201,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:15201,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15204,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:15205,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:15209,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:15209,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15210,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15213,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15214,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:15215,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15217,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15218,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:15221,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15223,1
    - Dst: _PyAST_TemplateStr
      Src: /src/cpython/Python/Python-ast.c:15225,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15231,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15239,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15243,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15248,1
    - Dst: obj2ast_constant
      Src: /src/cpython/Python/Python-ast.c:15251,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15252,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15254,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15256,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15260,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15265,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:15268,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15269,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15271,1
    - Dst: _PyAST_Constant
      Src: /src/cpython/Python/Python-ast.c:15273,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15279,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15288,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15292,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15297,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15300,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15301,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15303,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15305,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15309,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15314,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:15317,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15318,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15320,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15322,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15326,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15331,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15334,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15335,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15337,1
    - Dst: _PyAST_Attribute
      Src: /src/cpython/Python/Python-ast.c:15339,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15345,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15354,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15358,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15363,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15366,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15367,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15369,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15371,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15375,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15380,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15383,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15384,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15386,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15388,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15392,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15397,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15400,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15401,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15403,1
    - Dst: _PyAST_Subscript
      Src: /src/cpython/Python/Python-ast.c:15405,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15411,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15419,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15423,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15428,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15431,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15432,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15434,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15436,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15440,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15445,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15448,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15449,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15451,1
    - Dst: _PyAST_Starred
      Src: /src/cpython/Python/Python-ast.c:15453,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15459,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15467,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15471,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15476,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:15479,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15480,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15482,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15484,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15488,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15493,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15496,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15497,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15499,1
    - Dst: _PyAST_Name
      Src: /src/cpython/Python/Python-ast.c:15501,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15507,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15515,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:15519,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:15528,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15529,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:15529,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:15529,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15532,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:15533,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:15537,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:15537,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15538,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15541,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15542,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:15543,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15545,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15546,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:15549,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15551,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15553,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15557,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15562,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15565,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15566,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15568,1
    - Dst: _PyAST_List
      Src: /src/cpython/Python/Python-ast.c:15570,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15576,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15584,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:15588,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:15597,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15598,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:15598,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:15598,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15601,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:15602,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:15606,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:15606,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15607,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15610,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15611,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:15612,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:15614,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15615,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:15618,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15620,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15622,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:15626,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15631,1
    - Dst: obj2ast_expr_context
      Src: /src/cpython/Python/Python-ast.c:15634,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15635,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15637,1
    - Dst: _PyAST_Tuple
      Src: /src/cpython/Python/Python-ast.c:15639,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15645,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15654,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15658,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15663,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15666,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15667,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15669,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15671,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15675,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15680,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15683,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15684,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15686,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:15688,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15692,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15697,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:15700,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:15701,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:15703,1
    - Dst: _PyAST_Slice
      Src: /src/cpython/Python/Python-ast.c:15705,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15711,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:15713,1
    CyclomaticComplexity: 657
    EdgeCount: 657
    ICount: 1900
    argCount: 4
    argNames:
    - state
    - obj
    - out
    - arena
    argTypes:
    - struct ast_state*
    - PyObject*
    - expr_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15715
      start: 13805
    functionDepth: 7
    functionLinenumber: 13805
    functionLinenumberEnd: 15715
    functionName: obj2ast_expr
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - _PyAST_Subscript
    - _PyAST_Dict
    - PyList_GET_ITEM
    - _PyAST_Constant
    - _Py_asdl_int_seq_new
    - obj2ast_unaryop
    - _PyAST_Attribute
    - obj2ast_comprehension
    - obj2ast_boolop
    - _PyAST_YieldFrom
    - Py_TYPE
    - obj2ast_cmpop
    - obj2ast_operator
    - _PyAST_Interpolation
    - obj2ast_string
    - obj2ast_int
    - _Py_EnterRecursiveCall
    - _PyAST_NamedExpr
    - _PyAST_FormattedValue
    - _PyAST_Tuple
    - _Py_asdl_keyword_seq_new
    - PyObject_GetOptionalAttr
    - _PyAST_IfExp
    - obj2ast_identifier
    - PyList_New
    - _PyAST_Starred
    - _PyAST_UnaryOp
    - _PyType_Name
    - _PyAST_GeneratorExp
    - _PyAST_TemplateStr
    - Py_XDECREF
    - _PyAST_SetComp
    - _PyAST_ListComp
    - PyErr_SetString
    - obj2ast_constant
    - obj2ast_expr_context
    - _PyAST_Call
    - _PyAST_Name
    - PyList_Check
    - _Py_asdl_expr_seq_new
    - _PyAST_Slice
    - _PyAST_List
    - Py_DECREF
    - obj2ast_expr
    - asdl_seq_SET
    - _PyAST_BinOp
    - Py_NewRef
    - _PyAST_Await
    - _PyAST_JoinedStr
    - _PyAST_DictComp
    - obj2ast_keyword
    - obj2ast_arguments
    - _PyAST_Lambda
    - _Py_LeaveRecursiveCall
    - _PyAST_BoolOp
    - _PyAST_Compare
    - Py_CLEAR
    - _PyAST_Set
    - _Py_asdl_comprehension_seq_new
    - PyErr_Format
    - _PyAST_Yield
    - PyList_GET_SIZE
    - PyObject_IsInstance
    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:15723,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15731,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15739,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15748,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: 15750
      start: 15717
    functionDepth: 7
    functionLinenumber: 15717
    functionLinenumberEnd: 15750
    functionName: obj2ast_expr_context
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - PyObject_IsInstance
    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:15758,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15766,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15775,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: 15777
      start: 15752
    functionDepth: 7
    functionLinenumber: 15752
    functionLinenumberEnd: 15777
    functionName: obj2ast_boolop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - PyObject_IsInstance
    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:15785,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15793,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15801,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15809,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15817,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15825,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15833,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15841,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15849,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15857,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15865,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15873,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15881,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15890,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: 15892
      start: 15779
    functionDepth: 7
    functionLinenumber: 15779
    functionLinenumberEnd: 15892
    functionName: obj2ast_operator
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_Format
    - PyObject_IsInstance
    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:15900,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15908,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15916,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15924,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:15933,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: 15935
      start: 15894
    functionDepth: 7
    functionLinenumber: 15894
    functionLinenumberEnd: 15935
    functionName: obj2ast_unaryop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - PyObject_IsInstance
    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:15943,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15951,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15959,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15967,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15975,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15983,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15991,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:15999,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:16007,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:16015,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16024,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: 16026
      start: 15937
    functionDepth: 7
    functionLinenumber: 15937
    functionLinenumberEnd: 16026
    functionName: obj2ast_cmpop
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - PyObject_IsInstance
    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:16038,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16042,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16047,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16050,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16051,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16053,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16055,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16059,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16064,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16067,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16068,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16070,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16072,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16076,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16085,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16086,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16086,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16086,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16089,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:16090,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16094,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16094,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16095,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16098,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16099,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16100,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16103,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16106,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16108,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16110,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16114,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16119,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16122,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16123,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16125,1
    - Dst: _PyAST_comprehension
      Src: /src/cpython/Python/Python-ast.c:16127,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16131,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: 16133
      start: 16028
    functionDepth: 8
    functionLinenumber: 16028
    functionLinenumberEnd: 16133
    functionName: obj2ast_comprehension
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyList_GET_ITEM
    - Py_TYPE
    - _Py_EnterRecursiveCall
    - obj2ast_int
    - PyObject_GetOptionalAttr
    - PyList_New
    - Py_XDECREF
    - _PyType_Name
    - PyErr_SetString
    - PyList_Check
    - _Py_asdl_expr_seq_new
    - Py_DECREF
    - obj2ast_expr
    - asdl_seq_SET
    - Py_NewRef
    - _PyAST_comprehension
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    - PyErr_Format
    - PyList_GET_SIZE
    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:16152,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16156,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16161,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16164,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16165,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16167,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16169,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16173,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16178,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16181,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16182,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16184,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16186,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16190,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16195,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16198,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16199,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16201,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16203,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16207,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16212,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16215,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16216,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16218,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:16221,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16230,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16234,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16239,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16242,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16243,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16245,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16247,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16251,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16256,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16259,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16260,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16262,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16264,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16268,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16277,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16278,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16278,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16278,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16281,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:16282,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16286,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16286,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16287,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:16290,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16291,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16292,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16294,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16295,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16298,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16300,1
    - Dst: _PyAST_ExceptHandler
      Src: /src/cpython/Python/Python-ast.c:16302,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16308,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16310,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: 16312
      start: 16135
    functionDepth: 8
    functionLinenumber: 16135
    functionLinenumberEnd: 16312
    functionName: obj2ast_excepthandler
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyList_GET_ITEM
    - Py_TYPE
    - _Py_asdl_stmt_seq_new
    - obj2ast_int
    - _Py_EnterRecursiveCall
    - PyObject_GetOptionalAttr
    - _PyAST_ExceptHandler
    - obj2ast_identifier
    - PyList_New
    - Py_XDECREF
    - _PyType_Name
    - PyErr_SetString
    - PyList_Check
    - obj2ast_expr
    - Py_DECREF
    - asdl_seq_SET
    - Py_NewRef
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    - PyErr_Format
    - obj2ast_stmt
    - PyList_GET_SIZE
    - PyObject_IsInstance
    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:16327,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16331,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16340,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16341,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16341,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16341,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16344,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Python/Python-ast.c:16345,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16349,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16349,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16350,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16353,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16354,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16355,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16357,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16358,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16361,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16363,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16365,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16369,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16378,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16379,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16379,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16379,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16382,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Python/Python-ast.c:16383,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16387,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16387,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16388,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16391,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16392,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16393,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16395,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16396,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16399,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16401,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16403,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16407,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16412,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16415,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16416,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16418,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16420,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16424,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16433,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16434,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16434,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16434,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16437,1
    - Dst: _Py_asdl_arg_seq_new
      Src: /src/cpython/Python/Python-ast.c:16438,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16442,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16442,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16443,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16446,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16447,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16448,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16450,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16451,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16454,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16456,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16458,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16462,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16471,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16472,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16472,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16472,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16475,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:16476,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16480,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16480,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16481,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16484,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16485,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16486,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16488,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16489,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16492,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16494,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16496,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16500,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16505,1
    - Dst: obj2ast_arg
      Src: /src/cpython/Python/Python-ast.c:16508,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16509,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16511,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16513,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:16517,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:16526,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:16527,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:16527,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:16527,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16530,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:16531,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:16535,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:16535,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16536,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16539,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16540,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:16541,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:16543,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16544,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:16547,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16549,1
    - Dst: _PyAST_arguments
      Src: /src/cpython/Python/Python-ast.c:16551,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16556,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: 16558
      start: 16314
    functionDepth: 8
    functionLinenumber: 16314
    functionLinenumberEnd: 16558
    functionName: obj2ast_arguments
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - obj2ast_arg
    - PyList_GET_ITEM
    - Py_TYPE
    - _Py_EnterRecursiveCall
    - PyObject_GetOptionalAttr
    - _Py_asdl_arg_seq_new
    - PyList_New
    - Py_XDECREF
    - _PyType_Name
    - _PyAST_arguments
    - PyErr_SetString
    - PyList_Check
    - _Py_asdl_expr_seq_new
    - Py_DECREF
    - obj2ast_expr
    - asdl_seq_SET
    - Py_NewRef
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    - PyErr_Format
    - PyList_GET_SIZE
    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:16572,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16576,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16581,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16584,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16585,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16587,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16589,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16593,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16598,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16601,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16602,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16604,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16606,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16610,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16615,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:16618,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16619,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16621,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16623,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16627,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16632,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16635,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16636,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16638,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16640,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16644,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16649,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16652,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16653,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16655,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16657,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16661,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16666,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16669,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16670,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16672,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16674,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16678,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16683,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16686,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16687,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16689,1
    - Dst: _PyAST_arg
      Src: /src/cpython/Python/Python-ast.c:16691,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16696,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: 16698
      start: 16560
    functionDepth: 8
    functionLinenumber: 16560
    functionLinenumberEnd: 16698
    functionName: obj2ast_arg
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - obj2ast_string
    - _Py_EnterRecursiveCall
    - obj2ast_int
    - PyErr_SetString
    - _Py_LeaveRecursiveCall
    - PyObject_GetOptionalAttr
    - Py_CLEAR
    - obj2ast_identifier
    - _PyAST_arg
    - Py_XDECREF
    - obj2ast_expr
    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:16712,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16716,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16721,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16724,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16725,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16727,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16729,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16733,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16738,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16741,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16742,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16744,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16746,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16750,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16755,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16758,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16759,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16761,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16763,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16767,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16772,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16775,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16776,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16778,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16780,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16784,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16789,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16792,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16793,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16795,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16797,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16801,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16806,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16809,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16810,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16812,1
    - Dst: _PyAST_keyword
      Src: /src/cpython/Python/Python-ast.c:16814,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16819,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: 16821
      start: 16700
    functionDepth: 8
    functionLinenumber: 16700
    functionLinenumberEnd: 16821
    functionName: obj2ast_keyword
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _Py_EnterRecursiveCall
    - obj2ast_int
    - _PyAST_keyword
    - PyErr_SetString
    - _Py_LeaveRecursiveCall
    - PyObject_GetOptionalAttr
    - Py_CLEAR
    - obj2ast_identifier
    - Py_XDECREF
    - obj2ast_expr
    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:16835,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16839,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16844,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16847,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16848,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16850,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16852,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16856,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16861,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:16864,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16865,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16867,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16869,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16873,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16878,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16881,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16882,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16884,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16886,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16890,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16895,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16898,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16899,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16901,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16903,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16907,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16912,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16915,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16916,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16918,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16920,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16924,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16929,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:16932,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16933,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16935,1
    - Dst: _PyAST_alias
      Src: /src/cpython/Python/Python-ast.c:16937,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16942,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: 16944
      start: 16823
    functionDepth: 6
    functionLinenumber: 16823
    functionLinenumberEnd: 16944
    functionName: obj2ast_alias
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _Py_EnterRecursiveCall
    - obj2ast_int
    - PyErr_SetString
    - _Py_LeaveRecursiveCall
    - PyObject_GetOptionalAttr
    - _PyAST_alias
    - Py_CLEAR
    - obj2ast_identifier
    - Py_XDECREF
    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:16954,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:16958,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16963,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16966,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16967,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16969,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:16971,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16975,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16980,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:16983,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:16984,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:16986,1
    - Dst: _PyAST_withitem
      Src: /src/cpython/Python/Python-ast.c:16988,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:16992,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: 16994
      start: 16946
    functionDepth: 8
    functionLinenumber: 16946
    functionLinenumberEnd: 16994
    functionName: obj2ast_withitem
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _Py_EnterRecursiveCall
    - PyErr_SetString
    - _Py_LeaveRecursiveCall
    - PyObject_GetOptionalAttr
    - _PyAST_withitem
    - Py_CLEAR
    - Py_XDECREF
    - obj2ast_expr
    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:17005,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17009,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17014,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17017,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17018,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17020,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17022,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17026,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17031,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17034,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17035,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17037,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17039,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17043,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17052,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17053,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17053,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17053,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17056,1
    - Dst: _Py_asdl_stmt_seq_new
      Src: /src/cpython/Python/Python-ast.c:17057,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17061,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17061,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17062,1
    - Dst: obj2ast_stmt
      Src: /src/cpython/Python/Python-ast.c:17065,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17066,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17067,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17069,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17070,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17073,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17075,1
    - Dst: _PyAST_match_case
      Src: /src/cpython/Python/Python-ast.c:17077,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:17081,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: 17083
      start: 16996
    functionDepth: 8
    functionLinenumber: 16996
    functionLinenumberEnd: 17083
    functionName: obj2ast_match_case
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyList_GET_ITEM
    - Py_TYPE
    - _Py_asdl_stmt_seq_new
    - _Py_EnterRecursiveCall
    - PyObject_GetOptionalAttr
    - PyList_New
    - Py_XDECREF
    - _PyType_Name
    - PyErr_SetString
    - PyList_Check
    - Py_DECREF
    - obj2ast_expr
    - asdl_seq_SET
    - Py_NewRef
    - obj2ast_pattern
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    - PyErr_Format
    - obj2ast_stmt
    - PyList_GET_SIZE
    - _PyAST_match_case
    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:17102,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17106,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17111,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17114,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17115,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17117,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17119,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17123,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17128,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17131,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17132,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17134,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17136,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17140,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17145,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17148,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17149,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17151,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17153,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17157,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17162,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17165,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17166,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17168,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17171,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17178,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17182,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17187,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17190,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17191,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17193,1
    - Dst: _PyAST_MatchValue
      Src: /src/cpython/Python/Python-ast.c:17195,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17201,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17208,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17212,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17217,1
    - Dst: obj2ast_constant
      Src: /src/cpython/Python/Python-ast.c:17220,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17221,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17223,1
    - Dst: _PyAST_MatchSingleton
      Src: /src/cpython/Python/Python-ast.c:17225,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17231,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17238,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17242,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17251,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17252,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17252,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17252,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17255,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17256,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17260,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17260,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17261,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17264,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17265,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17266,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17268,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17269,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17272,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17274,1
    - Dst: _PyAST_MatchSequence
      Src: /src/cpython/Python/Python-ast.c:17276,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17282,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17291,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17295,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17304,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17305,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17305,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17305,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17308,1
    - Dst: _Py_asdl_expr_seq_new
      Src: /src/cpython/Python/Python-ast.c:17309,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17313,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17313,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17314,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17317,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17318,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17319,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17321,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17322,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17325,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17327,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17329,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17333,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17342,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17343,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17343,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17343,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17346,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17347,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17351,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17351,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17352,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17355,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17356,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17357,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17359,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17360,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17363,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17365,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17367,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17371,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17376,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17379,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17380,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17382,1
    - Dst: _PyAST_MatchMapping
      Src: /src/cpython/Python/Python-ast.c:17384,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17390,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17400,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17404,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17409,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17412,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17413,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17415,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17417,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17421,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17430,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17431,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17431,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17431,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17434,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17435,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17439,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17439,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17440,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17443,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17445,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17447,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17448,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17451,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17453,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17455,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17459,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17468,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17469,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17469,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17469,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17472,1
    - Dst: _Py_asdl_identifier_seq_new
      Src: /src/cpython/Python/Python-ast.c:17473,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17477,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17477,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17478,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17481,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17483,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17485,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17486,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17489,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17491,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17493,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17497,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17506,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17507,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17507,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17507,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17510,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17511,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17515,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17515,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17516,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17519,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17520,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17521,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17523,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17524,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17527,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17529,1
    - Dst: _PyAST_MatchClass
      Src: /src/cpython/Python/Python-ast.c:17531,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17538,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17545,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17549,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17554,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17557,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17558,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17560,1
    - Dst: _PyAST_MatchStar
      Src: /src/cpython/Python/Python-ast.c:17562,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17568,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17576,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17580,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17585,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17588,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17589,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17591,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17593,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17597,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17602,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17605,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17606,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17608,1
    - Dst: _PyAST_MatchAs
      Src: /src/cpython/Python/Python-ast.c:17610,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17616,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17623,1
    - Dst: PyList_New
      Src: /src/cpython/Python/Python-ast.c:17627,1
    - Dst: PyList_Check
      Src: /src/cpython/Python/Python-ast.c:17636,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17637,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:17637,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:17637,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17640,1
    - Dst: _Py_asdl_pattern_seq_new
      Src: /src/cpython/Python/Python-ast.c:17641,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/Python-ast.c:17645,1
    - Dst: PyList_GET_ITEM
      Src: /src/cpython/Python/Python-ast.c:17645,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17646,1
    - Dst: obj2ast_pattern
      Src: /src/cpython/Python/Python-ast.c:17649,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17650,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/Python-ast.c:17651,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/Python-ast.c:17653,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17654,1
    - Dst: asdl_seq_SET
      Src: /src/cpython/Python/Python-ast.c:17657,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17659,1
    - Dst: _PyAST_MatchOr
      Src: /src/cpython/Python/Python-ast.c:17661,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17667,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:17669,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: 17671
      start: 17085
    functionDepth: 8
    functionLinenumber: 17085
    functionLinenumberEnd: 17671
    functionName: obj2ast_pattern
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyAST_MatchSequence
    - PyList_GET_ITEM
    - _Py_asdl_pattern_seq_new
    - _PyAST_MatchMapping
    - Py_TYPE
    - obj2ast_int
    - _Py_EnterRecursiveCall
    - _PyAST_MatchAs
    - PyObject_GetOptionalAttr
    - obj2ast_identifier
    - _PyAST_MatchSingleton
    - PyList_New
    - Py_XDECREF
    - _PyType_Name
    - _Py_asdl_identifier_seq_new
    - _PyAST_MatchClass
    - PyErr_SetString
    - obj2ast_constant
    - PyList_Check
    - _Py_asdl_expr_seq_new
    - _PyAST_MatchValue
    - obj2ast_expr
    - Py_DECREF
    - asdl_seq_SET
    - Py_NewRef
    - obj2ast_pattern
    - _PyAST_MatchStar
    - _Py_LeaveRecursiveCall
    - Py_CLEAR
    - PyErr_Format
    - PyList_GET_SIZE
    - _PyAST_MatchOr
    - PyObject_IsInstance
    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:17687,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17695,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17699,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17704,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17707,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17708,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17710,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17712,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17716,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17721,1
    - Dst: obj2ast_string
      Src: /src/cpython/Python/Python-ast.c:17724,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17725,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17727,1
    - Dst: _PyAST_TypeIgnore
      Src: /src/cpython/Python/Python-ast.c:17729,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17734,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:17736,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: 17738
      start: 17673
    functionDepth: 7
    functionLinenumber: 17673
    functionLinenumberEnd: 17738
    functionName: obj2ast_type_ignore
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - obj2ast_string
    - obj2ast_int
    - _Py_EnterRecursiveCall
    - PyErr_SetString
    - _PyAST_TypeIgnore
    - _Py_LeaveRecursiveCall
    - PyObject_GetOptionalAttr
    - Py_CLEAR
    - PyErr_Format
    - Py_XDECREF
    - PyObject_IsInstance
    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:17757,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17761,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17766,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17769,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17770,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17772,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17774,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17778,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17783,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17786,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17787,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17789,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17791,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17795,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17800,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17803,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17804,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17806,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17808,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17812,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17817,1
    - Dst: obj2ast_int
      Src: /src/cpython/Python/Python-ast.c:17820,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17821,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17823,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17826,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17835,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17839,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17844,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17847,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17848,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17850,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17852,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17856,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17861,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17864,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17865,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17867,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17869,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17873,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17878,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17881,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17882,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17884,1
    - Dst: _PyAST_TypeVar
      Src: /src/cpython/Python/Python-ast.c:17886,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17892,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17900,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17904,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17909,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17912,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17913,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17915,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17917,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17921,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17926,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17929,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17930,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17932,1
    - Dst: _PyAST_ParamSpec
      Src: /src/cpython/Python/Python-ast.c:17934,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:17940,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17948,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/Python-ast.c:17952,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17957,1
    - Dst: obj2ast_identifier
      Src: /src/cpython/Python/Python-ast.c:17960,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17961,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17963,1
    - Dst: PyObject_GetOptionalAttr
      Src: /src/cpython/Python/Python-ast.c:17965,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17969,1
    - Dst: _Py_EnterRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17974,1
    - Dst: obj2ast_expr
      Src: /src/cpython/Python/Python-ast.c:17977,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/Python-ast.c:17978,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/Python-ast.c:17980,1
    - Dst: _PyAST_TypeVarTuple
      Src: /src/cpython/Python/Python-ast.c:17982,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:17988,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/Python-ast.c:17990,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: 17992
      start: 17740
    functionDepth: 8
    functionLinenumber: 17740
    functionLinenumberEnd: 17992
    functionName: obj2ast_type_param
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - obj2ast_int
    - _Py_EnterRecursiveCall
    - _PyAST_TypeVarTuple
    - PyErr_SetString
    - _Py_LeaveRecursiveCall
    - PyObject_GetOptionalAttr
    - Py_CLEAR
    - obj2ast_identifier
    - _PyAST_TypeVar
    - PyErr_Format
    - Py_XDECREF
    - obj2ast_expr
    - _PyAST_ParamSpec
    - PyObject_IsInstance
    linkageType: ''
    returnType: int
    signature: "int obj2ast_type_param(struct ast_state *state, PyObject* obj, type_param_ty*
      out,\n                   PyArena* arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:17998,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/Python-ast.c:18002,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - Py_UNUSED(module)
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18010
      start: 17996
    functionDepth: 6
    functionLinenumber: 17996
    functionLinenumberEnd: 18010
    functionName: ast_is_abstract
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - get_ast_state
    - PySet_Contains
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast_is_abstract(PyObject *Py_UNUSED(module), PyObject *cls)'
  - BBCount: 132
    BranchProfiles: []
    Callsites:
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:18020,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18024,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Python/Python-ast.c:18027,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Python/Python-ast.c:18030,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Python/Python-ast.c:18033,1
    - Dst: PyModule_AddIntMacro
      Src: /src/cpython/Python/Python-ast.c:18036,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18039,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18042,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18045,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18048,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18051,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:18065,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18068,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18071,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18074,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18077,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18080,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18083,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18086,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18089,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18092,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18095,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18098,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18101,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18104,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18107,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18110,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18113,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18116,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18119,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18122,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18125,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18128,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18131,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18134,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18137,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18140,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18143,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:18164,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18167,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18170,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18173,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18176,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18179,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18183,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18186,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18189,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18192,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18195,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18198,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18202,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:18240,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18243,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18246,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18249,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18252,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18255,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18258,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18261,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18264,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18267,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18270,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18273,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18276,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18279,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18282,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18285,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18288,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18291,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18294,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18297,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18300,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18303,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18306,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18309,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18312,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18315,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18318,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18321,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18324,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18327,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18330,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18333,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18336,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18339,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18342,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18345,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18348,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18352,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18356,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18360,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18363,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18366,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18369,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18372,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18375,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18378,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18381,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18384,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18388,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18392,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18396,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18399,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18402,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18405,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18408,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18411,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18414,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18417,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18420,1
    - Dst: PyModule_AddObjectRef
      Src: /src/cpython/Python/Python-ast.c:18423,1
    CyclomaticComplexity: 131
    EdgeCount: 131
    ICount: 395
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18428
      start: 18017
    functionDepth: 12
    functionLinenumber: 18017
    functionLinenumberEnd: 18428
    functionName: astmodule_exec
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntMacro
    - get_ast_state
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int astmodule_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/cpython/Python/Python-ast.c:18450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18451
      start: 18447
    functionDepth: 2
    functionLinenumber: 18447
    functionLinenumberEnd: 18451
    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:18456,1
    - Dst: ast2obj_mod
      Src: /src/cpython/Python/Python-ast.c:18460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18463
      start: 18454
    functionDepth: 6
    functionLinenumber: 18454
    functionLinenumberEnd: 18463
    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:18470,1
    - Dst: assert
      Src: /src/cpython/Python/Python-ast.c:18480,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:18481,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/Python-ast.c:18486,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/Python-ast.c:18487,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/Python-ast.c:18487,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ast
    - mode
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (0 <= mode && mode <= 2)
      pos:
        line_end: 18479
        line_start: 18479
        source_file: /src/cpython/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 18491
      start: 18466
    functionDepth: 7
    functionLinenumber: 18466
    functionLinenumberEnd: 18491
    functionName: PyAst_CheckMode
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - get_ast_state
    - PyErr_Format
    - assert
    - _PyType_Name
    - Py_TYPE
    - PyObject_IsInstance
    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:18495,1
    - Dst: get_ast_state
      Src: /src/cpython/Python/Python-ast.c:18499,1
    - Dst: PyAst_CheckMode
      Src: /src/cpython/Python/Python-ast.c:18504,1
    - Dst: obj2ast_mod
      Src: /src/cpython/Python/Python-ast.c:18509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ast
    - arena
    - mode
    argTypes:
    - PyObject*
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18513
      start: 18493
    functionDepth: 8
    functionLinenumber: 18493
    functionLinenumberEnd: 18513
    functionName: PyAST_obj2mod
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - obj2ast_mod
    - PySys_Audit
    - PyAst_CheckMode
    - get_ast_state
    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:18517,1
    - Dst: PyObject_IsInstance
      Src: /src/cpython/Python/Python-ast.c:18521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18522
      start: 18515
    functionDepth: 7
    functionLinenumber: 18515
    functionLinenumberEnd: 18522
    functionName: PyAST_Check
    functionSourceFile: /src/cpython/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - get_ast_state
    - PyObject_IsInstance
    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:69,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_shlib.c:71,1
    - Dst: PyOS_snprintf
      Src: /src/cpython/Python/dynload_shlib.c:75,1
    - Dst: _Py_fstat
      Src: /src/cpython/Python/dynload_shlib.c:80,1
    - Dst: fileno
      Src: /src/cpython/Python/dynload_shlib.c:80,1
    - Dst: _PyImport_GetDLOpenFlags
      Src: /src/cpython/Python/dynload_shlib.c:84,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/dynload_shlib.c:84,1
    - Dst: dlopen
      Src: /src/cpython/Python/dynload_shlib.c:86,1
    - Dst: dlerror
      Src: /src/cpython/Python/dynload_shlib.c:92,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Python/dynload_shlib.c:95,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/dynload_shlib.c:98,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:100,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/dynload_shlib.c:103,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:105,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:106,1
    - Dst: PyErr_SetImportError
      Src: /src/cpython/Python/dynload_shlib.c:109,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:110,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:111,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/dynload_shlib.c:112,1
    - Dst: dlsym
      Src: /src/cpython/Python/dynload_shlib.c:115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 58
    functionDepth: 7
    functionLinenumber: 58
    functionLinenumberEnd: 117
    functionName: _PyImport_FindSharedFuncptr
    functionSourceFile: /src/cpython/Python/dynload_shlib.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeLocale
    - fileno
    - PyUnicode_FromString
    - PyErr_SetImportError
    - dlsym
    - _Py_fstat
    - strchr
    - _PyInterpreterState_GET
    - dlopen
    - Py_DECREF
    - _PyImport_GetDLOpenFlags
    - PyUnicode_DecodeFSDefault
    - PyOS_snprintf
    - dlerror
    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:
    - PyUnicode_FromString
    - PyErr_Print
    - fclose
    - _PyRun_SimpleFileObject
    - _PyRun_InteractiveLoopObject
    - _Py_FdIsInteractive
    - Py_DECREF
    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:
    - Py_XDECREF
    - PyErr_Print
    - 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:
    - PyUnicode_FromString
    - PyErr_Print
    - _PySys_SetAttr
    - flush_io
    - PySys_GetOptionalAttr
    - _PyDebug_PrintTotalRefs
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - PyErr_Occurred
    - _Py_GetConfig
    - PyRun_InteractiveOneObjectEx
    - _Py_ID
    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:
    - _PyRun_InteractiveLoopObject
    - PyErr_Print
    - PyUnicode_DecodeFSDefault
    - 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: 7
    functionLinenumber: 199
    functionLinenumberEnd: 284
    functionName: pyrun_one_parse_ast
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - PySys_GetOptionalAttr
    - PyUnicode_Check
    - PyObject_GetOptionalAttr
    - PyUnicode_AsUTF8
    - PyErr_Clear
    - Py_XDECREF
    - Py_DECREF
    - _PyParser_InteractiveASTFromFile
    - _Py_ID
    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: 16
    functionLinenumber: 289
    functionLinenumberEnd: 354
    functionName: PyRun_InteractiveOneObjectEx
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyList_GET_ITEM
    - _PyErr_SetRaisedException
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - assert
    - pyrun_one_parse_ast
    - PyImport_AddModuleRef
    - Py_TYPE
    - PyType_IsSubtype
    - run_mod
    - PyModule_GetDict
    - PyUnicode_Splitlines
    - Py_INCREF
    - flush_io
    - _PyArena_Free
    - Py_DECREF
    - _PyArena_New
    - PyObject_SetAttr
    - PyLong_AsInt
    - PyObject_GetAttr
    - PyList_GET_SIZE
    - _Py_ID
    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: 17
    functionLinenumber: 356
    functionLinenumberEnd: 367
    functionName: PyRun_InteractiveOneObject
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_InteractiveOneObjectEx
    - flush_io
    - PyErr_Print
    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: 18
    functionLinenumber: 369
    functionLinenumberEnd: 383
    functionName: PyRun_InteractiveOneFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Print
    - PyUnicode_DecodeFSDefault
    - PyRun_InteractiveOneObject
    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: 2
    functionLinenumber: 389
    functionLinenumberEnd: 432
    functionName: maybe_pyc_file
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - fread
    - PyUnicode_FromString
    - ftell
    - PyUnicode_Tailmatch
    - PyImport_GetMagicNumber
    - rewind
    - Py_DECREF
    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: 11
    functionLinenumber: 435
    functionLinenumberEnd: 458
    functionName: set_main_loader
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    - _PyInterpreterState_GET
    - PyDict_SetItemString
    - Py_DECREF
    - _PyImport_GetImportlibExternalLoader
    linkageType: ''
    returnType: int
    signature: int set_main_loader(PyObject *d, PyObject *filename, const char *loader_name)
  - BBCount: 14
    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: maybe_pyc_file
      Src: /src/cpython/Python/pythonrun.c:484,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:494,1
    - Dst: Py_fopen
      Src: /src/cpython/Python/pythonrun.c:497,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:499,1
    - Dst: set_main_loader
      Src: /src/cpython/Python/pythonrun.c:503,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:504,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:506,1
    - Dst: run_pyc_file
      Src: /src/cpython/Python/pythonrun.c:509,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:512,1
    - Dst: PyUnicode_EqualToUTF8
      Src: /src/cpython/Python/pythonrun.c:512,1
    - Dst: set_main_loader
      Src: /src/cpython/Python/pythonrun.c:513,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:514,1
    - Dst: pyrun_file
      Src: /src/cpython/Python/pythonrun.c:518,1
    - Dst: flush_io
      Src: /src/cpython/Python/pythonrun.c:521,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:523,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:524,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:527,1
    - Dst: PyDict_PopString
      Src: /src/cpython/Python/pythonrun.c:532,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:533,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:536,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 4
    argNames:
    - fp
    - filename
    - closeit
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 461
    functionDepth: 16
    functionLinenumber: 461
    functionLinenumberEnd: 538
    functionName: _PyRun_SimpleFileObject
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - PyDict_ContainsString
    - set_main_loader
    - PyDict_PopString
    - Py_fopen
    - PyImport_AddModuleRef
    - maybe_pyc_file
    - PyUnicode_Check
    - PyModule_GetDict
    - PyDict_SetItemString
    - Py_XDECREF
    - flush_io
    - pyrun_file
    - PyUnicode_EqualToUTF8
    - Py_DECREF
    - PyErr_Print
    - fclose
    - Py_CLEAR
    - fprintf
    - run_pyc_file
    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:545,1
    - Dst: _PyRun_SimpleFileObject
      Src: /src/cpython/Python/pythonrun.c:549,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - filename
    - closeit
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 541
    functionDepth: 17
    functionLinenumber: 541
    functionLinenumberEnd: 552
    functionName: PyRun_SimpleFileExFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyRun_SimpleFileObject
    - PyUnicode_DecodeFSDefault
    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:557,1
    - Dst: PyModule_GetDict
      Src: /src/cpython/Python/pythonrun.c:561,1
    - Dst: PyRun_StringFlags
      Src: /src/cpython/Python/pythonrun.c:565,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pythonrun.c:567,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:570,1
    - Dst: _PyRun_StringFlagsWithName
      Src: /src/cpython/Python/pythonrun.c:573,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:574,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:576,1
    - Dst: PyErr_Print
      Src: /src/cpython/Python/pythonrun.c:578,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - command
    - name
    - flags
    argTypes:
    - char*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 555
    functionDepth: 16
    functionLinenumber: 555
    functionLinenumberEnd: 584
    functionName: _PyRun_SimpleStringFlagsWithName
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - PyErr_Print
    - PyModule_GetDict
    - _PyRun_StringFlagsWithName
    - PyRun_StringFlags
    - Py_DECREF
    - PyImport_AddModuleRef
    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:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - command
    - flags
    argTypes:
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 17
    functionLinenumber: 586
    functionLinenumberEnd: 590
    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:595,1
    - Dst: PyLong_AsLongLong
      Src: /src/cpython/Python/pythonrun.c:598,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:599,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - code
    - exitcode_p
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 614
    functionName: parse_exit_code
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Clear
    - PyErr_Occurred
    - 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:619,1
    - Dst: _Py_atomic_store_int
      Src: /src/cpython/Python/pythonrun.c:620,1
    - Dst: _Py_GetConfig
      Src: /src/cpython/Python/pythonrun.c:624,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pythonrun.c:631,1
    - Dst: fflush
      Src: /src/cpython/Python/pythonrun.c:635,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:637,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:638,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:638,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/pythonrun.c:640,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:640,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:643,1
    - Dst: parse_exit_code
      Src: /src/cpython/Python/pythonrun.c:645,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:646,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:647,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/pythonrun.c:652,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:656,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:656,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:657,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:660,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:661,1
    - Dst: PyObject_Print
      Src: /src/cpython/Python/pythonrun.c:665,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:666,1
    - Dst: fflush
      Src: /src/cpython/Python/pythonrun.c:668,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pythonrun.c:670,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:671,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:672,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - exitcode_p
    argTypes:
    - int*
    assertStmts:
    - condition: (exc != NULL && PyExceptionInstance_Check(exc))
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 675
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 675
    functionName: _Py_HandleSystemExitAndKeyboardInterrupt
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - assert
    - fflush
    - PySys_GetOptionalAttr
    - Py_XDECREF
    - _Py_atomic_store_int
    - PySys_WriteStderr
    - PyErr_Clear
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyExceptionInstance_Check
    - PyFile_WriteObject
    - PyObject_Print
    - _Py_GetConfig
    - parse_exit_code
    - Py_SETREF
    - PyObject_GetAttr
    - Py_CLEAR
    - PyErr_ExceptionMatches
    - _Py_ID
    linkageType: ''
    returnType: int
    signature: int _Py_HandleSystemExitAndKeyboardInterrupt(int *exitcode_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HandleSystemExitAndKeyboardInterrupt
      Src: /src/cpython/Python/pythonrun.c:682,1
    - Dst: Py_Exit
      Src: /src/cpython/Python/pythonrun.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 678
    functionDepth: 6
    functionLinenumber: 678
    functionLinenumberEnd: 685
    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:692,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:694,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:698,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:698,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pythonrun.c:699,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pythonrun.c:699,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/pythonrun.c:700,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pythonrun.c:702,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:706,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:706,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:707,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:710,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:710,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:711,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:713,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:713,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:714,1
    - Dst: _PySys_SetAttr
      Src: /src/cpython/Python/pythonrun.c:716,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:716,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:717,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/pythonrun.c:720,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:720,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:721,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pythonrun.c:723,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/pythonrun.c:725,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:726,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pythonrun.c:729,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/pythonrun.c:733,1
    - Dst: handle_system_exit
      Src: /src/cpython/Python/pythonrun.c:735,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:737,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:738,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:738,1
    - Dst: fflush
      Src: /src/cpython/Python/pythonrun.c:739,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pythonrun.c:740,1
    - Dst: PyErr_DisplayException
      Src: /src/cpython/Python/pythonrun.c:741,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pythonrun.c:742,1
    - Dst: PyErr_DisplayException
      Src: /src/cpython/Python/pythonrun.c:743,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:744,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:747,1
    - Dst: PySys_WriteStderr
      Src: /src/cpython/Python/pythonrun.c:751,1
    - Dst: PyErr_DisplayException
      Src: /src/cpython/Python/pythonrun.c:752,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:756,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:757,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:758,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:759,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - tstate
    - set_sys_last_vars
    argTypes:
    - PyThreadState*
    - int
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc))
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/cpython/Python/pythonrun.c
    - condition: (exc2 && PyExceptionInstance_Check(exc2))
      pos:
        line_end: 737
        line_start: 737
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 760
      start: 688
    functionDepth: 7
    functionLinenumber: 688
    functionLinenumberEnd: 760
    functionName: _PyErr_PrintEx
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyErr_DisplayException
    - _PyErr_GetRaisedException
    - assert
    - Py_TYPE
    - _PySys_SetAttr
    - fflush
    - PySys_GetOptionalAttr
    - _PySys_Audit
    - PyException_GetTraceback
    - Py_XDECREF
    - PySys_WriteStderr
    - handle_system_exit
    - PyErr_Clear
    - Py_DECREF
    - PyExceptionInstance_Check
    - Py_NewRef
    - PyObject_Vectorcall
    - _PyErr_Clear
    - PyErr_ExceptionMatches
    - PyErr_FormatUnraisable
    - _Py_ID
    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:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 762
    functionDepth: 8
    functionLinenumber: 762
    functionLinenumberEnd: 766
    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:771,1
    - Dst: _PyErr_PrintEx
      Src: /src/cpython/Python/pythonrun.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set_sys_last_vars
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 768
    functionDepth: 8
    functionLinenumber: 768
    functionLinenumberEnd: 773
    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:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 775
    functionDepth: 9
    functionLinenumber: 775
    functionLinenumberEnd: 779
    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:794,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:797,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pythonrun.c:797,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 787
    functionDepth: 6
    functionLinenumber: 787
    functionLinenumberEnd: 804
    functionName: print_exception_invalid_type
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteString
    - Py_TYPE
    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:812,1
    - Dst: _PyTraceBack_Print
      Src: /src/cpython/Python/pythonrun.c:815,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 806
    functionDepth: 13
    functionLinenumber: 806
    functionLinenumberEnd: 819
    functionName: print_exception_traceback
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - _PyTraceBack_Print
    - PyException_GetTraceback
    - Py_XDECREF
    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:828,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:828,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:831,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:835,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/pythonrun.c:839,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:839,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:844,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/pythonrun.c:845,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/pythonrun.c:846,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/pythonrun.c:846,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/pythonrun.c:852,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:854,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:858,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:861,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:863,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:863,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:867,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: 862
        line_start: 862
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 869
      start: 821
    functionDepth: 10
    functionLinenumber: 821
    functionLinenumberEnd: 869
    functionName: print_exception_file_and_line
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteObject
    - _Py_STR
    - _Py_DECLARE_STR
    - PyObject_GetAttr
    - PyObject_GetOptionalAttr
    - PyUnicode_FromFormat
    - Py_CLEAR
    - PyErr_Clear
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - Py_XDECREF
    - Py_NewRef
    - _Py_ID
    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:878,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:884,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/pythonrun.c:884,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/pythonrun.c:886,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:886,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:887,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:888,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:889,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:890,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/pythonrun.c:895,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:895,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/pythonrun.c:896,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:896,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:898,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:899,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:908,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Python/pythonrun.c:912,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:913,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:914,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:915,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:916,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:921,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:922,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/pythonrun.c:928,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/pythonrun.c:932,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:934,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:935,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:943,1
    - Dst: PyUnicode_GetLength
      Src: /src/cpython/Python/pythonrun.c:943,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:944,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:945,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/pythonrun.c:949,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:950,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: 883
        line_start: 883
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 957
      start: 872
    functionDepth: 6
    functionLinenumber: 872
    functionLinenumberEnd: 957
    functionName: print_exception_message
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyExceptionClass_Check
    - PyObject_Str
    - _PyUnicode_Equal
    - PyType_GetQualName
    - PyUnicode_GetLength
    - PyObject_GetAttr
    - PyUnicode_Check
    - Py_IsNone
    - PyErr_Clear
    - Py_XDECREF
    - assert
    - PyFile_WriteString
    - PyErr_GivenExceptionMatches
    - Py_DECREF
    - PyFile_WriteObject
    - _Py_ID
    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:964,1
    - Dst: print_exception_invalid_type
      Src: /src/cpython/Python/pythonrun.c:965,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/pythonrun.c:968,1
    - Dst: fflush
      Src: /src/cpython/Python/pythonrun.c:969,1
    - Dst: print_exception_traceback
      Src: /src/cpython/Python/pythonrun.c:971,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/pythonrun.c:976,1
    - Dst: print_exception_file_and_line
      Src: /src/cpython/Python/pythonrun.c:978,1
    - Dst: print_exception_message
      Src: /src/cpython/Python/pythonrun.c:981,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:984,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:987,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:988,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:988,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:991,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: 987
        line_start: 987
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 993
      start: 959
    functionDepth: 14
    functionLinenumber: 959
    functionLinenumberEnd: 993
    functionName: print_exception
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - fflush
    - Py_INCREF
    - print_exception_message
    - print_exception_file_and_line
    - print_exception_invalid_type
    - print_exception_traceback
    - assert
    - PyFile_WriteString
    - PyErr_Occurred
    - PyExceptionInstance_Check
    - Py_DECREF
    - Py_TYPE
    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:1011,1
    - Dst: print_exception_recursive
      Src: /src/cpython/Python/pythonrun.c:1014,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/pythonrun.c:1015,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:1020,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:1023,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/pythonrun.c:1026,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: 1030
      start: 1006
    functionDepth: 6
    functionLinenumber: 1006
    functionLinenumberEnd: 1030
    functionName: print_chained
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteString
    - print_exception_recursive
    - _Py_LeaveRecursiveCall
    - _Py_EnterRecursiveCall
    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:1042,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1044,1
    - Dst: PySet_Contains
      Src: /src/cpython/Python/pythonrun.c:1048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1049,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1051,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1038
    functionDepth: 6
    functionLinenumber: 1038
    functionLinenumberEnd: 1060
    functionName: print_exception_seen_lookup
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySet_Contains
    - PyErr_Clear
    - PyLong_FromVoidPtr
    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:1066,1
    - Dst: PySet_Add
      Src: /src/cpython/Python/pythonrun.c:1067,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1068,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1069,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1072,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:1074,1
    - Dst: PyException_GetCause
      Src: /src/cpython/Python/pythonrun.c:1078,1
    - Dst: print_exception_seen_lookup
      Src: /src/cpython/Python/pythonrun.c:1081,1
    - Dst: print_chained
      Src: /src/cpython/Python/pythonrun.c:1082,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1084,1
    - Dst: PyException_GetContext
      Src: /src/cpython/Python/pythonrun.c:1090,1
    - Dst: print_exception_seen_lookup
      Src: /src/cpython/Python/pythonrun.c:1093,1
    - Dst: print_chained
      Src: /src/cpython/Python/pythonrun.c:1094,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1096,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - struct exception_print_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1062
    functionDepth: 8
    functionLinenumber: 1062
    functionLinenumberEnd: 1100
    functionName: print_exception_cause_and_context
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyException_GetCause
    - PySet_Add
    - print_exception_seen_lookup
    - print_chained
    - PyErr_Clear
    - Py_XDECREF
    - PyException_GetContext
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyLong_FromVoidPtr
    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:1105,1
    - Dst: print_exception_cause_and_context
      Src: /src/cpython/Python/pythonrun.c:1110,1
    - Dst: print_exception
      Src: /src/cpython/Python/pythonrun.c:1114,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:1117,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:1117,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/pythonrun.c:1119,1
    - Dst: _Py_LeaveRecursiveCall
      Src: /src/cpython/Python/pythonrun.c:1122,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: 1116
        line_start: 1116
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 1124
      start: 1102
    functionDepth: 15
    functionLinenumber: 1102
    functionLinenumberEnd: 1124
    functionName: print_exception_recursive
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - _Py_EnterRecursiveCall
    - _Py_LeaveRecursiveCall
    - PyErr_Occurred
    - assert
    - print_exception
    - print_exception_cause_and_context
    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:1129,1
    - Dst: assert
      Src: /src/cpython/Python/pythonrun.c:1130,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/pythonrun.c:1131,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/pythonrun.c:1132,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/pythonrun.c:1135,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/pythonrun.c:1137,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1140,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/pythonrun.c:1145,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/pythonrun.c:1148,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1149,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/pythonrun.c:1153,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1155,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1157,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:1162,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/pythonrun.c:1163,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1167,1
    - Dst: PySet_New
      Src: /src/cpython/Python/pythonrun.c:1174,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1176,1
    - Dst: print_exception_recursive
      Src: /src/cpython/Python/pythonrun.c:1178,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1179,1
    - Dst: PyObject_Dump
      Src: /src/cpython/Python/pythonrun.c:1180,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:1181,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1183,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/pythonrun.c:1186,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1188,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - file
    - unused
    - value
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 1128
        line_start: 1128
        source_file: /src/cpython/Python/pythonrun.c
    - condition: (file != NULL && file != Py_None)
      pos:
        line_end: 1129
        line_start: 1129
        source_file: /src/cpython/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 1190
      start: 1126
    functionDepth: 16
    functionLinenumber: 1126
    functionLinenumberEnd: 1190
    functionName: _PyErr_Display
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyObject_Dump
    - print_exception_recursive
    - PyCallable_Check
    - PyException_SetTraceback
    - PySet_New
    - PyException_GetTraceback
    - PyErr_FormatUnraisable
    - PyErr_Clear
    - fprintf
    - _PyFile_Flush
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyErr_Occurred
    - PyExceptionInstance_Check
    - PyTraceBack_Check
    - PyImport_ImportModuleAttrString
    - PyObject_CallOneArg
    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:1196,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:1196,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:1197,1
    - Dst: PyObject_Dump
      Src: /src/cpython/Python/pythonrun.c:1198,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:1199,1
    - Dst: PyObject_Dump
      Src: /src/cpython/Python/pythonrun.c:1200,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1201,1
    - Dst: PyObject_Dump
      Src: /src/cpython/Python/pythonrun.c:1205,1
    - Dst: fprintf
      Src: /src/cpython/Python/pythonrun.c:1206,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1210,1
    - Dst: _PyErr_Display
      Src: /src/cpython/Python/pythonrun.c:1213,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - unused
    - value
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1192
    functionDepth: 17
    functionLinenumber: 1192
    functionLinenumberEnd: 1215
    functionName: PyErr_Display
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 3
    functionsReached:
    - PyObject_Dump
    - PySys_GetOptionalAttr
    - _PyErr_Display
    - fprintf
    - PyErr_GetRaisedException
    - Py_DECREF
    - _Py_ID
    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:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1217
    functionDepth: 17
    functionLinenumber: 1217
    functionLinenumberEnd: 1220
    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:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1222
    functionDepth: 18
    functionLinenumber: 1222
    functionLinenumberEnd: 1225
    functionName: PyErr_DisplayException
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - PyErr_Display
    linkageType: ''
    returnType: void
    signature: void PyErr_DisplayException(PyObject *exc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_New
      Src: /src/cpython/Python/pythonrun.c:1236,1
    - Dst: _Py_DECLARE_STR
      Src: /src/cpython/Python/pythonrun.c:1241,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/pythonrun.c:1244,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1246,1
    - Dst: _Py_STR
      Src: /src/cpython/Python/pythonrun.c:1249,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/pythonrun.c:1252,1
    - Dst: _PyParser_ASTFromString
      Src: /src/cpython/Python/pythonrun.c:1256,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1257,1
    - Dst: run_mod
      Src: /src/cpython/Python/pythonrun.c:1260,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1264,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1265,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    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: 1267
      start: 1227
    functionDepth: 9
    functionLinenumber: 1227
    functionLinenumberEnd: 1267
    functionName: _PyRun_StringFlagsWithName
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyDict_GetItemStringRef
    - PyUnicode_FromString
    - _Py_STR
    - _Py_DECLARE_STR
    - run_mod
    - _PyArena_Free
    - PyErr_Clear
    - Py_XDECREF
    - _PyParser_ASTFromString
    - _PyArena_New
    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:1274,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: 1275
      start: 1270
    functionDepth: 10
    functionLinenumber: 1270
    functionLinenumberEnd: 1275
    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:1281,1
    - Dst: _PyParser_ASTFromFile
      Src: /src/cpython/Python/pythonrun.c:1287,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:1291,1
    - Dst: run_mod
      Src: /src/cpython/Python/pythonrun.c:1296,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1301,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: 1304
      start: 1277
    functionDepth: 7
    functionLinenumber: 1277
    functionLinenumberEnd: 1304
    functionName: pyrun_file
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - fclose
    - run_mod
    - _PyArena_Free
    - _PyParser_ASTFromFile
    - _PyArena_New
    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:1311,1
    - Dst: pyrun_file
      Src: /src/cpython/Python/pythonrun.c:1316,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1318,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: 1321
      start: 1307
    functionDepth: 8
    functionLinenumber: 1307
    functionLinenumberEnd: 1321
    functionName: PyRun_FileExFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - pyrun_file
    - PyUnicode_DecodeFSDefault
    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:1327,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1328,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/pythonrun.c:1331,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/pythonrun.c:1332,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1336
    functionName: flush_io_stream
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyFile_Flush
    - PyErr_Clear
    - PySys_GetOptionalAttr
    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:1341,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/pythonrun.c:1342,1
    - Dst: flush_io_stream
      Src: /src/cpython/Python/pythonrun.c:1343,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:1343,1
    - Dst: flush_io_stream
      Src: /src/cpython/Python/pythonrun.c:1344,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/pythonrun.c:1344,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/pythonrun.c:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1338
    functionDepth: 3
    functionLinenumber: 1338
    functionLinenumberEnd: 1346
    functionName: flush_io
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - _PyErr_SetRaisedException
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - flush_io_stream
    - _Py_ID
    linkageType: ''
    returnType: void
    signature: void flush_io(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyAnyDict_Check
      Src: /src/cpython/Python/pythonrun.c:1352,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1353,1
    - Dst: PyDict_ContainsString
      Src: /src/cpython/Python/pythonrun.c:1357,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/pythonrun.c:1362,1
    - Dst: PyEval_EvalCode
      Src: /src/cpython/Python/pythonrun.c:1369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - tstate
    - co
    - globals
    - locals
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1348
    functionDepth: 11
    functionLinenumber: 1348
    functionLinenumberEnd: 1370
    functionName: run_eval_code_obj
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyAnyDict_Check
    - PyDict_ContainsString
    - PyErr_SetString
    - PyDict_SetItemString
    - PyEval_EvalCode
    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:1376,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Python/pythonrun.c:1379,1
    - Dst: PyUnicode_ReadChar
      Src: /src/cpython/Python/pythonrun.c:1380,1
    - Dst: PyUnicode_Substring
      Src: /src/cpython/Python/pythonrun.c:1381,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/pythonrun.c:1385,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1386,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/pythonrun.c:1388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - filename
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1372
    functionDepth: 10
    functionLinenumber: 1372
    functionLinenumberEnd: 1393
    functionName: get_interactive_filename
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyUnicode_ReadChar
    - PyUnicode_FromFormat
    - PyUnicode_Substring
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_interactive_filename(PyObject *filename, Py_ssize_t count)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pythonrun.c:1400,1
    - Dst: get_interactive_filename
      Src: /src/cpython/Python/pythonrun.c:1405,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/pythonrun.c:1408,1
    - Dst: PyDict_GetItemStringRef
      Src: /src/cpython/Python/pythonrun.c:1415,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1417,1
    - Dst: _PyAST_Compile
      Src: /src/cpython/Python/pythonrun.c:1422,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1424,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1427,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/pythonrun.c:1433,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1437,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1438,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/pythonrun.c:1442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1443,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1445,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1446,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/pythonrun.c:1450,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1457,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1459,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1460,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1462,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/pythonrun.c:1467,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1468,1
    - Dst: run_eval_code_obj
      Src: /src/cpython/Python/pythonrun.c:1472,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1473,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    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: 1475
      start: 1395
    functionDepth: 16
    functionLinenumber: 1395
    functionLinenumberEnd: 1475
    functionName: run_mod
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 3
    functionsReached:
    - PyDict_GetItemStringRef
    - Py_INCREF
    - _PyAST_Compile
    - PyCallable_Check
    - PyErr_SetString
    - PyObject_CallFunction
    - _PySys_Audit
    - _PyThreadState_GET
    - Py_XDECREF
    - get_interactive_filename
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - run_eval_code_obj
    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:1481,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Python/pythonrun.c:1487,1
    - Dst: PyImport_GetMagicNumber
      Src: /src/cpython/Python/pythonrun.c:1488,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:1489,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1490,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Python/pythonrun.c:1495,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Python/pythonrun.c:1496,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/cpython/Python/pythonrun.c:1497,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/pythonrun.c:1498,1
    - Dst: PyMarshal_ReadLastObjectFromFile
      Src: /src/cpython/Python/pythonrun.c:1501,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/pythonrun.c:1502,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/pythonrun.c:1503,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1504,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:1508,1
    - Dst: run_eval_code_obj
      Src: /src/cpython/Python/pythonrun.c:1510,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1513,1
    - Dst: fclose
      Src: /src/cpython/Python/pythonrun.c:1516,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - fp
    - globals
    - locals
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1477
    functionDepth: 12
    functionLinenumber: 1477
    functionLinenumberEnd: 1518
    functionName: run_pyc_file
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyCode_Check
    - fclose
    - PyErr_SetString
    - PyImport_GetMagicNumber
    - _PyThreadState_GET
    - PyErr_Occurred
    - Py_XDECREF
    - Py_DECREF
    - PyMarshal_ReadLastObjectFromFile
    - PyMarshal_ReadLongFromFile
    - run_eval_code_obj
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nrun_pyc_file(FILE *fp, PyObject *globals, PyObject *locals,\n
      \            PyCompilerFlags *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CompileStringObjectWithModule
      Src: /src/cpython/Python/pythonrun.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - str
    - filename
    - start
    - flags
    - optimize
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1526
    functionName: Py_CompileStringObject
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - _Py_CompileStringObjectWithModule
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPy_CompileStringObject(const char *str, PyObject *filename,
      int start,\n                       PyCompilerFlags *flags, int optimize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArena_New
      Src: /src/cpython/Python/pythonrun.c:1534,1
    - Dst: _PyParser_ASTFromString
      Src: /src/cpython/Python/pythonrun.c:1538,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1540,1
    - Dst: _PyCompile_AstPreprocess
      Src: /src/cpython/Python/pythonrun.c:1545,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1548,1
    - Dst: PyAST_mod2obj
      Src: /src/cpython/Python/pythonrun.c:1551,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1552,1
    - Dst: _PyAST_Compile
      Src: /src/cpython/Python/pythonrun.c:1555,1
    - Dst: _PyArena_Free
      Src: /src/cpython/Python/pythonrun.c:1556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - str
    - filename
    - start
    - flags
    - optimize
    - module
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1528
    functionDepth: 16
    functionLinenumber: 1528
    functionLinenumberEnd: 1558
    functionName: _Py_CompileStringObjectWithModule
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - _PyAST_Compile
    - PyAST_mod2obj
    - _PyArena_Free
    - _PyCompile_AstPreprocess
    - _PyParser_ASTFromString
    - _PyArena_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_CompileStringObjectWithModule(const char *str, PyObject
      *filename, int start,\n                       PyCompilerFlags *flags, int optimize,
      PyObject *module)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/pythonrun.c:1565,1
    - Dst: Py_CompileStringObject
      Src: /src/cpython/Python/pythonrun.c:1568,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/pythonrun.c:1569,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: 1571
      start: 1560
    functionDepth: 2
    functionLinenumber: 1560
    functionLinenumberEnd: 1571
    functionName: Py_CompileStringExFlags
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - Py_CompileStringObject
    - PyUnicode_DecodeFSDefault
    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:1576,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/pythonrun.c:1579,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/pythonrun.c:1582,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Python/pythonrun.c:1585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1591
    functionName: _PyObject_SupportedAsScript
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyByteArray_Check
    - PyObject_CheckBuffer
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int _PyObject_SupportedAsScript(PyObject *cmd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/pythonrun.c:1601,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/cpython/Python/pythonrun.c:1603,1
    - Dst: PyBytes_Check
      Src: /src/cpython/Python/pythonrun.c:1607,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/pythonrun.c:1608,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/pythonrun.c:1609,1
    - Dst: PyByteArray_Check
      Src: /src/cpython/Python/pythonrun.c:1611,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/cpython/Python/pythonrun.c:1612,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/cpython/Python/pythonrun.c:1613,1
    - Dst: PyObject_GetBuffer
      Src: /src/cpython/Python/pythonrun.c:1615,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/cpython/Python/pythonrun.c:1617,1
    - Dst: PyBuffer_Release
      Src: /src/cpython/Python/pythonrun.c:1619,1
    - Dst: PyBytes_AS_STRING
      Src: /src/cpython/Python/pythonrun.c:1623,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/cpython/Python/pythonrun.c:1624,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/pythonrun.c:1627,1
    - Dst: strlen
      Src: /src/cpython/Python/pythonrun.c:1633,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/pythonrun.c:1634,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/pythonrun.c:1636,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: 1640
      start: 1593
    functionDepth: 5
    functionLinenumber: 1593
    functionLinenumberEnd: 1640
    functionName: _Py_SourceAsString
    functionSourceFile: /src/cpython/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyBuffer_Release
    - PyUnicode_AsUTF8AndSize
    - Py_CLEAR
    - PyByteArray_GET_SIZE
    - PyObject_GetBuffer
    - PyErr_Format
    - PyBytes_AS_STRING
    - strlen
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_SourceAsString(PyObject *cmd, const char *funcname, const char *what, PyCompilerFlags
      *cf, PyObject **cmd_copy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/pythonrun.c:1652,1
    - Dst: _Py_ReachedRecursionLimit
      Src: /src/cpython/Python/pythonrun.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1654
    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:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - name
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1662
    functionDepth: 4
    functionLinenumber: 1662
    functionLinenumberEnd: 1665
    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:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - name
    - closeit
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1669
    functionDepth: 4
    functionLinenumber: 1669
    functionLinenumberEnd: 1672
    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:1678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - name
    - flags
    argTypes:
    - FILE*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1676
    functionDepth: 4
    functionLinenumber: 1676
    functionLinenumberEnd: 1679
    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:1685,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: 1686
      start: 1683
    functionDepth: 9
    functionLinenumber: 1683
    functionLinenumberEnd: 1686
    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:1692,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: 1693
      start: 1690
    functionDepth: 9
    functionLinenumber: 1690
    functionLinenumberEnd: 1693
    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:1700,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: 1701
      start: 1697
    functionDepth: 9
    functionLinenumber: 1697
    functionLinenumberEnd: 1701
    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:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1705
    functionDepth: 18
    functionLinenumber: 1705
    functionLinenumberEnd: 1708
    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:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - p
    - c
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1712
    functionDepth: 18
    functionLinenumber: 1712
    functionLinenumberEnd: 1715
    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:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - str
    - s
    - g
    - l
    argTypes:
    - char*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1720
    functionDepth: 11
    functionLinenumber: 1720
    functionLinenumberEnd: 1723
    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:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1727
    functionDepth: 18
    functionLinenumber: 1727
    functionLinenumberEnd: 1730
    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:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - p
    - s
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1734
    functionDepth: 3
    functionLinenumber: 1734
    functionLinenumberEnd: 1737
    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:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - str
    - p
    - s
    - flags
    argTypes:
    - char*
    - char*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1741
    functionDepth: 3
    functionLinenumber: 1741
    functionLinenumberEnd: 1745
    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:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1749
    functionDepth: 19
    functionLinenumber: 1749
    functionLinenumberEnd: 1752
    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:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1756
    functionDepth: 6
    functionLinenumber: 1756
    functionLinenumberEnd: 1759
    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:
    - (
    - opcode
    - ','
    - kind
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: SPECIALIZATION_FAIL
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPECIALIZATION_FAIL(opcode, kind)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - instruction
    - flags
    argTypes:
    - _Py_CODEUNIT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: fixup_getiter
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fixup_getiter(_Py_CODEUNIT *instruction, int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/specialize.c:68,1
    - Dst: initial_jump_backoff_counter
      Src: /src/cpython/Python/specialize.c:70,1
    - Dst: adaptive_counter_warmup
      Src: /src/cpython/Python/specialize.c:71,1
    - Dst: initial_resume_backoff_counter
      Src: /src/cpython/Python/specialize.c:72,1
    - Dst: initial_unreachable_backoff_counter
      Src: /src/cpython/Python/specialize.c:75,1
    - Dst: initial_unreachable_backoff_counter
      Src: /src/cpython/Python/specialize.c:76,1
    - Dst: initial_unreachable_backoff_counter
      Src: /src/cpython/Python/specialize.c:77,1
    - Dst: fixup_getiter
      Src: /src/cpython/Python/specialize.c:87,1
    - Dst: fixup_getiter
      Src: /src/cpython/Python/specialize.c:117,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - instructions
    - size
    - enable_counters
    - flags
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 122
    functionName: _PyCode_Quicken
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 2
    functionsReached:
    - fixup_getiter
    - _PyThreadState_GET
    - adaptive_counter_warmup
    - initial_jump_backoff_counter
    - initial_resume_backoff_counter
    - initial_unreachable_backoff_counter
    linkageType: ''
    returnType: void
    signature: void _PyCode_Quicken(_Py_CODEUNIT *instructions, Py_ssize_t size, int
      enable_counters, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_uint8_relaxed
      Src: /src/cpython/Python/specialize.c:328,1
    - Dst: _Py_atomic_compare_exchange_uint8
      Src: /src/cpython/Python/specialize.c:333,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:335,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: 334
        line_start: 334
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 343
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 343
    functionName: set_opcode
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_atomic_compare_exchange_uint8
    - _Py_atomic_load_uint8_relaxed
    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:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - counter
    - value
    argTypes:
    - _Py_BackoffCounter*
    - _Py_BackoffCounter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 350
    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:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counter
    argTypes:
    - _Py_BackoffCounter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 359
    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:364,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/specialize.c:364,1
    - Dst: set_opcode
      Src: /src/cpython/Python/specialize.c:365,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/specialize.c:366,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:367,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/specialize.c:371,1
    - Dst: set_counter
      Src: /src/cpython/Python/specialize.c:372,1
    - Dst: adaptive_counter_cooldown
      Src: /src/cpython/Python/specialize.c:372,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: 363
        line_start: 363
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: specialize
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - STAT_INC
    - adaptive_counter_cooldown
    - set_opcode
    - SPECIALIZATION_FAIL
    - PyErr_Occurred
    - assert
    - set_counter
    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:378,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/specialize.c:378,1
    - Dst: FT_ATOMIC_LOAD_UINT8_RELAXED
      Src: /src/cpython/Python/specialize.c:379,1
    - Dst: STAT_INC
      Src: /src/cpython/Python/specialize.c:381,1
    - Dst: set_opcode
      Src: /src/cpython/Python/specialize.c:382,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:383,1
    - Dst: load_counter
      Src: /src/cpython/Python/specialize.c:387,1
    - Dst: set_counter
      Src: /src/cpython/Python/specialize.c:388,1
    - Dst: adaptive_counter_backoff
      Src: /src/cpython/Python/specialize.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - instr
    argTypes:
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: unspecialize
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - STAT_INC
    - adaptive_counter_backoff
    - set_opcode
    - SPECIALIZATION_FAIL
    - PyErr_Occurred
    - assert
    - set_counter
    - FT_ATOMIC_LOAD_UINT8_RELAXED
    - load_counter
    linkageType: ''
    returnType: void
    signature: void unspecialize(_Py_CODEUNIT *instr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/specialize.c:399,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/cpython/Python/specialize.c:399,1
    - Dst: PyUnstable_Object_EnableDeferredRefcount
      Src: /src/cpython/Python/specialize.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 406
    functionName: maybe_enable_deferred_ref_count
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyUnstable_Object_EnableDeferredRefcount
    - _PyObject_GC_IS_TRACKED
    - _Py_IsOwnedByCurrentThread
    linkageType: ''
    returnType: void
    signature: void maybe_enable_deferred_ref_count(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:415,1
    - Dst: _PyDict_LookupIndexAndValue
      Src: /src/cpython/Python/specialize.c:419,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/specialize.c:420,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:421,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:424,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:426,1
    - Dst: _PyDict_GetKeysVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:432,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:433,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:435,1
    - Dst: maybe_enable_deferred_ref_count
      Src: /src/cpython/Python/specialize.c:439,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:441,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - dict
    - instr
    - name
    argTypes:
    - PyDictObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (index != DKIX_ERROR)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 445
      start: 410
    functionDepth: 6
    functionLinenumber: 410
    functionLinenumberEnd: 445
    functionName: specialize_module_load_attr_lock_held
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - write_u32
    - _PyDict_LookupIndexAndValue
    - _PyInterpreterState_GET
    - specialize
    - PyLazyImport_CheckExact
    - SPECIALIZATION_FAIL
    - assert
    - maybe_enable_deferred_ref_count
    - _PyDict_GetKeysVersionForCurrentState
    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:452,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:452,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:455,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:459,1
    - Dst: specialize_module_load_attr_lock_held
      Src: /src/cpython/Python/specialize.c:460,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:461,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: 451
        line_start: 451
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 463
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 463
    functionName: specialize_module_load_attr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - specialize_module_load_attr_lock_held
    - SPECIALIZATION_FAIL
    - assert
    - Py_TYPE
    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:469,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:470,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:472,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:473,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:475,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:478,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:479,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:483,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:486,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: 472
        line_start: 472
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 487
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 487
    functionName: _Py_Specialize_LoadSuperAttr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - PyType_Check
    - unspecialize
    - specialize
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_AsPyObjectBorrow
    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:513,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:538,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:541,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - descriptor
    - has_getattr
    argTypes:
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 547
    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:552,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/specialize.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - descriptor
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 554
    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:570,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:571,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:573,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/specialize.c:576,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:576,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:580,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:587,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:599,1
    - Dst: FT_ATOMIC_LOAD_UINT_RELAXED
      Src: /src/cpython/Python/specialize.c:603,1
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:607,1
    - Dst: descriptor_is_class
      Src: /src/cpython/Python/specialize.c:610,1
    - Dst: classify_descriptor
      Src: /src/cpython/Python/specialize.c:613,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: 614
      start: 556
    functionDepth: 4
    functionLinenumber: 556
    functionLinenumberEnd: 614
    functionName: analyze_descriptor_load
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyType_Lookup
    - Py_IS_TYPE
    - classify_descriptor
    - FT_ATOMIC_LOAD_UINT_RELAXED
    - _PyInterpreterState_GET
    - descriptor_is_class
    - _PyType_LookupRefAndVersion
    - Py_XDECREF
    - Py_DECREF
    - _Py_ID
    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:623,1
    - Dst: descriptor_is_class
      Src: /src/cpython/Python/specialize.c:625,1
    - Dst: classify_descriptor
      Src: /src/cpython/Python/specialize.c:628,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: 629
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 629
    functionName: analyze_descriptor_store
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - descriptor_is_class
    - classify_descriptor
    - _PyType_LookupRefAndVersion
    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:639,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:639,1
    - Dst: _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
      Src: /src/cpython/Python/specialize.c:640,1
    - Dst: _PyDictKeys_StringLookupSplit
      Src: /src/cpython/Python/specialize.c:641,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:642,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:644,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:647,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:648,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/specialize.c:648,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/specialize.c:649,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:652,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:656,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:657,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: 638
        line_start: 638
        source_file: /src/cpython/Python/specialize.c
    - condition: (index != DKIX_ERROR)
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/cpython/Python/specialize.c
    - condition: (index >= 0)
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyObject_InlineValues(owner)->valid)
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 659
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 659
    functionName: specialize_dict_access_inline
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyDictKeys_StringLookupSplit
    - PyUnicode_CheckExact
    - write_u32
    - specialize
    - SPECIALIZATION_FAIL
    - assert
    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:669,1
    - Dst: _PyDict_EnsureSharedOnRead
      Src: /src/cpython/Python/specialize.c:671,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/cpython/Python/specialize.c:675,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:676,1
    - Dst: _PyDict_LookupIndex
      Src: /src/cpython/Python/specialize.c:679,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:681,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:688,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:689,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: 691
      start: 661
    functionDepth: 7
    functionLinenumber: 661
    functionLinenumberEnd: 691
    functionName: specialize_dict_access_hint
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED
    - _PyDict_EnsureSharedOnRead
    - write_u32
    - specialize
    - SPECIALIZATION_FAIL
    - _PyDict_HasSplitTable
    - _PyDict_LookupIndex
    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:700,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:705,1
    - Dst: FT_ATOMIC_LOAD_UINT8
      Src: /src/cpython/Python/specialize.c:709,1
    - Dst: _PyObject_InlineValues
      Src: /src/cpython/Python/specialize.c:709,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/specialize.c:710,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:713,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/specialize.c:714,1
    - Dst: specialize_dict_access_inline
      Src: /src/cpython/Python/specialize.c:717,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:722,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:725,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/specialize.c:729,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:730,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:731,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:735,1
    - Dst: specialize_dict_access_hint
      Src: /src/cpython/Python/specialize.c:737,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:739,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: 701
        line_start: 699
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 742
      start: 694
    functionDepth: 8
    functionLinenumber: 694
    functionLinenumberEnd: 742
    functionName: specialize_dict_access
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyObject_InlineValues
    - _PyObject_GetManagedDict
    - specialize_dict_access_hint
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - specialize_dict_access_inline
    - SPECIALIZATION_FAIL
    - assert
    - PyDict_CheckExact
    - FT_ATOMIC_LOAD_UINT8
    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:760,1
    - Dst: _PyDictKeys_StringLookupAndVersion
      Src: /src/cpython/Python/specialize.c:767,1
    - Dst: _PyObject_GetManagedDict
      Src: /src/cpython/Python/specialize.c:770,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:771,1
    - Dst: Py_BEGIN_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:775,1
    - Dst: _PyDict_LookupIndex
      Src: /src/cpython/Python/specialize.c:780,1
    - Dst: Py_END_CRITICAL_SECTION
      Src: /src/cpython/Python/specialize.c:782,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: 784
      start: 757
    functionDepth: 7
    functionLinenumber: 757
    functionLinenumberEnd: 784
    functionName: instance_has_key
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetManagedDict
    - Py_END_CRITICAL_SECTION
    - Py_BEGIN_CRITICAL_SECTION
    - _PyDictKeys_StringLookupAndVersion
    - _PyDict_LookupIndex
    - PyDict_CheckExact
    - Py_TYPE
    linkageType: ''
    returnType: bool
    signature: bool instance_has_key(PyObject *obj, PyObject *name, uint32_t *shared_keys_version)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:792,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:794,1
    - Dst: FT_ATOMIC_LOAD_UINT8_RELAXED
      Src: /src/cpython/Python/specialize.c:797,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:800,1
    - Dst: specialize_attr_loadclassattr
      Src: /src/cpython/Python/specialize.c:808,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:817,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:823,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:823,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:826,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:829,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:830,1
    - Dst: function_check_args
      Src: /src/cpython/Python/specialize.c:833,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:837,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Python/specialize.c:841,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:841,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:842,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/specialize.c:846,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:847,1
    - Dst: function_get_version
      Src: /src/cpython/Python/specialize.c:851,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:855,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:856,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:857,1
    - Dst: write_ptr
      Src: /src/cpython/Python/specialize.c:859,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:860,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:868,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:869,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:873,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:877,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:881,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:884,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:885,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:887,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:888,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:894,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:896,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:897,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:901,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:904,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:907,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:911,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:911,1
    - Dst: function_check_args
      Src: /src/cpython/Python/specialize.c:913,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:917,1
    - Dst: function_get_version
      Src: /src/cpython/Python/specialize.c:920,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Python/specialize.c:925,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:925,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:926,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/specialize.c:930,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:931,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:935,1
    - Dst: write_ptr
      Src: /src/cpython/Python/specialize.c:937,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:938,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:939,1
    - Dst: specialize_attr_loadclassattr
      Src: /src/cpython/Python/specialize.c:954,1
    - Dst: set_counter
      Src: /src/cpython/Python/specialize.c:965,1
    - Dst: adaptive_counter_cooldown
      Src: /src/cpython/Python/specialize.c:965,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/specialize.c:968,1
    - Dst: specialize_dict_access
      Src: /src/cpython/Python/specialize.c:970,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 159
    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: (Py_TYPE(descr) == &PyProperty_Type)
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/cpython/Python/specialize.c
    - condition: (dmem->type == Py_T_OBJECT_EX || dmem->type == _Py_T_OBJECT)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/cpython/Python/specialize.c
    - condition: (offset > 0)
      pos:
        line_end: 884
        line_start: 884
        source_file: /src/cpython/Python/specialize.c
    - condition: (tp_version != 0)
      pos:
        line_end: 854
        line_start: 854
        source_file: /src/cpython/Python/specialize.c
    - condition: (Py_IS_TYPE(descr, &PyFunction_Type))
      pos:
        line_end: 910
        line_start: 910
        source_file: /src/cpython/Python/specialize.c
    - condition: (offset == (uint16_t)offset)
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 976
      start: 786
    functionDepth: 9
    functionLinenumber: 786
    functionLinenumberEnd: 976
    functionName: do_specialize_instance_load_attr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - SPECIALIZATION_FAIL
    - assert
    - _PyInterpreterState_IsSpecializationEnabled
    - set_counter
    - Py_TYPE
    - write_ptr
    - function_get_version
    - Py_UNREACHABLE
    - adaptive_counter_cooldown
    - PyObject_TypeCheck
    - function_check_args
    - _PyObject_HasDeferredRefcount
    - Py_IS_TYPE
    - write_u32
    - specialize
    - FT_ATOMIC_LOAD_UINT8_RELAXED
    - specialize_attr_loadclassattr
    - specialize_dict_access
    - _PyInterpreterState_GET
    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:983,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:986,1
    - Dst: analyze_descriptor_load
      Src: /src/cpython/Python/specialize.c:987,1
    - Dst: do_specialize_instance_load_attr
      Src: /src/cpython/Python/specialize.c:988,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - owner
    - instr
    - name
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 978
    functionDepth: 10
    functionLinenumber: 978
    functionLinenumberEnd: 991
    functionName: specialize_instance_load_attr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - analyze_descriptor_load
    - do_specialize_instance_load_attr
    - instance_has_key
    - Py_XDECREF
    - 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:996,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:998,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:999,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1000,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Python/specialize.c:1002,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1006,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1009,1
    - Dst: specialize_module_load_attr
      Src: /src/cpython/Python/specialize.c:1010,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:1012,1
    - Dst: specialize_class_load_attr
      Src: /src/cpython/Python/specialize.c:1013,1
    - Dst: specialize_instance_load_attr
      Src: /src/cpython/Python/specialize.c:1016,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - owner_st
    - instr
    - name
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[LOAD_ATTR] == INLINE_CACHE_ENTRIES_LOAD_ATTR)
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1022
      start: 993
    functionDepth: 11
    functionLinenumber: 993
    functionLinenumberEnd: 1022
    functionName: _Py_Specialize_LoadAttr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - specialize_class_load_attr
    - _PyType_IsReady
    - PyType_Check
    - unspecialize
    - specialize_module_load_attr
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - specialize_instance_load_attr
    - Py_TYPE
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_LoadAttr(_PyStackRef owner_st, _Py_CODEUNIT
      *instr, PyObject *name)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:1027,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1029,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1030,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1033,1
    - Dst: _PyType_IsReady
      Src: /src/cpython/Python/specialize.c:1034,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1038,1
    - Dst: PyModule_CheckExact
      Src: /src/cpython/Python/specialize.c:1041,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1042,1
    - Dst: analyze_descriptor_store
      Src: /src/cpython/Python/specialize.c:1046,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1050,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1053,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1056,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1059,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:1066,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1067,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1071,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1075,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1079,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1082,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1083,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1085,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1086,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1091,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1094,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1098,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1101,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1104,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1107,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1110,1
    - Dst: specialize_dict_access
      Src: /src/cpython/Python/specialize.c:1113,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1120,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1121,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1124,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 105
    argCount: 3
    argNames:
    - owner_st
    - instr
    - name
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (_PyOpcode_Caches[STORE_ATTR] == INLINE_CACHE_ENTRIES_STORE_ATTR)
      pos:
        line_end: 1029
        line_start: 1029
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 1028
        line_start: 1028
        source_file: /src/cpython/Python/specialize.c
    - condition: (dmem->type == Py_T_OBJECT_EX || dmem->type == _Py_T_OBJECT)
      pos:
        line_end: 1081
        line_start: 1081
        source_file: /src/cpython/Python/specialize.c
    - condition: (offset > 0)
      pos:
        line_end: 1082
        line_start: 1082
        source_file: /src/cpython/Python/specialize.c
    - condition: (descr != NULL || kind == ABSENT || kind == GETSET_OVERRIDDEN)
      pos:
        line_end: 1049
        line_start: 1049
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1126
      start: 1024
    functionDepth: 9
    functionLinenumber: 1024
    functionLinenumberEnd: 1126
    functionName: _Py_Specialize_StoreAttr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - PyObject_TypeCheck
    - _PyType_IsReady
    - specialize_dict_access
    - unspecialize
    - analyze_descriptor_store
    - write_u32
    - specialize
    - SPECIALIZATION_FAIL
    - Py_XDECREF
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyModule_CheckExact
    - Py_TYPE
    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:1161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - kind
    argTypes:
    - DescriptorClassification
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1162
    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: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1169,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:1169,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1172,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1173,1
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:1177,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1177,1
    - Dst: classify_descriptor
      Src: /src/cpython/Python/specialize.c:1178,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1179,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1189,1
    - Dst: analyze_descriptor_load
      Src: /src/cpython/Python/specialize.c:1195,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1197,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1198,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1202,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1205,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1206,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1214,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1215,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1216,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1219,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1219,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1220,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1221,1
    - Dst: maybe_enable_deferred_ref_count
      Src: /src/cpython/Python/specialize.c:1228,1
    - Dst: write_ptr
      Src: /src/cpython/Python/specialize.c:1230,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1232,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1233,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1234,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1237,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1238,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1240,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1244,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1245,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1249,1
    - Dst: load_attr_fail_kind
      Src: /src/cpython/Python/specialize.c:1249,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 3
    argNames:
    - owner
    - instr
    - name
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(owner))
      pos:
        line_end: 1168
        line_start: 1168
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1253
      start: 1165
    functionDepth: 5
    functionLinenumber: 1165
    functionLinenumberEnd: 1253
    functionName: specialize_class_load_attr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - analyze_descriptor_load
    - write_ptr
    - PyType_Check
    - classify_descriptor
    - load_attr_fail_kind
    - write_u32
    - specialize
    - _PyType_LookupRefAndVersion
    - SPECIALIZATION_FAIL
    - assert
    - Py_XDECREF
    - maybe_enable_deferred_ref_count
    - Py_TYPE
    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:1266,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1268,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1269,1
    - Dst: _PyObject_HasDeferredRefcount
      Src: /src/cpython/Python/specialize.c:1272,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1273,1
    - Dst: PyType_GetFlags
      Src: /src/cpython/Python/specialize.c:1278,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1281,1
    - Dst: _PyDictKeys_StringLookup
      Src: /src/cpython/Python/specialize.c:1281,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1285,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1288,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1289,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1299,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1304,1
    - Dst: FT_ATOMIC_LOAD_PTR_ACQUIRE
      Src: /src/cpython/Python/specialize.c:1308,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1310,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1317,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1319,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1322,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1340,1
    - Dst: write_ptr
      Src: /src/cpython/Python/specialize.c:1341,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: (((uint16_t)dictoffset) == dictoffset)
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/cpython/Python/specialize.c
    - condition: ((is_method && kind == METHOD) || (!is_method && kind == NON_DESCRIPTOR))
      pos:
        line_end: 1268
        line_start: 1268
        source_file: /src/cpython/Python/specialize.c
    - condition: "(_PyDictKeys_StringLookup(\n                   ((PyHeapTypeObject
        *)owner_cls)->ht_cached_keys, name) < 0)"
      pos:
        line_end: 1281
        line_start: 1280
        source_file: /src/cpython/Python/specialize.c
    - condition: (descr != NULL)
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1343
      start: 1258
    functionDepth: 4
    functionLinenumber: 1258
    functionLinenumberEnd: 1343
    functionName: specialize_attr_loadclassattr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - _PyObject_HasDeferredRefcount
    - write_ptr
    - _PyDictKeys_StringLookup
    - PyType_GetFlags
    - write_u32
    - specialize
    - FT_ATOMIC_LOAD_PTR_ACQUIRE
    - SPECIALIZATION_FAIL
    - assert
    - Py_TYPE
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1350,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1351,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1354,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:1354,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:1355,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1356,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1361,1
    - Dst: _PyDict_LookupIndexAndValue
      Src: /src/cpython/Python/specialize.c:1365,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1367,1
    - Dst: PyLazyImport_CheckExact
      Src: /src/cpython/Python/specialize.c:1370,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1371,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1374,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1377,1
    - Dst: _PyDict_GetKeysVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1380,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1383,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1387,1
    - Dst: maybe_enable_deferred_ref_count
      Src: /src/cpython/Python/specialize.c:1391,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1395,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:1398,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1399,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1404,1
    - Dst: _PyDictKeys_StringLookup
      Src: /src/cpython/Python/specialize.c:1407,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1409,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1413,1
    - Dst: _PyDict_GetKeysVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1416,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1419,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1423,1
    - Dst: _PyDict_GetKeysVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1426,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1429,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1433,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1439,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1442,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 4
    argNames:
    - globals
    - builtins
    - instr
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - _Py_CODEUNIT*
    - PyObject*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 1349
        line_start: 1349
        source_file: /src/cpython/Python/specialize.c
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[LOAD_GLOBAL] == INLINE_CACHE_ENTRIES_LOAD_GLOBAL)
      pos:
        line_end: 1350
        line_start: 1350
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1443
      start: 1345
    functionDepth: 6
    functionLinenumber: 1345
    functionLinenumberEnd: 1443
    functionName: specialize_load_global_lock_held
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyDictKeys_StringLookup
    - unspecialize
    - PyUnicode_CheckExact
    - specialize
    - _PyDict_LookupIndexAndValue
    - _PyInterpreterState_GET
    - SPECIALIZATION_FAIL
    - PyLazyImport_CheckExact
    - assert
    - PyDict_CheckExact
    - maybe_enable_deferred_ref_count
    - _PyDict_GetKeysVersionForCurrentState
    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:1450,1
    - Dst: specialize_load_global_lock_held
      Src: /src/cpython/Python/specialize.c:1451,1
    - Dst: Py_END_CRITICAL_SECTION2
      Src: /src/cpython/Python/specialize.c:1452,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: 1453
      start: 1445
    functionDepth: 7
    functionLinenumber: 1445
    functionLinenumberEnd: 1453
    functionName: _Py_Specialize_LoadGlobal
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - Py_BEGIN_CRITICAL_SECTION2
    - Py_END_CRITICAL_SECTION2
    - specialize_load_global_lock_held
    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: 1465
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1465
    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:1471,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1471,1
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:1474,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1476,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1480,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: 1470
        line_start: 1470
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1484
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1484
    functionName: function_check_args
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - Py_IS_TYPE
    - function_kind
    - SPECIALIZATION_FAIL
    - assert
    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:1490,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1490,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1492,1
    - Dst: _PyFunction_IsVersionValid
      Src: /src/cpython/Python/specialize.c:1493,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1494,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: 1489
        line_start: 1489
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1498
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1498
    functionName: function_get_version
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 1
    functionsReached:
    - _PyFunction_GetVersionForCurrentState
    - Py_IS_TYPE
    - SPECIALIZATION_FAIL
    - assert
    - _PyFunction_IsVersionValid
    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:1504,1
    - Dst: PyObject_CheckBuffer
      Src: /src/cpython/Python/specialize.c:1510,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1511,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:1511,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:1514,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1515,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:1518,1
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Python/specialize.c:1525,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1526,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:1529,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1537,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:1540,1
    - Dst: _PyType_Lookup
      Src: /src/cpython/Python/specialize.c:1549,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:1549,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1550,1
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:1553,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - container
    - sub
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1501
    functionDepth: 3
    functionLinenumber: 1501
    functionLinenumberEnd: 1562
    functionName: store_subscr_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - strcmp
    - _PyType_Lookup
    - _PyLong_IsNonNegativeCompact
    - PyLong_CheckExact
    - _Py_ID
    - function_kind
    - PyByteArray_CheckExact
    - PyObject_CheckBuffer
    - Py_TYPE
    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:1568,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:1569,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1571,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1572,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1574,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:1575,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/specialize.c:1576,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1578,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1582,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1583,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:1587,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1588,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1589,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1593,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1594,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1601,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1604,1
    - Dst: store_subscr_fail_kind
      Src: /src/cpython/Python/specialize.c:1604,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1605,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - container_st
    - sub_st
    - instr
    argTypes:
    - _PyStackRef
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 1570
        line_start: 1570
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1606
      start: 1565
    functionDepth: 4
    functionLinenumber: 1565
    functionLinenumberEnd: 1606
    functionName: _Py_Specialize_StoreSubscr
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - PySlice_Check
    - _PyLong_IsNonNegativeCompact
    - unspecialize
    - store_subscr_fail_kind
    - specialize
    - PyLong_CheckExact
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_GET_SIZE
    - Py_TYPE
    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:1612,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1614,1
    - Dst: PyType_GetFlags
      Src: /src/cpython/Python/specialize.c:1617,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1620,1
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:1623,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:1623,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:1624,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1625,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1626,1
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:1629,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/specialize.c:1629,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1631,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:1632,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: 1611
        line_start: 1611
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1636
      start: 1609
    functionDepth: 2
    functionLinenumber: 1609
    functionLinenumberEnd: 1636
    functionName: get_init_for_simple_managed_python_class
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyFunction_GET_CODE
    - PyFunction_Check
    - PyType_GetFlags
    - _PyType_LookupRefAndVersion
    - SPECIALIZATION_FAIL
    - assert
    - Py_XDECREF
    - function_kind
    - Py_DECREF
    - _Py_ID
    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:1641,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:1641,1
    - Dst: _PyType_CAST
      Src: /src/cpython/Python/specialize.c:1642,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1647,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1651,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1655,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1660,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1665,1
    - Dst: get_init_for_simple_managed_python_class
      Src: /src/cpython/Python/specialize.c:1670,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1672,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1673,1
    - Dst: _PyType_CacheInitForSpecialization
      Src: /src/cpython/Python/specialize.c:1676,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1679,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1680,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:1681,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:1684,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1687,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: 1640
        line_start: 1640
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1689
      start: 1638
    functionDepth: 3
    functionLinenumber: 1638
    functionLinenumberEnd: 1689
    functionName: specialize_class_call
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyType_Check
    - _PyType_CAST
    - _PyType_CacheInitForSpecialization
    - specialize
    - write_u32
    - get_init_for_simple_managed_python_class
    - SPECIALIZATION_FAIL
    - Py_XDECREF
    - assert
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int specialize_class_call(PyObject *callable, _Py_CODEUNIT *instr,
      int nargs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1700,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1703,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1708,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1711,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1715,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:1716,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1717,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1721,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1725,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1729,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1733,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 4
    argNames:
    - descr
    - self_or_null
    - instr
    - nargs
    argTypes:
    - PyMethodDescrObject*
    - PyObject*
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (self_or_null != NULL)
      pos:
        line_end: 1714
        line_start: 1714
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1735
      start: 1691
    functionDepth: 3
    functionLinenumber: 1691
    functionLinenumberEnd: 1735
    functionName: specialize_method_descriptor
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - specialize
    - _PyInterpreterState_GET
    - SPECIALIZATION_FAIL
    - assert
    - PyList_CheckExact
    linkageType: ''
    returnType: int
    signature: "int specialize_method_descriptor(PyMethodDescrObject *descr, PyObject
      *self_or_null,\n                             _Py_CODEUNIT *instr, int nargs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:1743,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Python/specialize.c:1745,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1745,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1746,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1750,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1755,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1761,1
    - Dst: _PyFunction_IsVersionValid
      Src: /src/cpython/Python/specialize.c:1762,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1763,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1766,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1775,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - func
    - instr
    - nargs
    - bound_method
    argTypes:
    - PyFunctionObject*
    - _Py_CODEUNIT*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1737
    functionDepth: 3
    functionLinenumber: 1737
    functionLinenumberEnd: 1777
    functionName: specialize_py_call
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyFunction_GetVersionForCurrentState
    - write_u32
    - _PyInterpreterState_IsSpecializationEnabled
    - _PyInterpreterState_GET
    - specialize
    - SPECIALIZATION_FAIL
    - function_kind
    - _PyFunction_IsVersionValid
    linkageType: ''
    returnType: int
    signature: "int specialize_py_call(PyFunctionObject *func, _Py_CODEUNIT *instr,
      int nargs,\n                   bool bound_method)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:1786,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Python/specialize.c:1788,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1788,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1789,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1793,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1797,1
    - Dst: _PyFunction_GetVersionForCurrentState
      Src: /src/cpython/Python/specialize.c:1800,1
    - Dst: _PyFunction_IsVersionValid
      Src: /src/cpython/Python/specialize.c:1801,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1802,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:1805,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - func
    - instr
    - nargs
    - bound_method
    argTypes:
    - PyFunctionObject*
    - _Py_CODEUNIT*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1780
    functionDepth: 3
    functionLinenumber: 1780
    functionLinenumberEnd: 1808
    functionName: specialize_py_call_kw
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - _PyFunction_GetVersionForCurrentState
    - write_u32
    - _PyInterpreterState_IsSpecializationEnabled
    - _PyInterpreterState_GET
    - specialize
    - SPECIALIZATION_FAIL
    - function_kind
    - _PyFunction_IsVersionValid
    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:1813,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1814,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/cpython/Python/specialize.c:1817,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1822,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1826,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1828,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1831,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:1837,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1839,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1843,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1847,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1851,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - callable
    - instr
    - nargs
    argTypes:
    - PyObject*
    - _Py_CODEUNIT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1810
    functionDepth: 3
    functionLinenumber: 1810
    functionLinenumberEnd: 1854
    functionName: specialize_c_call
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GET_FUNCTION
    - specialize
    - _PyInterpreterState_GET
    - PyCFunction_GET_FLAGS
    - SPECIALIZATION_FAIL
    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:1859,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1861,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1862,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1863,1
    - Dst: _Py_OPCODE
      Src: /src/cpython/Python/specialize.c:1863,1
    - Dst: PyCFunction_CheckExact
      Src: /src/cpython/Python/specialize.c:1865,1
    - Dst: specialize_c_call
      Src: /src/cpython/Python/specialize.c:1866,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:1868,1
    - Dst: specialize_py_call
      Src: /src/cpython/Python/specialize.c:1869,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:1871,1
    - Dst: specialize_class_call
      Src: /src/cpython/Python/specialize.c:1872,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1874,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:1875,1
    - Dst: specialize_method_descriptor
      Src: /src/cpython/Python/specialize.c:1876,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/specialize.c:1879,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:1881,1
    - Dst: specialize_py_call
      Src: /src/cpython/Python/specialize.c:1882,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1885,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1890,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1894,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - callable_st
    - self_or_null_st
    - instr
    - nargs
    argTypes:
    - _PyStackRef
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (_Py_OPCODE(*instr) != INSTRUMENTED_CALL)
      pos:
        line_end: 1862
        line_start: 1862
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 1860
        line_start: 1860
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[CALL] == INLINE_CACHE_ENTRIES_CALL)
      pos:
        line_end: 1861
        line_start: 1861
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1896
      start: 1856
    functionDepth: 4
    functionLinenumber: 1856
    functionLinenumberEnd: 1896
    functionName: _Py_Specialize_Call
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - PyCFunction_CheckExact
    - specialize_method_descriptor
    - PyFunction_Check
    - PyType_Check
    - Py_IS_TYPE
    - unspecialize
    - specialize_py_call
    - specialize
    - specialize_c_call
    - _Py_OPCODE
    - SPECIALIZATION_FAIL
    - PyMethod_Check
    - assert
    - PyStackRef_AsPyObjectBorrow
    - specialize_class_call
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_Call(_PyStackRef callable_st, _PyStackRef
      self_or_null_st, _Py_CODEUNIT *instr, int nargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:1901,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1903,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1904,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:1905,1
    - Dst: _Py_OPCODE
      Src: /src/cpython/Python/specialize.c:1905,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:1907,1
    - Dst: specialize_py_call_kw
      Src: /src/cpython/Python/specialize.c:1908,1
    - Dst: PyMethod_Check
      Src: /src/cpython/Python/specialize.c:1910,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/specialize.c:1912,1
    - Dst: specialize_py_call_kw
      Src: /src/cpython/Python/specialize.c:1913,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:1916,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:1921,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:1925,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - callable_st
    - instr
    - nargs
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (_Py_OPCODE(*instr) != INSTRUMENTED_CALL_KW)
      pos:
        line_end: 1904
        line_start: 1904
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[CALL_KW] == INLINE_CACHE_ENTRIES_CALL_KW)
      pos:
        line_end: 1903
        line_start: 1903
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 1902
        line_start: 1902
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 1927
      start: 1898
    functionDepth: 4
    functionLinenumber: 1898
    functionLinenumberEnd: 1927
    functionName: _Py_Specialize_CallKw
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - PyFunction_Check
    - unspecialize
    - specialize_py_call_kw
    - specialize
    - _Py_OPCODE
    - SPECIALIZATION_FAIL
    - PyMethod_Check
    - assert
    - PyStackRef_AsPyObjectBorrow
    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:1936,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1936,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1942,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1942,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1945,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1960,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1960,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1966,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1966,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:1969,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1984,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1984,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1990,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1990,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/specialize.c:1993,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/specialize.c:1999,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:1999,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2002,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:2007,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2008,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:2008,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:2011,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/specialize.c:2015,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2016,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:2016,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:2019,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:2023,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2024,1
    - Dst: _PyLong_IsNonNegativeCompact
      Src: /src/cpython/Python/specialize.c:2024,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:2027,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2032,1
    - Dst: _PyType_LookupRefAndVersion
      Src: /src/cpython/Python/specialize.c:2033,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/specialize.c:2033,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2034,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2036,1
    - Dst: function_kind
      Src: /src/cpython/Python/specialize.c:2041,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2043,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2047,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Python/specialize.c:2051,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2051,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/specialize.c:2053,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/specialize.c:2057,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:2059,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:2063,1
    - Dst: PyObject_TypeCheck
      Src: /src/cpython/Python/specialize.c:2067,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2071,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2075,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2079,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2083,1
    - Dst: _PyType_Name
      Src: /src/cpython/Python/specialize.c:2083,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2087,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2091,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2095,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2099,1
    - Dst: strcmp
      Src: /src/cpython/Python/specialize.c:2103,1
    - Dst: PySlice_Check
      Src: /src/cpython/Python/specialize.c:2107,1
    - Dst: Py_UNREACHABLE
      Src: /src/cpython/Python/specialize.c:2112,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 160
    argCount: 3
    argNames:
    - oparg
    - lhs
    - rhs
    argTypes:
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 1930
    functionDepth: 2
    functionLinenumber: 1930
    functionLinenumberEnd: 2113
    functionName: binary_op_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PySlice_Check
    - strcmp
    - _PyLong_IsNonNegativeCompact
    - _PyType_LookupRefAndVersion
    - _PyInterpreterState_IsSpecializationEnabled
    - Py_TYPE
    - Py_UNREACHABLE
    - PyFloat_CheckExact
    - Py_XDECREF
    - _PyType_Name
    - PyTuple_CheckExact
    - PyObject_TypeCheck
    - Py_IS_TYPE
    - PyLong_CheckExact
    - Py_DECREF
    - function_kind
    - PyUnicode_CheckExact
    - _PyInterpreterState_GET
    - PyList_CheckExact
    - _Py_ID
    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:2123,1
    - Dst: _PyLong_IsCompact
      Src: /src/cpython/Python/specialize.c:2124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2125
    functionName: is_compactlong
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - _PyLong_IsCompact
    linkageType: ''
    returnType: int
    signature: int is_compactlong(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - NAME
    - ','
    - REPEAT
    - ','
    - SEQ
    - ','
    - COUNT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2137
    functionName: SEQ_INT_MULTIPLY_ACTION
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEQ_INT_MULTIPLY_ACTION(NAME, REPEAT, SEQ, COUNT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_compactlong
      Src: /src/cpython/Python/specialize.c:2148,1
    - Dst: is_compactlong
      Src: /src/cpython/Python/specialize.c:2148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2145
    functionDepth: 2
    functionLinenumber: 2145
    functionLinenumberEnd: 2149
    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: 2159
      start: 2151
    functionDepth: 0
    functionLinenumber: 2151
    functionLinenumberEnd: 2159
    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:2545,1
    - Dst: PyIter_Check
      Src: /src/cpython/Python/specialize.c:2548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2542
    functionDepth: 2
    functionLinenumber: 2542
    functionLinenumberEnd: 2552
    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:2558,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2560,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2561,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/specialize.c:2563,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/specialize.c:2564,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2565,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2566,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/cpython/Python/specialize.c:2569,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2570,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2573,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:2576,1
    - Dst: PyList_GET_SIZE
      Src: /src/cpython/Python/specialize.c:2577,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2578,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2579,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2582,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2585,1
    - Dst: unpack_sequence_fail_kind
      Src: /src/cpython/Python/specialize.c:2585,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - seq_st
    - instr
    - oparg
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: "(_PyOpcode_Caches[UNPACK_SEQUENCE] ==\n           INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE)"
      pos:
        line_end: 2561
        line_start: 2560
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 2559
        line_start: 2559
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2587
      start: 2555
    functionDepth: 3
    functionLinenumber: 2555
    functionLinenumberEnd: 2587
    functionName: _Py_Specialize_UnpackSequence
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - unpack_sequence_fail_kind
    - unspecialize
    - specialize
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyTuple_GET_SIZE
    - PyList_GET_SIZE
    - PyTuple_CheckExact
    - PyList_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:2593,1
    - Dst: PyCoro_CheckExact
      Src: /src/cpython/Python/specialize.c:2596,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/cpython/Python/specialize.c:2599,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/cpython/Python/specialize.c:2602,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2605,1
    - Dst: strncmp
      Src: /src/cpython/Python/specialize.c:2652,1
    - Dst: strncmp
      Src: /src/cpython/Python/specialize.c:2655,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 1
    argNames:
    - iter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2659
      start: 2590
    functionDepth: 1
    functionLinenumber: 2590
    functionLinenumberEnd: 2659
    functionName: _PySpecialization_ClassifyIterator
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyCoro_CheckExact
    - PyAsyncGenASend_CheckExact
    - strncmp
    - PyAsyncGen_CheckExact
    - PyGen_CheckExact
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PySpecialization_ClassifyIterator(PyObject *iter)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2665,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2666,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2667,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2668,1
    - Dst: PyStackRef_IsNull
      Src: /src/cpython/Python/specialize.c:2670,1
    - Dst: _PyObject_IsUniquelyReferenced
      Src: /src/cpython/Python/specialize.c:2678,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2682,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2686,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Python/specialize.c:2690,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2690,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2693,1
    - Dst: _Py_IsOwnedByCurrentThread
      Src: /src/cpython/Python/specialize.c:2702,1
    - Dst: _PyObject_GC_IS_SHARED
      Src: /src/cpython/Python/specialize.c:2702,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2706,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2710,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2714,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2718,1
    - Dst: _PySpecialization_ClassifyIterator
      Src: /src/cpython/Python/specialize.c:2719,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2720,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - iter
    - null_or_index
    - instr
    - oparg
    argTypes:
    - _PyStackRef
    - _PyStackRef
    - _Py_CODEUNIT*
    - int
    assertStmts:
    - condition: (_PyOpcode_Caches[FOR_ITER] == INLINE_CACHE_ENTRIES_FOR_ITER)
      pos:
        line_end: 2665
        line_start: 2665
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 2664
        line_start: 2664
        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: 2687
        line_start: 2685
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2721
      start: 2662
    functionDepth: 3
    functionLinenumber: 2662
    functionLinenumberEnd: 2721
    functionName: _Py_Specialize_ForIter
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - unspecialize
    - PyStackRef_IsNull
    - specialize
    - _PyInterpreterState_GET
    - _PySpecialization_ClassifyIterator
    - _Py_IsOwnedByCurrentThread
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyInterpreterState_IsSpecializationEnabled
    - _PyObject_GC_IS_SHARED
    - _PyObject_IsUniquelyReferenced
    - Py_TYPE
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_ForIter(_PyStackRef iter, _PyStackRef null_or_index,
      _Py_CODEUNIT *instr, int oparg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2726,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2728,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2729,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2730,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Python/specialize.c:2733,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2733,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2734,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2737,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2741,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2745,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2748,1
    - Dst: _PySpecialization_ClassifyIterator
      Src: /src/cpython/Python/specialize.c:2749,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - receiver_st
    - instr
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (_PyOpcode_Caches[SEND] == INLINE_CACHE_ENTRIES_SEND)
      pos:
        line_end: 2728
        line_start: 2728
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 2727
        line_start: 2727
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2752
      start: 2723
    functionDepth: 3
    functionLinenumber: 2723
    functionLinenumberEnd: 2752
    functionName: _Py_Specialize_Send
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - unspecialize
    - specialize
    - _PyInterpreterState_GET
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyInterpreterState_IsSpecializationEnabled
    - _PySpecialization_ClassifyIterator
    - Py_TYPE
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_Send(_PyStackRef receiver_st, _Py_CODEUNIT
      *instr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2757,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2759,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2760,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2762,1
    - Dst: _PyInterpreterState_IsSpecializationEnabled
      Src: /src/cpython/Python/specialize.c:2764,1
    - Dst: _PyInterpreterState_GET
      Src: /src/cpython/Python/specialize.c:2764,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2767,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2770,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2773,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - func_st
    - instr
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 2758
        line_start: 2758
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[CALL_FUNCTION_EX] == INLINE_CACHE_ENTRIES_CALL_FUNCTION_EX)
      pos:
        line_end: 2759
        line_start: 2759
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2774
      start: 2754
    functionDepth: 3
    functionLinenumber: 2754
    functionLinenumberEnd: 2774
    functionName: _Py_Specialize_CallFunctionEx
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - unspecialize
    - specialize
    - _PyInterpreterState_GET
    - assert
    - PyStackRef_AsPyObjectBorrow
    - _PyInterpreterState_IsSpecializationEnabled
    - Py_TYPE
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_CallFunctionEx(_PyStackRef func_st, _Py_CODEUNIT
      *instr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_CheckExact
      Src: /src/cpython/Python/specialize.c:2780,1
    - Dst: PyBytes_CheckExact
      Src: /src/cpython/Python/specialize.c:2783,1
    - Dst: PyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:2786,1
    - Dst: PyFloat_CheckExact
      Src: /src/cpython/Python/specialize.c:2789,1
    - Dst: PyMemoryView_Check
      Src: /src/cpython/Python/specialize.c:2792,1
    - Dst: PyAnySet_CheckExact
      Src: /src/cpython/Python/specialize.c:2795,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/specialize.c:2798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2777
    functionDepth: 1
    functionLinenumber: 2777
    functionLinenumberEnd: 2802
    functionName: to_bool_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_Check
    - PyAnySet_CheckExact
    - PyBytes_CheckExact
    - PyFloat_CheckExact
    - PyDict_CheckExact
    - PyByteArray_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: 2821
      start: 2805
    functionDepth: 0
    functionLinenumber: 2805
    functionLinenumberEnd: 2821
    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:2826,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2827,1
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2829,1
    - Dst: PyBool_Check
      Src: /src/cpython/Python/specialize.c:2831,1
    - Dst: PyLong_CheckExact
      Src: /src/cpython/Python/specialize.c:2835,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:2839,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/specialize.c:2843,1
    - Dst: PyUnicode_CheckExact
      Src: /src/cpython/Python/specialize.c:2847,1
    - Dst: PyType_HasFeature
      Src: /src/cpython/Python/specialize.c:2851,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2851,1
    - Dst: _PyType_Validate
      Src: /src/cpython/Python/specialize.c:2853,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/specialize.c:2853,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2855,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2859,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2863,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2864,1
    - Dst: write_u32
      Src: /src/cpython/Python/specialize.c:2865,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2870,1
    - Dst: to_bool_fail_kind
      Src: /src/cpython/Python/specialize.c:2870,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2872,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2875,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 2
    argNames:
    - value_o
    - instr
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (_PyOpcode_Caches[TO_BOOL] == INLINE_CACHE_ENTRIES_TO_BOOL)
      pos:
        line_end: 2826
        line_start: 2826
        source_file: /src/cpython/Python/specialize.c
    - condition: (version)
      pos:
        line_end: 2863
        line_start: 2863
        source_file: /src/cpython/Python/specialize.c
    - condition: (err == 0)
      pos:
        line_end: 2862
        line_start: 2862
        source_file: /src/cpython/Python/specialize.c
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 2825
        line_start: 2825
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2876
      start: 2823
    functionDepth: 4
    functionLinenumber: 2823
    functionLinenumberEnd: 2876
    functionName: _Py_Specialize_ToBool
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - PyBool_Check
    - unspecialize
    - PyType_HasFeature
    - PyUnicode_CheckExact
    - _PyType_Validate
    - write_u32
    - to_bool_fail_kind
    - specialize
    - Py_IsNone
    - PyLong_CheckExact
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PyList_CheckExact
    - Py_TYPE
    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:2881,1
    - Dst: PyList_CheckExact
      Src: /src/cpython/Python/specialize.c:2884,1
    - Dst: PyTuple_CheckExact
      Src: /src/cpython/Python/specialize.c:2887,1
    - Dst: PyType_Check
      Src: /src/cpython/Python/specialize.c:2890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2879
    functionDepth: 1
    functionLinenumber: 2879
    functionLinenumberEnd: 2894
    functionName: containsop_fail_kind
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    functionsReached:
    - PyList_CheckExact
    - PyUnicode_CheckExact
    - PyTuple_CheckExact
    - PyType_Check
    linkageType: ''
    returnType: int
    signature: int containsop_fail_kind(PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2900,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2902,1
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2903,1
    - Dst: PyAnyDict_CheckExact
      Src: /src/cpython/Python/specialize.c:2904,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2905,1
    - Dst: PySet_CheckExact
      Src: /src/cpython/Python/specialize.c:2908,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/cpython/Python/specialize.c:2908,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2909,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2913,1
    - Dst: containsop_fail_kind
      Src: /src/cpython/Python/specialize.c:2913,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - value_st
    - instr
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 2901
        line_start: 2901
        source_file: /src/cpython/Python/specialize.c
    - condition: (_PyOpcode_Caches[CONTAINS_OP] == INLINE_CACHE_ENTRIES_COMPARE_OP)
      pos:
        line_end: 2902
        line_start: 2902
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2916
      start: 2897
    functionDepth: 3
    functionLinenumber: 2897
    functionLinenumberEnd: 2916
    functionName: _Py_Specialize_ContainsOp
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - PyAnyDict_CheckExact
    - unspecialize
    - PyFrozenSet_CheckExact
    - containsop_fail_kind
    - specialize
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_AsPyObjectBorrow
    - PySet_CheckExact
    linkageType: ''
    returnType: Py_NO_INLINE
    signature: Py_NO_INLINE _Py_Specialize_ContainsOp(_PyStackRef value_st, _Py_CODEUNIT
      *instr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/specialize.c:2921,1
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/specialize.c:2922,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2924,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2928,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2931,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - iterable
    - instr
    argTypes:
    - _PyStackRef
    - _Py_CODEUNIT*
    assertStmts:
    - condition: (ENABLE_SPECIALIZATION)
      pos:
        line_end: 2920
        line_start: 2920
        source_file: /src/cpython/Python/specialize.c
    constantsTouched: []
    func_position:
      end: 2934
      start: 2918
    functionDepth: 3
    functionLinenumber: 2918
    functionLinenumberEnd: 2934
    functionName: _Py_Specialize_GetIter
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - unspecialize
    - specialize
    - SPECIALIZATION_FAIL
    - assert
    - PyStackRef_TYPE
    linkageType: ''
    returnType: void
    signature: void _Py_Specialize_GetIter(_PyStackRef iterable, _Py_CODEUNIT *instr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_AsPyObjectBorrow
      Src: /src/cpython/Python/specialize.c:2941,1
    - Dst: PyCode_Check
      Src: /src/cpython/Python/specialize.c:2943,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2945,1
    - Dst: set_counter
      Src: /src/cpython/Python/specialize.c:2946,1
    - Dst: initial_resume_backoff_counter
      Src: /src/cpython/Python/specialize.c:2946,1
    - Dst: specialize
      Src: /src/cpython/Python/specialize.c:2950,1
    - Dst: unspecialize
      Src: /src/cpython/Python/specialize.c:2953,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - instr
    - tstate
    - frame
    argTypes:
    - _Py_CODEUNIT*
    - PyThreadState*
    - _PyInterpreterFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2936
    functionDepth: 3
    functionLinenumber: 2936
    functionLinenumberEnd: 2955
    functionName: _Py_Specialize_Resume
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 3
    functionsReached:
    - PyCode_Check
    - unspecialize
    - specialize
    - PyStackRef_AsPyObjectBorrow
    - set_counter
    - initial_resume_backoff_counter
    linkageType: ''
    returnType: void
    signature: void _Py_Specialize_Resume(_Py_CODEUNIT *instr, PyThreadState *tstate,
      _PyInterpreterFrame *frame)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyStackRef_TYPE
      Src: /src/cpython/Python/specialize.c:2961,1
    - Dst: SPECIALIZATION_FAIL
      Src: /src/cpython/Python/specialize.c:2999,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - _PyStackRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2958
    functionDepth: 1
    functionLinenumber: 2958
    functionLinenumberEnd: 3000
    functionName: _Py_GatherStats_GetIter
    functionSourceFile: /src/cpython/Python/specialize.c
    functionUses: 0
    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: 25
    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_Call
    - Py_CLEAR
    - PyTuple_Check
    - PyErr_Format
    - PyExceptionInstance_Check
    - _PyObject_CallNoArgs
    - Py_TYPE
    - PyObject_CallOneArg
    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: (tb != Py_None)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/cpython/Python/errors.c
    - 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: (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:
    - PyExceptionClass_Check
    - PyException_SetTraceback
    - _PyErr_CreateException
    - _PyErr_SetRaisedException
    - PyException_GetTraceback
    - Py_XDECREF
    - assert
    - Py_DECREF
    - PyExceptionInstance_Check
    - Py_TYPE
    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: 6
    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: 92
    functionsReached:
    - _PyErr_SetRaisedException
    - _PyThreadState_GET
    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: 2
    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:
    - Py_DECREF
    - PyObject_Repr
    - _PyErr_Clear
    - PyUnicode_FromFormat
    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: 2
    functionsReached:
    - PyExceptionClass_Check
    - _PyException_AddNote
    - get_normalization_failure_note
    - _PyErr_GetTopmostException
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - assert
    - Py_TYPE
    - _PyErr_CreateException
    - PyException_GetTraceback
    - Py_XDECREF
    - PyException_GetContext
    - Py_INCREF
    - PyException_SetContext
    - Py_DECREF
    - PyExceptionInstance_Check
    - PyObject_IsSubclass
    - Py_NewRef
    - Py_XINCREF
    - _PyErr_Format
    - Py_XSETREF
    - _PyErr_Clear
    - _PyErr_Restore
    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: 71
    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:259,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:264,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/errors.c:266,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:272,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:272,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 256
    functionDepth: 12
    functionLinenumber: 256
    functionLinenumberEnd: 274
    functionName: _PyErr_SetKeyError
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 8
    functionsReached:
    - _PyErr_SetObject
    - _PyThreadState_GET
    - _PyErr_Clear
    - Py_DECREF
    - Py_TYPE
    - PyObject_CallOneArg
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetKeyError(PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - exception
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 12
    functionLinenumber: 276
    functionLinenumberEnd: 280
    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:286,1
    - Dst: _PyErr_SetNone
      Src: /src/cpython/Python/errors.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exception
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 13
    functionLinenumber: 283
    functionLinenumberEnd: 288
    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:295,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:297,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - exception
    - string
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 12
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: _PyErr_SetString
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 45
    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:305,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exception
    - string
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 13
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: PyErr_SetString
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1929
    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:312,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/errors.c:314,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - exception
    - string
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 13
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: _PyErr_SetLocaleString
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 6
    functionsReached:
    - PyUnicode_DecodeLocale
    - Py_DECREF
    - PyErr_SetObject
    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:365,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: _PyErr_ExceptionMatches
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 17
    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:372,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/cpython/Python/errors.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: PyErr_ExceptionMatches
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 207
    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:408,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/errors.c:414,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:418,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/errors.c:419,1
    - Dst: PyObject_IsSubclass
      Src: /src/cpython/Python/errors.c:420,1
    - Dst: _PyErr_CreateException
      Src: /src/cpython/Python/errors.c:432,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/errors.c:436,1
    - Dst: Py_SETREF
      Src: /src/cpython/Python/errors.c:442,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:442,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:451,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:452,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:455,1
    - Dst: _PyErr_Fetch
      Src: /src/cpython/Python/errors.c:464,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:465,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:470,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/errors.c:477,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/errors.c:478,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/errors.c:482,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: 464
        line_start: 464
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 487
      start: 387
    functionDepth: 13
    functionLinenumber: 387
    functionLinenumberEnd: 487
    functionName: _PyErr_NormalizeException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyExceptionClass_Check
    - PyExceptionInstance_Class
    - Py_NewRef
    - Py_SETREF
    - _PyErr_SetString
    - _PyErr_CreateException
    - _PyErr_Fetch
    - assert
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - PyExceptionInstance_Check
    - PyObject_IsSubclass
    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:493,1
    - Dst: _PyErr_NormalizeException
      Src: /src/cpython/Python/errors.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exc
    - val
    - tb
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 14
    functionLinenumber: 490
    functionLinenumberEnd: 495
    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: 503
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: _PyErr_GetRaisedException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_GetRaisedException(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:508,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 510
    functionName: PyErr_GetRaisedException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 127
    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:516,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:523,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:523,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/errors.c:524,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: 526
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 526
    functionName: _PyErr_Fetch
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - PyException_GetTraceback
    - _PyErr_GetRaisedException
    - Py_NewRef
    - Py_TYPE
    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:532,1
    - Dst: _PyErr_Fetch
      Src: /src/cpython/Python/errors.c:533,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: 534
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 534
    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:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 7
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: _PyErr_Clear
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 25
    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:547,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 8
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: PyErr_Clear
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 288
    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:558,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:558,1
    - Dst: PyExceptionInstance_Class
      Src: /src/cpython/Python/errors.c:559,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:560,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - exc_value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/cpython/Python/errors.c
    - condition: (type != NULL)
      pos:
        line_end: 559
        line_start: 559
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 563
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 563
    functionName: get_exc_type
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - PyExceptionInstance_Class
    - Py_NewRef
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_exc_type(PyObject *exc_value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:572,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:572,1
    - Dst: PyException_GetTraceback
      Src: /src/cpython/Python/errors.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - exc_value
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyExceptionInstance_Check(exc_value))
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 576
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 576
    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:582,1
    - Dst: get_exc_type
      Src: /src/cpython/Python/errors.c:584,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/errors.c:585,1
    - Dst: get_exc_traceback
      Src: /src/cpython/Python/errors.c:586,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: 587
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: _PyErr_GetExcInfo
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - get_exc_traceback
    - get_exc_type
    - Py_XNewRef
    - _PyErr_GetTopmostException
    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:592,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 598
    functionName: _PyErr_GetHandledException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_NewRef
    - _PyErr_GetTopmostException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_GetHandledException(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:603,1
    - Dst: _PyErr_GetHandledException
      Src: /src/cpython/Python/errors.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 605
    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:610,1
    - Dst: Py_XNewRef
      Src: /src/cpython/Python/errors.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: _PyErr_SetHandledException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_XNewRef
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetHandledException(PyThreadState *tstate, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:616,1
    - Dst: _PyErr_SetHandledException
      Src: /src/cpython/Python/errors.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: PyErr_SetHandledException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 5
    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:623,1
    - Dst: _PyErr_GetExcInfo
      Src: /src/cpython/Python/errors.c:624,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: 625
      start: 620
    functionDepth: 5
    functionLinenumber: 620
    functionLinenumberEnd: 625
    functionName: PyErr_GetExcInfo
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - _PyErr_GetExcInfo
    - _PyThreadState_GET
    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:630,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:631,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:633,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - type
    - value
    - traceback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 635
    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:643,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/errors.c:645,1
    - Dst: PyTuple_New
      Src: /src/cpython/Python/errors.c:647,1
    - Dst: get_exc_type
      Src: /src/cpython/Python/errors.c:652,1
    - Dst: get_exc_traceback
      Src: /src/cpython/Python/errors.c:653,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/errors.c:655,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/errors.c:656,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:656,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/cpython/Python/errors.c:657,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: 644
        line_start: 642
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 660
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 660
    functionName: _PyErr_StackItemToExcInfoTuple
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - get_exc_type
    - get_exc_traceback
    - PyTuple_SET_ITEM
    - assert
    - PyExceptionInstance_Check
    - Py_NewRef
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_StackItemToExcInfoTuple(_PyErr_StackItem *err_info)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:674,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/errors.c:676,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/errors.c:677,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:684,1
    - Dst: _PyErr_NormalizeException
      Src: /src/cpython/Python/errors.c:685,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/errors.c:687,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:688,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:690,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:691,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/errors.c:692,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:693,1
    - Dst: _PyErr_Restore
      Src: /src/cpython/Python/errors.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - typ
    - val
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 668
    functionDepth: 14
    functionLinenumber: 668
    functionLinenumberEnd: 698
    functionName: _PyErr_ChainExceptions
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - _PyErr_NormalizeException
    - PyExceptionClass_Check
    - _PyErr_Occurred
    - PyException_SetTraceback
    - _PyErr_SetRaisedException
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - PyException_SetContext
    - Py_DECREF
    - _PyErr_Restore
    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:711,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:712,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/errors.c:713,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:714,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 719
    functionName: _PyErr_ChainExceptions1Tstate
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 4
    functionsReached:
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - _PyErr_Occurred
    - PyException_SetContext
    linkageType: ''
    returnType: void
    signature: void _PyErr_ChainExceptions1Tstate(PyThreadState *tstate, PyObject
      *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:724,1
    - Dst: _PyErr_ChainExceptions1Tstate
      Src: /src/cpython/Python/errors.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 4
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: _PyErr_ChainExceptions1
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 39
    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:737,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:738,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:738,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:745,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:748,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:748,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 737
        line_start: 737
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 750
      start: 734
    functionDepth: 12
    functionLinenumber: 734
    functionLinenumberEnd: 750
    functionName: _PyErr_ChainStackItem
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - _PyErr_SetObject
    - _PyErr_Occurred
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - assert
    - Py_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _PyErr_ChainStackItem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:756,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:756,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:757,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:758,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:758,1
    - Dst: _PyErr_FormatV
      Src: /src/cpython/Python/errors.c:759,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:760,1
    - Dst: PyException_SetCause
      Src: /src/cpython/Python/errors.c:761,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:761,1
    - Dst: PyException_SetContext
      Src: /src/cpython/Python/errors.c:762,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:762,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:763,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:764,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: 755
        line_start: 755
        source_file: /src/cpython/Python/errors.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 757
        line_start: 757
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 766
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 766
    functionName: _PyErr_FormatVFromCause
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_FormatV
    - _PyErr_Occurred
    - PyException_SetCause
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - PyException_SetContext
    - assert
    - Py_DECREF
    - Py_NewRef
    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:773,1
    - Dst: _PyErr_FormatVFromCause
      Src: /src/cpython/Python/errors.c:774,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - exception
    - format
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 777
    functionName: _PyErr_FormatFromCauseTstate
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - va_end
    - _PyErr_FormatVFromCause
    - va_start
    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:782,1
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:784,1
    - Dst: _PyErr_FormatVFromCause
      Src: /src/cpython/Python/errors.c:785,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - exception
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 779
    functionDepth: 4
    functionLinenumber: 779
    functionLinenumberEnd: 788
    functionName: _PyErr_FormatFromCause
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 6
    functionsReached:
    - _PyThreadState_GET
    - va_end
    - _PyErr_FormatVFromCause
    - va_start
    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:795,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 792
    functionDepth: 13
    functionLinenumber: 792
    functionLinenumberEnd: 799
    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:804,1
    - Dst: _PyErr_NoMemory
      Src: /src/cpython/Python/errors.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 7
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: PyErr_NoMemory
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 556
    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:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - filenameObject
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 812
    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:817,1
    - Dst: PyErr_CheckSignals
      Src: /src/cpython/Python/errors.c:826,1
    - Dst: strerror
      Src: /src/cpython/Python/errors.c:832,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/cpython/Python/errors.c:833,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:837,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:841,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:850,1
    - Dst: FormatMessageW
      Src: /src/cpython/Python/errors.c:853,1
    - Dst: MAKELANGID
      Src: /src/cpython/Python/errors.c:859,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:869,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/errors.c:874,1
    - Dst: LocalFree
      Src: /src/cpython/Python/errors.c:883,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:890,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:892,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:894,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:895,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:897,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/errors.c:900,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:901,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:903,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:903,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:904,1
    - Dst: LocalFree
      Src: /src/cpython/Python/errors.c:908,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - exc
    - filenameObject
    - filenameObject2
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (filenameObject2 == NULL)
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 911
      start: 814
    functionDepth: 12
    functionLinenumber: 814
    functionLinenumberEnd: 911
    functionName: PyErr_SetFromErrnoWithFilenameObjects
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 4
    functionsReached:
    - PyUnicode_DecodeLocale
    - PyUnicode_FromWideChar
    - PyUnicode_FromString
    - MAKELANGID
    - PyErr_CheckSignals
    - _PyErr_SetObject
    - PyUnicode_FromFormat
    - Py_BuildValue
    - PyObject_Call
    - _PyThreadState_GET
    - strerror
    - assert
    - Py_DECREF
    - FormatMessageW
    - LocalFree
    - Py_TYPE
    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:919,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/cpython/Python/errors.c:925,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - exc
    - filename
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 913
    functionDepth: 13
    functionLinenumber: 913
    functionLinenumberEnd: 928
    functionName: PyErr_SetFromErrnoWithFilename
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 9
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - Py_XDECREF
    - PyErr_SetFromErrnoWithFilenameObjects
    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:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 930
    functionDepth: 13
    functionLinenumber: 930
    functionLinenumberEnd: 934
    functionName: PyErr_SetFromErrno
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 145
    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:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exc
    - ierr
    - filenameObject
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 945
    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:953,1
    - Dst: GetLastError
      Src: /src/cpython/Python/errors.c:961,1
    - Dst: FormatMessageW
      Src: /src/cpython/Python/errors.c:964,1
    - Dst: MAKELANGID
      Src: /src/cpython/Python/errors.c:971,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:978,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/cpython/Python/errors.c:984,1
    - Dst: LocalFree
      Src: /src/cpython/Python/errors.c:989,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:994,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:1001,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1002,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/errors.c:1005,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1006,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1008,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:1008,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1009,1
    - Dst: LocalFree
      Src: /src/cpython/Python/errors.c:1012,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: 993
        line_start: 993
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1014
      start: 947
    functionDepth: 12
    functionLinenumber: 947
    functionLinenumberEnd: 1014
    functionName: PyErr_SetExcFromWindowsErrWithFilenameObjects
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromWideChar
    - MAKELANGID
    - assert
    - _PyErr_SetObject
    - PyUnicode_FromFormat
    - Py_BuildValue
    - PyObject_Call
    - _PyThreadState_GET
    - GetLastError
    - Py_DECREF
    - FormatMessageW
    - LocalFree
    - Py_TYPE
    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:1024,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/errors.c:1026,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/cpython/Python/errors.c:1031,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1035,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - exc
    - ierr
    - filename
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1016
    functionDepth: 13
    functionLinenumber: 1016
    functionLinenumberEnd: 1037
    functionName: PyErr_SetExcFromWindowsErrWithFilename
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    - PyUnicode_DecodeFSDefault
    - Py_XDECREF
    - 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:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - ierr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1039
    functionDepth: 14
    functionLinenumber: 1039
    functionLinenumberEnd: 1042
    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:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ierr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 14
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: PyErr_SetFromWindowsErr
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 108
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilename
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyErr_SetFromWindowsErr(int ierr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/cpython/Python/errors.c:1057,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/errors.c:1059,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/cpython/Python/errors.c:1064,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1067,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ierr
    - filename
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1050
    functionDepth: 13
    functionLinenumber: 1050
    functionLinenumberEnd: 1069
    functionName: PyErr_SetFromWindowsErrWithFilename
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    - PyUnicode_DecodeFSDefault
    - Py_XDECREF
    - 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:1081,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1086,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1092,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/errors.c:1107,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/errors.c:1111,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/errors.c:1114,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/errors.c:1117,1
    - Dst: PyObject_VectorcallDict
      Src: /src/cpython/Python/errors.c:1120,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1123,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: 1125
      start: 1073
    functionDepth: 13
    functionLinenumber: 1073
    functionLinenumberEnd: 1125
    functionName: new_importerror
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetString
    - PyDict_SetItemString
    - PyDict_New
    - Py_DECREF
    - PyObject_IsSubclass
    - PyObject_VectorcallDict
    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:1132,1
    - Dst: new_importerror
      Src: /src/cpython/Python/errors.c:1133,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1136,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:1136,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1137,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: 1140
      start: 1127
    functionDepth: 14
    functionLinenumber: 1127
    functionLinenumberEnd: 1140
    functionName: _PyErr_SetImportErrorSubclassWithNameFrom
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - new_importerror
    - _PyErr_SetObject
    - _PyThreadState_GET
    - Py_DECREF
    - 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:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - exception
    - msg
    - name
    - path
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1143
    functionDepth: 15
    functionLinenumber: 1143
    functionLinenumberEnd: 1148
    functionName: PyErr_SetImportErrorSubclass
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    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:1153,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: 1154
      start: 1150
    functionDepth: 15
    functionLinenumber: 1150
    functionLinenumberEnd: 1154
    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:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msg
    - name
    - path
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1156
    functionDepth: 16
    functionLinenumber: 1156
    functionLinenumberEnd: 1160
    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:1165,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1167,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/errors.c:1170,1
    - Dst: new_importerror
      Src: /src/cpython/Python/errors.c:1175,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1176,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1180,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1162
    functionDepth: 14
    functionLinenumber: 1162
    functionLinenumberEnd: 1183
    functionName: _PyErr_SetModuleNotFoundError
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - new_importerror
    - _PyErr_SetString
    - _PyErr_SetObject
    - PyUnicode_FromFormat
    - _PyThreadState_GET
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _PyErr_SetModuleNotFoundError(PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1188,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/errors.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1192
    functionName: _PyErr_BadInternalCall
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - _PyThreadState_GET
    linkageType: ''
    returnType: void
    signature: void _PyErr_BadInternalCall(const char *filename, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/errors.c:1200,1
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1201,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "bad argument to internal function")
      pos:
        line_end: 1199
        line_start: 1199
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1204
      start: 1197
    functionDepth: 13
    functionLinenumber: 1197
    functionLinenumberEnd: 1204
    functionName: PyErr_BadInternalCall
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 165
    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: 1206
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1206
    functionName: PyErr_BadInternalCall
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 165
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyErr_BadInternalCall()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1216,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/errors.c:1218,1
    - Dst: _PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1220,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1221,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: 1224
      start: 1208
    functionDepth: 12
    functionLinenumber: 1208
    functionLinenumberEnd: 1224
    functionName: _PyErr_FormatV
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormatV
    - _PyErr_SetObject
    - _PyErr_Clear
    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:1230,1
    - Dst: _PyErr_FormatV
      Src: /src/cpython/Python/errors.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exception
    - format
    - vargs
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1227
    functionDepth: 13
    functionLinenumber: 1227
    functionLinenumberEnd: 1232
    functionName: PyErr_FormatV
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 4
    functionsReached:
    - _PyErr_FormatV
    - _PyThreadState_GET
    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:1240,1
    - Dst: _PyErr_FormatV
      Src: /src/cpython/Python/errors.c:1241,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - tstate
    - exception
    - format
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1235
    functionDepth: 13
    functionLinenumber: 1235
    functionLinenumberEnd: 1244
    functionName: _PyErr_Format
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 57
    functionsReached:
    - _PyErr_FormatV
    - va_end
    - va_start
    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:1250,1
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:1252,1
    - Dst: _PyErr_FormatV
      Src: /src/cpython/Python/errors.c:1253,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - exception
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1247
    functionDepth: 13
    functionLinenumber: 1247
    functionLinenumberEnd: 1256
    functionName: PyErr_Format
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1012
    functionsReached:
    - _PyErr_FormatV
    - _PyThreadState_GET
    - va_end
    - va_start
    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:1263,1
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:1268,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/errors.c:1269,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1270,1
    - Dst: _PyException_AddNote
      Src: /src/cpython/Python/errors.c:1274,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1275,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:1279,1
    - Dst: _PyErr_ChainExceptions1
      Src: /src/cpython/Python/errors.c:1282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1260
    functionDepth: 9
    functionLinenumber: 1260
    functionLinenumberEnd: 1283
    functionName: _PyErr_FormatNote
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 14
    functionsReached:
    - PyUnicode_FromFormatV
    - _PyException_AddNote
    - va_start
    - _PyErr_ChainExceptions1
    - va_end
    - PyErr_SetRaisedException
    - Py_DECREF
    - PyErr_GetRaisedException
    linkageType: ''
    returnType: void
    signature: void _PyErr_FormatNote(const char *format, ...)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/cpython/Python/errors.c:1289,1
    - Dst: strrchr
      Src: /src/cpython/Python/errors.c:1295,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1297,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/errors.c:1305,1
    - Dst: PyDict_Contains
      Src: /src/cpython/Python/errors.c:1310,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1310,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/cpython/Python/errors.c:1315,1
    - Dst: PyDict_SetItem
      Src: /src/cpython/Python/errors.c:1319,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1319,1
    - Dst: PyTuple_Check
      Src: /src/cpython/Python/errors.c:1322,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:1323,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/errors.c:1325,1
    - Dst: PyObject_CallFunction
      Src: /src/cpython/Python/errors.c:1330,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1333,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1334,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1335,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - name
    - base
    - dict
    argTypes:
    - char*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1286
    functionDepth: 13
    functionLinenumber: 1286
    functionLinenumberEnd: 1337
    functionName: PyErr_NewException
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 28
    functionsReached:
    - strrchr
    - _PyErr_SetString
    - PyObject_CallFunction
    - PyDict_SetItem
    - PyDict_Contains
    - _PyThreadState_GET
    - _Py_ID
    - PyTuple_Pack
    - PyTuple_Check
    - Py_XDECREF
    - PyUnicode_FromStringAndSize
    - Py_NewRef
    - PyDict_New
    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:1351,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:1358,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/errors.c:1361,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1362,1
    - Dst: PyErr_NewException
      Src: /src/cpython/Python/errors.c:1367,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1369,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - name
    - doc
    - base
    - dict
    argTypes:
    - char*
    - char*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1341
    functionDepth: 14
    functionLinenumber: 1341
    functionLinenumberEnd: 1371
    functionName: PyErr_NewExceptionWithDoc
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 5
    functionsReached:
    - PyErr_NewException
    - PyUnicode_FromString
    - PyDict_SetItemString
    - Py_XDECREF
    - Py_DECREF
    - PyDict_New
    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:1401,1
    - Dst: _PyStatus_ERR
      Src: /src/cpython/Python/errors.c:1404,1
    - Dst: _PyStatus_OK
      Src: /src/cpython/Python/errors.c:1406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1407
    functionName: _PyErr_InitTypes
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyStructSequence_InitBuiltin
    - _PyStatus_OK
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyErr_InitTypes(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStructSequence_FiniBuiltin
      Src: /src/cpython/Python/errors.c:1413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1410
    functionDepth: 3
    functionLinenumber: 1410
    functionLinenumberEnd: 1414
    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:1422,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1437,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1438,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1439,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1440,1
    - Dst: ADD_ITEM
      Src: /src/cpython/Python/errors.c:1441,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/errors.c:1444,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1445,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: 1449
      start: 1417
    functionDepth: 2
    functionLinenumber: 1417
    functionLinenumberEnd: 1449
    functionName: make_unraisable_hook_args
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - ADD_ITEM
    - PyStructSequence_New
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmake_unraisable_hook_args(PyThreadState *tstate, PyObject
      *exc_type,\n                          PyObject *exc_value, PyObject *exc_tb,\n
      \                         PyObject *err_msg, PyObject *obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exc_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1435
    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:1464,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:1465,1
    - Dst: Py_IsNone
      Src: /src/cpython/Python/errors.c:1465,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1469,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1472,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1477,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1482,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1483,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1484,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1488,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1493,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1496,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/errors.c:1503,1
    - Dst: PyCallable_Check
      Src: /src/cpython/Python/errors.c:1505,1
    - Dst: PyObject_Vectorcall
      Src: /src/cpython/Python/errors.c:1507,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1509,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1510,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1517,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1520,1
    - Dst: PyTraceBack_Print
      Src: /src/cpython/Python/errors.c:1523,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1525,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:1533,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/errors.c:1533,1
    - Dst: PyObject_GetAttr
      Src: /src/cpython/Python/errors.c:1535,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1535,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/errors.c:1536,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1537,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1538,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1539,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/errors.c:1544,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1544,1
    - Dst: _PyUnicode_Equal
      Src: /src/cpython/Python/errors.c:1545,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1545,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1546,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1547,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1550,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1551,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1556,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Python/errors.c:1560,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/errors.c:1561,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1562,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1563,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1564,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1569,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1570,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1573,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1577,1
    - Dst: PyFile_WriteObject
      Src: /src/cpython/Python/errors.c:1580,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1581,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1582,1
    - Dst: PyFile_WriteString
      Src: /src/cpython/Python/errors.c:1588,1
    - Dst: _PyFile_Flush
      Src: /src/cpython/Python/errors.c:1593,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: (!Py_IsNone(file))
      pos:
        line_end: 1464
        line_start: 1464
        source_file: /src/cpython/Python/errors.c
    - condition: (file != NULL)
      pos:
        line_end: 1463
        line_start: 1463
        source_file: /src/cpython/Python/errors.c
    - condition: (PyExceptionClass_Check(exc_type))
      pos:
        line_end: 1532
        line_start: 1532
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1598
      start: 1459
    functionDepth: 15
    functionLinenumber: 1459
    functionLinenumberEnd: 1598
    functionName: write_unraisable_exc_file
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyExceptionClass_Check
    - PyCallable_Check
    - PyObject_Vectorcall
    - _PyUnicode_Equal
    - PyType_GetQualName
    - PyObject_GetAttr
    - PyUnicode_Check
    - PyImport_ImportModuleAttrString
    - Py_IsNone
    - _PyFile_Flush
    - _PyErr_Clear
    - PyTraceBack_Print
    - Py_XDECREF
    - assert
    - PyFile_WriteString
    - Py_DECREF
    - PyFile_WriteObject
    - _Py_ID
    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:1607,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1607,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1611,1
    - Dst: write_unraisable_exc_file
      Src: /src/cpython/Python/errors.c:1615,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1617,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: 1620
      start: 1601
    functionDepth: 16
    functionLinenumber: 1601
    functionLinenumberEnd: 1620
    functionName: write_unraisable_exc
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PySys_GetOptionalAttr
    - Py_XDECREF
    - Py_DECREF
    - write_unraisable_exc_file
    - _Py_ID
    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:1626,1
    - Dst: Py_IS_TYPE
      Src: /src/cpython/Python/errors.c:1628,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/errors.c:1629,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1636,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1637,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1638,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1639,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/cpython/Python/errors.c:1640,1
    - Dst: write_unraisable_exc
      Src: /src/cpython/Python/errors.c:1642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - args
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1623
    functionDepth: 17
    functionLinenumber: 1623
    functionLinenumberEnd: 1646
    functionName: _PyErr_WriteUnraisableDefaultHook
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - write_unraisable_exc
    - Py_IS_TYPE
    - _PyErr_SetString
    - _PyThreadState_GET
    - 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:1665,1
    - Dst: _Py_EnsureTstateNotNULL
      Src: /src/cpython/Python/errors.c:1666,1
    - Dst: _PyErr_Fetch
      Src: /src/cpython/Python/errors.c:1671,1
    - Dst: assert
      Src: /src/cpython/Python/errors.c:1673,1
    - Dst: PyThreadState_GetFrame
      Src: /src/cpython/Python/errors.c:1681,1
    - Dst: _PyTraceBack_FromFrame
      Src: /src/cpython/Python/errors.c:1683,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1685,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1687,1
    - Dst: _PyErr_NormalizeException
      Src: /src/cpython/Python/errors.c:1691,1
    - Dst: PyTraceBack_Check
      Src: /src/cpython/Python/errors.c:1693,1
    - Dst: PyException_SetTraceback
      Src: /src/cpython/Python/errors.c:1694,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1695,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/cpython/Python/errors.c:1700,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:1702,1
    - Dst: make_unraisable_hook_args
      Src: /src/cpython/Python/errors.c:1706,1
    - Dst: PySys_GetOptionalAttr
      Src: /src/cpython/Python/errors.c:1714,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1714,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1715,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1721,1
    - Dst: _PySys_Audit
      Src: /src/cpython/Python/errors.c:1725,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1726,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1733,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/errors.c:1737,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1738,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1740,1
    - Dst: Py_XSETREF
      Src: /src/cpython/Python/errors.c:1750,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/errors.c:1750,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1752,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1753,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1754,1
    - Dst: _PyErr_Fetch
      Src: /src/cpython/Python/errors.c:1755,1
    - Dst: write_unraisable_exc
      Src: /src/cpython/Python/errors.c:1759,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1763,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1764,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1765,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1766,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1767,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1768,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 3
    argNames:
    - format
    - va
    - obj
    argTypes:
    - char*
    - va_list
    - PyObject*
    assertStmts:
    - condition: (exc_type != NULL)
      pos:
        line_end: 1672
        line_start: 1672
        source_file: /src/cpython/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1769
      start: 1661
    functionDepth: 17
    functionLinenumber: 1661
    functionLinenumberEnd: 1769
    functionName: format_unraisable_v
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_NormalizeException
    - PyException_SetTraceback
    - _PyThreadState_GET
    - assert
    - PyUnicode_FromString
    - write_unraisable_exc
    - PyUnicode_FromFormatV
    - PySys_GetOptionalAttr
    - _PySys_Audit
    - Py_XDECREF
    - _PyTraceBack_FromFrame
    - make_unraisable_hook_args
    - PyErr_Clear
    - _Py_ID
    - Py_DECREF
    - PyTraceBack_Check
    - PyThreadState_GetFrame
    - Py_XSETREF
    - _Py_EnsureTstateNotNULL
    - _PyErr_Clear
    - _PyErr_Fetch
    - PyObject_CallOneArg
    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:1776,1
    - Dst: format_unraisable_v
      Src: /src/cpython/Python/errors.c:1777,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1771
    functionDepth: 18
    functionLinenumber: 1771
    functionLinenumberEnd: 1779
    functionName: PyErr_FormatUnraisable
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 90
    functionsReached:
    - va_end
    - va_start
    - format_unraisable_v
    linkageType: ''
    returnType: void
    signature: void PyErr_FormatUnraisable(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/cpython/Python/errors.c:1786,1
    - Dst: format_unraisable_v
      Src: /src/cpython/Python/errors.c:1787,1
    - Dst: va_end
      Src: /src/cpython/Python/errors.c:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1781
    functionDepth: 18
    functionLinenumber: 1781
    functionLinenumberEnd: 1789
    functionName: format_unraisable
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - format_unraisable_v
    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:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1791
    functionDepth: 19
    functionLinenumber: 1791
    functionLinenumberEnd: 1795
    functionName: PyErr_WriteUnraisable
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 4
    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:1801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1798
    functionDepth: 1
    functionLinenumber: 1798
    functionLinenumberEnd: 1802
    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:1813,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/errors.c:1816,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/errors.c:1819,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1821,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1824,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1824,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1825,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1827,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/errors.c:1831,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1833,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1836,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1836,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1837,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1839,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/errors.c:1843,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1845,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1848,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1848,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1849,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1851,1
    - Dst: PyLong_FromLong
      Src: /src/cpython/Python/errors.c:1855,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1857,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1860,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1860,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1861,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1863,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1867,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1867,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1868,1
    - Dst: PyErr_ProgramTextObject
      Src: /src/cpython/Python/errors.c:1871,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1873,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1873,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1874,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1876,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1879,1
    - Dst: Py_TYPE
      Src: /src/cpython/Python/errors.c:1882,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/errors.c:1883,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1883,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1885,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/errors.c:1888,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1890,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1890,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1891,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1893,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1896,1
    - Dst: PyObject_HasAttrWithError
      Src: /src/cpython/Python/errors.c:1900,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1900,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1902,1
    - Dst: PyObject_SetAttr
      Src: /src/cpython/Python/errors.c:1905,1
    - Dst: _Py_ID
      Src: /src/cpython/Python/errors.c:1905,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1906,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/errors.c:1910,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: 1911
      start: 1809
    functionDepth: 8
    functionLinenumber: 1809
    functionLinenumberEnd: 1911
    functionName: PyErr_SyntaxLocationObjectEx
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrWithError
    - PyLong_FromLong
    - PyObject_SetAttr
    - PyObject_Str
    - PyErr_ProgramTextObject
    - _PyErr_SetRaisedException
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - _PyErr_Clear
    - Py_XDECREF
    - Py_DECREF
    - Py_TYPE
    - _Py_ID
    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:1915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - lineno
    - col_offset
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1913
    functionDepth: 9
    functionLinenumber: 1913
    functionLinenumberEnd: 1916
    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:1921,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: 1922
      start: 1918
    functionDepth: 9
    functionLinenumber: 1918
    functionLinenumberEnd: 1922
    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:1927,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/cpython/Python/errors.c:1930,1
    - Dst: _PyErr_Clear
      Src: /src/cpython/Python/errors.c:1932,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/cpython/Python/errors.c:1938,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - filename
    - lineno
    - col_offset
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1924
    functionDepth: 10
    functionLinenumber: 1924
    functionLinenumberEnd: 1940
    functionName: PyErr_SyntaxLocationEx
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - PyErr_SyntaxLocationObject
    - _PyThreadState_GET
    - _PyErr_Clear
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    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:1949,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/errors.c:1951,1
    - Dst: Py_BuildValue
      Src: /src/cpython/Python/errors.c:1953,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/errors.c:1959,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:1961,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/errors.c:1962,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: 1963
      start: 1945
    functionDepth: 13
    functionLinenumber: 1945
    functionLinenumberEnd: 1963
    functionName: _PyErr_RaiseSyntaxError
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - PyErr_SetObject
    - PyErr_ProgramTextObject
    - Py_BuildValue
    - Py_XDECREF
    - Py_DECREF
    - Py_NewRef
    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_WarnExplicitObject
      Src: /src/cpython/Python/errors.c:1974,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/cpython/Python/errors.c:1977,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:1980,1
    - Dst: _PyErr_RaiseSyntaxError
      Src: /src/cpython/Python/errors.c:1981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - msg
    - filename
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - module
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1969
    functionDepth: 20
    functionLinenumber: 1969
    functionLinenumberEnd: 1987
    functionName: _PyErr_EmitSyntaxWarning
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 2
    functionsReached:
    - PyErr_WarnExplicitObject
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - _PyErr_RaiseSyntaxError
    linkageType: ''
    returnType: int
    signature: "int _PyErr_EmitSyntaxWarning(PyObject *msg, PyObject *filename, int
      lineno, int col_offset,\n                         int end_lineno, int end_col_offset,\n
      \                        PyObject *module)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_UniversalNewlineFgetsWithSize
      Src: /src/cpython/Python/errors.c:2003,1
    - Dst: memcmp
      Src: /src/cpython/Python/errors.c:2025,1
    - Dst: PyUnicode_Decode
      Src: /src/cpython/Python/errors.c:2029,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:2031,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - fp
    - lineno
    - encoding
    argTypes:
    - FILE*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 1995
    functionDepth: 9
    functionLinenumber: 1995
    functionLinenumberEnd: 2034
    functionName: err_programtext
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - memcmp
    - PyUnicode_Decode
    - PyErr_Clear
    - _Py_UniversalNewlineFgetsWithSize
    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:2043,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:2045,1
    - Dst: PyErr_ProgramTextObject
      Src: /src/cpython/Python/errors.c:2048,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/errors.c:2049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2036
    functionDepth: 9
    functionLinenumber: 2036
    functionLinenumberEnd: 2051
    functionName: PyErr_ProgramText
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Clear
    - PyUnicode_DecodeFSDefault
    - PyErr_ProgramTextObject
    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:2064,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:2066,1
    - Dst: fileno
      Src: /src/cpython/Python/errors.c:2070,1
    - Dst: _PyTokenizer_FindEncodingFilename
      Src: /src/cpython/Python/errors.c:2071,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/errors.c:2074,1
    - Dst: lseek
      Src: /src/cpython/Python/errors.c:2078,1
    - Dst: fclose
      Src: /src/cpython/Python/errors.c:2079,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/errors.c:2080,1
    - Dst: err_programtext
      Src: /src/cpython/Python/errors.c:2084,1
    - Dst: fclose
      Src: /src/cpython/Python/errors.c:2085,1
    - Dst: PyMem_Free
      Src: /src/cpython/Python/errors.c:2086,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - filename
    - lineno
    - encoding
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2056
    functionDepth: 10
    functionLinenumber: 2056
    functionLinenumberEnd: 2088
    functionName: _PyErr_ProgramDecodedTextObject
    functionSourceFile: /src/cpython/Python/errors.c
    functionUses: 1
    functionsReached:
    - fileno
    - _PyTokenizer_FindEncodingFilename
    - fclose
    - err_programtext
    - PyErr_Clear
    - PyMem_Free
    - lseek
    - Py_fopen
    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:2093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2090
    functionDepth: 11
    functionLinenumber: 2090
    functionLinenumberEnd: 2094
    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_GetMainModule
    - _PyThreadState_GET
    - Py_XDECREF
    - _Py_CheckMainModule
    - Py_DECREF
    - _PyModule_GetFilenameUTF8
    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: 15
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: runpy_run_path
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyObject_Call
    - 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:
    - PyException_SetCause
    - PyErr_GetRaisedException
    - PyErr_SetString
    - PyErr_SetRaisedException
    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:
    - _PyErr_Occurred
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - PyException_SetContext
    - assert
    - Py_NewRef
    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: 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.module == NULL)
      pos:
        line_end: 121
        line_start: 121
        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: 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
    constantsTouched: []
    func_position:
      end: 195
      start: 106
    functionDepth: 16
    functionLinenumber: 106
    functionLinenumberEnd: 195
    functionName: ensure_isolated_main
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _Py_GetMainModule
    - sync_module_capture_exc
    - PyUnicode_FromString
    - PyModule_NewObject
    - PyDict_Update
    - assert
    - _PyErr_SetString
    - _PyErr_Occurred
    - runpy_run_path
    - PyDict_SetItem
    - _Py_ID
    - _PyModule_GetDict
    - Py_XDECREF
    - _Py_CheckMainModule
    - Py_DECREF
    - PyDict_GetItemRef
    - 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:
    - PyImport_GetModule
    - Py_XDECREF
    - _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->cached.loaded == NULL)
      pos:
        line_end: 212
        line_start: 212
        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
    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:
    - sync_module_capture_exc
    - main_mod_matches
    - _PyErr_SetRaisedException
    - assert
    - _PyImport_SetModule
    - _Py_ID
    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: 19
    functionLinenumber: 227
    functionLinenumberEnd: 241
    functionName: restore_main
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - main_mod_matches
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - assert
    - PyErr_FormatUnraisable
    - _PyImport_SetModule
    - _Py_ID
    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:
    - _PyEval_AddPendingCall
    - PyInterpreterState_Get
    - 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:
    - _PyEval_AddPendingCall
    - PyInterpreterState_Get
    - 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:
    - _PyXIData_Clear
    - PyInterpreterState_Get
    - 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:
    - _PyXIData_t*::free
    - Py_CLEAR
    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:
    - _xidata_init
    - _PyXIData_INTERPID
    - assert
    - PyInterpreterState_GetID
    - Py_NewRef
    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:
    - format_notshareableerror
    - set_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:
    - get_lookup_context
    - lookup_getdata
    - _set_xid_lookup_failure
    - _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:
    - Py_INCREF
    - get_lookup_context
    - _PyErr_SetString
    - _PyErr_Occurred
    - _set_xid_lookup_failure
    - _PyXIData_INTERPID
    - _PyErr_GetRaisedException
    - _check_xidata
    - lookup_getdata
    - PyErr_Occurred
    - assert
    - Py_DECREF
    - _PyXIData_getdata_t::basic
    - _PyXIData_getdata_t::fallback
    - Py_XDECREF
    - PyInterpreterState_GetID
    - _PyXIData_Release
    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: 17
    functionLinenumber: 530
    functionLinenumberEnd: 566
    functionName: _PyObject_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 5
    functionsReached:
    - Py_FatalError
    - PyFunction_Check
    - _PyFunction_GetXIData
    - _PyErr_SetString
    - _get_xidata
    - _PyErr_SetRaisedException
    - _PyErr_GetRaisedException
    - _PyErr_Clear
    - Py_DECREF
    - _PyPickle_GetXIData
    linkageType: ''
    returnType: int
    signature: "int _PyObject_GetXIData(PyThreadState *tstate,\n                    PyObject
      *obj, xidata_fallback_t fallback,\n                    _PyXIData_t *xidata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp.c:584,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/crossinterp.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 581
    functionDepth: 15
    functionLinenumber: 581
    functionLinenumberEnd: 595
    functionName: _get_pickle_dumps
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_GET_STATE
    - PyImport_ImportModuleAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_pickle_dumps(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyXI_GET_STATE
      Src: /src/cpython/Python/crossinterp.c:600,1
    - Dst: PyImport_ImportModuleAttrString
      Src: /src/cpython/Python/crossinterp.c:605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 597
    functionDepth: 15
    functionLinenumber: 597
    functionLinenumberEnd: 611
    functionName: _get_pickle_loads
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_GET_STATE
    - PyImport_ImportModuleAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_pickle_loads(PyThreadState *tstate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_pickle_dumps
      Src: /src/cpython/Python/crossinterp.c:620,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/crossinterp.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - obj
    argTypes:
    - struct _pickle_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 617
    functionDepth: 16
    functionLinenumber: 617
    functionLinenumberEnd: 626
    functionName: _PyPickle_Dumps
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _get_pickle_dumps
    - PyObject_CallOneArg
    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:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct _unpickle_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 640
    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:645,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:645,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/crossinterp.c:646,1
    - Dst: PyException_GetArgs
      Src: /src/cpython/Python/crossinterp.c:651,1
    - Dst: PyObject_Size
      Src: /src/cpython/Python/crossinterp.c:652,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:653,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:654,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:654,1
    - Dst: PyUnicode_Check
      Src: /src/cpython/Python/crossinterp.c:658,1
    - Dst: PySequence_GetItem
      Src: /src/cpython/Python/crossinterp.c:659,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:660,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:662,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/cpython/Python/crossinterp.c:666,1
    - Dst: strncmp
      Src: /src/cpython/Python/crossinterp.c:669,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 644
        line_start: 644
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 672
      start: 642
    functionDepth: 9
    functionLinenumber: 642
    functionLinenumberEnd: 672
    functionName: check_missing___main___attr
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - strncmp
    - PyException_GetArgs
    - PyUnicode_Check
    - PySequence_GetItem
    - PyUnicode_AsUTF8
    - PyErr_Clear
    - PyObject_Size
    - PyErr_Occurred
    - assert
    - Py_XDECREF
    - PyErr_GivenExceptionMatches
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int check_missing___main___attr(PyObject *exc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _get_pickle_loads
      Src: /src/cpython/Python/crossinterp.c:681,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/crossinterp.c:687,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:691,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:691,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:695,1
    - Dst: check_missing___main___attr
      Src: /src/cpython/Python/crossinterp.c:696,1
    - Dst: ensure_isolated_main
      Src: /src/cpython/Python/crossinterp.c:703,1
    - Dst: apply_isolated_main
      Src: /src/cpython/Python/crossinterp.c:706,1
    - Dst: PyObject_CallOneArg
      Src: /src/cpython/Python/crossinterp.c:711,1
    - Dst: restore_main
      Src: /src/cpython/Python/crossinterp.c:712,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:716,1
    - Dst: _PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:720,1
    - Dst: sync_module_capture_exc
      Src: /src/cpython/Python/crossinterp.c:721,1
    - Dst: _PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:725,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - ctx
    - pickled
    argTypes:
    - struct _unpickle_context*
    - PyObject*
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 728
      start: 674
    functionDepth: 20
    functionLinenumber: 674
    functionLinenumberEnd: 728
    functionName: _PyPickle_Loads
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - sync_module_capture_exc
    - _PyErr_Occurred
    - apply_isolated_main
    - restore_main
    - Py_CLEAR
    - _PyErr_GetRaisedException
    - _PyErr_SetRaisedException
    - _get_pickle_loads
    - assert
    - ensure_isolated_main
    - check_missing___main___attr
    - PyObject_CallOneArg
    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:746,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tstate
    - ctx
    argTypes:
    - PyThreadState*
    - struct _pickle_xid_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 742
    functionDepth: 11
    functionLinenumber: 742
    functionLinenumberEnd: 757
    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:768,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/cpython/Python/crossinterp.c:773,1
    - Dst: _PyPickle_Loads
      Src: /src/cpython/Python/crossinterp.c:786,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:787,1
    - Dst: _unpickle_context_clear
      Src: /src/cpython/Python/crossinterp.c:788,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:790,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:791,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:792,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 790
        line_start: 790
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 797
      start: 765
    functionDepth: 21
    functionLinenumber: 765
    functionLinenumberEnd: 797
    functionName: _PyPickle_LoadFromXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_FromMemory
    - _set_xid_lookup_failure
    - _PyPickle_Loads
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - assert
    - Py_DECREF
    - _unpickle_context_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPickle_LoadFromXIData(_PyXIData_t *xidata)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPickle_Dumps
      Src: /src/cpython/Python/crossinterp.c:807,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:809,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:810,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:811,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:813,1
    - Dst: _PyBytes_GetXIDataWrapped
      Src: /src/cpython/Python/crossinterp.c:822,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:824,1
    - Dst: _set_pickle_xid_context
      Src: /src/cpython/Python/crossinterp.c:831,1
    - Dst: _xidata_clear
      Src: /src/cpython/Python/crossinterp.c:832,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: 809
        line_start: 809
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 837
      start: 800
    functionDepth: 17
    functionLinenumber: 800
    functionLinenumberEnd: 837
    functionName: _PyPickle_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 3
    functionsReached:
    - _xidata_clear
    - _set_pickle_xid_context
    - _PyPickle_Dumps
    - _set_xid_lookup_failure
    - _PyErr_GetRaisedException
    - assert
    - Py_DECREF
    - _PyBytes_GetXIDataWrapped
    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:845,1
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/cpython/Python/crossinterp.c:847,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:849,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:850,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:851,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts:
    - condition: (cause != NULL)
      pos:
        line_end: 849
        line_start: 849
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 857
      start: 842
    functionDepth: 19
    functionLinenumber: 842
    functionLinenumberEnd: 857
    functionName: _PyMarshal_ReadObjectFromXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 2
    functionsReached:
    - assert
    - _PyThreadState_GET
    - _PyErr_GetRaisedException
    - PyMarshal_ReadObjectFromString
    - _set_xid_lookup_failure
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMarshal_ReadObjectFromXIData(_PyXIData_t *xidata)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMarshal_WriteObjectToString
      Src: /src/cpython/Python/crossinterp.c:862,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:864,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:865,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:866,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:868,1
    - Dst: _PyBytes_GetXIDataWrapped
      Src: /src/cpython/Python/crossinterp.c:872,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:874,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: 864
        line_start: 864
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 879
      start: 859
    functionDepth: 12
    functionLinenumber: 859
    functionLinenumberEnd: 879
    functionName: _PyMarshal_GetXIData
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 3
    functionsReached:
    - assert
    - PyMarshal_WriteObjectToString
    - _PyErr_GetRaisedException
    - _set_xid_lookup_failure
    - Py_DECREF
    - _PyBytes_GetXIDataWrapped
    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:890,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:891,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:894,1
    - Dst: _PyCode_VerifyStateless
      Src: /src/cpython/Python/crossinterp.c:894,1
    - Dst: _PyCode_VerifyStateless
      Src: /src/cpython/Python/crossinterp.c:896,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:905,1
    - Dst: _PyCode_ReturnsOnlyNone
      Src: /src/cpython/Python/crossinterp.c:910,1
    - Dst: _PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:911,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: 893
        line_start: 893
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (builtins != NULL)
      pos:
        line_end: 890
        line_start: 890
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 916
      start: 884
    functionDepth: 15
    functionLinenumber: 884
    functionLinenumberEnd: 916
    functionName: verify_script
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltins
    - _PyErr_SetString
    - _PyCode_VerifyStateless
    - assert
    - _PyCode_ReturnsOnlyNone
    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:925,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/crossinterp.c:927,1
    - Dst: PyFunction_Check
      Src: /src/cpython/Python/crossinterp.c:929,1
    - Dst: PyFunction_GET_CODE
      Src: /src/cpython/Python/crossinterp.c:930,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:931,1
    - Dst: Py_INCREF
      Src: /src/cpython/Python/crossinterp.c:932,1
    - Dst: _PyFunction_VerifyStateless
      Src: /src/cpython/Python/crossinterp.c:934,1
    - Dst: _Py_SourceAsString
      Src: /src/cpython/Python/crossinterp.c:946,1
    - Dst: _PyObject_SupportedAsScript
      Src: /src/cpython/Python/crossinterp.c:948,1
    - Dst: _PyErr_Format
      Src: /src/cpython/Python/crossinterp.c:950,1
    - Dst: Py_CompileStringExFlags
      Src: /src/cpython/Python/crossinterp.c:959,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:964,1
    - Dst: verify_script
      Src: /src/cpython/Python/crossinterp.c:977,1
    - Dst: _PyCode_GetXIData
      Src: /src/cpython/Python/crossinterp.c:982,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:983,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:990,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:991,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:992,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:993,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:995,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: 991
        line_start: 991
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (code != NULL)
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 997
      start: 918
    functionDepth: 16
    functionLinenumber: 918
    functionLinenumberEnd: 997
    functionName: get_script_xidata
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - _PyFunction_VerifyStateless
    - PyCode_Check
    - Py_INCREF
    - PyFunction_Check
    - PyFunction_GET_CODE
    - _set_xid_lookup_failure
    - Py_CompileStringExFlags
    - _PyCode_GetXIData
    - _PyErr_GetRaisedException
    - _Py_SourceAsString
    - Py_XDECREF
    - assert
    - _PyObject_SupportedAsScript
    - verify_script
    - Py_DECREF
    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:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 999
    functionDepth: 17
    functionLinenumber: 999
    functionLinenumberEnd: 1004
    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:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tstate
    - obj
    - xidata
    argTypes:
    - PyThreadState*
    - PyObject*
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1006
    functionDepth: 17
    functionLinenumber: 1006
    functionLinenumberEnd: 1011
    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:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1020
    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:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1027
    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:1035,1
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/cpython/Python/crossinterp.c:1044,1
    - Dst: _PyXIData_INTERPID
      Src: /src/cpython/Python/crossinterp.c:1045,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1050,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1050,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1052,1
    - Dst: _Py_CallInInterpreterAndRawFree
      Src: /src/cpython/Python/crossinterp.c:1059,1
    - Dst: _Py_CallInInterpreter
      Src: /src/cpython/Python/crossinterp.c:1062,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - xidata
    - rawfree
    argTypes:
    - _PyXIData_t*
    - int
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1049
        line_start: 1049
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1064
      start: 1029
    functionDepth: 4
    functionLinenumber: 1029
    functionLinenumberEnd: 1064
    functionName: _xidata_release
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpID
    - _PyXIData_INTERPID
    - _Py_CallInInterpreterAndRawFree
    - PyMem_RawFree
    - PyErr_Occurred
    - assert
    - _Py_CallInInterpreter
    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:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1066
    functionDepth: 5
    functionLinenumber: 1066
    functionLinenumberEnd: 1070
    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:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xidata
    argTypes:
    - _PyXIData_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1072
    functionDepth: 5
    functionLinenumber: 1072
    functionLinenumberEnd: 1076
    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:1087,1
    - Dst: strlen
      Src: /src/cpython/Python/crossinterp.c:1092,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1093,1
    - Dst: PyMem_RawMalloc
      Src: /src/cpython/Python/crossinterp.c:1097,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:1099,1
    - Dst: strcpy
      Src: /src/cpython/Python/crossinterp.c:1102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - strobj
    - p_size
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1083
    functionDepth: 14
    functionLinenumber: 1083
    functionLinenumberEnd: 1107
    functionName: _copy_string_obj_raw
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - strcpy
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - PyMem_RawMalloc
    - strlen
    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:1118,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1124,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1125,1
    - Dst: PyTuple_Pack
      Src: /src/cpython/Python/crossinterp.c:1130,1
    - Dst: PyDict_New
      Src: /src/cpython/Python/crossinterp.c:1135,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/crossinterp.c:1139,1
    - Dst: PyDict_SetItemString
      Src: /src/cpython/Python/crossinterp.c:1142,1
    - Dst: PyObject_Call
      Src: /src/cpython/Python/crossinterp.c:1146,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1150,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1151,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1152,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:1158,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:1159,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:1160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - exc
    - p_tbexc
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1110
    functionDepth: 15
    functionLinenumber: 1110
    functionLinenumberEnd: 1162
    functionName: _convert_exc_to_TracebackException
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - PyDict_SetItemString
    - PyTuple_Pack
    - PyObject_GetAttrString
    - Py_XDECREF
    - Py_DECREF
    - PyImport_ImportModuleAttrString
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int _convert_exc_to_TracebackException(PyObject *exc, PyObject **p_tbexc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/cpython/Python/crossinterp.c:1172,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1176,1
    - Dst: PyUnicode_Join
      Src: /src/cpython/Python/crossinterp.c:1177,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1178,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1184,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1185,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - tbexc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_EMPTY_STR != NULL)
      pos:
        line_end: 1175
        line_start: 1175
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (formatted[size] == '\0')
      pos:
        line_end: 1188
        line_start: 1188
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1195
      start: 1169
    functionDepth: 15
    functionLinenumber: 1169
    functionLinenumberEnd: 1195
    functionName: _format_TracebackException
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _copy_string_obj_raw
    - PyUnicode_Join
    - assert
    - Py_DECREF
    - PyObject_CallMethod
    linkageType: ''
    returnType: char
    signature: 'char *

      _format_TracebackException(PyObject *tbexc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1201,1
    - Dst: _PyXIData_ReleaseAndRawFree
      Src: /src/cpython/Python/crossinterp.c:1203,1
    - Dst: _PyXIData_Release
      Src: /src/cpython/Python/crossinterp.c:1204,1
    - Dst: _PyXIData_Clear
      Src: /src/cpython/Python/crossinterp.c:1207,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1209,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xidata
    - rawfree
    argTypes:
    - _PyXIData_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1198
    functionDepth: 9
    functionLinenumber: 1198
    functionLinenumberEnd: 1213
    functionName: _release_xid_data
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 7
    functionsReached:
    - _PyXIData_Clear
    - _PyXIData_ReleaseAndRawFree
    - PyErr_Clear
    - PyErr_SetRaisedException
    - PyErr_GetRaisedException
    - _PyXIData_Release
    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:1229,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1231,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/crossinterp.c:1231,1
    - Dst: PyType_GetName
      Src: /src/cpython/Python/crossinterp.c:1240,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1244,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1245,1
    - Dst: PyType_GetQualName
      Src: /src/cpython/Python/crossinterp.c:1251,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1255,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1256,1
    - Dst: PyType_GetModuleName
      Src: /src/cpython/Python/crossinterp.c:1262,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1266,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1267,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: 1230
        line_start: 1230
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1273
      start: 1220
    functionDepth: 15
    functionLinenumber: 1220
    functionLinenumberEnd: 1273
    functionName: _excinfo_init_type_from_exception
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyType_GetModuleName
    - _copy_string_obj_raw
    - PyType_GetQualName
    - _Py_IsImmortal
    - assert
    - Py_DECREF
    - PyType_GetName
    - Py_TYPE
    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:1281,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1285,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1286,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1292,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1296,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1297,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1303,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1307,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - info
    - exctype
    argTypes:
    - struct _excinfo_type*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1275
    functionDepth: 15
    functionLinenumber: 1275
    functionLinenumberEnd: 1314
    functionName: _excinfo_init_type_from_object
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _copy_string_obj_raw
    - PyObject_GetAttrString
    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:1320,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1321,1
    - Dst: _Py_IsImmortal
      Src: /src/cpython/Python/crossinterp.c:1321,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1324,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1327,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1330,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: 1319
        line_start: 1319
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (_Py_IsImmortal((PyObject *)info->builtin))
      pos:
        line_end: 1320
        line_start: 1320
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1333
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1333
    functionName: _excinfo_clear_type
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - _Py_IsImmortal
    - 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:1340,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1341,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1342,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1354,1
    - Dst: strcmp
      Src: /src/cpython/Python/crossinterp.c:1355,1
    - Dst: strcmp
      Src: /src/cpython/Python/crossinterp.c:1358,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: 1339
        line_start: 1339
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (info->module == NULL)
      pos:
        line_end: 1341
        line_start: 1341
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (info->qualname == NULL)
      pos:
        line_end: 1340
        line_start: 1340
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (module != NULL)
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1363
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1363
    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: 1369
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1369
    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:1374,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1376,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1371
    functionDepth: 2
    functionLinenumber: 1371
    functionLinenumberEnd: 1382
    functionName: _PyXI_excinfo_clear
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - _excinfo_clear_type
    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:1388,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/crossinterp.c:1392,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/crossinterp.c:1396,1
    - Dst: PyUnicode_FromFormat
      Src: /src/cpython/Python/crossinterp.c:1401,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1404,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1384
    functionDepth: 10
    functionLinenumber: 1384
    functionLinenumberEnd: 1414
    functionName: _PyXI_excinfo_format
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _excinfo_normalize_type
    - PyUnicode_FromString
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_excinfo_format(_PyXI_excinfo *info)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1419,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/cpython/Python/crossinterp.c:1421,1
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1422,1
    - Dst: _excinfo_init_type_from_exception
      Src: /src/cpython/Python/crossinterp.c:1427,1
    - Dst: PyObject_Str
      Src: /src/cpython/Python/crossinterp.c:1433,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1438,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1439,1
    - Dst: _convert_exc_to_TracebackException
      Src: /src/cpython/Python/crossinterp.c:1447,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:1449,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1451,1
    - Dst: _format_TracebackException
      Src: /src/cpython/Python/crossinterp.c:1454,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1455,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:1458,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1460,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1467,1
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1468,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - info
    - exc
    argTypes:
    - _PyXI_excinfo*
    - PyObject*
    assertStmts:
    - condition: (exc != NULL)
      pos:
        line_end: 1418
        line_start: 1418
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (failure != NULL)
      pos:
        line_end: 1466
        line_start: 1466
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1470
      start: 1416
    functionDepth: 19
    functionLinenumber: 1416
    functionLinenumberEnd: 1470
    functionName: _PyXI_excinfo_InitFromException
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _format_TracebackException
    - _PyXI_excinfo_clear
    - _convert_exc_to_TracebackException
    - PyObject_Str
    - _copy_string_obj_raw
    - PyErr_FormatUnraisable
    - PyErr_Clear
    - assert
    - Py_DECREF
    - PyErr_GivenExceptionMatches
    - _excinfo_init_type_from_exception
    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:1477,1
    - Dst: _excinfo_init_type_from_object
      Src: /src/cpython/Python/crossinterp.c:1482,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1483,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1490,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1495,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1496,1
    - Dst: PyObject_GetAttrString
      Src: /src/cpython/Python/crossinterp.c:1503,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1508,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1509,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1518,1
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1519,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - info
    - obj
    argTypes:
    - _PyXI_excinfo*
    - PyObject*
    assertStmts:
    - condition: (failure != NULL)
      pos:
        line_end: 1517
        line_start: 1517
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1521
      start: 1472
    functionDepth: 16
    functionLinenumber: 1472
    functionLinenumberEnd: 1521
    functionName: _PyXI_excinfo_InitFromObject
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - _PyXI_excinfo_clear
    - _copy_string_obj_raw
    - PyObject_GetAttrString
    - assert
    - Py_DECREF
    - _excinfo_init_type_from_object
    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:1528,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1530,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/crossinterp.c:1533,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1534,1
    - Dst: _PyXI_excinfo_format
      Src: /src/cpython/Python/crossinterp.c:1539,1
    - Dst: PyErr_SetObject
      Src: /src/cpython/Python/crossinterp.c:1540,1
    - Dst: Py_XDECREF
      Src: /src/cpython/Python/crossinterp.c:1541,1
    - Dst: PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1544,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1545,1
    - Dst: PyErr_FormatUnraisable
      Src: /src/cpython/Python/crossinterp.c:1547,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1550,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1552,1
    - Dst: PyErr_SetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - info
    - exctype
    argTypes:
    - _PyXI_excinfo*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1523
    functionDepth: 19
    functionLinenumber: 1523
    functionLinenumberEnd: 1555
    functionName: _PyXI_excinfo_Apply
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_SetObject
    - _PyXI_excinfo_format
    - PyErr_Clear
    - PyObject_SetAttrString
    - Py_XDECREF
    - PyErr_SetRaisedException
    - Py_DECREF
    - PyErr_GetRaisedException
    - PyErr_FormatUnraisable
    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:1560,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1567,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1571,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1572,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1580,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1584,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1585,1
    - Dst: PyUnicode_FromString
      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: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:1606,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1612,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1557
    functionDepth: 13
    functionLinenumber: 1557
    functionLinenumberEnd: 1614
    functionName: _PyXI_excinfo_TypeAsObject
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_CLEAR
    - PyObject_SetAttrString
    - _PyNamespace_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_excinfo_TypeAsObject(_PyXI_excinfo *info)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyNamespace_New
      Src: /src/cpython/Python/crossinterp.c:1619,1
    - Dst: _PyXI_excinfo_TypeAsObject
      Src: /src/cpython/Python/crossinterp.c:1625,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1627,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp.c:1630,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1632,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1633,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1639,1
    - Dst: Py_NewRef
      Src: /src/cpython/Python/crossinterp.c:1640,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1644,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1645,1
    - Dst: _PyXI_excinfo_format
      Src: /src/cpython/Python/crossinterp.c:1650,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1654,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1655,1
    - Dst: PyUnicode_FromString
      Src: /src/cpython/Python/crossinterp.c:1661,1
    - Dst: PyErr_Clear
      Src: /src/cpython/Python/crossinterp.c:1663,1
    - Dst: PyObject_SetAttrString
      Src: /src/cpython/Python/crossinterp.c:1666,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1667,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1677,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1616
    functionDepth: 14
    functionLinenumber: 1616
    functionLinenumberEnd: 1679
    functionName: _PyXI_excinfo_AsObject
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyXI_excinfo_TypeAsObject
    - _PyXI_excinfo_format
    - PyErr_Clear
    - PyObject_SetAttrString
    - PyErr_Occurred
    - _PyNamespace_New
    - Py_DECREF
    - Py_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyXI_excinfo_AsObject(_PyXI_excinfo *info)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1685,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1685,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1687,1
    - Dst: PyMem_RawCalloc
      Src: /src/cpython/Python/crossinterp.c:1690,1
    - Dst: PyExceptionInstance_Check
      Src: /src/cpython/Python/crossinterp.c:1695,1
    - Dst: PyExceptionClass_Check
      Src: /src/cpython/Python/crossinterp.c:1695,1
    - Dst: _PyXI_excinfo_InitFromException
      Src: /src/cpython/Python/crossinterp.c:1696,1
    - Dst: _PyXI_excinfo_InitFromObject
      Src: /src/cpython/Python/crossinterp.c:1699,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1702,1
    - Dst: set_exc_with_cause
      Src: /src/cpython/Python/crossinterp.c:1703,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1684
        line_start: 1684
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1707
      start: 1682
    functionDepth: 20
    functionLinenumber: 1682
    functionLinenumberEnd: 1707
    functionName: _PyXI_NewExcInfo
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - _PyXI_excinfo_InitFromException
    - PyExceptionClass_Check
    - PyErr_SetString
    - PyMem_RawCalloc
    - PyMem_RawFree
    - set_exc_with_cause
    - PyErr_Occurred
    - assert
    - PyExceptionInstance_Check
    - _PyXI_excinfo_InitFromObject
    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:1712,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1709
    functionDepth: 3
    functionLinenumber: 1709
    functionLinenumberEnd: 1714
    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:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1716
    functionDepth: 11
    functionLinenumber: 1716
    functionLinenumberEnd: 1720
    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:1725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - _PyXI_excinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1722
    functionDepth: 15
    functionLinenumber: 1722
    functionLinenumberEnd: 1726
    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:1738,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1740,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1740,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1741,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1742,1
    - Dst: PyErr_SetNone
      Src: /src/cpython/Python/crossinterp.c:1746,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:1749,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1752,1
    - Dst: _PyErr_SetInterpreterAlreadyRunning
      Src: /src/cpython/Python/crossinterp.c:1753,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1756,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1760,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1764,1
    - Dst: PyErr_SetString
      Src: /src/cpython/Python/crossinterp.c:1768,1
    - Dst: _set_xid_lookup_failure
      Src: /src/cpython/Python/crossinterp.c:1772,1
    - Dst: Py_FatalError
      Src: /src/cpython/Python/crossinterp.c:1776,1
    - Dst: PyErr_Format
      Src: /src/cpython/Python/crossinterp.c:1778,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1781,1
    - Dst: PyErr_Occurred
      Src: /src/cpython/Python/crossinterp.c:1781,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: 1740
        line_start: 1740
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1739
        line_start: 1739
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (code != _PyXI_ERR_UNCAUGHT_EXCEPTION)
      pos:
        line_end: 1741
        line_start: 1741
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (interp != NULL)
      pos:
        line_end: 1751
        line_start: 1751
        source_file: /src/cpython/Python/crossinterp.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1780
        line_start: 1780
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1783
      start: 1735
    functionDepth: 14
    functionLinenumber: 1735
    functionLinenumberEnd: 1783
    functionName: _PyXI_ApplyErrorCode
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyErr_NoMemory
    - PyErr_SetString
    - _set_xid_lookup_failure
    - _PyThreadState_GET
    - PyErr_Occurred
    - assert
    - PyErr_SetNone
    - PyErr_Format
    - _PyErr_SetInterpreterAlreadyRunning
    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:1801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - failure
    argTypes:
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1797
    functionDepth: 1
    functionLinenumber: 1797
    functionLinenumberEnd: 1804
    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: 1811
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1811
    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:1816,1
    - Dst: PyErr_NoMemory
      Src: /src/cpython/Python/crossinterp.c:1818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1813
    functionDepth: 8
    functionLinenumber: 1813
    functionLinenumberEnd: 1823
    functionName: _PyXI_NewFailure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyMem_RawMalloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: _PyXI_failure
    signature: '_PyXI_failure *

      _PyXI_NewFailure(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_xi_failure
      Src: /src/cpython/Python/crossinterp.c:1828,1
    - Dst: PyMem_RawFree
      Src: /src/cpython/Python/crossinterp.c:1829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - failure
    argTypes:
    - _PyXI_failure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1825
    functionDepth: 2
    functionLinenumber: 1825
    functionLinenumberEnd: 1830
    functionName: _PyXI_FreeFailure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 1
    functionsReached:
    - PyMem_RawFree
    - clear_xi_failure
    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: 1839
      start: 1832
    functionDepth: 0
    functionLinenumber: 1832
    functionLinenumberEnd: 1839
    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: 1850
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1850
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Str
      Src: /src/cpython/Python/crossinterp.c:1864,1
    - Dst: _copy_string_obj_raw
      Src: /src/cpython/Python/crossinterp.c:1870,1
    - Dst: Py_DECREF
      Src: /src/cpython/Python/crossinterp.c:1871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - failure
    - code
    - obj
    argTypes:
    - _PyXI_failure*
    - _PyXI_errcode
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1852
    functionDepth: 15
    functionLinenumber: 1852
    functionLinenumberEnd: 1881
    functionName: _PyXI_InitFailure
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 3
    functionsReached:
    - PyObject_Str
    - _copy_string_obj_raw
    - Py_DECREF
    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:1902,1
    - Dst: _PyXI_excinfo_clear
      Src: /src/cpython/Python/crossinterp.c:1904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - _PyXI_error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1897
    functionDepth: 3
    functionLinenumber: 1897
    functionLinenumberEnd: 1905
    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:1911,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1912,1
    - Dst: excinfo_is_set
      Src: /src/cpython/Python/crossinterp.c:1913,1
    - Dst: excinfo_is_set
      Src: /src/cpython/Python/crossinterp.c:1916,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: 1910
        line_start: 1910
        source_file: /src/cpython/Python/crossinterp.c
    - condition: "(error->override->code != _PyXI_ERR_UNCAUGHT_EXCEPTION\n               ||
        excinfo_is_set(&error->uncaught))"
      pos:
        line_end: 1912
        line_start: 1911
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1917
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1917
    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: 1927
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1927
    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:1933,1
    - Dst: _PyErr_GetRaisedException
      Src: /src/cpython/Python/crossinterp.c:1935,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1937,1
    - Dst: Py_CLEAR
      Src: /src/cpython/Python/crossinterp.c:1950,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: 1932
        line_start: 1932
        source_file: /src/cpython/Python/crossinterp.c
    - condition: "(override == NULL\n               || override->code != _PyXI_ERR_UNCAUGHT_EXCEPTION)"
      pos:
        line_end: 1937
        line_start: 1936
        source_file: /src/cpython/Python/crossinterp.c
    constantsTouched: []
    func_position:
      end: 1955
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1955
    functionName: xi_error_resolve_current_exc
    functionSourceFile: /src/cpython/Python/crossinterp.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyErr_GetRaisedException
    - 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:1961,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1962,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1963,1
    - Dst: assert
      Src: /src/cpython/Python/crossinterp.c:1965,1
    - Dst: copy_xi_failure
      Src: /src/cpython/Python/crossinterp.c:1968,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: 1960
        line_start: 1960
        source_file: /src/cpython/Py